:root{--bg:#0a0a23;--bg2:#12122e;--in:#0c0c26;--line:rgba(255,255,255,.1);--gold:#e2b714;--gold2:#ff9900;--tx:#e9eaf2;--mu:#8b90a8;--ok:#4ade80;--bad:#f87171;--pf:22px;--ui:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"Roboto Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;background:radial-gradient(900px 500px at 15% -10%,rgba(226,183,20,.1),transparent),var(--bg);color:var(--tx);font:16px/1.6 var(--ui)}
a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}
[hidden]{display:none!important}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;color:var(--tx);font:700 15px var(--mono);letter-spacing:2px}.brand img{width:36px;height:36px}
.top nav a{margin-left:18px;color:var(--mu);font-size:14px}.top nav a:hover{color:var(--gold)}
main{max-width:980px;margin:0 auto;padding:24px 16px 48px;transform: translateY(-35px);}
.crumbs{font-size:13px;color:var(--mu)}
h1{font-size:clamp(26px,5vw,40px);line-height:1.15;margin:8px 0}
h1 small{display:block;font-size:.45em;color:var(--gold);letter-spacing:2px;margin-top:6px}
h2{font-size:20px;margin:30px 0 10px}
.lead,.fine{color:var(--mu)}.lead{max-width:720px}.fine{font-size:14px}
code{font-family:var(--mono);font-size:13px;color:var(--gold)}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:20px;margin:20px 0; transform: translateY(-18px);}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;font-size:13px;color:var(--mu);margin-bottom:14px}.meta b{color:var(--tx)}
#bar{height:4px;background:var(--line);border-radius:4px;overflow:hidden}
#bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold2))}
.hud{display:flex;gap:28px;margin:14px 0;flex-wrap:wrap}
.hud div{font-size:12px;color:var(--mu)}.hud b{display:block;font:700 26px var(--mono);color:var(--tx)}
#passage{position:relative;font:400 var(--pf)/1.9 var(--mono);height:calc(var(--pf)*1.9*3 + 24px);overflow:hidden;padding:12px 16px;background:var(--in);border:1px solid var(--line);border-radius:10px;cursor:text}
#track{position:relative;transition:transform .12s}
.w{display:inline-block;margin-right:.6em;padding:0 2px;border-radius:4px;color:#6d7290}
.w.ok{color:var(--ok)}.w.bad{color:var(--bad);text-decoration:underline}
.w.cur{background:rgba(226,183,20,.14);color:var(--tx)}
.w i{font-style:normal}.w i.ok{color:var(--ok)}.w i.bad{color:var(--bad)}
#typing{width:100%;margin-top:14px;padding:14px 16px;font:400 20px var(--mono);color:var(--tx);background:var(--in);border:2px solid rgba(226,183,20,.35);border-radius:10px;outline:none}
#typing:focus{border-color:var(--gold)}#typing:disabled{opacity:.5}
.btn{display:inline-block;border:0;border-radius:10px;padding:12px 22px;min-height:44px;font:700 14px var(--mono);letter-spacing:1px;cursor:pointer;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#0a0a23;touch-action:manipulation}
.btn.alt{background:transparent;color:var(--gold);border:1px solid var(--gold)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.stat{background:var(--in);border:1px solid var(--line);border-radius:12px;padding:16px;text-align:center}
.stat b{display:block;font:700 36px var(--mono);color:var(--gold)}.stat span{font-size:12px;color:var(--mu)}
.dt{width:100%;border-collapse:collapse;margin:16px 0;font-size:14px}
.dt td{padding:9px 6px;border-bottom:1px solid var(--line)}.dt td:last-child{text-align:right;font-family:var(--mono)}
.cf{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.cf label{flex:1 1 260px;font-size:13px;color:var(--mu)}
.cf input{width:100%;margin-top:6px;padding:12px;font:400 16px var(--ui);background:var(--in);color:var(--tx);border:1px solid var(--line);border-radius:10px}
#cp canvas{width:100%;height:auto;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5);margin:16px 0}
.row{display:flex;gap:10px;flex-wrap:wrap}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.tile{display:block;padding:16px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;color:var(--tx)}
.tile:hover,.tile.on{border-color:var(--gold);text-decoration:none}
.tile b{display:block;font-size:18px}.tile span{font-size:13px;color:var(--mu)}
footer{border-top:1px solid var(--line);padding:24px 16px calc(24px + env(safe-area-inset-bottom));text-align:center;font-size:13px;color:var(--mu)}
footer a{margin:0 10px;color:var(--mu);display:inline-block;padding:4px 0}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#results > * {
    transform: translateY(-50px);
}

/* ---- start / practice overlay, duration chips, in-test links ---- */
#ov{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:12px;background:rgba(12,12,38,.94)}
#ov .btn{min-width:150px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.chip{min-height:40px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--in);color:var(--tx);font:600 14px var(--ui);cursor:pointer;touch-action:manipulation}
.chip:hover{border-color:var(--gold)}
.chip.on{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#0a0a23;border-color:transparent}
.chip:disabled{opacity:.45;cursor:not-allowed}
.mb{margin-left:auto;display:flex;gap:16px}
.lnk{background:none;border:0;padding:6px 0;color:var(--gold);font:600 13px var(--ui);text-decoration:underline;cursor:pointer;touch-action:manipulation}

/* ---- flags + country tiles ---- */
.fl{display:inline-block;flex:none;width:42px;height:28px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,.06);box-shadow:0 0 0 1px rgba(255,255,255,.2)}
.fl img{display:block;width:100%;height:100%;object-fit:contain}
.fl.big{width:78px;height:52px;border-radius:6px}
.chead{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}.chead h1{margin:0}
.cgrid{display:grid;grid-auto-flow:dense;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.ctile{position:relative;display:flex;align-items:center;gap:12px;min-height:64px;padding:14px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;color:var(--tx)}
.ctile:hover,.ctile.on{border-color:var(--gold);text-decoration:none}
.ctile b{display:block;font-size:17px;line-height:1.25}.ctile small{color:var(--mu);font-size:12px}
.ctile.hot{border-color:rgba(226,183,20,.55);background:linear-gradient(135deg,rgba(226,183,20,.12),var(--bg2))}
.ctile.hot .fl{width:56px;height:37px}
.pop,.yb{position:absolute;top:8px;right:10px;font:700 10px var(--mono);letter-spacing:1px;font-style:normal;color:#0a0a23;background:var(--gold);border-radius:6px;padding:2px 6px}
.yb{top:auto;bottom:8px}
.ctile.you{border-color:var(--gold)}
@media(min-width:700px){.ctile.hot{grid-column:span 2}}

/* ---- responsive: phones -> tablets -> laptops -> extra large screens ---- */
@media(max-width:600px){:root{--pf:18px}.hud{gap:18px}.hud b{font-size:22px}.top nav{display:none}.stat b{font-size:30px}#typing{font-size:18px}}
@media(max-width:480px){main{padding:20px 12px 40px}.card{padding:14px}#ov .btn{flex:1 1 130px;min-width:0}.mb{margin-left:0;width:100%}.cgrid,.grid{grid-template-columns:1fr 1fr}.ctile{padding:12px;gap:10px}.ctile .fl{width:36px;height:24px}.ctile.hot .fl{width:42px;height:28px}.ctile b{font-size:15px}.ctile small{display:none}.pop,.yb{font-size:9px;padding:1px 5px}.fl.big{width:60px;height:40px}}
@media(max-width:340px){:root{--pf:16px}.cgrid,.grid{grid-template-columns:1fr}}
@media(min-width:1400px){:root{--pf:25px}main{max-width:1120px}}
@media(min-width:1900px){:root{--pf:28px}main{max-width:1320px}body{font-size:18px}h2{font-size:24px}.fine{font-size:16px}}
@media(prefers-reduced-motion:reduce){#track{transition:none}}

/* ---- country search ---- */
.cs{margin:0 0 14px}
.cs input{width:100%;padding:14px 16px;min-height:48px;font:400 16px var(--ui);color:var(--tx);background:var(--in);border:2px solid rgba(226,183,20,.35);border-radius:10px;outline:none;-webkit-appearance:none;appearance:none}
.cs input:focus{border-color:var(--gold)}
.cs input::placeholder{color:var(--mu)}
.cs #cres{margin-top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* duration chips can be links (to the duration pages) or in-place buttons */
a.chip{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
a.chip:hover{text-decoration:none}
.chips.lock{opacity:.45;pointer-events:none}
#go {
    display: block;
    margin: 0 auto;
    width: 200px;
    height: 60px;
    font-size: 20px;
    cursor: pointer;
}