:root{--bg:#fff;--line:#2a2140;--text:#2a2140;--muted:#6e6585;--purple:#7c4ddb;--purple-d:#5e34b8;--lav:#efe7ff;--peach:#ffe9d8;--pumpkin:#ee8434;--navy:#0c2340;--lime:#c4d600;--pants:#34406f;--head:#fff;--paper:#fffdf8;--hair:#3b2a22;--blush:#ffb3c7;--heart:#7c4ddb1a;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16111f;--line:#efe8ff;--text:#efe8ff;--muted:#b3a8cc;--lav:#2b2140;--peach:#33251c;--head:#221a30;--heart:#ba9cff1a}}:root[data-theme=dark]{--bg:#16111f;--line:#efe8ff;--text:#efe8ff;--muted:#b3a8cc;--lav:#2b2140;--peach:#33251c;--head:#221a30;--heart:#ba9cff1a}*,:before,:after{box-sizing:inherit}html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}body{background-color:var(--bg);min-height:100%;color:var(--text);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg fill='%237C4DDB' fill-opacity='.24'%3E%3Cpath transform='translate(22 26) scale(.9)' d='M0 3C-4-3-12 1 0 12C12 1 4-3 0 3Z'/%3E%3Cpath transform='translate(84 78) scale(.7) rotate(12)' d='M0 3C-4-3-12 1 0 12C12 1 4-3 0 3Z'/%3E%3Cpath transform='translate(92 20) scale(.5) rotate(-10)' d='M0 3C-4-3-12 1 0 12C12 1 4-3 0 3Z'/%3E%3Cpath transform='translate(30 92) scale(.55) rotate(-14)' d='M0 3C-4-3-12 1 0 12C12 1 4-3 0 3Z'/%3E%3C/g%3E%3C/svg%3E");margin:0;font-family:Nunito,ui-rounded,Segoe UI,system-ui,sans-serif}.app{flex-direction:column;align-items:center;max-width:560px;margin:0 auto;padding:20px 18px 48px;display:flex}.figure-wrap{aspect-ratio:220/290;transform-origin:50% 90%;width:min(230px,58vw);margin-top:6px;position:relative;container-type:inline-size}.figure-wrap svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.front{pointer-events:none}.sign{background:var(--paper);border:3px solid var(--line);text-align:center;color:#2a2140;border-radius:6px;justify-content:center;align-items:center;width:83.6%;height:33.8%;padding:4px 8px;font-family:Gochi Hand,Comic Sans MS,cursive;line-height:1.05;transition:transform .2s,opacity .2s;display:flex;position:absolute;top:37.2%;left:8.2%;transform:rotate(-2deg);box-shadow:3px 4px #2a21401f}.sign.flip{opacity:.3;transform:rotate(-2deg)rotateY(90deg)translateY(6px)}.pony{transform-box:view-box;transform-origin:133px 30px;animation:2.6s ease-in-out infinite swing}@keyframes swing{50%{transform:rotate(7deg)}}.jump .pony,.bounce .pony,.wiggle .pony{animation-duration:.5s}.face{display:none}.face.on{display:inline}.blink{transform-box:fill-box;transform-origin:50%;animation:4.2s infinite blink}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.idle{animation:3.2s ease-in-out infinite breathe}@keyframes breathe{50%{transform:translateY(-2px)}}.wiggle{animation:.5s ease-in-out 3 wiggle}@keyframes wiggle{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}.bounce{animation:.5s 2 bounce}@keyframes bounce{40%{transform:translateY(-10px)}}.jump{animation:.55s cubic-bezier(.3,1.6,.5,1) 3 jump}@keyframes jump{40%{transform:translateY(-26px)scale(1.03)}}.shake{animation:.4s 2 shake}@keyframes shake{20%{transform:translate(-7px)}60%{transform:translate(7px)}}.droop{animation:.6s forwards droop}@keyframes droop{to{transform:translateY(8px)rotate(-3deg)scaleY(.96)}}.faint{animation:1s cubic-bezier(.5,0,.6,1.4) forwards faint}@keyframes faint{30%{transform:rotate(8deg)}to{transform:rotate(-78deg)translate(-30px,40px)}}.panel{width:100%;min-height:220px;margin-top:18px;transition:opacity .22s,transform .22s}.panel.out{opacity:0;transform:translateY(8px)}.center{text-align:center}.line{min-height:1.5em;color:var(--muted);text-align:center;margin:4px 0 14px;font-size:1.05rem;font-weight:700}.yn{justify-content:center;align-items:center;gap:16px;min-height:90px;display:flex}.btn{cursor:pointer;border:3px solid var(--line);color:var(--line);background:var(--bg);box-shadow:0 4px 0 var(--line);border-radius:999px;padding:.8em 1.7em;font:800 1.3rem/1 Nunito,ui-rounded,system-ui,sans-serif;transition:font-size .3s cubic-bezier(.3,1.5,.5,1),transform .15s,opacity .3s,box-shadow .15s}.btn:active{box-shadow:0 1px 0 var(--line);transform:translateY(3px)}.btn.primary{background:var(--purple);color:#fff}.btn.small{padding:.7em 1.3em;font-size:1rem}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:focus-visible,.ticket:focus-visible,.opt:focus-visible,.link:focus-visible,.ball:focus-visible{outline:3px dashed var(--pumpkin);outline-offset:4px}.row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}.link{color:var(--muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin:18px auto 0;font:700 .95rem Nunito,sans-serif;text-decoration:underline;display:block}.note{background:var(--bg);border:2.5px solid var(--line);box-shadow:5px 6px 0 var(--lav);border-radius:22px 18px 24px 16px;padding:18px 20px;position:relative}.note h2{margin:2px 0 6px;font-family:Gochi Hand,cursive;font-size:1.9rem;font-weight:400;line-height:1.1}.note p{margin:0 0 6px;font-size:1.05rem;line-height:1.55}.chip{background:var(--navy);color:#fff;border:2px solid var(--lime);border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:800;display:inline-block}.reply{background:var(--lav);border-radius:14px;margin-top:12px;padding:12px 14px;font-weight:700;line-height:1.5;display:none}.reply.on{animation:.3s cubic-bezier(.3,1.6,.5,1) pop;display:block}@keyframes pop{0%{opacity:0;transform:scale(.92)}}.opts{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.opt{cursor:pointer;border:2px solid var(--line);background:var(--bg);color:var(--text);border-radius:14px;padding:9px 14px;font:700 .98rem Nunito,sans-serif;transition:transform .12s,background .15s}.opt:hover{transform:translateY(-2px)}.opt.sel{background:var(--purple);color:#fff;border-color:var(--purple-d)}.rate{grid-template-columns:repeat(10,1fr);gap:4px;display:grid}.rate .opt{text-align:center;padding:8px 0}.lead{text-align:center;color:var(--muted);margin:0 0 14px;font-weight:700}.tickets{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=460px){.tickets{grid-template-columns:1fr}}.ticket{text-align:left;cursor:pointer;color:var(--text);border:2.5px solid var(--line);border-radius:16px;flex-direction:column;gap:4px;padding:16px 18px 0;font-family:Nunito,sans-serif;transition:transform .18s cubic-bezier(.3,1.6,.5,1);display:flex;position:relative}.ticket:hover{transform:rotate(-1.5deg)translateY(-3px)}.ticket.fair{background:var(--peach)}.ticket.drive{background:var(--lav)}.ticket:before,.ticket:after{content:"";background:var(--bg);border:2.5px solid var(--line);border-radius:50%;width:18px;height:18px;position:absolute;bottom:34px}.ticket:before{clip-path:inset(0 0 0 50%);left:-11px}.ticket:after{clip-path:inset(0 50% 0 0);right:-11px}.t-emoji{font-size:2rem}.t-title{font-family:Gochi Hand,cursive;font-size:1.7rem;line-height:1}.t-sub{color:var(--muted);margin-bottom:12px;font-size:.95rem;font-weight:700;line-height:1.4}.t-stub{border-top:2.5px dashed var(--line);margin:auto -18px 0;padding:8px 18px;font-size:.85rem;font-weight:800}.stamp{border:2.5px solid var(--purple);color:var(--purple);border-radius:8px;padding:1px 8px;font-size:.8rem;font-weight:800;position:absolute;top:12px;right:12px;transform:rotate(12deg)}.hate{border:2px dashed var(--muted);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;margin:20px auto 0;padding:9px 18px;font:800 .95rem Nunito,sans-serif;transition:transform .35s cubic-bezier(.3,1.6,.5,1);display:block}.movies{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.movies .opt{text-align:left;flex-direction:column;gap:2px;display:flex}.movies .opt small{opacity:.75;font-weight:800}.tl{margin:10px 0 0;padding:0;list-style:none}.tl li{border-top:2px dotted var(--muted);grid-template-columns:118px 1fr;gap:10px;padding:9px 0;display:grid}.tl li:first-child{border-top:0}.tl b{color:var(--purple);font-weight:800}.court{width:100%;max-width:330px;margin:6px auto 0;display:block;overflow:visible}.ball{cursor:pointer}.big-yes{font-size:1.5rem}#fx{pointer-events:none;z-index:20;width:100%;height:100%;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
