:root{color-scheme:light;--blue:#2457e7;--ink:#182330;--muted:#657080;--line:#dce1e8;--paper:#f6f8fb;--yellow:#ffdb62}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Avenir Next",system-ui,sans-serif;font-size:16px;line-height:1.5}a{color:inherit}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:4px}[hidden]{display:none!important}.header,main,footer{max-width:1180px;margin-inline:auto}.header{padding:30px 40px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-size:24px;font-weight:850;letter-spacing:-1px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--blue);color:#fff;border-radius:10px;transform:rotate(-7deg);font-size:23px;letter-spacing:0}.brand-dot{color:var(--blue);margin-left:-10px}.header-note{font-size:14px;color:var(--muted)}main{padding:0 40px}.intro{background:var(--blue);color:#fff;border-radius:28px;padding:42px 48px;display:flex;justify-content:space-between;gap:24px;overflow:hidden}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.7px;color:#d0dcff;margin:0 0 17px}h1{font-size:clamp(38px,5vw,60px);line-height:1.07;letter-spacing:-2.8px;font-weight:850;margin:0 0 20px}h1 span{color:var(--yellow)}.lead{font-size:17px;color:#e3eaff;line-height:1.6;margin:0}.intro-side{align-self:end;min-width:160px;text-align:right}.big-number{display:block;font-size:112px;font-weight:850;letter-spacing:-8px;line-height:1;color:#ffffff25}.intro-side p{font-size:14px;line-height:1.5;color:#dee6ff;margin:14px 0 0}.library{margin-top:34px}.library-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}h2{font-size:25px;letter-spacing:-.8px;margin:0}.sort-label{font-size:14px;color:var(--muted);white-space:nowrap}.filters{display:flex;align-items:end;gap:14px;margin:0}.filters label{display:grid;gap:6px;font-size:14px;font-weight:700;color:#4c5666;min-width:210px}.filters select{padding:11px 38px 11px 14px;min-height:48px;width:100%;color:var(--ink);border:1px solid #cfd6e0;border-radius:12px;background:#fff;font-size:16px}.reset{background:transparent;border:0;min-height:48px;padding:10px;color:var(--blue);font-weight:700;font-size:14px}.result-count{font-size:14px;color:var(--muted);margin:18px 0 13px}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.game-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.game-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #1823300f}.game-cover{background:#e9edff;min-height:168px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;color:#2443a8;overflow:hidden}.cover-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.latest{font-size:11px;letter-spacing:.6px;font-weight:800;border-radius:6px;background:#fff9d7;color:#655010;padding:5px 8px}.cover-type{font-size:12px;font-weight:700}.word-mark{font-weight:850;font-size:32px;letter-spacing:-1.8px;line-height:1.3}.cover-caption{font-size:11px;letter-spacing:1.4px;margin:5px 0 0;font-weight:700}.card-body{padding:22px;display:flex;flex-direction:column;flex:1}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tag{padding:4px 8px;font-size:12px;font-weight:700;border-radius:6px;color:#3b548d;background:#eff3ff}.tag.grade{color:#62656b;background:#f0f2f5}.game-card h3{font-size:22px;line-height:1.2;letter-spacing:-.5px;margin:0 0 9px}.description{font-size:16px;color:var(--muted);line-height:1.65;margin:0 0 20px}.card-meta{display:flex;gap:12px;align-items:center;color:#647080;font-size:12px;padding-top:16px;border-top:1px solid #edf0f4;margin-top:auto}.card-meta time{margin-left:auto}.play{display:block;text-align:center;background:var(--ink);border-radius:11px;color:#fff;text-decoration:none;font-size:16px;font-weight:700;padding:13px;margin-top:16px;transition:background .2s}.play:hover{background:var(--blue)}.empty{text-align:center;background:#fff;border:1px dashed #cbd3e0;border-radius:20px;padding:42px 20px}.empty>span{font-size:38px;color:var(--blue)}.empty h3{font-size:22px;margin:12px 0 8px}.empty p{color:var(--muted);font-size:16px}.button-dark{color:#fff;background:var(--ink);border:0;border-radius:12px;padding:13px 20px;min-height:48px;font-weight:700}.small-note{display:flex;align-items:center;gap:18px;border-top:1px solid var(--line);margin-top:40px;padding:24px 0;color:#485366}.note-icon{font-size:36px;color:var(--blue)}.small-note strong{font-size:16px;font-weight:700}.small-note p{font-size:14px;margin:4px 0 0;color:var(--muted)}footer{padding:18px 40px 32px;display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.footer-brand{text-decoration:none;font-weight:850;color:var(--ink);font-size:15px}footer span{align-self:center}@media(max-width:900px){.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intro-side{min-width:110px}.big-number{font-size:85px}.header,footer{padding-inline:24px}main{padding-inline:24px}.intro{padding:34px}}@media(max-width:560px){.header{padding:22px 20px}.header-note{display:none}main{padding-inline:20px}.intro{padding:29px 25px;border-radius:22px}.intro-side{display:none}h1{font-size:42px;letter-spacing:-2px}.eyebrow{font-size:10px;letter-spacing:1.3px}.lead{font-size:16px}.desktop-break{display:none}.library{margin-top:28px}h2{font-size:21px}.sort-label{font-size:12px}.filters{flex-wrap:wrap;gap:12px}.filters label{min-width:0;flex:1}.filters select{padding-left:10px}.reset{width:100%;min-height:35px;text-align:left;padding:0}.game-grid{grid-template-columns:1fr}.game-cover{min-height:158px}.word-mark{font-size:36px}.card-body{padding:20px}.game-card h3{font-size:24px}.small-note{gap:12px;margin-top:30px}footer{padding:18px 20px 25px;flex-direction:column}footer span{align-self:start}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
