:root { --ink:#0b0b0b; --paper:#f2efe7; --gold:#f3b61f; --muted:#9d9a90; --line:#2a2926; }
* { box-sizing:border-box; }
html { min-height:100%; background:var(--ink); -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { min-height:100%; margin:0; background:var(--ink); color:var(--paper); font-family:Arial, Helvetica, sans-serif; -webkit-font-smoothing:antialiased; overscroll-behavior-y:none; }
button, a { font:inherit; touch-action:manipulation; }
button { -webkit-tap-highlight-color:transparent; -webkit-user-select:none; user-select:none; }
.game-shell { min-height:100svh; min-height:100dvh; width:min(100%, 740px); margin:0 auto; overflow:hidden; padding-bottom:env(safe-area-inset-bottom); background:radial-gradient(circle at 80% -10%, #29210d 0, transparent 35%), var(--ink); position:relative; }
.game-shell:before { content:""; position:absolute; inset:0; opacity:.12; pointer-events:none; background-image:repeating-linear-gradient(0deg, transparent 0 3px, #fff 4px); mix-blend-mode:overlay; }
.topbar { min-height:calc(82px + env(safe-area-inset-top)); padding:calc(18px + env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 18px max(20px, env(safe-area-inset-left)); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; position:relative; z-index:2; }
.brand { display:flex; color:inherit; text-decoration:none; align-items:center; gap:10px; }
.brand>span { width:54px; height:54px; display:grid; place-items:center; flex:0 0 auto; }
.brand>span img { width:100%; height:100%; object-fit:contain; display:block; }
.brand b { font-family:"Arial Narrow", Impact, sans-serif; font-size:17px; line-height:.86; letter-spacing:.5px; }
.top-actions { display:flex; align-items:center; gap:20px; color:var(--gold); }
.sound { font-size:9px; transform:skewY(-20deg); letter-spacing:1px; }
.header-status { display:flex; align-items:center; gap:13px; }
.exit-game { min-width:48px; min-height:44px; border:1px solid #514a3c; background:#13120f; color:var(--paper); padding:8px 10px; font-size:9px; font-weight:900; letter-spacing:1px; cursor:pointer; }
.exit-game:active { border-color:var(--gold); color:var(--gold); }
.hero { padding:58px max(22px, env(safe-area-inset-right)) 42px max(22px, env(safe-area-inset-left)); position:relative; min-height:610px; }
.record-art { position:absolute; right:-104px; top:18px; width:285px; height:285px; border-radius:50%; opacity:.82; display:grid; place-items:center; animation:record-spin 8s linear infinite; transform-origin:center; will-change:transform; filter:drop-shadow(0 14px 22px #000); }
.record-art img { width:100%; height:100%; object-fit:contain; display:block; }
@keyframes record-spin { to { transform:rotate(360deg); } }
.date-stamp { display:flex; gap:10px; align-items:center; font-size:11px; letter-spacing:1.5px; font-weight:900; position:relative; z-index:1; }
.date-stamp span { background:var(--gold); color:var(--ink); padding:7px 8px; }
.kicker { color:var(--gold); font-size:12px; font-weight:900; letter-spacing:3px; margin:70px 0 12px; position:relative; z-index:2; }
.hero h1 { font-family:"Arial Narrow", Impact, sans-serif; font-size:clamp(54px, 14vw, 88px); letter-spacing:-2px; line-height:.82; margin:0; max-width:600px; position:relative; z-index:1; }
.hero h1 em { display:block; color:var(--gold); font-style:normal; }
.hero-copy { color:#c4c0b6; font-size:16px; line-height:1.55; max-width:440px; margin:28px 0; }
.level-picker { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:0 0 14px; position:relative; z-index:2; }
.level-picker button { min-height:82px; border:1px solid #3b3933; background:#11110f; color:var(--paper); padding:12px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; text-align:left; cursor:pointer; position:relative; }
.level-picker button:hover,.level-picker button:focus-visible { border-color:#8a6a1b; }
.level-picker button.selected { border-color:var(--gold); background:#231d0d; box-shadow:inset 0 -3px var(--gold); }
.level-picker b { font:19px Impact,"Arial Narrow",sans-serif; letter-spacing:.7px; }
.level-picker button.selected b { color:var(--gold); }
.level-picker span { color:var(--muted); font-size:7px; font-weight:900; letter-spacing:1px; margin-top:4px; }
.level-picker i { position:absolute; right:9px; top:9px; color:var(--gold); font-size:7px; font-style:normal; font-weight:900; letter-spacing:.7px; }
.primary { width:100%; min-height:58px; border:0; background:var(--gold); color:var(--ink); font-weight:1000; font-size:13px; letter-spacing:1.5px; padding:0 19px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; box-shadow:5px 5px 0 #5b4309; transition:transform .12s, box-shadow .12s; }
.primary:disabled { opacity:.45; cursor:not-allowed; box-shadow:none; }
.primary:active { transform:translate(3px,3px); box-shadow:2px 2px 0 #5b4309; }
.daily-stats { margin-top:36px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:17px 0; }
.daily-stats div { display:flex; flex-direction:column; gap:4px; padding-left:12px; border-left:1px solid var(--line); }
.daily-stats div:first-child { border:0; padding-left:0; }
.daily-stats strong { font-family:Impact,"Arial Narrow",sans-serif; font-size:19px; }
.daily-stats span { font-size:8px; color:var(--muted); letter-spacing:1px; font-weight:800; }
.mode-strip { background:#11110f; border-top:1px solid var(--line); padding:28px max(22px, env(safe-area-inset-right)) calc(42px + env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left)); position:relative; }
.mode-strip>span { color:var(--muted); font-size:9px; font-weight:900; letter-spacing:2px; }
.mode-card { width:100%; display:flex; align-items:center; gap:14px; padding:20px 0; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--paper); text-align:left; }
.mode-card.active { cursor:pointer; }
.mode-card.active:hover h3,.mode-card.active:focus-visible h3 { color:var(--gold); }
.mode-card>b { color:var(--gold); font-family:Impact,sans-serif; font-size:22px; }
.mode-strip h3 { margin:0 0 4px; font-family:Impact,"Arial Narrow",sans-serif; letter-spacing:.7px; }
.mode-strip p { margin:0; font-size:12px; color:var(--muted); }
.mode-card>i { margin-left:auto; font-size:8px; font-style:normal; color:#716e65; border:1px solid #34332f; padding:5px 7px; }
.mode-card.active>i { color:var(--gold); border-color:#715714; }
.topbar.compact { min-height:calc(70px + env(safe-area-inset-top)); }
.score-mini { text-align:right; display:flex; flex-direction:column; gap:2px; }
.score-mini span { color:var(--muted); font-size:8px; letter-spacing:1.5px; font-weight:800; }
.score-mini b { font-family:Impact,sans-serif; color:var(--gold); font-size:20px; }
.round-meta { padding:18px max(20px, env(safe-area-inset-right)) 10px max(20px, env(safe-area-inset-left)); display:flex; justify-content:space-between; align-items:end; }
.round-meta>span { color:var(--gold); font-size:9px; font-weight:900; letter-spacing:2px; }
.round-meta>b { font-family:Impact,sans-serif; font-size:22px; }
.round-meta i { color:#5f5d57; font-size:13px; font-style:normal; }
.timer { padding:0 max(20px, env(safe-area-inset-right)) 20px max(20px, env(safe-area-inset-left)); }
.timer-meta { display:flex; justify-content:space-between; font-size:8px; color:var(--muted); letter-spacing:1.2px; font-weight:800; margin-bottom:7px; }
.timer-meta strong { color:var(--paper); font-size:12px; }
.beat-track { display:flex; align-items:end; height:20px; gap:3px; }
.beat-track i { flex:1; height:7px; background:#292824; transition:.25s; }
.beat-track i:nth-child(3n) { height:15px; }
.beat-track i:nth-child(5n) { height:20px; }
.beat-track i.active { background:var(--gold); }
.question-card { margin:0 max(14px, env(safe-area-inset-right)) 0 max(14px, env(safe-area-inset-left)); background:#151512; border:1px solid #302f2a; padding:23px 16px 18px; box-shadow:0 12px 40px #000; }
.tags { display:flex; flex-wrap:wrap; gap:6px; }
.tags span { color:#aaa69c; border:1px solid #3b3933; padding:5px 7px; font-size:8px; font-weight:900; letter-spacing:.8px; text-transform:uppercase; }
.tags .bonus { color:var(--gold); border-color:#816011; }
.question-card h2 { font-family:"Arial Narrow",Impact,sans-serif; font-size:clamp(27px,8vw,40px); line-height:1.03; letter-spacing:.2px; margin:23px 0 25px; }
.answers { display:grid; gap:9px; }
.answers button { min-height:58px; border:1px solid #35332d; background:#0e0e0c; color:var(--paper); display:grid; grid-template-columns:38px 1fr 24px; align-items:center; text-align:left; padding:8px; cursor:pointer; transition:.15s; }
.answers button:not(:disabled):hover { border-color:var(--gold); transform:translateX(3px); }
.answers button>b { width:34px; height:34px; display:grid; place-items:center; border:1px solid #46443d; color:var(--gold); font-size:12px; }
.answers button>span { padding:0 10px; font-size:14px; font-weight:700; }
.answers button>i { font-style:normal; font-size:20px; font-weight:1000; }
.answers button.correct { border-color:#d5a627; background:#2a230f; }
.answers button.correct>i { color:var(--gold); }
.answers button.wrong { border-color:#923a31; background:#251312; }
.answers button.wrong>i { color:#d95f50; }
.answers button.dim { opacity:.38; }
.streak { margin:18px 20px; display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:10px; color:var(--muted); font-size:8px; font-weight:900; letter-spacing:1.5px; }
.streak b { color:var(--paper); font-family:Impact,sans-serif; font-size:18px; }
.streak-pips { display:flex; gap:4px; }
.streak-pips i { height:4px; flex:1; background:#292824; }
.streak-pips i.lit { background:var(--gold); }
.reveal { margin:14px max(14px, env(safe-area-inset-right)) 14px max(14px, env(safe-area-inset-left)); padding:18px; border-top:3px solid var(--gold); background:#19170f; animation:reveal .22s ease-out; }
@keyframes reveal { from{opacity:0; transform:translateY(12px)} to{opacity:1; transform:none} }
.reveal.miss { border-color:#a5483f; background:#1d1211; }
.reveal-title { display:flex; justify-content:space-between; align-items:center; }
.reveal-title b { font-family:Impact,"Arial Narrow",sans-serif; font-size:25px; color:var(--gold); }
.reveal.miss .reveal-title b { color:#e06a5d; }
.reveal-title span { font-size:10px; font-weight:900; letter-spacing:1px; }
.reveal p { color:#c7c3b9; font-size:13px; line-height:1.5; margin:13px 0 18px; }
.reveal p strong { color:var(--paper); }
.game-footer { display:flex; justify-content:space-between; color:#55534d; font-size:7px; letter-spacing:1px; padding:12px max(20px, env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); }
.results-card { padding:48px max(22px, env(safe-area-inset-right)) calc(48px + env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left)); text-align:center; position:relative; }
.results-card .eyebrow { display:inline-block; color:var(--ink); background:var(--gold); padding:7px 10px; font-size:9px; font-weight:900; letter-spacing:2px; }
.results-card h2 { font-family:Impact,"Arial Narrow",sans-serif; font-size:clamp(42px,12vw,66px); line-height:.9; margin:25px auto; max-width:550px; }
.result-score { display:flex; flex-direction:column; gap:5px; }
.result-score strong { font-family:Impact,sans-serif; font-size:46px; color:var(--gold); }
.result-score span { color:var(--muted); font-size:8px; letter-spacing:2px; font-weight:900; }
.share-grid { display:flex; justify-content:center; gap:7px; margin:30px 0; }
.share-grid i { width:48px; height:48px; display:grid; place-items:center; font-style:normal; font-size:22px; font-weight:1000; background:#292824; }
.share-grid i.correct { background:var(--gold); color:var(--ink); }
.result-copy { color:var(--muted); font-size:13px; margin:0 0 24px; }
.results-card .primary { max-width:420px; margin:0 auto; }
.text-button { min-height:44px; border:0; color:var(--muted); background:transparent; font-size:10px; text-transform:uppercase; letter-spacing:1px; text-decoration:underline; margin-top:22px; padding:10px 14px; cursor:pointer; }
.solo-shell { background:radial-gradient(circle at 80% 10%, #382908 0, transparent 34%), var(--ink); }
.solo-intro { padding:62px max(22px, env(safe-area-inset-right)) calc(44px + env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left)); position:relative; }
.solo-intro .kicker { margin:0 0 12px; }
.solo-intro h1 { font-family:"Arial Narrow",Impact,sans-serif; font-size:clamp(66px,18vw,96px); line-height:.82; letter-spacing:-2px; margin:0; position:relative; }
.solo-intro h1 em { color:var(--gold); font-style:normal; }
.solo-intro>p:not(.kicker):not(.solo-best) { color:#c4c0b6; line-height:1.55; max-width:450px; position:relative; }
.solo-number { position:absolute; right:-10px; top:6px; font:180px/.8 Impact,sans-serif; color:transparent; -webkit-text-stroke:1px #39342a; opacity:.8; }
.tier-ladder { margin:35px 0 30px; border-top:1px solid var(--line); }
.tier-ladder>div { display:grid; grid-template-columns:42px 1fr; gap:14px; align-items:center; border-bottom:1px solid var(--line); padding:15px 0; }
.tier-ladder b { width:34px; height:34px; display:grid; place-items:center; border:1px solid #4a4437; color:var(--gold); font-family:Impact,sans-serif; }
.tier-ladder span { font:19px Impact,"Arial Narrow",sans-serif; letter-spacing:.7px; }
.tier-ladder small { display:block; font:8px Arial,sans-serif; color:var(--muted); letter-spacing:1px; margin-top:4px; }
.solo-best { display:flex; justify-content:space-between; color:var(--muted); font-size:8px; letter-spacing:1.5px; margin-top:26px; font-weight:900; }
.solo-best b { color:var(--paper); }
.solo-progress { padding:18px 20px 2px; }
.tier-track { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
.tier-track span { border-top:3px solid #2b2a26; padding-top:7px; color:#57554f; font-size:7px; font-weight:900; letter-spacing:1px; }
.tier-track span.active { border-color:var(--gold); color:var(--gold); }
.tier-legend { --gold:#ffb000; background:radial-gradient(circle at 50% 0, #3d2405 0, transparent 32%), var(--ink); }
.solo-results .share-grid { flex-wrap:wrap; }
.solo-summary { display:grid; grid-template-columns:repeat(3,1fr); margin:28px 0; border-block:1px solid var(--line); padding:18px 0; }
.solo-summary>div { display:flex; flex-direction:column; gap:5px; border-left:1px solid var(--line); }
.solo-summary>div:first-child { border:0; }
.solo-summary b { font:26px Impact,sans-serif; }
.solo-summary span { color:var(--muted); font-size:7px; letter-spacing:1px; }
.tier-results { margin:0 0 28px; }
.tier-results>div { display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding:11px 3px; font-size:11px; font-weight:900; letter-spacing:1px; }
.tier-results span { color:var(--muted); }
.tier-results b { color:var(--gold); }
.app-links { display:flex; justify-content:center; gap:20px; margin-top:24px; position:relative; z-index:2; }
.app-links a { color:#77746b; font-size:8px; font-weight:900; letter-spacing:1px; text-transform:uppercase; text-underline-offset:3px; }
.legal-shell { min-height:100svh; width:min(100%,760px); margin:0 auto; padding:calc(28px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); background:radial-gradient(circle at 80% -10%,#29210d 0,transparent 34%),var(--ink); }
.legal-brand { display:flex; align-items:center; gap:10px; color:var(--paper); text-decoration:none; width:max-content; }
.legal-brand img { width:58px; height:58px; object-fit:contain; }
.legal-brand b { font:18px/.86 Impact,"Arial Narrow",sans-serif; letter-spacing:.5px; }
.legal-card { margin-top:36px; padding:clamp(24px,6vw,50px); border:1px solid #34312a; background:#131310; box-shadow:0 18px 50px #000; }
.legal-kicker { margin:0 0 12px!important; color:var(--gold)!important; font-size:10px!important; font-weight:900; letter-spacing:2px; }
.legal-card h1 { margin:0 0 10px; font:clamp(42px,12vw,72px)/.9 Impact,"Arial Narrow",sans-serif; color:var(--paper); }
.legal-date { margin:0 0 38px!important; color:#77746b!important; font-size:11px!important; text-transform:uppercase; letter-spacing:1px; }
.legal-lead { font-size:17px!important; color:#d3cfc5!important; }
.legal-card h2 { margin:34px 0 8px; padding-top:20px; border-top:1px solid #2d2b26; font:20px Impact,"Arial Narrow",sans-serif; letter-spacing:.7px; color:var(--gold); }
.legal-card h3 { margin:24px 0 6px; font-size:13px; letter-spacing:.7px; color:var(--paper); }
.legal-card p { margin:0; color:#aaa69c; font-size:14px; line-height:1.65; }
.legal-card a,.legal-footer a { color:var(--gold); }
.support-cta { min-height:58px; margin:30px 0 4px; padding:0 18px; display:flex; justify-content:space-between; align-items:center; background:var(--gold); color:var(--ink)!important; text-decoration:none; font-size:12px; font-weight:1000; letter-spacing:1.5px; box-shadow:5px 5px 0 #5b4309; }
.legal-footer { display:flex; justify-content:center; gap:24px; padding:28px 0 0; }
.legal-footer a { font-size:10px; font-weight:900; letter-spacing:1px; text-transform:uppercase; }
@media (min-width:741px) { body{padding:24px 0;background:#050505}.game-shell{min-height:calc(100vh - 48px);border:1px solid #24231f}.hero{padding-inline:42px}.topbar{padding-inline:42px}.mode-strip{padding-inline:42px}.question-card{margin-inline:36px;padding:30px}.timer,.round-meta{padding-inline:42px}.reveal{margin-inline:36px}.game-footer{padding-inline:42px} }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after{animation:none!important;transition:none!important} }
