.vinyl.theme-vinyl_noir{--bg: #141215;--fg: #f4ecdf;--soft: #b5a894;--accent: #e0a458;--accent-ink: #141215;--card: rgba(255, 248, 235, .06);--gold: #f0c27b;--disc: #0d0c0e}.vinyl.theme-vinyl_sleeve{--bg: #efe4d0;--fg: #2b211a;--soft: #6e5b49;--accent: #b2452f;--accent-ink: #fff8ee;--card: rgba(255, 252, 245, .75);--gold: #9a6a1f;--disc: #17141a}.vinyl.theme-vinyl_rose{--bg: #2a1520;--fg: #fbe9ef;--soft: #c9a2b0;--accent: #f08aa6;--accent-ink: #2a1520;--card: rgba(255, 240, 245, .07);--gold: #f6c48f;--disc: #120a0f}.vinyl{background:radial-gradient(110% 60% at 50% 0%,color-mix(in srgb,var(--accent) 14%,var(--bg)),var(--bg) 62%)}.vinyl .book-viewport:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.08;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.vinyl .display{font-family:var(--serif)}.vinyl .vinyl-disc{position:relative;width:100%;aspect-ratio:1;border-radius:50%;filter:drop-shadow(0 22px 30px rgba(0,0,0,.45))}.vinyl .vinyl-grooves{position:absolute;inset:0;border-radius:50%;display:grid;place-items:center;background:repeating-radial-gradient(circle,var(--disc) 0 1.5px,color-mix(in srgb,var(--disc) 82%,#fff) 2px,var(--disc) 2.6px),var(--disc);box-shadow:inset 0 0 0 2px #ffffff0d,inset 0 0 0 10px var(--disc)}.vinyl .vinyl-spinning,.vinyl .vinyl-disc.spinning .vinyl-grooves{animation:vinyl-spin 1.8s linear infinite}.vinyl .vinyl-sheen{position:absolute;inset:0;border-radius:50%;pointer-events:none;background:conic-gradient(from 20deg,transparent 0 8%,rgba(255,255,255,.16) 13%,transparent 19% 52%,rgba(255,255,255,.11) 58%,transparent 64%)}.vinyl .vinyl-label{position:relative;width:36%;aspect-ratio:1;border-radius:50%;display:grid;place-content:center;gap:2px;text-align:center;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--accent) 70%,#fff),var(--accent) 60%,color-mix(in srgb,var(--accent) 70%,#000));background-size:cover;background-position:center;color:var(--accent-ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 60%,#000)}.vinyl .vinyl-label-names{font:italic 600 clamp(10px,3.2vw,13px)/1.1 var(--serif);padding:0 10%}.vinyl .vinyl-label-rpm{font-size:8px;letter-spacing:.2em;opacity:.7}.vinyl .vinyl-spindle{position:absolute;left:50%;top:50%;width:7px;height:7px;translate:-50% -50%;border-radius:50%;background:linear-gradient(135deg,#f2f2f2,#8a8a8a);box-shadow:0 1px 2px #0009}.vinyl .vinyl-disc.small{width:min(46vw,180px);margin:0 auto 6px}.vinyl .vinyl-disc.small .vinyl-label{width:44%}@keyframes vinyl-spin{to{transform:rotate(360deg)}}.vinyl .vinyl-hook{justify-content:flex-start}.vinyl .vinyl-hook-kicker{position:relative;z-index:2;margin-top:8%}.vinyl .vinyl-deck{position:relative;width:min(84vw,340px,46vh);aspect-ratio:1;margin:6% auto 0;transition:translate .9s var(--out),scale .9s var(--out)}.vinyl .vinyl-deck.playing{translate:0 -4%;scale:.92}.vinyl .vinyl-platter{position:absolute;inset:-5%;border-radius:18px;background:linear-gradient(160deg,color-mix(in srgb,var(--fg) 10%,var(--bg)),color-mix(in srgb,#000 30%,var(--bg)));box-shadow:0 30px 50px -20px #0009,inset 0 1px #ffffff14}.vinyl .vinyl-deck .vinyl-disc{position:absolute;left:4%;top:14%;width:80%}.vinyl .vinyl-pivot{position:absolute;left:88%;top:8%;width:30px;height:30px;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fafafa,#9a9a9a 55%,#555);box-shadow:0 6px 12px #00000080;z-index:3}.vinyl .vinyl-arm{position:absolute;left:calc(88% - 22px);top:8%;width:44px;height:66%;padding:0;border:0;background:none;transform-origin:50% 0;rotate:calc(var(--p) * 24deg);transition:rotate .5s var(--spring);z-index:2;cursor:grab;touch-action:none;filter:drop-shadow(4px 10px 8px rgba(0,0,0,.45))}.vinyl .vinyl-arm.dragging{transition:none;cursor:grabbing}.vinyl .vinyl-arm:disabled{cursor:default}.vinyl .vinyl-arm-rod{position:absolute;left:50%;top:0;bottom:14%;width:5px;translate:-50% 0;border-radius:3px;background:linear-gradient(90deg,#8d8d8d,#f2f2f2 50%,#9a9a9a)}.vinyl .vinyl-arm-head{position:absolute;left:50%;bottom:0;width:26px;height:18%;translate:-50% 0;rotate:18deg;border-radius:5px 5px 8px 8px;background:linear-gradient(180deg,#d8d8d8,#6f6f6f)}.vinyl .vinyl-arm-head:after{content:"";position:absolute;left:50%;bottom:-5px;width:3px;height:7px;translate:-50% 0;background:var(--gold);border-radius:1px}.vinyl .vinyl-hook:not(.hook-done) .vinyl-arm-head{box-shadow:0 0 color-mix(in srgb,var(--gold) 55%,transparent);animation:vinyl-nudge 1.6s ease-in-out infinite}@keyframes vinyl-nudge{50%{box-shadow:0 0 0 10px transparent}}.vinyl .vinyl-hook .hook-payoff{bottom:70px;gap:8px}.vinyl .vinyl-hook .hook-payoff .display{font-size:clamp(30px,8vw,40px);margin:0}.vinyl .vinyl-hook .hook-payoff .muted{margin:0;max-width:30ch}.vinyl .vinyl-now{display:inline-flex;gap:8px;align-items:center;color:var(--gold);margin:0}.vinyl .vinyl-eq{display:inline-flex;gap:2px;align-items:flex-end;height:10px}.vinyl .vinyl-eq i{width:2px;height:100%;background:currentColor;transform-origin:bottom;animation:vinyl-eq .9s ease-in-out infinite}.vinyl .vinyl-eq i:nth-child(2){animation-delay:-.3s}.vinyl .vinyl-eq i:nth-child(3){animation-delay:-.6s}@keyframes vinyl-eq{50%{transform:scaleY(.3)}}.vinyl .vinyl-list{gap:10px}.vinyl .vinyl-side{list-style:none;margin:4px auto 0;padding:14px 16px;width:min(100%,420px);background:var(--card);border-radius:14px;box-shadow:0 10px 24px -16px #00000080,inset 0 1px #ffffff0d;text-align:left}.vinyl .vinyl-side-label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--fg) 14%,transparent)}.vinyl .vinyl-side button{width:100%;display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:baseline;padding:11px 0;border:0;border-bottom:1px dashed color-mix(in srgb,var(--fg) 12%,transparent);background:none;color:var(--fg);text-align:left;font:400 16px/1.3 var(--serif);cursor:pointer;transition:transform .2s var(--out)}.vinyl .vinyl-side li:last-child button{border-bottom:0}.vinyl .vinyl-side button:hover{transform:translate(3px)}.vinyl .vinyl-num,.vinyl .vinyl-time{font:600 12px/1 ui-monospace,Menlo,monospace;color:var(--soft)}.vinyl .vinyl-track .lede{max-width:32ch;margin:0 auto}.vinyl .vinyl-sleeve-card{position:relative;margin:6px auto 0;width:min(100%,420px);padding:26px 22px 20px;text-align:left;border-radius:6px;background:linear-gradient(170deg,color-mix(in srgb,var(--fg) 6%,var(--bg)),var(--card));box-shadow:0 24px 40px -24px #0009,inset 0 0 0 1px color-mix(in srgb,var(--fg) 8%,transparent)}.vinyl .vinyl-sleeve-card .lede{margin:0;font-size:16px}.vinyl .vinyl-sign{font:italic 400 20px var(--serif);color:var(--gold);margin:18px 0 2px}.vinyl .vinyl-credit{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);margin:0}.vinyl .vinyl-finale .vinyl-disc{width:min(52vw,220px);margin:0 auto 8px}.vinyl .vinyl-finale .display{max-width:18ch;margin:0 auto}@media(prefers-reduced-motion:reduce){.vinyl .vinyl-disc.spinning .vinyl-grooves,.vinyl .vinyl-eq i,.vinyl .vinyl-arm-head{animation:none!important}.vinyl .vinyl-arm,.vinyl .vinyl-deck{transition:none}}.openwhen.theme-ow_kraft{--bg: #e9dcc6;--fg: #2f241b;--soft: #6f5c48;--accent: #a2462f;--accent-ink: #fff7ec;--card: #fbf5ea;--gold: #a0611d;--paper: #c8a77d}.openwhen.theme-ow_linen{--bg: #f6f2ea;--fg: #1f2a36;--soft: #5c6b7b;--accent: #3b5a7a;--accent-ink: #fff;--card: #fffdf8;--gold: #9c6b2e;--paper: #dfd3bf}.openwhen.theme-midnight{--bg: #171a2c;--fg: #eef0f8;--soft: #9da3c2;--accent: #d8b46a;--accent-ink: #171a2c;--card: #f4ede0;--gold: #e3c27e;--paper: #b99a6c}.openwhen{background:radial-gradient(120% 70% at 50% 10%,color-mix(in srgb,#fff 18%,var(--bg)),var(--bg) 70%)}.openwhen .book-viewport:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.7' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .3 0 0 0 0 .2 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.openwhen.theme-midnight .book-viewport:after{mix-blend-mode:overlay}.openwhen .display{font-family:var(--serif)}.openwhen .ow-from{font:italic 400 17px var(--serif);color:var(--soft);margin:4px 0 0}.openwhen .ow-hook-kicker{margin-top:12%;position:relative;z-index:2}.openwhen .ow-env{position:relative;width:min(84vw,340px);aspect-ratio:1.45;margin:12% auto 0;transition:translate .9s var(--out)}.openwhen .ow-env.torn{translate:0 22%}.openwhen .ow-env-front{position:absolute;inset:0;z-index:2;border-radius:6px;background:linear-gradient(165deg,color-mix(in srgb,#fff 22%,var(--paper)),var(--paper));box-shadow:0 30px 40px -24px #28190a8c,0 2px #ffffff4d inset;overflow:hidden}.openwhen .ow-env-front:before{content:"";position:absolute;inset:0;background:linear-gradient(to top right,transparent 49.6%,rgba(0,0,0,.08) 50%,transparent 50.6%),linear-gradient(to top left,transparent 49.6%,rgba(0,0,0,.08) 50%,transparent 50.6%)}.openwhen .ow-env-stamp{position:absolute;right:7%;top:22%;width:38px;height:46px;display:grid;place-items:center;color:var(--accent);background:var(--card);outline:2px dashed color-mix(in srgb,var(--card) 70%,var(--paper));outline-offset:-4px;font-size:18px;box-shadow:0 2px 4px #00000026;rotate:4deg}.openwhen .ow-env-addr{position:absolute;left:0;right:0;bottom:22%;font:italic 400 26px var(--serif);color:color-mix(in srgb,var(--fg) 82%,var(--paper))}.openwhen .ow-strip{position:absolute;left:0;right:0;top:0;height:16%;z-index:3}.openwhen .ow-strip:after{content:"";position:absolute;left:4%;right:4%;bottom:0;border-bottom:2px dotted color-mix(in srgb,var(--fg) 30%,transparent)}.openwhen .ow-strip-rest{position:absolute;top:0;bottom:0;right:0;left:calc(var(--p) * 100%);border-radius:0 6px 0 0;background:color-mix(in srgb,#fff 18%,var(--paper))}.openwhen .ow-strip-torn{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p) * 100%);background:color-mix(in srgb,#fff 12%,var(--paper));transform-origin:0 100%;transform:translateY(calc(var(--p) * -14px)) rotate(calc(var(--p) * -5deg));clip-path:polygon(0 0,100% 0,100% 80%,96% 100%,90% 84%,84% 100%,78% 86%,72% 100%,66% 84%,60% 100%,54% 86%,48% 100%,42% 84%,36% 100%,30% 86%,24% 100%,18% 84%,12% 100%,6% 86%,0 100%);box-shadow:0 6px 10px #0003}.openwhen .ow-env.torn .ow-strip{animation:ow-fly .8s var(--out) forwards}@keyframes ow-fly{to{transform:translate(40px,-120px) rotate(-18deg);opacity:0}}.openwhen .ow-tab{position:absolute;left:-6px;top:-4px;z-index:4;width:52px;height:52px;border-radius:50%;border:0;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-size:18px;box-shadow:0 10px 18px -8px var(--accent);cursor:grab;touch-action:none;animation:ow-pulse 1.8s ease-in-out infinite}.openwhen .ow-tab.dragging{animation:none;cursor:grabbing;scale:1.08}@keyframes ow-pulse{50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--accent) 0%,transparent),0 10px 18px -8px var(--accent)}}.openwhen .ow-env-letter{position:absolute;left:6%;right:6%;top:4%;height:90%;z-index:1;display:grid;align-content:center;gap:4px;padding:10px;border-radius:4px;background:var(--card);color:#2f241b;box-shadow:0 6px 18px #0000001f;transition:transform 1s var(--out) .25s}.openwhen .ow-env.torn .ow-env-letter{transform:translateY(-62%)}.openwhen .ow-env-letter strong{font:400 28px var(--serif)}.openwhen .ow-env-letter .kicker{color:#7a6450}.openwhen .ow-env-from{font:italic 400 15px var(--serif);color:#7a6450}.openwhen .ow-hook .hook-payoff{bottom:70px;gap:6px}.openwhen .ow-hook .hook-payoff .display,.openwhen .ow-hook .hook-payoff .muted{margin:0}.openwhen .ow-hook .hook-payoff .display{text-shadow:none}.openwhen .ow-stack{display:grid;gap:10px;width:min(100%,380px);margin:8px auto 0}.openwhen .ow-mini{position:relative;display:flex;align-items:center;gap:12px;min-height:64px;padding:14px 16px 14px 18px;border:0;border-radius:6px;text-align:left;overflow:hidden;color:#2f241b;background:linear-gradient(170deg,color-mix(in srgb,#fff 24%,var(--paper)),var(--paper));box-shadow:0 12px 20px -14px #28190a99;rotate:calc((var(--i) - 2) * .8deg);cursor:pointer;transition:transform .25s var(--spring);animation:rise .7s var(--out) calc(var(--i) * 70ms + .1s) both}.openwhen .ow-mini:hover{transform:translateY(-2px) rotate(-1deg)}.openwhen .ow-mini:active{transform:scale(.97)}.openwhen .ow-mini-flap{position:absolute;inset:0 0 50%;background:linear-gradient(to bottom right,transparent 49.5%,rgba(0,0,0,.06) 50%,transparent 51%) left / 50% 100% no-repeat,linear-gradient(to bottom left,transparent 49.5%,rgba(0,0,0,.06) 50%,transparent 51%) right / 50% 100% no-repeat}.openwhen .ow-mini-text{position:relative;flex:1;font:italic 400 19px/1.25 var(--serif)}.openwhen .ow-mini-seal{position:relative;width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,#fff 25%,var(--accent)),var(--accent));color:var(--accent-ink);font-size:13px;box-shadow:0 2px 4px #00000040}.openwhen .ow-mini.read{opacity:.72}.openwhen .ow-reading{gap:14px}.openwhen .ow-paper{width:min(100%,400px);margin:0 auto;padding:26px 22px 22px;text-align:left;color:#2f241b;border-radius:3px;background:repeating-linear-gradient(transparent 0 31px,#3c50781f 31px 32px),var(--card);background-position:0 14px;box-shadow:0 24px 40px -22px #28190a8c;animation:ow-unfold .7s var(--out) both;transform-origin:50% 0}.openwhen .ow-paper .kicker{color:#8a6a4c;margin:0 0 6px}.openwhen .ow-paper .ow-from{color:#7a6450;text-align:right}@keyframes ow-unfold{0%{transform:perspective(700px) rotateX(-70deg);opacity:0}}.openwhen .ow-hand{font:italic 400 20px/32px var(--serif);margin:0}.openwhen .ow-hand span{display:inline-block;clip-path:inset(0 100% 0 0);animation:ow-ink .32s linear calc(var(--d) + .5s) forwards}.openwhen .ow-hand .gold{color:var(--accent)}@keyframes ow-ink{to{clip-path:inset(0 -4px 0 0)}}.openwhen .ow-photo{margin:0 auto;width:min(66%,230px);padding:10px 10px 34px;background:#fffdf8;box-shadow:0 18px 30px -18px #00000080;rotate:-2deg}.openwhen .ow-photo img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.openwhen .ow-sign{font:italic 400 22px var(--serif);color:var(--accent);margin:8px 0 0}@media(prefers-reduced-motion:reduce){.openwhen .ow-hand span{animation:none;clip-path:none}.openwhen .ow-tab,.openwhen .ow-paper,.openwhen .ow-mini{animation:none}.openwhen .ow-env,.openwhen .ow-env-letter{transition:none}}.writtenstars.theme-stars_night{--bg: #121b35;--fg: #f1eee8;--soft: #b4bdd2;--accent: #e9cf82;--accent-ink: #20233a;--card: #202a46;--gold: #f2d58d;--line: #404d6b;--sky: #080f24}.writtenstars.theme-stars_dusk{--bg: #34263e;--fg: #f8edf0;--soft: #d1b9c9;--accent: #efad95;--accent-ink: #3b2535;--card: #49364c;--gold: #f2c79b;--line: #6d536c;--sky: #20192e}.writtenstars.theme-stars_aurora{--bg: #102d35;--fg: #eff7ef;--soft: #b9d1cc;--accent: #91d7c3;--accent-ink: #173337;--card: #1d4045;--gold: #d9db9b;--line: #41646a;--sky: #0a202a}.writtenstars{background:radial-gradient(90% 55% at 50% 0%,color-mix(in srgb,var(--accent) 12%,var(--bg)),var(--bg) 75%)}.writtenstars .book-viewport:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:radial-gradient(circle,color-mix(in srgb,var(--accent) 82%,white) 0 1px,transparent 1.4px),radial-gradient(circle,color-mix(in srgb,var(--fg) 60%,transparent) 0 1px,transparent 1.3px);background-size:73px 81px,109px 127px;background-position:13px 18px,44px 32px}.writtenstars .display{font-family:var(--serif)}.writtenstars .ws-hook{gap:5px;padding-top:24px}.writtenstars .ws-hook>.kicker{margin:0}.writtenstars .ws-hook>.display{margin:0;font-size:clamp(36px,9vw,50px);line-height:.94}.writtenstars .ws-sky{position:relative;width:min(88%,340px);aspect-ratio:1.38;margin:0 auto;border-radius:50%;background:radial-gradient(ellipse at 50% 55%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 68%)}.writtenstars .ws-heart-map{position:absolute;inset:2% 4%;width:92%;height:96%;overflow:visible}.writtenstars .ws-heart-outline{fill:none;stroke:color-mix(in srgb,var(--accent) 28%,transparent);stroke-width:1;stroke-dasharray:2 6}.writtenstars .ws-threads{fill:none;stroke:var(--accent);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:600;stroke-dashoffset:600;transition:stroke-dashoffset 1s ease-out;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 65%,transparent))}.writtenstars .ws-hook.constellation-made .ws-threads{stroke-dashoffset:0}.writtenstars .ws-star-dot path{fill:var(--accent);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 80%,transparent))}.writtenstars .ws-bright-star{position:absolute;z-index:2;width:44px;height:44px;display:grid;place-items:center;padding:4px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:50%;color:var(--accent);background:color-mix(in srgb,var(--sky) 76%,transparent);box-shadow:0 0 22px color-mix(in srgb,var(--accent) 32%,transparent);translate:-50% -50%;cursor:grab;touch-action:none}.writtenstars .ws-bright-star:active{cursor:grabbing}.writtenstars .ws-bright-star:disabled{cursor:default}.writtenstars .ws-bright-star svg{width:100%;height:100%;overflow:visible;fill:currentColor;filter:drop-shadow(0 0 5px currentColor)}.writtenstars .ws-payoff{position:relative;left:auto;right:auto;bottom:auto;margin:0 0 10px;gap:6px}.writtenstars .ws-payoff .muted{margin:0;max-width:32ch;font-size:14px}.writtenstars .ws-dedication{margin:0;color:var(--soft);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.writtenstars .ws-meeting{gap:10px}.writtenstars .ws-date{display:flex;align-items:center;gap:10px;color:var(--accent);font:500 13px ui-monospace,monospace;letter-spacing:.06em}.writtenstars .ws-date i{font-style:normal}.writtenstars .ws-meeting .display{margin:0;max-width:18ch;font-size:clamp(30px,7vw,41px)}.writtenstars .ws-place{margin:-4px 0 0;color:var(--accent);font:italic 400 18px var(--serif)}.writtenstars .ws-met{width:min(100%,390px);margin:0;font:400 16px/1.45 var(--serif)}.writtenstars .ws-photo{width:min(54vw,190px);margin:4px auto 0;padding:7px 7px 22px;background:var(--card);box-shadow:0 12px 24px -18px #000;rotate:-2deg}.writtenstars .ws-photo img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.writtenstars .ws-memories{gap:10px}.writtenstars .ws-memories .display{margin:0}.writtenstars .ws-memory-list{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;width:min(100%,420px)}.writtenstars .ws-memory{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:8px 11px;border:1px solid var(--line);border-radius:999px;color:var(--fg);background:color-mix(in srgb,var(--card) 82%,transparent);font:500 12px/1.2 var(--sans);cursor:pointer}.writtenstars .ws-memory.active{border-color:var(--accent);color:var(--accent);background:var(--card)}.writtenstars .ws-memory-star{color:var(--accent);font-size:14px}.writtenstars .ws-memory-note{width:min(100%,390px);min-height:95px;padding:18px 20px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:50% 48% 46% 52%/10% 12%;background:color-mix(in srgb,var(--card) 85%,transparent);text-align:left}.writtenstars .ws-memory-note h3{margin:0 0 5px;color:var(--accent);font:italic 500 19px var(--serif)}.writtenstars .ws-memory-note p{margin:0;color:var(--fg);font:400 15px/1.42 var(--serif)}.writtenstars .ws-finale{gap:12px}.writtenstars .ws-final-constellation{width:min(64%,240px);overflow:visible}.writtenstars .ws-final-constellation>path{fill:none;stroke:color-mix(in srgb,var(--accent) 58%,transparent);stroke-width:1;stroke-dasharray:2 6}.writtenstars .ws-final-constellation g{fill:var(--accent);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 78%,transparent))}.writtenstars .ws-finale .display{max-width:18ch;margin:0 auto}.writtenstars .ws-sign{margin:0;color:var(--accent);font:italic 400 21px var(--serif)}.writtenstars .ws-names{margin:0;color:var(--soft);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.writtenstars :is(button,[tabindex]):focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:390px){.writtenstars .ws-memory{font-size:11px;padding:7px 9px}}@media(prefers-reduced-motion:reduce){.writtenstars .ws-threads{transition:none;stroke-dashoffset:0}.writtenstars .ws-bright-star,.writtenstars .ws-photo{transition:none!important}}.littlethings.theme-little_things_sunlight{--bg: #f6edda;--fg: #3b3028;--soft: #78695a;--accent: #bd7751;--accent-ink: #fffaf3;--card: #fffaf1;--gold: #a56442;--line: #dcc7aa}.littlethings.theme-little_things_paper{--bg: #f1e5cf;--fg: #34382f;--soft: #68705c;--accent: #65795e;--accent-ink: #fff;--card: #faf5e8;--gold: #a16a38;--line: #d5c5a8}.littlethings.theme-little_things_evening{--bg: #2a2633;--fg: #f7eee2;--soft: #c5b7a9;--accent: #e2ad79;--accent-ink: #30242a;--card: #393341;--gold: #efc994;--line: #655765}.littlethings{background:radial-gradient(100% 70% at 50% 0%,color-mix(in srgb,var(--accent) 16%,var(--bg)),var(--bg) 72%)}.littlethings .display{font-family:var(--serif)}.littlethings .lt-hook{gap:8px;padding-top:22px}.littlethings .lt-hook>.kicker{margin:0}.littlethings .lt-hook .display{margin:0;font-size:clamp(28px,7vw,40px);line-height:1.05}.littlethings .lt-intro{max-width:36ch;margin:0 auto;font-size:14px}.littlethings .lt-object-grid{width:min(100%,410px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px auto}.littlethings .lt-object,.littlethings .lt-shelf-item{min-width:0;display:grid;justify-items:center;align-content:center;gap:4px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 90%,transparent);color:var(--fg);cursor:pointer;box-shadow:0 8px 20px -16px #28190a99;transition:transform .2s ease,border-color .2s ease,background .2s ease}.littlethings .lt-object{min-height:72px;padding:5px 4px;font:500 11px/1.15 var(--sans)}.littlethings .lt-object svg,.littlethings .lt-shelf-item svg{width:32px;height:32px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.littlethings .lt-object:hover,.littlethings .lt-shelf-item:hover{transform:translateY(-2px)}.littlethings .lt-object.selected,.littlethings .lt-shelf-item.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}.littlethings .lt-object.opened:not(.selected) svg{opacity:.55}.littlethings .lt-reveal{width:min(100%,380px);min-height:66px;padding:8px 14px;border-left:2px solid var(--accent);background:color-mix(in srgb,var(--card) 72%,transparent);text-align:left}.littlethings .lt-reveal .kicker{margin:0 0 3px;color:var(--accent);font-size:10px}.littlethings .lt-reveal p:last-child{margin:0;font:400 15px/1.35 var(--serif)}.littlethings .lt-hook .page-button{min-height:42px;margin-top:2px;padding:10px 18px}.littlethings .lt-shelf{gap:12px}.littlethings .lt-shelf .display{margin:0}.littlethings .lt-shelf-grid{width:min(100%,410px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.littlethings .lt-shelf-item{min-height:74px;padding:5px;font:500 11px/1.15 var(--sans)}.littlethings .lt-shelf-item svg{width:28px;height:28px}.littlethings .lt-memory-card{width:min(100%,380px);position:relative;padding:20px 22px;border-radius:3px;background:var(--card);color:#43382d;box-shadow:0 20px 35px -24px #23180f8c;text-align:left}.littlethings .lt-memory-card h3{margin:0 0 8px;color:var(--accent);font:italic 500 20px var(--serif)}.littlethings .lt-memory-card p{margin:0;font:400 17px/1.5 var(--serif)}.littlethings .lt-memory-heart{position:absolute;right:18px;top:14px;color:var(--accent);font-size:22px}.littlethings .lt-finale{gap:12px}.littlethings .lt-heart{width:min(30vw,112px);overflow:visible;fill:color-mix(in srgb,var(--accent) 18%,transparent);stroke:var(--accent);stroke-width:2;animation:lt-heartbeat 2.4s ease-in-out infinite}.littlethings .lt-heart.still{animation:none}.littlethings .lt-finale .display{max-width:19ch;margin:0 auto}.littlethings .lt-sign{margin:4px 0 0;color:var(--accent);font:italic 400 22px var(--serif)}.littlethings .lt-names{margin:0;color:var(--soft);letter-spacing:.12em;font-size:11px;text-transform:uppercase}@keyframes lt-heartbeat{50%{transform:scale(1.06)}}@media(max-width:390px){.littlethings .lt-object-grid{gap:5px}.littlethings .lt-object{min-height:65px;font-size:10px}.littlethings .lt-object svg{width:28px;height:28px}}@media(prefers-reduced-motion:reduce){.littlethings .lt-heart,.littlethings .lt-object,.littlethings .lt-shelf-item{animation:none!important;transition:none!important}}.longwayhome.theme-homeward_dusk{--bg: #eee4d4;--fg: #342b2a;--soft: #796b62;--accent: #a85d4e;--accent-ink: #fff9f0;--card: #fff9ef;--gold: #a36d39;--line: #d9c8b1;--map: #d8c6ac}.longwayhome.theme-homeward_moss{--bg: #e7eadf;--fg: #30392f;--soft: #697466;--accent: #647b5d;--accent-ink: #fff;--card: #f7f8ee;--gold: #a36d39;--line: #c5cfbd;--map: #cbd4c0}.longwayhome.theme-homeward_ink{--bg: #232c35;--fg: #f4eee5;--soft: #c0b8aa;--accent: #e2aa72;--accent-ink: #2b2a30;--card: #333b43;--gold: #e8c18c;--line: #59636b;--map: #454d53}.longwayhome{background:radial-gradient(110% 70% at 50% 0%,color-mix(in srgb,var(--accent) 16%,var(--bg)),var(--bg) 72%)}.longwayhome .display{font-family:var(--serif)}.longwayhome .lwh-hook{gap:4px;padding-top:24px}.longwayhome .lwh-hook>.kicker{margin:0}.longwayhome .lwh-hook .display{margin:0;font-size:clamp(34px,8vw,46px);line-height:.97}.longwayhome .lwh-map{position:relative;width:min(90%,390px);aspect-ratio:1.45;margin:4px auto 0;border-radius:46% 54% 43% 57%/48% 41% 59% 52%;background:radial-gradient(ellipse at 30% 25%,color-mix(in srgb,var(--card) 86%,transparent),color-mix(in srgb,var(--map) 70%,transparent));border:1px solid color-mix(in srgb,var(--line) 80%,transparent);box-shadow:inset 0 0 24px color-mix(in srgb,var(--map) 65%,transparent),0 14px 30px -25px #1e140fb3}.longwayhome .lwh-route{position:absolute;inset:4% 3%;width:94%;height:92%;overflow:visible}.longwayhome .lwh-route path{fill:none;stroke-linecap:round;stroke-linejoin:round}.longwayhome .lwh-route .route-shadow{stroke:color-mix(in srgb,var(--accent) 18%,transparent);stroke-width:10}.longwayhome .lwh-route .route-ink{stroke:var(--accent);stroke-width:3;stroke-dasharray:420;stroke-dashoffset:420;transition:stroke-dashoffset 1.1s ease-out}.longwayhome .lwh-route .route-dashes{stroke:var(--card);stroke-width:1.4;stroke-dasharray:2 8}.longwayhome .lwh-hook.route-complete .route-ink{stroke-dashoffset:0}.longwayhome .lwh-route circle{fill:var(--accent);stroke:var(--card);stroke-width:3}.longwayhome .lwh-pin{position:absolute;width:23px;height:23px;display:grid;place-items:center;color:var(--accent-ink);background:var(--accent);border-radius:50% 50% 50% 0;rotate:-45deg;font:700 10px var(--sans);box-shadow:0 3px 9px color-mix(in srgb,var(--accent) 38%,transparent)}.longwayhome .lwh-pin i{font-style:normal;rotate:45deg}.longwayhome .pin-1{left:4%;top:68%}.longwayhome .pin-2{left:28%;top:44%}.longwayhome .pin-3{left:53%;top:50%}.longwayhome .pin-4{right:4%;top:9%}.longwayhome .lwh-traveller{position:absolute;z-index:2;width:38px;height:38px;display:grid;place-items:center;padding:0;border:2px solid var(--card);border-radius:50%;color:var(--accent-ink);background:var(--accent);box-shadow:0 5px 14px color-mix(in srgb,var(--accent) 40%,transparent);translate:-50% -50%;cursor:grab;touch-action:none}.longwayhome .lwh-traveller:active{cursor:grabbing}.longwayhome .lwh-traveller:disabled{cursor:default}.longwayhome .lwh-traveller span{font-size:18px}.longwayhome .lwh-map-caption{margin:0;color:var(--soft);font:italic 14px var(--serif)}.longwayhome .lwh-payoff{position:relative;left:auto;right:auto;bottom:auto;margin:0 0 12px;gap:8px}.longwayhome .lwh-payoff .muted{max-width:34ch;margin:0;font-size:14px}.longwayhome .lwh-stops{gap:12px}.longwayhome .lwh-stops .display{margin:0;font-size:clamp(30px,7vw,40px)}.longwayhome .lwh-stop-list{list-style:none;width:min(100%,410px);margin:2px auto 0;padding:0;display:grid;gap:8px;text-align:left}.longwayhome .lwh-stop-list li{min-width:0}.longwayhome .lwh-stop{width:100%;display:grid;grid-template-columns:35px 1fr 18px;gap:8px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:10px;color:var(--fg);background:color-mix(in srgb,var(--card) 70%,transparent);text-align:left;font:500 15px var(--serif);cursor:pointer}.longwayhome .lwh-stop.active{border-color:var(--accent);background:var(--card)}.longwayhome .lwh-stop-number{color:var(--accent);font:700 11px ui-monospace,monospace}.longwayhome .lwh-stop-memory{margin:-2px 8px 3px 55px;padding:4px 4px 7px;color:var(--soft);font:400 14px/1.4 var(--serif)}.longwayhome .lwh-finale{gap:12px}.longwayhome .lwh-final-map{width:min(72%,300px);overflow:visible}.longwayhome .lwh-final-map path{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:3 6;stroke-linecap:round}.longwayhome .lwh-final-map circle{fill:var(--accent)}.longwayhome .lwh-finale .display{max-width:20ch;margin:0 auto}.longwayhome .lwh-sign{margin:0;font:italic 400 21px var(--serif);color:var(--accent)}.longwayhome .lwh-names{margin:0;color:var(--soft);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.longwayhome :is(button,[tabindex]):focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:390px){.longwayhome .lwh-map{width:96%}.longwayhome .lwh-pin{scale:.85}}@media(prefers-reduced-motion:reduce){.longwayhome .lwh-route .route-ink{transition:none;stroke-dashoffset:0}.longwayhome .lwh-traveller,.longwayhome .lwh-stop{transition:none!important}}.nextchapter.theme-future_postcard{--bg: #f4e5c7;--fg: #3a302c;--soft: #78675c;--accent: #bd6c4d;--accent-ink: #fff9ef;--card: #fff9ed;--gold: #9f6938;--line: #d7bea0;--sky: #dfcda9}.nextchapter.theme-future_sky{--bg: #dce8e9;--fg: #29383c;--soft: #607579;--accent: #547883;--accent-ink: #fff;--card: #f5faf8;--gold: #a16c3b;--line: #bfd0d0;--sky: #bed1d2}.nextchapter.theme-future_rose{--bg: #f3e1e2;--fg: #392b31;--soft: #79636d;--accent: #a34d62;--accent-ink: #fff8f3;--card: #fff7f3;--gold: #a16c3b;--line: #ddc0c4;--sky: #e3c4c5}.nextchapter{background:radial-gradient(120% 72% at 50% 0%,color-mix(in srgb,#fff 26%,var(--bg)),var(--bg) 70%)}.nextchapter .display{font-family:var(--serif)}.nextchapter .nc-hook{gap:7px;padding-top:24px}.nextchapter .nc-hook>.kicker{margin:0}.nextchapter .nc-hook>.display{margin:0;font-size:clamp(34px,8vw,46px)}.nextchapter .nc-postcard{position:relative;width:min(88%,370px);min-height:246px;margin:8px auto 0;padding:20px 18px 52px;overflow:visible;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:4px;color:var(--fg);background:linear-gradient(135deg,color-mix(in srgb,#fff 26%,var(--card)),var(--card) 58%,color-mix(in srgb,var(--sky) 30%,var(--card)));box-shadow:0 22px 34px -24px #31221ba6,inset 0 0 0 5px color-mix(in srgb,var(--accent) 5%,transparent);text-align:left;transform:perspective(800px) rotateX(calc((1 - var(--unfold)) * 3deg));transition:transform .6s ease,box-shadow .6s ease}.nextchapter .nc-postcard:before{content:"";position:absolute;inset:12px;pointer-events:none;border:1px dashed color-mix(in srgb,var(--accent) 30%,transparent)}.nextchapter .nc-postmark{position:relative;z-index:1;display:flex;justify-content:flex-end;align-items:center;gap:8px;min-height:38px;color:var(--accent);font:italic 13px var(--serif)}.nextchapter .nc-postmark svg{width:37px;height:37px;flex:none;fill:none;stroke:currentColor;stroke-width:1.2}.nextchapter .nc-to{position:relative;z-index:1;width:max-content;max-width:70%;margin:26px 0 0 auto;padding-bottom:4px;border-bottom:1px solid var(--line);color:var(--soft);font:italic 14px var(--serif)}.nextchapter .nc-letter{position:absolute;z-index:2;inset:20px 20px 35px;display:grid;align-content:center;gap:8px;padding:14px 12px;background:var(--card);box-shadow:0 10px 18px -14px #1e140f66;opacity:var(--unfold);transform:translateY(calc((1 - var(--unfold)) * 18px)) scaleY(calc(.88 + var(--unfold) * .12));transform-origin:50% 100%;transition:opacity .4s ease,transform .6s cubic-bezier(.2,.8,.2,1)}.nextchapter .nc-letter p{margin:0;font:400 16px/1.42 var(--serif)}.nextchapter .nc-signed{text-align:right;color:var(--accent);font:italic 14px var(--serif)}.nextchapter .nc-unfold-tab{position:absolute;z-index:3;left:50%;bottom:-21px;width:46px;height:46px;display:grid;place-items:center;border:2px solid var(--card);border-radius:50%;color:var(--accent-ink);background:var(--accent);box-shadow:0 8px 16px -7px color-mix(in srgb,var(--accent) 70%,transparent);translate:-50% 0;font-size:22px;cursor:grab;touch-action:none}.nextchapter .nc-unfold-tab:active{cursor:grabbing}.nextchapter .nc-unfold-tab:disabled{cursor:default}.nextchapter .nc-payoff{position:relative;left:auto;right:auto;bottom:auto;margin:0 0 12px;gap:7px}.nextchapter .nc-payoff .muted{max-width:32ch;margin:0}.nextchapter .nc-plans{gap:14px}.nextchapter .nc-plans .display{max-width:17ch;margin:0 auto;font-size:clamp(30px,7vw,40px)}.nextchapter .nc-plan-list{width:min(100%,410px);display:grid;gap:8px}.nextchapter .nc-plan{display:grid;grid-template-columns:34px 1fr 26px;align-items:center;gap:9px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;color:var(--fg);background:color-mix(in srgb,var(--card) 82%,transparent);text-align:left;cursor:pointer}.nextchapter .nc-plan.active{border-color:var(--accent);background:var(--card);box-shadow:0 9px 18px -15px var(--accent)}.nextchapter .nc-plan-num{color:var(--accent);font:700 11px ui-monospace,monospace}.nextchapter .nc-plan-title{font:500 16px/1.2 var(--serif)}.nextchapter .nc-plan-mark{color:var(--accent);font-size:20px;text-align:center}.nextchapter .nc-plan-note{width:min(100%,390px);min-height:78px;padding:15px 18px;border-left:2px solid var(--accent);color:var(--soft);background:color-mix(in srgb,var(--card) 68%,transparent);text-align:left}.nextchapter .nc-plan-note p{margin:0;font:400 15px/1.45 var(--serif)}.nextchapter .nc-finale{gap:14px}.nextchapter .nc-sunrise{width:min(48%,180px);fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nextchapter .nc-finale .display{max-width:17ch;margin:0 auto}.nextchapter .nc-sign{margin:0;color:var(--accent);font:italic 400 21px var(--serif)}.nextchapter .nc-names{margin:0;color:var(--soft);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.nextchapter :is(button,[tabindex]):focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:390px){.nextchapter .nc-postcard{width:94%;min-height:230px;padding-inline:14px}.nextchapter .nc-letter{inset:20px 17px 35px}}@media(prefers-reduced-motion:reduce){.nextchapter .nc-postcard,.nextchapter .nc-letter,.nextchapter .nc-unfold-tab,.nextchapter .nc-plan{transition:none!important;animation:none!important}}.scratch.theme-scratch_gold{--bg: #1d1430;--fg: #fbf3e2;--soft: #c9b48f;--accent: #f2c14e;--accent-ink: #2a1a05;--card: rgba(255, 255, 255, .07);--gold: #f6d77a;--foil1: #b98a2e;--foil2: #f7e7a8;--ticket: #fff8e8;--ink: #3a2410}.scratch.theme-scratch_mint{--bg: #e6f5ee;--fg: #12301f;--soft: #5f8a70;--accent: #e2586f;--accent-ink: #fff;--card: rgba(255, 255, 255, .75);--gold: #c27a2a;--foil1: #8f9aa6;--foil2: #eef2f6;--ticket: #ffffff;--ink: #1d3a2a}.scratch.theme-midnight{--foil1: #9a7a3a;--foil2: #ecd7a0;--ticket: #f7f1e3;--ink: #2a2414}.scratch{background:radial-gradient(120% 70% at 50% 0%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 65%),var(--bg)}.scratch .display{font-family:var(--serif)}.scratch .sc-burst{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:7}.scratch .scratch-hero{justify-content:center;gap:18px}.scratch .sc-ticket{position:relative;width:min(100%,360px);margin:0 auto;padding:14px;border-radius:18px;background:var(--ticket);color:var(--ink);box-shadow:0 28px 50px -24px #0000008c,inset 0 0 0 2px color-mix(in srgb,var(--accent) 60%,transparent);animation:sc-drop .8s var(--spring) both}.scratch .sc-ticket:before,.scratch .sc-ticket:after{content:"";position:absolute;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:var(--bg)}.scratch .sc-ticket:before{left:-11px}.scratch .sc-ticket:after{right:-11px}.scratch .sc-ticket-head,.scratch .sc-ticket-foot{display:flex;justify-content:space-between;align-items:center;font:700 10px/1 system-ui,sans-serif;letter-spacing:.2em;padding:6px 4px 12px}.scratch .sc-ticket-head b{font:italic 700 18px var(--serif);letter-spacing:0;color:color-mix(in srgb,var(--accent) 70%,var(--ink))}.scratch .sc-ticket-foot{padding:12px 4px 4px;border-top:1.5px dashed color-mix(in srgb,var(--ink) 30%,transparent);margin-top:12px;font-weight:600;letter-spacing:.08em;opacity:.7}.scratch .sc-window{position:relative;min-height:190px;border-radius:12px;overflow:hidden;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--accent) 10%,var(--ticket)) 0 10px,var(--ticket) 10px 20px);display:grid;place-items:center}.scratch .sc-prize{padding:20px 18px}.scratch .sc-prize .display{font-size:26px;color:var(--ink)}.scratch .sc-prize .gold{color:color-mix(in srgb,var(--accent) 75%,var(--ink))}.scratch .sc-stars{display:block;color:var(--accent);letter-spacing:.3em;margin-bottom:8px}.scratch .hook-done .sc-prize{animation:sc-win .7s var(--spring) both}.scratch .sc-foil{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab;transition:opacity .6s var(--out),transform .6s var(--out);border-radius:inherit}.scratch .sc-foil:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.scratch .sc-foil.gone{opacity:0;transform:scale(1.06);pointer-events:none}.scratch .scratch-hero .hook-payoff{bottom:40px}.scratch .sc-mini-list{display:grid;gap:12px;width:min(100%,380px);margin:0 auto}.scratch .sc-mini{padding:10px;border-radius:14px;background:var(--ticket);color:var(--ink);text-align:left;box-shadow:0 14px 28px -18px #00000080;animation:sc-drop .6s var(--spring) calc(var(--i) * 90ms) both}.scratch .sc-mini-title{display:block;font:700 10px system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;padding:2px 4px 8px;opacity:.7}.scratch .sc-mini-window{position:relative;min-height:70px;border-radius:9px;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 10%,var(--ticket))}.scratch .sc-mini-window p{margin:0;padding:12px 14px;font:400 15px/1.4 var(--serif);text-align:center}.scratch .sc-mini.won{box-shadow:0 0 0 2px var(--accent),0 14px 28px -18px #00000080}.scratch .sc-golden{position:relative;width:min(82%,300px);aspect-ratio:1.55;margin:8px auto;border:0;padding:0;background:none;perspective:1000px;color:var(--ink)}.scratch .sc-golden-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .9s var(--spring)}.scratch .sc-golden.open .sc-golden-inner{transform:rotateY(180deg)}.scratch .sc-golden:not(.open) .sc-golden-inner{animation:sc-wobble 2.4s ease-in-out infinite}.scratch .sc-golden-face{position:absolute;inset:0;display:grid;place-content:center;gap:4px;padding:18px;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 24px 40px -20px #0009}.scratch .sc-golden-face.front{background:linear-gradient(135deg,var(--foil1),var(--foil2) 48%,var(--foil1));font:700 13px system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase}.scratch .sc-golden-face.front b{font-size:34px;letter-spacing:0}.scratch .sc-golden-face.front small{font-size:10px;opacity:.7}.scratch .sc-golden-face.back{transform:rotateY(180deg);background:var(--ticket);font:400 16px/1.45 var(--serif);box-shadow:inset 0 0 0 2px var(--accent),0 24px 40px -20px #0009}.scratch .sc-frame{margin:0 auto;width:min(86%,320px);padding:12px 12px 16px;background:var(--ticket);color:var(--ink);border-radius:6px;transform:rotate(-2deg);box-shadow:0 26px 44px -22px #0009;animation:sc-drop .8s var(--spring) both}.scratch .sc-frame img,.scratch .sc-frame .photo-placeholder{display:block;width:100%;aspect-ratio:4 / 5;height:auto;object-fit:cover;border-radius:3px;background:linear-gradient(135deg,var(--foil1),var(--accent))}.scratch .sc-frame figcaption{padding-top:12px;font:italic 400 16px var(--serif)}.scratch .sc-letter{position:relative;text-align:left;padding:26px 22px;border-radius:14px;background:var(--ticket);color:var(--ink);box-shadow:0 24px 44px -24px #00000080;border-top:6px solid var(--accent)}.scratch .sc-letter .signoff{color:color-mix(in srgb,var(--ink) 60%,transparent)}.scratch .sc-seal{position:absolute;right:18px;bottom:18px;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--foil1),var(--foil2));color:var(--ink);font-size:20px;transform:rotate(-12deg)}@keyframes sc-drop{0%{opacity:0;transform:translateY(24px) scale(.96)}}@keyframes sc-win{0%{transform:scale(.9)}60%{transform:scale(1.06)}}@keyframes sc-wobble{0%,to{transform:rotateY(-8deg)}50%{transform:rotateY(8deg)}}@media(prefers-reduced-motion:reduce){.scratch .sc-ticket,.scratch .sc-mini,.scratch .sc-frame,.scratch .hook-done .sc-prize,.scratch .sc-golden:not(.open) .sc-golden-inner{animation:none}.scratch .sc-foil,.scratch .sc-golden-inner{transition:none}}.daily.theme-daily_newsprint{--dn-paper: #fffaf0;--dn-ink: #26221b;--dn-rule: #c9bda5;--dn-accent: #a74431}.daily.theme-daily_sepia{--dn-paper: #f2e6ce;--dn-ink: #38281d;--dn-rule: #b69b77;--dn-accent: #815233}.daily.theme-midnight{--dn-paper: #f0e8d8;--dn-ink: #24202a;--dn-rule: #b9a88c;--dn-accent: #7f3d36}.daily{background:radial-gradient(100% 65% at 50% 0,color-mix(in srgb,var(--accent) 14%,transparent),transparent 72%),var(--bg)}.daily .dn-sheet-page{justify-content:center;padding:18px 14px;overflow:hidden}.daily .dn-paper{position:relative;width:min(100%,430px);max-height:100%;overflow:auto;padding:18px clamp(15px,4vw,24px);background:var(--dn-paper);color:var(--dn-ink);border:1px solid color-mix(in srgb,var(--dn-ink) 15%,transparent);box-shadow:0 22px 40px -26px #0000008c;font-family:Georgia,Times New Roman,serif}.daily .dn-paper:before{content:"";position:absolute;inset:7px;border:1px solid color-mix(in srgb,var(--dn-ink) 14%,transparent);pointer-events:none}.daily .dn-mast{padding:8px 4px 10px;border-bottom:3px double var(--dn-ink);text-align:center;color:var(--dn-ink)}.daily .dn-mast-rule{display:flex;justify-content:space-between;gap:8px;font:600 8px/1.3 system-ui,sans-serif;letter-spacing:.05em}.daily .dn-title{margin:8px 0 5px;font:700 clamp(25px,8vw,36px)/.95 Georgia,serif;letter-spacing:-.06em}.daily .dn-section{margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--dn-rule);color:var(--dn-accent);font:700 9px/1.2 system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}.daily .dn-head{margin:8px 0;font:700 clamp(23px,6vw,31px)/1.02 Georgia,serif;letter-spacing:-.035em;color:var(--dn-ink)}.daily .dn-head-xl{font-size:clamp(24px,7vw,36px)}.daily .dn-byline{margin:6px 0 12px;color:color-mix(in srgb,var(--dn-ink) 68%,transparent);font:italic 12px/1.4 Georgia,serif}.daily .dn-photo{margin:10px 0;padding:6px;border:1px solid var(--dn-rule);background:color-mix(in srgb,var(--dn-paper) 82%,white)}.daily .dn-photo img,.daily .dn-photo .photo-placeholder{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover}.daily .dn-photo figcaption{margin-top:5px;color:color-mix(in srgb,var(--dn-ink) 70%,transparent);text-align:center;font:italic 11px/1.3 Georgia,serif}.daily .dn-columns,.daily .dn-lede{margin:10px 0 3px;font:15px/1.52 Georgia,serif}.daily .dn-drop:first-letter{float:left;padding:2px 5px 0 0;color:var(--dn-accent);font:700 44px/.8 Georgia,serif}.daily .dn-stars{display:grid;justify-items:center;align-content:center;text-align:center}.daily .dn-wheel{width:min(42vw,150px);margin:12px auto;color:var(--dn-accent)}.daily .dn-wheel svg{width:100%;fill:none;stroke:currentColor;stroke-width:1.5}.daily .dn-wheel path{fill:color-mix(in srgb,var(--dn-accent) 72%,#e8ba61);stroke:none}.daily .dn-ads{display:grid;gap:8px}.daily .dn-ad{position:relative;min-height:56px;border:1px solid var(--dn-rule);padding:10px 12px;background:transparent;color:var(--dn-ink);text-align:left;font:14px/1.35 Georgia,serif}.daily .dn-ad:focus-visible{outline:2px solid var(--dn-accent);outline-offset:2px}.daily .dn-circle{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.daily .dn-circle path{fill:none;stroke:var(--dn-accent);stroke-width:3;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600;opacity:0}.daily .dn-ad.circled .dn-circle path{opacity:.85;stroke-dashoffset:0;transition:stroke-dashoffset .45s ease}.daily .dn-letter{padding:16px 14px;border-left:2px solid var(--dn-accent);background:color-mix(in srgb,var(--dn-paper) 82%,white);font:15px/1.55 Georgia,serif}.daily .daily-hero{justify-content:center;gap:13px;background:radial-gradient(80% 50% at 50% 50%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 72%)}.daily .dn-fold{position:relative;width:min(82%,350px);aspect-ratio:1.04;margin:0 auto;perspective:1100px;transform-style:preserve-3d;cursor:pointer}.daily .dn-panel{position:absolute;left:0;right:0;height:50%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.7,.25,1)}.daily .dn-p-top{top:0;z-index:3;transform-origin:bottom}.daily .dn-p-mid{top:25%;z-index:2;height:50%}.daily .dn-p-bot{bottom:0;z-index:1;transform-origin:top}.daily .dn-face{position:absolute;inset:0;display:grid;align-content:center;padding:12px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--dn-paper);color:var(--dn-ink);border:1px solid var(--dn-rule);box-shadow:0 16px 30px -20px #00000080;text-align:center}.daily .dn-face .dn-paper{width:100%;max-height:100%;padding:10px;overflow:hidden;box-shadow:none}.daily .dn-back{transform:rotateX(180deg);background:repeating-linear-gradient(0deg,var(--dn-paper) 0 10px,color-mix(in srgb,var(--dn-paper) 72%,var(--dn-rule)) 10px 11px)}.daily .dn-back span{font:700 17px Georgia,serif}.daily .dn-back small{margin-top:7px;color:var(--dn-accent);font:700 9px system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}.daily .dn-back-lines{height:70%;border-block:1px solid var(--dn-rule)}.daily .dn-extra{margin:0;color:var(--dn-accent);font:800 11px system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase}.daily .dn-front-bottom{display:block;padding:9px}.daily .dn-front-bottom .dn-photo{margin:0 0 6px;padding:4px}.daily .dn-front-bottom .dn-teaser{margin:0;font:12px/1.3 Georgia,serif}.daily .dn-fold:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.daily .daily-hero .hook-payoff{bottom:30px}.daily .dn-extra-page{justify-content:center;gap:18px}.daily .dn-stamp{display:grid;gap:8px;align-content:center;width:min(80%,320px);min-height:190px;padding:22px;border:3px double var(--dn-accent);color:var(--dn-ink);background:var(--dn-paper);text-align:center;transform:rotate(-3deg) scale(.9);opacity:.65;transition:transform .45s,opacity .45s}.daily .dn-stamp.on{transform:rotate(1deg) scale(1);opacity:1}.daily .dn-stamp span,.daily .dn-stamp small{color:var(--dn-accent);font:700 9px system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}.daily .dn-stamp b{font:700 25px/1.08 Georgia,serif}@media(max-width:380px){.daily .dn-sheet-page{padding-inline:10px}.daily .dn-paper{padding-inline:13px}.daily .dn-mast-rule{font-size:7px}}@media(prefers-reduced-motion:reduce){.daily .dn-panel,.daily .dn-stamp,.daily .dn-ad.circled .dn-circle path{transition:none}.daily .dn-circle path{stroke-dashoffset:0}}.pinata.theme-pinata_fiesta{--pp-ink: #40251d;--pp-accent: #e95539;--pp-paper: #fffaf0;--pp-gold: #e5a92f}.pinata.theme-pinata_sorbet{--pp-ink: #38253d;--pp-accent: #815cb0;--pp-paper: #fff8fb;--pp-gold: #f2a44e}.pinata.theme-midnight{--pp-ink: #f6edf4;--pp-accent: #ed8b9d;--pp-paper: #f8f0df;--pp-gold: #d8b46a}.pinata{--pp-ink: var(--fg);--pp-accent: var(--accent);--pp-paper: var(--card);--pp-gold: var(--gold);background:radial-gradient(100% 65% at 50% 0,color-mix(in srgb,var(--pp-accent) 18%,transparent),transparent 72%),var(--bg)}.pinata .display{font-family:var(--serif)}.pinata .pp-hero{justify-content:center;gap:8px;overflow:hidden;background:radial-gradient(65% 45% at 50% 46%,color-mix(in srgb,var(--pp-gold) 24%,transparent),transparent 72%)}.pinata .pp-smash{display:grid;justify-items:center;gap:4px;min-width:220px;min-height:250px;border:0;padding:8px 20px;background:transparent;color:var(--pp-ink);font:700 11px system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase}.pinata .pp-smash svg{display:block;width:min(70vw,255px);max-height:42vh;overflow:visible}.pinata .pp-smash:focus-visible{outline:3px solid var(--pp-accent);outline-offset:4px;border-radius:18px}.pinata .pp-hanger{fill:none;stroke:var(--pp-ink);stroke-width:3;stroke-linecap:round}.pinata .pp-tail{fill:none;stroke:var(--pp-accent);stroke-width:8;stroke-linecap:round;stroke-linejoin:round}.pinata .pp-star{fill:var(--pp-gold);stroke:var(--pp-accent);stroke-width:5;stroke-linejoin:round}.pinata .pp-stripe{fill:none;stroke:var(--pp-accent);stroke-width:10;stroke-linecap:round;opacity:.78}.pinata .pp-eye{fill:var(--pp-ink)}.pinata .pp-smile{fill:none;stroke:var(--pp-ink);stroke-width:2.5;stroke-linecap:round}.pinata .pp-smash.hit svg{animation:pp-swing .65s cubic-bezier(.2,.8,.3,1)}.pinata .pp-confetti{fill:none;stroke:var(--pp-accent);stroke-width:5;stroke-linecap:round;animation:pp-spark .7s ease-out both}.pinata .pp-reveal{max-width:300px;margin:4px auto 10px;font:italic 400 24px/1.2 var(--serif);color:var(--pp-ink)}.pinata .pp-hero .hook-payoff{bottom:27px}@keyframes pp-swing{0%{transform:rotate(0)}30%{transform:rotate(-16deg)}60%{transform:rotate(12deg)}to{transform:rotate(0)}}@keyframes pp-spark{0%{opacity:0;transform:scale(.35);transform-origin:center}45%{opacity:1}to{opacity:.8;transform:scale(1)}}.pinata .pp-wishes{position:relative}.pinata .pp-candy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(100%,390px);margin:6px auto}.pinata .pp-candy{display:grid;align-content:center;justify-items:center;gap:8px;min-height:100px;border:1px solid color-mix(in srgb,var(--pp-ink) 15%,transparent);border-radius:14px;padding:9px;background:var(--pp-paper);color:#37271e;box-shadow:0 12px 24px -18px #00000073}.pinata .pp-candy:focus-visible{outline:3px solid var(--pp-accent);outline-offset:2px}.pinata .pp-candy-wrap{display:flex;align-items:center;justify-content:center;width:58px;height:40px;border-radius:50%;background:linear-gradient(135deg,#f54f56,#ffbf56 48%,#59bcb0);transform:rotate(-8deg);box-shadow:inset 0 -5px 10px #0000001f}.pinata .pp-candy-wrap i{width:10px;height:18px;background:repeating-linear-gradient(45deg,#fff9 0 3px,transparent 3px 6px)}.pinata .pp-candy-wrap b{width:30px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff5,transparent 48%)}.pinata .pp-candy-hint{color:#76513b;font:700 9px system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}.pinata .pp-candy-note{font:italic 400 13px/1.35 var(--serif)}.pinata .pp-candy.revealed{border-color:var(--pp-accent)}.pinata .pp-candy.revealed .pp-candy-wrap{display:none}.pinata .pp-photo{justify-content:center;gap:12px}.pinata .pp-frame{width:min(84%,330px);margin:0;padding:12px 12px 16px;background:var(--pp-paper);color:#30251f;border-radius:5px;box-shadow:0 20px 38px -22px #0000008c;transform:rotate(-2deg)}.pinata .pp-frame img,.pinata .pp-frame .photo-placeholder{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover}.pinata .pp-frame figcaption{padding-top:10px;text-align:center;font:italic 400 15px var(--serif)}.pinata .pp-letter{justify-content:center;gap:12px}.pinata .pp-note{position:relative;width:min(100%,390px);padding:24px 20px;border-radius:14px;border-top:5px solid var(--pp-accent);background:var(--pp-paper);color:#30251f;text-align:left;box-shadow:0 20px 38px -24px #00000073}.pinata .pp-note .signoff{color:#76513b}@media(max-width:360px){.pinata .pp-candy-grid{gap:7px}.pinata .pp-candy{min-height:92px;padding:7px}}@media(prefers-reduced-motion:reduce){.pinata .pp-smash.hit svg,.pinata .pp-confetti{animation:none}.pinata .pp-candy-wrap{transform:none}}.day-yes.theme-yes_sunrise{--bg: #fff3df;--fg: #3c291e;--soft: #927257;--accent: #c85b42;--accent-ink: #fffaf2;--card: rgba(255,255,255,.78);--gold: #b87932;--b2-paper: #fff9ee;--b2-line: #e4cba8}.day-yes.theme-yes_garden{--bg: #edf4e8;--fg: #263c2b;--soft: #68816c;--accent: #47825b;--accent-ink: #fff;--card: rgba(255,255,255,.78);--gold: #b77a38;--b2-paper: #fbfff5;--b2-line: #bed2b8}.day-yes.theme-midnight{--bg: #1b1f33;--fg: #f6edf4;--soft: #c8b4c6;--accent: #e1a766;--accent-ink: #241727;--card: rgba(255,255,255,.08);--gold: #e6bd77;--b2-paper: #f8f0df;--b2-line: #dec895}.birthday-museum.theme-museum_cream{--bg: #f5eedf;--fg: #30271f;--soft: #786954;--accent: #8d563c;--accent-ink: #fffaf3;--card: #fffaf0;--gold: #b18042;--b2-paper: #fffaf0;--b2-line: #d8c9ad}.birthday-museum.theme-museum_rose{--bg: #f7e9e9;--fg: #3e292c;--soft: #8b6c70;--accent: #ad5364;--accent-ink: #fff;--card: #fff8f7;--gold: #bd8a42;--b2-paper: #fff8f5;--b2-line: #dfc4c0}.birthday-museum.theme-midnight{--bg: #1b1f33;--fg: #f6edf4;--soft: #c8b4c6;--accent: #db9aa5;--accent-ink: #241727;--card: #f8f0df;--gold: #e6bd77;--b2-paper: #fffaf0;--b2-line: #dec895}.wish-passport.theme-passport_sky{--bg: #e8f2f5;--fg: #23343c;--soft: #627c86;--accent: #32768b;--accent-ink: #fff;--card: #fff;--gold: #b78040;--b2-paper: #fffdf4;--b2-line: #b9cbd0}.wish-passport.theme-passport_sage{--bg: #edf2e7;--fg: #29392b;--soft: #68816d;--accent: #50785a;--accent-ink: #fff;--card: #fbfff7;--gold: #a7793a;--b2-paper: #fffdf4;--b2-line: #c1d0bb}.wish-passport.theme-midnight{--bg: #1b1f33;--fg: #f6edf4;--soft: #c8b4c6;--accent: #e3b862;--accent-ink: #241727;--card: rgba(255,255,255,.08);--gold: #e6bd77;--b2-paper: #f8f0df;--b2-line: #dec895}.day-yes,.birthday-museum,.wish-passport{background:radial-gradient(100% 60% at 50% 0,color-mix(in srgb,var(--accent) 14%,transparent),transparent 72%),var(--bg)}.day-yes .display,.birthday-museum .display,.wish-passport .display{font-family:var(--serif)}.b2-hook{justify-content:center;gap:10px;overflow:hidden;text-align:center}.yes-invitation{position:relative;width:min(100%,370px);padding:18px 16px;display:flex;flex-direction:column;align-items:center;gap:7px}.yes-sunrise{width:min(58%,210px);max-height:108px;overflow:visible;fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.yes-sunrise .yes-hill{fill:color-mix(in srgb,var(--accent) 13%,transparent);stroke-width:1.3}.yes-invitation.open .yes-sunrise{animation:yes-unfold .65s ease-out both}@keyframes yes-unfold{0%{transform:translateY(10px) scaleY(.7);opacity:.55}}.yes-invitation .kicker{margin-top:2px}.yes-invitation .display{max-width:340px;margin:0;font-size:clamp(29px,8vw,39px);line-height:1.03}.yes-invitation .lede{max-width:310px;margin:0 0 5px;font-size:15px}.yes-unfold{margin-top:5px}.yes-unfold>span{margin-right:5px;color:var(--gold)}.yes-payoff{width:100%;animation:b2-rise .5s ease-out both}.yes-payoff p,.museum-payoff p{margin:3px 0 10px;color:var(--soft);font:italic 15px var(--serif)}@keyframes b2-rise{0%{opacity:0;transform:translateY(10px)}}.yes-moments{justify-content:center;overflow:auto}.yes-itinerary{width:min(100%,400px);margin:5px 0;padding:0;list-style:none;display:grid;gap:9px}.yes-stop{display:grid;grid-template-columns:72px 1fr;align-items:start;gap:9px}.yes-time{padding-top:12px;color:var(--accent);font:700 9px/1.3 system-ui,sans-serif;letter-spacing:.09em;text-align:right;text-transform:uppercase}.yes-stop-card{padding:10px 12px;border:1px solid var(--b2-line);border-radius:12px;background:var(--b2-paper);color:#38291f;text-align:left;box-shadow:0 8px 20px -16px #0006}.yes-stop-card h3{margin:0;font:700 16px/1.2 var(--serif)}.yes-stop-card p{margin:4px 0 8px;color:#66584a;font:13px/1.35 system-ui,sans-serif}.yes-choice{min-height:34px;padding:6px 11px;border:1px solid var(--accent);border-radius:999px;background:transparent;color:var(--accent);font:700 11px system-ui,sans-serif}.yes-choice[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.yes-choice:focus-visible,.museum-ticket:focus-visible,.passport-stamp-button:focus-visible,.passport-page:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.b2-letter{justify-content:center;gap:14px}.b2-note{width:min(100%,390px);padding:25px 21px;border:1px solid var(--b2-line);border-top:5px solid var(--accent);border-radius:5px 5px 14px 14px;background:var(--b2-paper);color:#38291f;text-align:left;box-shadow:0 22px 40px -26px #00000080}.b2-note .letter-body{font:16px/1.6 var(--serif)}.b2-note .signoff{color:#756250}.b2-note .signature{color:var(--accent)}.museum-entry{width:min(100%,370px);display:flex;flex-direction:column;align-items:center;gap:5px}.museum-doorway{display:block;width:min(57%,195px);max-height:180px;overflow:visible}.museum-building{fill:var(--b2-paper);stroke:var(--b2-line);stroke-width:3}.museum-roof{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round}.museum-door{fill:color-mix(in srgb,var(--accent) 12%,var(--b2-paper));stroke:var(--accent);stroke-width:3}.museum-knob{fill:var(--gold)}.museum-star{fill:var(--gold);stroke:none}.museum-entry .display{max-width:330px;margin:0;font-size:clamp(27px,7vw,37px);line-height:1.04}.museum-entry .lede{max-width:300px;margin:0;font-size:14px}.museum-ticket{margin-top:8px}.museum-entry.open .museum-door{animation:museum-open .7s var(--out, ease-out) both;transform-origin:bottom center}@keyframes museum-open{to{transform:perspective(600px) rotateY(-48deg)}}.museum-payoff{animation:b2-rise .5s ease-out both}.museum-gallery{justify-content:center;overflow:auto}.museum-exhibits{display:grid;gap:8px;width:min(100%,390px);margin:4px auto}.museum-exhibit{display:grid;grid-template-columns:minmax(78px,30%) 1fr;align-items:stretch;gap:10px;min-height:100px;margin:0;padding:7px;border:1px solid var(--b2-line);background:var(--b2-paper);color:#30271f;box-shadow:0 8px 18px -15px #00000073}.museum-exhibit img,.museum-exhibit .photo-placeholder{display:block;width:100%;height:100%;min-height:88px;object-fit:cover}.museum-exhibit figcaption{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0}.museum-exhibit figcaption strong{font:700 14px/1.15 var(--serif)}.museum-exhibit figcaption span{color:#65584c;font:12px/1.32 system-ui,sans-serif}.museum-exhibit figcaption small{color:var(--accent);font:700 8px system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase}.exhibit-1{transform:rotate(.5deg)}.exhibit-2{transform:rotate(-.6deg)}.passport-cover{position:relative;width:min(83%,340px);min-height:390px;padding:25px 20px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:11px;border:1px solid color-mix(in srgb,var(--accent) 70%,#111);border-radius:16px;outline:5px double color-mix(in srgb,var(--gold) 66%,transparent);outline-offset:-12px;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 58%),color-mix(in srgb,var(--bg) 70%,#fff);color:var(--fg);box-shadow:0 24px 42px -26px #00000080}.passport-emblem{width:82px;fill:none;stroke:var(--accent);stroke-width:2}.passport-emblem path{fill:var(--gold);stroke:var(--gold)}.passport-title{max-width:250px;margin:3px 0;font:400 24px/1.1 var(--serif)}.passport-subtitle{max-width:260px;margin:0;color:var(--soft);font:14px/1.45 var(--serif)}.passport-stamp-button{min-height:42px;margin-top:5px;padding:8px 15px;border:2px dashed var(--accent);border-radius:999px;background:transparent;color:var(--accent);font:700 11px system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}.passport-cover.stamped .passport-emblem{animation:passport-stamp .5s var(--spring, ease-out) both}.passport-payoff{text-align:center;animation:b2-rise .5s ease-out both}.passport-payoff p{margin:3px 0 12px;color:var(--accent);font:800 9px system-ui,sans-serif;letter-spacing:.13em}@keyframes passport-stamp{0%{transform:scale(1.45) rotate(-12deg);opacity:.3}65%{transform:scale(.94) rotate(4deg)}}.passport-stamps{justify-content:center;overflow:auto}.passport-grid{display:grid;gap:8px;width:min(100%,390px);margin:4px auto}.passport-page{position:relative;min-height:112px;display:grid;grid-template-columns:1fr auto;align-content:center;gap:4px 10px;overflow:hidden;border:1px solid var(--b2-line);border-radius:8px;padding:10px 13px;background:var(--b2-paper);color:#30271f;text-align:left;box-shadow:0 8px 18px -15px #00000073}.passport-location{grid-column:1 / -1;color:var(--accent);font:700 8px system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase}.passport-page strong{font:700 15px/1.2 var(--serif)}.passport-detail{grid-column:1 / -1;color:#6a5d50;font:12px/1.3 system-ui,sans-serif}.passport-ink{position:absolute;right:12px;top:18px;width:49px;height:49px;display:grid;place-items:center;border:2px solid var(--accent);border-radius:50%;color:var(--accent);font:900 10px system-ui,sans-serif;letter-spacing:.08em;opacity:0;transform:rotate(-18deg) scale(1.6)}.passport-page.stamped .passport-ink{opacity:.78;transform:rotate(-18deg) scale(1);transition:transform .35s var(--spring, ease-out),opacity .2s}.passport-page.stamped{border-color:var(--accent)}@media(max-width:380px){.yes-invitation{padding-inline:8px}.yes-stop{grid-template-columns:60px 1fr;gap:7px}.yes-time{font-size:8px}.passport-cover{width:88%;min-height:350px}.museum-exhibits{gap:6px}.museum-exhibit{min-height:94px;grid-template-columns:27% 1fr;gap:7px}.museum-exhibit figcaption span{font-size:11px}}@media(prefers-reduced-motion:reduce){.yes-payoff,.museum-payoff,.passport-payoff,.yes-invitation.open .yes-sunrise,.museum-entry.open .museum-door,.passport-cover.stamped .passport-emblem{animation:none}.passport-page.stamped .passport-ink{transition:none;transform:rotate(-18deg) scale(1)}}.wedding.theme-wed_marigold{--bg: #3a0b12;--fg: #fbeedd;--soft: #e0b48f;--accent: #f4a72b;--accent-ink: #3a0b12;--card: #fff6e6;--card-ink: #4a1a14;--gold: #f2c45a;--door: #7a1c22;--door-2: #4f0e15}.wedding.theme-wed_ivory{--bg: #f4ead8;--fg: #3b2a1c;--soft: #8c6f4e;--accent: #a8772c;--accent-ink: #fffaf0;--card: #fffdf7;--card-ink: #3b2a1c;--gold: #b0802e;--door: #e6d3b1;--door-2: #cdb184}.wedding.theme-wed_emerald{--bg: #0b2620;--fg: #f1eadb;--soft: #a9c2b2;--accent: #d9b464;--accent-ink: #0b2620;--card: #fbf6ea;--card-ink: #183a30;--gold: #e2bf6e;--door: #145040;--door-2: #0a3127}.wedding{--noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .4 0 0 0 0 .3 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--foil: linear-gradient(100deg, #9a6a1c 0%, #f7dc8c 22%, #b8862e 40%, #fff1c2 52%, #c4922f 66%, #f3d27a 84%, #94641a 100%);background:var(--noise),radial-gradient(120% 70% at 50% 0%,color-mix(in srgb,var(--accent) 22%,var(--bg)) 0%,var(--bg) 65%)}.wedding .display{font-family:var(--serif)}.wedding .wed-page{position:relative;overflow:hidden}.wedding .wed-page>:not(.wed-petals){position:relative;z-index:1}.wedding .wed-paisley{width:44px;height:58px;fill:none;stroke:var(--gold);stroke-width:1.6}.wedding .wed-paisley .inner{stroke-dasharray:3 3}.wedding .wed-paisley circle{fill:var(--gold);stroke:none}.wedding .wed-divider{width:180px;height:18px;margin:4px auto;fill:var(--gold);stroke:var(--gold);stroke-width:1}.wedding .wed-divider path:first-child{fill:none}.wedding .wed-names{margin:0;display:grid;justify-items:center;gap:0;font:italic 400 46px/1.05 var(--serif);letter-spacing:.01em}.wedding .wed-names .amp{font-size:.55em;color:var(--soft);margin:2px 0}.wedding .wed-names .foil{background:var(--foil);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 rgba(0,0,0,.25));padding:0 .12em;animation:wed-foil 5s linear infinite}.wedding .wed-names.write .foil{clip-path:inset(0 100% 0 0);animation:wed-write 1.3s cubic-bezier(.6,0,.3,1) .5s forwards,wed-foil 5s linear infinite}.wedding .wed-names.write .foil:last-child{animation-delay:1.15s,0s}.wedding .wed-names.write .amp{opacity:0;animation:wed-fade .6s ease 1s forwards}@keyframes wed-write{to{clip-path:inset(0 0 0 0)}}@keyframes wed-foil{0%{background-position:0% 0}to{background-position:220% 0}}@keyframes wed-fade{to{opacity:1}}.wedding .wed-petals{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:4}.wedding .wed-petals i{position:absolute;top:-20px;border-radius:70% 0;background:radial-gradient(circle at 30% 30%,#ffd36a,#f49a1a 70%);opacity:0;animation:wed-fall linear both;will-change:transform}.wedding .wed-petals i.h1{background:radial-gradient(circle at 30% 30%,#ffb35c,#e5621b 70%)}.wedding .wed-petals i.h2{background:radial-gradient(circle at 30% 30%,#fff0b0,#f2c13a 70%)}@keyframes wed-fall{0%{opacity:0;transform:translateZ(0) rotate(0)}10%{opacity:1}to{opacity:.2;transform:translate3d(var(--drift),105vh,0) rotate(540deg)}}.wedding .wed-hook{padding:0}.wedding .wed-hall{position:absolute;inset:0}.wedding .wed-glow{position:absolute;inset:10% 15% 20%;background:radial-gradient(closest-side,color-mix(in srgb,var(--gold) 70%,#fff) 0%,transparent 100%);opacity:.25;transition:opacity 1.2s ease}.wedding .hook-done .wed-glow{opacity:.55}.wedding .wed-gate{position:absolute;left:50%;top:7%;width:min(78vw,340px);height:min(68%,520px);transform:translate(-50%);perspective:1100px;transition:opacity .9s ease .9s,transform 1.6s var(--out)}.wedding .wed-gate.open{opacity:0;transform:translate(-50%) scale(1.25);pointer-events:none}.wedding .wed-arch{position:absolute;left:-6%;width:112%;height:16%;top:-9%;fill:var(--door-2);filter:drop-shadow(0 -1px 0 var(--gold))}.wedding .wed-doors{position:absolute;inset:0;display:flex;cursor:grab;touch-action:none;outline-offset:6px;border-radius:6px;box-shadow:0 0 0 3px var(--gold),0 0 0 7px var(--door-2),0 30px 60px -20px #0009}.wedding .wed-doors:active{cursor:grabbing}.wedding .wed-door{position:relative;flex:1;display:grid;place-items:center;background:var(--noise),linear-gradient(180deg,color-mix(in srgb,var(--door) 85%,#fff) 0%,var(--door) 30%,var(--door-2) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 70%,transparent),inset 0 0 30px #00000059;transition:transform .35s var(--out);backface-visibility:hidden;will-change:transform}.wedding .wed-door.left{transform-origin:left center;transform:rotateY(calc(var(--p) * -28deg));border-radius:6px 0 0 6px}.wedding .wed-door.right{transform-origin:right center;transform:rotateY(calc(var(--p) * 28deg));border-radius:0 6px 6px 0}.wedding .wed-gate.open .wed-door{transition:transform 1.6s cubic-bezier(.3,.6,.2,1)}.wedding .wed-gate.open .wed-door.left{transform:rotateY(-110deg)}.wedding .wed-gate.open .wed-door.right{transform:rotateY(110deg)}.wedding .wed-door .panel{position:absolute;left:14%;right:14%;border:1.5px solid color-mix(in srgb,var(--gold) 75%,transparent);box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--door-2) 60%,transparent),inset 0 0 0 5px color-mix(in srgb,var(--gold) 35%,transparent)}.wedding .wed-door .panel.top{top:7%;height:38%;border-radius:50% 50% 4px 4px/22% 22% 4px 4px}.wedding .wed-door .panel.bottom{bottom:7%;height:36%;border-radius:4px}.wedding .wed-door .door-motif{position:relative;width:34px;height:46px;margin-top:-40%;opacity:.9}.wedding .wed-door.right .door-motif{transform:scaleX(-1)}.wedding .wed-door .knocker{position:absolute;top:52%;width:16px;height:16px;border-radius:50%;border:3px solid var(--gold);box-shadow:0 2px 3px #0006}.wedding .wed-door.left .knocker{right:10px}.wedding .wed-door.right .knocker{left:10px}.wedding .wed-seam-glow{position:absolute;left:50%;top:2%;bottom:2%;width:4px;transform:translate(-50%) scaleX(calc(1 + var(--p) * 10));background:linear-gradient(180deg,transparent,#fff3c4,transparent);opacity:calc(.35 + var(--p) * .65);filter:blur(2px);pointer-events:none;animation:wed-seam 2s ease-in-out infinite}@keyframes wed-seam{50%{opacity:.85}}.wedding .wed-payoff{bottom:auto;top:50%;transform:translateY(-50%);gap:10px;animation:wed-fade .8s ease .5s both;opacity:0}.wedding .wed-payoff .kicker{max-width:30ch;line-height:1.6}.wedding .wed-hook-date{margin:0;font:400 16px var(--serif);letter-spacing:.2em;text-transform:uppercase;color:var(--soft)}.wedding .wed-for{margin:0;font:italic 400 17px var(--serif);color:var(--soft)}.wedding .wed-card{position:relative;display:flex;flex-direction:column;gap:10px;align-items:center;width:100%;max-width:440px;margin:0 auto;padding:34px 22px 26px;color:var(--card-ink);--soft: color-mix(in srgb, var(--card-ink) 62%, var(--card));background:var(--noise),radial-gradient(140% 90% at 50% 0%,#fff 0%,var(--card) 55%,color-mix(in srgb,var(--card) 88%,var(--gold)) 100%);border-radius:4px;box-shadow:0 1px #fff9 inset,0 28px 50px -24px #0000008c,0 2px 6px #0000002e}.wedding .wed-card:before{content:"";position:absolute;inset:9px;border:1px solid color-mix(in srgb,var(--gold) 80%,transparent);outline:1px solid color-mix(in srgb,var(--gold) 40%,transparent);outline-offset:3px;pointer-events:none}.wedding .wed-card .kicker{color:color-mix(in srgb,var(--gold) 70%,var(--card-ink))}.wedding .wed-card .gold{color:color-mix(in srgb,var(--gold) 75%,var(--card-ink))}.wedding .wed-card .lede,.wedding .wed-card p{margin:0;text-shadow:0 1px 0 rgba(255,255,255,.8)}.wedding .wed-dear{font-size:26px}.wedding .wed-families{font:italic 400 15px/1.5 var(--serif);color:var(--soft);max-width:30ch}.wedding .wed-request{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);max-width:28ch;line-height:1.7}.wedding .wed-card .wed-names{font-size:42px}.wedding .wed-card .wed-names .foil{filter:drop-shadow(0 1px 0 rgba(255,255,255,.9)) drop-shadow(0 -1px 0 rgba(0,0,0,.18))}.wedding .wed-date{font:600 14px var(--serif);letter-spacing:.22em;text-transform:uppercase}.wedding .wed-count{width:100%;margin-top:4px}.wedding .wed-count .lock-unit{background:color-mix(in srgb,var(--gold) 10%,transparent);border-color:color-mix(in srgb,var(--gold) 45%,transparent)}.wedding .wed-count .lock-digits{color:var(--card-ink)}.wedding .wed-events{justify-content:flex-start}.wedding .wed-timeline{list-style:none;margin:4px 0 0;padding:0 0 0 22px;display:grid;gap:18px;width:100%;max-width:460px;align-self:center;text-align:left;position:relative}.wedding .wed-timeline:before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:1px;background:linear-gradient(var(--gold),transparent)}.wedding .wed-event{position:relative;padding:16px 16px 14px;border-radius:10px;color:var(--card-ink);background:var(--noise),linear-gradient(160deg,#fff 0%,var(--card) 60%);box-shadow:0 18px 30px -20px #0009,inset 0 0 0 1px color-mix(in srgb,var(--gold) 45%,transparent);animation:rise .7s var(--out) both;animation-delay:calc(.1s + var(--i) * .1s)}.wedding .wed-icon{position:absolute;left:-30px;top:14px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--bg);color:var(--gold);border:1px solid var(--gold);font-size:13px}.wedding .wed-event h3{margin:0 0 2px;font:italic 400 24px var(--serif);color:color-mix(in srgb,var(--gold) 55%,var(--card-ink))}.wedding .wed-event p{margin:0 0 6px;font-size:14px;line-height:1.45}.wedding .wed-event .when{font-weight:600;letter-spacing:.02em}.wedding .wed-event .dress{font-size:12px;color:color-mix(in srgb,var(--card-ink) 65%,transparent);font-style:italic}.wedding .wed-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.wedding .wed-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--gold) 80%,transparent);background:transparent;color:inherit;font:600 13px var(--sans, inherit);text-decoration:none;cursor:pointer;transition:background .2s,transform .2s var(--spring)}.wedding .wed-btn:hover{background:color-mix(in srgb,var(--gold) 14%,transparent)}.wedding .wed-btn:active{transform:scale(.96)}.wedding .wed-events>.page-button{margin-top:8px}.wedding .wed-story-text{max-width:34ch;margin:0 auto}.wedding .wed-story-motif{width:60px;height:80px;margin:0 auto}.wedding .wed-photos{display:flex;justify-content:center;padding:10px 0}.wedding .wed-photos figure{margin:0 -14px;width:42%;max-width:170px;aspect-ratio:4 / 5;padding:6px 6px 22px;background:var(--card);box-shadow:0 16px 30px -16px #0009;transform:rotate(calc((var(--i) - 1) * 6deg))}.wedding .wed-photos.n1 figure{width:60%;transform:rotate(-2deg)}.wedding .wed-photos img{width:100%;height:100%;object-fit:cover;display:block}.wedding .wed-stepper{display:flex;align-items:center;gap:14px;margin:6px 0}.wedding .wed-stepper button{width:40px;height:40px;border-radius:50%;border:1px solid color-mix(in srgb,var(--gold) 80%,transparent);background:transparent;color:inherit;font-size:20px;cursor:pointer}.wedding .wed-stepper button:disabled{opacity:.35;cursor:default}.wedding .wed-stepper output{min-width:82px;font:400 20px var(--serif)}.wedding .wed-rsvp .wed-yes{text-decoration:none}.wedding .wed-rsvp .small-print{color:var(--soft);max-width:30ch}.wedding .wed-finale-motif{margin:0 auto;width:54px;height:72px}.wedding .wed-signoff{margin:0;font:italic 400 20px var(--serif);color:var(--soft)}.wedding .wed-finale .text-button{color:var(--gold);align-self:center}@media(min-width:900px){.wedding .wed-names{font-size:64px}.wedding .wed-card .wed-names{font-size:50px}}@media(prefers-reduced-motion:reduce){.wedding .wed-names .foil,.wedding .wed-seam-glow,.wedding .wed-event{animation:none}.wedding .wed-names.write .foil{clip-path:none;animation:none}.wedding .wed-names.write .amp,.wedding .wed-payoff{opacity:1;animation:none}.wedding .wed-door,.wedding .wed-gate,.wedding .wed-gate.open .wed-door{transition:none}}.wedding-postcard.theme-wed_marigold{--bg: #33484d;--fg: #f7eedb;--soft: #c6b79e;--accent: #96503f;--accent-ink: #fff7e8;--card: #f5ead2;--card-ink: #34454a;--gold: #96503f;--pc-paper: #f3e7cd;--pc-ink: #34454a;--pc-sun: #e6ac69;--pc-far-hill: #9ca78a;--pc-near-hill: #697f72;--pc-water: #76949a;--pc-flower: #c97562}.wedding-postcard.theme-wed_ivory{--bg: #ede3d0;--fg: #33464a;--soft: #77766c;--accent: #96503f;--accent-ink: #fff8ea;--card: #fff8e9;--card-ink: #33464a;--gold: #96503f;--pc-paper: #fff8e9;--pc-ink: #33464a;--pc-sun: #d99c60;--pc-far-hill: #a3aa8d;--pc-near-hill: #71847b;--pc-water: #8ba3a2;--pc-flower: #bd6e5b}.wedding-postcard.theme-wed_emerald{--bg: #1d3936;--fg: #f5ead4;--soft: #bdc7b6;--accent: #96503f;--accent-ink: #fff8ea;--card: #f4e8d0;--card-ink: #2d433f;--gold: #96503f;--pc-paper: #f4e8d0;--pc-ink: #2d433f;--pc-sun: #e4ad71;--pc-far-hill: #9ca688;--pc-near-hill: #62796d;--pc-water: #77959a;--pc-flower: #c97562}.wedding-postcard{background:radial-gradient(100% 70% at 50% 0%,color-mix(in srgb,var(--accent) 17%,var(--bg)),var(--bg) 76%)}.wedding-postcard .display{font-family:var(--serif)}.wedding-postcard .postcard-hook{padding:48px 20px 24px}.wedding-postcard .pc-stage{position:absolute;top:12%;left:50%;width:min(calc(100vw - 40px),390px);aspect-ratio:1.34;transform:translate(-50%);perspective:1200px;isolation:isolate}.wedding-postcard .pc-stage:before{content:"";position:absolute;z-index:-1;inset:12% 7% -10%;border-radius:50%;background:color-mix(in srgb,var(--accent) 28%,transparent);filter:blur(34px);opacity:.52;animation:pc-ambient 5s ease-in-out infinite alternate}.wedding-postcard .pc-inside{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:12px;padding:20px;overflow:hidden;border:1px solid color-mix(in srgb,var(--pc-ink) 25%,transparent);border-radius:8px;color:var(--pc-ink);background:repeating-linear-gradient(0deg,transparent 0 25px,color-mix(in srgb,var(--pc-ink) 5%,transparent) 26px),var(--pc-paper);box-shadow:0 24px 52px -25px #000000ad,inset 0 0 0 5px color-mix(in srgb,var(--accent) 16%,transparent)}.wedding-postcard .pc-inside-copy{display:grid;gap:8px;text-align:left}.wedding-postcard .pc-inside-copy strong{font:italic 400 clamp(17px,5vw,23px)/1.08 var(--serif)}.wedding-postcard .pc-inside-copy strong i{color:var(--accent);font-size:.75em}.wedding-postcard .pc-inside-copy>span:last-child{font-size:10px;color:color-mix(in srgb,var(--pc-ink) 65%,transparent)}.wedding-postcard .pc-overline{margin:0;color:var(--accent);font:700 9px/1.4 var(--sans, sans-serif);letter-spacing:.15em;text-transform:uppercase}.wedding-postcard .pc-mini-schedule{display:grid;gap:9px;list-style:none;padding:0;margin:0;text-align:left}.wedding-postcard .pc-mini-schedule li{display:grid;gap:2px;font-size:10px;line-height:1.25}.wedding-postcard .pc-mini-schedule b{font-size:9px;color:var(--accent)}.wedding-postcard .pc-mini-schedule .pc-more-events{font-style:italic;color:color-mix(in srgb,var(--pc-ink) 65%,transparent)}.wedding-postcard .pc-cover{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;gap:7px;padding:30px 16px 15px;overflow:hidden;border:1px solid color-mix(in srgb,var(--pc-ink) 30%,transparent);border-radius:8px;color:var(--pc-ink);background:repeating-linear-gradient(0deg,transparent 0 23px,color-mix(in srgb,var(--pc-ink) 5%,transparent) 24px),linear-gradient(135deg,#fff8e9,var(--pc-paper) 62%,color-mix(in srgb,var(--pc-sun) 18%,var(--pc-paper)));box-shadow:0 27px 58px -25px #000000bd,inset 0 0 0 5px color-mix(in srgb,var(--accent) 18%,transparent);text-align:left;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transform:translate3d(var(--drag-x, 0),var(--drag-y, 0),0) rotate(-1deg);transform-origin:left center;backface-visibility:hidden;transition:transform .7s cubic-bezier(.2,.75,.2,1),opacity .55s ease,filter .55s ease,box-shadow .25s ease}.wedding-postcard .pc-cover:before{content:"";position:absolute;inset:10px;border:1px dashed color-mix(in srgb,var(--accent) 44%,transparent);border-radius:4px;pointer-events:none}.wedding-postcard .pc-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,transparent 32%,rgba(255,255,255,.52) 48%,transparent 62%);transform:translate(-135%);transition:transform 1s ease;pointer-events:none}.wedding-postcard .pc-cover:hover{box-shadow:0 32px 64px -25px #000000c2,inset 0 0 0 5px color-mix(in srgb,var(--accent) 22%,transparent)}.wedding-postcard .pc-cover:hover:after{transform:translate(135%)}.wedding-postcard .pc-cover:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.wedding-postcard .pc-cover.is-dragging{cursor:grabbing;transition:none;animation:none}.wedding-postcard .pc-stage.is-open .pc-cover{transform:rotateY(-124deg) translate(-11%) rotate(-2deg);opacity:.02;filter:brightness(1.12);pointer-events:none}.wedding-postcard .pc-cover-copy{display:grid;gap:8px;position:relative;z-index:1;align-content:center}.wedding-postcard .pc-cover-copy .pc-overline{max-width:18ch;font-size:8px;line-height:1.55}.wedding-postcard .pc-couple{color:var(--pc-ink);font:italic 400 clamp(18px,5.1vw,25px)/1.02 var(--serif);overflow-wrap:anywhere}.wedding-postcard .pc-couple i{color:var(--accent);font-size:.72em}.wedding-postcard .pc-save-date{max-width:20ch;font:italic 400 13px/1.3 var(--serif);color:color-mix(in srgb,var(--pc-ink) 72%,transparent)}.wedding-postcard .pc-cover-date{font:700 9px var(--sans, sans-serif);letter-spacing:.08em;text-transform:uppercase}.wedding-postcard .pc-cover-art{align-self:stretch;display:grid;align-items:end;min-width:0;overflow:hidden;border-radius:48% 48% 5px 5px}.wedding-postcard .pc-art{display:block;width:100%;height:100%;min-height:180px;overflow:visible;background:linear-gradient(180deg,color-mix(in srgb,var(--pc-sun) 42%,var(--pc-paper)),var(--pc-water))}.wedding-postcard .pc-art .pc-sun{fill:var(--pc-sun);transform-box:fill-box;transform-origin:center;animation:pc-sun-glow 5s ease-in-out infinite alternate}.wedding-postcard .pc-art .pc-hill.far{fill:var(--pc-far-hill)}.wedding-postcard .pc-art .pc-hill.near{fill:var(--pc-near-hill)}.wedding-postcard .pc-art .pc-water{fill:var(--pc-water)}.wedding-postcard .pc-art .pc-water-line{fill:none;stroke:color-mix(in srgb,var(--pc-paper) 82%,var(--pc-water));stroke-width:2;stroke-linecap:round;stroke-dasharray:18 7;animation:pc-water-shimmer 6s linear infinite}.wedding-postcard .pc-art .pc-island-town,.wedding-postcard .pc-art .pc-sail{fill:none;stroke:var(--pc-ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.wedding-postcard .pc-art .pc-sail{fill:color-mix(in srgb,var(--pc-paper) 60%,transparent)}.wedding-postcard .pc-art .pc-branch,.wedding-postcard .pc-art .pc-bird{fill:none;stroke:var(--pc-ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.wedding-postcard .pc-art .pc-branch{stroke:var(--pc-flower);stroke-width:2}.wedding-postcard .pc-art .pc-bloom{fill:var(--pc-flower)}.wedding-postcard .pc-art .pc-route{fill:none;stroke:color-mix(in srgb,var(--pc-paper) 88%,var(--accent));stroke-width:1.5;stroke-linecap:round;stroke-dasharray:2 5;animation:pc-route-trace 5s linear infinite}.wedding-postcard .pc-stamp{position:absolute;top:12px;right:14px;z-index:2;display:grid;justify-items:center;gap:1px;width:37px;height:43px;padding:3px;border:1px solid var(--accent);color:var(--accent);background:color-mix(in srgb,var(--pc-paper) 86%,white);font:700 6px/1 var(--sans, sans-serif);letter-spacing:.08em;box-shadow:0 2px 6px #0000001f;transform:rotate(4deg)}.wedding-postcard .pc-stamp b{font-size:15px;line-height:1}.wedding-postcard .pc-postmark{position:absolute;top:14px;right:45px;z-index:1;width:45px;height:28px;fill:none;stroke:color-mix(in srgb,var(--accent) 72%,transparent);stroke-width:1.2}.wedding-postcard .pc-payoff{bottom:38px;gap:6px;animation:pc-arrive .5s cubic-bezier(.2,.75,.2,1) .24s both}.wedding-postcard .pc-payoff .kicker{max-width:30ch;line-height:1.4}.wedding-postcard .pc-payoff-names{margin:0;font:italic 400 clamp(25px,7vw,36px)/1.05 var(--serif);color:var(--fg)}.wedding-postcard .pc-payoff-names i{color:var(--accent);font-size:.68em}.wedding-postcard .pc-payoff-date,.wedding-postcard .pc-addressed{margin:0;color:var(--soft);font:italic 400 14px var(--serif)}@keyframes pc-ambient{0%{opacity:.35}to{opacity:.72}}@keyframes pc-sun-glow{0%{transform:scale(.96);opacity:.88}to{transform:scale(1.05);opacity:1}}@keyframes pc-water-shimmer{to{stroke-dashoffset:-100}}@keyframes pc-route-trace{to{stroke-dashoffset:-42}}@keyframes pc-arrive{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}.wedding-postcard .postcard-page{position:relative;overflow:hidden}.wedding-postcard .pc-letter,.wedding-postcard .pc-final-paper{position:relative;display:grid;justify-items:center;gap:10px;width:100%;max-width:440px;margin:auto;padding:32px 22px 26px;color:var(--pc-ink);background:repeating-linear-gradient(0deg,transparent 0 25px,color-mix(in srgb,var(--pc-ink) 4%,transparent) 26px),var(--pc-paper);border:1px solid color-mix(in srgb,var(--pc-ink) 20%,transparent);border-radius:6px;box-shadow:0 22px 42px -24px #0000008c,inset 0 0 0 6px color-mix(in srgb,var(--accent) 14%,transparent);text-align:center}.wedding-postcard .pc-letter:before,.wedding-postcard .pc-final-paper:before{content:"";position:absolute;inset:12px;border:1px dashed color-mix(in srgb,var(--accent) 34%,transparent);pointer-events:none}.wedding-postcard .pc-greeting{margin:0;font:italic 400 22px/1.2 var(--serif)}.wedding-postcard .pc-families{margin:0;font:italic 400 14px/1.45 var(--serif);color:color-mix(in srgb,var(--pc-ink) 70%,transparent)}.wedding-postcard .pc-request{max-width:28ch;margin:2px 0 0;font:700 9px/1.6 var(--sans, sans-serif);letter-spacing:.13em;text-transform:uppercase;color:color-mix(in srgb,var(--pc-ink) 65%,transparent)}.wedding-postcard .pc-names{display:grid;justify-items:center;gap:0;margin:0;font:italic 400 clamp(34px,9vw,48px)/1.04 var(--serif)}.wedding-postcard .pc-names i{color:var(--accent);font-size:.58em}.wedding-postcard .pc-rule{width:92px;height:1px;margin:3px 0;background:var(--accent);opacity:.7}.wedding-postcard .pc-date{margin:0;font:700 12px var(--sans, sans-serif);letter-spacing:.12em;text-transform:uppercase}.wedding-postcard .pc-invite-line{max-width:33ch;margin:0;font:400 15px/1.55 var(--serif)}.wedding-postcard .pc-turn-hint{margin:5px 0 0;font:italic 400 12px var(--serif);color:color-mix(in srgb,var(--pc-ink) 60%,transparent)}.wedding-postcard .wed-timeline:before{background:linear-gradient(var(--accent),transparent)}.wedding-postcard .wed-icon{background:var(--pc-paper);color:var(--accent);border-color:var(--accent)}.wedding-postcard .wed-event{border-radius:6px;background:var(--pc-paper);box-shadow:0 14px 25px -20px #0000008c,inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.wedding-postcard .wed-event h3{color:var(--accent)}.wedding-postcard .wed-event .dress{color:color-mix(in srgb,var(--pc-ink) 65%,transparent)}.wedding-postcard .wed-btn{border-color:color-mix(in srgb,var(--accent) 70%,transparent)}.wedding-postcard .wed-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.wedding-postcard .wed-rsvp .wed-card{background:var(--pc-paper);color:var(--pc-ink)}.wedding-postcard .wed-rsvp .wed-card .muted{color:color-mix(in srgb,var(--pc-ink) 68%,transparent)}.wedding-postcard .pc-final-paper{gap:12px}.wedding-postcard .pc-final-paper .pc-art{width:min(70%,210px);height:auto;min-height:0;aspect-ratio:1.2;margin:-8px auto 0;border-radius:48% 48% 4px 4px}.wedding-postcard .pc-signoff{margin:0;font:italic 400 19px/1.4 var(--serif)}.wedding-postcard .pc-finale .text-button{color:var(--accent);align-self:center}@media(min-width:700px){.wedding-postcard .pc-stage{width:min(64%,410px)}.wedding-postcard .pc-cover{padding:31px 19px 16px}.wedding-postcard .pc-cover-copy{gap:10px}}@media(max-height:700px){.wedding-postcard .postcard-hook{padding-top:42px}.wedding-postcard .pc-stage{top:8%;width:min(calc(100vw - 44px),310px)}.wedding-postcard .pc-cover{padding:25px 13px 12px;gap:4px}.wedding-postcard .pc-cover-art .pc-art{min-height:150px}.wedding-postcard .pc-payoff{bottom:22px;gap:4px}.wedding-postcard .pc-payoff .page-button{margin-top:3px;padding:9px 18px}.wedding-postcard .pc-letter,.wedding-postcard .pc-final-paper{padding:24px 18px 20px;gap:7px}}@media(prefers-reduced-motion:reduce){.wedding-postcard .pc-stage:before,.wedding-postcard .pc-cover,.wedding-postcard .pc-cover:after,.wedding-postcard .pc-art .pc-sun,.wedding-postcard .pc-art .pc-water-line,.wedding-postcard .pc-art .pc-route,.wedding-postcard .pc-payoff{transition:none;animation:none}.wedding-postcard .pc-stage.is-open .pc-cover{transform:none;opacity:0}}.wedding-firstlight.theme-wed_marigold{--bg: #182625;--fg: #f8f3e9;--soft: #c4c0b2;--accent: #d6b36c;--accent-ink: #182625;--card: #f8f4e9;--card-ink: #24322e;--gold: #d8bd82;--fl-paper: #f8f4e9;--fl-ink: #26332f;--fl-deep: #172322;--fl-mist: #d8d1c1}.wedding-firstlight.theme-wed_ivory{--bg: #eee9dd;--fg: #27332f;--soft: #68756d;--accent: #98794a;--accent-ink: #fffdf7;--card: #fffdf7;--card-ink: #27332f;--gold: #98794a;--fl-paper: #fffdf7;--fl-ink: #27332f;--fl-deep: #263a35;--fl-mist: #ded7c8}.wedding-firstlight.theme-wed_emerald{--bg: #102a25;--fg: #f5efe2;--soft: #bbc9bd;--accent: #d5ba78;--accent-ink: #102a25;--card: #f5f0e3;--card-ink: #1c3931;--gold: #e0c98e;--fl-paper: #f5f0e3;--fl-ink: #1c3931;--fl-deep: #102a25;--fl-mist: #d5cbb7}.wedding-firstlight{background:radial-gradient(90% 55% at 50% 0%,color-mix(in srgb,var(--accent) 18%,var(--bg)),var(--bg) 80%)}.wedding-firstlight .display{font-family:var(--serif)}.wedding-firstlight .fl-hook{padding:0}.wedding-firstlight .fl-stage{position:absolute;top:9%;left:50%;width:min(calc(100% - 40px),360px);aspect-ratio:.82;transform:translate(-50%);perspective:1100px;isolation:isolate}.wedding-firstlight .fl-stage:after{content:"";position:absolute;z-index:3;inset:-18%;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 48%,transparent),transparent 62%)}.wedding-firstlight .fl-stage.is-revealed:after{animation:fl-reveal-glow .8s ease-out both}.wedding-firstlight .fl-cover{position:absolute;inset:0;display:grid;grid-template-rows:auto auto minmax(120px,1fr) auto auto auto;align-items:center;justify-items:center;gap:7px;width:100%;padding:20px 20px 16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--fl-ink) 20%,transparent);border-radius:8px;color:var(--fl-ink);background:linear-gradient(145deg,#fffdf8,var(--fl-paper) 54%,var(--fl-mist));box-shadow:0 30px 66px -28px #000000b8,inset 0 0 0 5px color-mix(in srgb,var(--accent) 13%,transparent);text-align:center;cursor:pointer;transition:transform .68s cubic-bezier(.2,.75,.2,1),opacity .48s ease,box-shadow .25s ease}.wedding-firstlight .fl-cover:before{content:"";position:absolute;inset:11px;border:1px solid color-mix(in srgb,var(--accent) 48%,transparent);border-radius:4px;pointer-events:none}.wedding-firstlight .fl-cover:after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(125deg,transparent 35%,rgba(255,255,255,.56) 49%,transparent 62%);transform:translate(-130%);transition:transform 1.1s ease;pointer-events:none}.wedding-firstlight .fl-cover:hover{box-shadow:0 34px 72px -28px #000000c2,inset 0 0 0 5px color-mix(in srgb,var(--accent) 22%,transparent)}.wedding-firstlight .fl-cover:hover:after{transform:translate(130%)}.wedding-firstlight .fl-cover:focus-visible,.wedding-firstlight .fl-invite-actions button:focus-visible,.wedding-firstlight .fl-page button:focus-visible,.wedding-firstlight .fl-page a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.wedding-firstlight .fl-cover:disabled{cursor:default}.wedding-firstlight .fl-cover-meta{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;color:color-mix(in srgb,var(--fl-ink) 62%,transparent);font:700 8px/1.4 var(--sans, sans-serif);letter-spacing:.15em}.wedding-firstlight .fl-cover-meta i{color:var(--accent);font-style:normal;font-size:11px}.wedding-firstlight .fl-cover-brand{position:relative;z-index:1;color:color-mix(in srgb,var(--fl-ink) 92%,var(--accent));font:italic 400 clamp(23px,6vw,29px)/1 var(--serif);letter-spacing:-.025em}.wedding-firstlight .fl-cover-art{position:relative;display:grid;place-items:center;width:min(100%,270px);aspect-ratio:1.56;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:150px 150px 8px 8px;background:linear-gradient(180deg,#f5d7ad,#f0c08b 54%,#788578 55%,#445851);box-shadow:0 15px 30px -22px #0000009e}.wedding-firstlight .fl-cover-art img{position:absolute;inset:0;z-index:1;width:100%;height:100%;border-radius:inherit;object-fit:cover}.wedding-firstlight .fl-art-ring{position:absolute;z-index:2;inset:7px;border:1px solid color-mix(in srgb,white 65%,var(--accent));border-radius:inherit;pointer-events:none}.wedding-firstlight .fl-art{display:block;width:100%;height:100%;overflow:hidden;background:linear-gradient(180deg,#efd0a8,#edb982 48%,#8c8570 49%,#435850)}.wedding-firstlight .fl-art .fl-sun-halo{fill:color-mix(in srgb,#fff4cc 52%,transparent);stroke:color-mix(in srgb,#fff2cf 72%,transparent);stroke-width:1}.wedding-firstlight .fl-art .fl-sun{fill:#fff0c0;transform-box:fill-box;transform-origin:center;animation:fl-sunrise 6s ease-in-out infinite alternate}.wedding-firstlight .fl-art .fl-cloud,.wedding-firstlight .fl-art .fl-birds{fill:none;stroke:color-mix(in srgb,#fff8e8 74%,transparent);stroke-width:1.5;stroke-linecap:round}.wedding-firstlight .fl-art .fl-ridge-far{fill:#a77c68}.wedding-firstlight .fl-art .fl-ridge-near{fill:#665f59}.wedding-firstlight .fl-art .fl-water{fill:#5a7774}.wedding-firstlight .fl-art .fl-reflection{fill:none;stroke:#f1d29a;stroke-width:1.5;stroke-linecap:round;stroke-dasharray:16 6;animation:fl-glimmer 7s linear infinite}.wedding-firstlight .fl-art .fl-stars{fill:none;stroke:#fff2d3;stroke-linecap:round;stroke-width:1.4}.wedding-firstlight .fl-cover-names{position:relative;z-index:1;display:grid;justify-items:center;max-width:100%;color:var(--fl-ink);font:italic 400 clamp(24px,6.5vw,31px)/.98 var(--serif);overflow-wrap:anywhere}.wedding-firstlight .fl-cover-names i{margin:2px 0;color:var(--accent);font-size:.62em;font-style:normal}.wedding-firstlight .fl-cover-date{position:relative;z-index:1;color:color-mix(in srgb,var(--fl-ink) 78%,transparent);font:700 9px/1.4 var(--sans, sans-serif);letter-spacing:.16em;text-transform:uppercase}.wedding-firstlight .fl-tap-prompt{position:relative;z-index:1;display:flex;align-items:center;gap:6px;color:color-mix(in srgb,var(--fl-ink) 66%,transparent);font:italic 400 12px/1.2 var(--serif)}.wedding-firstlight .fl-tap-prompt span{color:var(--accent);font:16px/1 var(--sans, sans-serif)}.wedding-firstlight .fl-stage.is-revealed .fl-cover{transform:translateY(-18px) scale(1.035);opacity:0;pointer-events:none}.wedding-firstlight .fl-payoff{bottom:48px;gap:7px;animation:fl-arrive .7s cubic-bezier(.2,.75,.2,1) .18s both}.wedding-firstlight .fl-payoff-art{width:min(210px,58vw);height:118px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:150px 150px 8px 8px;filter:drop-shadow(0 12px 22px rgba(0,0,0,.22))}.wedding-firstlight .fl-payoff-art .fl-art{width:100%;height:100%}.wedding-firstlight .fl-payoff .kicker{max-width:30ch;margin:0;line-height:1.45}.wedding-firstlight .fl-payoff h2{margin:0;color:var(--fg);font:italic 400 clamp(26px,7vw,36px)/1.05 var(--serif);overflow-wrap:anywhere}.wedding-firstlight .fl-payoff h2 i,.wedding-firstlight .fl-finale-names i{color:var(--accent);font-size:.7em}.wedding-firstlight .fl-payoff-date,.wedding-firstlight .fl-recipient{margin:0;color:var(--soft);font:italic 400 14px/1.4 var(--serif)}@keyframes fl-arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fl-reveal-glow{0%{opacity:.9;transform:scale(.65)}to{opacity:0;transform:scale(1.14)}}@keyframes fl-sunrise{0%{transform:translateY(5px) scale(.96)}to{transform:translateY(-2px) scale(1.04)}}@keyframes fl-glimmer{to{stroke-dashoffset:-88}}.wedding-firstlight .fl-page{position:relative;overflow:hidden;justify-content:center;gap:9px;padding:48px 20px 24px}.wedding-firstlight .fl-invitation{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;width:100%;max-width:430px;margin:auto;padding:28px 20px 22px;color:var(--fl-ink);background:linear-gradient(150deg,#fffdf8,var(--fl-paper) 62%,var(--fl-mist));border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:4px;box-shadow:0 24px 48px -25px #0000008f,inset 0 0 0 5px color-mix(in srgb,var(--accent) 10%,transparent);text-align:center}.wedding-firstlight .fl-invitation:before{content:"";position:absolute;inset:11px;border:1px solid color-mix(in srgb,var(--accent) 36%,transparent);pointer-events:none}.wedding-firstlight .fl-eyebrow{margin:0;color:color-mix(in srgb,var(--fl-ink) 60%,transparent);font:700 9px/1.5 var(--sans, sans-serif);letter-spacing:.16em;text-transform:uppercase}.wedding-firstlight .fl-greeting{margin:0;font:italic 400 21px/1.2 var(--serif)}.wedding-firstlight .fl-families{max-width:32ch;margin:0;color:color-mix(in srgb,var(--fl-ink) 72%,transparent);font:italic 400 13px/1.45 var(--serif)}.wedding-firstlight .fl-request{margin:2px 0 0;color:color-mix(in srgb,var(--fl-ink) 62%,transparent);font:700 8px/1.5 var(--sans, sans-serif);letter-spacing:.16em;text-transform:uppercase}.wedding-firstlight .fl-invite-names{display:grid;justify-items:center;margin:0;font:italic 400 clamp(30px,9vw,44px)/.97 var(--serif);overflow-wrap:anywhere}.wedding-firstlight .fl-invite-names i{margin:1px 0;color:var(--accent);font-size:.56em;font-style:normal}.wedding-firstlight .fl-divider{display:grid;place-items:center;width:105px;height:12px;color:var(--accent)}.wedding-firstlight .fl-divider:before{content:"";position:absolute;width:105px;height:1px;background:color-mix(in srgb,var(--accent) 60%,transparent)}.wedding-firstlight .fl-divider i{position:relative;padding:0 7px;background:var(--fl-paper);font-size:10px;font-style:normal}.wedding-firstlight .fl-invite-date{margin:0;color:var(--fl-ink);font:700 11px/1.45 var(--sans, sans-serif);letter-spacing:.14em;text-transform:uppercase}.wedding-firstlight .fl-invite-line{max-width:32ch;margin:0;color:color-mix(in srgb,var(--fl-ink) 78%,transparent);font:400 14px/1.5 var(--serif)}.wedding-firstlight .fl-invite-actions{display:grid;justify-items:center;gap:4px;margin-top:2px}.wedding-firstlight .fl-reply{margin-top:0;min-height:44px}.wedding-firstlight .fl-details{color:color-mix(in srgb,var(--fl-ink) 72%,transparent)}.wedding-firstlight .wed-event{border-radius:5px;background:var(--fl-paper);color:var(--fl-ink);box-shadow:0 14px 28px -20px #00000094,inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}.wedding-firstlight .wed-event h3{color:color-mix(in srgb,var(--accent) 75%,var(--fl-ink))}.wedding-firstlight .wed-event .dress{color:color-mix(in srgb,var(--fl-ink) 68%,transparent)}.wedding-firstlight .wed-icon{background:var(--bg);color:var(--accent);border-color:var(--accent)}.wedding-firstlight .wed-btn{border-color:color-mix(in srgb,var(--accent) 70%,transparent)}.wedding-firstlight .wed-rsvp .wed-card{background:var(--fl-paper);color:var(--fl-ink)}.wedding-firstlight .wed-rsvp .wed-card .muted,.wedding-firstlight .wed-rsvp .small-print{color:color-mix(in srgb,var(--fl-ink) 68%,transparent)}.wedding-firstlight .wed-story-text{max-width:34ch}.wedding-firstlight .fl-finale{gap:9px}.wedding-firstlight .fl-final-art{width:min(190px,54vw);height:112px}.wedding-firstlight .fl-final-art .fl-art{overflow:visible}.wedding-firstlight .fl-signoff{max-width:32ch;margin:0;color:var(--soft);font:italic 400 19px/1.45 var(--serif)}.wedding-firstlight .fl-finale-names{max-width:100%;margin:0;font:italic 400 clamp(27px,7vw,40px)/1.05 var(--serif);overflow-wrap:anywhere}.wedding-firstlight .fl-finale .fl-invite-date{color:var(--soft)}.wedding-firstlight .fl-again,.wedding-firstlight .fl-made-with{color:var(--accent)}@media(min-width:700px){.wedding-firstlight .fl-stage{width:min(62%,370px)}.wedding-firstlight .fl-cover{gap:8px;padding:21px 24px 18px}.wedding-firstlight .fl-cover-art{width:min(100%,290px)}.wedding-firstlight .fl-invitation{padding:34px 28px 28px;gap:11px}.wedding-firstlight .fl-invite-names{font-size:48px}}@media(max-height:700px){.wedding-firstlight .fl-stage{top:4%;width:min(calc(100% - 48px),285px)}.wedding-firstlight .fl-cover{gap:4px;padding:13px 14px 11px}.wedding-firstlight .fl-cover-art{width:min(100%,195px)}.wedding-firstlight .fl-cover-brand{font-size:21px}.wedding-firstlight .fl-payoff{bottom:42px;gap:4px}.wedding-firstlight .fl-payoff-art{width:min(155px,42vw);height:82px}.wedding-firstlight .fl-payoff .page-button{margin-top:3px;padding:9px 18px}.wedding-firstlight .fl-page{padding-top:38px;gap:6px}.wedding-firstlight .fl-invitation{padding:22px 18px 18px;gap:6px}.wedding-firstlight .fl-greeting{font-size:19px}.wedding-firstlight .fl-invite-names{font-size:34px}}@media(prefers-reduced-motion:reduce){.wedding-firstlight .fl-cover,.wedding-firstlight .fl-cover:after,.wedding-firstlight .fl-payoff,.wedding-firstlight .fl-art .fl-sun,.wedding-firstlight .fl-art .fl-reflection{transition:none;animation:none}.wedding-firstlight .fl-stage.is-revealed:after{animation:none}.wedding-firstlight .fl-stage.is-revealed .fl-cover{transform:none;opacity:0}}.mk{min-height:100vh;background:var(--paper);color:var(--ink);overflow-x:clip;position:relative}.mk-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;padding:14px clamp(16px,4vw,40px);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);background:color-mix(in srgb,var(--paper) 72%,transparent)}.mk-top nav{margin-left:auto;display:flex;gap:18px}.mk-top nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:14px;opacity:.75}.mk-top nav a:hover{opacity:1}.mk-eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brand);margin:0 0 14px}.mk h1{font:400 clamp(40px,6.4vw,84px)/.98 var(--serif);letter-spacing:-.035em;margin:0;text-wrap:balance}.mk h1 em{color:var(--brand)}.mk-cta{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:700;box-shadow:0 18px 40px -18px var(--ink);transition:transform .3s var(--spring),box-shadow .3s}.mk-cta:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 24px 50px -18px var(--ink)}.mk-cta span{transition:translate .3s var(--spring)}.mk-cta:hover span{translate:4px 0}.mk-rise,.mk-reveal{animation:mk-rise .9s var(--out) both;animation-delay:var(--d, 0ms)}@keyframes mk-rise{0%{opacity:0;translate:0 22px;filter:blur(6px)}to{opacity:1;translate:0 0;filter:none}}.mk-phone{width:272px;height:564px;padding:10px;border-radius:46px;background:#121011;box-shadow:0 0 0 1px #ffffff0f inset,0 50px 90px -40px #1e0a1499,0 20px 40px -24px #00000080;position:relative;flex:none}.mk-phone:before{content:"";position:absolute;top:18px;left:50%;width:84px;height:22px;margin-left:-42px;border-radius:20px;background:#121011;z-index:3}.mk-screen{width:100%;height:100%;border-radius:36px;overflow:hidden;position:relative;background:var(--surface);animation:mk-swap .6s var(--out) both}@keyframes mk-swap{0%{opacity:0;scale:.96;filter:blur(8px)}to{opacity:1;scale:1;filter:none}}.mk-skeleton{background:linear-gradient(100deg,var(--line) 30%,var(--surface) 50%,var(--line) 70%);background-size:300% 100%;animation:mk-shimmer 1.4s linear infinite}@keyframes mk-shimmer{to{background-position:-150% 0}}.mk-thumb{width:100%;aspect-ratio:390 / 760;border-radius:22px;overflow:hidden;position:relative;background:var(--surface)}.mk-thumb-scale{position:absolute;inset:0 auto auto 0;width:390px;height:760px;transform-origin:top left;scale:var(--s, .5);pointer-events:none}.mk-thumb-scale .hook-skip,.mk-thumb-scale .book-nav,.mk-thumb-scale .music-button,.mk-thumb-scale .hook-hint{visibility:hidden}.mk-aura{position:absolute;inset:-20% -10% auto;height:120vh;pointer-events:none;background:radial-gradient(40% 40% at 50% 38%,color-mix(in srgb,var(--brand) 22%,transparent),transparent 70%),radial-gradient(30% 30% at 20% 20%,color-mix(in srgb,var(--gold) 20%,transparent),transparent 70%),radial-gradient(30% 30% at 82% 30%,color-mix(in srgb,var(--brand) 14%,transparent),transparent 70%);filter:blur(30px);animation:mk-drift 14s ease-in-out infinite alternate}@keyframes mk-drift{to{translate:0 30px;scale:1.06}}.mkp-hero{position:relative;text-align:center;padding:clamp(28px,6vh,64px) 16px 40px;display:grid;justify-items:center}.mkp-hero h1{max-width:17ch;font-size:clamp(40px,5.4vw,72px)}.mkp-stage{position:relative;margin:28px 0 18px;display:flex;align-items:center;justify-content:center;gap:40px}.mkp-live{animation:mk-float 6s ease-in-out infinite}@keyframes mk-float{50%{translate:0 -10px}}.mkp-float{width:190px;text-align:left;padding:16px 18px;border-radius:20px;background:color-mix(in srgb,var(--surface) 75%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);box-shadow:var(--shadow-md);display:grid;gap:4px;animation:mk-rise .9s var(--out) both;animation-delay:var(--d)}.mkp-float strong{font:400 20px var(--serif)}.mkp-float span{color:var(--muted);font-size:13px}.mkp-float.left{rotate:-4deg;margin-top:-160px}.mkp-float.right{rotate:3deg;margin-top:160px}.mkp-try{position:absolute;bottom:-30px;left:50%;translate:-50% 0;margin:0;font:italic 15px var(--serif);color:var(--brand);white-space:nowrap}.mkp-switch{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:26px 0 22px;padding:6px;border-radius:999px;background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mkp-switch button{border:0;background:none;padding:9px 16px;border-radius:999px;font-weight:700;font-size:14px;color:var(--muted);transition:background .3s var(--out),color .2s}.mkp-switch button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.mkp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:980px;margin:30px auto;padding:0 16px}.mkp-steps div{display:grid;gap:4px;padding:22px;border-radius:22px;background:var(--surface);border:1px solid var(--line)}.mkp-steps span{font:600 12px var(--mono, monospace);color:var(--brand)}.mkp-steps strong{font:400 26px var(--serif)}.mkp-steps small{color:var(--muted);font-size:14px}.mkp-rows{max-width:1240px;margin:40px auto 80px;padding:0 16px;display:grid;gap:34px}.mkp-row h2{font:400 30px var(--serif);margin:0 0 14px;display:flex;align-items:baseline;gap:10px}.mkp-row h2 span{font:600 13px var(--sans, inherit);color:var(--muted)}.mkp-rail{display:grid;grid-auto-flow:column;grid-auto-columns:210px;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 4px 18px;scrollbar-width:none}.mkp-card{--s: .5385;scroll-snap-align:start;border:0;padding:0;background:none;text-align:left;display:grid;gap:8px;color:var(--ink);cursor:pointer}.mkp-card .mk-thumb{box-shadow:0 0 0 1px var(--line),0 20px 40px -26px var(--accent);transition:transform .45s var(--spring),box-shadow .4s}.mkp-card:hover .mk-thumb,.mkp-card:focus-visible .mk-thumb{transform:translateY(-6px) rotate(-1.5deg);box-shadow:0 0 0 2px var(--accent),0 30px 50px -24px var(--accent)}.mkp-card-name{font:400 19px var(--serif);padding:0 4px}.mkp-card-sig{font-size:13px;color:var(--muted);padding:0 4px}@media(max-width:860px){.mkp-float{display:none}.mk-phone.mkp-live{width:min(260px,68vw);height:calc(min(260px,68vw)*2.07)}.mkp-steps{grid-template-columns:1fr}.mkp-switch{border-radius:22px}.mkp-rail{grid-auto-columns:46%}.mkp-card{--s: .43}}.mkb-grid{max-width:1240px;margin:10px auto 80px;padding:0 16px;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(150px,auto);gap:14px}.mkb-tile{border-radius:28px;padding:24px;background:var(--surface);border:1px solid var(--line);display:grid;align-content:end;gap:6px;color:var(--ink);text-decoration:none;position:relative;overflow:hidden;transition:transform .4s var(--spring),box-shadow .4s,border-color .3s}a.mkb-tile:hover{transform:translateY(-4px);border-color:var(--accent, var(--brand));box-shadow:0 28px 50px -30px var(--accent, var(--brand))}.mkb-tile strong{font:400 22px/1.15 var(--serif)}.mkb-tile>span:not(.mkb-big):not(.mkb-icon){color:var(--muted);font-size:14px}.mkb-hero{grid-column:span 3;grid-row:span 3;grid-template-columns:1.2fr auto;align-items:center;align-content:center;gap:30px;padding:clamp(24px,4vw,48px);background:radial-gradient(80% 90% at 85% 50%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 60%),var(--surface)}.mkb-hero-copy{display:grid;justify-items:start;gap:18px}.mkb-hero h1{font-size:clamp(40px,5vw,70px)}.mkb-sub{margin:0;color:var(--muted);font-size:17px;max-width:32ch}.mkb-live{width:270px;height:560px;rotate:3deg;transition:rotate .5s var(--spring)}.mkb-live:hover{rotate:0deg}.mkb-price{background:var(--ink);color:var(--paper);border:0}.mkb-price>span:last-child{color:color-mix(in srgb,var(--paper) 70%,transparent)!important}.mkb-big{font:400 64px/1 var(--serif);letter-spacing:-.03em}.mkb-icon{font-size:26px;width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:var(--brand-soft);color:var(--brand);margin-bottom:auto}.mkb-group,.mkb-lock{align-content:space-between}.mkb-steps{grid-column:span 2;align-content:space-between;background:var(--brand-soft);border:0}.mkb-steps ol{list-style:none;display:flex;gap:8px;margin:0;padding:0;counter-reset:s}.mkb-steps li{counter-increment:s;flex:1;padding:14px;border-radius:16px;background:var(--surface);font-weight:700;font-size:15px}.mkb-steps li:before{content:"0" counter(s);display:block;font:600 11px var(--mono, monospace);color:var(--brand);margin-bottom:6px}.mkb-pick{--s: .62;grid-row:span 2;padding:12px 12px 18px;align-content:start}.mkb-pick .mk-thumb{aspect-ratio:4 / 5;border-radius:18px}.mkb-pick-text{display:grid;gap:2px;padding:4px 6px 0}.mkb-pick-text small{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.mkb-all{grid-column:span 4;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:var(--paper);border:0;min-height:90px}.mkb-all strong{font-size:28px}.mkb-all>span{color:var(--paper)!important;font-size:28px!important}@media(max-width:960px){.mkb-grid{grid-template-columns:repeat(2,1fr)}.mkb-hero{grid-column:span 2;grid-row:auto;grid-template-columns:1fr;justify-items:center;text-align:center}.mkb-hero-copy{justify-items:center}.mkb-live{width:min(270px,74vw);height:calc(min(270px,74vw)*2.07);rotate:0deg}.mkb-steps,.mkb-all{grid-column:span 2}.mkb-pick{--s: .42}.mkb-big{font-size:44px}}@media(prefers-reduced-motion:reduce){.mk *,.mk-aura{animation:none!important;transition:none!important}}@media(max-width:600px){.mk-top nav{display:none}.mk-top{justify-content:space-between}}:root{--paper: #f7f4ef;--surface: #ffffff;--surface-2: #faf8f5;--ink: #1d1916;--ink-2: #4a433d;--muted: #8a8077;--line: #e7e1d9;--line-strong: #d6cec4;--brand: #a8475a;--brand-ink: #ffffff;--brand-soft: #f6e8ea;--gold: #a87b2c;--ok: #3d7a57;--warn: #a8682c;--danger: #b23b3b;--focus: 0 0 0 3px rgba(168, 71, 90, .28);--serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, monospace;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--shadow-sm: 0 1px 2px rgba(29, 25, 22, .06);--shadow-md: 0 8px 24px -12px rgba(29, 25, 22, .18);--shadow-lg: 0 40px 80px -32px rgba(29, 25, 22, .35), 0 12px 24px -12px rgba(29, 25, 22, .18);--ease: cubic-bezier(.2, .7, .2, 1);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}code{font:.85em var(--mono);background:var(--surface-2);border:1px solid var(--line);padding:1px 5px;border-radius:5px}h1,h2,h3{margin:0;font-weight:500}p{margin:0}.muted{color:var(--muted)}.gold{color:var(--gold);font-style:italic}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin-bottom:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;border:1px solid transparent;font-weight:600;text-decoration:none;transition:background .15s,transform .15s var(--ease),box-shadow .15s}.btn-lg{height:52px;padding:0 28px;font-size:16px}.btn-primary{background:var(--ink);color:var(--paper);box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){background:#000;transform:translateY(-1px)}.btn-primary:disabled{opacity:.6}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover{border-color:var(--ink-2)}.text-button{background:none;border:0;padding:4px 2px;color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:3px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;height:64px;padding:0 clamp(16px,4vw,40px);background:#f7f4efd1;-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}.wordmark{font:500 20px/1 var(--serif);color:var(--ink);text-decoration:none;letter-spacing:-.01em}.wordmark span{color:var(--brand);margin-left:3px}.topbar-editor .save-status{margin-left:auto}.btn-sm{height:34px;padding:0 14px;font-size:13px;box-shadow:none}.save-status{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);white-space:nowrap}.save-status i{width:8px;height:8px;border-radius:50%;background:var(--ok)}.save-status.is-dirty i{background:var(--warn)}.save-status.is-saving i{background:var(--warn);animation:pulse 1s infinite}.save-status.is-blocked i,.save-status.is-error i{background:var(--danger)}.save-status.is-blocked,.save-status.is-error{color:var(--danger)}.view-switch{display:none;margin-left:auto;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:3px}.view-switch button{border:0;background:none;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--muted)}.view-switch button[aria-selected=true]{background:var(--ink);color:var(--paper)}.welcome{min-height:100vh;background:radial-gradient(1200px 600px at 80% -10%,var(--brand-soft),transparent 60%),var(--paper)}.welcome-hero{max-width:760px;margin:0 auto;padding:clamp(64px,12vh,140px) 24px 48px;text-align:center}.welcome-hero h1{font:400 clamp(36px,6vw,64px)/1.05 var(--serif);letter-spacing:-.025em}.welcome-hero h1 em{color:var(--brand)}.welcome-copy{max-width:560px;margin:22px auto 0;font-size:17px;color:var(--ink-2)}.welcome-actions{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:36px}.welcome-meta{font-size:13px;color:var(--muted)}.welcome-features{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;max-width:960px;margin:24px auto 0;padding:0;list-style:none;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.welcome-features li{background:var(--surface);padding:24px;display:grid;gap:6px}.welcome-features strong{font:500 18px var(--serif)}.welcome-features span{color:var(--muted);font-size:14px}.inline-error{margin-top:16px;color:var(--danger);font-size:14px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,460px);gap:clamp(24px,4vw,64px);max-width:1280px;margin:0 auto;padding:32px clamp(16px,4vw,40px) 80px}.panel-edit,.panel-preview{min-width:0}.panel-intro{margin-bottom:24px}.panel-intro h1{font:400 40px/1.1 var(--serif);letter-spacing:-.02em;margin-bottom:10px}.panel-intro h1 em{color:var(--brand)}.panel-intro .muted{max-width:520px}.sections{display:grid;gap:12px}.section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.section[open]{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.section:focus-within{border-color:var(--brand)}.section summary{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:14px;padding:18px 20px;list-style:none;cursor:pointer;border-radius:var(--r-lg)}.section summary::-webkit-details-marker{display:none}.section-index{font:600 12px var(--mono);color:var(--muted)}.section-title{font-weight:600;font-size:16px}.section-hint{font-size:13px;color:var(--muted);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.chevron{width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-3px);transition:transform .2s var(--ease)}.section[open] .chevron{transform:rotate(-135deg) translateY(-1px)}.section-body{display:grid;gap:16px;padding:20px 20px 22px;border-top:1px solid var(--line)}.section.skeleton{height:62px;background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.4s infinite}.group{display:grid;gap:12px;padding:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md)}.group-title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.divider{height:1px;background:var(--line)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:grid;gap:6px}.field-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.field-label{font-size:13px;font-weight:600;color:var(--ink-2)}.count{font:11px var(--mono);color:var(--muted);opacity:0;transition:opacity .15s}.field:focus-within .count,.count.near{opacity:1}.count.near{color:var(--warn)}.field input,.field textarea{width:100%;padding:10px 12px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);transition:border-color .15s,box-shadow .15s;line-height:1.5}.field textarea{resize:vertical;min-height:84px}.field input:hover,.field textarea:hover{border-color:var(--muted)}.field input:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--focus)}.field.has-error input,.field.has-error textarea{border-color:var(--danger)}.field-hint{font-size:12px;color:var(--muted)}.field-error{font-size:12px;color:var(--danger)}.themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:0;padding:0;margin:0}.themes legend{margin-bottom:8px}.theme-option{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-md);cursor:pointer;font-size:14px;transition:border-color .15s,background .15s}.theme-option input{position:absolute;opacity:0;pointer-events:none}.theme-option:has(input:checked){border-color:var(--ink);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--ink)}.theme-option:has(input:focus-visible){box-shadow:var(--focus)}.theme-swatch{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--a) 50%,var(--b) 50%);border:1px solid rgba(0,0,0,.1);flex:none}.preview-sticky{position:sticky;top:88px;display:grid;gap:14px;justify-items:center}.preview-meta{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:380px;font-size:13px}.live-pill{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:12px;letter-spacing:.04em;color:var(--ink-2)}.live-pill i{width:7px;height:7px;border-radius:50%;background:#d64545;animation:pulse 1.6s infinite}.phone{position:relative;width:100%;max-width:380px;aspect-ratio:9 / 18.5;max-height:calc(100vh - 170px);padding:12px;background:#141210;border-radius:48px;box-shadow:var(--shadow-lg)}.phone-notch{position:absolute;top:20px;left:50%;width:92px;height:24px;transform:translate(-50%);background:#141210;border-radius:999px;z-index:3}.phone{display:flex;flex-direction:column}.phone-screen{flex:1 1 0;min-height:0;height:auto;border-radius:38px;overflow:hidden;background:var(--surface)}.phone-screen>*{height:100%}.phone-skeleton{height:100%;background:linear-gradient(180deg,var(--surface-2),var(--line))}.preview-foot{font-size:12px}.book{--bg: #fbf2f0;--fg: #2b1d1f;--soft: #8c6b6f;--accent: #b4505f;--accent-ink: #fff;--card: rgba(255, 255, 255, .7);--gold: #a87b2c;height:100%;display:flex;flex-direction:column;background:var(--bg);color:var(--fg)}.theme-gold{--bg: #f8f0e0;--fg: #2d2416;--soft: #8a7652;--accent: #a87b2c;--card: rgba(255, 255, 255, .6);--gold: #9a6d1f}.theme-midnight{--bg: #171a2c;--fg: #eef0f8;--soft: #9da3c2;--accent: #d8b46a;--accent-ink: #171a2c;--card: rgba(255, 255, 255, .06);--gold: #e3c27e}.theme-sage{--bg: #eaefe7;--fg: #1f2a20;--soft: #6c7f6d;--accent: #4f6b52;--card: rgba(255, 255, 255, .65);--gold: #8a7334}.theme-ivory{--bg: #faf7f0;--fg: #2a2622;--soft: #857c72;--accent: #3b3632;--card: #ffffff;--gold: #9a7a3a}.theme-plum{--bg: #24162a;--fg: #f7e9ee;--soft: #c2a3b4;--accent: #e3a6b8;--accent-ink: #24162a;--card: rgba(255, 255, 255, .06);--gold: #edc68a}.book .gold{color:var(--gold)}.book-viewport{flex:1;overflow-y:auto;overscroll-behavior:contain}.book-page{min-height:100%}.page{min-height:100%;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:56px 28px 28px;text-align:center}.kicker{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--soft)}.display{font:400 30px/1.15 var(--serif);letter-spacing:-.015em;text-wrap:balance}.lede{font:400 17px/1.6 var(--serif);text-wrap:pretty}.book .muted{color:var(--soft);font-size:14px}.center{text-align:center}.rule{width:40px;height:1px;background:var(--accent);margin:4px auto;opacity:.6}.page-button{align-self:center;margin-top:10px;padding:12px 24px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:14px;box-shadow:0 10px 20px -10px var(--accent);transition:transform .15s var(--ease)}.page-button:hover{transform:translateY(-1px)}.book .text-button{color:var(--accent);align-self:center;font-size:13px}.page-cover{background:radial-gradient(120% 70% at 50% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 70%)}.page-cover .display{font-size:36px}.cover-seal{align-self:center;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:26px;box-shadow:0 12px 24px -12px var(--accent);margin:6px 0}.cover-names{font:italic 400 19px var(--serif);color:var(--soft)}.counter{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 0}.counter div{background:var(--card);border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);border-radius:14px;padding:12px 4px}.counter dt{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}.counter dd{margin:2px 0 0;font:400 30px/1 var(--serif);font-variant-numeric:tabular-nums}.counter-total{font-size:13px;color:var(--soft)}.greeting{font:italic 400 20px var(--serif);margin-top:12px}.page-chapter{position:relative;overflow:hidden}.chapter-numeral{position:absolute;top:24px;right:18px;font:400 120px/1 var(--serif);color:var(--accent);opacity:.08}.envelopes{display:grid;gap:10px;margin-top:6px;text-align:left}.envelope{position:relative;display:grid;gap:8px;padding:18px 16px 16px;border:1px solid color-mix(in srgb,var(--fg) 12%,transparent);border-radius:14px;background:var(--card);text-align:left;overflow:hidden;transition:transform .2s var(--ease),box-shadow .2s}.envelope:hover{transform:translateY(-1px);box-shadow:0 10px 20px -14px #0006}.envelope-flap{position:absolute;inset:0 0 auto;height:4px;background:var(--accent);opacity:.8}.envelope-label{font-weight:600;font-size:14px}.envelope-label:after{content:"✉";float:right;color:var(--accent)}.envelope.open .envelope-label:after{content:"–"}.envelope-note{font:italic 400 15px/1.55 var(--serif);color:var(--fg);animation:fade-up .3s var(--ease)}.glasses{font-size:40px}.toast-lines{display:grid;gap:10px}.toast-line,.toast-final{font:400 18px/1.45 var(--serif);opacity:0;transform:translateY(8px);transition:opacity .6s var(--ease),transform .6s var(--ease)}.toast-final{font-size:24px;font-style:italic;color:var(--accent);margin-top:8px}.toast-line.shown,.toast-final.shown{opacity:1;transform:none}.ahead-cards{display:grid;gap:10px;padding:0;margin:6px 0;list-style:none;text-align:left}.ahead-cards li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:14px;background:var(--card);border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);border-radius:14px}.ahead-index{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:600 13px var(--sans)}.ahead-cards h3{font:600 15px var(--sans);margin-bottom:2px}.ahead-cards p{font-size:14px;color:var(--soft)}.letter-paper{text-align:left;padding:24px 22px;background:var(--card);border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);border-radius:6px;box-shadow:0 20px 30px -24px #00000080}.letter-body{font:400 16px/1.75 var(--serif);white-space:pre-line}.signoff{margin-top:18px;font:italic 400 16px var(--serif);color:var(--soft)}.signature{font:italic 400 26px var(--serif);color:var(--accent)}.cake{position:relative;align-self:center;width:180px;height:170px;margin:10px 0}.candles{position:absolute;top:0;left:30px;right:30px;display:flex;justify-content:center;gap:8px}.candle{position:relative;width:6px;height:34px;margin-top:22px;border-radius:2px;background:repeating-linear-gradient(45deg,var(--accent) 0 4px,#fff 4px 8px)}.candle i{position:absolute;left:50%;top:-18px;width:10px;height:16px;transform:translate(-50%);border-radius:50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff6c8,#ffb23e 60%,#ff7a1a);box-shadow:0 0 14px 4px #ffb23e8c;animation:flicker .9s infinite alternate;transition:opacity .4s,transform .4s}.cake.blown .candle i{opacity:0;transform:translate(-50%) translateY(-6px) scale(.4)}.tier{position:absolute;left:50%;transform:translate(-50%);border-radius:10px 10px 6px 6px}.tier-top{top:56px;width:120px;height:44px;background:linear-gradient(var(--accent) 0 12px,color-mix(in srgb,var(--accent) 35%,var(--bg)) 12px)}.tier-bottom{top:98px;width:160px;height:54px;background:linear-gradient(color-mix(in srgb,var(--accent) 80%,#fff) 0 12px,color-mix(in srgb,var(--accent) 25%,var(--bg)) 12px)}.plate{position:absolute;left:50%;top:150px;width:184px;height:10px;transform:translate(-50%);border-radius:50%;background:color-mix(in srgb,var(--fg) 15%,transparent)}.book-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px 16px;border-top:1px solid color-mix(in srgb,var(--fg) 8%,transparent)}.book-arrow{width:34px;height:34px;border-radius:50%;border:1px solid color-mix(in srgb,var(--fg) 15%,transparent);background:var(--card);color:var(--fg);font-size:20px;line-height:1}.book-arrow:disabled{opacity:.3}.book-dots{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}.dot{width:7px;height:7px;padding:0;border:0;border-radius:999px;background:color-mix(in srgb,var(--fg) 22%,transparent);transition:width .25s var(--ease),background .25s}.dot.active{width:20px;background:var(--accent)}.recipient{min-height:100vh;min-height:100dvh;display:grid;place-items:center;background:#141210}.recipient-frame{width:100%;max-width:480px;height:100vh;height:100dvh}.recipient .empty-state{color:var(--paper)}.recipient .book-page .page{padding-top:max(56px,env(safe-area-inset-top))}.recipient .book-nav{padding-bottom:max(16px,env(safe-area-inset-bottom))}@media(min-width:600px){.recipient-frame{height:min(900px,94vh);border-radius:28px;overflow:hidden;box-shadow:0 40px 80px -30px #000}}.share-dialog{width:min(460px,calc(100vw - 32px));padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg)}.share-dialog::backdrop{background:#1d191673;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.share-dialog[open]{animation:fade-up .25s var(--ease)}.share-body{display:grid;gap:16px;padding:24px}.share-head{display:flex;justify-content:space-between;align-items:start}.share-head h2{font:400 28px var(--serif)}.share-head .eyebrow{margin-bottom:4px}.icon-button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:20px;line-height:1;color:var(--ink-2)}.share-warn{font-size:13px;color:var(--warn);background:#fbf3ea;border:1px solid #f0dcc5;padding:8px 12px;border-radius:var(--r-sm)}.share-link{display:flex;gap:8px}.share-link input{flex:1;min-width:0;padding:0 12px;height:40px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface-2);font:13px var(--mono);color:var(--ink-2)}.share-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn-whatsapp{background:#1f8f4e;color:#fff}.btn-whatsapp:hover{background:#187a42}.share-qr{display:flex;align-items:center;gap:16px;margin:0;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.share-qr img{width:96px;height:96px;border-radius:6px;background:#fff;image-rendering:pixelated}.share-qr figcaption{display:grid;gap:2px;font-size:14px}.empty-state{max-width:480px;margin:120px auto;padding:0 24px;text-align:center;display:grid;gap:14px;justify-items:center}.empty-state h1{font:400 32px var(--serif)}@keyframes pulse{50%{opacity:.35}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes page-in{0%{opacity:0;transform:translate(12px)}}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}}@keyframes flicker{to{transform:translate(-50%) scale(.92,1.06) rotate(2deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:960px){.view-switch{display:inline-flex}.topbar-editor .save-status{margin-left:0}.topbar-editor .save-status span{display:none}.share-actions{grid-template-columns:1fr}.workspace{grid-template-columns:minmax(0,1fr);padding-top:20px}.editor[data-view=edit] .panel-preview,.editor[data-view=preview] .panel-edit{display:none}.preview-sticky{position:static}.phone{max-height:none;height:calc(100vh - 160px);aspect-ratio:auto}}@media(max-width:640px){.welcome-features{grid-template-columns:1fr;margin:0 16px}.grid-2{grid-template-columns:minmax(0,1fr)}.themes{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{gap:10px}.wordmark{font-size:18px}.section-hint{display:none}.section summary{grid-template-columns:auto 1fr auto}.panel-intro h1{font-size:32px}.phone{padding:0;border-radius:0;background:none;box-shadow:none;height:calc(100vh - 150px)}.phone-notch{display:none}.phone-screen{border-radius:var(--r-lg);border:1px solid var(--line)}}:root{--spring: cubic-bezier(.34, 1.56, .64, 1);--out: cubic-bezier(.16, 1, .3, 1)}.small{font-size:13px}.book{position:relative;overflow:hidden}.book-viewport{position:relative;perspective:1400px;touch-action:pan-y}.book-page{transform-origin:left center;will-change:transform,opacity}.book-page.turn-forward{animation:turn-forward .7s var(--out) both}.book-page.turn-back{animation:turn-back .7s var(--out) both;transform-origin:right center}@keyframes turn-forward{0%{opacity:0;transform:rotateY(-14deg) translate(18%) scale(.98);filter:blur(2px)}}@keyframes turn-back{0%{opacity:0;transform:rotateY(14deg) translate(-18%) scale(.98);filter:blur(2px)}}.page-sheen{position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.35) 48%,transparent 66%);transform:translate(-120%);animation:sheen .9s var(--out) .05s}@keyframes sheen{to{transform:translate(120%)}}.stagger>*{animation:rise .8s var(--out) both}.stagger>:nth-child(1){animation-delay:.08s}.stagger>:nth-child(2){animation-delay:.16s}.stagger>:nth-child(3){animation-delay:.26s}.stagger>:nth-child(4){animation-delay:.36s}.stagger>:nth-child(5){animation-delay:.46s}.stagger>:nth-child(6){animation-delay:.56s}.stagger>:nth-child(7){animation-delay:.66s}.stagger>:nth-child(8){animation-delay:.76s}@keyframes rise{0%{opacity:0;transform:translateY(16px);filter:blur(4px)}}.book-nav{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center}.book-progress{height:3px;border-radius:999px;background:color-mix(in srgb,var(--fg) 12%,transparent);overflow:hidden}.book-progress span{display:block;height:100%;background:var(--accent);transform-origin:left;transition:transform .6s var(--out)}.book-count{font:600 11px var(--sans);color:var(--soft);font-variant-numeric:tabular-nums;min-width:34px;text-align:right}.book-arrow{transition:transform .2s var(--spring),background .2s}.book-arrow:not(:disabled):active{transform:scale(.88)}.sparkles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.sparkles i{position:absolute;bottom:-10px;border-radius:50%;background:var(--gold);opacity:0;filter:blur(.5px);animation:float-up linear infinite}@keyframes float-up{0%{transform:translateY(0) translate(0) scale(.6);opacity:0}15%{opacity:.7}to{transform:translateY(-110vh) translate(24px) scale(1);opacity:0}}.page-cover{position:relative;overflow:hidden}.cover-seal span{display:inline-block;animation:heartbeat 2.4s ease-in-out infinite}@keyframes heartbeat{0%,60%,to{transform:scale(1)}10%{transform:scale(1.18)}20%{transform:scale(.96)}30%{transform:scale(1.1)}}.cover-seal{position:relative}.cover-seal:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--accent);opacity:.5;animation:ripple 2.4s var(--out) infinite}@keyframes ripple{0%{transform:scale(.9);opacity:.6}to{transform:scale(1.5);opacity:0}}.page-button{display:inline-flex;gap:8px;align-items:center;transition:transform .25s var(--spring),box-shadow .25s}.page-button:active{transform:scale(.95)}.page-button span{transition:transform .25s var(--spring)}.page-button:hover span{transform:translate(3px)}.swipe-hint{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);opacity:.7}.swipe-hint:after{content:" →";display:inline-block;animation:nudge 1.6s ease-in-out infinite}@keyframes nudge{50%{transform:translate(5px)}}.page-memories{gap:10px}.polaroids{position:relative;height:330px;margin:6px auto 0;width:min(250px,78%);touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.polaroids:active{cursor:grabbing}.polaroid{position:absolute;inset:0;margin:0;padding:10px 10px 0;background:#fffdf9;border-radius:4px;box-shadow:0 18px 30px -18px #0000008c,0 2px 6px #00000014;transition:transform .6s var(--spring),opacity .4s;display:flex;flex-direction:column;color:#2a2420}.polaroid.front{box-shadow:0 28px 40px -20px #0009,0 2px 8px #0000001a}.polaroid-photo{flex:1;overflow:hidden;border-radius:2px;background:#eee}.polaroid-photo img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.polaroid figcaption{display:grid;gap:2px;padding:10px 4px 14px;text-align:left}.polaroid-date{font:600 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#9a8f86}.polaroid-caption{font:italic 400 15px/1.35 var(--serif)}.polaroid .gold{color:#a87b2c}.memory-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:6px}.round-button{width:38px;height:38px;border-radius:50%;border:1px solid color-mix(in srgb,var(--fg) 15%,transparent);background:var(--card);color:var(--fg);font-size:20px;transition:transform .2s var(--spring)}.round-button:active{transform:scale(.88)}.memory-count{font:600 12px var(--sans);color:var(--soft);font-variant-numeric:tabular-nums;min-width:52px}.photo-placeholder{width:100%;height:100%;display:grid;place-content:center;gap:6px;text-align:center;color:#ffffffe6}.photo-placeholder span{font-size:34px}.photo-placeholder small{font:600 10px var(--sans);letter-spacing:.14em;text-transform:uppercase}.photo-placeholder.variant-0{background:linear-gradient(135deg,#e8b4b8,#a8475a)}.photo-placeholder.variant-1{background:linear-gradient(135deg,#f1d39a,#b07b2c)}.photo-placeholder.variant-2{background:linear-gradient(160deg,#8e9ccf,#3a3f6b)}.page-portrait{padding:0}.portrait-frame{position:relative;flex:1;min-height:100%;overflow:hidden}.portrait-frame img,.portrait-frame .photo-placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:ken-burns 18s ease-in-out infinite alternate}@keyframes ken-burns{0%{transform:scale(1.04) translate(0)}to{transform:scale(1.16) translate(-2%,-3%)}}.portrait-overlay{position:absolute;inset:auto 0 0;padding:80px 26px 30px;text-align:left;background:linear-gradient(transparent,#000000b8);color:#fff;animation:rise 1s var(--out) .3s both}.portrait-overlay .kicker{color:#ffffffbf}.portrait-caption{font:italic 400 22px/1.3 var(--serif);margin-top:6px}.portrait-overlay .gold{color:#f1d39a}.envelope-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px;margin-top:8px}.envelope{position:relative;height:92px;padding:0;border:0;background:none;display:block;perspective:600px;transition:transform .3s var(--spring)}.envelope:hover{transform:translateY(-3px) rotate(-1deg)}.envelope:active{transform:scale(.96)}.env-back,.env-front,.env-flap,.env-letter{position:absolute;left:0;right:0}.env-back{top:0;bottom:26px;border-radius:6px;background:color-mix(in srgb,var(--accent) 70%,#000)}.env-letter{inset:8px 8px 30px;background:#fffdf9;border-radius:3px;transition:transform .55s var(--out) .15s}.env-front{top:0;bottom:26px;border-radius:6px;background:linear-gradient(to top right,color-mix(in srgb,var(--accent) 85%,#fff) 50%,transparent 50%) left / 50% 100% no-repeat,linear-gradient(to top left,color-mix(in srgb,var(--accent) 80%,#fff) 50%,transparent 50%) right / 50% 100% no-repeat;z-index:2}.env-flap{top:0;height:40px;z-index:3;background:var(--accent);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;transition:transform .5s var(--out);border-radius:6px 6px 0 0}.env-seal{position:absolute;z-index:4;top:26px;left:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#fff;font-size:10px;box-shadow:0 2px 6px #00000040;transition:opacity .2s,transform .3s var(--spring)}.env-label{position:absolute;left:0;right:0;bottom:0;font:600 11.5px/1.25 var(--sans);color:var(--fg);text-align:center}.envelope.opening .env-flap{transform:rotateX(180deg);z-index:1}.envelope.opening .env-seal{opacity:0;transform:scale(.4)}.envelope.opening .env-letter{transform:translateY(-26px)}.envelope.was-opened:not(.opening) .env-seal{background:color-mix(in srgb,var(--gold) 50%,var(--bg))}.note-overlay{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:22px;background:color-mix(in srgb,var(--bg) 55%,rgba(0,0,0,.45));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in .3s ease both}.note-card{width:100%;padding:28px 22px 18px;background:#fffdf9;color:#2a2420;border-radius:6px;box-shadow:0 30px 60px -20px #0009;display:grid;gap:14px;text-align:center;animation:letter-up .55s var(--spring) both}.note-card .kicker{color:#9a8f86}.note-text{font:italic 400 19px/1.55 var(--serif)}.note-card .gold{color:#a87b2c}.note-card .text-button{color:#a8475a}@keyframes letter-up{0%{opacity:0;transform:translateY(60px) scale(.9) rotate(-2deg)}}@keyframes fade-in{0%{opacity:0}}.toast-line,.toast-final{filter:blur(6px);transition:opacity .9s var(--out),transform .9s var(--out),filter .9s var(--out)}.toast-line.shown,.toast-final.shown{filter:none}.glasses{font-size:46px;display:inline-block;align-self:center}.glasses .glass{display:inline-block;animation:sway 3s ease-in-out infinite}.glasses.clink .glass{animation:clink .7s var(--spring) both,sway 3s ease-in-out .7s infinite}@keyframes sway{50%{transform:rotate(-6deg) translateY(-3px)}}@keyframes clink{30%{transform:scale(1.3) rotate(10deg)}60%{transform:scale(.95) rotate(-6deg)}}.page-toast{position:relative}.page-ahead .ahead-cards li{animation:slide-in .7s var(--out) var(--d, .3s) both}@keyframes slide-in{0%{opacity:0;transform:translate(-24px)}}.letter-paper{transform-origin:top;animation:unfold 1s var(--out) .15s both}.letter-body,.signoff,.signature{animation:rise .9s var(--out) both}.letter-body{animation-delay:.7s}.signoff{animation-delay:1s}.signature{animation-delay:1.2s}@keyframes unfold{0%{opacity:0;transform:perspective(800px) rotateX(-70deg) scaleY(.6)}}.page-cake{position:relative}.confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}.cake{animation:rise .9s var(--out) .1s both}.candle{animation:rise .6s var(--spring) calc(.4s + var(--i) * .08s) both}.candle b{position:absolute;left:50%;top:-22px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:color-mix(in srgb,var(--fg) 30%,transparent);opacity:0;filter:blur(2px)}.cake.blown .candle b{animation:smoke 1.8s ease-out calc(var(--i) * .07s) forwards}.cake.blown .candle i{transition-delay:calc(var(--i) * .07s)}@keyframes smoke{0%{opacity:.7;transform:translateY(0) scale(.6)}to{opacity:0;transform:translateY(-46px) translate(8px) scale(2.6)}}.cake.blown{animation:cake-bounce .6s var(--spring)}@keyframes cake-bounce{40%{transform:scale(1.04,.97)}}.drip{position:absolute;left:0;right:0;top:10px;height:10px;background:radial-gradient(circle at 10% 0,var(--accent) 5px,transparent 6px) 0 0 / 22px 10px repeat-x;opacity:.9}.tier{overflow:hidden}.cake-message{display:grid;gap:10px;justify-items:center;animation:rise .7s var(--out) both}.page-lock{position:relative;overflow:hidden;gap:16px}.lock-envelope{position:relative;align-self:center;width:150px;height:100px;border-radius:8px;background:color-mix(in srgb,var(--accent) 80%,#000);box-shadow:0 30px 40px -24px #0009;animation:hover-float 4s ease-in-out infinite}.lock-envelope:before{content:"";position:absolute;inset:0 0 auto;height:58px;background:var(--accent);clip-path:polygon(0 0,100% 0,50% 100%);border-radius:8px 8px 0 0}.lock-ribbon{position:absolute;top:0;bottom:0;left:50%;width:10px;margin-left:-5px;background:var(--gold);opacity:.85}.lock-seal{position:absolute;top:40px;left:50%;width:40px;height:40px;margin-left:-20px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--gold) 60%,#fff),var(--gold));color:#fff;font-size:16px;box-shadow:0 4px 10px #0000004d;animation:heartbeat 2.4s ease-in-out infinite}@keyframes hover-float{50%{transform:translateY(-8px) rotate(-1deg)}}.lock-countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.lock-unit{display:grid;gap:2px;padding:12px 0 10px;background:var(--card);border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);border-radius:14px;overflow:hidden}.lock-digits{font:400 28px/1 var(--serif);font-variant-numeric:tabular-nums;animation:digit-roll .45s var(--out)}.lock-unit small{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}@keyframes digit-roll{0%{transform:translateY(-60%);opacity:0}}.page-lock.unsealing .lock-seal{animation:seal-crack 1.2s var(--out) forwards}.page-lock.unsealing .lock-envelope:before{transition:transform .8s var(--out) .4s;transform-origin:top;transform:perspective(400px) rotateX(180deg)}@keyframes seal-crack{30%{transform:scale(1.25) rotate(-8deg)}to{transform:scale(0) rotate(30deg);opacity:0}}.unseal-in{height:100%;animation:unseal 1.1s var(--out) both}@keyframes unseal{0%{opacity:0;transform:scale(.94);filter:blur(10px)}}.music-button{position:absolute;z-index:15;top:14px;right:14px;display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--fg) 14%,transparent);background:color-mix(in srgb,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--fg);font:600 12px var(--sans);box-shadow:0 8px 20px -12px #00000080;transition:transform .25s var(--spring),background .2s;animation:rise .8s var(--out) 1s both}.music-button:active{transform:scale(.92)}.music-button.playing{background:var(--accent);color:var(--accent-ink);border-color:transparent}.music-label{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eq{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.eq i{width:2.5px;height:30%;border-radius:2px;background:currentColor}.playing .eq i{animation:eq .9s ease-in-out infinite}.playing .eq i:nth-child(2){animation-delay:-.3s}.playing .eq i:nth-child(3){animation-delay:-.6s}.playing .eq i:nth-child(4){animation-delay:-.15s}@keyframes eq{0%,to{height:25%}50%{height:100%}}.phone .music-button{top:46px}.recipient .music-button{top:max(14px,env(safe-area-inset-top))}.memory-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.memory-card{display:grid;gap:10px;padding:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md)}.portrait-card{grid-template-columns:140px minmax(0,1fr);align-items:start}.memory-fields{display:grid;gap:10px}.photo-drop{position:relative;aspect-ratio:4 / 3;border-radius:var(--r-sm);overflow:hidden;background:var(--surface);border:1.5px dashed var(--line-strong);transition:border-color .2s,background .2s,transform .2s var(--spring)}.photo-drop.tall{aspect-ratio:3 / 4}.photo-drop.over{border-color:var(--brand);background:var(--brand-soft);transform:scale(1.02)}.photo-drop.has-photo{border-style:solid;border-color:transparent}.photo-drop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:fade-in .4s ease}.photo-drop-target{position:absolute;inset:0;display:grid;place-content:center;gap:4px;border:0;background:none;color:var(--muted);font-size:13px;font-weight:600}.photo-drop-target:hover{color:var(--brand)}.photo-plus{font-size:26px;font-weight:300;line-height:1}.photo-replace{position:absolute;left:8px;bottom:8px;padding:4px 10px;border-radius:999px;background:#0000008c;color:#fff;font-size:12px;opacity:0;transition:opacity .2s}.photo-drop:hover .photo-replace,.photo-drop-target:focus-visible .photo-replace{opacity:1}.photo-remove{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:0;background:#0000008c;color:#fff;font-size:16px;line-height:1}.photo-progress{position:absolute;inset:0;display:grid;place-items:center;background:#ffffffb3}.photo-progress svg{width:44px;height:44px;transform:rotate(-90deg)}.photo-progress circle{fill:none;stroke-width:3;stroke:var(--line)}.photo-progress circle+circle{stroke:var(--brand);stroke-linecap:round;stroke-dasharray:94.2;transition:stroke-dashoffset .2s}.photo-error{position:absolute;inset:auto 0 0;padding:6px 8px;background:var(--danger);color:#fff;font-size:11px}.music-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.music-option{position:relative;display:flex;align-items:center;gap:8px;padding:12px;border:1px solid var(--line-strong);border-radius:var(--r-md);transition:border-color .15s,box-shadow .15s}.music-option.selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--surface-2)}.music-option label{flex:1;display:grid;gap:2px;cursor:pointer;min-width:0}.music-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}.music-option:has(input:focus-visible){box-shadow:var(--focus)}.music-name{font-weight:600;font-size:14px}.music-mood{font-size:12px;color:var(--muted)}.preview-play{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);font-size:11px;color:var(--ink);display:grid;place-items:center;transition:transform .2s var(--spring)}.preview-play:active{transform:scale(.9)}.preview-play.playing{background:var(--brand);border-color:var(--brand);color:#fff}.timelock,.timelock-body{display:grid;gap:14px}.timelock-body{animation:rise .4s var(--out) both}.switch-row{display:flex;justify-content:space-between;gap:16px;align-items:center;cursor:pointer}.switch-row>span{display:grid;gap:4px}.switch{appearance:none;flex:none;position:relative;width:44px;height:26px;margin:0;border-radius:999px;background:var(--line-strong);cursor:pointer;transition:background .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .3s var(--spring)}.switch:checked{background:var(--brand)}.switch:checked:after{transform:translate(18px)}.switch:focus-visible{box-shadow:var(--focus)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);font-size:13px;font-weight:600;transition:border-color .15s,transform .2s var(--spring)}.chip:hover{border-color:var(--ink-2)}.chip:active{transform:scale(.95)}.timelock-summary{font-size:14px;padding:10px 12px;border-radius:var(--r-sm);background:var(--brand-soft);color:var(--ink)}.timelock-summary.past{background:#fbf3ea;color:var(--warn)}.timelock .field input{width:100%}.section{transition:border-color .2s,box-shadow .3s,transform .3s var(--out)}.section summary:hover .section-title{color:var(--brand)}.section[open] .section-body{animation:rise .45s var(--out) both}.btn:active:not(:disabled){transform:scale(.97)}.save-status{transition:color .2s}@media(max-width:640px){.memory-editor,.music-options{grid-template-columns:minmax(0,1fr)}.portrait-card{grid-template-columns:110px minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.toast-line,.toast-final{filter:none}.sparkles{display:none}}.book-viewport{display:flex;flex-direction:column;overflow-x:hidden}.book-page{flex:1 0 auto;display:flex;flex-direction:column}.book-page>.page{flex:1 0 auto;min-height:0}.page-portrait{position:relative}.portrait-frame{position:absolute;inset:0;min-height:0}.music-button,.phone .music-button,.recipient .music-button{top:auto;bottom:72px;right:14px;width:44px;height:44px;padding:0;justify-content:center;border-radius:50%}.music-button .music-label{position:absolute;right:52px;padding:6px 10px;border-radius:999px;background:var(--fg);color:var(--bg);font-size:11px;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(6px);transition:opacity .25s,transform .25s var(--out)}.music-button:hover .music-label,.music-button:focus-visible .music-label{opacity:1;transform:none}.music-button:not(.playing) .music-label{animation:hint 4.5s var(--out) 1.6s both}@keyframes hint{0%,to{opacity:0;transform:translate(6px)}12%,80%{opacity:1;transform:none}}.music-button .eq{height:14px;gap:2.5px}.music-button .eq i{width:3px}.recipient .music-button{bottom:calc(72px + env(safe-area-inset-bottom))}.music-note{font-size:18px;line-height:1}.theme-sunshine{--bg: #fff6e3;--fg: #2d1c10;--soft: #9a6e4c;--accent: #ff6a3d;--accent-ink: #fff;--card: rgba(255, 255, 255, .75);--gold: #e08a00;--b1: #ff6a3d;--b2: #ffc23d;--b3: #4fb6ff}.theme-lagoon{--bg: #e3f5f3;--fg: #0f2d2f;--soft: #4f7c7d;--accent: #138a8a;--accent-ink: #fff;--card: rgba(255, 255, 255, .7);--gold: #d07a2e;--b1: #138a8a;--b2: #ffb547;--b3: #ff7a8a}.theme-berry{--bg: #241229;--fg: #fbeaf2;--soft: #c79ab4;--accent: #ff4f87;--accent-ink: #fff;--card: rgba(255, 255, 255, .07);--gold: #ffcc6a;--b1: #ff4f87;--b2: #b46bff;--b3: #ffcc6a}.theme-blush{--bg: #fdeef1;--fg: #3a1520;--soft: #a06a78;--accent: #d9466f;--accent-ink: #fff;--card: rgba(255, 255, 255, .75);--gold: #c27a2a;--b1: #d9466f;--b2: #f6a6b8;--b3: #ffd36e}.theme-mint{--bg: #e8f7ee;--fg: #12301f;--soft: #5f8a70;--accent: #2f8f5b;--accent-ink: #fff;--card: rgba(255, 255, 255, .72);--gold: #c8892a;--b1: #2f8f5b;--b2: #ffbf5a;--b3: #6cb7ff}.bday.theme-midnight{--b1: #d8b46a;--b2: #8e9ccf;--b3: #e38aa0}.bday .display{font-family:var(--serif)}.bday-hero{position:relative;overflow:hidden;background:radial-gradient(110% 60% at 50% 110%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 70%)}.bday-title{font-size:40px;line-height:1.05}.bday-from{font:italic 400 15px var(--serif);color:var(--soft)}.streamers{position:absolute;top:0;left:0;width:100%;height:70px;fill:none;stroke-width:3;stroke-linecap:round;pointer-events:none}.streamers path{stroke-dasharray:600;stroke-dashoffset:600;animation:draw 1.6s var(--out) .2s forwards}.streamers path:first-child{stroke:var(--b1)}.streamers path:last-child{stroke:var(--b2);animation-delay:.45s}.float-balloons{position:absolute;inset:0;pointer-events:none}.float-balloon{position:absolute;bottom:-90px;border-radius:50% 50% 48% 48%/55% 55% 45% 45%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.55),transparent 32%),var(--c);opacity:.85;animation:balloon-rise 11s linear infinite}.float-balloon:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:46px;background:color-mix(in srgb,var(--fg) 30%,transparent)}@keyframes balloon-rise{0%{transform:translate(0) rotate(-4deg)}50%{transform:translate(14px,-55vh) rotate(4deg)}to{transform:translate(-6px,-115vh) rotate(-3deg)}}.age-ring{position:relative;align-self:center;width:170px;height:170px;display:grid;place-items:center}.age-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.age-ring circle{fill:none;stroke-width:6;stroke:color-mix(in srgb,var(--fg) 10%,transparent)}.age-ring circle+circle{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:327;stroke-dashoffset:327;animation:ring 1.6s var(--out) .3s forwards}@keyframes ring{to{stroke-dashoffset:0}}.age-number{font:400 76px/1 var(--serif);font-variant-numeric:tabular-nums;color:var(--fg);animation:pop-in .8s var(--spring) .2s both}.age-ring.no-age .age-number{color:var(--accent);font-size:60px}@keyframes pop-in{0%{transform:scale(.4);opacity:0}}.bday-balloons{position:relative}.balloon-field{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 8px;align-items:end;margin:10px 0 4px;min-height:260px}.balloon-field>:nth-child(4){grid-column:1 / span 1;margin-left:50%}.balloon-field>:nth-child(5){grid-column:3 / span 1;margin-right:50%}.balloon{position:relative;height:120px;border:0;padding:0;background:none;animation:bob 3.2s ease-in-out calc(var(--i) * -.6s) infinite,rise .7s var(--spring) calc(var(--i) * .08s) both}.balloon-body{position:absolute;left:50%;top:0;width:64px;height:78px;margin-left:-32px;border-radius:50% 50% 48% 48%/55% 55% 45% 45%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.6),transparent 30%),var(--c);box-shadow:inset -6px -10px 18px #0000001f,0 10px 18px -12px #0006;transition:transform .2s var(--spring)}.balloon-body:after{content:"";position:absolute;left:50%;bottom:-6px;margin-left:-5px;border:5px solid transparent;border-bottom:7px solid var(--c);transform:rotate(180deg)}.balloon-string{position:absolute;left:50%;top:82px;width:1px;height:38px;background:color-mix(in srgb,var(--fg) 35%,transparent);transform-origin:top;animation:sway 2.4s ease-in-out infinite}.balloon:hover .balloon-body{transform:scale(1.06) rotate(-3deg)}.balloon:active .balloon-body{transform:scale(.94)}.balloon-burst{position:absolute;left:50%;top:36px;pointer-events:none}.balloon-burst i{position:absolute;width:8px;height:3px;border-radius:2px;background:var(--c);opacity:0;transform:rotate(var(--a)) translate(0)}.balloon.bursting{animation:none}.balloon.bursting .balloon-body{animation:burst .36s ease-out forwards}.balloon.bursting .balloon-string{animation:fall .4s ease-in forwards}.balloon.bursting .balloon-burst i{animation:shard .42s var(--out) forwards}@keyframes bob{50%{transform:translateY(-8px)}}@keyframes burst{40%{transform:scale(1.25)}to{transform:scale(1.5);opacity:0}}@keyframes shard{0%{opacity:1;transform:rotate(var(--a)) translate(10px)}to{opacity:0;transform:rotate(var(--a)) translate(46px)}}@keyframes fall{to{transform:translateY(40px) rotate(20deg);opacity:0}}.wish-card{align-self:center;padding:12px 10px;border-radius:14px;background:var(--card);border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);font:italic 400 14px/1.4 var(--serif);box-shadow:0 14px 24px -18px #00000080;animation:wish-in .6s var(--spring) both}@keyframes wish-in{0%{opacity:0;transform:scale(.6) translateY(20px) rotate(-6deg)}}.small-print{font-size:12px}.booth{position:relative;display:grid;justify-items:center;margin-top:4px}.booth-slot{width:200px;height:12px;border-radius:6px;background:color-mix(in srgb,var(--fg) 85%,transparent);box-shadow:inset 0 3px 4px #00000080;position:relative;z-index:2}.photo-strip{width:168px;margin-top:-6px;padding:10px 10px 6px;background:#fdfbf7;border-radius:0 0 4px 4px;box-shadow:0 24px 36px -22px #0009;transform-origin:top;animation:print 2.4s cubic-bezier(.5,0,.3,1) .3s both;display:grid;gap:8px;color:#2a2420;rotate:-2deg}@keyframes print{0%{clip-path:inset(0 0 100% 0);transform:translateY(-20px)}to{clip-path:inset(0 0 0 0);transform:none}}.strip-frame{margin:0;display:grid;gap:3px}.strip-frame img,.strip-frame .photo-placeholder{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;border-radius:2px;filter:saturate(1.05) contrast(1.02)}.strip-frame figcaption{font:italic 400 11px/1.3 var(--serif);text-align:center}.strip-frame .gold{color:#c27a2a}.strip-stamp{font:600 9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#9a8f86;text-align:center;padding-top:2px}.flip-cards{display:grid;gap:10px;perspective:900px}.flip-card{height:88px;border:0;padding:0;background:none;text-align:left}.flip-inner{position:relative;display:block;height:100%;transform-style:preserve-3d;transition:transform .7s var(--spring)}.flip-card.flipped .flip-inner{transform:rotateX(180deg)}.flip-face{position:absolute;inset:0;display:grid;align-content:center;gap:2px;padding:14px 16px;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.flip-front{background:var(--card);border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);grid-template-columns:auto 1fr;column-gap:14px}.flip-number{grid-row:span 2;font:400 30px var(--serif);color:var(--accent)}.flip-title{font-weight:600;font-size:15px;color:var(--fg)}.flip-hint{font-size:11px;color:var(--soft)}.flip-back{background:var(--accent);color:var(--accent-ink);transform:rotateX(180deg);font:italic 400 15px/1.45 var(--serif)}.flip-back .gold{color:inherit;text-decoration:underline}.bday-present{position:relative}.present{position:relative;align-self:center;width:150px;height:150px;margin:18px 0 6px;border:0;padding:0;background:none}.present-box{position:absolute;left:10px;right:10px;bottom:0;height:104px;border-radius:8px;background:linear-gradient(90deg,transparent 44%,var(--gold) 44% 56%,transparent 56%),var(--accent);box-shadow:inset 0 -12px 20px #00000026,0 20px 30px -20px #0009}.present-lid{position:absolute;left:0;right:0;top:22px;height:30px;z-index:2;border-radius:8px;background:linear-gradient(90deg,transparent 44%,var(--gold) 44% 56%,transparent 56%),color-mix(in srgb,var(--accent) 85%,#fff);box-shadow:0 6px 10px -6px #0006;transition:transform .7s var(--spring),opacity .5s}.present-bow{position:absolute;left:50%;top:-20px;width:46px;height:22px;margin-left:-23px;background:radial-gradient(ellipse at 25% 60%,var(--gold) 45%,transparent 47%),radial-gradient(ellipse at 75% 60%,var(--gold) 45%,transparent 47%)}.present-ribbon{display:none}.present-glow{position:absolute;left:50%;top:40px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--gold);opacity:0;box-shadow:0 0 60px 40px color-mix(in srgb,var(--gold) 60%,transparent)}.present.wrapped{animation:present-wiggle 2.6s ease-in-out 1s infinite}.present.shaking{animation:present-shake .7s ease-in-out}.present.open .present-lid{transform:translate(40px,-90px) rotate(28deg);opacity:0}.present.open .present-glow{animation:glow 1.4s var(--out) forwards}@keyframes present-wiggle{0%,80%,to{transform:rotate(0)}85%{transform:rotate(-4deg)}90%{transform:rotate(4deg)}95%{transform:rotate(-2deg)}}@keyframes present-shake{20%{transform:rotate(-8deg) scale(1.03)}40%{transform:rotate(8deg)}60%{transform:rotate(-6deg) scale(1.05)}80%{transform:rotate(5deg)}}@keyframes glow{0%{opacity:0}30%{opacity:1}to{opacity:.25}}.present-note{padding:18px;border-radius:14px;background:var(--card);border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);font:italic 400 17px/1.5 var(--serif);animation:letter-up .7s var(--spring) .15s both}.greeting-card{position:relative;align-self:center;width:min(300px,100%);height:380px;perspective:1200px;margin-top:6px}.card-inside{position:absolute;inset:0;padding:26px 22px;border-radius:6px;background:#fffdf9;color:#2a2420;text-align:left;box-shadow:0 30px 40px -28px #0009;overflow:auto}.card-inside .letter-body{font-size:15px}.card-inside .gold{color:#c27a2a}.card-inside .signoff{color:#8a7a70}.card-inside .signature{color:var(--accent)}.card-cover{position:absolute;inset:0;z-index:2;display:grid;place-content:center;gap:12px;text-align:center;border-radius:6px;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--b2, var(--gold)) 70%,transparent),transparent 40%),radial-gradient(circle at 80% 85%,color-mix(in srgb,var(--b3, var(--gold)) 60%,transparent),transparent 45%),var(--accent);color:var(--accent-ink);transform-origin:left center;transition:transform 1.3s cubic-bezier(.6,0,.2,1);backface-visibility:hidden;box-shadow:4px 0 18px -6px #00000059}.card-cover-art{font-size:54px;animation:bob 3s ease-in-out infinite}.card-cover-text{font:italic 400 24px var(--serif)}.greeting-card.open .card-cover{transform:rotateY(-168deg)}.greeting-card.open .card-inside>*{animation:rise .8s var(--out) both}.greeting-card.open .card-inside>:nth-child(1){animation-delay:.9s}.greeting-card.open .card-inside>:nth-child(2){animation-delay:1.15s}.greeting-card.open .card-inside>:nth-child(3){animation-delay:1.3s}.landing{min-height:100vh;background:radial-gradient(900px 500px at 85% -5%,var(--brand-soft),transparent 60%),radial-gradient(700px 400px at -10% 30%,#fbf1df,transparent 60%),var(--paper)}.landing-gifts-link{margin-left:auto;padding:7px 12px;border-radius:999px;color:var(--ink);text-decoration:none;font-size:14px;font-weight:700;transition:background .2s,color .2s}.landing-gifts-link:hover,.landing-gifts-link:focus-visible{background:var(--brand-soft);color:var(--brand)}.landing-nav{display:flex;gap:22px}.landing-nav a{color:var(--ink-2);text-decoration:none;font-size:14px;font-weight:600}.landing-nav a:hover{color:var(--brand)}.landing-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:center;max-width:1180px;margin:0 auto;padding:clamp(48px,9vh,110px) clamp(16px,4vw,40px) 40px}.hero-copy h1{font:400 clamp(40px,5.6vw,72px)/1.02 var(--serif);letter-spacing:-.03em;animation:rise .9s var(--out) both}.hero-copy h1{text-wrap:balance}@media(min-width:821px){.hero-copy h1{font-size:clamp(44px,4.4vw,62px)}.hero-copy h1 .h1-line{display:block;white-space:nowrap}}.hero-copy h1 em{color:var(--brand)}.hero-sub{max-width:520px;margin-top:22px;font-size:18px;color:var(--ink-2);animation:rise .9s var(--out) .12s both}.hero-discovery{display:grid;gap:10px;margin-top:26px;animation:rise .9s var(--out) .2s both}.hero-choice-label{margin:0;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.hero-occasion-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.hero-occasion-shortcuts .chip{background:var(--surface)}.hero-occasion-shortcuts .chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.hero-occasion-shortcuts .chip:hover:not([aria-pressed=true]){border-color:var(--brand);color:var(--brand)}.hero-audience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hero-audience-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);text-align:left;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease),border-color .2s,box-shadow .2s}.hero-audience-card:hover,.hero-audience-card:focus-visible{transform:translateY(-2px);border-color:var(--brand);box-shadow:var(--shadow-md)}.hero-audience-card>span:nth-child(2){display:grid;gap:3px}.hero-audience-card strong{font:500 16px/1.2 var(--serif)}.hero-audience-card small{color:var(--muted);font-size:11px;line-height:1.35}.hero-audience-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--brand-soft);color:var(--brand);font-size:17px}.hero-audience-arrow{color:var(--brand);font-size:18px}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px;animation:rise .9s var(--out) .24s both}.hero-copy>.welcome-meta{display:block;margin-top:10px}.hero-stage{position:relative;height:520px}.hero-phone{position:absolute}.hero-phone-0{right:22%;top:10px;transform:rotate(-6deg);animation:hero-float 7s ease-in-out infinite,rise 1s var(--out) .2s both;z-index:2}.hero-phone-1{right:0;top:70px;transform:rotate(7deg) scale(.92);animation:hero-float 8s ease-in-out -3s infinite,rise 1s var(--out) .4s both}@keyframes hero-float{50%{translate:0 -12px}}.mini-phone{width:230px;height:470px;padding:9px;border-radius:36px;background:#141210;box-shadow:var(--shadow-lg)}.mini-screen{width:100%;height:100%;border-radius:28px;overflow:hidden;position:relative;background:var(--surface)}.mini-scale .hook-skip{display:none}.mini-scale{width:390px;height:808px;transform:scale(.5385);transform-origin:top left;pointer-events:none}.mini-scale .book-nav,.mini-scale .music-button{visibility:hidden}.landing-section{max-width:1180px;margin:0 auto;padding:72px clamp(16px,4vw,40px)}.landing-section[id]{scroll-margin-top:80px}.landing-section h2{font:400 clamp(32px,4vw,44px)/1.1 var(--serif);letter-spacing:-.02em}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:28px}.filter-chips{display:flex;gap:8px;flex-wrap:wrap}.filter-chips .chip[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));gap:24px}.template-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:center;padding:26px;border-radius:28px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform .4s var(--out),box-shadow .4s var(--out),border-color .3s;animation:rise .8s var(--out) calc(.1s + var(--i) * .12s) both}.template-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.template-card.skeleton{height:520px;background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.4s infinite}.template-preview{position:relative;border:0;padding:0;background:none;border-radius:36px}.template-preview .mini-phone{width:200px;height:410px;transition:transform .5s var(--out)}.template-preview .mini-scale{transform:scale(.4615)}.template-card:hover .template-preview .mini-phone{transform:rotate(-2deg) translateY(-4px)}.preview-cta{position:absolute;left:50%;bottom:22px;translate:-50% 0;padding:7px 14px;border-radius:999px;background:#141210d1;color:#fff;font-size:12px;font-weight:600;white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s var(--out)}.template-preview:hover .preview-cta,.template-preview:focus-visible .preview-cta{opacity:1;transform:none}.template-info{display:grid;gap:10px}.template-occasion{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.template-audience{padding:3px 8px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:999px;color:var(--ink-2);font-size:10px;letter-spacing:.04em}.template-info h3{font:400 30px/1.1 var(--serif);letter-spacing:-.01em}.template-promise{color:var(--ink-2)}.template-highlights{list-style:none;padding:0;margin:4px 0;display:grid;gap:6px}.template-highlights li{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--ink-2)}.template-highlights li:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}.signature-label{flex:none;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.template-meta{font-size:12px;color:var(--muted)}.template-price{display:flex;align-items:baseline;gap:7px;margin-top:-3px}.template-price strong{color:var(--brand);font:500 24px/1 var(--serif)}.template-price span{color:var(--muted);font-size:12px}.template-actions{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:0;margin:28px 0 0;list-style:none;counter-reset:none}.steps li{padding:26px;border-radius:22px;background:var(--surface);border:1px solid var(--line);display:grid;gap:8px}.steps span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--paper);font-weight:700;font-size:14px}.steps h3{font:500 20px var(--serif);margin-top:6px}.steps p{color:var(--muted);font-size:14px}.faq{max-width:760px}.faq h2{margin-bottom:20px}.faq-item{border-bottom:1px solid var(--line)}.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;list-style:none;cursor:pointer;font-weight:600}.faq-item summary::-webkit-details-marker{display:none}.faq-item[open] .chevron{transform:rotate(-135deg) translateY(-1px)}.faq-item p{padding:0 0 18px;color:var(--ink-2);animation:rise .4s var(--out) both}.landing-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;max-width:1180px;margin:0 auto;padding:32px clamp(16px,4vw,40px) 48px;border-top:1px solid var(--line);font-size:13px}.preview-dialog{width:min(860px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:28px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg);overflow:hidden}.preview-dialog::backdrop{background:#1412108c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.preview-dialog[open]{animation:dialog-in .45s var(--out)}@keyframes dialog-in{0%{opacity:0;transform:translateY(20px) scale(.97)}}.preview-dialog-body{display:grid;grid-template-columns:390px minmax(0,1fr)}.preview-dialog-phone{height:min(760px,calc(100dvh - 24px))}.preview-dialog-side{position:relative;display:grid;align-content:center;gap:14px;padding:40px}.preview-dialog-side h2{font:400 36px/1.1 var(--serif)}.preview-dialog-side .icon-button{position:absolute;top:18px;right:18px}@media(max-width:960px){.landing-hero{grid-template-columns:1fr;text-align:center}.hero-sub{margin-left:auto;margin-right:auto}.hero-discovery{max-width:620px;margin-left:auto;margin-right:auto}.hero-occasion-shortcuts,.hero-actions{justify-content:center}.hero-stage{height:440px;max-width:420px;width:100%;margin:0 auto}.hero-phone-0{right:auto;left:4%}.landing-nav{display:none}.steps,.preview-dialog-body{grid-template-columns:1fr}.preview-dialog-side{order:-1;padding:22px 22px 8px;gap:8px}.preview-dialog-side h2{font-size:26px}.preview-dialog-side .btn-lg{height:44px}.preview-dialog-side .small{display:none}.preview-dialog-phone{height:min(620px,calc(100dvh - 210px))}}@media(max-width:640px){.template-card{grid-template-columns:1fr;justify-items:center;text-align:center;padding:22px 18px}.template-highlights li,.template-actions{justify-content:center}.hero-stage{height:400px}.hero-audience-grid{grid-template-columns:1fr}.hero-phone .mini-phone,.hero-phone.mini-phone{width:190px;height:390px}.hero-phone .mini-scale,.hero-phone.mini-phone .mini-scale{transform:scale(.441)}.balloon-field{min-height:230px}}.share-pay{display:grid;gap:12px;justify-items:start;animation:page-in .4s var(--spring) both}.share-price{display:flex;align-items:baseline;gap:8px;margin:0}.share-price strong{font-family:var(--serif);font-size:44px;line-height:1;color:var(--brand)}.share-pay .btn{width:100%;justify-content:center}.share-secure{font-size:12px;color:var(--muted);margin:0}.my-gifts-list{list-style:none;margin:0 -4px;padding:4px 4px 10px;display:grid;gap:12px;grid-auto-flow:column;grid-auto-columns:min(82%,320px);overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin}.my-gifts-list li{scroll-snap-align:start}.my-gifts-list li{position:relative;display:flex;align-items:stretch;animation:page-in .45s var(--spring) both;animation-delay:calc(var(--i) * 60ms)}.my-gift{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:14px 48px 14px 14px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--fg);text-decoration:none;transition:transform .25s var(--spring),border-color .2s,box-shadow .25s}.my-gift:hover,.my-gift:focus-visible{transform:translateY(-2px);border-color:var(--accent, var(--brand));box-shadow:0 10px 28px -18px var(--accent, var(--brand))}.my-gift-emoji{font-size:26px;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--soft);flex:none}.my-gift-text{display:grid;min-width:0}.my-gift-text small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-gift-text strong{font-family:var(--serif);font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-gift-text small{color:var(--muted);font-size:12px}.my-gift-badge{margin-left:auto;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid var(--line-strong);color:var(--muted);flex:none}.my-gift-badge.is-paid{border-color:var(--brand);color:var(--brand)}.my-gifts-list .icon-button{position:absolute;right:8px;top:50%;translate:0 -50%}.landing-section.my-gifts{padding-top:20px;padding-bottom:4px}.landing-mine-link{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--brand-soft);color:var(--brand);text-decoration:none;font-size:14px;font-weight:700;white-space:nowrap;transition:transform .2s var(--spring)}.landing-mine-link:hover,.landing-mine-link:focus-visible{transform:translateY(-1px)}.count-badge{min-width:20px;height:20px;padding:0 6px;display:inline-grid;place-items:center;border-radius:999px;background:var(--brand);color:#fff;font-size:11px}@media(max-width:520px){.landing-mine-link{font-size:0;gap:0;padding:7px 10px}.landing-mine-link:before{content:"🎁";font-size:15px;margin-right:4px}}.my-gifts .section-head{margin-bottom:16px}.my-gifts-note{font-size:12px;margin-top:10px}.legal-links{display:flex;gap:18px;flex-wrap:wrap}.legal-links a,.share-secure a{color:var(--muted);text-underline-offset:3px;transition:color .2s}.legal-links a:hover,.legal-links a:focus-visible,.share-secure a:hover{color:var(--fg)}.legal-body{max-width:720px;margin:0 auto;padding:clamp(28px,6vw,64px) clamp(16px,4vw,40px) 64px;overflow-wrap:anywhere}.legal-body h1{font-family:var(--serif);font-weight:400;font-size:clamp(36px,7vw,56px);line-height:1.05;margin:8px 0 14px;animation:page-in .5s var(--spring) both}.legal-intro{font-size:18px;color:var(--muted);line-height:1.6;margin:0 0 24px}.legal-draft{margin-bottom:20px}.legal-toc{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}.legal-toc a{font-size:13px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--fg);text-decoration:none;transition:border-color .2s,transform .2s var(--spring)}.legal-toc a:hover,.legal-toc a:focus-visible{border-color:var(--brand);transform:translateY(-1px)}.legal-body section{padding:22px 0;border-top:1px solid var(--line);scroll-margin-top:64px;animation:page-in .5s var(--spring) both;animation-delay:calc(var(--i) * 50ms)}.legal-body h2{font-family:var(--serif);font-weight:400;font-size:24px;margin:0 0 10px}.legal-body p,.legal-body li{line-height:1.7;color:var(--fg)}.legal-body ul{margin:0;padding-left:20px;display:grid;gap:8px}@media(prefers-reduced-motion:reduce){.legal-body h1,.legal-body section{animation:none}}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.people-links{border:1px solid var(--line);border-radius:16px;padding:4px 14px 14px;display:grid;gap:8px}.people-links summary{cursor:pointer;font-weight:600;padding:10px 0 2px;list-style:none}.people-links summary::-webkit-details-marker{display:none}.people-links textarea{width:100%;resize:vertical;min-height:88px;font:inherit;padding:10px 12px;border-radius:12px;border:1px solid var(--line-strong);background:var(--surface);color:var(--fg)}.people-links textarea:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.people-note{font-size:12px;margin:0}.people-list{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto;display:grid;gap:2px}.people-list li{display:flex;align-items:center;gap:12px;padding:8px 4px;border-bottom:1px solid var(--line);animation:page-in .3s var(--spring) both;animation-delay:calc(min(var(--i),10)*30ms)}.people-list li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-evergreen{--bg: #0f2a1f;--fg: #f6f1e4;--soft: #a9c2b2;--accent: #d9b25f;--accent-ink: #0f2a1f;--card: rgba(255, 255, 255, .08);--gold: #e8c46c;--tree: #1b5a3c}.theme-snowfall{--bg: #eef4fb;--fg: #1d2a3a;--soft: #5f7187;--accent: #c23b3b;--accent-ink: #fff;--card: rgba(255, 255, 255, .85);--gold: #a8741c;--tree: #2f6b4f}.theme-champagne{--bg: #121014;--fg: #f7efe0;--soft: #b9ab92;--accent: #e7c873;--accent-ink: #121014;--card: rgba(255, 255, 255, .07);--gold: #f1d78f}.theme-aurora{--bg: #0c1a2b;--fg: #eafaf6;--soft: #8fb3c4;--accent: #5ee0c1;--accent-ink: #0c1a2b;--card: rgba(255, 255, 255, .07);--gold: #b7a4ff}.festive{--tree: #1e4a39;background:radial-gradient(120% 70% at 50% 0%,color-mix(in srgb,var(--accent) 16%,var(--bg)) 0%,var(--bg) 60%)}.festive .display{font-family:var(--serif)}.festive-title{font-size:34px}.festive-from{font:italic 400 15px var(--serif);color:var(--soft)}.hook{position:relative;min-height:100%;overflow:hidden;justify-content:flex-start;touch-action:none;user-select:none;-webkit-user-select:none}.hook-hint{position:absolute;left:0;right:0;bottom:64px;margin:0;font-size:13px;letter-spacing:.04em;color:var(--soft);animation:hint-pulse 2.2s ease-in-out infinite}.hook-skip{position:absolute;top:14px;right:16px;z-index:6;background:none;border:0;color:var(--soft);font-size:12px;padding:8px;text-decoration:underline;text-underline-offset:3px;animation:rise .5s var(--out) both}.hook-payoff{position:absolute;left:20px;right:20px;bottom:56px;z-index:6;display:grid;gap:14px;justify-items:center;animation:rise .9s var(--out) .45s both}.hook-payoff .display{font-size:32px;text-shadow:0 0 24px color-mix(in srgb,var(--gold) 45%,transparent)}@keyframes hint-pulse{50%{opacity:.45;transform:translateY(-2px)}}.xmas-scene{position:absolute;left:50%;top:4%;width:min(84%,320px);aspect-ratio:1;translate:-50% 0}.xmas-target{position:absolute;left:50%;top:21%;width:12px;height:12px;translate:-50% -50%;border-radius:50%;box-shadow:0 0 0 calc(18px - var(--p) * 18px) color-mix(in srgb,var(--gold) 22%,transparent)}.xmas-tree{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 18px 28px rgba(0,0,0,.35))}.xmas-tree path{fill:var(--tree);transition:filter .6s}.hook-done .xmas-tree path{filter:brightness(1.15)}.xmas-tree .trunk{fill:#5b3a24}.bulb{fill:#ffd56b;opacity:calc(.12 + var(--p) * .45);transition:opacity .2s}.bulb.b1{fill:#ff7070}.bulb.b2{fill:#9fe3ff}.hook-done .bulb{animation:bulb-on .4s var(--out) calc(var(--i) * 55ms) both,twinkle 1.8s ease-in-out calc(1s + var(--i) * .13s) infinite;filter:drop-shadow(0 0 3px currentColor)}@keyframes bulb-on{0%{opacity:.15;r:1}to{opacity:1;r:2.6}}@keyframes twinkle{50%{opacity:.55}}.xmas-star{position:absolute;left:50%;bottom:128px;width:72px;height:72px;margin-left:-36px;border:0;padding:0;background:none;cursor:grab;z-index:4;touch-action:none;transition:transform .45s var(--spring)}.xmas-star.dragging{cursor:grabbing;transition:none}.xmas-star svg{width:100%;height:100%;fill:var(--gold);filter:drop-shadow(0 0 14px color-mix(in srgb,var(--gold) 70%,transparent));animation:star-bob 1.6s ease-in-out infinite}.xmas-star.dragging svg,.xmas-star.placed svg{animation:none}.xmas-star.placed svg{animation:star-glow 2.4s ease-in-out infinite}.xmas-star:focus-visible{outline:2px solid var(--gold);outline-offset:6px;border-radius:50%}@keyframes star-bob{50%{transform:translateY(-8px) rotate(8deg)}}@keyframes star-glow{50%{filter:drop-shadow(0 0 26px var(--gold));transform:scale(1.06)}}.ny-hook{justify-content:center}.cracker{position:absolute;left:50%;top:40%;width:min(72%,260px);height:60px;translate:-50% -50%;display:flex}.cracker-half{position:relative;flex:1;height:100%;background:repeating-linear-gradient(115deg,var(--accent) 0 14px,color-mix(in srgb,var(--accent) 70%,#fff) 14px 22px);box-shadow:inset 0 -10px 18px #00000040,0 18px 30px -16px #0009;transition:transform .6s var(--spring),opacity .6s}.cracker-half.left{clip-path:polygon(0 0,14% 22%,14% 78%,0 100%,100% 100%,100% 0);border-radius:0 6px 6px 0;transform:translate(calc(var(--p) * -10px)) rotate(calc(var(--p) * -3deg))}.cracker-half.right{clip-path:polygon(0 0,100% 0,86% 22%,86% 78%,100% 100%,0 100%);border-radius:6px 0 0 6px}.cracker-half i{position:absolute;inset:40% 0;background:var(--gold);opacity:.9}.cracker:after{content:"";position:absolute;left:50%;top:4px;bottom:4px;width:2px;background:color-mix(in srgb,var(--fg) 40%,transparent);opacity:calc(1 - var(--p))}.cracker-handle{position:absolute;right:-30px;top:50%;width:56px;height:56px;margin-top:-28px;padding:0;display:grid;place-items:center;border-radius:50%;border:2px solid var(--gold);background:color-mix(in srgb,var(--gold) 18%,var(--bg));color:var(--gold);font-size:20px;cursor:grab;touch-action:none;animation:tug 1.4s ease-in-out infinite}.cracker-handle svg{width:34px;height:34px;fill:var(--gold);filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}.cracker-handle-label{position:absolute;top:calc(100% + 6px);left:50%;translate:-50% 0;font:700 10px/1 var(--sans, inherit);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);white-space:nowrap}.cracker-handle:active{cursor:grabbing;animation:none}.cracker-handle:focus-visible{outline:2px solid var(--gold);outline-offset:4px}@keyframes tug{50%{translate:8px 0}}.cracker.popped .left{transform:translate(-46vw,-30px) rotate(-38deg);opacity:0}.cracker.popped .right{transform:translate(46vw,30px) rotate(42deg);opacity:0}.cracker.popped:before{content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px;border-radius:50%;background:radial-gradient(#fff,var(--gold) 40%,transparent 70%);animation:flash .6s var(--out) both}@keyframes flash{0%{transform:scale(.2);opacity:1}to{transform:scale(18);opacity:0}}.year-flip{display:flex;gap:6px;perspective:600px}.year-flip span{display:grid;place-items:center;width:52px;height:72px;border-radius:10px;background:var(--card);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);font:400 46px/1 var(--serif);color:var(--gold);transform-origin:50% 0;animation:flip-in .7s var(--spring) calc(.5s + var(--i) * .11s) both}@keyframes flip-in{0%{transform:rotateX(-95deg);opacity:0}}.ny-hook .hook-payoff{bottom:auto;top:20%}.ny-hook .hook-payoff .lede{margin:0;color:var(--soft);max-width:30ch}.ny-tease{position:absolute;left:0;right:0;top:calc(40% - 78px);margin:0;font:italic 400 18px var(--serif);color:var(--gold);opacity:.85;animation:rise .8s var(--out) .3s both}.cracker{filter:drop-shadow(0 0 22px color-mix(in srgb,var(--gold) 30%,transparent))}.drag-guide{position:absolute;left:50%;bottom:200px;width:2px;margin-left:-1px;background:repeating-linear-gradient(to top,var(--gold) 0 6px,transparent 6px 14px);background-size:2px 14px;animation:guide-flow .9s linear infinite;-webkit-mask-image:linear-gradient(to top,#000,transparent);mask-image:linear-gradient(to top,#000,transparent);transition:opacity .2s}@keyframes guide-flow{to{background-position:0 -14px}}.festive-surprise>:not(canvas),.festive-finale>:not(canvas){position:relative;z-index:1}.festive-surprise .confetti.snow,.festive-finale .confetti.snow{z-index:0;opacity:.7}.festive-surprise{position:relative}.baubles{display:flex;justify-content:center;gap:14px;min-height:230px;align-items:flex-start}.bauble-wrap{flex:1;max-width:104px;display:grid;justify-items:center;animation:swing 3s ease-in-out calc(var(--i) * -.7s) infinite;transform-origin:50% 0}.bauble-wrap:has(.wish-card){animation:none}.bauble-string{width:1px;height:calc(30px + var(--i) * 26px);background:color-mix(in srgb,var(--fg) 35%,transparent)}.bauble{width:70px;height:70px;border-radius:50%;border:0;position:relative;background:radial-gradient(circle at 32% 30%,#fff8 0 8%,transparent 9%),radial-gradient(circle at 50% 50%,var(--c1),var(--c2));box-shadow:0 14px 22px -10px #00000080;transition:transform .25s var(--spring)}.bauble:before{content:"";position:absolute;left:50%;top:-8px;width:16px;height:10px;margin-left:-8px;border-radius:3px;background:var(--gold)}.bauble:hover,.bauble:focus-visible{transform:scale(1.08)}.bauble.c0{--c1: #ff7a7a;--c2: #a8232e}.bauble.c1{--c1: #ffe08a;--c2: #b8862b}.bauble.c2{--c1: #8fd7ff;--c2: #2b6aa8}.baubles .wish-card{max-width:104px;font-size:13px}@keyframes swing{50%{transform:rotate(4deg)}}.jar{position:relative;margin:0 auto;width:min(74%,250px);min-height:220px;padding:26px 16px 18px;border-radius:24px 24px 40px 40px;border:2px solid color-mix(in srgb,var(--fg) 22%,transparent);background:linear-gradient(160deg,color-mix(in srgb,#fff 10%,transparent),transparent 60%);display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-content:center}.jar:before{content:"";position:absolute;left:18%;right:18%;top:-12px;height:12px;border-radius:6px 6px 0 0;background:var(--gold);opacity:.8}.jar-note{width:62px;height:46px;border:0;border-radius:6px;background:var(--card);color:var(--gold);box-shadow:0 8px 16px -8px #0009;transform:rotate(calc((var(--i) - 1) * 14deg));animation:note-bob 2.4s ease-in-out calc(var(--i) * -.6s) infinite;transition:transform .25s var(--spring)}.jar-note:hover,.jar-note:focus-visible{transform:rotate(0) scale(1.1)}@keyframes note-bob{50%{translate:0 -5px}}.jar .wish-card{flex-basis:100%}.festive-photo{margin:0 auto;width:min(78%,260px);padding:10px 10px 14px;background:#fff;color:#2a2622;border-radius:6px;transform:rotate(-2deg);box-shadow:0 22px 40px -22px #0009}.festive-photo img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:3px;display:block}.festive-photo figcaption{font:italic 400 14px var(--serif);margin-top:8px}.festive-finale{position:relative}.festive-finale .signoff{font-size:22px}.made-with{margin-top:26px;align-self:center;font-size:12px;color:var(--soft);text-decoration:none;padding:8px 14px;border:1px solid color-mix(in srgb,var(--fg) 15%,transparent);border-radius:999px;transition:color .2s,border-color .2s}.made-with:hover{color:var(--fg);border-color:var(--accent)}@media(prefers-reduced-motion:reduce){.hook-hint,.xmas-star svg,.bauble-wrap,.jar-note,.cracker-handle,.hook-done .bulb{animation:none!important}.hook-done .bulb{opacity:1}}.theme-diya{--bg: #200b0e;--fg: #fbeedd;--soft: #d0a98a;--accent: #f2b43c;--accent-ink: #200b0e;--card: rgba(255, 255, 255, .07);--gold: #ffcf5c}.theme-rangoli{--bg: #22092a;--fg: #fdeaf4;--soft: #d3a3c6;--accent: #ff5fa2;--accent-ink: #22092a;--card: rgba(255, 255, 255, .07);--gold: #ffc94a}.diwali-glow{position:absolute;inset:0;background:radial-gradient(70% 45% at 50% 78%,color-mix(in srgb,var(--gold) calc(var(--p) * 38%),transparent),transparent 70%);transition:background .6s;pointer-events:none}.diyas{position:absolute;left:0;right:0;bottom:120px;display:flex;justify-content:center;gap:clamp(6px,3vw,16px);padding:0 12px}.diya{position:relative;width:clamp(52px,15vw,66px);height:72px;border:0;padding:0;background:none;display:grid;align-items:end;transform:translateY(calc(var(--i) * (var(--i) - 4) * -4px));transition:transform .3s var(--spring)}.diya:not(.lit):hover,.diya:not(.lit):focus-visible{transform:translateY(calc(var(--i) * (var(--i) - 4) * -4px - 4px))}.diya:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:12px}.diya svg{width:100%;overflow:visible}.diya svg path{fill:#9a4a22}.diya svg .rim{fill:none;stroke:#e0a060;stroke-width:1.5}.diya .flame{position:absolute;left:50%;bottom:26px;width:14px;height:24px;margin-left:-7px;border-radius:50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff7d6,#ffcf5c 40%,#ff7a1a 75%,transparent 76%);transform:scale(0);transform-origin:50% 100%;filter:drop-shadow(0 0 10px #ffb43c)}.diya:not(.lit) .flame{animation:none}.diya:not(.lit):after{content:"";position:absolute;left:50%;bottom:28px;width:2px;height:8px;margin-left:-1px;background:#3a2015;border-radius:2px}.diya.lit .flame{animation:ignite .45s var(--spring) both,flicker .18s ease-in-out .45s infinite alternate}.diya.lit svg path:first-child{fill:#c0632a}@keyframes ignite{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes flicker{to{transform:scale(.92,1.06) rotate(2deg)}}.rangoli{position:absolute;left:50%;top:8%;width:min(70%,280px);translate:-50% 0;overflow:visible}.rangoli *{fill:none;stroke-width:1.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.2s var(--out) both}.rangoli .r0{stroke:var(--gold);animation-delay:.1s}.rangoli .r1{stroke:#ff5fa2;fill:color-mix(in srgb,#ff5fa2 18%,transparent);animation-delay:.3s}.rangoli .r2{stroke:#ffcf5c;animation-delay:.6s}.rangoli .r3{stroke:#4fd1c5;animation-delay:.9s}.rangoli .r4{stroke:color-mix(in srgb,var(--fg) 45%,transparent);stroke-dasharray:.01 .02;stroke-dashoffset:0;animation:spin 40s linear infinite;transform-box:fill-box;transform-origin:center}.rangoli.ghost{opacity:calc(.1 + var(--p) * .35);transition:opacity .5s}.rangoli.ghost *{animation:none;stroke-dashoffset:0}.rangoli.ghost .dot{opacity:1}.rangoli .dot{fill:var(--gold);stroke:none;stroke-dasharray:none;opacity:0;animation:dot-in .3s var(--out) calc(1.2s + var(--i) * 30ms) both}@keyframes draw{to{stroke-dashoffset:0}}@keyframes dot-in{to{opacity:1}}@keyframes spin{to{rotate:360deg}}.diwali-hook .hook-payoff{bottom:210px}.diwali-hook.hook-done .diyas{bottom:96px;transition:bottom .8s var(--out)}.diwali-hook.hook-done .hook-payoff .page-button{position:absolute;top:calc(100% + 132px);left:50%;translate:-50% 0;margin:0;white-space:nowrap}.mithai{position:relative;margin:8px auto 0;width:min(80%,280px);perspective:700px}.mithai-tray{min-height:130px;padding:18px 14px;border-radius:14px;background:linear-gradient(#7a1f2b,#5a1520);border:3px solid var(--gold);box-shadow:inset 0 6px 14px #0006;display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap}.mithai-lid{position:absolute;inset:-6px -6px auto;height:calc(100% + 12px);z-index:2;border-radius:16px;border:3px solid var(--gold);background:repeating-linear-gradient(45deg,#c2182f 0 12px,#a5132a 12px 24px);color:var(--gold);font:italic 400 18px var(--serif);transform-origin:50% 0;transition:transform .8s var(--spring),opacity .5s .3s;box-shadow:0 18px 30px -14px #0009}.mithai-lid span{background:#200b0e;padding:6px 14px;border-radius:999px}.mithai.open .mithai-lid{transform:rotateX(-110deg) translateY(-10px);opacity:0;pointer-events:none}.sweet{width:54px;height:54px;border:0;padding:0;transition:transform .25s var(--spring);animation:rise .5s var(--out) calc(.4s + var(--i) * .1s) both}.sweet:hover:not(:disabled),.sweet:focus-visible{transform:scale(1.12) rotate(-6deg)}.sweet.laddoo{border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffd98a,#f0a02a 60%,#c27612);box-shadow:inset -4px -6px 10px #0003}.sweet.barfi{width:48px;height:48px;border-radius:6px;transform:rotate(45deg);background:linear-gradient(135deg,#f7f1e4,#e8dcc2);box-shadow:inset 0 0 0 3px #d9d2c6}.sweet.barfi:hover:not(:disabled){transform:rotate(45deg) scale(1.12)}.sweet.jalebi{border-radius:50%;background:radial-gradient(circle,transparent 0 18%,#ff9a1f 19% 30%,transparent 31% 44%,#ff9a1f 45% 58%,transparent 59% 70%,#ff9a1f 71% 84%,transparent 85%);filter:drop-shadow(0 0 4px #ffb84d88)}.mithai .wish-card{flex:1 1 100%}@media(prefers-reduced-motion:reduce){.diya.lit .flame{animation:none;transform:scale(1)}.rangoli *{animation:none;stroke-dashoffset:0}.rangoli .dot{opacity:1}}.seal-hook{justify-content:center;gap:28px}.seal-hook .kicker{animation:rise .7s var(--out) both}.seal-envelope{position:relative;align-self:center;width:min(72%,260px);aspect-ratio:1.45;border-radius:10px;background:linear-gradient(160deg,color-mix(in srgb,var(--card) 100%,#fff 0%),color-mix(in srgb,var(--accent) 10%,var(--bg)));box-shadow:0 24px 40px -24px #00000073,inset 0 0 0 1px color-mix(in srgb,var(--fg) 10%,transparent);animation:rise .8s var(--out) .1s both}.seal-envelope-flap{position:absolute;inset:0 0 38%;clip-path:polygon(0 0,100% 0,50% 100%);background:color-mix(in srgb,var(--accent) 16%,var(--bg));border-radius:10px 10px 0 0}.seal-button{position:absolute;left:50%;top:62%;margin:-52px 0 0 -52px;width:104px;height:104px;border:0;padding:0;background:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transform:scale(calc(1 - var(--p) * .06)) rotate(calc(var(--p) * -6deg))}.seal-button svg{position:absolute;inset:0;transform:rotate(-90deg)}.seal-button circle{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-dasharray:289;stroke-dashoffset:calc(289 - var(--p) * 289);opacity:.85}.seal-wax{position:absolute;inset:14px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--accent) 70%,#fff),var(--accent) 55%,color-mix(in srgb,var(--accent) 70%,#000));color:var(--accent-ink);font-size:30px;box-shadow:0 10px 22px -8px var(--accent),inset 0 -4px 8px #00000040;animation:seal-breathe 2.4s ease-in-out infinite}.seal-button:active .seal-wax{animation:seal-shake .12s linear infinite}.seal-button:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:50%}@keyframes seal-breathe{50%{transform:scale(1.05);box-shadow:0 14px 30px -8px var(--accent)}}@keyframes seal-shake{25%{translate:-1px 0}75%{translate:1px 0}}.page-cover.opened .cover-seal{animation:seal-crack .7s var(--spring) both}@keyframes seal-crack{0%{transform:scale(1.6) rotate(-12deg);filter:brightness(1.4)}}.bday-hero.candle-hook,.candle-hook{justify-content:center;gap:10px;background:radial-gradient(70% 42% at 50% 58%,rgba(255,178,62,.28),transparent 70%),#1f140e;color:#fff4e0}.candle-hook .kicker{color:#f3d9b8}.candle-wish{margin:0;font:italic 400 22px var(--serif);color:#ffe7c2;animation:rise .7s var(--out) .15s both}.opening-cake{transform:scale(1.35);margin:46px 0 40px}.opening-cake .candles{gap:18px}.candle-tap{border:0;padding:18px 10px 0;margin-top:-18px;background:none;display:grid;justify-items:center}.candle-tap:focus-visible{outline:2px solid #ffd27a;outline-offset:2px;border-radius:8px}.candle-tap.out .candle i{opacity:0;transform:translate(-50%) translateY(-6px) scale(.4)}.candle-tap.out .candle b{animation:smoke 1.8s ease-out forwards}.candle-hook .hook-hint,.candle-hook .hook-skip{color:#f3d9b8}@media(prefers-reduced-motion:reduce){.seal-wax,.seal-button:active .seal-wax{animation:none}}.yt-option{grid-column:1 / -1;flex-direction:column;align-items:stretch;gap:8px}.yt-choose{cursor:pointer}.yt-option input[type=radio]:disabled+.music-name{opacity:.8}.yt-input{display:flex;gap:8px}.yt-input input{flex:1;min-width:0;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--fg)}.yt-input input[aria-invalid=true]{border-color:var(--warn)}.yt-error{color:var(--warn)}.yt-preview{width:100%;aspect-ratio:16 / 9;border:0;border-radius:var(--r-sm);animation:rise .4s var(--out) both}.yt-song{position:absolute;z-index:16;top:14px;right:14px;width:min(62%,240px);aspect-ratio:16 / 9;border-radius:14px;overflow:hidden;box-shadow:0 18px 36px -14px #0009;border:1px solid color-mix(in srgb,var(--fg) 15%,transparent);background:#000;animation:yt-in .45s var(--spring) both;transform-origin:top right}.yt-song iframe{width:100%;height:100%;border:0;display:block}.yt-close{position:absolute;top:-1px;right:-1px;width:30px;height:30px;border:0;border-radius:0 0 0 12px;background:#000000b3;color:#fff;font-size:18px;line-height:1}.phone .yt-song{top:46px}.recipient .yt-song{top:max(14px,env(safe-area-inset-top))}@keyframes yt-in{0%{transform:scale(.4);opacity:0}}.my-gifts .section-head h2{font-size:clamp(24px,3vw,30px)}.landing-section.my-gifts+#gifts{padding-top:40px}.nyc-hook{justify-content:center}.nyc-clock{position:absolute;left:50%;top:38%;width:min(56vw,210px);aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--accent) 14%,var(--bg)),var(--bg) 70%);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 60%,transparent),0 0 calc(20px + var(--p) * 50px) color-mix(in srgb,var(--accent) calc(20% + var(--p) * 40%),transparent);transition:scale .6s var(--spring),opacity .6s}.nyc-ring{position:absolute;inset:-8px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--p) * 360deg),transparent 0);-webkit-mask:radial-gradient(circle,transparent 66%,#000 67%,#000 70%,transparent 71%);mask:radial-gradient(circle,transparent 66%,#000 67%,#000 70%,transparent 71%)}.nyc-clock i{position:absolute;left:50%;top:6%;width:2px;height:8%;margin-left:-1px;background:var(--gold);opacity:.6;transform-origin:50% 550%;rotate:calc(var(--i) * 30deg)}.nyc-hand{position:absolute;left:50%;bottom:50%;transform-origin:50% 100%;border-radius:2px;background:var(--fg)}.nyc-hand.hour{width:4px;height:26%;margin-left:-2px;rotate:calc(-1deg + var(--p) * 1deg)}.nyc-hand.minute{width:3px;height:36%;margin-left:-1.5px;rotate:calc(-6deg + var(--p) * 6deg)}.nyc-hand.second{width:1.5px;height:40%;margin-left:-.75px;background:var(--accent);rotate:calc(-18deg + var(--p) * 18deg)}.nyc-count{position:absolute;inset:0;display:grid;place-items:center;padding-top:34%;font:400 34px/1 var(--serif);color:var(--gold);animation:nyc-tick .5s var(--spring) both}.nyc-clock.struck{scale:.7;opacity:.25}.nyc-hold{position:absolute;left:50%;bottom:120px;translate:-50% 0;min-width:200px;padding:16px 24px;border:0;border-radius:999px;overflow:hidden;color:var(--accent-ink);font:700 15px/1 inherit;background:linear-gradient(90deg,var(--gold) calc(var(--p) * 100%),var(--accent) 0);box-shadow:0 14px 30px -12px var(--accent);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:pointer;animation:tug 1.6s ease-in-out infinite}.nyc-hold.holding{animation:none;scale:.97}.nyc-hold:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.nyc-hook .hook-payoff{bottom:auto;top:18%}@keyframes nyc-tick{0%{scale:1.6;opacity:0}to{scale:1;opacity:1}}.nyc-sky .nyc-wishes{display:grid;gap:10px;min-height:150px;align-content:start;margin:12px 0}.nyc-rockets{display:flex;justify-content:space-around;align-items:flex-end;height:110px}.nyc-rocket{width:54px;height:96px;padding:0;border:0;background:none;cursor:pointer;animation:tug 1.8s ease-in-out infinite;animation-delay:calc(var(--i) * .2s);transition:translate .55s cubic-bezier(.5,0,.9,.4),opacity .55s}.nyc-rocket svg{width:100%;height:100%;fill:var(--accent)}.nyc-rocket .fin{fill:var(--gold)}.nyc-rocket .window{fill:var(--bg)}.nyc-rocket.gone{translate:0 -70vh;opacity:0;animation:none}.nyc-rocket:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:12px}@media(prefers-reduced-motion:reduce){.nyc-hold,.nyc-rocket,.nyc-count{animation:none!important}.nyc-rocket{transition:opacity .2s}.nyc-rocket.gone{translate:none}}.share-paid{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 12px;padding:10px 14px;border-radius:12px;background:var(--brand-soft);color:var(--brand);font-weight:600;animation:page-in .45s var(--spring) both}.share-paid>span[aria-hidden]{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--brand);color:#fff;font-size:12px}.share-paid .muted{font-weight:400;font-size:12px;overflow-wrap:anywhere}.hero-sub{text-wrap:balance}:root{--muted: #6f665e;--warn: #8a5a22;--topbar-bg: rgba(247, 244, 239, .82);--btn-primary-hover: #000;--warn-soft: #fbf3ea;--warn-line: #f0dcc5;--glow-2: #fbf1df;--scrim: rgba(29, 25, 22, .5);--upload-veil: rgba(255, 255, 255, .72);--phone-ring: transparent;--live: #d64545}[data-theme=dark]{color-scheme:dark;--paper: #13110f;--surface: #1c1916;--surface-2: #221e1a;--ink: #f3ede6;--ink-2: #cfc6bc;--muted: #9d9389;--line: #2f2a25;--line-strong: #3d3731;--brand: #e48a9b;--brand-ink: #1a0f12;--brand-soft: #3a2228;--gold: #e0b46a;--ok: #6cc08f;--warn: #e3a35f;--danger: #f07a7a;--focus: 0 0 0 3px rgba(228, 138, 155, .35);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 10px 28px -14px rgba(0, 0, 0, .7);--shadow-lg: 0 40px 80px -30px rgba(0, 0, 0, .85), 0 12px 24px -12px rgba(0, 0, 0, .6);--topbar-bg: rgba(19, 17, 15, .78);--btn-primary-hover: #ffffff;--warn-soft: #2e2318;--warn-line: #4a3824;--glow-2: #261f15;--scrim: rgba(0, 0, 0, .62);--upload-veil: rgba(19, 17, 15, .72);--phone-ring: rgba(255, 255, 255, .08);--live: #ff6b6b}.topbar{background:var(--topbar-bg)}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover)}.share-warn{background:var(--warn-soft);border-color:var(--warn-line)}.timelock-summary.past{background:var(--warn-soft)}.photo-progress{background:var(--upload-veil)}.share-dialog::backdrop,.preview-dialog::backdrop{background:var(--scrim)}.live-pill i{background:var(--live)}.landing{background:radial-gradient(900px 500px at 85% -5%,var(--brand-soft),transparent 60%),radial-gradient(700px 400px at -10% 30%,var(--glow-2),transparent 60%),var(--paper)}.welcome{background:radial-gradient(1200px 600px at 80% -10%,var(--brand-soft),transparent 60%),var(--paper)}.phone,.mini-phone{box-shadow:0 0 0 1px var(--phone-ring),var(--shadow-lg)}[data-theme=dark] .section.skeleton,[data-theme=dark] .template-card.skeleton{opacity:.7}[data-theme=dark] code{background:var(--surface-2)}.theme-fading,.theme-fading *{transition:background-color .35s ease,border-color .35s ease,color .35s ease,fill .35s ease!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){animation:theme-reveal .6s cubic-bezier(.16,1,.3,1)}@keyframes theme-reveal{0%{clip-path:circle(0 at var(--reveal-x, 50%) var(--reveal-y, 0%))}to{clip-path:circle(var(--reveal-r, 150vmax) at var(--reveal-x, 50%) var(--reveal-y, 0%))}}.theme-toggle{position:relative;display:inline-grid;grid-auto-flow:column;grid-auto-columns:34px;padding:3px;border-radius:999px;background:var(--surface);border:1px solid var(--line);flex:none}.theme-toggle-thumb{position:absolute;top:3px;left:3px;width:34px;height:30px;border-radius:999px;background:var(--ink);transform:translate(calc(var(--index) * 34px));transition:transform .45s cubic-bezier(.34,1.56,.64,1)}.theme-toggle button{position:relative;z-index:1;height:30px;border:0;border-radius:999px;background:none;color:var(--muted);display:grid;place-items:center;transition:color .25s}.theme-toggle button[aria-checked=true]{color:var(--paper)}.theme-toggle button:hover:not([aria-checked=true]){color:var(--ink)}.theme-toggle svg{width:16px;height:16px;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.theme-toggle button[aria-checked=true] svg{transform:rotate(-20deg) scale(1.08)}.theme-toggle button[data-id=dark][aria-checked=true] svg{transform:scale(1.08)}@media(max-width:640px){.theme-toggle{grid-auto-columns:30px}.theme-toggle-thumb{width:30px;transform:translate(calc(var(--index) * 30px))}}@media(prefers-reduced-motion:reduce){::view-transition-new(root){animation:none}.theme-toggle-thumb,.theme-toggle svg{transition:none}}.topbar-spacer{margin-left:auto}.landing-nav+.theme-toggle{margin-left:8px}@media(max-width:960px){.landing .topbar .theme-toggle{margin-left:auto}}@media(max-width:640px){.topbar-editor{gap:8px}.topbar-editor .btn-sm{padding:0 12px}}@media(max-width:640px){.topbar-editor .wordmark-text{display:none}.topbar-editor .wordmark span{margin-left:0;font-size:24px}.topbar-editor .view-switch button{padding:6px 10px}.topbar-editor .view-switch{margin-left:0}.topbar-editor .save-status{margin-left:auto}}
