.screen{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;transition:opacity .38s var(--ease-glide), transform .48s var(--ease-pop);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.screen.entering{opacity:0;transform:translateY(14px)scale(.98)}.screen.leaving{opacity:0;pointer-events:none;transform:translateY(-10px)}#app{position:relative;overflow:hidden}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sr-only:focus-visible{clip:auto;border-radius:var(--radius-pill);background:var(--card);border:3px solid var(--ink);width:auto;height:auto;font:inherit;z-index:5;padding:10px 16px;bottom:16px}.hint-chip{bottom:calc(28px + env(safe-area-inset-bottom));border:2.5px solid var(--ink);border-radius:var(--radius-pill);white-space:nowrap;pointer-events:none;z-index:3;transition:opacity .3s var(--ease-glide), transform .3s var(--ease-glide);background:#ffffffeb;align-items:center;gap:8px;padding:10px 18px 10px 14px;font-size:1rem;font-weight:600;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hint-chip svg{animation:hint-wiggle 1.6s var(--ease-glide) infinite}.hint-chip.gone{opacity:0;transform:translate(-50%,12px)}@keyframes hint-wiggle{0%,to{transform:translate(-6px)rotate(-8deg)}50%{transform:translate(8px)rotate(6deg)}}.mascot-layer{opacity:0;transition:opacity .22s var(--ease-glide);position:absolute;inset:0}.mascot-layer.shown{opacity:1}.opener-glass{background:linear-gradient(180deg, #ffe4ea 0%, var(--cream) 70%)}.glass-scene{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.glass-glow{background:radial-gradient(circle,#ffd86b59 0%,#ffb8c640 40%,#0000 70%);border-radius:50%;width:120vmin;height:120vmin;position:absolute}.glass-mascot{aspect-ratio:320/300;width:min(86vw,380px);transition:transform .7s var(--ease-pop);position:relative}.opener-glass.revealed .glass-mascot{transform:scale(1.06)}.glass-fog{touch-action:none;cursor:grab;z-index:2;width:100%;height:100%;transition:opacity .8s var(--ease-glide);position:absolute;inset:0}.glass-fog.cleared{opacity:0;pointer-events:none}.opener-envelope{background:radial-gradient(circle at 50% 42%, #ffe8ee 0%, var(--cream) 65%);gap:18px}.env-from{margin:0;font-size:1.25rem;font-weight:600}.env-stage{width:min(82vw,360px);position:relative}.envelope{aspect-ratio:300/200;perspective:900px;width:100%;position:relative}.envelope>svg,.env-flap,.env-letter{position:absolute}.env-back,.env-front{width:100%;height:100%;inset:0}.env-front{z-index:2}.env-letter{z-index:1;border:3px solid var(--ink);height:84%;transition:transform .7s var(--ease-pop);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding-top:12%;display:flex;top:8%;left:9%;right:9%}.env-letter.out{transform:translateY(-62%)}.env-letter-heart{font-size:1.6rem}.env-letter-line{background:var(--cocoa-30);border-radius:4px;width:60%;height:8px}.env-letter-line.short{width:40%}.env-flap{z-index:3;transform-origin:50% 2%;transition:transform .52s var(--ease-glide);top:0;left:0;right:0}.env-flap svg{width:100%;display:block}.env-flap.open{transform:rotateX(180deg)}.envelope.flap-behind .env-flap{z-index:0}.env-seal{aspect-ratio:1;z-index:4;touch-action:none;cursor:grab;width:22%;transition:transform .42s var(--ease-pop);animation:seal-wiggle 2.6s var(--ease-glide) 1.2s infinite;filter:drop-shadow(0 3px #4a2e2a2e);background:0 0;border:0;padding:0;position:absolute;top:62%;left:50%;transform:translate(-50%,-50%)}.env-seal svg{width:100%;height:100%}.env-seal.held{cursor:grabbing;transition:none;animation:none}.env-seal.nudge{animation:seal-nudge .42s var(--ease-pop)}.env-seal.popped{transition:transform .52s var(--ease-glide), opacity .42s var(--ease-glide);opacity:0;pointer-events:none;animation:none;transform:translate(-50%,-260%)rotate(-140deg)scale(.6)}@keyframes seal-wiggle{0%,70%,to{transform:translate(-50%,-50%)rotate(0)}76%{transform:translate(-50%,-50%)rotate(-9deg)}84%{transform:translate(-50%,-50%)rotate(8deg)}92%{transform:translate(-50%,-50%)rotate(-4deg)}}@keyframes seal-nudge{0%{transform:translate(-50%,-50%)}40%{transform:translate(-50%,-62%)rotate(-6deg)}to{transform:translate(-50%,-50%)}}.env-mascot{aspect-ratio:320/300;z-index:5;pointer-events:none;width:46%;position:absolute;bottom:-14%;right:-16%}.pill{border:3px solid var(--ink);border-radius:var(--radius-pill);min-height:56px;font:inherit;color:var(--ink);background:var(--card);cursor:pointer;touch-action:manipulation;box-shadow:0 5px 0 var(--ink);transition:transform .14s var(--ease-glide), box-shadow .14s var(--ease-glide);justify-content:center;align-items:center;gap:8px;padding:0 30px;font-size:1.25rem;font-weight:600;display:inline-flex}.pill-yes{background:var(--yes);color:#fff;min-width:min(72vw,300px);min-height:64px;font-size:1.45rem}.pill.pressing,.pill:active{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}.pill-yes.pressed{animation:yes-pop .52s var(--ease-pop)}@keyframes yes-pop{0%{transform:translateY(4px)scale(.96)}45%{transform:scale(1.1)}to{transform:scale(1)}}.question{padding:calc(18px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 22%, #ffe8ee 0%, var(--cream) 62%);justify-content:flex-start;gap:10px}.question-mascot,.confirm-mascot{aspect-ratio:320/300;flex:none;width:min(66vw,280px);position:relative}.question-card{text-align:center;background:var(--card);border:3px solid var(--ink);border-radius:var(--radius-card);box-shadow:0 5px 0 var(--accent);max-width:340px;padding:14px 20px 16px}.question-from{opacity:.7;margin:0 0 2px;font-size:.95rem}.question-text{text-align:center;margin:0;font-size:1.65rem;font-weight:600;line-height:1.2}.answers{align-items:center;gap:18px;margin-top:auto;margin-bottom:26px;display:flex}.answers.stacked{flex-direction:column}.answers.side-by-side .pill-yes{min-width:0}.pill-no{min-width:96px;min-height:46px;padding:0 22px;font-size:1.05rem}.pill-no.has-feet{margin-bottom:10px}.pill-no .feet{pointer-events:none;gap:18px;display:flex;position:absolute;bottom:-13px;left:50%;transform:translate(-50%)}.pill-no .feet i{background:var(--butter);border:2.5px solid var(--ink);border-radius:50%;width:20px;height:10px;display:block}.pill-no{position:relative}.pill-no.free{z-index:4;transition:left .36s var(--ease-glide), top .36s var(--ease-glide), transform .14s var(--ease-glide), box-shadow .14s var(--ease-glide);margin:0;position:absolute}.pill-no.running .feet i:first-child{animation:.16s linear 3 alternate step}.pill-no.running .feet i:last-child{animation:.16s linear 80ms 3 alternate step}.pill-no.running:after{content:"💦";animation:sweat .6s var(--ease-glide) forwards;font-size:1rem;position:absolute;top:-16px;right:-18px}@keyframes step{to{transform:translateY(-6px)rotate(-12deg)}}@keyframes sweat{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}.pill-no.gave-up{animation:give-up .7s var(--ease-pop)}@keyframes give-up{0%{transform:scale(1)}30%{transform:scale(.88)rotate(-6deg)}to{transform:scale(1)}}.no-bubble{background:var(--card);border:2.5px solid var(--ink);border-radius:var(--radius-pill);opacity:0;pointer-events:none;z-index:5;transition:opacity .22s var(--ease-glide), transform .32s var(--ease-pop);padding:8px 16px;font-weight:600;position:absolute;top:44%;left:50%;transform:translate(-50%,8px)}.no-bubble.shown{opacity:1;transform:translate(-50%)}.burst-heart{pointer-events:none;z-index:6;animation:burst .9s var(--ease-glide) forwards;font-size:1.4rem;position:absolute}@keyframes burst{0%{opacity:1;transform:translate(-50%,-50%)scale(.2)}60%{opacity:1}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1);opacity:0}}.confirm,.no-answer,.plan-stub{text-align:center;background:radial-gradient(circle at 50% 40%, #ffe8ee 0%, var(--cream) 62%);gap:16px;padding:24px}.speech{background:var(--card);border:3px solid var(--ink);animation:pop-in .48s var(--ease-pop) both;border-radius:22px;padding:12px 22px;font-size:1.5rem;font-weight:600;position:relative}.speech:after{content:"";background:var(--card);border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);width:18px;height:18px;position:absolute;bottom:-12px;left:50%;transform:translate(-50%)rotate(45deg)}@keyframes pop-in{0%{opacity:0;transform:translateY(10px)scale(.9)}to{opacity:1;transform:none}}.soft-note{opacity:.75;max-width:30ch;margin:0;font-size:1.05rem}.duo-mascot{aspect-ratio:560/320;width:min(92vw,420px);position:relative}.plan{padding:calc(22px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 0%, #ffe8ee 0%, var(--cream) 55%);justify-content:flex-start;gap:10px;overflow-y:auto}.plan-title{text-align:center;margin:0 0 4px;font-size:1.6rem;font-weight:600}.plan-step{align-self:stretch;margin:8px 4px 0;font-size:1.1rem;font-weight:600}.chips{flex-wrap:wrap;align-self:stretch;gap:10px;display:flex}.chip,.tile{font:inherit;color:var(--ink);background:var(--card);border:2.5px solid var(--ink);cursor:pointer;touch-action:manipulation;box-shadow:0 4px 0 var(--cocoa-30);transition:transform .16s var(--ease-pop), background-color .16s var(--ease-glide), box-shadow .16s var(--ease-glide)}.chip{border-radius:18px;flex-direction:column;flex:30%;align-items:center;min-width:96px;padding:10px 8px;display:flex}.chip-day{font-weight:600}.chip-time{opacity:.8;font-size:.95rem}.chip[aria-pressed=true],.tile[aria-pressed=true]{background:var(--strawberry);box-shadow:0 4px 0 var(--ink);transform:translateY(-2px)scale(1.03)}.chip:active,.tile:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)scale(.98)}.tiles{grid-template-columns:repeat(3,1fr);align-self:stretch;gap:10px;display:grid}.tile{border-radius:18px;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 8px;display:flex}.tile-icon{font-size:1.7rem;line-height:1.2}.tile[aria-pressed=true] .tile-icon{animation:tile-bounce .42s var(--ease-pop)}@keyframes tile-bounce{0%{transform:scale(1)}40%{transform:scale(1.3)rotate(-8deg)}to{transform:scale(1)}}.tile-label{font-size:.95rem;font-weight:600}.custom{font:inherit;color:var(--ink);background:var(--card);border:2.5px dashed var(--cocoa-30);border-radius:var(--radius-pill);-webkit-user-select:text;user-select:text;align-self:stretch;margin-top:4px;padding:12px 16px;font-size:1rem}.custom:focus{border-style:solid;border-color:var(--ink);outline:none}.plan-go{margin-top:auto;padding-top:12px}.pill:disabled{opacity:.45;cursor:default;box-shadow:0 3px 0 var(--cocoa-30)}.pill-yes.ready{animation:ready-pulse .52s var(--ease-pop)}@keyframes ready-pulse{0%{transform:scale(.96)}50%{transform:scale(1.06)}to{transform:scale(1)}}.finale{padding:calc(10px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 18%, #ffe0e8 0%, var(--cream) 60%);justify-content:flex-start;gap:12px;overflow-y:auto}.finale-mascot{flex:none;width:min(88vw,380px)}.ticket{background:var(--card);border:3px solid var(--ink);max-width:380px;box-shadow:0 5px 0 var(--accent);border-radius:20px;align-self:stretch;margin:0 auto;padding:16px 22px 14px;position:relative;-webkit-mask:radial-gradient(12px at 0 58%,#0000 98%,#000) 0/51% 100% no-repeat,radial-gradient(12px at 100% 58%,#0000 98%,#000) 100%/51% 100% no-repeat;mask:radial-gradient(12px at 0 58%,#0000 98%,#000) 0/51% 100% no-repeat,radial-gradient(12px at 100% 58%,#0000 98%,#000) 100%/51% 100% no-repeat}.ticket-line{border-bottom:2.5px dashed var(--cocoa-30);text-align:center;margin:0 0 10px;padding-bottom:10px;font-size:1.2rem;font-weight:600}.ticket-row{align-items:center;gap:12px;padding:4px 0;font-size:1.05rem;font-weight:600;display:flex}.ticket-icon{text-align:center;width:28px;font-size:1.25rem}.countdown{gap:8px;display:flex}.count-tile{text-align:center;background:var(--card);border:2.5px solid var(--ink);border-radius:14px;min-width:64px;padding:8px 6px 6px}.count-tile b{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600;display:block}.count-tile span{opacity:.7;font-size:.8rem}.countdown.past .count-tile{opacity:.5}.finale-actions{flex-direction:column;align-items:center;gap:8px;margin-top:auto;display:flex}a.pill{text-decoration:none}.ics-link{color:var(--ink);opacity:.7;text-align:center;max-width:30ch;font-size:.85rem}.menu-button{top:calc(10px + env(safe-area-inset-top));right:calc(10px + env(safe-area-inset-right));z-index:20;border:2px solid var(--cocoa-30);width:40px;height:40px;color:var(--ink);font:inherit;cursor:pointer;background:#ffffffd9;border-radius:50%;font-size:1.3rem;line-height:1;position:fixed}.menu-sheet{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:21;background:var(--card);border:3px solid var(--ink);max-width:420px;box-shadow:0 8px 0 var(--cocoa-30);animation:pop-in .32s var(--ease-pop) both;border-radius:24px;flex-direction:column;gap:8px;margin:0 auto;padding:18px 18px 14px;display:flex;position:fixed}.menu-sheet[hidden]{display:none}.menu-sheet h2{margin:0;font-size:1.2rem;font-weight:600}.menu-sheet p{opacity:.75;margin:0 0 4px}.menu-item,.menu-close{font:inherit;text-align:left;border:2px solid var(--cocoa-30);background:var(--cream);color:var(--ink);cursor:pointer;border-radius:14px;padding:12px 14px}.menu-close{text-align:center;background:0 0;border:0;font-weight:600}
