:root{--bg:#0b0d10;--panel:#11151b;--panel-2:#161b22;--border:#262d36;--text:#c9d1d9;--muted:#7d8590;--red:#ff4d4f;--red-dim:#3d1416;--amber:#f0b429;--green:#3fb950;--blue:#58a6ff;--mono:"JetBrains Mono", "SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}html{overflow-x:clip}html,body{background:radial-gradient(ellipse 80% 50% at 50% -10%, #ff4d4f29, transparent 70%), repeating-linear-gradient(0deg, #ffffff03 0 1px, transparent 1px 3px), var(--bg);color:var(--text);font-family:var(--mono);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;font-size:14px}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.5}.red{color:var(--red)}.amber{color:var(--amber)}.green{color:var(--green)}.app{max-width:1180px;min-height:100%;margin:0 auto;padding:0 16px 24px}.app.shake-0{animation:.5s ease-out shake-a}.app.shake-1{animation:.5s ease-out shake-b}.topbar{border-bottom:1px solid var(--border);color:var(--muted);align-items:center;gap:10px;padding:12px 0;font-size:13px;display:flex}.topbar .logo{color:var(--text);font-size:18px}.topbar .crumbs{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.topbar b{color:var(--text)}.sev{animation:1.6s ease-in-out infinite pulse-red}.pill{letter-spacing:.04em;white-space:nowrap;border:1px solid;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.pill.red{color:var(--red);background:var(--red-dim)}.pill.amber{color:var(--amber);background:#f0b4291a}.pill.green{color:var(--green);background:#3fb9501a}.hero{text-align:center;padding:28px 0 18px}.hero h1{letter-spacing:-.02em;color:#fff;text-shadow:0 0 24px #ff4d4f8c, 0 0 2px var(--red);margin:0;font-size:clamp(28px,6vw,54px);font-weight:800}.flame{animation:1.2s ease-in-out infinite flicker;display:inline-block}.subtitle{color:var(--amber);margin:8px 0 0;font-size:clamp(14px,2.2vw,18px);font-weight:700}.grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.side{gap:18px;display:grid}@media (width<=900px){.grid{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.panel-head{background:var(--panel-2);border-bottom:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:9px 14px;font-size:12px;display:flex}.panel-head>span:first-child:before{content:"● ● ● ";color:#30363d;letter-spacing:-2px;margin-right:6px}.link{color:var(--blue);background:0 0;border:0;padding:2px 4px;font-size:12px}.link:hover:not(:disabled){text-decoration:underline}.link.red{color:var(--red)}.btn{color:var(--text);background:#21262d;border:1px solid #363b42;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:600}.btn:hover{background:#30363d}.wheel-panel{flex-direction:column;align-items:center;padding-bottom:20px;display:flex}.wheel-panel>.panel-head{align-self:stretch}.wheel-wrap{aspect-ratio:1;width:min(100%,470px);margin:26px auto 8px;position:relative}@media (width>=901px){.wheel-wrap{width:min(100%,470px,max(260px,100dvh - 500px))}}.wheel{will-change:transform;border-radius:50%;width:100%;height:100%;box-shadow:0 0 0 6px #1a1f26,0 0 0 8px #3a2a10,0 0 50px #ff4d4f40,0 20px 50px #0009}.wheel svg{width:100%;height:100%;display:block}.wheel text{font-family:var(--mono);-webkit-user-select:none;user-select:none;font-weight:700}.rim{fill:#0b0d10;stroke:#3a2a10;stroke-width:2px}.hub{fill:#0b0d10;stroke:var(--amber);stroke-width:1.5px}.hub-label{fill:var(--green);font-weight:800}.bulb{fill:#6b5520}.is-spinning .bulb.even{animation:.3s step-end infinite bulb}.is-spinning .bulb.odd{animation:.3s step-end .15s infinite bulb}.seg path{transition:filter .3s}.seg.winner path{animation:.7s ease-in-out infinite alternate winner}.seg.winner text{fill:#fff}.pointer{z-index:2;border-left:16px solid #0000;border-right:16px solid #0000;border-top:34px solid var(--red);filter:drop-shadow(0 0 8px #ff4d4fe6)drop-shadow(0 3px 2px #0009);width:0;height:0;position:absolute;top:-22px;left:50%;transform:translate(-50%)}.is-spinning .pointer{animation:.12s linear infinite wobble}.readout{text-align:center;border:1px dashed var(--border);white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;background:#0b0d10;border-radius:6px;min-width:min(90%,360px);max-width:92%;margin:8px 0 16px;padding:8px 16px;font-size:clamp(16px,3.2vw,22px);font-weight:800;overflow:hidden}.readout .caret{color:var(--green)}.readout.spinning{color:var(--amber)}.readout.done{color:var(--red);border-color:var(--red);box-shadow:0 0 20px #ff4d4f4d}.big-red{letter-spacing:.02em;color:#fff;background:linear-gradient(#ff5a5c,#c4161c);border:1px solid #ff8587;border-radius:12px;width:min(92%,440px);padding:18px 20px;font-size:clamp(16px,3vw,20px);font-weight:800;transition:transform 80ms,box-shadow 80ms;box-shadow:0 6px #7a0c10,0 10px 30px #ff4d4f66,inset 0 1px #ffffff4d}.big-red:hover:not(:disabled){filter:brightness(1.08)}.big-red:active:not(:disabled){transform:translateY(5px);box-shadow:0 1px #7a0c10,0 4px 14px #ff4d4f66}.big-red:disabled{opacity:.75;animation:1s ease-in-out infinite pulse-btn}.telemetry dl{margin:0;padding:12px 14px 4px}.telemetry .row{grid-template-columns:110px 1fr;gap:8px;padding:3px 0;display:grid}.telemetry dt{color:var(--muted)}.telemetry dd{margin:0;font-weight:700}.live{color:var(--red);font-weight:700}.dot{background:var(--red);border-radius:50%;width:7px;height:7px;animation:1s infinite pulse-red;display:inline-block}.spark{width:100%;height:48px;margin-top:6px;display:block}.spark-line{fill:none;stroke:var(--red);stroke-width:1.5px;vector-effect:non-scaling-stroke}.spark-fill{fill:#ff4d4f1f}.spark-deploy{stroke:var(--amber);stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.spark text{fill:var(--amber);font-size:7px;font-family:var(--mono)}.result-panel{min-height:260px}.terminal{color:var(--green);padding:14px;font-size:13px;line-height:1.6}.terminal p{margin:0}.terminal.muted{color:var(--muted)}.log-line{white-space:nowrap;animation:.35s steps(20,end) both type-in;overflow:hidden}.blink{animation:1s step-end infinite blink}.result{text-align:center;padding:16px;animation:.55s cubic-bezier(.2,1.6,.4,1) both slam}.result-banner{color:var(--red);margin:0;font-size:clamp(12px,2.4vw,15px);font-weight:800;animation:1s ease-in-out infinite pulse-red}.culprit{color:#fff;letter-spacing:-.01em;overflow-wrap:anywhere;text-shadow:0 0 18px #ff4d4fcc, 3px 3px 0 var(--red-dim);margin:10px 0 6px;font-size:clamp(30px,7vw,52px);line-height:1.05}.result.nobody .culprit{color:#fff7d6;text-shadow:0 0 22px #f0b429e6}.result.you .culprit{color:var(--amber);text-shadow:0 0 22px #f0b42999}.excuse{color:var(--text);margin:0 0 10px;font-size:16px;font-style:italic}.note{max-width:420px;color:var(--amber);background:#f0b42914;border:1px solid #f0b42959;border-radius:6px;margin:0 auto 12px;padding:8px 12px;font-size:13px}.commit{text-align:left;border:1px solid var(--border);border-left:3px solid var(--green);color:var(--text);font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;background:#0b0d10;border-radius:6px;margin:12px 0 0;padding:12px 14px;font-size:12.5px;line-height:1.55}.footer{text-align:center;color:var(--muted);padding:28px 0 8px;font-size:12px}.celebration{pointer-events:none;z-index:50;position:fixed;inset:0;overflow:hidden}.flash{background:radial-gradient(circle,#ff4d4f73,#0000 70%);animation:.9s ease-out both flash;position:absolute;inset:0}.flash.nobody,.flash.you{background:radial-gradient(circle,#f0b42973,#0000 70%)}.bit{will-change:transform;animation-timing-function:cubic-bezier(.3,.6,.5,1);animation-fill-mode:both;position:absolute;top:0}.bit.confetti{border-radius:2px;width:8px;height:13px}.bit.emoji{font-size:28px}.bit.fall{animation-name:fall}.bit.rise{animation-name:rise;top:auto;bottom:0}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000000a6;place-items:center;padding:16px;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}.modal{flex-direction:column;width:min(100%,440px);max-height:90vh;animation:.3s ease-out slam;display:flex}.suspect-list{margin:0;padding:8px 14px;list-style:none;overflow-y:auto}.suspect-list li{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;gap:8px;padding:5px 0;display:flex}.suspect-list li>span{overflow-wrap:anywhere}.add-form{gap:8px;padding:10px 14px 4px;display:flex}.add-form input{min-width:0;font:inherit;color:var(--text);border:1px solid var(--border);background:#0b0d10;border-radius:6px;flex:1;padding:8px 10px}.add-form input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #58a6ff33}.form-error{color:var(--amber);margin:4px 14px 0;font-size:12px}.modal-foot{justify-content:space-between;align-items:center;padding:12px 14px;display:flex}@keyframes flicker{0%,to{transform:scale(1)rotate(-3deg)}50%{transform:scale(1.12)rotate(4deg)}}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.45}}@keyframes pulse-btn{0%,to{filter:brightness()}50%{filter:brightness(1.25)}}@keyframes blink{50%{opacity:0}}@keyframes bulb{0%{fill:#ffd76a;filter:drop-shadow(0 0 2px #ffd76a)}50%{fill:#6b5520}}@keyframes winner{0%{filter:brightness()}to{filter:brightness(2.2)saturate(1.4)}}@keyframes wobble{0%,to{transform:translate(-50%)rotate(-5deg)}50%{transform:translate(-50%)rotate(5deg)}}@keyframes type-in{0%{max-width:0}to{max-width:100%}}@keyframes slam{0%{opacity:0;transform:scale(1.6)}to{opacity:1;transform:scale(1)}}@keyframes flash{0%{opacity:1}to{opacity:0}}@keyframes fade{0%{opacity:0}}@keyframes fall{0%{opacity:1;transform:translateY(-10vh)rotate(0)}85%{opacity:1}to{transform:translate3d(var(--drift), 105vh, 0) rotate(var(--spin));opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(10vh)scale(.6)}20%{opacity:1}to{transform:translate3d(calc(var(--drift) / 3), -70vh, 0) scale(1.4);opacity:0}}@keyframes shake-a{10%,50%,90%{transform:translate(-6px,2px)}30%,70%{transform:translate(6px,-2px)}}@keyframes shake-b{10%,50%,90%{transform:translate(6px,-2px)}30%,70%{transform:translate(-6px,2px)}}@media (prefers-reduced-motion:reduce){.app.shake-0,.app.shake-1,.bit,.flame,.is-spinning .pointer{animation:none!important}.bit{display:none}}
