:root{--jd-bg: #0a1020;--jd-surface: #272536;--jd-deep: #08111c;--jd-line: #3a3752;--jd-ink: #cbc9d0;--jd-sub: #7e7c8c;--jd-accent: #38d3f0;--jd-accent2: #f2c14e;--jd-ok: #4fbf83;--jd-info: #4d9df6;--jd-font-display: "Pretendard Variable", Pretendard, system-ui, sans-serif;--jd-font-body: "Pretendard Variable", Pretendard, system-ui, sans-serif;--jd-font-mono: ui-monospace, SFMono-Regular, "Cascadia Mono", Menlo, monospace;--card-bg: var(--jd-surface);--card-border: 1px solid var(--jd-line);--card-radius: 14px;--card-shadow: 0 8px 24px rgba(0, 0, 0, .35)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;background:var(--jd-bg);color:var(--jd-ink);font-family:var(--jd-font-body);-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation}#app{position:relative;height:100dvh;display:flex;flex-direction:column}canvas{display:block;flex:1;min-height:0;width:100%;touch-action:none}.hud{display:flex;align-items:center;gap:14px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--jd-deep);border-top:var(--card-border);font-size:13px}.hud__stage{font-family:var(--jd-font-display);font-weight:700;letter-spacing:-.01em;white-space:nowrap}.hud__blurb{color:var(--jd-sub);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.hud__num{font-family:var(--jd-font-mono);font-variant-numeric:tabular-nums;color:var(--jd-accent);font-weight:600}.hud__combo{font-family:var(--jd-font-mono);font-variant-numeric:tabular-nums;color:var(--jd-accent2);font-weight:700;min-width:5.5em;text-align:right}.veil{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(180deg,#0a1020db,#08111cf7);backdrop-filter:blur(3px);overflow-y:auto}.card{background:var(--card-bg);border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:26px 24px;width:min(560px,100%)}h1{font-family:var(--jd-font-display);font-size:clamp(28px,7vw,40px);margin:0 0 6px;letter-spacing:-.03em;line-height:1.1}h2{font-family:var(--jd-font-display);font-size:20px;margin:0 0 10px;letter-spacing:-.02em}.lede{color:var(--jd-accent2);font-size:15px;margin:0 0 18px;line-height:1.6}p{color:var(--jd-sub);font-size:13px;line-height:1.7;margin:0 0 12px}.btn{appearance:none;font:inherit;font-weight:700;font-family:var(--jd-font-display);cursor:pointer;border-radius:10px;padding:13px 18px;border:var(--card-border);background:var(--jd-deep);color:var(--jd-ink);transition:border-color .12s ease,color .12s ease}.btn:hover{border-color:var(--jd-accent);color:var(--jd-accent)}.btn--go{background:var(--jd-accent);border-color:var(--jd-accent);color:#06202a;width:100%;font-size:17px;padding:16px}.btn--go:hover{color:#06202a;filter:brightness(1.08)}.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.row .btn{flex:1;min-width:120px}.stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:14px 0 4px}.stages .btn{text-align:left;padding:12px 14px}.stages small{display:block;font-family:var(--jd-font-body);font-weight:400;color:var(--jd-sub);font-size:11px;margin-top:3px}.stages .btn[aria-current=true]{border-color:var(--jd-accent)}.verdict{font-family:var(--jd-font-display);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--jd-sub);margin-bottom:4px}.verdict--ok{color:var(--jd-ok)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:16px 0}.stat{background:var(--jd-deep);border:var(--card-border);border-radius:10px;padding:12px}.stat b{display:block;font-family:var(--jd-font-mono);font-variant-numeric:tabular-nums;font-size:24px;color:var(--jd-accent);letter-spacing:-.02em}.stat span{display:block;color:var(--jd-sub);font-size:11px;margin-top:3px}.bars{display:flex;flex-direction:column;gap:6px;margin-top:4px}.bar{display:grid;grid-template-columns:62px 1fr 34px;align-items:center;gap:8px;font-size:12px}.bar i{height:9px;border-radius:5px;display:block;min-width:2px}.bar em{font-family:var(--jd-font-mono);font-style:normal;color:var(--jd-sub);text-align:right}.note{font-size:11px;color:var(--jd-sub);border-top:var(--card-border);padding-top:12px;margin:16px 0 0;line-height:1.7}.kbd{font-family:var(--jd-font-mono);background:var(--jd-deep);border:var(--card-border);border-radius:5px;padding:1px 6px;color:var(--jd-ink);font-size:11px}
