: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-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{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}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%}}
