:root{--bg:#10161c;--pane:#1a262e;--border:#354955;--text:#f3efe7;--muted:#b7c8ce;--gold:#ffb57e;--cyan:#7edbdb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);font:16px/1.7 system-ui,Arial,sans-serif;background:radial-gradient(ellipse at 90% -5%,#2c566041,transparent 43%),var(--bg)}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--gold)}a:focus-visible,button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}img{display:block;max-width:100%;height:auto}h1,h2,h3{line-height:1.18;margin:0 0 16px}h1{font-size:clamp(2.6rem,5vw,4.5rem);letter-spacing:-.05em}h2{font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.025em}h3{font-size:1.3rem}p{margin:0 0 18px;color:#cbd7db}.wrap{width:min(1120px,calc(100% - 42px));margin:auto}.skip{position:absolute;top:-200px;left:12px;background:white;color:black;padding:12px;z-index:40}.skip:focus{top:12px}.top{background:#11181eea;border-bottom:1px solid var(--border)}.top-inner{display:flex;align-items:center;gap:20px;min-height:84px}.logo{display:flex;align-items:center;gap:12px;text-decoration:none;font:900 1rem/1.1 ui-monospace,monospace;white-space:nowrap}.logo-mark{width:42px;height:42px;flex:none;display:block;filter:drop-shadow(0 2px 8px rgba(0,0,0,.45));transition:transform .15s ease}.logo:hover .logo-mark{transform:scale(1.05)}.logo-text{letter-spacing:.06em;line-height:1.12;color:var(--text)}.top nav{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-left:auto}.top nav a{font-size:.87rem;font-weight:750;text-decoration:none;color:#c1d1d5}.top nav a[aria-current=page]{color:var(--gold)}.button{display:inline-flex;align-items:center;padding:12px 16px;background:var(--gold);color:#131a1f;text-decoration:none;font-weight:800;line-height:1.3;white-space:nowrap}.button:hover{background:#ffd2a7;color:#131a1f}.intro{padding:55px 0 26px}.intro h1{max-width:850px}.lead{font-size:clamp(1.1rem,2vw,1.3rem);max-width:790px;color:#dce5e7}.intro small,.hero small,.card small,article small{font:750 .78rem ui-monospace,monospace;color:var(--cyan);letter-spacing:.14em}.crumbs{margin-top:25px;display:flex;gap:11px;flex-wrap:wrap;align-items:center;font:.83rem ui-monospace,monospace;color:#9cb2bc}.crumbs strong{font-weight:500;color:var(--gold)}.hero{display:grid;grid-template-columns:1.03fr .97fr;gap:28px;align-items:center;min-height:540px}.hero h1{margin:15px 0 20px}.hero h1 em{font-style:normal;color:var(--gold)}.hero figure{position:relative;margin:0;height:430px;border:1px solid #536872;overflow:hidden;box-shadow:0 14px 40px #0008}.hero figure img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.15)}.hero figcaption{position:absolute;bottom:18px;left:18px;background:#0d171fe8;border-left:3px solid var(--gold);padding:10px 16px;font:700 .8rem ui-monospace,monospace}.buttons{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.facts{display:flex;gap:27px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--border)}.facts span{font:.76rem ui-monospace,monospace;color:var(--muted);display:flex;flex-direction:column}.facts b{font-size:1.75rem;color:var(--gold)}.section{padding:45px 0}.section>p{max-width:830px;font-size:1.04rem}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.card{display:flex;flex-direction:column;padding:24px;border:1px solid var(--border);background:linear-gradient(135deg,#20323b,#172128);text-decoration:none;min-height:250px;transition:border-color .15s,transform .15s}.card:hover{border-color:var(--gold);transform:translateY(-2px);color:var(--text)}.card img{width:calc(100% + 48px);max-width:calc(100% + 48px);margin:-24px -24px 19px;height:165px;object-fit:cover}.card h3{margin:8px 0 12px}.card p{font-size:.94rem;flex:1}.card b{color:var(--gold);font:.85rem ui-monospace,monospace}.banner{background:linear-gradient(120deg,#2b424b,#1b2a32);border:1px solid #5b7780;padding:30px}.banner p{font-size:1.08rem;max-width:820px}.two{display:grid;grid-template-columns:1fr 1fr;gap:17px}.two article,.panel{background:var(--pane);border:1px solid var(--border);padding:26px}.media{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center;border:1px solid var(--border);background:var(--pane);padding:20px}.media img{width:100%;height:330px;object-fit:cover}.media li,.character li{color:#d6e2e4;margin:0 0 12px;padding-left:5px}.media li::marker,.character li::marker{color:var(--gold)}.character{display:grid;grid-template-columns:350px 1fr;gap:30px}.character img{width:100%;aspect-ratio:3/4;object-fit:contain;background:var(--pane);border:1px solid var(--border);padding:8px}table{width:100%;border-collapse:collapse}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:13px}th{width:35%}kbd{background:#394b56;border:1px solid #829ba5;color:#fff;padding:3px 9px;font:.9rem monospace}.qa{display:grid;gap:13px}.qa article{background:var(--pane);border:1px solid var(--border);padding:21px 25px}.qa h2{font-size:1.19rem;margin-bottom:8px}.qa p{margin:0}.bottom{margin-top:55px;background:#0b1116;border-top:1px solid var(--border);padding:35px 0 25px}.footgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}.footgrid p{max-width:330px}.footgrid nav{display:flex;flex-direction:column;gap:8px}.footgrid nav a{color:#b5c5ca;text-decoration:none;font-size:.92rem}@media(max-width:950px){.top-inner{flex-wrap:wrap;padding:14px 0}.top nav{order:3;width:100%;margin:0}.hero{grid-template-columns:1fr;gap:12px}.hero figure{height:310px;order:-1}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.wrap{width:calc(100% - 26px)}.top-inner{gap:10px}.logo{font-size:.82rem;gap:9px}.logo-mark{width:34px;height:34px}.top-inner>.button{margin-left:auto}.top nav{flex-wrap:wrap;row-gap:6px;column-gap:14px;overflow-x:visible}.top nav a{font-size:.82rem;padding:4px 0}.hero{min-height:0}.hero figure{height:225px}.hero h1{font-size:2.5rem}.section{padding:32px 0}.intro{padding:42px 0 14px}.cards,.two,.media,.character,.footgrid{grid-template-columns:1fr}.media{padding:14px}.media img{height:215px}.card{min-height:0;padding:20px}.card img{margin:-20px -20px 18px;width:calc(100% + 40px);max-width:calc(100% + 40px)}.banner{padding:22px}.character img{max-width:350px}.facts{gap:20px}.facts b{font-size:1.4rem}}

/* Encyclopedia article layout */
.wiki-panel{border:1px solid var(--border);background:var(--pane);padding:26px;max-width:960px}
.wiki-panel h3{margin:25px 0 10px}.wiki-panel h3:first-child{margin-top:0}.wiki-panel p{max-width:830px}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.gallery-item{margin:0;border:1px solid var(--border);background:var(--pane);overflow:hidden;display:flex;flex-direction:column}
.gallery-item img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#10161c;padding:0}
.gallery-item.sprite img{object-fit:contain;padding:14px;background:#10161c}
.gallery-item figcaption{padding:20px;flex:1;display:flex;flex-direction:column}.gallery-item h3{margin:8px 0}.gallery-item small{color:var(--cyan);font:700 .8rem monospace}
@media(max-width:640px){.gallery-grid{grid-template-columns:1fr}.wiki-panel{padding:17px}}


/* Cohesive 16:9 editorial illustrations throughout the game encyclopedia. */
.card img{height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center 47%;background:#121c24}
.card[href^="/characters/"] img{object-position:center 27%}
.character{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}
.character img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 30%;padding:0;background:#14212a;border:1px solid var(--border)}
.dossier-hero{margin:7px 0 28px;max-width:940px;border:1px solid var(--border);background:#111d25;overflow:hidden}
.dossier-hero img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 45%;max-height:460px}
.dossier-hero figcaption{padding:9px 14px;background:#142630;color:var(--cyan);font:700 .75rem ui-monospace,monospace;letter-spacing:.12em}
.dossier-hero.compact{max-width:780px}.dossier-hero.compact img{max-height:300px}
.media img{aspect-ratio:16/9;object-fit:cover;height:auto}
@media(max-width:640px){.character{grid-template-columns:1fr}.character img{max-width:100%}.dossier-hero.compact img{max-height:230px}}


/* Keep preview images from expanding a narrow screen's grid track. */
@media(max-width:640px){
  .cards,.two,.media,.character,.footgrid,.gallery-grid{grid-template-columns:minmax(0,1fr)}
  .card,.gallery-item,.media,.character,.dossier-hero{min-width:0;max-width:100%}
  .card img,.gallery-item img,.character img{min-width:0}
}

/* Home-page per-difficulty leaderboard panel */
.hero-leaderboard{min-width:0;background:linear-gradient(155deg,#18252e,#101920);border:1px solid #48626e;box-shadow:0 16px 40px #0008;display:flex;flex-direction:column}
.lb-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 12px;padding:16px 18px 10px;border-bottom:1px solid var(--border)}
.lb-head small{margin:0;color:var(--cyan)}
.lb-head h2{margin:4px 0 0;font-size:1.18rem;letter-spacing:-.01em}
.lb-head a{white-space:nowrap;flex-shrink:0;font-size:.86rem}
.lb-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;border-bottom:1px solid var(--border);background:#0f171d}
.lb-tabs [role="tab"]{position:relative;flex:1 0 auto;appearance:none;border:0;background:transparent;color:var(--muted);padding:11px 12px;font:700 .83rem ui-monospace,monospace;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.lb-tabs [role="tab"] small{font-size:.72rem;color:#8fa6af;letter-spacing:0}
.lb-tabs [role="tab"] .lb-cnt{display:inline-flex;align-items:center;justify-content:center;min-width:18px;padding:1px 5px;border-radius:999px;background:#192b36;border:1px solid #355464;font-size:.69rem;line-height:1.2;color:var(--cyan)}
.lb-tabs [role="tab"] .lb-cnt:empty{display:none}
.lb-tabs [role="tab"]:hover{color:var(--text)}
.lb-tabs [role="tab"]:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}
.lb-tabs [role="tab"][aria-selected="true"]{color:var(--gold);background:#16222b}
.lb-tabs [role="tab"][aria-selected="true"]::after{content:"";position:absolute;inset:auto 0 0;border-block-end:3px solid var(--gold)}
.lb-panels{display:grid}
.lb-panels>[role="tabpanel"]{grid-area:1/1;min-width:0}
.lb-panel-body{padding:14px 18px 18px;display:flex;flex-direction:column;gap:12px;min-height:298px}
.lb-rule{margin:0;padding:8px 11px;background:#111c24;border-left:3px solid var(--cyan);font:.79rem ui-monospace,monospace;color:#cde0e6}
.lb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.lb-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;background:#121d26;border:1px solid #2b3f4c}
.lb-row.top1{border-color:#8a6c45;background:linear-gradient(90deg,#25221a,#121d26)}
.lb-rank{font:800 .86rem ui-monospace,monospace;color:var(--cyan)}
.lb-row.top1 .lb-rank{color:var(--gold)}
.lb-player{min-width:0;display:flex;flex-direction:column;gap:2px}
.lb-player strong{font-size:.93rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-player small{font:.73rem ui-monospace,monospace;color:var(--muted);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-score{font:800 .96rem ui-monospace,monospace;font-variant-numeric:tabular-nums;color:var(--gold);white-space:nowrap}
.lb-empty{padding:22px 14px;border:1px dashed #3a525f;background:#101820;text-align:center}
.lb-empty p{font-size:.9rem;margin:0 0 12px}
.lb-empty-link{color:var(--gold);font:700 .85rem ui-monospace,monospace;text-decoration:none}
.lb-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding-top:10px;border-top:1px solid #293b46;font:.78rem ui-monospace,monospace;color:var(--muted)}
.lb-foot a{color:var(--cyan)}
@media(max-width:640px){.lb-panel-body{padding:12px 14px 16px;min-height:240px}.lb-head{padding:14px 14px 10px}}

/* Online rankings can contain up to fifteen rows per difficulty. */
.hero-leaderboard .lb-rows{max-height:420px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.lb-global-note{font-size:.8rem;color:#a7bdc7;margin:.3rem 0 0}

/* Rank scope: per mission, historical all, and six-chapter campaign. */
.lb-scope{display:flex;align-items:center;flex-wrap:wrap;gap:7px 10px;margin:10px 0;padding:8px 11px;background:rgba(11,20,32,.65);border:1px solid rgba(126,202,232,.25);border-radius:8px}
.lb-scope label{font-size:12px;font-weight:750;color:#b4d4e3}
.lb-scope select{flex:1 1 160px;min-width:0;max-width:100%;padding:7px 28px 7px 9px;background:#122235;color:#e8f5ff;border:1px solid #42647c;border-radius:6px;font:inherit;font-size:12px;cursor:pointer}
.lb-scope select:focus-visible{outline:2px solid #ffd587;outline-offset:2px}
.lb-scope p{flex:1 1 100%;margin:0;color:#9cb7c9;font-size:11px;line-height:1.45}
@media(max-width:530px){.lb-scope{padding:8px}.lb-scope select{flex:1 1 65%;width:100%}}
