@import"https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@400;600;700;800&family=Caveat+Brush&display=swap";:root{--sky-50: #eaf6fe;--sky-100: #c9e9fb;--sky-300: #8fd2f3;--sky-500: #5bb6e6;--sky-700: #2a86b8;--sun-100: #fff1b5;--sun-300: #ffdf6f;--sun-500: #ffc93c;--sun-700: #e2962a;--sun-900: #9c5e0f;--grass-100: #dcf3b4;--grass-300: #b6e27a;--grass-500: #7bc74d;--grass-700: #3e8a2a;--grass-900: #1f4f17;--melon-100: #ffd7d5;--melon-300: #f58a82;--melon-500: #e94b4f;--melon-700: #b12f36;--peach-100: #ffe0cb;--peach-300: #ffb58a;--peach-500: #ff8c5a;--bloom-100: #ffd9e7;--bloom-300: #f69bc0;--bloom-500: #e25c9c;--bloom-700: #a33871;--teal-100: #bfebe8;--teal-300: #6fd3cd;--teal-500: #2fb4ad;--teal-700: #196e6a;--wheat-100: #fbe7b5;--wheat-300: #ecc575;--wheat-500: #d9a04a;--wheat-700: #8c5c1f;--cream-50: #fffcf2;--cream-100: #fff6e2;--cream-300: #fcefd0;--cream-500: #f4dda6;--ink-900: #2d1e14;--ink-700: #4a3325;--ink-500: #6b5141;--ink-300: #a88b76;--ink-100: #e3d3c2;--night-100: #2e3a6b;--night-300: #1f2a57;--night-500: #161e40;--night-700: #0e1530;--night-900: #070b1c;--dusk-100: #f9c9dd;--dusk-300: #c77dba;--dusk-500: #8a4ea8;--dusk-700: #4b2466;--star-glow: #ffeda8;--bg-page: var(--cream-100);--bg-surface: #fffcf2;--bg-elevated: #ffffff;--bg-sky: var(--sky-100);--bg-meadow: var(--grass-100);--fg-1: var(--ink-900);--fg-2: var(--ink-700);--fg-3: var(--ink-500);--fg-inverse: var(--cream-50);--fg-on-sun: var(--ink-900);--fg-on-grass: var(--cream-50);--fg-on-melon: var(--cream-50);--accent: var(--sun-500);--accent-hover: var(--sun-300);--accent-press: var(--sun-700);--action: var(--melon-500);--action-hover: var(--melon-300);--action-press: var(--melon-700);--positive: var(--grass-500);--positive-deep: var(--grass-700);--negative: var(--melon-500);--info: var(--sky-500);--outline: var(--ink-900);--outline-soft: var(--ink-300);--hairline: rgba(45, 30, 20, .12);--bg-night: var(--night-500);--bg-night-elevated: var(--night-300);--fg-on-night: var(--cream-50);--fg-on-night-meta: #b9c2e4;--hairline-on-night: rgba(255, 246, 226, .16);--celebrate-1: var(--sun-500);--celebrate-2: var(--melon-500);--celebrate-3: var(--grass-500);--celebrate-4: var(--bloom-500);--celebrate-5: var(--sky-500);--celebrate-6: var(--teal-500);--font-display: "Fredoka", "Baloo 2", "Quicksand", system-ui, sans-serif;--font-body: "Nunito", "Avenir Next", system-ui, sans-serif;--font-hand: "Caveat Brush", "Bradley Hand", "Marker Felt", cursive;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--t-hero: clamp(48px, 7vw, 96px);--t-h1: 48px;--t-h2: 36px;--t-h3: 26px;--t-h4: 20px;--t-body: 17px;--t-small: 14px;--t-tiny: 12px;--lh-tight: 1.05;--lh-snug: 1.2;--lh-body: 1.5;--lh-loose: 1.7;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--r-sm: 8px;--r-md: 14px;--r-lg: 22px;--r-xl: 32px;--r-pill: 999px;--r-blob: 42% 58% 55% 45% / 50% 45% 55% 50%;--sh-sticker: 0 4px 0 0 var(--ink-900);--sh-soft: 0 6px 18px -6px rgba(70, 45, 25, .25);--sh-pop: 0 10px 28px -8px rgba(70, 45, 25, .35);--sh-press: 0 2px 0 0 var(--ink-900);--sh-inner: inset 0 -3px 0 0 rgba(0, 0, 0, .08);--sh-card: 0 3px 0 rgba(0, 0, 0, .06);--sh-raised: 0 4px 0 var(--ink-900);--sh-float: 0 5px 0 var(--melon-700), 0 8px 24px rgba(233, 75, 79, .3);--bd-thick: 3px solid var(--outline);--bd-thin: 2px solid var(--outline);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-soft: cubic-bezier(.4, .1, .25, 1);--dur-fast: .14s;--dur-base: .24s;--dur-slow: .42s}html,body{background:var(--bg-page);color:var(--fg-1);font-family:var(--font-body);font-size:var(--t-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}h1,.h1{font-family:var(--font-display);font-weight:700;font-size:var(--t-h1);line-height:var(--lh-tight);letter-spacing:-.01em;color:var(--fg-1)}h2,.h2{font-family:var(--font-display);font-weight:600;font-size:var(--t-h2);line-height:var(--lh-snug);color:var(--fg-1)}h3,.h3{font-family:var(--font-display);font-weight:600;font-size:var(--t-h3);line-height:var(--lh-snug)}h4,.h4{font-family:var(--font-display);font-weight:500;font-size:var(--t-h4);line-height:var(--lh-snug)}.hero,.display{font-family:var(--font-display);font-weight:700;font-size:var(--t-hero);line-height:.95;letter-spacing:-.02em}.hand,.caption-hand{font-family:var(--font-hand);font-weight:500;font-size:1.4em;line-height:1}p{color:var(--fg-1);margin:0 0 var(--s-4)}small,.small{font-size:var(--t-small);color:var(--fg-2)}.eyebrow{font-family:var(--font-body);font-weight:800;font-size:var(--t-tiny);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-2)}code,.mono{font-family:var(--font-mono);font-size:.92em;background:var(--cream-300);padding:.1em .4em;border-radius:6px}.grain{position:relative;isolation:isolate}.grain:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:url(/brand/grain.svg);background-size:220px 220px;background-repeat:repeat;mix-blend-mode:multiply;opacity:.28;z-index:1}.grain>*{position:relative;z-index:2}.grain-soft:after{background-size:180px 180px;opacity:.16}@keyframes toast-in{0%{transform:translateY(-22px) rotate(-1deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}@keyframes twinkle{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}@keyframes firework-burst{0%{transform:scale(.1);opacity:0}20%{opacity:1}to{transform:scale(1.6);opacity:0}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100vh;min-height:100dvh}body{padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);background:var(--bg-page);color:var(--fg-1);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:contain}button{font:inherit;color:inherit}img{display:block;max-width:100%}@keyframes omr-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes omr-drift{0%{transform:translate(0)}to{transform:translate(40px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;background:var(--bg-page);font-family:var(--font-body);overscroll-behavior:none}@media(min-width:431px){body{background:var(--ink-900)}}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}#root{max-width:430px;height:100%;margin:0 auto;position:relative;overflow:hidden}.omr-screen{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden;font-family:var(--font-body);-webkit-font-smoothing:antialiased}.omr-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:17px 28px;border-radius:var(--r-pill);border:var(--bd-thick);border-color:var(--ink-900);font-family:var(--font-display);font-size:17px;font-weight:600;cursor:pointer;transition:transform var(--dur-fast) var(--ease-bounce),box-shadow var(--dur-fast) var(--ease-soft);-webkit-tap-highlight-color:transparent;text-align:center;line-height:1}.omr-btn:active{transform:translateY(3px);box-shadow:0 1px 0 0 var(--ink-900)!important}.omr-btn-primary{background:var(--action);color:#fff;box-shadow:0 5px 0 0 var(--melon-700),0 8px 20px #e94b4f4d}.omr-btn-white{background:var(--bg-elevated);color:var(--ink-900);box-shadow:0 5px 0 0 var(--ink-200),0 8px 20px #00000014}.omr-btn-yellow{background:var(--sun-500);color:var(--ink-900);box-shadow:0 5px 0 0 var(--sun-700),0 8px 20px #ffc93c59}.omr-btn-ghost{background:#ffffff38;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--ink-900);border-color:#ffffff80;box-shadow:inset 0 1px #fff6,0 4px 12px #0000001a}.omr-btn-secondary{background:var(--cream-50);color:var(--ink-900);box-shadow:0 3px 0 0 var(--ink-900)}.omr-btn-back{background:none;border-color:transparent;color:var(--ink-400);box-shadow:none;font-size:14px;padding:8px 4px}.omr-btn-back:active{transform:none;box-shadow:none!important}.land-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--r-pill);border:2px solid var(--ink-900);background:#fff6e2b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font-body);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-900)}.ticket-card{background:var(--bg-elevated);border-radius:var(--r-lg);border:var(--bd-thick);border-color:var(--ink-900);box-shadow:var(--sh-sticker),0 12px 32px #00000014;position:relative;overflow:hidden}.ticket-card:before,.ticket-card:after{content:"";position:absolute;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:50%;background:var(--bg-page);border:var(--bd-thick);border-color:var(--ink-900)}.ticket-card:before{left:-10px}.ticket-card:after{right:-10px}@keyframes slideIn{0%{transform:translate3d(100%,0,0)}to{transform:translateZ(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes popIn{0%{transform:scale(.6) rotate(-4deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes bounceIn{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.1)}80%{transform:scale(.97)}to{transform:scale(1);opacity:1}}@keyframes wiggle{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes float{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-10px) rotate(-1deg)}}@keyframes float2{0%,to{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-8px) rotate(4deg)}}@keyframes float3{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-12px) rotate(1deg)}}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:1}}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(900px) rotate(720deg);opacity:0}}@keyframes scoreCount{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}@keyframes starPop{0%{transform:scale(0) rotate(-20deg);opacity:0}70%{transform:scale(1.2) rotate(5deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.slide-in{animation:slideIn .38s cubic-bezier(.25,.46,.45,.94) both;will-change:transform}.fade-in{animation:fadeIn .4s both}.pop-in{animation:popIn .45s both}.bounce-in{animation:bounceIn .55s both}.wiggle{animation:wiggle .5s ease-in-out}
