@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/acc2f8c5bbec793d-s.1t_e7nl3ovll-.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/113ff28cf9b2d953-s.421v1u00lnp2a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/67ff7386ca3ee52c-s.p.3slq8sz4zhb1g.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c0a97eaefa9a972-s.09mqwf_zjnrdf.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/180a42cfd56a8f5d-s.0s5mkn35-hrc5.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/e368dbf2d3b24ea3-s.p.20jfceqj9zyw9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}._6olhbW_className{font-family:Fraunces,Fraunces Fallback}._6olhbW_variable{--font-fraunces:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:Gochi Hand;font-style:normal;font-weight:400;font-display:swap;src:url(../media/135621743ed75db1-s.p.3rkrels9g7w9t.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Gochi Hand Fallback;src:local(Arial);ascent-override:82.14%;descent-override:43.44%;line-gap-override:0.0%;size-adjust:93.87%}.s_WR6a_className{font-family:Gochi Hand,Gochi Hand Fallback;font-style:normal;font-weight:400}.s_WR6a_variable{--font-gochi:"Gochi Hand", "Gochi Hand Fallback"}
@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/e27b85d01cb4b1af-s.1zkvd_innyig_.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/10e5db483fb7b6ef-s.2c8-7nzo1jf9r.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/01a1b57b2e0cef27-s.1vcas2uk12q5a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/648e19a466ec92f1-s.2demiz2t05dx4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(../media/29e2a75af8e45044-s.p.2kjei9psvcorz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Fallback;src:local(Arial);ascent-override:99.71%;descent-override:34.82%;line-gap-override:0.0%;size-adjust:101.39%}.ZdPV6W_className{font-family:Nunito,Nunito Fallback;font-style:normal}.ZdPV6W_variable{--font-nunito:"Nunito", "Nunito Fallback"}
@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cb20b375a5739b57-s.2njitm-prmz2_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0d3323de857e1fce-s.p.38hmww4cj4vme.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b7a08e852a63f857-s.12_ml6bnugnre.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/86fd170c8543a779-s.p.2yee423r7ahpo.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.TeWtiG_className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.TeWtiG_variable{--font-dm-mono:"DM Mono", "DM Mono Fallback"}
:root{--paper:#fffaf1;--paper-2:#fff3e3;--ink:#26213a;--ink-soft:#645d74;--accent:#3355d6;--accent-deep:#2440a6;--accent-mid:#7d95ea;--accent-soft:#c9d5fb;--accent-wash:#eef2ff;--gold:#f6c343;--gold-deep:#d99a14;--butter:#ffe28a;--mint:#bfe8d2;--env:#c4d1fa;--env-light:#d9e2fc;--env-dark:#aabcf3;--t-butter:#fff0c2;--t-apricot:#ffe8da;--t-mint:#d9f3e5;--t-sky:#ddebff;--t-lilac:#ece3ff;--t-peach:#ffe3d3;--font-display:var(--font-fraunces), Georgia, serif;--font-hand:var(--font-gochi), "Bradley Hand", cursive;--font-body:var(--font-nunito), "Avenir Next", system-ui, sans-serif;--font-mono:var(--font-dm-mono), ui-monospace, "SF Mono", monospace;--spring:cubic-bezier(.34, 1.56, .64, 1);--line:#26213a1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;overflow-x:clip}body{min-height:100dvh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-color:#f8f5ee;background-image:radial-gradient(70% 55% at 50% 42%,#fff8efeb 0,#fff8ef00 70%),repeating-linear-gradient(0deg,#6e8ceb1a 0 28px,#0000 28px 56px),repeating-linear-gradient(90deg,#6e8ceb1a 0 28px,#0000 28px 56px);background-attachment:fixed;margin:0;font-size:16px;line-height:1.5;overflow-x:clip}body:after{content:"";z-index:60;pointer-events:none;opacity:.28;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 type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .15 0 0 0 0 .13 0 0 0 0 .23 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}button{font:inherit;color:inherit}::selection{background:var(--accent-soft)}:focus-visible{outline:3px dashed var(--accent-mid);outline-offset:4px;border-radius:12px}.hand{font-family:var(--font-hand)}.mono{font-family:var(--font-mono)}#confetti{z-index:50;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}main{z-index:2;min-height:100dvh;padding:max(28px, env(safe-area-inset-top)) 16px max(40px, env(safe-area-inset-bottom));place-items:center;display:grid;position:relative}.screen{text-align:center;flex-direction:column;align-items:center;width:100%;display:flex}.screen.is-entering .reveal{animation:rise .75s var(--spring) both;animation-delay:calc(var(--i,0) * 95ms + 60ms)}.screen.is-leaving{animation:.38s ease-in forwards leave}#screen-envelope.is-leaving{animation:.55s ease-in forwards env-leave}@keyframes rise{0%{opacity:0;transform:translateY(26px)scale(.96)}to{opacity:1;transform:none}}@keyframes leave{to{opacity:0;filter:blur(4px);transform:translateY(-18px)scale(.97)}}@keyframes env-leave{to{opacity:0;filter:blur(6px);transform:scale(1.12)}}.kicker{font-family:var(--font-hand);color:var(--accent);margin:0;font-size:1.45rem;line-height:1.2;rotate:-2deg}.title{font-family:var(--font-display);letter-spacing:-.025em;font-variation-settings:"SOFT" 100, "WONK" 1;text-wrap:balance;margin:.12em 0 .28em;font-size:clamp(2.35rem,8.4vw,3.9rem);font-weight:800;line-height:.98}.title--md{font-size:clamp(2rem,6.6vw,2.9rem)}.title em{color:var(--accent);white-space:nowrap;font-style:italic;display:inline-block;position:relative}.title em:after{content:"";clip-path:inset(0 100% 0 0);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 16' preserveAspectRatio='none'%3E%3Cpath d='M3 10 Q 13 2 23 9 T 43 9 T 63 9 T 83 9 T 103 9 T 117 8' fill='none' stroke='%23f6c343' stroke-width='4.5' stroke-linecap='round'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;height:.34em;animation:.8s ease-out .7s forwards scribble;position:absolute;bottom:-.16em;left:-6%;right:-4%}@keyframes scribble{to{clip-path:inset(0)}}.sub{max-width:34ch;color:var(--ink-soft);text-wrap:balance;margin:0 auto;font-size:1.06rem;font-weight:600}.paper{background-color:var(--paper);background-image:radial-gradient(#3355d613 1.1px,#0000 1.4px);background-size:18px 18px;border-radius:30px;width:min(100%,580px);padding:clamp(26px,6vw,46px) clamp(20px,5.4vw,44px);position:relative;box-shadow:inset 0 2px #ffffffe6,0 1px #26213a0a,0 34px 60px -32px #26214680,0 10px 20px -12px #26214633}.paper--plan{text-align:left;width:min(100%,680px)}.paper--yay{width:min(100%,520px)}.tape{opacity:.9;clip-path:polygon(0 0,100% 0,97% 25%,100% 50%,97% 75%,100% 100%,0 100%,3% 75%,0 50%,3% 25%);z-index:3;background:repeating-linear-gradient(45deg,#9fb4f5 0 7px,#c9d5fb 7px 14px);width:112px;height:30px;position:absolute;top:-14px;box-shadow:0 1px 2px #0000000d}.tape--l{left:9%;rotate:-7deg}.tape--r{right:9%;rotate:6deg}.tape--butter{background:radial-gradient(circle,#ffffffe6 2.2px,#0000 2.8px) 0 0/12px 12px,#ffd86b}.tape--mint{background:repeating-linear-gradient(90deg,#a6e3c4 0 6px,#cdf1de 6px 12px)}.sticker{z-index:4;rotate:var(--r,0deg);pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(2.5px 0 #fff)drop-shadow(-2.5px 0 #fff)drop-shadow(0 2.5px #fff)drop-shadow(0 -2.5px #fff)drop-shadow(0 6px 6px #26214638);font-size:2.3rem;line-height:1;animation:4s ease-in-out infinite bob;position:absolute}.sticker--sm{font-size:1.6rem;animation-delay:-1.5s}.sticker:nth-of-type(odd){animation-delay:-2.2s}@keyframes bob{50%{translate:0 -6px}}.btn{--btn-bg:var(--accent);--btn-edge:var(--accent-deep);color:var(--paper);background:var(--btn-bg);font-family:var(--font-display);font-variation-settings:"SOFT" 100;white-space:nowrap;cursor:pointer;box-shadow:0 5px 0 var(--btn-edge), 0 16px 24px -12px #3355d6b3;transition:translate .18s var(--spring), scale .4s var(--spring), box-shadow .18s, opacity .2s, filter .2s;-webkit-tap-highlight-color:transparent;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.4em;padding:.82em 1.55em;font-size:1.15rem;font-weight:700;line-height:1.1;text-decoration:none;display:inline-flex;position:relative}.btn:hover{box-shadow:0 7px 0 var(--btn-edge), 0 20px 26px -12px #3355d6bf;translate:0 -2px}.btn:active{box-shadow:0 1px 0 var(--btn-edge), 0 8px 14px -10px #3355d699;translate:0 4px}.btn:disabled{opacity:.42;filter:saturate(.5);cursor:not-allowed;box-shadow:0 5px 0 var(--btn-edge);translate:none}.btn--big{padding:.9em 1.7em;font-size:1.25rem}.icon-btn{border:2px solid var(--line);cursor:pointer;width:42px;height:42px;transition:scale .3s var(--spring), background .2s, opacity .2s;background:#fff;border-radius:50%;place-items:center;padding:0;font-size:1.2rem;font-weight:800;line-height:1;display:grid}.icon-btn:hover:not(:disabled){background:var(--accent-wash);scale:1.08}.icon-btn:disabled{opacity:.3;cursor:default}.icon-btn--sm{width:36px;height:36px;font-size:1.3rem}.icon-btn.is-hidden{visibility:hidden}.link-btn{color:var(--ink-soft);font-family:var(--font-hand);text-underline-offset:5px;cursor:pointer;background:0 0;border:0;padding:.4em .6em;font-size:1.25rem;-webkit-text-decoration:underline wavy #f6c343f2;text-decoration:underline wavy #f6c343f2}.link-btn:hover{color:var(--accent)}#screen-envelope .kicker{font-size:clamp(1.45rem,5vw,1.85rem)}.envelope{aspect-ratio:3/2;perspective:1400px;-webkit-tap-highlight-color:transparent;width:min(84vw,410px);margin:clamp(80px,15vh,130px) 0 34px;position:relative}.screen.is-entering .envelope.reveal{animation-name:rise,float;animation-duration:.75s,4s;animation-timing-function:var(--spring), ease-in-out;animation-iteration-count:1,infinite;animation-delay:.15s,1s}.envelope:focus-visible{outline-offset:10px;border-radius:16px}@keyframes float{50%{translate:0 -10px;rotate:-1deg}}.env-back{z-index:0;background:var(--env-dark);border-radius:14px;position:absolute;inset:0;box-shadow:0 36px 50px -28px #26214699}.letter{z-index:2;background:var(--paper);text-align:left;height:90%;transition:translate .95s var(--spring) .42s;border-radius:8px;flex-direction:column;gap:9%;padding:9% 9% 0;display:flex;position:absolute;top:5%;left:6%;right:6%;box-shadow:0 -2px 10px #2621461f}.letter-hi{color:var(--accent);margin:0;font-size:clamp(1.1rem,4.4vw,1.5rem)}.letter-line{background:#3355d62e;border-radius:3px;height:3px;display:block}.letter-line--short{width:55%}.envelope.is-open .letter{translate:0 -64%}.env-pocket{z-index:3;pointer-events:none;border-radius:14px;position:absolute;inset:0;overflow:hidden}.env-side{background:var(--env);position:absolute;inset:0}.env-side--l{clip-path:polygon(0 0,52% 55%,0 100%)}.env-side--r{clip-path:polygon(100% 0,48% 55%,100% 100%)}.env-bottom{filter:drop-shadow(0 -3px 4px #283c9629);position:absolute;inset:0}.env-bottom i{background:linear-gradient(to bottom, #cfdafb, var(--env-light) 60%);clip-path:polygon(0 100%,0 98%,50% 43%,100% 98%,100% 100%);position:absolute;inset:0}.env-to{color:var(--ink);white-space:nowrap;font-size:clamp(1.15rem,4.6vw,1.55rem);position:absolute;bottom:9%;left:7%;rotate:-5deg}.env-stamp{aspect-ratio:5/6;background:#fff;align-content:center;place-items:center;gap:2px;width:clamp(44px,12.5vw,56px);padding:6px;display:grid;position:absolute;bottom:10%;right:6%;rotate:5deg;-webkit-mask:radial-gradient(3.4px,#0000 96%,#000) -4px -4px/9px 9px round,linear-gradient(#000 0 0) 50%/calc(100% - 9px) calc(100% - 9px) no-repeat;mask:radial-gradient(3.4px,#0000 96%,#000) -4px -4px/9px 9px round,linear-gradient(#000 0 0) 50%/calc(100% - 9px) calc(100% - 9px) no-repeat}.env-stamp svg{width:62%;fill:var(--gold);stroke:var(--gold-deep);stroke-width:2.2px;stroke-linecap:round}.env-flap{z-index:4;transform-origin:50% 0;filter:drop-shadow(0 4px 4px #283c9633);pointer-events:none;height:58%;transition:transform .62s cubic-bezier(.5,0,.3,1),z-index 0s .3s;position:absolute;top:0;left:0;right:0}.env-flap i{background:linear-gradient(to bottom, var(--env-dark), #98ade9);clip-path:polygon(0 0,100% 0,50% 100%);border-radius:14px 14px 0 0;position:absolute;inset:0}.envelope.is-open .env-flap{z-index:1;transform:rotateX(180deg)}.seal{z-index:5;filter:drop-shadow(0 6px 6px #784b0059)drop-shadow(0 1px 1px #784b0073);width:clamp(64px,20vw,84px);height:clamp(64px,20vw,84px);transition:scale .35s var(--spring), opacity .3s;background:0 0;border:0;border-radius:50%;padding:0;animation:2.2s ease-in-out infinite seal-pulse;position:absolute;top:58%;left:50%;translate:-50% -50%}.seal svg{width:100%;height:100%;display:block;overflow:visible}.seal:before{content:"";z-index:-1;background:radial-gradient(circle,#f6c3438c 0,#f6c34300 70%);border-radius:50%;animation:2.2s ease-in-out infinite seal-glow;position:absolute;inset:-16%}.seal-letter{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 0, "WONK" 0;font-size:42px;font-weight:700}.seal-shine{animation:4.2s ease-in-out infinite seal-shine}.seal:hover{scale:1.08}.envelope.is-open .seal{opacity:0;pointer-events:none;animation:none;scale:.3}@keyframes seal-pulse{50%{scale:1.06}}@keyframes seal-glow{50%{opacity:.35;scale:1.15}}@keyframes seal-shine{0%,55%{transform:translate(0)}85%,to{transform:translate(170px)}}.hint{color:var(--ink-soft);margin:0;font-size:1.3rem;transition:opacity .3s}.hint-arrow{animation:1.2s ease-in-out infinite nudge;display:inline-block}@keyframes nudge{50%{translate:0 -5px}}.envelope.is-open~.hint{opacity:0}.disco{--ball:clamp(104px, 28vw, 124px);width:var(--ball);height:var(--ball);transform-origin:50% -260px;margin:0 auto 10px;animation:5s ease-in-out infinite disco-swing;position:relative}.disco--peek{z-index:5;margin:0;position:absolute;top:-80px;left:50%;translate:-50%}.paper--ask,.paper--yay{margin-top:96px;padding-top:88px}.disco-string{background:linear-gradient(to top, var(--ink), #26213a59);width:2px;height:100vh;position:absolute;bottom:calc(100% - 4px);left:50%;translate:-50%}.disco:before{content:"";z-index:1;border:2px solid var(--ink);background:linear-gradient(#e3e7f2,#8a93ad);border-radius:3px 3px 2px 2px;width:16px;height:10px;position:absolute;top:-4px;left:50%;translate:-50%}.disco-ball{filter:drop-shadow(3px 0 #fff)drop-shadow(-3px 0 #fff)drop-shadow(0 3px #fff)drop-shadow(0 -3px #fff)drop-shadow(0 14px 14px #2621464d);width:100%;height:100%;display:block}.disco-glint{fill:#fff;opacity:0;filter:drop-shadow(0 0 4px #f6c343f2)drop-shadow(0 0 1px #d99a14e6);pointer-events:none;width:18px;position:absolute}.disco-glint.g1{top:20%;left:10%}.disco-glint.g2{width:13px;top:6%;right:14%}.disco-glint.g3{width:22px;bottom:16%;right:6%}.disco[data-mood=happy] .disco-glint{animation:2.8s ease-in-out infinite twinkle}.disco[data-mood=excited] .disco-glint{animation:.9s ease-in-out infinite twinkle}.disco[data-mood] .disco-glint.g2{animation-delay:-.9s}.disco[data-mood] .disco-glint.g3{animation-delay:-1.7s}.disco[data-mood=sad]{animation-play-state:paused}@keyframes disco-swing{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}.disco-lights{z-index:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .6s;position:absolute;inset:0;overflow:hidden}.disco-lights.is-on{opacity:1}.disco-lights i{left:0;top:var(--y);width:var(--s);height:var(--s);background:radial-gradient(circle, var(--c) 0, transparent 70%);mix-blend-mode:multiply;animation:light-sweep var(--d) linear infinite;animation-delay:var(--delay);border-radius:50%;position:absolute}@keyframes light-sweep{0%{transform:translate(-60px)}to{transform:translate(760px)}}.ask-buttons{z-index:6;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;min-height:74px;margin-top:26px;display:flex;position:relative}.btn--yes{scale:var(--grow,1);padding:.85em 1.8em;font-size:1.3rem}.btn--no{--btn-bg:#fff;--btn-edge:#26213a33;color:var(--ink);scale:var(--shrink,1);box-shadow:0 5px 0 var(--btn-edge), 0 14px 22px -14px #26214680}.btn--no:hover{box-shadow:0 7px 0 var(--btn-edge), 0 16px 24px -14px #2621468c}.btn--no.is-loose{z-index:45;transition:translate .48s var(--spring), scale .3s var(--spring), box-shadow .18s, opacity .2s}.btn--no.is-surrender{--btn-bg:var(--gold);--btn-edge:var(--gold-deep);color:var(--ink)}.btn--no.is-gone{opacity:0;pointer-events:none;scale:.2}.paper--yay .btn{margin-top:26px}.plan-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.progress{gap:clamp(12px,4vw,22px);margin:0;padding:0;list-style:none;display:flex}.progress li{font-family:var(--font-hand);color:var(--ink-soft);justify-items:center;gap:5px;font-size:.95rem;line-height:1;display:grid}.progress .dot{border:2px solid var(--accent-mid);width:14px;height:14px;transition:background-color .3s, border-color .3s, scale .3s var(--spring);background:0 0;border-radius:50%}.progress li.is-done .dot{background:var(--accent);border-color:var(--accent)}.progress li.is-current .dot{background:var(--accent-soft);border-color:var(--accent);scale:1.2}.progress li.is-current{color:var(--accent)}.step-count{color:var(--ink-soft);text-align:right;min-width:42px;font-size:1.2rem}.step .kicker{font-size:1.3rem}.step .sub{max-width:44ch;margin:0}.step.is-entering>*{animation:rise .6s var(--spring) both}.step.is-entering>:nth-child(2){animation-delay:60ms}.step.is-entering>:nth-child(3){animation-delay:.12s}.step.is-entering>:nth-child(4){animation-delay:.18s}.step.is-entering>:nth-child(5){animation-delay:.24s}.acts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;margin-top:24px;display:grid}.step.is-entering .acts{animation:none}.step.is-entering .act{animation:pop-in .55s var(--spring) both;animation-delay:calc(.16s + var(--n) * 45ms)}@keyframes pop-in{0%{opacity:0;transform:translateY(18px)scale(.9)}}.act{border:2px solid var(--line);text-align:left;rotate:var(--tilt,0deg);transition:rotate .4s var(--spring), scale .4s var(--spring), border-color .2s, background-color .2s, box-shadow .2s;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:22px;flex-direction:column;align-items:flex-start;gap:10px;padding:16px 14px 14px;display:flex;position:relative;box-shadow:0 5px 0 -1px #26213a12,0 16px 22px -18px #26214680}.act:hover{rotate:0deg;scale:1.03}.act:active{scale:.98}.act[aria-pressed=true]{border-color:var(--accent);background-color:#f4f6ff;rotate:0deg;box-shadow:0 0 0 5px #3355d61f,0 16px 24px -16px #3355d699}.act-emoji{background:var(--tint);border-radius:50%;flex:none;place-items:center;width:58px;height:58px;font-size:2rem;line-height:1;display:grid}.act-emoji>span{filter:drop-shadow(2px 0 #fff)drop-shadow(-2px 0 #fff)drop-shadow(0 2px #fff)drop-shadow(0 -2px #fff)drop-shadow(0 4px 4px #26214633);display:block;rotate:-6deg}.act[aria-pressed=true] .act-emoji>span{animation:boing .6s var(--spring)}@keyframes boing{0%{transform:scale(1)}30%{transform:scale(1.35)rotate(12deg)}to{transform:scale(1)}}.act-body{flex-direction:column;gap:4px;min-width:0;height:100%;display:flex}.act-title{font-family:var(--font-display);font-variation-settings:"SOFT" 100;font-size:1.08rem;font-weight:700;line-height:1.12}.act-desc{color:var(--ink-soft);font-size:.86rem;line-height:1.38}.act-tag{background:var(--tint);border-radius:999px;align-self:flex-start;margin-top:auto;padding:.05em .65em .1em;font-size:1rem;line-height:1.3}.act-body .act-tag{margin-top:6px}.act-badge{color:#fff;width:30px;height:30px;font-family:var(--font-display);background:var(--accent);transition:scale .4s var(--spring);border:2.5px solid #fff;border-radius:50%;place-items:center;font-size:.95rem;font-weight:800;display:grid;position:absolute;top:-12px;right:-10px;scale:0;box-shadow:0 4px 8px -2px #26214659}.act[aria-pressed=true] .act-badge{scale:1}.act--wide{border-style:dashed;flex-direction:row;grid-column:1/-1;align-items:center;gap:16px}.act--span{flex-direction:row;grid-column:1/-1;align-items:center;gap:16px}.act-note{background:var(--butter);color:var(--ink);border-radius:6px;align-self:flex-start;margin-top:2px;padding:.05em .55em .1em;font-size:1.02rem;line-height:1.3;rotate:-2deg;box-shadow:0 2px 5px -2px #8c640073}.suggest-field{border:2px solid var(--accent);animation:rise .45s var(--spring) both;background:#fff;border-radius:18px;grid-column:1/-1;align-items:center;gap:12px;margin-top:-4px;padding:12px 14px;display:flex;box-shadow:0 0 0 5px #3355d61a}.suggest-field .hand{color:var(--accent);flex:none;font-size:1.2rem}.suggest-field input{min-width:0;color:var(--ink);font:600 1.05rem var(--font-body);background:0 0;border:0;outline:0;flex:1}.suggest-field input::placeholder{color:#645d748c;font-weight:400}.acts .act.is-nope{animation:pop-in .55s var(--spring) both, nope .45s ease-in-out;animation-delay:calc(.16s + var(--n) * 45ms), 0s}@keyframes nope{20%{transform:translate(-7px)rotate(-2deg)}40%{transform:translate(6px)rotate(2deg)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.quick{flex-wrap:wrap;gap:9px;margin:22px 0 14px;display:flex}.chip{border:2px solid var(--line);cursor:pointer;transition:scale .3s var(--spring), background-color .2s, color .2s, border-color .2s;background:#fff;border-radius:999px;padding:.5em 1em;font-size:.93rem;font-weight:800;line-height:1.1}.chip:hover{border-color:var(--accent-soft);scale:1.05}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.cal{border:2px solid var(--line);background:#fff;border-radius:24px;padding:14px 12px 12px;box-shadow:0 16px 24px -20px #26214680}.cal-head{justify-content:space-between;align-items:center;margin:0 2px 8px;display:flex}.cal-title{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 1;font-size:1.3rem;font-weight:700}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.cal-grid.is-flipping{animation:rise .45s var(--spring)}.cal-dow{text-align:center;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:4px 0 6px;font-size:.7rem;font-weight:800}.day{aspect-ratio:1;cursor:pointer;width:100%;max-height:54px;transition:background-color .15s, background-size .4s var(--spring), color .15s;background:50%/0% no-repeat;border:0;border-radius:14px;padding:0;font-size:1rem;font-weight:800;position:relative}.day:hover:not(:disabled):not([aria-pressed=true]){background-color:var(--accent-wash)}.day.is-weekend{color:var(--accent)}.day:disabled{opacity:.25;cursor:default}.day.is-today:after{content:"today";font-family:var(--font-hand);color:var(--ink-soft);font-size:.62rem;font-weight:400;position:absolute;bottom:1px;left:0;right:0}.day[aria-pressed=true]{color:#fff;background-color:var(--accent);border-radius:50%;box-shadow:0 6px 12px -6px #3355d6b3}.day[aria-pressed=true]:after{color:#ffffffd9}.times{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin-top:24px;display:grid}.step.is-entering .time{animation:pop-in .5s var(--spring) both;animation-delay:calc(.16s + var(--n) * 40ms)}.time{border:2px solid var(--line);text-align:left;cursor:pointer;transition:scale .35s var(--spring), border-color .2s, background-color .2s, box-shadow .2s;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:20px;align-items:center;gap:12px;padding:12px 14px;display:flex;position:relative}.time:hover:not(:disabled){scale:1.03}.time:disabled{opacity:.35;cursor:default}.time[aria-pressed=true]{border-color:var(--accent);background:#f4f6ff;box-shadow:0 0 0 5px #3355d61f}.time-emoji{filter:drop-shadow(0 3px 3px #2621462e);flex:none;font-size:1.65rem;line-height:1}.time-text{min-width:0;display:grid}.time-clock{font-family:var(--font-mono);font-size:1.2rem;font-weight:500;line-height:1.15}.time-label{font-family:var(--font-hand);color:var(--ink-soft);font-size:1.02rem;line-height:1.15}.time.is-suggested:before{content:"✨ suggested";background:var(--butter);font-family:var(--font-hand);border-radius:8px;padding:0 .55em;font-size:.92rem;line-height:1.5;position:absolute;top:-12px;right:10px;rotate:4deg;box-shadow:0 3px 6px -2px #7850004d}.custom-time{color:var(--ink-soft);align-items:center;gap:12px;margin-top:16px;font-size:1.25rem;display:flex}.custom-time input{border:2px solid var(--accent-soft);color:var(--ink);font-family:var(--font-mono);background:#fff;border-radius:14px;padding:.4em .7em;font-size:1.15rem}.custom-time input:focus{outline:3px dashed var(--accent-mid);outline-offset:3px}.plan-foot{bottom:max(12px, env(safe-area-inset-bottom));z-index:6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 2px var(--line), 0 14px 30px -14px #26214666;background:#fff8efe0;border-radius:999px;justify-content:space-between;align-items:center;gap:12px;margin:28px -10px -12px;padding:10px 10px 10px 20px;display:flex;position:sticky}.plan-note{min-width:0;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.18rem;line-height:1.2;overflow:hidden}.btn--next{flex:none;padding:.78em 1.35em;font-size:1.08rem}.ticket-wrap{filter:drop-shadow(0 24px 24px #26214642)drop-shadow(0 4px 4px #2621461a);width:min(100%,640px);margin:22px 0 30px;rotate:-1.4deg}.ticket{--stub:156px;--notch:15px;grid-template-columns:minmax(0, 1fr) var(--stub);background:var(--paper);text-align:left;-webkit-mask:radial-gradient(circle var(--notch) at calc(100% - var(--stub)) 0, transparent 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at calc(100% - var(--stub)) 100%, transparent 97%, #000) bottom / 100% 51% no-repeat;-webkit-mask:radial-gradient(circle var(--notch) at calc(100% - var(--stub)) 0, transparent 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at calc(100% - var(--stub)) 100%, transparent 97%, #000) bottom / 100% 51% no-repeat;mask:radial-gradient(circle var(--notch) at calc(100% - var(--stub)) 0, transparent 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--notch) at calc(100% - var(--stub)) 100%, transparent 97%, #000) bottom / 100% 51% no-repeat;border-radius:22px;display:grid;position:relative}.ticket.is-stamped:not(.no-anim){animation:.45s .26s both thud}@keyframes thud{0%,to{transform:none}30%{transform:translateY(4px)scale(.985)}65%{transform:translateY(-1px)}}.ticket-main{background:radial-gradient(#3355d612 1px,#0000 1.3px) 0 0/14px 14px;padding:0 26px 24px;position:relative}.ticket-band{background:var(--accent);color:var(--paper);letter-spacing:.22em;justify-content:space-between;gap:10px;margin:0 -26px 18px;padding:11px 26px;font-size:.72rem;font-weight:500;display:flex}.ticket-names{font-family:var(--font-display);letter-spacing:-.02em;font-variation-settings:"SOFT" 100, "WONK" 1;margin:0 0 14px;font-size:clamp(1.55rem,5.4vw,2.15rem);font-style:italic;font-weight:800;line-height:1.05}.ticket-names .amp{color:var(--gold-deep);padding:0 .08em;font-size:1.1em;font-style:normal;font-weight:400}.ticket-rows{gap:9px;margin:0;display:grid}.ticket-rows>div{border-bottom:1.5px dashed #26213a24;grid-template-columns:58px minmax(0,1fr);align-items:baseline;gap:10px;padding-bottom:9px;display:grid}.ticket-rows>div:last-child{border-bottom:0;padding-bottom:0}.ticket-rows dt{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);font-size:.66rem;font-weight:500}.ticket-rows dd{font-family:var(--font-display);font-variation-settings:"SOFT" 100;margin:0;font-size:1.08rem;font-weight:650;line-height:1.3}.ticket-what span{display:block}.ticket-stub{background:radial-gradient(#ffffff59 1.2px, transparent 1.6px) 0 0 / 10px 10px, var(--gold);color:var(--ink);text-align:center;border-left:3px dashed #fff8eff2;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:22px 12px;display:flex}.stub-date{justify-items:center;line-height:1;display:grid}.stub-label,.stub-month{letter-spacing:.24em;font-size:.72rem;font-weight:500}.stub-day{font-family:var(--font-display);color:var(--accent);text-shadow:3px 3px #fff;font-variation-settings:"SOFT" 100, "WONK" 1;font-size:3.6rem;font-style:italic;font-weight:900;line-height:.95}.stub-time{background:var(--paper);border-radius:999px;padding:.25em .7em;font-size:.95rem;font-weight:500}.barcode{opacity:.85;background:repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 4px, var(--ink) 4px 5px, transparent 5px 7px, var(--ink) 7px 10px, transparent 10px 12px, var(--ink) 12px 13px, transparent 13px 16px);border-radius:2px;width:92px;height:36px}.stamp{z-index:3;right:calc(var(--stub) + 16px);color:var(--accent);text-align:center;pointer-events:none;opacity:0;box-shadow:inset 0 0 0 3px var(--paper), inset 0 0 0 5.5px currentColor;background:#fff8ef59;border:4px solid;border-radius:14px;padding:.45em .8em .5em;line-height:1;position:absolute;bottom:22px;transform:rotate(-14deg);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3 2.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E") 0 0/220px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3 2.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E") 0 0/220px}.stamp strong{font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;font-variation-settings:"SOFT" 50, "WONK" 1;font-size:1.7rem;font-style:italic;font-weight:900;line-height:.95;display:block}.ticket.is-stamped .stamp{animation:.44s cubic-bezier(.3,1.4,.5,1) both stamp}.ticket.no-anim .stamp{opacity:.94;animation:none}@keyframes stamp{0%{opacity:0;transform:rotate(-2deg)scale(2.8)}55%{opacity:1;transform:rotate(-16deg)scale(.9)}to{opacity:.94;transform:rotate(-14deg)scale(1)}}.ticket-actions{justify-items:center;gap:10px;display:grid}.toast{left:50%;bottom:calc(max(12px, env(safe-area-inset-bottom)) + 84px);z-index:70;background:var(--ink);max-width:calc(100% - 32px);color:var(--paper);text-align:center;opacity:0;pointer-events:none;transition:translate .4s var(--spring), opacity .25s;border-radius:999px;padding:.7em 1.25em;font-size:.98rem;font-weight:800;position:fixed;translate:-50% 24px}.toast.is-on{opacity:1;translate:-50%}@media (max-width:560px){.ticket{--stub:116px;-webkit-mask:radial-gradient(circle var(--notch) at 0 calc(100% - var(--stub)), transparent 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% calc(100% - var(--stub)), transparent 97%, #000) right / 51% 100% no-repeat;-webkit-mask:radial-gradient(circle var(--notch) at 0 calc(100% - var(--stub)), transparent 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% calc(100% - var(--stub)), transparent 97%, #000) right / 51% 100% no-repeat;mask:radial-gradient(circle var(--notch) at 0 calc(100% - var(--stub)), transparent 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% calc(100% - var(--stub)), transparent 97%, #000) right / 51% 100% no-repeat;grid-template-columns:minmax(0,1fr)}.ticket-main{padding:0 20px 20px}.ticket-band{letter-spacing:.16em;margin:0 -20px 16px;padding:10px 20px}.ticket-stub{height:var(--stub);border-top:3px dashed #fff8eff2;border-left:0;flex-direction:row;justify-content:space-around;padding:12px 18px}.stub-day{font-size:3rem}.barcode{width:70px;height:44px}.stamp{right:16px;bottom:calc(var(--stub) + 14px)}.stamp strong{font-size:1.4rem}.act{gap:8px;padding:14px 12px 12px}.act-emoji{width:50px;height:50px;font-size:1.7rem}.act-title{font-size:1rem}.act-desc{font-size:.82rem}.time{gap:9px;padding:11px}.time-emoji{font-size:1.4rem}.time-clock{font-size:1.08rem}.time-label{font-size:.95rem}.plan-foot{margin-left:-8px;margin-right:-8px;padding-left:16px}.plan-note{font-size:1.05rem}.btn--next{padding:.75em 1.1em;font-size:1rem}}@media (max-width:370px){.progress li span{display:none}.day{font-size:.9rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.twinkles{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.twinkles svg{left:var(--x);top:var(--y);width:var(--s);height:var(--s);fill:var(--c);filter:drop-shadow(0 0 6px #f6c34380);animation:twinkle var(--d) ease-in-out infinite;animation-delay:var(--delay);position:absolute}@keyframes twinkle{0%,to{opacity:.25;transform:scale(.55)rotate(0)}50%{opacity:.95;transform:scale(1)rotate(20deg)}}
