:root{--bg:#fff4d6;--bg-dot:#f0c94a;--ink:#1a1540;--muted:#5c5680;--card:#fffdf6;--coral:#ff5a3c;--coral-ink:#fff8f0;--mint:#1f9d6b;--warn:#b42318;--line:#1a1540;--display:"Fredoka", "Trebuchet MS", "Avenir Next", sans-serif;--ui:"Nunito", system-ui, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--ui);color:var(--ink);background-color:var(--bg);background-image:radial-gradient(var(--bg-dot) 1.2px, transparent 1.2px);background-size:18px 18px;line-height:1.4}#root{min-height:100svh}.page{max-width:28rem;margin:0 auto;padding:1.5rem 1.1rem 3.5rem}.brand{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.logo{font-family:var(--display);letter-spacing:-.04em;font-size:1.85rem;font-weight:700;line-height:1}.logo-blank{color:var(--coral);letter-spacing:-.12em}.badge{font-family:var(--display);background:var(--ink);color:#fff4d6;border-radius:999px;padding:.28rem .7rem .22rem;font-size:.95rem;font-weight:650;transform:rotate(4deg)}.masthead h1{font-family:var(--display);letter-spacing:-.04em;margin:0 0 .55rem;font-size:2.15rem;font-weight:650;line-height:1.05}.lede{color:var(--muted);margin:0;font-weight:600}.banner{background:var(--card);border:2px solid var(--ink);text-align:center;border-radius:999px;margin:1.15rem 0 0;padding:.55rem .8rem;font-size:.88rem;font-weight:700}.banner.ok{color:var(--mint);background:#d8f5e7}.banner.warn{color:var(--warn);background:#ffe1d8;border-radius:1rem}.banner code{font-size:.82em}.uid{opacity:.7;font-variant-numeric:tabular-nums}.board{background:var(--card);border:3px solid var(--ink);border-radius:1.35rem;margin-top:1.35rem;padding:1.2rem 1.15rem 1.25rem;transform:rotate(-.6deg)}.board.waiting{transform:rotate(.5deg)}.board.waiting .board-tag,.board.waiting .wait-line,.board.waiting .hint{text-align:center}.board.waiting .board-tag{width:fit-content;margin-left:auto;margin-right:auto;display:block}.board.reveal{animation:.42s ease-out board-in}.board.reveal-static,.board.reveal-static.reveal-win,.board.reveal-static .win-title,.board.reveal-static .win-dot{animation:none}.carousel{margin-top:1.35rem}.carousel .board{margin-top:0;transform:none}.carousel-viewport{touch-action:pan-y;overscroll-behavior-x:contain;overflow:hidden}.carousel-viewport.dragging{touch-action:none}.carousel-track{align-items:stretch;transition:transform .38s cubic-bezier(.2,.8,.2,1);display:flex}.carousel-slide{flex:0 0 100%;min-width:0;padding:0 1px}.carousel-nav{justify-content:center;align-items:center;gap:.7rem;margin-top:.85rem;display:flex}.carousel-arrow{background:var(--card);border-radius:999px;width:2.55rem;min-height:2.55rem;padding:0;font-size:1.55rem;line-height:1}.carousel-dots{gap:.4rem;display:flex}.carousel-dot{opacity:.5;background:#fff;border-radius:999px;width:.58rem;height:.58rem;min-height:0;padding:0}.carousel-dot.on{opacity:1;background:var(--coral);transform:scale(1.18)}.carousel-status{text-align:center;color:var(--muted);margin:.45rem 0 0;font-size:.78rem;font-weight:700}.carousel-shuffle{margin-top:.85rem}.carousel-shuffle .actions{margin-top:.65rem}.carousel-shuffle .btn-mix{flex:1}.wait-skel-line{flex-direction:column;gap:.45rem;margin-bottom:1rem;display:flex}.wait-skel{border:2px solid var(--ink);opacity:.7;background:#efe9d4;border-radius:.45rem;height:1.05rem;animation:1.1s ease-in-out infinite wait-pulse;display:block}.wait-skel-short{width:62%;animation-delay:.18s}.wait-blank{min-width:3.4ch;display:inline-block}.wait-fill{animation:1.15s ease-in-out infinite wait-blank;display:inline-block}.wait-tiles{justify-content:center;gap:.45rem;margin:.15rem 0 .85rem;display:flex}.wait-tile{border:3px solid var(--ink);border-radius:.45rem;width:2.2rem;height:2.2rem;animation:.72s ease-in-out infinite wait-hop}.wait-tile-coral{background:var(--coral);animation-delay:0s}.wait-tile-yellow{background:#ffe14a;animation-delay:.12s}.wait-tile-mint{background:var(--mint);animation-delay:.24s}.wait-line{min-height:1.45em;font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:650}.board.shuffling{overflow:hidden;transform:rotate(1.1deg)}.board.shuffling .board-tag,.board.shuffling .wait-line,.board.shuffling .hint{text-align:center}.board.shuffling .board-tag{width:fit-content;margin-left:auto;margin-right:auto;display:block}.shuffle-stem{word-break:break-word;min-height:3.5rem}.shuffle-stack{height:4.7rem;margin:.15rem 0 .95rem;position:relative}.shuffle-card{border:3px solid var(--ink);border-radius:.9rem;height:3.35rem;animation:.62s ease-in-out infinite shuffle-deal;position:absolute;left:12%;right:12%}.shuffle-card-a{background:#ffe14a;animation-delay:0s;top:.1rem}.shuffle-card-b{background:var(--coral);animation-delay:.1s;top:.55rem}.shuffle-card-c{background:var(--mint);animation-delay:.2s;top:.95rem}@keyframes shuffle-deal{0%,to{transform:translate(0)rotate(-5deg)}35%{transform:translate(22%)rotate(10deg)translateY(-.4rem)}65%{transform:translate(-16%)rotate(-11deg)translateY(.12rem)}}@keyframes wait-hop{0%,70%,to{transform:translateY(0)rotate(0)}35%{transform:translateY(-.55rem)rotate(-8deg)}}@keyframes wait-blank{0%,to{opacity:.25;letter-spacing:.02em}50%{opacity:1;letter-spacing:.12em}}@keyframes wait-pulse{0%,to{opacity:.45}50%{opacity:.9}}@keyframes board-in{0%{opacity:0;transform:translateY(.65rem)rotate(-2.2deg)}to{opacity:1;transform:rotate(-.6deg)}}@keyframes board-in-win{0%{opacity:0;transform:translateY(.65rem)rotate(-2.2deg)}to{opacity:1;transform:rotate(0)}}.board-tag{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;border:2px solid var(--ink);background:#ffe14a;border-radius:.4rem;margin:0 0 .75rem;padding:.15rem .55rem;font-size:.78rem;font-weight:650;display:inline-block;transform:rotate(-2deg)}.stem{font-family:var(--display);margin:0 0 1rem;font-size:1.45rem;font-weight:550;line-height:1.35}.blank{color:var(--coral);border-bottom:4px dotted var(--coral);padding:0 .1rem .05rem}.answer{color:var(--mint);border-bottom:4px solid var(--mint);padding:0 .1rem .05rem}.your-guess{color:var(--muted);margin:0 0 1rem;font-weight:800}.your-guess em{color:var(--ink);font-style:normal}.submit-error{color:var(--warn)}.recap{border-top:2px dashed var(--ink);margin-top:.25rem;padding-top:.9rem}.recap-label{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;margin:0 0 .35rem;font-size:.85rem;font-weight:650}.recap .recap-label+.recap-label,.top-guesses{margin-top:.9rem}.mood{border:2px solid var(--ink);border-radius:999px;height:.9rem;margin-top:.55rem;display:flex;overflow:hidden}.mood-pos{background:var(--mint)}.mood-neu{background:#c8c2e8}.mood-neg{background:var(--coral)}.mood-legend{color:var(--muted);justify-content:space-between;gap:.5rem;margin:.4rem 0 0;padding:0;font-size:.78rem;font-weight:800;list-style:none;display:flex}.top-guesses{margin:.35rem 0 0;padding:0;list-style:none}.top-guesses li{border-bottom:1px dashed #d8d2ef;justify-content:space-between;gap:.75rem;padding:.35rem 0;font-weight:800;display:flex}.top-n{color:var(--muted);font-variant-numeric:tabular-nums}.board.reveal-win{border-color:var(--mint);background:#f4fff8;position:relative;overflow:hidden;transform:rotate(0)}.win-hero{text-align:center;margin:0 0 1.05rem;padding:.15rem .2rem .35rem;position:relative}.win-kicker{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;border:2px solid var(--ink);background:#ffe14a;border-radius:.4rem;margin:0;padding:.2rem .65rem;font-size:.82rem;font-weight:650;display:inline-block;transform:rotate(-3deg)}.win-title{font-family:var(--display);letter-spacing:-.04em;color:var(--mint);margin:.55rem 0 .4rem;font-size:2.4rem;font-weight:700;line-height:1.02;animation:.55s ease-out win-pop}.win-cheer{max-width:22rem;color:var(--ink);margin:0 auto;font-weight:800}.win-burst{pointer-events:none;position:absolute;inset:0}.win-dot{border:2px solid var(--ink);border-radius:.12rem;width:.58rem;height:.58rem;animation:.85s ease-out both win-burst;position:absolute}@keyframes win-pop{0%{opacity:0;transform:scale(.55)rotate(-8deg)}72%{transform:scale(1.08)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes win-burst{0%{opacity:0;transform:translateY(10px)scale(.2)}35%{opacity:1}to{opacity:.95;transform:translateY(-14px)scale(1)}}@media (prefers-reduced-motion:reduce){.win-title,.win-dot,.wait-tile,.wait-fill,.wait-skel,.board.reveal,.board.reveal-win,.shuffle-card,.carousel-track{transition:none;animation:none}}textarea{resize:vertical;width:100%;min-height:4.75rem;font:inherit;border:3px solid var(--ink);color:var(--ink);background:#fff;border-radius:1rem;padding:.8rem .9rem;font-size:1.05rem;font-weight:700}textarea:disabled{opacity:.7}textarea::placeholder{color:#9a94b8;font-weight:650}.char-count{font-family:var(--display);text-align:right;color:var(--muted);margin:.45rem 0 0;font-size:.9rem;font-weight:650}.char-count.low{color:var(--coral)}.hint{color:var(--muted);margin:.55rem 0 0;font-size:.82rem;font-weight:700}.hint code{border:1.5px solid var(--ink);background:#fff;border-radius:.3rem;padding:.05rem .3rem;font-size:.9em}.actions{gap:.65rem;margin-top:1rem;display:flex}button{font-family:var(--display);border:3px solid var(--ink);cursor:pointer;border-radius:999px;min-height:3rem;padding:.75rem 1rem .7rem;font-size:1.05rem;font-weight:650}.btn-go{background:var(--coral);color:var(--coral-ink);flex:1}.btn-mix{color:var(--ink);background:#fff}.board.reveal .btn-mix{flex:1}button:disabled{opacity:.5;cursor:not-allowed}a.logo{color:inherit;text-decoration:none}.text-link,.foot a,.legal a{color:var(--coral);min-height:0;font-family:inherit;font-weight:800;font-size:inherit;cursor:pointer;text-underline-offset:.15em;background:0 0;border:none;border-radius:0;padding:0;text-decoration:underline}.foot{text-align:center;color:var(--muted);margin:1.5rem 0 0;font-weight:700}.modal-back{z-index:20;background:#1a154073;justify-content:center;align-items:flex-end;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--card);border:3px solid var(--ink);border-radius:1.35rem 1.35rem 1.1rem 1.1rem;width:min(28rem,100%);max-height:min(88svh,40rem);padding:1.2rem 1.15rem 1.3rem;overflow:auto}.modal h2{font-family:var(--display);margin:0 0 .75rem;font-size:1.7rem}.rules{margin:0;padding-left:1.2rem;font-weight:700}.rules li+li{margin-top:.55rem}.modal-note{color:var(--muted);margin:1rem 0 0;font-weight:700}.btn-link{font-family:var(--display);border:3px solid var(--ink);border-radius:999px;flex:1;justify-content:center;align-items:center;min-height:3rem;padding:.75rem 1rem .7rem;font-size:1.05rem;font-weight:650;text-decoration:none;display:flex}.page-wide{max-width:36rem}.legal{background:var(--card);border:3px solid var(--ink);border-radius:1.35rem;margin-top:1.25rem;padding:1.2rem 1.15rem}.legal h2{font-family:var(--display);margin:1.25rem 0 .4rem;font-size:1.25rem}.legal h2:first-child{margin-top:0}.legal p,.legal li{color:var(--ink);font-weight:650}.legal ul{padding-left:1.2rem}.legal-foot{margin:1.5rem 0 0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=420px){.masthead h1{font-size:1.8rem}.actions{flex-direction:column}.actions button,.actions .btn-link{width:100%}}
