@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/fonts/archivo-latin-ext.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/fonts/archivo-latin.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --bg:#f1f3f8;--panel:#ffffff;--panel2:#f5f7fb;--line:#d6dbe7;--text:#131a30;--muted:#566079;
  --accent:#2743c9;--accentText:#ffffff;
  --low:#1c8a5a;--mod:#a87f06;--elev:#c9621a;--high:#c5302b;--blue:#2f73d6;--grey:#9aa3b3;
  --sqL:#dfe4ec;--sqD:#7587a6;--hl:rgba(240,196,60,.6);--played:#e59a12;--best:#2f73d6;
  --wide:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f1322;--panel:#171c30;--panel2:#1d2339;--line:#2c3454;--text:#e8ebf5;--muted:#99a3bd;
  --accent:#8497ff;--accentText:#0b1024;
  --low:#3fb983;--mod:#d9b23c;--elev:#ea8a45;--high:#ef625c;--blue:#5b97f0;--grey:#5d6782;
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.5 var(--wide);font-stretch:100%}
a{color:var(--accent)}
h1,h2,h3,p{margin:0}
h1{font-size:clamp(2rem,6.2vw,3.6rem);line-height:1.02;font-weight:800;font-stretch:122%;letter-spacing:-.025em;max-width:16ch}
h2{font-size:1.5rem;line-height:1.15;font-weight:750;font-stretch:115%;letter-spacing:-.01em}
h3{font-size:1.02rem;font-weight:700}
.muted{color:var(--muted)}
.small{font-size:.86rem}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.devBanner{background:var(--mod);color:#1a1400;font-size:.85rem;padding:6px 16px;text-align:center}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:1080px;margin:0 auto;padding:14px 16px}
.brand{font-weight:800;font-stretch:120%;font-size:1.1rem;letter-spacing:-.01em;color:var(--text);text-decoration:none}
.bar nav{display:flex;align-items:center;gap:4px 16px;flex-wrap:wrap;justify-content:flex-end}
.bar nav a{color:var(--muted);text-decoration:none;font-size:.93rem}
.bar nav a:hover{color:var(--text)}
@media (max-width:520px){.bar nav a{display:none}.bar{gap:8px}.bar nav{gap:6px;flex-wrap:nowrap}.brand{font-size:1rem}.bar .navBtn{min-height:38px;padding:6px 9px;font-size:.84rem;white-space:nowrap}.wideOnly{display:none}}
@media (max-width:350px){.bar{padding-left:10px;padding-right:10px}.brand{font-size:.9rem}}

main{max-width:1080px;margin:0 auto;padding:8px 16px 40px;display:flex;flex-direction:column;gap:22px}
.hero{padding:26px 0 2px}
.lead{margin-top:14px;font-size:1.1rem;color:var(--muted);max-width:56ch}
body.viewing .hero{display:none}
body.viewing #results{order:-1}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px}
.scan{border-color:var(--text);border-width:2px;border-radius:12px;display:flex;flex-direction:column;gap:12px}
label{display:block;font-size:.86rem;color:var(--muted);margin-bottom:5px}
.scan>label{font-size:1rem;color:var(--text);font-weight:700;margin-bottom:-4px}
textarea,input[type=number],input[type=text],input[type=email],input[type=password],select{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:inherit}
textarea{font:14px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical;min-height:84px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.field{flex:1 1 130px}
.actions{align-items:center}
.usage{font-size:.9rem;margin-left:auto}
@media (max-width:520px){.usage{margin-left:0;flex-basis:100%}}

.btn{font:inherit;font-weight:600;border-radius:8px;border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:10px 16px;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accentText)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.quiet{background:none}
.btn.small{min-height:36px;padding:6px 12px;font-size:.88rem}
.btn.wide{width:100%}
.btn:disabled{opacity:.5;cursor:default}
.fileBtn{margin:0;font-size:1rem;color:var(--text);position:relative}
.fileBtn input{position:absolute;opacity:0;width:1px;height:1px}
.link{font:inherit;background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline}

.error{color:var(--high);font-size:.93rem}
.limit{border:1px solid var(--elev);border-radius:8px;padding:12px 14px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.notice{background:var(--panel);border:1px solid var(--low);border-left-width:5px;border-radius:8px;padding:10px 14px}
.prog{height:8px;background:var(--panel2);border-radius:99px;overflow:hidden;border:1px solid var(--line)}
.prog i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}
#progText{margin-top:8px;font-size:.9rem}

#results{display:flex;flex-direction:column;gap:14px}
.exampleNote{font-size:.93rem;border-left:5px solid var(--accent);padding:6px 12px;background:var(--panel)}
.gameHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.gameHead h2{overflow-wrap:anywhere}
.gameActions{display:flex;gap:8px}
.players{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:760px){.players{grid-template-columns:1fr 1fr}}
.player{padding:0;overflow:hidden}
.pTop{padding:16px 18px 14px}
.phead{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.phead h3{overflow-wrap:anywhere}
.chip{width:18px;height:18px;border-radius:4px;border:1px solid var(--muted);flex:none}
.cw{background:#f6f6f6}.cb{background:#14171c}
.scoreRow{display:flex;align-items:flex-end;gap:14px}
.scoreNum{font-size:4rem;font-weight:800;font-stretch:118%;line-height:.86;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.scoreNum span{font-size:1.6rem;font-weight:700;margin-left:2px;letter-spacing:0}
.scoreMeta{padding-bottom:2px}
.scoreMeta .lbl{font-size:.86rem;color:var(--muted)}
.bandName{font-weight:750;font-size:1.15rem}
.band-low{color:var(--low)}.band-moderate{color:var(--mod)}.band-elevated{color:var(--elev)}.band-high{color:var(--high)}.band-none{color:var(--muted)}
.meter{position:relative;display:flex;height:8px;margin:16px 0 14px}
.meter i{display:block;height:100%;opacity:.5}
.meter .m1{width:30%;background:var(--low)}.meter .m2{width:20%;background:var(--mod)}.meter .m3{width:20%;background:var(--elev)}.meter .m4{width:30%;background:var(--high)}
.meter b{position:absolute;top:-5px;width:4px;height:18px;margin-left:-2px;background:var(--text)}
.verdict{font-size:.95rem;max-width:62ch}
.stats{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid var(--line)}
.stat{padding:10px 18px;border-bottom:1px solid var(--line)}
.stat:nth-child(odd){border-right:1px solid var(--line)}
.stat:nth-last-child(-n+2){border-bottom:0}
.stat dt{font-size:.82rem;color:var(--muted)}
.stat dd{margin:1px 0 0;font-size:1.3rem;font-weight:700;font-variant-numeric:tabular-nums}
.stat dd small{display:block;font-size:.76rem;font-weight:400;color:var(--muted)}

.panel>h3+p{margin:4px 0 12px}
.tlScroll{overflow-x:auto;padding-bottom:6px}
.tlInner{min-width:100%;display:inline-block}
.tlRow{display:flex;align-items:flex-end;gap:8px}
.tlRow+.tlRow{margin-top:10px}
.tlName{flex:none;width:44px;font-size:.78rem;color:var(--muted);padding-bottom:2px}
.tlBars{flex:1;display:flex;gap:2px;height:72px;align-items:stretch;border-bottom:1px solid var(--line)}
.bar2{flex:1 0 7px;min-width:7px;max-width:22px;min-height:0;padding:0;border:0;background:none;border-radius:0;display:flex;align-items:flex-end;cursor:pointer}
.bar2 i{display:block;width:100%;border-radius:2px 2px 0 0;background:currentColor}
.bar2.on{background:color-mix(in srgb,var(--text) 16%,transparent);box-shadow:0 3px 0 var(--text)}
.cat-common{color:var(--low)}.cat-plausible{color:var(--mod)}.cat-uncommon{color:var(--elev)}.cat-rare{color:var(--high)}.cat-norating{color:var(--blue)}.cat-unscored{color:var(--grey)}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:.8rem;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;background:currentColor;margin-right:5px;vertical-align:-1px}

.review{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:760px){.review{grid-template-columns:minmax(0,400px) 1fr}}
.board{position:relative;display:grid;grid-template-columns:repeat(8,1fr);width:100%;max-width:400px;aspect-ratio:1;border-radius:4px;overflow:hidden;margin:0 auto;container-type:inline-size}
.sq{position:relative;display:flex;align-items:center;justify-content:center}
.sq.lt{background:var(--sqL)}.sq.dk{background:var(--sqD)}
.sq.hl::after{content:"";position:absolute;inset:0;background:var(--hl)}
.pc{position:relative;z-index:1;font-size:9.6cqw;line-height:1;font-family:"Noto Sans Symbols 2","Segoe UI Symbol","Apple Symbols","DejaVu Sans",sans-serif}
.pw{color:#fff;text-shadow:0 0 1px #000,0 0 1px #000,1px 1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000}
.pb{color:#111;text-shadow:0 0 1px rgba(255,255,255,.5)}
.sq em{position:absolute;font:600 2.6cqw/1 system-ui,sans-serif;font-style:normal;color:rgba(0,0,0,.55);z-index:1}
.sq .rk{top:2px;left:3px}.sq .fl{bottom:2px;right:3px}
.arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.arrows line{stroke-width:.16;stroke-linecap:round}
.aPlayed line{stroke:var(--played);opacity:.92}.aPlayed polygon{fill:var(--played)}
.aBest line{stroke:var(--best);opacity:.88}.aBest polygon{fill:var(--best)}
.key{display:flex;gap:14px;justify-content:center;font-size:.8rem;color:var(--muted);margin-top:8px}
.key i{display:inline-block;width:14px;height:4px;border-radius:2px;margin-right:5px;vertical-align:middle}
.kPlayed{background:var(--played)}.kBest{background:var(--best)}
.navBtns{display:flex;gap:8px;justify-content:center;margin-top:10px}
.navBtns .btn{flex:1;max-width:140px;padding:10px 8px}
#moveTitle{font-size:1.12rem;font-weight:700}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 12px}
.tag{font-size:.82rem;padding:3px 9px;border-radius:6px;border:1px solid var(--line);background:var(--panel2);color:var(--text)}
.tag.tBest{border-color:var(--accent);color:var(--accent)}
.tag[class*="cat-"]{border-color:currentColor}
.lines{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.lines li{display:flex;gap:10px;align-items:baseline;padding:8px 12px;font-variant-numeric:tabular-nums}
.lines li+li{border-top:1px solid var(--line)}
.lines li span{color:var(--muted);width:1.4em}
.lines li b{flex:1;font-weight:600}
.lines li em{font-style:normal;color:var(--muted)}
.lines li small{color:var(--played);font-size:.78rem;font-weight:600}
.lines li.played{background:color-mix(in srgb,var(--played) 13%,transparent)}
.moveList{max-height:190px;overflow-y:auto;margin-top:14px;padding:8px;border:1px solid var(--line);border-radius:8px;line-height:2}
.pair{white-space:nowrap;display:inline-block}
.mn{color:var(--muted);font-size:.82rem;margin:0 2px 0 8px;font-variant-numeric:tabular-nums}
.mv{font:inherit;font-size:.92rem;color:var(--text);padding:2px 7px;border:0;background:none;border-radius:6px;cursor:pointer}
.mv i{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:5px}
.mv.on{background:var(--accent);color:var(--accentText)}
details{font-size:.92rem;color:var(--muted)}
details summary{cursor:pointer;color:var(--text);font-weight:700;padding:2px 0}
details ul{padding-left:20px;margin:10px 0 0;max-width:78ch}
details li+li{margin-top:6px}
.disclaimer{font-size:.9rem;color:var(--muted);max-width:78ch}

.linked{display:flex;flex-direction:column;gap:12px}
.linkedHead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.linked h2{font-size:1.15rem}
.linkedBtns{display:flex;gap:8px}
.linked>.btn{align-self:flex-start}
#linkedForm{display:flex;flex-direction:column;gap:12px}
.siteTabs{display:flex;gap:6px}
.siteTabs .btn[aria-pressed="true"]{border-color:var(--text);background:var(--text);color:var(--bg)}
.gameList{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.gameList:empty{display:none}
.gameList li{display:flex;gap:8px 14px;align-items:center;justify-content:space-between;padding:9px 2px;border-bottom:1px solid var(--line)}
.gInfo{min-width:0}
.gOpp{font-weight:600;overflow-wrap:anywhere}
.gMeta{font-size:.86rem;color:var(--muted)}
.gMeta b{font-weight:700}
.o-won{color:var(--low)}.o-lost{color:var(--high)}.o-draw{color:var(--muted)}
.history h2,.info h2{margin-bottom:12px}
.historyList{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.historyList li{border-bottom:1px solid var(--line)}
.historyList a{display:flex;gap:10px 16px;align-items:baseline;justify-content:space-between;flex-wrap:wrap;padding:11px 2px;color:var(--text);text-decoration:none}
.historyList a:hover .hGame{text-decoration:underline}
.hGame{font-weight:600;overflow-wrap:anywhere}
.hMeta{display:flex;gap:12px;font-size:.88rem;color:var(--muted);font-variant-numeric:tabular-nums}
.hMeta b{font-weight:700}

.info{padding-top:14px;border-top:2px solid var(--text)}
.steps{margin:0 0 22px;padding:0;list-style:none;counter-reset:s;display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:760px){.steps{grid-template-columns:repeat(3,1fr);gap:28px}}
.steps li{counter-increment:s}
.steps li::before{content:counter(s);display:block;font-weight:800;font-stretch:122%;font-size:2rem;line-height:1;color:var(--accent);margin-bottom:6px}
.steps p,.prose{color:var(--muted);max-width:62ch;margin-top:4px}
.plans{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:640px){.plans{grid-template-columns:1fr 1fr;max-width:720px}}
.plan{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:8px}
.planPro{border:2px solid var(--text)}
.planPrice{font-size:1.9rem;font-weight:800;font-stretch:118%;line-height:1.1}
.plan ul{margin:4px 0 8px;padding-left:18px;color:var(--muted)}
.plan .btn{margin-top:auto;align-self:flex-start}

footer{max-width:1080px;margin:0 auto;padding:18px 16px 40px;font-size:.86rem;color:var(--muted);display:flex;flex-direction:column;gap:6px}
footer a{color:var(--muted)}
footer p{display:flex;gap:16px;flex-wrap:wrap}

dialog{border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);padding:22px;width:min(400px,calc(100vw - 28px))}
dialog::backdrop{background:rgba(8,12,28,.55)}
dialog h2{margin-bottom:6px;padding-right:56px}
dialog{position:fixed;inset:0;margin:auto}dialog form{position:relative}
#authForm{display:flex;flex-direction:column;gap:12px}
.formMsg{font-size:.92rem;color:var(--high)}
.formMsg.ok{color:var(--low)}
.authLinks{display:flex;justify-content:space-between;gap:12px;font-size:.92rem;flex-wrap:wrap}
.closeX{position:absolute;top:0;right:0;font-size:.9rem}
dialog>.closeX{top:22px;right:22px}
.acct{margin:10px 0 16px;display:grid;grid-template-columns:auto 1fr;gap:6px 16px}
.acct dt{color:var(--muted);font-size:.9rem}
.acct dd{margin:0;overflow-wrap:anywhere}
.acctBtns{display:flex;gap:8px;flex-wrap:wrap}

.doc{max-width:720px;margin:0 auto;padding:8px 16px 60px}
.doc h1{font-size:2rem;max-width:none;margin:18px 0 6px}
.doc h2{font-size:1.15rem;margin:22px 0 6px}
.doc p,.doc li{color:var(--text);max-width:68ch}
.doc p+p{margin-top:10px}
.doc .draft{border:1px solid var(--elev);border-radius:8px;padding:10px 14px;margin:14px 0;font-size:.92rem}


/* Unified game picker */
.inputTabs { display:flex; gap:6px; padding:6px; margin-bottom:24px; background:rgba(128,128,128,.08); border-radius:14px; }
.inputTabs .btn { flex:1; border:0; background:transparent; }
.inputTabs .btn[aria-pressed="true"] { background:var(--accent, #b5e48c); color:#152019; box-shadow:0 2px 8px #0002; }
#lookupForm { align-items:end; }
#lookupGames { max-height:480px; overflow:auto; }
.scan { border-radius:20px; }
@media(max-width:520px) { .inputTabs { gap:2px; } .inputTabs .btn { padding:10px 6px; font-size:12px; } #lookupForm { flex-wrap:wrap; } }

/* Charcoal and amber visual system */
:root { color-scheme:dark; --bg:#111210;--panel:#1b1d19;--panel2:#141612;--line:#34372e;--text:#f2f1e9;--muted:#a5a99b;--accent:#edc45c;--accentText:#191b12;--low:#8cbf87;--mod:#e3c26b;--elev:#eea163;--high:#ee7770;--blue:#85adb9;--sqL:#d6d4bb;--sqD:#727d62; }
body { background:var(--bg); }
.bar { max-width:1240px;padding:23px 32px;border-bottom:1px solid var(--line); }
.brand { font-size:1.14rem;letter-spacing:-.04em;display:flex;align-items:center;gap:10px; }
.brand:before { content:'♞';display:grid;place-items:center;width:36px;height:36px;background:var(--accent);color:#181b11;border-radius:10px;font-size:27px; }
main { max-width:1240px;padding:0 32px 64px;gap:32px; }
.hero { display:grid;grid-template-columns:1.25fr 1fr;gap:64px;align-items:center;padding:65px 0 46px; }
.eyebrow { font-size:11px;font-weight:700;letter-spacing:.15em;color:var(--accent);margin-bottom:18px; }
.eyebrow>span { display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:7px; }
h1 { font-size:clamp(40px,4.7vw,64px);line-height:1.08;letter-spacing:-.055em;max-width:none;font-stretch:100%;font-weight:750; }
h1 em { font-style:normal;color:var(--accent); }
.lead { font-size:17px;line-height:1.7;max-width:45ch;margin-top:24px; }
.heroActions { display:flex;align-items:center;gap:25px;margin-top:30px; }
.heroActions .btn { gap:32px;padding:14px 22px; }
.heroSecondary { color:var(--text);font-size:14px;text-decoration:none; }
.heroFoot { color:var(--muted);font-size:12px;margin-top:19px; }
.heroFoot span { margin:0 9px; }
.heroVisual { padding:20px;background:#1b1e18;border:1px solid #3a4032;border-radius:20px;transform:rotate(2deg);box-shadow:0 25px 70px #0005;max-width:420px;justify-self:end;width:100%; }
.visualTop,.visualCaption { display:flex;justify-content:space-between;gap:8px;font-size:9px;letter-spacing:.1em;color:var(--muted);align-items:center; }
.liveDot { color:var(--accent);font-size:15px; }
.previewBoard { display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;margin:16px 0;border-radius:5px;overflow:hidden; }
.previewSquare { display:grid;place-items:center;background:#c6cbb5;color:#1b2317;font:clamp(20px,3vw,40px)/1 Georgia,serif; }
.previewSquare:nth-child(16n+2),.previewSquare:nth-child(16n+4),.previewSquare:nth-child(16n+6),.previewSquare:nth-child(16n+8),.previewSquare:nth-child(16n+9),.previewSquare:nth-child(16n+11),.previewSquare:nth-child(16n+13),.previewSquare:nth-child(16n+15) { background:#737f62; }
.previewSquare:nth-child(n+33) { color:#fff9df;text-shadow:0 1px 2px #000,1px 0 #333; }
.visualCaption span:last-child { color:var(--accent);font-size:8px; }
.scan { padding:30px;border:1px solid #4b503e;border-radius:18px;background:var(--panel);box-shadow:0 12px 36px #0002;scroll-margin-top:24px; }
.scanHeading { display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px; }
.scanHeading .eyebrow { margin-bottom:8px; }
.scanHeading h2 { font-size:25px;letter-spacing:-.035em; }
.engineBadge { border:1px solid var(--line);border-radius:30px;padding:7px 12px;color:var(--muted);font-size:11px;white-space:nowrap; }
.inputTabs { margin:0 0 14px;background:#11130f;border:1px solid var(--line);padding:5px;border-radius:10px; }
.inputTabs .btn { border-radius:6px;font-size:14px;min-height:46px;color:var(--muted); }
.inputTabs .btn[aria-pressed="true"] { color:var(--accent);background:#313427;box-shadow:0 2px 5px #0004; }
textarea,input[type=number],input[type=text],input[type=email],input[type=password],select { border-radius:8px;padding:14px; }
textarea { min-height:100px;margin-bottom:12px; }
.btn { border-radius:8px;transition:background .15s,transform .15s; }
.btn.primary { box-shadow:0 3px 0 #80682f;font-weight:750; }
.btn.primary:hover { transform:translateY(-1px); }
.ratingOptions { margin:6px 0 21px; }
.ratingOptions summary { color:var(--muted);font-size:12px;cursor:pointer; }
.ratingOptions summary span { color:#777f6b;margin-left:8px; }
.ratingOptions .row { margin-top:12px; }
.actions { gap:12px; }.actions .fileBtn { background:transparent;font-size:13px; }
.usage { font-size:12px; }
.gameList li { border-radius:10px;padding:16px;background:var(--panel2);margin-bottom:8px; }
.info { padding:35px 0; }.info h2 { font-size:32px;letter-spacing:-.04em; }
.steps { gap:18px;margin:26px 0 34px; }.steps li { background:var(--panel);border:1px solid var(--line);padding:25px;border-radius:12px; }.steps p { color:var(--muted);font-size:14px;line-height:1.7; }
.panel,.plan { border-radius:14px; }.plans { margin-top:24px; }.plan { padding:28px;background:var(--panel); }.planPro { border-color:#87723c; }.planPrice { color:var(--accent); }
footer { border-top:1px solid var(--line);padding:30px;color:var(--muted); }
body.viewing .hero { display:none; }
@media(max-width:760px) { .bar { padding:16px; }.bar nav { gap:8px; } main { padding:0 16px 36px;gap:22px; }.hero { grid-template-columns:1fr;gap:30px;padding:42px 0 18px; }.heroVisual { display:none; } h1 { font-size:clamp(38px,8vw,56px); }.lead { font-size:16px; }.scan { padding:20px; }.scanHeading { align-items:flex-start; }.engineBadge { display:none; }.scanHeading h2 { font-size:23px; }.inputTabs .btn { font-size:12px;padding:10px 6px; }.info h2 { font-size:28px; }.heroActions { gap:20px; }.steps li { padding:20px; } }
@media(prefers-reduced-motion:reduce) { .btn { transform:none!important; } }

/* Mobile-first entry and score contrast */
.inputTabs { align-self:flex-start;flex:none;width:auto;max-width:100%;gap:3px;padding:3px;margin-bottom:12px; }
.inputTabs .btn { flex:0 1 auto;min-height:38px;padding:8px 14px;font-size:13px;white-space:nowrap; }
#lookupForm { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 12px;max-width:660px; }
.platformToggle { grid-column:1/-1;display:inline-flex;justify-self:start;gap:2px;padding:3px;border:1px solid var(--line);background:var(--panel2);border-radius:30px; }
.platformToggle button { font:600 12px var(--wide);color:var(--muted);border:0;border-radius:24px;background:transparent;padding:8px 14px;cursor:pointer;min-height:34px; }
.platformToggle button[aria-pressed="true"] { background:var(--accent);color:var(--accentText); }
#lookupForm .field { min-width:0; } #lookupName { display:block;width:100%;min-width:0;font-size:16px; }
#lookupPanel>p.small { margin-top:13px; }
#lookupStatus:empty,#lookupGames:empty { display:none; }
.scoreInset { background:#f1f0e6;border:1px solid #fff6;border-radius:12px;padding:22px 20px 10px;margin:18px 0;color:#20261b;--text:#20261b;--muted:#59604f;--low:#387247;--mod:#8a6908;--elev:#b45c1b;--high:#ba3834; }
.scoreInset .meter i { opacity:.85; }.scoreInset .scoreNum { font-size:3.8rem; }
.mobilePitch { display:none; }
@media(max-width:760px) {
 body:not(.viewing) .hero { display:none; }
 main { padding-top:18px;gap:20px; }
 .mobilePitch { display:block;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:5px; }
 .mobilePitch strong { display:block;font-size:20px;line-height:1.3;letter-spacing:-.035em; }
 .mobilePitch em { color:var(--accent);font-style:normal; }
 .mobilePitch>span { display:block;font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5; }
 .scan { padding:18px;gap:10px; }
 .scanHeading { margin-bottom:3px; }.scanHeading .eyebrow { margin-bottom:6px;font-size:10px; }.scanHeading h2 { font-size:22px; }
 .inputTabs { gap:0; }.inputTabs .btn { font-size:11px;padding:8px 9px;min-height:40px; }
 #lookupForm { grid-template-columns:minmax(0,1fr);gap:12px; }
 #lookupBtn { width:100%;min-height:46px; }
 #lookupPanel>p.small { font-size:11px; }
 .platformToggle button { min-height:36px; }
 .bar nav a { display:none; }.bar { padding:12px 16px; }
 .scoreInset { padding:20px 16px 10px; }.scoreInset .scoreNum { font-size:3.3rem; }
}
@media(max-width:360px) { .inputTabs .btn { font-size:10px;padding:8px 7px; }.scan { padding:14px; } }

/* One visible home for scan progress, errors, and allowance feedback. */
.scanFeedback { width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto;padding:30px;border:1px solid #535842;border-radius:20px;background:var(--panel);color:var(--text);box-shadow:0 24px 100px #0009;text-align:center; }
.scanFeedback::backdrop { background:#060906bd;backdrop-filter:blur(5px); }
.feedbackIcon { display:grid;place-items:center;width:58px;height:58px;margin:0 auto 20px;border-radius:16px;background:#353827;color:var(--accent);font-size:38px; }
.scanFeedback h2 { font-size:25px;line-height:1.2;letter-spacing:-.035em; }
#feedbackIntro { color:var(--muted);font-size:14px;line-height:1.65;margin-top:14px; }
.scanFeedback #progress { margin:26px 0 12px; }
.scanFeedback .prog { height:10px; }
.scanFeedback .limit { display:flex;flex-direction:column;border:0;padding:0;margin-top:18px;gap:22px; }
.scanFeedback #limitText { font-size:14px;color:var(--muted);line-height:1.6; }
.scanFeedback #limitUpgrade { width:100%;min-height:48px; }
.feedbackClose { width:100%;margin-top:18px;background:transparent; }
@media(max-width:520px) { .scanFeedback { padding:25px 22px; }.scanFeedback h2 { font-size:23px; } }

/* Keep scan feedback attached to the viewport, including scrolled mobile pages. */
.scanFeedback { position:fixed;inset:0;height:fit-content;margin:auto; }
.scanFeedback h2 { padding-right:0; }
body:has(#scanFeedback[open]) { overflow:hidden; }
@media(max-width:760px) {
 .scanFeedback { inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:100%;max-height:100dvh;margin:0;border:0;border-radius:0;padding:max(28px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom));box-sizing:border-box; }
 .scanFeedback[open] { display:flex;flex-direction:column;align-items:stretch;justify-content:center; }
 .scanFeedback>* { flex-shrink:0; }
 .scanFeedback .feedbackIcon { margin-left:auto;margin-right:auto; }
}
@media(max-width:760px) and (max-height:480px) {
 .scanFeedback[open] { justify-content:flex-start; }
 .scanFeedback .feedbackIcon { display:none; }
}
