:root{--bg:#0f1115;--panel:#171a21;--panel2:#20242e;--text:#eceef3;--muted:#8b92a3;--line:#2a2f3a;--green:#34c77b;--green-bg:#1b4a33;--decoy:#8b92a3;--decoy-bg:#2a2e38;--bomb:#ef5a5f;--bomb-bg:#5a1f22;--accent:#7c6cff;--warn:#e8b14a}@media (prefers-color-scheme:light){:root{--bg:#f4f5f8;--panel:#fff;--panel2:#eceef3;--text:#15171c;--muted:#6a7080;--line:#dde1e8;--green:#1f9d5b;--green-bg:#cdefdc;--decoy:#8a90a0;--decoy-bg:#e4e6ec;--bomb:#d4343a;--bomb-bg:#f8d3d5;--accent:#5b4be0;--warn:#c98a10}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.wrap{max-width:520px;margin:0 auto;padding:14px 16px 40px}button{font:inherit;color:inherit;background:var(--panel2);border:1px solid var(--line);cursor:pointer;border-radius:12px;padding:9px 14px}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button:disabled{opacity:.45;cursor:default}.icon{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;padding:0;font-size:18px;display:inline-flex}header{align-items:center;gap:8px;display:flex}h1{letter-spacing:.2px;margin:0 auto 0 0;font-size:24px}.nav{align-items:center;gap:8px;margin:14px 0 12px;display:flex}.nav .name{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.nav .name small{color:var(--muted);font-size:12px;font-weight:400;display:block}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.banner{background:var(--panel);border:1px solid var(--bomb);color:var(--text);border-radius:12px;margin:0 0 12px;padding:10px 12px;font-size:14px}.banner button{margin-left:8px}details.dev{margin-top:12px}details.dev summary{color:var(--muted);cursor:pointer;font-size:13px}.meter-wrap{align-items:center;gap:10px;margin-bottom:12px;display:flex}.meter-wrap .lbl{color:var(--muted);white-space:nowrap;font-size:14px}.meter{background:var(--panel2);border:1px solid var(--line);border-radius:7px;flex:1;height:14px;overflow:hidden}.meter i{background:var(--warn);border-radius:7px;width:0;height:100%;transition:width .7s cubic-bezier(.2,.8,.2,1),background .4s;display:block}.meter-wrap .val{text-align:right;font-variant-numeric:tabular-nums;min-width:48px;font-weight:700;position:relative}.float{color:var(--bomb);pointer-events:none;font-size:13px;font-weight:700;animation:1.4s forwards up;position:absolute;top:-18px;right:0}@keyframes up{0%{opacity:0;transform:translateY(6px)}20%{opacity:1}to{opacity:0;transform:translateY(-12px)}}.grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.tile{background:var(--panel);border:2px solid var(--line);text-align:center;word-break:break-word;border-radius:14px;justify-content:center;align-items:center;min-height:68px;padding:6px 4px;font-size:15px;font-weight:600;transition:background .3s,border-color .3s,opacity .3s,transform .3s;display:flex;position:relative}.tile.t{border-color:var(--green)}.tile.b{border-color:var(--bomb)}.tile .tag{font-size:12px;position:absolute;top:4px;right:6px}.tile.rev.t{background:var(--green-bg)}.tile.rev.d{background:var(--decoy-bg);color:var(--muted);opacity:.8;text-decoration:line-through}.tile.rev.b{background:var(--bomb-bg)}.tile.pop{animation:.55s pop}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}.grid.thinking .tile:not(.rev){animation:1s ease-in-out infinite think}@keyframes think{0%,16%{opacity:1}22%,30%{opacity:.5}36%,to{opacity:1}}.grid.boom{animation:.5s shake}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.inrow{gap:8px;margin-top:14px;display:flex}.inrow input{min-width:0;font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:12px;flex:1;padding:12px 14px}.inrow input:focus{border-color:var(--accent);outline:none}.hint{color:var(--muted);min-height:19px;margin:8px 2px 0;font-size:13px}.hint.err{color:var(--bomb)}.hint.ok{color:var(--green)}.hist{margin-top:14px}.hrow{border-top:1px solid var(--line);align-items:baseline;gap:8px;padding:8px 2px;font-size:15px;display:flex}.hrow .c{font-weight:600}.hrow .r{flex:1}.hrow .r small{color:var(--muted)}.hrow .h{color:var(--bomb);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.good{color:var(--green)}.bad{color:var(--muted)}.end{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:16px;margin-top:14px;padding:18px 16px}.end .big{font-size:22px;font-weight:700}.end .stars{letter-spacing:4px;margin:6px 0 2px;font-size:28px}.end .sub{color:var(--muted);font-size:14px}.end .btns{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.end details{text-align:left;margin-top:14px;font-size:14px}.end summary{cursor:pointer;color:var(--muted)}.end .row{margin:6px 0}@media (width<=400px){.tile{min-height:60px;font-size:13px}}.overlay{z-index:10;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.overlay.on{display:flex}.modal{background:var(--panel);border:1px solid var(--line);border-radius:18px;width:100%;max-width:420px;max-height:90vh;padding:20px;overflow:auto}.modal h2{margin:0 0 10px;font-size:20px}.modal p,.modal li{color:var(--muted);font-size:15px}.modal ul{margin:8px 0;padding-left:20px}.modal li{margin:6px 0}.modal b{color:var(--text)}.modal label{color:var(--muted);margin:12px 0 4px;font-size:13px;display:block}.modal input,.modal select{width:100%;font:inherit;color:inherit;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:9px 11px}.modal .btns{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.modal .note{color:var(--muted);margin-top:10px;font-size:13px}.steps{margin:12px 0;padding:0;list-style:none}.steps li{color:var(--muted);padding:6px 0}.steps li.on{color:var(--text)}.steps li.done{color:var(--green)}.spin{border:2px solid var(--line);border-top-color:var(--accent);vertical-align:-2px;border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.mini{vertical-align:-2px;border:2px solid var(--line);border-radius:4px;width:14px;height:14px;margin-right:4px;display:inline-block}.mini.t{border-color:var(--green)}.mini.b{border-color:var(--bomb)}.help-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.help-head h2{margin:0}.help-progress{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.help-title{margin:14px 0 6px;font-size:19px;line-height:1.25}.modal .help-text{color:var(--muted);margin:0;font-size:16px;line-height:1.5}.modal .help-text b{color:var(--text)}.modal .help-rules{margin:10px 0 0;font-size:13px}.dots{justify-content:center;gap:7px;margin:16px 0 0;display:flex}.dots i{background:var(--line);border-radius:50%;width:8px;height:8px;transition:background .2s,transform .2s}.dots i.seen{background:var(--muted)}.dots i.on{background:var(--accent);transform:scale(1.3)}.help-btns{align-items:center}.help-btns .primary{flex:1}button.link{color:var(--muted);background:0 0;border:0;padding:9px 6px;font-size:14px;text-decoration:underline}.demo{--cycle:8s;background:var(--bg);border:1px solid var(--line);border-radius:14px;margin-top:12px;padding:12px;position:relative}.demo .mini-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.demo .tile{word-break:normal;overflow-wrap:normal;border-width:2px;min-height:42px;padding:4px 2px;font-size:13px}.demo-view .tile{min-height:40px;padding:4px 1px;font-size:11.5px}.demo .tile .tag{font-size:11px;top:2px;right:4px}.demo .tile.unk{color:var(--muted);border-style:dashed}.demo .tick{opacity:0}.demo-cap{color:var(--muted);text-align:center;margin-bottom:6px;font-size:12px}.demo-say{text-align:center;min-height:20px;margin-top:10px;font-size:14px}.demo-say .warn{color:var(--bomb)}.demo-input{background:var(--panel);border:1px solid var(--accent);border-radius:10px;align-items:center;margin-top:10px;padding:8px 10px;font-size:15px;display:flex}.demo .typed{white-space:nowrap;width:4ch;display:inline-block;overflow:hidden}.demo .caret{background:var(--accent);width:2px;height:1.1em;margin-left:1px}.demo-meter{align-items:center;gap:8px;margin-bottom:10px;display:flex}.demo-meter .meter{flex:1;height:12px}.demo-meter-val{text-align:right;min-width:42px;font-size:14px;font-weight:700}.demo-view{grid-template-columns:1fr 1fr;gap:10px;display:grid}.demo-legend{color:var(--muted);grid-column:1/-1;justify-content:center;gap:14px;margin-top:2px;font-size:13px;display:flex}.dot{border:2px solid var(--line);vertical-align:-2px;border-radius:4px;width:12px;height:12px;display:inline-block}.dot.t{border-color:var(--green)}.dot.b{border-color:var(--bomb)}.dot.d{border-color:var(--line)}.demo-view .unk{animation:2.4s ease-in-out infinite shimmer}.demo-view .unk:nth-child(2n){animation-delay:.6s}@keyframes shimmer{50%{opacity:.45}}.demo-clue .typed,.demo-heat .typed{animation:type var(--cycle) steps(4, end) infinite}@keyframes type{0%{width:0}14%{width:4ch}94%{width:4ch}to{width:0}}.demo-clue .idle,.demo-heat .idle{animation:think var(--cycle) ease-in-out infinite}.demo .pick{background:var(--green-bg);animation:pick var(--cycle) ease infinite}.demo .pick .tick{animation:tick var(--cycle) ease infinite}@keyframes pick{0%,32%{background:var(--panel);transform:scale(1)}36%{background:var(--green-bg);transform:scale(1.14)}42%,92%{background:var(--green-bg);transform:scale(1)}to{background:var(--panel)}}@keyframes tick{0%,34%{opacity:0}40%,92%{opacity:1}to{opacity:0}}.demo-clue .demo-say,.demo-heat .demo-say{animation:sayin var(--cycle) ease infinite}@keyframes sayin{0%,38%{opacity:0;transform:translateY(4px)}46%,92%{opacity:1;transform:none}to{opacity:0}}.demo-heat .meter i{background:var(--warn);width:40%;animation:heat var(--cycle) ease infinite}@keyframes heat{0%,36%{width:0}52%,92%{width:40%}to{width:0}}.demo-heat .v-end{animation:sayin var(--cycle) ease infinite}.demo .hot{animation:hot var(--cycle) ease infinite}@keyframes hot{0%,34%{box-shadow:none}44%,60%,76%{box-shadow:0 0 0 4px color-mix(in srgb, var(--bomb) 35%, transparent)}52%,68%,92%{box-shadow:0 0 0 1px color-mix(in srgb, var(--bomb) 35%, transparent)}to{box-shadow:none}}.demo-boom .meter i{background:var(--bomb);width:100%;animation:boomheat var(--cycle) ease infinite}@keyframes boomheat{0%,8%{background:var(--warn);width:0}16%,30%{background:var(--warn);width:25%}38%,52%{background:var(--warn);width:50%}64%,94%{background:var(--bomb);width:100%}to{background:var(--warn);width:0}}.demo-boom .v-boom{animation:sayin var(--cycle) ease infinite}.demo .miss.m1{animation:miss1 var(--cycle) ease infinite}.demo .miss.m2{animation:miss2 var(--cycle) ease infinite}.demo .miss{color:var(--muted);background:var(--decoy-bg);text-decoration:line-through}@keyframes miss1{0%,12%{color:var(--text);background:var(--panel);text-decoration:none}16%,94%{color:var(--muted);background:var(--decoy-bg);text-decoration:line-through}to{background:var(--panel);text-decoration:none}}@keyframes miss2{0%,34%{color:var(--text);background:var(--panel);text-decoration:none}38%,94%{color:var(--muted);background:var(--decoy-bg);text-decoration:line-through}to{background:var(--panel);text-decoration:none}}.boom-grid{animation:shake8 var(--cycle) ease infinite}@keyframes shake8{0%,62%{transform:none}66%{transform:translate(-5px)}70%{transform:translate(5px)}74%{transform:translate(-3px)}78%,to{transform:none}}.boom-say{height:20px;position:relative}.boom-say span{opacity:0;position:absolute;inset:0}.boom-say .s3{opacity:1;color:var(--bomb);font-weight:700}.boom-say .s1{animation:s1 var(--cycle) ease infinite}.boom-say .s2{animation:s2 var(--cycle) ease infinite}.boom-say .s3{animation:s3 var(--cycle) ease infinite}@keyframes s1{0%,14%{opacity:0}18%,32%{opacity:1}36%,to{opacity:0}}@keyframes s2{0%,36%{opacity:0}40%,54%{opacity:1}58%,to{opacity:0}}@keyframes s3{0%,62%{opacity:0}68%,94%{opacity:1}to{opacity:0}}.demo-goal{gap:10px;padding:14px 12px;display:grid}.goal-row{grid-template-columns:52px 1fr 92px;align-items:center;gap:10px;display:grid}.goal-stars{color:var(--warn);letter-spacing:1px;white-space:nowrap;font-size:16px}.goal-bar{background:var(--panel2);border:1px solid var(--line);border-radius:6px;height:12px;overflow:hidden}.goal-bar i{transform-origin:0;border-radius:6px;height:100%;animation:1.1s cubic-bezier(.2,.8,.2,1) both grow;display:block}.goal-bar .g0{background:var(--green);animation-delay:.1s}.goal-bar .g1{background:var(--warn);animation-delay:.35s}.goal-bar .g2{background:var(--bomb);animation-delay:.6s}@keyframes grow{0%{transform:scaleX(0)}}.goal-label{color:var(--muted);font-size:13px}@media (prefers-reduced-motion:reduce){.demo *,.demo :before{animation:none!important}.demo .tick{opacity:1}.boom-say span{opacity:0}.boom-say .s3{opacity:1}}
