:root { color-scheme:light; --ink:#11151c; --muted:#536071; --line:#dce1e8; --paper:#f4f6f9; --blue:#0d6efd; --header-height:calc(64px + env(safe-area-inset-top,0px)); font-family:Inter,"Segoe UI",Arial,sans-serif; }
* { box-sizing:border-box; }
html { min-width:0; background:#fff; scroll-padding-top:calc(var(--header-height) + 20px); }
body { margin:0; padding-top:var(--header-height); color:var(--ink); background:var(--paper); line-height:1.5; }
button,input,select { font:inherit; }
a { color:inherit; }
button,select,a { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
[hidden] { display:none !important; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:8px; left:12px; padding:12px; background:var(--ink); color:#fff; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.search-header { position:fixed; z-index:20; inset:0 0 auto; display:flex; align-items:center; gap:18px; min-width:0; height:var(--header-height); padding:calc(10px + env(safe-area-inset-top,0px)) max(20px,calc((100vw - 1080px)/2),env(safe-area-inset-right,0px)) 10px max(20px,calc((100vw - 1080px)/2),env(safe-area-inset-left,0px)); background:#fff; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; min-height:44px; gap:10px; text-decoration:none; font-size:15px; font-weight:750; white-space:nowrap; }
.brand-mark { display:flex; overflow:hidden; border-radius:7px; }
.brand-mark b { display:grid; place-items:center; width:25px; height:30px; color:#fff; background:var(--blue); font-size:15px; }
.brand-mark b+b { background:#dc3545; }
.header-link { margin-left:auto; display:flex; align-items:center; min-height:44px; padding-inline:8px; text-decoration:none; font-size:14px; font-weight:650; }
.language-control select { min-height:44px; max-width:88px; padding:8px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); font-size:13px; font-weight:650; }
main { max-width:1080px; margin:auto; padding:44px max(20px,env(safe-area-inset-right,0px)) 56px max(20px,env(safe-area-inset-left,0px)); }
main:focus { outline:none; }
.eyebrow { font-size:12px; font-weight:750; letter-spacing:.09em; color:#0755cc; }
h1 { margin:9px 0 12px; font-size:clamp(28px,4.2vw,44px); line-height:1.14; letter-spacing:-.035em; }
.page-heading p { margin:0 0 26px; color:var(--muted); max-width:65ch; }
#search-form { padding:24px; border:1px solid var(--line); border-radius:14px; background:#fff; }
#search-form > label { display:block; font-size:14px; font-weight:650; margin-bottom:8px; }
.search-row { display:flex; align-items:stretch; gap:10px; }
#query { width:100%; min-width:0; min-height:48px; padding:11px 13px; border:1px solid #aab5c4; border-radius:9px; background:#fff; color:var(--ink); font-size:16px; }
#query::placeholder { color:#637083; opacity:1; }
.search-button { flex:none; min-height:48px; padding:10px 20px; border:1px solid #0755cc; border-radius:9px; background:var(--blue); color:#fff; font-size:15px; font-weight:650; cursor:pointer; }
.search-button:hover { background:#0755cc; }
.filter-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:14px; font-size:14px; }
.filter-row label { font-weight:650; }
.filter-row select { min-width:0; max-width:100%; min-height:44px; padding:8px 32px 8px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); }
.clear-button { min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink); cursor:pointer; }
.game-link { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:48px; padding:15px 4px; color:#0755cc; font-weight:650; text-decoration:none; }
.game-link:hover span:first-child,.header-link:hover,footer a:hover { text-decoration:underline; }
.results-top { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 20px; margin-top:24px; margin-bottom:14px; }
h2 { margin:0; font-size:21px; letter-spacing:-.02em; }
#result-count { margin:0; font-size:14px; color:var(--muted); }
.result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; }
.result-grid li { min-width:0; }
.result-card { position:relative; display:flex; flex-direction:column; justify-content:center; gap:7px; min-height:102px; height:100%; padding:17px 44px 17px 18px; border:1px solid var(--line); border-radius:12px; background:#fff; text-decoration:none; overflow-wrap:anywhere; }
.result-card:hover { border-color:#8bafe5; background:#fafdff; }
.result-category { color:var(--muted); font-size:12px; }
.result-card strong { font-size:16px; line-height:1.4; font-weight:650; }
.result-arrow { position:absolute; right:17px; top:50%; transform:translateY(-50%); color:#0755cc; font-size:20px; }
.notice { margin:14px 0; padding:18px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--muted); }
.notice a { color:#0755cc; }
footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; max-width:1080px; margin:auto; padding:24px max(20px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px)); border-top:1px solid var(--line); font-size:13px; color:var(--muted); }
footer a { display:inline-flex; align-items:center; min-height:44px; margin-block:-12px; }
@media(max-width:600px) { main { padding-top:28px; } .search-header { padding-right:max(12px,env(safe-area-inset-right,0px)); padding-left:max(12px,env(safe-area-inset-left,0px)); gap:8px; } .brand { gap:6px; font-size:12px; } .brand-mark b { width:21px; height:28px; font-size:13px; } .header-link { font-size:13px; padding-inline:2px; } #search-form { padding:16px; } .result-grid { grid-template-columns:1fr; } .result-card { min-height:92px; } }
@media(max-width:380px) { main { padding-inline:14px; } .search-row { flex-direction:column; } .search-button { min-height:44px; } .filter-row { gap:8px; } .filter-row select { width:100%; } .brand > span:last-child { font-size:11px; } .language-control select { max-width:80px; } }
@media(max-width:340px) { .brand > span:last-child { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; } }
