@font-face{font-family:Map Display;src:url(../fonts/fredoka-semibold.ttf) format("truetype");font-weight:600;font-display:swap}:root{--night-950: #0b1132;--night-900: #131a47;--night-line: rgba(255, 255, 255, .14);--on-night: #fbf6ea;--on-night-soft: #c9cde8;--paper: #fffaf1;--paper-raised: #ffffff;--paper-sunk: #f3ecdd;--ink: #1c2141;--ink-soft: #4f5677;--line: #e7ddc9;--spruce: #17614b;--spruce-deep: #0f4c3a;--spruce-soft: #e3f0ea;--gold: #ffc84a;--gold-soft: #fff3cf;--gold-ink: #3f2900;--amber-ink: #7a4b00;--cranberry: #a8323a;--danger-soft: #fbe9e8;--focus: #ffb020;--faith-surface: #f7f0e0;--faith-line: #eadfc5;--scrim: rgba(6, 9, 30, .55);--place: #17614b;--place-soft: #e3f0ea;--place-ink: #17614b;--radius-control: 14px;--radius-surface: 18px;--font-display: "Map Display", ui-rounded, "Arial Rounded MT Bold", system-ui, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-scripture: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;color-scheme:light}.place--home{--place: #b13a3d;--place-soft: #f9e4e1;--place-ink: #8a2a2e}.place--street{--place: #9a6a0c;--place-soft: #fbefd2;--place-ink: #6e4b06}.place--town{--place: #4a62a3;--place-soft: #e5ebf8;--place-ink: #33487f}.place--world{--place: #22598c;--place-soft: #dfeef8;--place-ink: #1a4670}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #151b42;--paper-raised: #1d2453;--paper-sunk: #272f63;--ink: #f5f2ea;--ink-soft: #c5c9e4;--line: #343d78;--spruce: #2f8f6f;--spruce-deep: #3aa27f;--spruce-soft: #1d3d45;--gold-soft: #3a3320;--amber-ink: #ffd27a;--danger-soft: #3d2236;--faith-surface: #1f2552;--faith-line: #39417a;--scrim: rgba(3, 5, 20, .7);color-scheme:dark}:root:not([data-theme=light]) [class*=place--]{--place-soft: color-mix(in srgb, var(--place) 30%, #151b42);--place-ink: #fff3dd}}:root[data-theme=dark]{--paper: #151b42;--paper-raised: #1d2453;--paper-sunk: #272f63;--ink: #f5f2ea;--ink-soft: #c5c9e4;--line: #343d78;--spruce: #2f8f6f;--spruce-deep: #3aa27f;--spruce-soft: #1d3d45;--gold-soft: #3a3320;--amber-ink: #ffd27a;--danger-soft: #3d2236;--faith-surface: #1f2552;--faith-line: #39417a;--scrim: rgba(3, 5, 20, .7);color-scheme:dark}:root[data-theme=dark] [class*=place--]{--place-soft: color-mix(in srgb, var(--place) 30%, #151b42);--place-ink: #fff3dd}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--night-950);color:var(--on-night);font-family:var(--font-body);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app{max-width:520px;min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;background:var(--night-950)}html,body{background:radial-gradient(1.2px 1.2px at 8% 12%,rgba(255,246,220,.75),transparent),radial-gradient(1px 1px at 22% 64%,rgba(255,246,220,.5),transparent),radial-gradient(1.4px 1.4px at 86% 22%,rgba(255,246,220,.7),transparent),radial-gradient(1px 1px at 72% 78%,rgba(255,246,220,.45),transparent),radial-gradient(1.2px 1.2px at 94% 58%,rgba(255,246,220,.6),transparent),radial-gradient(1px 1px at 4% 88%,rgba(255,246,220,.5),transparent),linear-gradient(#060a26,#0b1132 70%);background-attachment:fixed}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(env(safe-area-inset-top) + 10px) 14px 8px 16px}.title-block{min-width:0}.topbar h1{margin:0;font:600 clamp(20px,5.6vw,24px) / 1.1 var(--font-display);letter-spacing:-.01em;color:#fff6df;text-shadow:0 0 18px rgba(255,211,110,.35),0 1px 0 rgba(0,0,0,.4);overflow-wrap:anywhere}.title-block p{margin:3px 0 0;font-size:13.5px;text-wrap:balance;line-height:1.3;color:var(--on-night-soft)}.top-actions{display:flex;gap:6px;flex:none}.top-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:58px;min-height:54px;padding:6px 5px 5px;border-radius:var(--radius-control);border:1px solid rgba(255,255,255,.16);background:linear-gradient(180deg,#ffffff24,#ffffff0a);box-shadow:inset 0 1px #ffffff2e,0 8px 18px -8px #0009;color:#fff;font-size:12px;font-weight:700;transition:background .18s}.top-button svg{color:#ffd36e;filter:drop-shadow(0 0 4px rgba(255,211,110,.6))}.top-button:hover{background:#ffffff29}.top-button:active{transform:scale(.97)}.stage-wrap{position:relative;flex:1 1 0;min-height:min(calc(min(100vw,520px)*1.75),540px);display:flex;justify-content:center;align-items:flex-start;container-type:size}.stage{--travel: 1.5s;position:relative;height:min(100cqh,175cqw);aspect-ratio:4 / 7;container-type:inline-size;touch-action:manipulation}.scene{position:absolute;inset:0;overflow:hidden;border-radius:0 0 22px 22px;background:#060a26;isolation:isolate}.scene-defs{position:absolute;width:0;height:0;overflow:hidden}.layer{position:absolute;inset:0;transform-origin:0 0;will-change:transform;pointer-events:none}.layer svg{display:block;width:100%;height:100%;overflow:visible}.snow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 90% at 50% 60%,transparent 60%,rgba(4,7,28,.42) 100%),linear-gradient(to bottom,rgba(6,10,38,.4),transparent 12%)}.marker{position:absolute;z-index:2;transform:translate(-50%,-50%);padding:0;border:0;background:none;color:#1c2141;font-size:clamp(11px,3.7cqw,15px);line-height:1.1;white-space:nowrap}.marker:after{content:"";position:absolute;z-index:-1;left:20%;right:20%;bottom:-1.05em;height:.8em;border-radius:50%;background:radial-gradient(closest-side,rgba(6,10,38,.5),transparent);animation:fade-in .6s ease both var(--in),shadow-float 4.6s ease-in-out infinite var(--float);opacity:0}.marker-plate{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:.4em 1.1em .44em;border-radius:999px;border:1.5px solid rgba(255,255,255,.95);background:linear-gradient(180deg,#fffdf7,#f5ecd8);box-shadow:inset 0 1px #fff,inset 0 -2px #96784629,0 12px 22px -8px #04071ca6,0 3px 6px #04071c4d;animation:marker-in .6s cubic-bezier(.3,1.4,.5,1) both var(--in),marker-float 4.6s ease-in-out infinite var(--float);transition:box-shadow .2s,scale .15s}.marker-plate:after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;border-radius:0 0 3px;background:#f5ecd8;box-shadow:3px 3px 5px #04071c2e;transform:translate(-50%) rotate(45deg)}.marker--home{--in: .05s;--float: .6s}.marker--street{--in: .15s;--float: 1.8s}.marker--town{--in: .25s;--float: 1.1s}.marker--world{--in: .35s;--float: 2.4s}.has-intro .marker--home{--in: 1.1s;--float: 1.7s}.has-intro .marker--street{--in: 1.25s;--float: 2.9s}.has-intro .marker--town{--in: 1.4s;--float: 2.2s}.has-intro .marker--world{--in: 1.55s;--float: 3.5s}.calm-motion .marker:after{opacity:1}.marker:hover .marker-plate{box-shadow:inset 0 1px #fff,0 12px 22px -8px #04071ca6,0 0 0 4px #ffd36e99}.marker:active .marker-plate{scale:.95}.marker-name{font-family:var(--font-display);font-weight:600;font-size:1.14em}.marker-who{margin-top:.12em;font-size:.7em;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:#4f5677}.marker-plans{position:absolute;top:-1.05em;right:-1.5em;display:inline-flex;align-items:center;gap:1px;padding:.15em .5em .15em .3em;border-radius:999px;border:2px solid #fffaf0;background:linear-gradient(180deg,#ffd96e,#ffbf3a);color:var(--gold-ink);box-shadow:0 3px 8px #04071c59;font-size:.82em;font-weight:800}@keyframes marker-in{0%{opacity:0;transform:translateY(12px) scale(.8)}to{opacity:1;transform:none}}@keyframes marker-float{0%,to{translate:0 0}50%{translate:0 -3px}}@keyframes shadow-float{0%,to{transform:scaleX(1);opacity:1}50%{transform:scaleX(.82);opacity:.7}}.map-lantern{cursor:pointer;pointer-events:auto}.lantern-halo{transform-box:fill-box;transform-origin:center;animation:flicker 3.4s ease-in-out infinite}.lantern-pool{opacity:.45}.map-lantern:nth-child(3n) .lantern-halo{animation-delay:-1.1s}.map-lantern:nth-child(3n+1) .lantern-halo{animation-delay:-2.3s}.map-lantern.arriving .lantern-body,.map-lantern.arriving .lantern-pool{transform-box:fill-box;transform-origin:50% 100%;animation:arrive .7s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--travel) - .12s)}.map-lantern.arriving .lantern-halo{animation:halo-in .9s ease-out both calc(var(--travel) - .12s),flicker 3.4s ease-in-out infinite calc(var(--travel) + .8s)}@keyframes flicker{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}@keyframes arrive{0%{opacity:0;transform:translateY(-12px) scale(.2)}60%{opacity:1;transform:translateY(0) scale(1.18)}to{opacity:1;transform:none}}@keyframes halo-in{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(2.2)}to{opacity:.85;transform:scale(1)}}.thread{fill:none;stroke:#f2b544;stroke-width:1.4;stroke-opacity:.7;stroke-linecap:round;stroke-dasharray:.1 4.5}.thread--new{opacity:0;animation:fade-in .6s ease forwards calc(var(--travel) + .4s)}.bloom{opacity:0;transform-box:fill-box;transform-origin:center;mix-blend-mode:screen;animation:bloom 2.2s ease-out forwards calc(var(--travel) - .25s)}.ripple{transform-box:view-box;transform-origin:200px 640px;opacity:0;animation:ripple 1.9s cubic-bezier(.2,.7,.3,1) forwards}.ripple circle{fill:none;vector-effect:non-scaling-stroke}.ripple-soft{stroke:#ffc24a;stroke-width:12;stroke-opacity:.28}.ripple-line{stroke:#ffd36e;stroke-width:3.5}.trail{fill:none;stroke:#ffe08a;stroke-width:3.2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 3px #ffcf5c);animation:draw var(--travel) cubic-bezier(.33,1,.68,1) forwards,fade-out .9s ease-in forwards calc(var(--travel) + .5s)}.spark{filter:drop-shadow(0 0 6px #ffd36e)}.sparkle{opacity:0;transform-box:fill-box;transform-origin:center;animation:sparkle .9s ease-out forwards calc(var(--travel) - 60ms)}.is-celebrating .hearth{transform-box:fill-box;transform-origin:center;animation:hearth .9s ease-out}@keyframes ripple{0%{opacity:.95;transform:scale(.06)}to{opacity:0;transform:scale(1)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes bloom{0%{opacity:0;transform:scale(.2)}25%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}@keyframes sparkle{0%{opacity:1;transform:translate(0) scale(.4)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.1)}}@keyframes hearth{0%{transform:scale(1);opacity:.35}40%{transform:scale(2.4);opacity:.9}to{transform:scale(1);opacity:.35}}@keyframes fade-in{to{opacity:1}}@keyframes fade-out{to{opacity:0}}.twinkle{animation:twinkle 4.2s ease-in-out infinite}.bulb{animation:bulb 2.4s ease-in-out infinite}.village-light{animation:village 6s ease-in-out infinite}.sea-glint{animation:sea-glint 2.7s ease-in-out infinite}.wave{animation:wave 6s ease-in-out infinite alternate}.foam{animation:foam 40s linear infinite}.puff{opacity:0;transform-box:fill-box;transform-origin:center;animation:puff 6.4s ease-out infinite}.ship{transform-box:fill-box;transform-origin:50% 90%;animation:bob 6s ease-in-out infinite}.car-orbit{transform-box:view-box;transform-origin:200px 640px;animation:orbit 34s linear infinite}.beam-sweep{transform-box:view-box;animation:sweep 9s linear infinite}.star-rays{transform-box:view-box;animation:spin 60s linear infinite}.star-pulse{transform-box:fill-box;transform-origin:center;animation:star-pulse 5s ease-in-out infinite}.shooting-star{opacity:0;animation:shoot 14s ease-out 4s infinite}.shooting-star--late{animation-duration:19s;animation-delay:11s}.glint{opacity:0;transform-box:fill-box;transform-origin:center;animation:glint 5s ease-in-out infinite}.lantern-sway{transform-box:fill-box;transform-origin:50% 0;animation:sway 4.8s ease-in-out infinite alternate}.flame{transform-box:fill-box;transform-origin:50% 100%;animation:flame .9s ease-in-out infinite alternate}.hearth{transform-box:fill-box;transform-origin:center;animation:hearth-idle 4s ease-in-out infinite}.god-rays{opacity:0;transform-box:view-box;animation:rays-burst 2.4s ease-out forwards calc(var(--travel) - .15s)}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.25}}@keyframes bulb{0%,to{opacity:1}50%{opacity:.35}}@keyframes village{0%,to{opacity:1}50%{opacity:.45}}@keyframes sea-glint{0%,to{opacity:.25}50%{opacity:1}}@keyframes wave{0%{transform:translate(-3px);opacity:.45}to{transform:translate(3px);opacity:.85}}@keyframes foam{to{stroke-dashoffset:-110}}@keyframes puff{0%{opacity:0;transform:translate(0) scale(.45)}12%{opacity:.55}to{opacity:0;transform:translate(10px,-32px) scale(2.5)}}@keyframes bob{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(3px,1.5px) rotate(-2.2deg)}}@keyframes orbit{0%{transform:rotate(-75deg)}to{transform:rotate(285deg)}}@keyframes sweep{0%,to{transform:scaleX(1);opacity:1}25%{transform:scaleX(.04);opacity:.25}50%{transform:scaleX(-1);opacity:.9}75%{transform:scaleX(.04);opacity:.25}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes star-pulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.16);opacity:1}}@keyframes shoot{0%{opacity:0;transform:translate(40px,-14px)}2%{opacity:1}7%{opacity:0;transform:translate(-36px,12px)}to{opacity:0;transform:translate(-36px,12px)}}@keyframes glint{0%,70%,to{opacity:0;transform:scale(.3)}80%{opacity:.95;transform:scale(1)}}@keyframes sway{0%{transform:rotate(-2.6deg)}to{transform:rotate(2.6deg)}}@keyframes flame{0%{transform:scale(1.06,.86)}to{transform:scale(.94,1.1)}}@keyframes hearth-idle{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.14);opacity:1}}@keyframes rays-burst{0%{opacity:0;transform:rotate(0) scale(.5)}20%{opacity:.9}to{opacity:0;transform:rotate(40deg) scale(1.25)}}.stage.resting .scene *,.stage.resting .marker-plate,.stage.resting .marker:after{animation-play-state:paused}.calm-motion .twinkle,.calm-motion .bulb,.calm-motion .village-light,.calm-motion .sea-glint,.calm-motion .wave,.calm-motion .foam,.calm-motion .ship,.calm-motion .beam-sweep,.calm-motion .star-rays,.calm-motion .star-pulse,.calm-motion .lantern-sway,.calm-motion .flame,.calm-motion .hearth,.calm-motion .lantern-halo,.calm-motion .marker-plate,.calm-motion .marker:after{animation:none}.calm-motion .puff,.calm-motion .shooting-star,.calm-motion .glint,.calm-motion .car-orbit{display:none}.stage.calm .map-lantern.arriving .lantern-body,.stage.calm .map-lantern.arriving .lantern-pool,.stage.calm .map-lantern.arriving .lantern-halo{animation:fade-in .4s ease both;opacity:0}.stage.calm .bloom{animation:fade-out 1.6s ease-out forwards;opacity:.8}.stage.calm .trail{stroke-dashoffset:0;opacity:.6;animation:fade-out 1.2s ease-in forwards .6s}.stage.calm .thread--new{animation:fade-in .4s ease forwards}.tray{position:relative;padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(19,26,71,.6),var(--night-950) 80%)}.tray:before{content:"";position:absolute;top:0;left:16px;right:16px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,211,110,.35),transparent)}.tray-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.tray h2{margin:0;font:600 18px/1.2 var(--font-display);color:#fff6df}.tray-surprise{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:linear-gradient(180deg,#ffffff29,#ffffff0d);box-shadow:inset 0 1px #fff3,0 8px 18px -10px #000000b3;color:#fff;font-size:15px;font-weight:700}.tray-surprise svg{color:#ffd36e}.tray-hint{margin:0;font-size:15px;line-height:1.4;color:var(--on-night-soft)}.plan-list{display:flex;gap:10px;margin:0 -16px;padding:2px 16px 4px;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.plan-card{flex:0 0 auto;display:flex;width:min(80%,300px);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#fffdf7,#f5ecd8);color:#1c2141;scroll-snap-align:start;box-shadow:inset 5px 0 0 var(--place),0 12px 24px -12px #000000b3}.plan-card:only-child{width:100%;max-width:none}.plan-open{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:60px;padding:10px 12px 10px 16px;border:0;background:none;color:inherit;text-align:left}.plan-title{display:-webkit-box;overflow:hidden;font-size:15.5px;font-weight:750;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}.plan-place{font-size:13px;color:#4f5677}.plan-done{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:82px;padding:6px 10px;position:relative;overflow:hidden;border:0;background:linear-gradient(180deg,#ffd96e,#ffbd38);color:var(--gold-ink);font-size:13px;font-weight:800}.plan-done:after{content:"";position:absolute;inset:-20% auto -20% -60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skew(-18deg);animation:sheen 4.5s ease-in-out infinite 1.5s}.calm-motion .plan-done:after{animation:none;display:none}@keyframes sheen{0%,70%{left:-60%}to{left:130%}}.plan-done:active{background:#f5b52c}dialog.sheet{width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:transparent;color:var(--ink);overflow:hidden}dialog.sheet[open]{display:flex;align-items:flex-end;justify-content:center}dialog.sheet::backdrop{background:var(--scrim)}dialog.sheet--celebrate::backdrop{background:#06091e14}dialog.sheet--focus::backdrop{background:#06091e52}.sheet-panel{position:relative;overflow:hidden}.sheet-panel:has(.place-art):before{position:absolute;top:8px;left:50%;z-index:3;translate:-50% 0;margin:0;background:#ffffffb3}.place-sheet>.sheet-header{margin-bottom:-60px;background:none}.place-art{position:relative;height:clamp(120px,32vw,170px);margin:0 -20px 4px;overflow:hidden;background:#060a26}.place-art svg{display:block;width:100%;height:100%}.place-art:after{content:"";position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(to bottom,transparent,var(--paper))}.sheet-panel{display:flex;flex-direction:column;width:min(100%,520px);max-height:88dvh;border-radius:26px 26px 0 0;background:var(--paper);box-shadow:0 -12px 40px #00000059;animation:sheet-up .34s cubic-bezier(.2,.9,.3,1)}.sheet--tall .sheet-panel{max-height:94dvh}.sheet--celebrate .sheet-panel{max-height:80dvh}.sheet-panel:before{content:"";align-self:center;flex:none;width:44px;height:5px;margin-top:8px;border-radius:3px;background:var(--line)}.sheet-scroll{overflow-y:auto;overscroll-behavior:contain;padding:0 20px calc(26px + env(safe-area-inset-bottom))}@keyframes sheet-up{0%{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}@media(min-width:700px){dialog.sheet:not(.sheet--celebrate)[open]{align-items:center}dialog.sheet:not(.sheet--celebrate) .sheet-panel{max-height:86dvh;border-radius:26px}}.sheet-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;margin:0 -4px;padding:8px 0 6px;background:linear-gradient(var(--paper) 75%,transparent)}.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:44px;min-height:44px;padding:0 14px 0 8px;border:0;border-radius:999px;background:var(--paper-sunk);color:var(--ink);font-size:15px;font-weight:700}.icon-button--round{width:44px;padding:0}.sheet h2{margin:2px 0 6px;font:600 clamp(26px,7vw,30px) / 1.1 var(--font-display);letter-spacing:-.01em;color:var(--ink)}.sheet h2:focus{outline:none}.sheet h3{margin:24px 0 10px;font:600 19px/1.2 var(--font-display);color:var(--ink)}.sheet h4{margin:20px 0 4px;font-size:16px}.eyebrow{margin:4px 0 0;font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.lede{margin:6px 0 0;font-size:17px;line-height:1.5;color:var(--ink-soft)}.lede strong{color:var(--ink)}.muted{font-size:13.5px;color:var(--ink-soft)}.place-hero,.idea-hero{display:flex;align-items:center;gap:14px;margin-top:6px}.idea-hero h2{flex:1}.place-medallion{display:grid;place-items:center;flex:none;width:62px;height:62px;border-radius:50%;background:var(--place);color:#fff;box-shadow:0 0 0 5px var(--place-soft)}.faith{margin:18px 0 4px;padding:14px 16px 6px;border:1px solid var(--faith-line);border-radius:var(--radius-surface);background:var(--faith-surface)}.faith-label{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--amber-ink)}.scripture{margin:0}.scripture blockquote{margin:6px 0 4px}.scripture blockquote p{margin:0;font:400 18px/1.45 var(--font-scripture);color:var(--ink)}.scripture figcaption{margin-bottom:8px;font-size:14px;font-weight:700;color:var(--ink-soft)}.translation{font-weight:500}.prayer{border-top:1px solid var(--faith-line)}.prayer summary{display:flex;align-items:center;min-height:44px;font-weight:750;color:var(--spruce);cursor:pointer}[data-theme=dark] .prayer summary{color:#8ad3b5}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .prayer summary{color:#8ad3b5}}.prayer p{margin:0 0 12px;font:400 17px/1.5 var(--font-scripture);font-style:italic}.idea-list,.story-list,.lit-here ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.idea-row,.story-row{display:flex;align-items:center;gap:12px;width:100%;min-height:66px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--paper-raised);color:var(--ink);text-align:left;transition:transform .15s,border-color .15s}.idea-row:hover,.story-row:hover{border-color:var(--place)}.idea-row:active,.story-row:active{transform:scale(.985)}.idea-row-text{flex:1;min-width:0}.idea-row-title{display:block;font-size:16.5px;font-weight:750;line-height:1.25}.idea-icon{display:grid;place-items:center;flex:0 0 46px;height:46px;border-radius:14px;background:var(--place-soft);color:var(--place-ink)}.idea-icon--large{flex-basis:66px;width:66px;height:66px;border-radius:20px}.idea-icon--custom,.idea-icon--lit{background:var(--gold-soft);color:var(--amber-ink)}.chevron{flex:none;transform:rotate(180deg);color:var(--ink-soft)}.badge{flex:none;padding:3px 9px;border-radius:999px;background:var(--gold-soft);color:var(--amber-ink);font-size:12.5px;font-weight:800}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none}.tags li{display:inline-flex;align-items:center;gap:5px;padding:5px 11px 5px 8px;border-radius:999px;background:var(--paper-sunk);color:var(--ink-soft);font-size:14px;font-weight:650}.tags--compact{gap:2px 10px;margin-top:4px}.tags--compact li{padding:0;background:none;font-size:13px}.steps{display:grid;gap:10px;margin-top:18px}.step{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--paper-raised)}.step:first-child{border-color:transparent;background:var(--place-soft)}.step h3{margin:0 0 4px;font-size:16px}.step p{margin:0;font-size:17px;line-height:1.5}.step:first-child p{font-size:18.5px}.grownup-note{display:flex;align-items:flex-start;gap:10px;margin:14px 0 0;padding:12px 14px;border-radius:var(--radius-control);background:var(--spruce-soft);font-size:15px;line-height:1.45}.grownup-note svg{flex:none;margin-top:1px}.actions{display:grid;gap:10px;margin-top:22px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:56px;padding:0 20px;border:0;border-radius:16px;font-size:17px;font-weight:750;line-height:1.2;text-align:center;transition:transform .18s,background .18s,box-shadow .18s}.button:active{transform:scale(.97);transition:none}.button:disabled{opacity:.5;cursor:not-allowed}.button--primary{background:#17614b;color:#fff}.button--primary:hover{background:#0f4c3a}.button--gold{background:var(--gold);color:var(--gold-ink);box-shadow:0 6px 20px #ffba3259}.button--gold:hover{background:#ffbe2e}.button--gold-outline{border:2px solid #e9a92c;background:var(--gold-soft);color:var(--amber-ink)}.button--quiet{min-height:50px;background:var(--paper-sunk);color:var(--ink);font-size:16px}.button--danger{background:var(--cranberry);color:#fff}.button--link{min-height:44px;padding:0 8px;background:none;color:var(--ink-soft);font-size:15px;font-weight:650;text-decoration:underline;text-underline-offset:3px}.journey{display:grid;grid-template-columns:repeat(var(--steps),minmax(0,92px));justify-content:center;margin:12px 0 10px;padding:0;list-style:none}.journey li{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--amber-ink);font-size:12.5px;font-weight:750;line-height:1.15;text-align:center;opacity:0;animation:step-in .4s ease forwards}.journey li+li:before{content:"";position:absolute;top:15px;right:calc(50% + 19px);width:calc(100% - 38px);height:3px;border-radius:2px;background:#f0b63a}.journey-dot{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#ffd36e;color:#4a3000;box-shadow:0 0 0 4px #ffd36e4d}@keyframes step-in{0%{opacity:0;transform:translateY(4px) scale(.9)}to{opacity:1;transform:none}}.celebrate h2{font-size:clamp(24px,6.6vw,29px);text-align:center;text-wrap:balance}.celebrate>.lede{text-align:center;text-wrap:balance}.celebrate-actions{display:grid;gap:8px;margin-top:18px}.celebrate-actions .button--link{justify-self:center}.memory-form{margin-top:6px}.memory-form .button--gold{width:100%;margin-top:4px}.memory-form .button--link{display:flex;margin:8px auto 0}.feelings{margin:16px 0 4px;padding:0;border:0}.feelings legend,.choice-group legend{margin-bottom:8px;padding:0;font-size:15.5px;font-weight:750}.feeling-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.feeling{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:86px;padding:10px 2px 8px;border:2px solid var(--line);border-radius:var(--radius-control);background:var(--paper-raised);color:var(--ink-soft);font-size:12.5px;font-weight:700;line-height:1.15;text-align:center}.feeling[aria-pressed=true]{border-width:3px;border-color:#e2a017;background:var(--gold-soft);color:var(--ink)}.feeling[aria-pressed=true]:after{content:"✓";position:absolute;top:-9px;right:-7px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e2a017;color:#fff;font-size:13px}.field{display:grid;gap:6px;margin:14px 0}.field-label{font-size:15.5px;font-weight:750}.field-hint{margin:0;font-size:14px;line-height:1.4;color:var(--ink-soft)}.optional{margin-left:4px;padding:1px 8px;border-radius:999px;background:var(--paper-sunk);color:var(--ink-soft);font-size:12px;font-weight:650;vertical-align:1px}input:not([type=checkbox]):not([type=radio]),textarea{width:100%;padding:12px 14px;border:1.5px solid #cfc3a9;border-radius:var(--radius-control);background:var(--paper-raised);color:var(--ink);font-size:17px;line-height:1.4}[data-theme=dark] input:not([type=checkbox]):not([type=radio]),[data-theme=dark] textarea{border-color:#4a5394}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) input:not([type=checkbox]):not([type=radio]),:root:not([data-theme=light]) textarea{border-color:#4a5394}}textarea{resize:vertical}[aria-invalid=true]{border-color:#b3333c!important}.field-error{color:#a3262e;font-size:14px;font-weight:700}[data-theme=dark] .field-error{color:#ff9ba3}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .field-error{color:#ff9ba3}}.gate-form input{max-width:180px;font-size:30px!important;font-weight:700;letter-spacing:.1em;text-align:center}.gate-form .button{width:100%}.fine-print{margin:14px 0 0;font-size:13.5px;color:var(--ink-soft)}.panel{margin:18px 0;padding:4px 16px 16px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--paper-raised)}.panel>h3{margin-top:14px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line);cursor:pointer}.switch-title{display:block;font-size:16px;font-weight:750}.switch-hint{display:block;margin-top:2px;font-size:14px;line-height:1.4;color:var(--ink-soft)}input.switch{position:relative;flex:none;width:54px;height:32px;margin:0;border-radius:999px;background:#8f8676;appearance:none;cursor:pointer;transition:background .2s}input.switch:after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .2s}input.switch:checked{background:var(--spruce)}input.switch:checked:after{transform:translate(22px)}.count-note{margin:4px 0 0;padding-top:12px;border-top:1px solid var(--line);font-weight:700}.choice-group{margin:16px 0;padding:0;border:0}.choice-row{display:flex;flex-wrap:wrap;gap:8px}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.choice{display:flex;align-items:center;gap:8px;min-height:52px;padding:10px 12px;border:2px solid var(--line);border-radius:var(--radius-control);background:var(--paper);font-weight:700;line-height:1.2;cursor:pointer}.choice small{display:block;color:var(--ink-soft);font-size:12.5px;font-weight:600}.choice input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--spruce)}.choice:has(input:checked){border-color:var(--spruce);background:var(--spruce-soft)}.suggestions{margin:6px 0 10px}.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.chip{min-height:40px;padding:6px 12px;border:1.5px dashed #bfae88;border-radius:999px;background:transparent;color:var(--ink);font-size:14px;font-weight:650;text-align:left}.form-actions{display:flex;flex-wrap:wrap;gap:8px}.form-actions .button{flex:1 1 160px}.tradition-list{margin:8px 0 0;padding:0;list-style:none}.tradition-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.tradition-row>svg{flex:none;color:var(--amber-ink)}.tradition-text{flex:1;min-width:0;display:grid;gap:2px}.tradition-editing{padding:4px 0 12px;border-bottom:1px solid var(--line)}.choose-place{border-top:1px solid var(--line)}.choose-place summary{display:flex;align-items:center;gap:4px;min-height:48px;font-weight:750;cursor:pointer;list-style:none}.choose-place summary::-webkit-details-marker{display:none}.choose-place summary:after{content:"";width:9px;height:9px;margin:0 6px 4px auto;border-right:2.5px solid var(--ink-soft);border-bottom:2.5px solid var(--ink-soft);transform:rotate(45deg);transition:transform .2s}.choose-place[open] summary:after{margin-bottom:-4px;transform:rotate(225deg)}.choose-place ul{margin:0 0 8px;padding:0;list-style:none}.check-row{display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 0;font-size:15.5px;cursor:pointer}.check-row input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--spruce)}.check-row small{color:var(--ink-soft)}.check-row.is-filtered>span{color:var(--ink-soft)}.stack{display:grid;gap:8px;margin-top:10px}.confirm{display:grid;gap:8px;padding:12px;border-radius:var(--radius-control);background:var(--danger-soft)}.confirm p{margin:0;font-weight:700}.principles{margin:0;padding-left:20px;font-size:15px;line-height:1.5}.principles li{margin:6px 0}.lit-icon{flex:none;color:#d18a00}.text-row{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 0;border:0;background:none;color:var(--ink);font-size:15.5px;text-align:left}.text-row .muted{margin-left:auto;flex:none}.story-group h3{display:flex;align-items:center;gap:8px}.place-chip{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--place);color:#fff}.story-row{align-items:flex-start}.story-text{display:grid;gap:3px}.story-title{font-size:16px;font-weight:750}.story-note{font-style:italic;line-height:1.4}.empty-story{padding:26px 10px 6px;color:var(--ink-soft);text-align:center;line-height:1.5}.empty-story svg{color:#d18a00}.memory{display:grid;gap:10px;margin-top:16px}.memory-feeling{display:flex;align-items:center;gap:8px;margin:0;font-weight:750}.memory-note{margin:0;font:italic 400 19px/1.45 var(--font-body)}.danger-zone{margin-top:22px;padding-top:10px;border-top:1px solid var(--line)}.empty-note{padding:14px;border-radius:var(--radius-control);background:var(--paper-sunk);color:var(--ink-soft)}.error-boundary{max-width:420px;margin:20vh auto;padding:0 24px;text-align:center}.error-boundary h1{font-family:var(--font-display)}.print-only{display:none}a.button{text-decoration:none}.button--small{min-height:44px;padding:0 14px;border-radius:12px;background:#17614b;color:#fff;font-size:15px}.button--small:hover{background:#0f4c3a}.welcome-card{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 12px;margin:0 0 14px;padding:12px 6px 12px 12px;border:1px solid rgba(255,211,110,.35);border-radius:18px;background:radial-gradient(120% 140% at 0% 0%,rgba(255,200,74,.22),transparent 60%),linear-gradient(180deg,#ffffff1a,#ffffff0a);box-shadow:inset 0 1px #ffffff24,0 14px 30px -18px #ffbe3c8c;color:var(--on-night);animation:welcome-in .7s cubic-bezier(.2,.9,.3,1.15) backwards 1.9s}.welcome-glow{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#ffe9a8,#ffc84a 60%,#f0a12a);color:var(--gold-ink);box-shadow:0 0 0 4px #ffd36e2e,0 0 22px #ffc84a99;animation:welcome-glow 3.4s ease-in-out infinite}.welcome-text p{margin:2px 0 0;font-size:14.5px;line-height:1.35;color:var(--on-night-soft)}.tray .welcome-text h2{font-size:18px}.icon-button.welcome-close{align-self:start;padding:0;background:none;color:var(--on-night-soft)}.welcome-go{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;margin:8px 6px 0 0;padding:8px 12px 8px 14px;border:0;border-radius:14px;background:linear-gradient(180deg,#fffdf7,#f5ecd8);color:#1c2141;font-size:15.5px;font-weight:750;line-height:1.25;text-align:left;box-shadow:0 10px 20px -12px #000000b3}.welcome-go small{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#7a4b00}.welcome-go .chevron{color:#4f5677}@keyframes welcome-in{0%{opacity:0;transform:translateY(16px) scale(.96)}}@keyframes welcome-glow{0%,to{box-shadow:0 0 0 4px #ffd36e2e,0 0 18px #ffc84a73}50%{box-shadow:0 0 0 6px #ffd36e1a,0 0 30px #ffc84abf}}.trail--welcome{--travel: 1.8s;animation-delay:1.5s,3.8s}.bloom--welcome{animation-delay:3.05s}.remind-hint{display:flex;align-items:center;gap:5px;margin-top:6px;color:var(--on-night-soft);font-size:13.5px;animation:hint-in .8s ease backwards .6s}@keyframes hint-in{0%{opacity:0}}.remind-hint>svg{flex:none;color:#ffd36e}.remind-hint p{margin:0}.remind-hint-link{min-height:44px;padding:0 2px;border:0;background:none;color:#ffe3a3;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px}.remind-hint .icon-button{min-width:36px;min-height:44px;margin-left:auto;padding:0;background:none;color:var(--on-night-soft)}.plan-when{display:inline-flex;align-items:center;gap:3px;margin-left:8px;padding:1px 7px 1px 5px;border-radius:999px;background:#17614b1f;color:#17614b;font-weight:750}.remind-row{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:10px 14px;border:1.5px dashed var(--line);border-radius:var(--radius-control);background:none;color:var(--ink);font-size:15.5px;text-align:left}.remind-row>svg{flex:none;color:var(--place-ink)}.remind-row-text{flex:1}.remind-row-action{flex:none;font-size:13px;font-weight:750;color:var(--ink-soft)}.remind-row:hover{border-color:var(--place)}.remind-form .actions{margin-top:8px}.other-day{margin-bottom:0}.time-choices .choice{flex:1 1 96px;min-width:0}.choice:has(input:disabled){opacity:.45;cursor:not-allowed}.remind-hero{display:flex;align-items:center;gap:14px;margin-top:6px}.remind-badge,.saved-badge{display:grid;place-items:center;flex:none;width:62px;height:62px;border-radius:20px;background:var(--place-soft);color:var(--place-ink);animation:badge-in .6s cubic-bezier(.3,1.6,.5,1) backwards .15s}.saved-badge{margin:10px 0 8px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#ffe9a8,#ffc84a 60%,#f0a12a);color:var(--gold-ink);box-shadow:0 0 26px #ffc84a8c}@keyframes badge-in{0%{opacity:0;transform:scale(.5) rotate(-12deg)}}.remind-ways{margin-top:18px}.remind-note{display:flex;align-items:flex-start;gap:8px;margin:-2px 0 2px;font-size:14px;line-height:1.4;color:var(--ink-soft)}.remind-note svg{flex:none;color:var(--spruce)}.remind-email{padding:2px 14px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--paper-raised)}.remind-done{display:block;margin:14px auto 0}.remind-privacy{margin:0;text-align:center}.save-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:4px 0 2px;padding:10px 12px;border-radius:var(--radius-control);background:var(--paper-sunk)}.save-row>svg{flex:none;color:var(--ink-soft)}.save-row.is-saved>svg{color:var(--spruce)}.save-row p{flex:1 1 140px;margin:0;font-size:14.5px;font-weight:650}.save-row-actions{display:flex;flex-wrap:wrap}.save-row .button--link{min-height:40px}.account-step>*{animation:item-in .45s cubic-bezier(.2,.8,.2,1) backwards}.account-step>:nth-child(2){animation-delay:.04s}.account-step>:nth-child(3){animation-delay:.08s}.account-step>:nth-child(4){animation-delay:.12s}.account-step>:nth-child(n+5){animation-delay:.16s}.perks{display:grid;gap:8px;margin:14px 0 4px;padding:0;list-style:none}.perks li{display:flex;align-items:center;gap:10px;font-size:15.5px;font-weight:650}.perks svg{flex:none;padding:6px;width:32px;height:32px;border-radius:10px;background:var(--gold-soft);color:var(--amber-ink)}.account-form .button{width:100%}.account-form .field{margin-bottom:10px}.code-input{max-width:220px;font-size:30px!important;font-weight:700;letter-spacing:.24em;text-align:center}.email-shown{overflow-wrap:anywhere}.demo-note{display:flex;align-items:flex-start;gap:8px;margin:12px 0 0;padding:10px 12px;border-radius:var(--radius-control);background:var(--gold-soft);color:var(--amber-ink);font-size:14.5px;line-height:1.4}.demo-note svg{flex:none;margin-top:1px}.demo-note strong{letter-spacing:.08em}.link-row{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;margin-top:10px}.not-now{display:block;margin:8px auto 0}.email-choices{padding-top:4px}.news-choice{margin-top:6px}.account-sheet>.account-step>.button--primary{width:100%}.calm-motion .welcome-card,.calm-motion .welcome-glow,.calm-motion .remind-hint,.calm-motion .remind-badge,.calm-motion .saved-badge,.calm-motion .account-step>*{animation:none}.sheet-content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.sheet-content.nav-push{animation:push-in .42s cubic-bezier(.2,.8,.2,1) backwards}.sheet-content.nav-pop{animation:pop-in .42s cubic-bezier(.2,.8,.2,1) backwards}.sheet-content .sheet-scroll>*{animation:item-in .5s cubic-bezier(.2,.8,.2,1) backwards}.sheet-content .sheet-scroll>:nth-child(2){animation-delay:.04s}.sheet-content .sheet-scroll>:nth-child(3){animation-delay:.08s}.sheet-content .sheet-scroll>:nth-child(4){animation-delay:.12s}.sheet-content .sheet-scroll>:nth-child(5){animation-delay:.16s}.sheet-content .sheet-scroll>:nth-child(6){animation-delay:.2s}.sheet-content .sheet-scroll>:nth-child(7){animation-delay:.24s}.sheet-content .sheet-scroll>:nth-child(n+8){animation-delay:.28s}.sheet-content .idea-list>li,.sheet-content .story-list>li,.sheet-content .steps>.step{animation:item-in .5s cubic-bezier(.2,.8,.2,1) backwards}.sheet-content .idea-list>li:nth-child(1),.sheet-content .steps>.step:nth-child(1){animation-delay:.22s}.sheet-content .idea-list>li:nth-child(2),.sheet-content .steps>.step:nth-child(2){animation-delay:.28s}.sheet-content .idea-list>li:nth-child(3),.sheet-content .steps>.step:nth-child(3){animation-delay:.34s}.sheet-content .idea-list>li:nth-child(4){animation-delay:.4s}.sheet-content .idea-list>li:nth-child(5){animation-delay:.46s}.sheet-content .idea-list>li:nth-child(n+6){animation-delay:.52s}.sheet--focus .sheet-panel{max-height:64dvh}dialog.sheet--focus::backdrop{background:#06091e1f}dialog.sheet[open]::backdrop{animation:backdrop-in .32s ease both}dialog.sheet.is-closing::backdrop{animation:backdrop-out .26s ease forwards}dialog.sheet.is-closing .sheet-panel{animation:sheet-down .26s cubic-bezier(.5,0,.75,0) forwards;pointer-events:none}@keyframes push-in{0%{opacity:0;transform:translate(44px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:translate(-44px)}to{opacity:1;transform:none}}@keyframes item-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes sheet-down{to{opacity:.4;transform:translateY(60%)}}@keyframes backdrop-in{0%{opacity:0}}@keyframes backdrop-out{to{opacity:0}}.place-art svg{animation:ken-burns 18s ease-in-out infinite alternate}@keyframes ken-burns{0%{transform:scale(1.08) translate(-1.5%,1%)}to{transform:scale(1.16) translate(1.5%,-1%)}}.ring-glow{fill:#ffd36e;opacity:0;mix-blend-mode:screen;animation:ring-glow 1.4s ease-out forwards}.ring-flash--quick .ring-glow{animation-duration:.45s}.ring-comet{fill:none;stroke:#fff3c6;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:70 930;stroke-dashoffset:35;opacity:0;animation:comet 1.2s cubic-bezier(.45,.05,.35,1) forwards}.ring-comet--soft{stroke:#ffc84a;stroke-width:10;stroke-dasharray:90 910;stroke-dashoffset:45}.spotlight{fill:#040720;opacity:0;animation:spotlight-in .6s ease forwards .1s}@keyframes ring-glow{0%{opacity:0}25%{opacity:.32}to{opacity:0}}@keyframes comet{0%{opacity:0}10%,80%{opacity:1}to{opacity:0;stroke-dashoffset:-465}}@keyframes spotlight-in{to{opacity:.4}}.marker{transition:opacity .3s ease}.stage[data-focus] .marker:not(.is-focus){opacity:0;pointer-events:none}.marker.is-focus .marker-plate,.marker.is-spin .marker-plate{box-shadow:inset 0 1px #fff,0 0 0 4px #ffd36ebf,0 0 28px 6px #ffc8508c,0 12px 22px -8px #04071ca6}.marker.is-spin .marker-plate{scale:1.08}.marker-burst,.marker-ring{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none}.marker-burst:before,.marker-ring:before{content:"";position:absolute;left:-40px;top:-40px;width:80px;height:80px;border:3px solid #ffe08a;border-radius:50%;box-shadow:0 0 18px #ffd36ecc;opacity:0;animation:burst-ring .75s ease-out forwards}.marker-burst i{position:absolute;left:-3.5px;top:-3.5px;width:7px;height:7px;border-radius:50%;background:#fff1bf;box-shadow:0 0 10px 2px #ffc850d9;transform:rotate(var(--a)) translate(10px);animation:spark-out .75s cubic-bezier(.2,.8,.3,1) forwards}.marker.is-received .marker-plate{animation:marker-in .6s cubic-bezier(.3,1.4,.5,1) both var(--in),marker-float 4.6s ease-in-out infinite var(--float),received .7s cubic-bezier(.3,1.6,.5,1)}.marker.is-received .marker-plans{animation:badge-pop .6s cubic-bezier(.3,1.8,.5,1)}@keyframes burst-ring{0%{opacity:1;transform:scale(.35)}to{opacity:0;transform:scale(1.7)}}@keyframes spark-out{0%{opacity:1;transform:rotate(var(--a)) translate(10px) scale(1)}to{opacity:0;transform:rotate(var(--a)) translate(64px) scale(.3)}}@keyframes received{0%{scale:1}35%{scale:1.16}to{scale:1}}@keyframes badge-pop{0%{transform:scale(.4)}60%{transform:scale(1.35)}to{transform:scale(1)}}.lantern-flight{position:fixed;left:0;top:0;z-index:40;pointer-events:none;filter:drop-shadow(0 0 6px rgba(255,214,120,.95)) drop-shadow(0 0 16px rgba(255,170,40,.75));will-change:transform}.lantern-flight:before{content:"";position:absolute;inset:-18px -22px -6px;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,rgba(255,220,140,.55),transparent)}.plan-card.is-new{animation:card-in .6s cubic-bezier(.2,.9,.3,1.25) backwards 1.15s}@keyframes card-in{0%{opacity:0;transform:translateY(26px) scale(.9)}to{opacity:1;transform:none}}.idea-hero .idea-icon--large{position:relative;box-shadow:0 0 0 0 transparent,0 10px 24px -10px var(--place);animation:icon-glow 3.2s ease-in-out infinite .9s}.icon-draw path,.icon-draw circle,.icon-draw rect{stroke-dasharray:160;stroke-dashoffset:160;animation:draw-icon 1.1s cubic-bezier(.4,0,.2,1) forwards .3s}.icon-sparkles{position:absolute;inset:0;pointer-events:none}.icon-sparkles i{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px;border-radius:50%;background:#ffd36e;box-shadow:0 0 8px 1px #ffc850cc;opacity:0;animation:orbit-spark 3.6s linear infinite}.icon-sparkles i:nth-child(2){animation-delay:-.9s;width:4px;height:4px}.icon-sparkles i:nth-child(3){animation-delay:-1.8s}.icon-sparkles i:nth-child(4){animation-delay:-2.7s;width:4px;height:4px}@keyframes draw-icon{to{stroke-dashoffset:0}}@keyframes icon-glow{0%,to{box-shadow:0 0 0 0 transparent,0 10px 24px -10px var(--place)}50%{box-shadow:0 0 22px 4px color-mix(in srgb,var(--place) 40%,transparent),0 10px 24px -10px var(--place)}}@keyframes orbit-spark{0%{opacity:0;transform:rotate(0) translate(42px) scale(.6)}15%,60%{opacity:1}to{opacity:0;transform:rotate(300deg) translate(46px) scale(1)}}.idea-row,.story-row{position:relative;overflow:hidden;transition:transform .18s,border-color .18s,box-shadow .18s}.idea-row:hover,.story-row:hover{transform:translateY(-2px);box-shadow:0 12px 22px -14px #141a4080}.idea-row:hover:active,.story-row:hover:active{transform:translateY(0) scale(.985);transition-duration:.06s}.idea-row .idea-icon{transition:transform .25s cubic-bezier(.3,1.6,.5,1)}.idea-row:hover .idea-icon{transform:rotate(-6deg) scale(1.08)}.button,.idea-row,.story-row,.plan-open,.tray-surprise{position:relative;overflow:hidden}.button:before,.idea-row:before,.story-row:before,.plan-open:before,.tray-surprise:before{content:"";position:absolute;left:var(--px, 50%);top:var(--py, 50%);width:12px;height:12px;margin:-6px;border-radius:50%;background:#ffffff8c;opacity:0;pointer-events:none;transform:scale(1);transition:transform .55s ease-out,opacity .7s ease-out}.idea-row:before,.story-row:before,.plan-open:before{background:color-mix(in srgb,var(--place, #ffd36e) 22%,transparent)}.button:active:before,.idea-row:active:before,.story-row:active:before,.plan-open:active:before,.tray-surprise:active:before{opacity:1;transform:scale(40);transition:transform .45s ease-out,opacity 0s}.button--gold:after{content:"";position:absolute;inset:-20% auto -20% -60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skew(-18deg);animation:sheen 5s ease-in-out infinite 1.2s;pointer-events:none}.tray-surprise:disabled{opacity:.7}.calm-motion .sheet-content,.calm-motion .sheet-content .sheet-scroll>*,.calm-motion .sheet-content .idea-list>li,.calm-motion .sheet-content .story-list>li,.calm-motion .sheet-content .steps>.step,.calm-motion .place-art svg,.calm-motion .plan-card.is-new,.calm-motion .idea-hero .idea-icon--large,.calm-motion .button--gold:after,.calm-motion dialog.sheet[open]::backdrop{animation:none}.calm-motion .icon-sparkles,.calm-motion .button--gold:after{display:none}.calm-motion .idea-row:hover,.calm-motion .story-row:hover,.calm-motion .idea-row:hover .idea-icon{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.twinkle,.smoke,.ship,.beam,.lantern-halo{animation:none!important}}@media print{@page{margin:.5in}html,body,.app{background:#fff!important;color:#000}.app{max-width:none;height:auto;min-height:0;display:block}.stage-wrap{display:block;min-height:0;container-type:normal}.topbar,.tray,dialog,.marker-plans{display:none!important}.layer{transform:none!important}.snow,.vignette{display:none!important}.marker{transform:translate(-50%,-50%)!important}.stage{width:3.4in;height:auto;margin:0 auto;break-inside:avoid}.marker{animation:none;box-shadow:none;border-color:#999}.scene{border-radius:12px}.print-only{display:block}.print-list{max-width:6in;margin:.3in auto 0;font-size:11pt}.print-title{margin:0 0 12pt;font-family:var(--font-display);font-size:22pt;text-align:center;color:#000}.print-list h2{margin:14pt 0 4pt;font-size:13pt}.print-list ul{margin:0;padding-left:16pt}.print-list li{margin:3pt 0}*{animation:none!important}}
