:root{--bg:#07080a;--bg-rgb:7,8,10;--ink:#eceef2;--ink-rgb:236,238,242;--mute:#9aa0ac;--dim:#7d8391;--faint:rgba(236,238,242,.14);--accent:#ff6b3d;--accent-rgb:255,107,61;--red:#ff4458;--panel:rgba(10,11,14,.9);--mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;color-scheme:dark}
html[data-theme=paper]{--bg:#f3f0e8;--bg-rgb:243,240,232;--ink:#17191e;--ink-rgb:23,25,30;--mute:#4d525c;--dim:#80848c;--faint:rgba(23,25,30,.16);--accent:#ea5525;--accent-rgb:234,85,37;--red:#cc1d36;--panel:rgba(250,248,243,.92);color-scheme:light}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font:400 14px/1.5 var(--mono);-webkit-tap-highlight-color:transparent;touch-action:none;user-select:none;-webkit-user-select:none}
canvas{position:fixed;inset:0;display:block}
.screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));overflow:auto;touch-action:pan-y}
.screen[hidden]{display:none}
.screen.dim{background:rgba(var(--bg-rgb),.55)}
#play{display:block;pointer-events:none;padding:0}
#play[hidden]{display:none}
.card{background:var(--panel);border:1px solid var(--faint);border-radius:6px;padding:26px 26px 22px;max-width:560px;width:100%;box-shadow:0 30px 80px rgba(0,0,0,.25);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);max-height:100%;overflow:auto}
.card.small{max-width:360px;text-align:center}
.title-card{text-align:center;background:transparent;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;margin-top:-12vh}
.kicker{color:var(--dim);letter-spacing:.24em;text-transform:uppercase;font-size:11px;margin:0}
.logo{font:800 clamp(64px,16vw,132px)/1 Heebo,sans-serif;letter-spacing:-.04em;margin:6px 0 2px;position:relative;display:inline-block}
.logo::after{content:"";position:absolute;left:4%;right:4%;bottom:-6px;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}
.dev{font:600 clamp(16px,3.6vw,22px)/1.2 var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--accent);margin:18px 0 22px}
.dev.big{font-size:20px;margin:8px 0 14px}
h2{font:700 22px/1.2 Heebo,sans-serif;margin:0 0 14px;letter-spacing:-.01em}
h3{font:500 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin:20px 0 8px}
p{margin:8px 0}.note{color:var(--dim);font-size:12px}
a{color:var(--ink)}
button{font:500 13px/1 var(--mono);letter-spacing:.06em;color:var(--ink);background:rgba(var(--bg-rgb),.6);border:1px solid var(--faint);border-radius:3px;padding:0 16px;min-height:44px;min-width:44px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
button:hover,button:focus-visible{border-color:rgba(var(--ink-rgb),.5);outline:none}
button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink);min-width:160px}
button.primary:hover,button.primary:focus-visible{background:var(--accent);border-color:var(--accent)}
button[aria-pressed=true]{color:var(--accent);border-color:rgba(var(--accent-rgb),.6)}
button.wide{width:100%}
.row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:12px}
.col{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.diff{display:inline-flex;border:1px solid var(--faint);border-radius:4px;padding:3px;gap:3px;flex-wrap:wrap;justify-content:center}
.diff button{border-color:transparent;background:transparent;min-width:72px;padding:0 10px}
.diff button[aria-pressed=true]{border-color:rgba(var(--accent-rgb),.6);background:rgba(var(--accent-rgb),.08)}
.hint{color:var(--dim);font-size:11px;margin-top:22px}
.slider{display:grid;grid-template-columns:70px 1fr 34px;gap:10px;align-items:center;min-height:44px}
.slider output{text-align:right;color:var(--dim);font-variant-numeric:tabular-nums}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;margin:0;cursor:pointer;touch-action:pan-x}
input[type=range]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,var(--accent) var(--p,50%),var(--faint) var(--p,50%))}
input[type=range]::-moz-range-track{height:2px;background:var(--faint)}
input[type=range]::-moz-range-progress{height:2px;background:var(--accent)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-8px;border-radius:50%;background:var(--bg);border:1.5px solid var(--accent)}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--bg);border:1.5px solid var(--accent)}
.controls{width:100%;border-collapse:collapse;font-size:12px}
.controls td{padding:6px 0;border-bottom:1px solid var(--faint);vertical-align:top}
.controls td:last-child{text-align:right;color:var(--mute);padding-left:12px}
.lvl-tag{position:fixed;left:50%;top:22%;transform:translateX(-50%);font:600 13px var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--ink);opacity:0;white-space:nowrap}
.lvl-tag.on{animation:tag 2.4s ease}
@keyframes tag{0%{opacity:0;letter-spacing:.6em}20%,70%{opacity:1;letter-spacing:.3em}100%{opacity:0}}
.pause-btn{position:fixed;pointer-events:auto;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);background:rgba(var(--bg-rgb),.5);padding:0}
.pause-btn svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.6;fill:none}
/* touch controls */
#touch{display:none}
html.touch-ui #touch{display:block}
html.touch-ui .keys-only{display:none}
.tc-stick{position:fixed;left:0;bottom:0;width:50%;height:62%;pointer-events:auto;touch-action:none}
.tc-base,.tc-knob{position:fixed;left:0;top:0;border-radius:50%;pointer-events:none;opacity:0;transition:opacity .15s}
.tc-base{width:100px;height:100px;border:1px solid var(--faint)}
.tc-knob{width:44px;height:44px;border:1.5px solid var(--ink);background:rgba(var(--ink-rgb),.08)}
#touch.stick-on .tc-base,#touch.stick-on .tc-knob{opacity:1}
#touch:not(.stick-on) .tc-base{opacity:.5;transform:translate(36px,calc(100dvh - 160px - env(safe-area-inset-bottom)))}
.tc-btns{position:fixed;right:calc(14px + env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));width:190px;height:170px;pointer-events:none}
.tc-b{position:absolute;pointer-events:auto;border-radius:50%;width:70px;height:70px;font:600 18px var(--mono);background:rgba(var(--bg-rgb),.35);border:1.5px solid var(--faint);touch-action:none;padding:0}
.tc-b.on{background:rgba(var(--accent-rgb),.25);border-color:var(--accent)}
.tc-b.j{right:0;bottom:0;width:78px;height:78px}
.tc-b.w{right:12px;bottom:98px;width:54px;height:54px;font-size:18px}
.tc-b.a{right:96px;bottom:6px;width:80px;height:80px;font-size:22px}
@media (max-height:520px){.title-card{margin-top:0}.logo{font-size:64px}.dev{margin:8px 0 12px}.hint{display:none}}
@media (prefers-reduced-motion:reduce){.lvl-tag.on{animation:none;opacity:1}}

/* v4.1 boss tester */
.bt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:12px 0}
.bt-grid button{min-height:44px}
.bt-bar{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 46px);transform:translateX(-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;max-width:96vw}
.bt-bar[hidden]{display:none}
.bt-info{font:600 12px/1.35 'JetBrains Mono',monospace;background:rgba(0,0,0,.55);color:#fff;padding:5px 10px;border-radius:8px;text-align:center;white-space:pre}
.bt-btns{display:flex;gap:6px;pointer-events:auto}
.bt-btns button{min-width:44px;min-height:40px;padding:4px 10px;font:700 14px 'JetBrains Mono',monospace;border-radius:10px;background:rgba(0,0,0,.55);color:#fff;border:1px solid rgba(255,255,255,.3);touch-action:manipulation}
.bt-btns button[aria-pressed=true]{background:#ff6b3d;border-color:#ff6b3d}
.tc-b.t{right:104px;bottom:98px;width:54px;height:54px;font-size:20px}

/* STIKY 2 */
.tc-b.h{right:186px;bottom:14px;width:64px;height:64px;font-size:22px}
.tc-b.g{right:192px;bottom:94px;width:54px;height:54px;font-size:20px}
.tc-b.d{right:12px;bottom:164px;width:54px;height:50px;font-size:22px}
.tc-b.s{right:104px;bottom:164px;width:54px;height:50px;font-size:20px}
.logo .two{color:#ff2a3c;text-shadow:0 0 18px rgba(255,42,60,.8)}
.logo{letter-spacing:.08em;text-shadow:0 0 22px rgba(255,255,255,.35)}

/* STIKY 2: upgrade tree + master */
button.master { border-color: #ff2a3c; color: #ff6b78; letter-spacing: 2px; }
.card.upg { max-width: 640px; }
.upg-stats { font-family: "JetBrains Mono", monospace; letter-spacing: 1px; }
.upg-tree { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; margin: 12px 0; }
.upg-tree button { text-align: left; font-family: "JetBrains Mono", monospace; font-size: 12px; padding: 8px 10px; line-height: 1.35; }
.upg-tree button small { display: block; opacity: .65; font-size: 10px; }
.upg-tree button.own { border-color: #ff2a3c; background: rgba(255,42,60,.14); font-weight: 700; }
.upg-tree button.lock { opacity: .4; }

/* v2.2 art: logo image + ability icons (fallback = text) */
.logo-art{display:none;width:min(560px,82vw);height:auto;filter:drop-shadow(0 0 18px rgba(255,42,60,.35))}.logo.art .logo-art{display:block}.logo.art .txt{display:none}.logo.art::after{display:none}.logo.art{text-shadow:none}
#upgTree button .ab-ico{width:34px;height:34px;object-fit:contain;display:block;margin:0 auto 4px}#upgTree button.lock .ab-ico{filter:grayscale(1) brightness(.6)}

/* v2.3.1 keyboard/gamepad menu focus */
button.nav-focus,input.nav-focus,button:focus-visible{outline:3px solid var(--accent,#ff5a3c)!important;outline-offset:3px;box-shadow:0 0 0 6px rgba(255,90,60,.25),0 0 18px rgba(255,90,60,.45)!important;border-color:var(--accent,#ff5a3c)!important}
input[type=range].nav-focus{outline-offset:6px}

/* v2.4: co-op screen + music pulse */
.coop-keys{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0;text-align:left}
.ck{border:1px solid rgba(128,128,128,.35);border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.9}
.ck h3{margin:0 0 4px;font-size:14px;letter-spacing:1px}.ck.p1 h3{color:#9fe8ff}.ck.p2 h3{color:#ffd23f}.ck p{margin:2px 0}.ck .dim{opacity:.6;font-size:11px}
.ck kbd{display:inline-block;min-width:18px;padding:0 5px;margin:0 1px;border:1px solid currentColor;border-bottom-width:2px;border-radius:4px;font:700 11px "JetBrains Mono",monospace;text-align:center}
button.coop{border-color:#ffd23f}
@media (max-width:560px){.coop-keys{grid-template-columns:1fr}}
.logo{filter:drop-shadow(0 0 calc(var(--beat,0) * 26px) rgba(255,80,80,.55));transform:scale(calc(1 + var(--beat,0) * 0.03));transition:transform .08s linear}
#coop .card{max-width:680px;width:92vw}.ck.p1 h3{color:#2bb8d8}.ck.p2 h3{color:#d9a400}

/* v2.5 compact settings */
.set2 { max-width: 460px; }
.set2 .srow { display: grid; grid-template-columns: 28px 1fr auto 140px 30px; align-items: center; gap: 8px; padding: 7px 4px; border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent); }
.set2 .srow > .diff { grid-column: 3 / 6; justify-self: end; }
.set2 .srow > .wide2 { grid-column: 3 / 4; }
.set2 .si { font-size: 18px; text-align: center; }
.set2 .sl { font-weight: 600; }
.set2 .tog { min-width: 56px; padding: 4px 10px; }
.set2 .tog[aria-pressed="false"] { opacity: .55; }
.set2 .tog.ph { visibility: hidden; }
.set2 input[type=range] { width: 100%; }
.set2 input[type=range]:disabled { opacity: .35; }
.set2 output { font-size: 12px; opacity: .7; text-align: right; }
.set2 .sdet { margin-top: 10px; }
.set2 .sdet summary { cursor: pointer; font-weight: 600; padding: 6px 4px; }
.set2 .sdet .controls { font-size: 12px; }
.tallyRow { display: inline-block; margin: 6px 0; font-size: .92em; }
.tally { display: inline-block; margin: 0 6px; color: #f2b705; }
@media (max-width: 520px) { .set2 .srow { grid-template-columns: 24px 1fr auto 90px 26px; } .set2 .srow > .diff { grid-column: 1 / 6; justify-self: stretch; } }
.set2 .diff { display: flex; flex-wrap: nowrap; gap: 4px; } .set2 .diff button { padding: 4px 8px; font-size: 12px; min-width: 0; }

/* v2.6 credits: photo + support */
.cr-me { display: flex; gap: 14px; align-items: center; margin: 14px 0; }
.cr-me img { width: 120px; height: auto; border-radius: 10px; border: 1px solid var(--faint); flex: none; }
.cr-me p { margin: 4px 0; font-size: 13px; }
.cr-he { font-family: Heebo, var(--mono); }
.cr-sup { border: 1px solid var(--faint); border-radius: 8px; padding: 10px 12px; margin: 10px 0; }
.cr-sup p { margin: 0 0 8px; font-size: 13px; }
.cr-amts { flex-wrap: wrap; gap: 6px; }
.cr-amts .btn { display: inline-block; padding: 6px 12px; border: 1px solid var(--faint); border-radius: 4px; color: inherit; text-decoration: none; }
.cr-amts .btn.primary { background: var(--accent, #e8562a); color: #fff; border-color: transparent; }
.cr-sb { display: flex; gap: 10px; align-items: center; margin-top: 10px; color: inherit; text-decoration: none; font-size: 13px; }
.cr-sb img { border-radius: 8px; }
@media (max-width: 520px) { .cr-me { flex-direction: column; text-align: center; } }

/* v2.8 compact mobile cluster: jump unchanged; a tight arc of 3 small semi-transparent buttons around it; swipe on the right = weapon swap */
.tc-swipe{position:fixed;right:0;bottom:0;width:50%;height:62%;pointer-events:auto;touch-action:none}
.tc-btns{width:150px;height:150px}
.tc-b{opacity:.55;background:rgba(var(--bg-rgb),.22)}
.tc-b.on{opacity:.9}
.tc-b.j{right:0;bottom:0;width:78px;height:78px}
.tc-b.a{right:86px;bottom:4px;width:52px;height:52px;font-size:19px}
.tc-b.d{right:84px;bottom:64px;width:42px;height:42px;font-size:18px}
.tc-b.s{right:16px;bottom:88px;width:42px;height:42px;font-size:17px}
.tc-b.h,.tc-b.g,.tc-b.t,.tc-b.w{display:none}
.tc-hint{position:fixed;right:calc(18px + env(safe-area-inset-right));bottom:calc(150px + env(safe-area-inset-bottom));font:600 10px var(--mono);opacity:.35;pointer-events:none}
@media (max-height:400px){.tc-btns{transform:scale(.9);transform-origin:100% 100%}}

/* v2.8 simpler settings: five big rows + Controls + tiny More */
.set3 .sl{font-size:16px;line-height:1.15}.set3 .sl small{display:block;font-size:11px;font-weight:400;opacity:.6;text-align:left}
.set3 h2 small,.set3 summary small{font-size:.7em;font-weight:400;opacity:.6;margin-inline-start:6px}
.set3 .srow{padding:9px 4px}
.set3 .more summary{font-size:12px;opacity:.7}
.set3 .more .srow{border-bottom:0}
/* ---- v2.9 mobile: zero-latency touch, forgiving hit areas, big menu targets ---- */
html.touch-ui,html.touch-ui body{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
html.touch-ui .tc-b::after{content:"";position:absolute;inset:-18px;border-radius:50%}
html.touch-ui .tc-b{touch-action:none}
@media (pointer:coarse){
  .screen button,.screen .tog{min-height:48px;min-width:48px;font-size:max(1em,15px)}
  .screen .row{gap:10px}
}
#rotateHint{display:none}
@media (orientation:portrait) and (pointer:coarse){
  body[data-screen="play"] #rotateHint{display:flex;position:fixed;left:50%;top:max(8px,env(safe-area-inset-top));transform:translateX(-50%);z-index:60;pointer-events:none;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;font:600 12px var(--mono);color:var(--fg,#eee);background:rgba(0,0,0,.55);animation:rotHint 4s 1 forwards}
}
@keyframes rotHint{0%,80%{opacity:1}100%{opacity:0}}

/* v2.4 compact mobile HUD: one small menu button top-right, pause card shows the details */
html.chud .pause-btn{left:auto;right:calc(8px + env(safe-area-inset-right));transform:none;width:34px;min-width:0;height:30px;min-height:0;padding:0;opacity:.85}
.p-info{display:none;font:600 12px/1.6 "JetBrains Mono",monospace;text-align:left;margin:0 0 12px;padding:8px 10px;border:1px solid rgba(var(--ink-rgb),.2);border-radius:6px}
html.chud .p-info{display:block}
.p-info b{color:var(--accent)}
.toast{position:fixed;left:50%;top:30%;transform:translate(-50%,-50%) scale(.9);z-index:50;pointer-events:none;font:800 22px "JetBrains Mono",monospace;color:#fff;background:rgba(10,12,18,.85);border:2px solid var(--accent,#ff5a3c);padding:10px 18px;border-radius:8px;opacity:0;transition:opacity .2s,transform .2s;text-align:center}
.toast small{display:block;font-size:11px;font-weight:600;opacity:.8;margin-top:4px}
.toast.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
html.chud .overlay .card.small{max-height:94vh;overflow:auto}

/* ---------------- v3.0 ---------------- */
/* page never drags/scrolls/bounces on touch devices (iOS Safari): fixed body, no overscroll, no selection/callout */
html.nodrag,html.nodrag body{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}
html.nodrag .screen .card{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
html.nodrag #play,html.nodrag #play *,html.nodrag canvas{touch-action:none}
html.nodrag input,html.nodrag textarea{-webkit-user-select:text;user-select:text}
/* simple menu */
.title-col{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:6px}
.title-col>button{min-width:230px}
.title-col .big{font-size:1.25em;padding:.8em 2.4em}
.dev-only{display:none!important}
html.devmode .dev-only{display:flex!important}
#stkMpBtn{display:none!important}
.ad-slot{display:block;margin:16px auto 0;max-width:340px;padding:8px 12px;border:1px dashed var(--faint);border-radius:10px;font:600 11px var(--mono);letter-spacing:.06em;color:var(--mute);text-decoration:none;opacity:.8}
.ad-slot:hover,.ad-slot:focus{color:var(--ink);border-color:var(--accent);opacity:1}
.cr-ads{margin:14px 0;padding:12px;border:1px solid var(--faint);border-radius:12px}
.cr-ads h3{margin:0 0 6px}
.cr-ads .ad-addr{margin:6px 0 0;direction:ltr}
.seg{display:flex;gap:6px}
.seg button[aria-pressed="true"]{border-color:var(--accent);color:var(--ink);background:rgba(var(--accent-rgb),.18)}
.touch-only{display:none!important}
html.touch-ui .touch-only{display:flex!important}
html[dir="rtl"] .controls td:last-child{direction:ltr;text-align:right}
/* minimal in-game UI: no debug strip unless dev boss tester */
.bt-bar[hidden]{display:none!important}
/* mobile buttons: right side = attack only; jump button optional (Settings) */
#touch .tc-b{display:none}
#touch .tc-b.a{display:block;right:22px;bottom:18px;width:86px;height:86px;font-size:26px;opacity:.6}
html.jbtn #touch .tc-b.j{display:block;right:120px;bottom:12px;width:66px;height:66px;font-size:20px;opacity:.55}
/* tutorial card */
.tut{position:fixed;left:50%;top:calc(54px + env(safe-area-inset-top));transform:translateX(-50%);width:min(520px,calc(100vw - 120px));padding:10px 14px;border:1px solid var(--accent);border-radius:14px;background:rgba(var(--bg-rgb),.86);font:600 13px var(--mono);color:var(--ink);z-index:6;pointer-events:none;text-align:center}
.tut button{pointer-events:auto}
.tut-top{display:flex;align-items:center;gap:10px;justify-content:space-between;font-size:11px;color:var(--mute)}
.tut-top b{color:var(--accent);letter-spacing:.1em}
.tut-skip{font-size:11px;padding:4px 10px}
.tut-txt{margin:8px 0 6px;font-size:15px;line-height:1.35}
.tut-dots{display:flex;gap:6px;justify-content:center}
.tut-dots i{width:8px;height:8px;border-radius:50%;background:var(--faint)}
.tut-dots i.cur{background:var(--accent)}
.tut-dots i.ok{background:#3fdc7a}
.tut-go{margin-top:8px}
/* intro movie */
.intro{position:fixed;inset:0;z-index:50;background:#000;display:grid;place-items:center;transition:background-color .6s ease}.intro.out{background:transparent;pointer-events:none}.intro.out video{opacity:0}
.intro video{transition:opacity .6s ease}
.intro-logo{position:fixed;left:0;top:0;opacity:0;pointer-events:none;transform-origin:0 0;will-change:transform,opacity;filter:drop-shadow(0 0 18px rgba(255,42,60,.35))}
.intro-sound{position:absolute;left:calc(18px + env(safe-area-inset-left));bottom:calc(18px + env(safe-area-inset-bottom));font:700 14px var(--mono);padding:10px 16px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;border:1px solid rgba(255,255,255,.4)}
.intro-tap{position:absolute;font:800 22px var(--mono);padding:16px 30px;border-radius:999px;background:#ff2a3c;color:#fff;border:0;box-shadow:0 0 30px rgba(255,42,60,.6)}
.intro-sound[hidden],.intro-tap[hidden]{display:none}
.title-logo-wait .logo-art{opacity:0}
.intro[hidden]{display:none}
.intro video{width:100%;height:100%;object-fit:contain;background:#000}
.intro-skip{position:absolute;right:calc(18px + env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));font:700 14px var(--mono);padding:10px 18px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;border:1px solid rgba(255,255,255,.4)}
/* v3.0: short landscape phones — everything fits without scrolling */
@media (max-height:520px){
  .title-card{margin-top:0;padding-top:4px}
  .title-card .kicker{display:none}
  .logo-art{width:min(300px,44vw)}
  .title-card .dev{margin:2px 0 8px;font-size:12px}
  .title-col{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:0}
  .title-col>button{min-width:0}
  .title-col .big{font-size:1.05em;padding:.6em 1.8em}
  .title-col .row{margin:0}
  .ad-slot{margin-top:8px;padding:5px 10px}
  #stkRow{margin-top:6px!important}
}
@media (max-height:390px){.ad-slot{display:none}}

/* v3.4 title difficulty */
.title-diff{display:flex;flex-wrap:nowrap;justify-content:center;margin:0 auto 6px;width:100%;max-width:420px}
.title-diff button{flex:1;min-width:0;padding:4px 6px;display:flex;flex-direction:column;align-items:center;line-height:1.1;font-size:13px}
.diff .mx{font-size:11px;opacity:.75;color:rgb(var(--accent-rgb))}
.diff button[aria-pressed=true] .mx{opacity:1}
/* v3.4.1: logo fits its card (art was 560px wide inside a 508px content box -> clipped + horizontal scrollbar) */
.title-card .logo{display:block;max-width:100%;margin-left:auto;margin-right:auto;letter-spacing:0}
.title-card .logo-art{max-width:100%;height:auto;margin:0 auto;object-fit:contain}
.title-card{overflow-x:hidden}
