@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600&display=swap');

:root {
  color-scheme: dark;
  --bg: #0b0e0b;
  --bg-deep: #070907;
  --panel: #111611;
  --panel-2: #171d17;
  --line: rgba(236, 245, 222, 0.12);
  --line-strong: rgba(236, 245, 222, 0.24);
  --text: #eef2e6;
  --muted: #96a08d;
  --muted-2: #677061;
  --accent: #d9ff57;
  --danger: #ff806b;
  --success: #d9ff57;
  --font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --font-body: Inter, system-ui, sans-serif;
  --max: 1280px;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--bg); scroll-behavior: smooth; }
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 82% -10%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 28rem),
    linear-gradient(rgba(255, 255, 255, .018) 1px, transparent 1px),
    var(--bg);
  background-size: auto, 100% 4px, auto;
  color: var(--text);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}
body::before {
  position: fixed;
  inset: 0;
  z-index: -1;
  content: '';
  opacity: .28;
  background-image: linear-gradient(90deg, transparent 49.8%, rgba(217,255,87,.06) 50%, transparent 50.2%);
  background-size: 13rem 100%;
  pointer-events: none;
}
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { color: inherit; }
svg { display: block; width: 1.05rem; height: 1.05rem; }
[hidden] { display: none !important; }

.skip-link {
  position: fixed; left: 1rem; top: -5rem; z-index: 100;
  background: var(--accent); color: #10150b; padding: .75rem 1rem; font-weight: 700;
}
.skip-link:focus { top: 1rem; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  border-bottom: 1px solid var(--line);
  background: rgba(7, 9, 7, .92);
  backdrop-filter: blur(18px);
}
.header-top {
  width: 100%; max-width: var(--max); min-width: 0; margin: auto; padding: .8rem 1.5rem;
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.5rem;
}
.header-top > * { min-width: 0; }
.brand { display: inline-flex; align-items: center; gap: .75rem; min-width: 0; }
.brand-mark {
  width: 2.25rem; height: 2.25rem; display: grid; place-items: center;
  border: 1px solid color-mix(in srgb, var(--accent) 38%, transparent);
  color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, transparent);
}
.brand-mark svg { width: 1.15rem; height: 1.15rem; }
.brand-copy small, .eyebrow {
  display: block; color: var(--muted); font: 500 .64rem/1.2 var(--font-mono);
  letter-spacing: .17em; text-transform: uppercase;
}
.brand-copy { min-width: 0; }
.brand-copy strong { display: block; min-width:0; margin-top: .18rem; overflow:hidden; font: 600 .86rem/1.2 var(--font-body); letter-spacing: .025em; text-overflow:ellipsis; white-space:nowrap; }
.game-nav { display: flex; align-items: stretch; justify-content: center; min-width: 0; }
.nav-link {
  position: relative; padding: .65rem .85rem; color: var(--muted);
  font: 600 .66rem/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase;
  transition: color .18s ease, background .18s ease;
}
.nav-link::after { position: absolute; right: .8rem; bottom: .25rem; left: .8rem; height: 1px; content: ''; background: transparent; }
.nav-link:hover { color: var(--text); background: rgba(255,255,255,.035); }
.nav-link.is-active { color: var(--accent); }
.nav-link.is-active::after { background: var(--accent); box-shadow: 0 0 10px var(--accent); }
.utility-actions { display: flex; flex:0 0 auto; gap: .4rem; }
.icon-button, .text-button, .control-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  min-height: 2.25rem; border: 1px solid var(--line); background: rgba(255,255,255,.025);
  color: var(--muted); cursor: pointer; transition: .18s ease;
}
.icon-button { width: 2.25rem; }
.text-button { padding: .55rem .8rem; font: 500 .64rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.icon-button:hover, .text-button:hover, .control-button:hover { border-color: var(--line-strong); color: var(--text); background: rgba(255,255,255,.06); }
.icon-button:focus-visible, .text-button:focus-visible, .control-button:focus-visible,
.nav-link:focus-visible, .game-card:focus-visible, .category-head:focus-visible,
.check-label:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.profile-strip { width:100%;max-width:100%;overflow:hidden;border-bottom:1px solid var(--line);background:rgba(11,14,11,.96); }
.profile-strip__inner { width:min(100%,var(--max));min-width:0;margin:auto;display:flex;align-items:center;gap:.65rem;padding:.55rem 1.5rem; }
.profile-picker { min-width:0;display:flex;align-items:center;gap:.55rem; }.profile-picker > span,.profile-status { color:var(--muted);font:500 .62rem/1 var(--font-mono);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap; }
.profile-picker select { width:min(16rem,32vw);min-width:0;height:2.25rem;border:1px solid var(--line);border-radius:0;background:var(--panel);color:var(--text);padding:0 .65rem;font:500 .75rem/1 var(--font-mono); }
.profile-actions { min-width:0;display:flex;gap:.35rem; }.profile-actions button { min-height:2.25rem;border:1px solid var(--line);background:transparent;color:var(--muted);padding:.45rem .6rem;cursor:pointer;font:500 .62rem/1 var(--font-mono);text-transform:uppercase; }.profile-actions button:hover { border-color:var(--accent);color:var(--accent); }.profile-actions button:disabled { opacity:.35;cursor:not-allowed; }
.profile-status { min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis; }

.page-shell { width: min(100%, var(--max)); margin: auto; padding: 2.7rem 1.5rem 4rem; }
.home-intro { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: 2rem; align-items: end; margin-bottom: 2.5rem; }
.status-chip {
  width: max-content; display: inline-flex; align-items: center; gap: .5rem;
  border: 1px solid color-mix(in srgb, var(--accent) 25%, transparent);
  background: color-mix(in srgb, var(--accent) 5%, transparent); color: var(--accent);
  padding: .42rem .65rem; font: 500 .63rem/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase;
}
.status-chip::before { width: .38rem; height: .38rem; content: ''; background: currentColor; box-shadow: 0 0 8px currentColor; border-radius: 50%; }
h1, h2, h3, p { margin-top: 0; }
.home-title {
  max-width: 56rem; margin: 1.1rem 0 .9rem; font: 600 clamp(3.25rem, 7.5vw, 6.5rem)/.82 var(--font-display);
  letter-spacing: -.045em; text-transform: uppercase;
}
.home-title em { color: var(--accent); font-style: normal; }
.lede { max-width: 43rem; margin: 0; color: var(--muted); font-size: .98rem; line-height: 1.7; }
.summary-module { position: relative; border: 1px solid var(--line); border-left: 2px solid var(--accent); background: rgba(17,22,17,.76); padding: 1.25rem; overflow: hidden; }
.summary-module::after { position: absolute; top: .7rem; right: .7rem; width: 2.2rem; height: 2.2rem; content: ''; border-top: 1px solid var(--line); border-right: 1px solid var(--line); }
.module-label, .metric-row, .card-meta, .scope-line { font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .08em; }
.module-label { color: var(--muted); font-size: .64rem; display: flex; justify-content: space-between; gap: 1rem; }
.progress-track, .mini-progress { position: relative; overflow: hidden; background: rgba(255,255,255,.08); }
.progress-track { height: .5rem; margin: 1rem 0 .65rem; }
.progress-track span, .mini-progress span { display: block; height: 100%; background: var(--accent); transition: width .3s ease; box-shadow: 0 0 15px color-mix(in srgb, var(--accent) 50%, transparent); }
.metric-row { display: flex; align-items: end; justify-content: space-between; }
.metric-row strong { font: 600 2.35rem/1 var(--font-display); letter-spacing: -.02em; }
.metric-row span { color: var(--accent); font-size: .62rem; }
.section-kicker { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 0 0 .85rem; }
.section-kicker h2 { margin: 0; font: 600 .7rem/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; }
.section-kicker span { color: var(--muted); font: 500 .62rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .12em; }
.game-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.game-card {
  --game-accent: var(--accent); position: relative; min-height: 16.5rem; overflow: hidden;
  border: 1px solid var(--line); background: rgba(17,22,17,.72); padding: 1.4rem 1.5rem 1.2rem 1.8rem;
  transition: transform .22s ease, border-color .22s ease, background .22s ease;
}
.game-card:hover { transform: translateY(-3px); border-color: var(--line-strong); background: var(--panel-2); }
.game-card__rail { position: absolute; inset: 0 auto 0 0; width: .26rem; background: var(--game-accent); }
.game-card__top { display: flex; justify-content: space-between; align-items: flex-start; }
.arrow-box { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border: 1px solid var(--line); color: var(--muted); transition: .2s ease; }
.game-card:hover .arrow-box { color: var(--game-accent); border-color: color-mix(in srgb, var(--game-accent) 42%, transparent); transform: translateX(3px); }
.game-card h2 { margin: 2.1rem 0 .2rem; font: 600 2rem/1 var(--font-display); letter-spacing: -.01em; text-transform: uppercase; }
.game-card > p { margin: 0; color: var(--muted); font-size: .8rem; }
.scope-line { display: grid; grid-template-columns: auto 1fr; gap: .65rem; margin-top: 2rem; font-size: .57rem; }
.scope-line span { color: var(--muted-2); }
.scope-line strong { min-width: 0; color: var(--muted); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-progress { height: .25rem; margin-top: .65rem; }
.mini-progress span { background: var(--game-accent); }
.card-meta { display: flex; justify-content: space-between; gap: 1rem; margin-top: .65rem; color: var(--muted); font-size: .58rem; }
.card-meta strong { color: var(--game-accent); }
.ghost-number { position: absolute; right: 4rem; bottom: -.35rem; color: rgba(255,255,255,.025); font: 700 7.5rem/1 var(--font-display); pointer-events: none; }
.home-foot { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; padding-top: 1.1rem; border-top: 1px solid var(--line); color: var(--muted-2); font: 500 .59rem/1.5 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.home-foot span { display: inline-flex; align-items: center; gap: .45rem; }
.home-foot svg { width: .85rem; height: .85rem; }
.home-panorama { position:relative;margin:0 0 2rem;border:1px solid var(--line);background:var(--panel);overflow:hidden; }
.home-panorama::after { position:absolute;inset:0;content:'';background:linear-gradient(180deg,transparent 45%,rgba(7,9,7,.72));pointer-events:none; }
.home-panorama img { display:block;width:100%;height:auto;aspect-ratio:3/1;object-fit:cover;filter:saturate(.72) contrast(1.08); }
.home-panorama figcaption { position:absolute;right:0;bottom:0;left:0;z-index:1;display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;color:var(--muted);font:500 .57rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase; }
.home-panorama figcaption span:first-child { color:var(--accent); }

.game-hero { position: relative; display: grid; grid-template-columns: 1fr auto; min-height: 18rem; margin: -2.7rem -1.5rem 0; padding: 3.3rem max(1.5rem, calc((100vw - var(--max)) / 2 + 1.5rem)) 2rem; border-bottom: 1px solid var(--line); overflow: hidden; }
.game-hero::before { position: absolute; inset: 0; content: ''; background: linear-gradient(120deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent 46%); pointer-events: none; }
.game-hero::after { position:absolute;inset:0 0 0 45%;content:'';background-image:linear-gradient(90deg,var(--bg),transparent 38%),url('mission-theatres.webp');background-repeat:no-repeat;background-size:auto,400% 100%;background-position:center,0 50%;opacity:.46;filter:saturate(.65) contrast(1.15);pointer-events:none; }
body[data-game="mgs2"] .game-hero::after { background-position:center,33.333% 50%; }
body[data-game="mgs3"] .game-hero::after { background-position:center,66.666% 50%; }
body[data-game="mgs4"] .game-hero::after { background-position:center,100% 50%; }
.game-hero__copy { position: relative;z-index:1;align-self: end; }
.game-hero h1 { margin: .7rem 0 0; font: 600 clamp(3.5rem, 8vw, 7rem)/.78 var(--font-display); letter-spacing: -.035em; text-transform: uppercase; }
.game-hero h1 span { display: block; margin-top: .4rem; color: var(--accent); font-size: .34em; letter-spacing: .04em; }
.game-hero p { max-width: 43rem; margin: 1.1rem 0 0; color: var(--muted); font-size: .88rem; line-height: 1.65; }
.game-number { position: relative;z-index:1;align-self: end; color: rgba(255,255,255,.06); font: 700 clamp(9rem, 20vw, 17rem)/.62 var(--font-display); letter-spacing: -.05em; user-select: none; }
.tracker-grid { display: grid; grid-template-columns: 18rem minmax(0, 1fr); gap: 1.25rem; padding-top: 1.25rem; }
.tracker-sidebar { position: sticky; top: 5.2rem; align-self: start; display: grid; gap: .75rem; }
.sidebar-module { border: 1px solid var(--line); background: rgba(17,22,17,.8); padding: 1rem; }
.sidebar-module--progress { border-top: 2px solid var(--accent); }
.sidebar-label { display: block; margin-bottom: .75rem; color: var(--muted); font: 500 .58rem/1 var(--font-mono); letter-spacing: .13em; text-transform: uppercase; }
.sidebar-stat { display: flex; justify-content: space-between; align-items: end; }
.sidebar-stat strong { font: 600 2.5rem/1 var(--font-display); }
.sidebar-stat span { color: var(--muted); font: 500 .65rem/1 var(--font-mono); }
.version-note { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.55; }
.version-note strong { color: var(--accent); font-weight: 600; }
.side-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; }
.control-button { padding: .62rem .55rem; font: 500 .58rem/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; }
.tracker-main { min-width: 0; }
.run-panel { margin-bottom: 1rem; border: 1px solid var(--line); border-top: 2px solid var(--accent); background: rgba(17,22,17,.78); }
.run-panel__head { display: flex; justify-content: space-between; gap: 2rem; padding: 1.2rem; border-bottom: 1px solid var(--line); }
.run-panel__head .eyebrow { color: var(--accent); }
.run-panel__head h2 { margin: .45rem 0 .3rem; font: 600 1.65rem/1 var(--font-display); letter-spacing: .01em; text-transform: uppercase; }
.run-panel__head p { max-width: 42rem; margin: 0; color: var(--muted); font-size: .73rem; line-height: 1.55; }
.run-total { min-width: 5rem; text-align: right; }
.run-total strong { display: block; color: var(--accent); font: 600 2.7rem/.85 var(--font-display); }
.run-total span { display: block; margin-top: .35rem; color: var(--muted); font: 500 .55rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.rank-planner { padding: 1rem 1.2rem 1.2rem; border-bottom: 1px solid var(--line); background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 5%, transparent), transparent 55%); }
.rank-planner__top { display: flex; justify-content: space-between; gap: 1rem; align-items: end; }
.rank-planner__top label { width: min(25rem, 100%); }
.rank-planner__top .sidebar-label { margin-bottom: .4rem; }
.rank-planner__top select { width: 100%; height: 2.5rem; border: 1px solid color-mix(in srgb, var(--accent) 42%, var(--line)); border-radius: 0; outline: 0; appearance: none; background: var(--bg-deep); color: var(--text); padding: 0 .75rem; font: 600 .7rem/1 var(--font-mono); text-transform: uppercase; }
.rank-planner__top button { height: 2.5rem; border: 1px solid var(--line); background: transparent; color: var(--muted); padding: 0 .75rem; cursor: pointer; font: 500 .56rem/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; }
.rank-planner__top button:hover { border-color: var(--accent); color: var(--accent); }
.rank-planner__note { margin: .65rem 0 .85rem; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.rank-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.rank-field { min-width: 0; }
.rank-field > span { display: block; margin-bottom: .35rem; color: var(--muted); font: 500 .53rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.rank-field input:not([type="checkbox"]), .rank-field select { width: 100%; height: 2.35rem; border: 1px solid var(--line); border-radius: 0; outline: 0; background: var(--bg-deep); color: var(--text); padding: 0 .65rem; font: 500 .65rem/1 var(--font-mono); }
.rank-field input:focus, .rank-field select:focus { border-color: var(--accent); }
.rank-field--check { display: flex; min-height: 2.35rem; align-items: center; align-self: end; gap: .55rem; border: 1px solid var(--line); background: var(--bg-deep); padding: 0 .65rem; }
.rank-field--check > span { margin: 0; }
.rank-field--check input { accent-color: var(--accent); }
.rank-status { display: flex; justify-content: space-between; gap: 1rem; margin-top: .8rem; border-left: 3px solid var(--muted-2); background: rgba(0,0,0,.18); padding: .72rem .8rem; }
.rank-status strong { font: 600 .72rem/1 var(--font-display); letter-spacing: .06em; text-transform: uppercase; }
.rank-status span { color: var(--muted); font: 500 .56rem/1.25 var(--font-mono); text-align: right; text-transform: uppercase; }
.rank-status--pass { border-left-color: var(--accent); }
.rank-status--pass strong { color: var(--accent); }
.rank-status--fail { border-left-color: var(--danger); }
.rank-status--fail strong { color: var(--danger); }
.rank-rules { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .35rem; margin-top: .55rem; }
.rank-rule { display: grid; grid-template-columns: 1.25rem minmax(0,1fr) auto; gap: .45rem; align-items: center; min-width: 0; border: 1px solid rgba(236,245,222,.07); padding: .5rem .6rem; }
.rank-rule__signal { display: grid; width: 1.05rem; height: 1.05rem; place-items: center; border: 1px solid var(--muted-2); color: var(--muted-2); font: 600 .6rem/1 var(--font-mono); }
.rank-rule strong, .rank-rule small { display: block; }
.rank-rule strong { font: 600 .64rem/1.25 var(--font-body); }
.rank-rule small { margin-top: .12rem; color: var(--muted); font: 500 .53rem/1.25 var(--font-mono); }
.rank-rule em { max-width: 7rem; overflow: hidden; color: var(--muted-2); font: 500 .55rem/1 var(--font-mono); text-overflow: ellipsis; white-space: nowrap; }
.rank-rule--pass .rank-rule__signal { border-color: var(--accent); color: var(--accent); }
.rank-rule--fail .rank-rule__signal { border-color: var(--danger); color: var(--danger); }
.archive-label { padding: .9rem 1.2rem 0; }
.archive-label .eyebrow { color: var(--accent); }
.archive-label p { margin: .35rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.run-form { display: grid; grid-template-columns: 1.25fr 1fr .85fr .75fr; gap: .55rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }
.run-field { min-width: 0; }
.run-field > span { display: block; margin-bottom: .38rem; color: var(--muted); font: 500 .55rem/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.run-field input, .run-field select { width: 100%; height: 2.45rem; border: 1px solid var(--line); border-radius: 0; outline: 0; background: var(--bg-deep); color: var(--text); padding: 0 .7rem; font: 500 .67rem/1 var(--font-mono); }
.run-field select { appearance: none; }
.run-field input::placeholder { color: var(--muted-2); }
.run-field input:focus, .run-field select:focus { border-color: var(--accent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent); }
.run-field--notes { grid-column: 1 / -2; }
.run-add { align-self: end; height: 2.45rem; border: 1px solid var(--accent); border-radius: 0; background: var(--accent); color: #0b0e0b; cursor: pointer; font: 600 .62rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.run-add:hover { box-shadow: 0 0 18px color-mix(in srgb, var(--accent) 24%, transparent); }
.rank-achievements { display: grid; grid-template-columns: 8rem minmax(0,1fr); gap: 1rem; align-items: center; padding: .85rem 1.2rem; border-bottom: 1px solid var(--line); }
.rank-achievements .sidebar-label { margin: 0; }
.rank-chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.rank-chips span { border: 1px solid color-mix(in srgb, var(--accent) 32%, transparent); background: color-mix(in srgb, var(--accent) 5%, transparent); color: var(--accent); padding: .3rem .45rem; font: 500 .57rem/1 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; }
.rank-chips em { color: var(--muted-2); font: 400 .65rem/1.4 var(--font-body); }
.run-list { max-height: 21rem; overflow: auto; }
.run-entry { display: grid; grid-template-columns: 2rem minmax(0,1fr) auto; gap: .8rem; align-items: start; padding: .8rem 1.2rem; }
.run-entry + .run-entry { border-top: 1px solid rgba(236,245,222,.075); }
.run-index { padding-top: .12rem; color: var(--muted-2); font: 500 .58rem/1 var(--font-mono); }
.run-entry__copy strong { display: block; font: 600 .82rem/1.25 var(--font-body); }
.run-entry__copy span { display: block; margin-top: .2rem; color: var(--accent); font: 500 .57rem/1.35 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; }
.run-entry__copy p { margin: .28rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.run-entry button { border: 0; background: transparent; color: var(--muted-2); cursor: pointer; padding: .2rem 0; font: 500 .55rem/1 var(--font-mono); text-transform: uppercase; }
.run-entry button:hover { color: var(--danger); }
.run-empty { padding: 1.1rem 1.2rem; color: var(--muted-2); }
.run-empty strong, .run-empty span { display: block; }
.run-empty strong { color: var(--muted); font: 600 .78rem/1 var(--font-display); letter-spacing: .05em; text-transform: uppercase; }
.run-empty span { margin-top: .3rem; font-size: .65rem; }
.challenge-protocols { padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); background: rgba(0,0,0,.14); }
.challenge-head { display: flex; align-items: center; gap: .75rem; }
.challenge-head > div { margin-right: auto; }
.challenge-head .sidebar-label { margin-bottom: .3rem; }
.challenge-head strong { font: 600 1rem/1 var(--font-display); text-transform: uppercase; }
.challenge-head > span { color: var(--accent); font: 600 .58rem/1 var(--font-mono); text-transform: uppercase; }
.challenge-head button, .dogtag-actions button { border: 1px solid var(--line); background: transparent; color: var(--muted); padding: .5rem .65rem; cursor: pointer; font: 500 .53rem/1 var(--font-mono); text-transform: uppercase; }
.protocol-list { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .75rem; }
.protocol-chip { cursor: pointer; }
.protocol-chip input { position: absolute; opacity: 0; }
.protocol-chip span { display: block; border: 1px solid var(--line); color: var(--muted); padding: .45rem .6rem; font: 500 .56rem/1 var(--font-mono); text-transform: uppercase; }
.protocol-chip input:checked + span { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, transparent); color: var(--accent); }
.challenge-protocols > p { margin: .65rem 0 0; color: var(--muted-2); font-size: .62rem; }
.run-stats { grid-column: 1 / -1; border: 1px solid var(--line); }
.run-stats summary { padding: .65rem .75rem; cursor: pointer; color: var(--accent); font: 500 .58rem/1 var(--font-mono); text-transform: uppercase; }
.run-stats__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .55rem; padding: .2rem .75rem .75rem; }
.run-metrics, .run-restrictions { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .45rem; }
.run-metrics small, .run-restrictions small { border: 1px solid var(--line); padding: .25rem .35rem; color: var(--muted); font: 500 .52rem/1 var(--font-mono); text-transform: uppercase; }
.run-metrics b { color: var(--text); }.run-restrictions small { border-color: color-mix(in srgb,var(--accent) 32%,transparent); color: var(--accent); }
.trophy-panel, .dogtag-tools { margin-bottom: 1rem; border: 1px solid var(--line); border-top: 2px solid var(--accent); background: rgba(17,22,17,.78); }
.trophy-head, .dogtag-tools__head { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1rem 1.2rem; }
.trophy-head .eyebrow, .dogtag-tools .eyebrow { color: var(--accent); }
.trophy-head h2, .dogtag-tools h2 { margin: .35rem 0 .2rem; font: 600 1.25rem/1 var(--font-display); text-transform: uppercase; }
.trophy-head p { margin: 0; color: var(--muted); font-size: .66rem; }
.trophy-total { text-align: right; }.trophy-total strong { display: block; color: var(--accent); font: 600 1.4rem/1 var(--font-display); }.trophy-total span { color: var(--muted); font: .55rem/1 var(--font-mono); }
.trophy-drawer { border-top: 1px solid var(--line); }.trophy-drawer > summary { padding: .75rem 1.2rem; cursor: pointer; color: var(--accent); font: 500 .58rem/1 var(--font-mono); text-transform: uppercase; }
.trophy-list { max-height: 28rem; overflow: auto; border-top: 1px solid var(--line); }
.trophy-row { display: grid; grid-template-columns: 1rem minmax(0,1fr) auto; gap: .7rem; align-items: center; padding: .7rem 1.2rem; border-bottom: 1px solid rgba(236,245,222,.07); cursor: pointer; }
.trophy-row input { accent-color: var(--accent); }.trophy-row strong,.trophy-row small { display:block; }.trophy-row strong { font-size:.72rem; }.trophy-row small { margin-top:.15rem;color:var(--muted);font-size:.55rem; }.trophy-row em { color:var(--muted-2);font:500 .5rem/1 var(--font-mono);text-transform:uppercase; }.trophy-row.is-done strong { color:var(--muted);text-decoration:line-through; }
.dogtag-tools__head > strong { color: var(--accent); font: 600 .65rem/1 var(--font-mono); text-transform: uppercase; }
.dogtag-filter-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; padding:0 1.2rem 1rem; }
.dogtag-filter-grid label > span { display:block;margin-bottom:.35rem;color:var(--muted);font:500 .53rem/1 var(--font-mono);text-transform:uppercase; }.dogtag-filter-grid select { width:100%;height:2.4rem;border:1px solid var(--line);border-radius:0;background:var(--bg-deep);color:var(--text);padding:0 .6rem; }
.dogtag-actions { display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;padding:.75rem 1.2rem;border-top:1px solid var(--line); }.dogtag-actions label { margin-right:auto;color:var(--muted);font-size:.65rem; }.dogtag-actions input { accent-color:var(--accent); }
.dogtag-help { display:none;margin-top:.55rem;border-left:2px solid var(--danger);padding:.45rem .6rem;color:#ffc1b7;background:rgba(255,128,107,.06);font:500 .57rem/1.45 var(--font-mono); }.dogtag-tools.show-help ~ .filter-bar ~ .result-line ~ [data-categories] .dogtag-help { display:block; }
.dog-reward-head { display:flex;justify-content:space-between;gap:1rem;align-items:end;padding:1rem 1.2rem;border-top:1px solid var(--line);background:rgba(0,0,0,.16); }.dog-reward-head .eyebrow { margin-bottom:.35rem; }.dog-reward-head strong { font:600 1.1rem/1 var(--font-display);text-transform:uppercase; }.dog-reward-head label span { display:block;margin-bottom:.3rem;color:var(--muted);font:500 .53rem/1 var(--font-mono);text-transform:uppercase; }.dog-reward-head select { min-width:13rem;height:2.4rem;border:1px solid var(--line);border-radius:0;background:var(--bg-deep);color:var(--text);padding:0 .6rem;font:500 .63rem/1 var(--font-mono); }
.dog-reward-grid { display:grid;grid-template-columns:1fr 1fr;gap:.7rem;padding:0 1.2rem 1.2rem;background:rgba(0,0,0,.16); }.dog-reward-ladder { min-width:0;border:1px solid var(--line);background:var(--panel);padding:.85rem; }.dog-reward-summary { display:grid;grid-template-columns:1fr auto;gap:.25rem .75rem;align-items:center; }.dog-reward-summary > span { color:var(--accent);font:600 .67rem/1 var(--font-mono);text-transform:uppercase; }.dog-reward-summary > strong { font:600 .72rem/1 var(--font-mono); }.dog-reward-summary > small { grid-column:1/-1;color:var(--muted);font-size:.62rem; }.dog-reward-track { height:.35rem;margin:.7rem 0;background:rgba(255,255,255,.08);overflow:hidden; }.dog-reward-track span { display:block;height:100%;background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 45%,transparent); }.dog-reward-stops { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.3rem; }.dog-reward-stops > span { min-width:0;border-top:2px solid var(--line);padding-top:.4rem;color:var(--muted-2); }.dog-reward-stops b,.dog-reward-stops small { display:block; }.dog-reward-stops b { font:600 .68rem/1 var(--font-mono); }.dog-reward-stops small { margin-top:.18rem;overflow:hidden;font-size:.52rem;line-height:1.25;text-overflow:ellipsis; }.dog-reward-stops .is-earned { border-color:var(--accent);color:var(--accent); }.dog-reward-stops .is-next { border-color:#ffc15a;color:#ffc15a; }
.rank-hud { position:fixed;right:1.2rem;bottom:1.2rem;z-index:60;width:min(22rem,calc(100vw - 2.4rem));display:grid;grid-template-columns:.8rem minmax(0,1fr) auto;gap:.7rem;align-items:center;border:1px solid var(--line-strong);border-left:3px solid #ffc15a;background:rgba(11,14,11,.96);padding:.75rem;box-shadow:0 .8rem 2.5rem #000;backdrop-filter:blur(16px); }.rank-hud__signal { color:#ffc15a;font-size:.65rem; }.rank-hud__copy small,.rank-hud__copy strong,.rank-hud__copy em { display:block; }.rank-hud__copy small { color:var(--muted);font:500 .5rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase; }.rank-hud__copy strong { margin-top:.2rem;font:600 .78rem/1.1 var(--font-display);text-transform:uppercase; }.rank-hud__copy em { margin-top:.18rem;color:#ffc15a;font:500 .54rem/1.2 var(--font-mono);font-style:normal;text-transform:uppercase; }.rank-hud button { border:1px solid var(--line);background:transparent;color:var(--text);padding:.55rem .6rem;cursor:pointer;font:500 .52rem/1 var(--font-mono);text-transform:uppercase; }.rank-hud[data-status="pass"] { border-left-color:var(--accent); }.rank-hud[data-status="pass"] .rank-hud__signal,.rank-hud[data-status="pass"] .rank-hud__copy em { color:var(--accent); }.rank-hud[data-status="fail"] { border-left-color:var(--danger); }.rank-hud[data-status="fail"] .rank-hud__signal,.rank-hud[data-status="fail"] .rank-hud__copy em { color:var(--danger); }.has-rank-hud { padding-bottom:5.8rem; }.has-rank-hud .toast { bottom:6.4rem; }
.update-notice { position:fixed;left:50%;bottom:1.2rem;z-index:75;width:min(36rem,calc(100vw - 2.4rem));display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.6rem;align-items:center;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-left:3px solid var(--accent);background:#151b14;padding:.8rem;box-shadow:0 .8rem 2.5rem #000;transform:translateX(-50%); }.has-rank-hud .update-notice { bottom:6.4rem; }.update-notice strong,.update-notice span { display:block; }.update-notice strong { font:600 .82rem/1 var(--font-display);text-transform:uppercase; }.update-notice span { margin-top:.25rem;color:var(--muted);font-size:.62rem; }.update-notice button { min-height:2.35rem;border:1px solid var(--line);background:transparent;color:var(--muted);padding:.5rem .65rem;cursor:pointer;font:500 .55rem/1 var(--font-mono);text-transform:uppercase; }.update-notice [data-update-now] { border-color:var(--accent);color:var(--accent); }
.routing-panel, .mission-map-panel, .recovery-panel, .area-exit-panel { min-width:0;margin-bottom:1rem;border:1px solid var(--line);background:rgba(17,22,17,.78); }
.routing-panel { border-top:2px solid var(--accent); }
.routing-head, .mission-map-head, .area-exit-head { display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.2rem; }
.routing-head .eyebrow, .mission-map-head .eyebrow, .area-exit-head .eyebrow { color:var(--accent); }
.routing-head h2, .mission-map-head h2, .area-exit-head h2 { margin:.4rem 0 .25rem;font:600 1.35rem/1 var(--font-display);text-transform:uppercase; }
.routing-head p, .mission-map-head p, .area-exit-head p { margin:0;color:var(--muted);font-size:.68rem;line-height:1.45; }
.roadmap-minimum { min-width:9rem;text-align:right; }.roadmap-minimum span,.roadmap-minimum strong { display:block; }.roadmap-minimum span { color:var(--muted);font:500 .52rem/1 var(--font-mono);text-transform:uppercase; }.roadmap-minimum strong { margin-top:.3rem;color:var(--accent);font:600 .82rem/1.2 var(--font-display);text-transform:uppercase; }
.preset-controls { display:flex;gap:.55rem;align-items:end;padding:.85rem 1.2rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(0,0,0,.14); }.preset-controls label { flex:1; }.preset-controls label span,.area-nav label span { display:block;margin-bottom:.35rem;color:var(--muted);font:500 .53rem/1 var(--font-mono);text-transform:uppercase; }.preset-controls select,.area-nav select { width:100%;height:2.45rem;border:1px solid var(--line);border-radius:0;background:var(--bg-deep);color:var(--text);padding:0 .65rem;font:500 .65rem/1 var(--font-mono); }.preset-controls button { height:2.45rem;border:1px solid var(--line);background:transparent;color:var(--muted);padding:0 .75rem;cursor:pointer;font:500 .55rem/1 var(--font-mono);text-transform:uppercase; }.preset-controls [data-preset-activate] { border-color:var(--accent);color:var(--accent); }
.roadmap-copy { padding:.85rem 1.2rem; }.roadmap-copy strong { font:600 .9rem/1 var(--font-display);text-transform:uppercase; }.roadmap-copy p { margin:.3rem 0;color:var(--muted);font-size:.68rem;line-height:1.45; }.roadmap-copy span { color:var(--accent);font:500 .53rem/1.3 var(--font-mono);text-transform:uppercase; }
.roadmap-phases { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:0 1.2rem 1.2rem; }.roadmap-phase { display:grid;grid-template-columns:1.7rem minmax(0,1fr) auto;gap:.6rem;align-items:start;border:1px solid var(--line);background:transparent;color:var(--text);padding:.7rem;text-align:left;cursor:pointer; }.roadmap-phase:hover,.roadmap-phase.is-active { border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 5%,transparent); }.roadmap-phase__index { color:var(--accent);font:600 .57rem/1 var(--font-mono); }.roadmap-phase strong,.roadmap-phase small { display:block; }.roadmap-phase strong { font-size:.72rem;line-height:1.25; }.roadmap-phase small { margin-top:.2rem;color:var(--muted);font-size:.6rem;line-height:1.4; }.roadmap-phase em { color:var(--accent);font:500 .53rem/1 var(--font-mono);white-space:nowrap; }
.mission-map-panel { border-top:2px solid color-mix(in srgb,var(--accent) 60%,var(--line)); }
.mission-map-total { flex:0 0 auto;text-align:right; }.mission-map-total strong,.mission-map-total span { display:block; }.mission-map-total strong { color:var(--accent);font:600 1.65rem/1 var(--font-display); }.mission-map-total span { margin-top:.25rem;color:var(--muted);font:500 .53rem/1 var(--font-mono);text-transform:uppercase; }
.mission-map-drawer { border-top:1px solid var(--line); }.mission-map-drawer > summary { display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1.2rem;cursor:pointer;color:var(--accent);font:500 .58rem/1 var(--font-mono);text-transform:uppercase; }.mission-map-drawer > summary em { color:var(--muted);font-style:normal; }
.mission-map-scroll { max-height:28rem;max-width:100%;overflow:auto;overscroll-behavior:contain;padding:.25rem 1.2rem 1.2rem; }
.mission-route { position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;min-width:0; }
.mission-map-node { position:relative;min-width:0;display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:.65rem;align-items:center;border:1px solid var(--line);background:rgba(0,0,0,.12);color:var(--text);padding:.7rem;text-align:left;cursor:pointer; }
.mission-map-node:hover,.mission-map-node.is-current { border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent); }.mission-map-node.is-current { box-shadow:inset 3px 0 var(--accent); }
.mission-map-node.is-clear { border-color:color-mix(in srgb,var(--accent) 26%,var(--line)); }.mission-map-index { color:var(--accent);font:600 .58rem/1 var(--font-mono); }.mission-map-copy { min-width:0; }.mission-map-copy strong,.mission-map-copy small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.mission-map-copy strong { font-size:.72rem; }.mission-map-copy small { margin-top:.2rem;color:var(--muted);font-size:.58rem; }.mission-map-status { color:#ffc15a;font:500 .53rem/1 var(--font-mono);white-space:nowrap;text-transform:uppercase; }.mission-map-node.is-clear .mission-map-status { color:var(--accent); }
.recovery-panel { border-top:2px solid #ffc15a; }.recovery-head { display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.2rem; }.recovery-head .eyebrow { color:#ffc15a; }.recovery-head h2 { margin:.4rem 0 .25rem;font:600 1.35rem/1 var(--font-display);text-transform:uppercase; }.recovery-head p { margin:0;color:var(--muted);font-size:.75rem;line-height:1.5; }.recovery-total { flex:0 0 auto;text-align:right; }.recovery-total strong,.recovery-total span { display:block; }.recovery-total strong { color:#ffc15a;font:600 1.65rem/1 var(--font-display); }.recovery-total span { margin-top:.25rem;color:var(--muted);font:500 .62rem/1 var(--font-mono);text-transform:uppercase; }
.recovery-summary { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;padding:.8rem 1.2rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(0,0,0,.14); }.recovery-chip { min-width:0;display:flex;align-items:center;gap:.55rem;border-left:2px solid var(--muted-2);padding:.5rem .6rem;color:var(--muted);font:500 .65rem/1.3 var(--font-mono);text-transform:uppercase; }.recovery-chip strong { color:var(--text);font-size:1rem; }.recovery-chip--available { border-color:var(--accent); }.recovery-chip--review { border-color:#ffc15a; }.recovery-chip--next { border-color:var(--danger); }
.recovery-columns { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;padding:1rem 1.2rem 1.2rem; }.recovery-group { min-width:0;border:1px solid var(--line);background:rgba(0,0,0,.12); }.recovery-group > summary { min-height:3.5rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:center;padding:.65rem .75rem;cursor:pointer; }.recovery-group > summary strong,.recovery-group > summary small { display:block; }.recovery-group > summary strong { font-size:.78rem; }.recovery-group > summary small { margin-top:.2rem;color:var(--muted);font-size:.65rem;line-height:1.4; }.recovery-group > summary em { color:var(--accent);font:500 .65rem/1 var(--font-mono);font-style:normal; }.recovery-group > div { max-height:24rem;overflow:auto;border-top:1px solid var(--line); }
.recovery-item { min-width:0;display:grid;grid-template-columns:1rem minmax(0,1fr);gap:.55rem;align-items:start;padding:.65rem .75rem;border-bottom:1px solid rgba(236,245,222,.07);cursor:pointer; }.recovery-item input { margin-top:.1rem;accent-color:var(--accent); }.recovery-item strong,.recovery-item small { display:block; }.recovery-item strong { font-size:.72rem;line-height:1.35; }.recovery-item small { margin-top:.18rem;color:var(--muted);font-size:.62rem;line-height:1.4; }.recovery-empty,.recovery-more { margin:0;padding:.8rem;color:var(--muted);font-size:.68rem;line-height:1.45; }.recovery-more { color:var(--accent);font-family:var(--font-mono);text-transform:uppercase; }
.area-exit-panel { border-left:3px solid #ffc15a; }.area-exit-head h2 { color:#ffc15a; }.area-nav { display:grid;grid-template-columns:2.45rem minmax(12rem,20rem) 2.45rem;gap:.4rem;align-items:end; }.area-nav button { width:2.45rem;height:2.45rem;border:1px solid var(--line);background:var(--bg-deep);color:var(--accent);cursor:pointer; }.area-nav button:disabled { opacity:.3;cursor:not-allowed; }
.area-type-summary { padding:.75rem 1.2rem;border-top:1px solid var(--line);background:rgba(0,0,0,.12); }.area-type-label { display:block;margin-bottom:.5rem;color:var(--muted);font:500 .62rem/1 var(--font-mono);text-transform:uppercase; }.area-type-summary > div { display:flex;flex-wrap:wrap;gap:.4rem; }.area-type-chip { max-width:100%;display:inline-flex;align-items:center;gap:.55rem;border:1px solid var(--line);padding:.4rem .5rem;color:var(--muted); }.area-type-chip strong { min-width:0;overflow:hidden;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap; }.area-type-chip em { color:#ffc15a;font:500 .62rem/1 var(--font-mono);font-style:normal;white-space:nowrap; }.area-type-chip.is-clear { border-color:color-mix(in srgb,var(--accent) 35%,var(--line)); }.area-type-chip.is-clear em { color:var(--accent); }.area-type-empty { color:var(--muted);font-size:.72rem; }
.area-risk-list { border-top:1px solid var(--line); }.area-risk { display:grid;grid-template-columns:1rem minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.7rem 1.2rem;border-bottom:1px solid rgba(236,245,222,.07);cursor:pointer; }.area-risk input { accent-color:var(--accent); }.area-risk strong,.area-risk small { display:block; }.area-risk strong { font-size:.72rem; }.area-risk small { margin-top:.16rem;color:var(--muted);font-size:.56rem; }.area-risk em { color:var(--danger);font:500 .52rem/1 var(--font-mono);text-transform:uppercase; }.area-clear { padding:1rem 1.2rem; }.area-clear strong,.area-clear span { display:block; }.area-clear strong { color:var(--accent);font:600 .85rem/1 var(--font-display);text-transform:uppercase; }.area-clear span { margin-top:.3rem;color:var(--muted);font-size:.65rem; }.area-more { margin:0;padding:.6rem 1.2rem;color:var(--muted);font:500 .55rem/1.4 var(--font-mono);text-transform:uppercase; }
.field-mode .game-hero, .field-mode .run-panel, .field-mode .trophy-panel, .field-mode .routing-panel, .field-mode .mission-map-panel, .field-mode .recovery-panel { display:none; }.field-mode .tracker-grid { grid-template-columns:1fr; }.field-mode .tracker-sidebar { position:static;display:grid;grid-template-columns:repeat(3,1fr); }.field-mode .area-exit-panel { position:sticky;top:3.8rem;z-index:26;background:var(--panel); }.field-mode .check-label { min-height:4.6rem;align-items:center;padding-top:1.2rem;padding-bottom:1.2rem; }.field-mode .main-check,.field-mode .main-check input { width:1.55rem;height:1.55rem; }.field-mode .check-title { font-size:1rem; }.field-mode .check-detail { font-size:.8rem; }.field-mode .filter-bar { position:static; }
.filter-bar { position: sticky; top: 3.85rem; z-index: 25; display: grid; grid-template-columns: minmax(12rem, 1fr) 9.5rem 10rem 14rem; gap: .55rem; padding: .7rem; border: 1px solid var(--line); background: rgba(11,14,11,.93); backdrop-filter: blur(15px); }
.field-wrap { position: relative; }
.field-wrap svg { position: absolute; left: .8rem; top: 50%; width: .9rem; height: .9rem; color: var(--muted); transform: translateY(-50%); pointer-events: none; }
.field-wrap input, .field-wrap select {
  width: 100%; height: 2.6rem; border: 1px solid var(--line); border-radius: 0; outline: 0;
  background: var(--panel); color: var(--text); font: 500 .72rem/1 var(--font-mono);
}
.field-wrap input { padding: 0 2.3rem 0 2.45rem; }
.field-wrap select { appearance: none; padding: 0 2rem 0 .8rem; }
.field-wrap input::placeholder { color: var(--muted-2); }
.field-wrap input:focus, .field-wrap select:focus { border-color: var(--accent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent); }
.field-clear { position: absolute; top: .45rem; right: .45rem; width: 1.7rem; height: 1.7rem; border: 0; background: transparent; color: var(--muted); cursor: pointer; }
.select-wrap::after { position: absolute; right: .8rem; top: .92rem; content: '⌄'; color: var(--accent); pointer-events: none; }
.result-line { display: flex; justify-content: space-between; margin: .7rem 0; color: var(--muted-2); font: 500 .59rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.category { border: 1px solid var(--line); background: rgba(17,22,17,.64); margin-bottom: .65rem; }
.category.is-complete { border-color: color-mix(in srgb, var(--accent) 30%, transparent); }
.category-head { width: 100%; min-height: 5.2rem; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto 1.6rem; gap: .85rem; align-items: center; border: 0; background: transparent; padding: .9rem 1rem; text-align: left; cursor: pointer; }
.category-head:hover { background: rgba(255,255,255,.025); }
.category-index { color: var(--accent); font: 600 .68rem/1 var(--font-mono); }
.category-name strong { display: block; font: 600 1.1rem/1.1 var(--font-display); letter-spacing: .015em; text-transform: uppercase; }
.category-name small { display: block; max-width: 50rem; margin-top: .3rem; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.category-count { color: var(--muted); font: 500 .63rem/1 var(--font-mono); white-space: nowrap; }
.category-chevron { color: var(--muted); transform: rotate(90deg); transition: transform .18s ease; }
.category-head[aria-expanded="false"] .category-chevron { transform: rotate(0); }
.category-body { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.category-body.is-collapsed { display: none; }
.check-row + .check-row { border-top: 1px solid rgba(236,245,222,.075); }
.check-row { transition: background .18s ease; }
.check-row:hover { background: rgba(255,255,255,.025); }
.check-row.is-done { background: color-mix(in srgb, var(--accent) 2.5%, transparent); }
.check-label { position: relative; display: grid; grid-template-columns: 1.25rem minmax(0,1fr); gap: .85rem; padding: .9rem 1rem .95rem 4.35rem; cursor: pointer; }
.main-check { display: block; width: 1.15rem; height: 1.15rem; }
.main-check input {
  position: relative; width: 1.15rem; height: 1.15rem; margin: .05rem 0 0; appearance: none;
  border: 1px solid var(--line-strong); border-radius: 0; background: var(--bg-deep); color: #0b0e0b;
  cursor: pointer; transition: .15s ease;
}
.main-check input::after { position: absolute; inset: 0; display: grid; place-items: center; content: '✓'; opacity: 0; font: 700 .78rem/1 var(--font-mono); transform: scale(.7); transition: .15s ease; }
.main-check input:checked { border-color: var(--accent); background: var(--accent); box-shadow: 0 0 12px color-mix(in srgb, var(--accent) 22%, transparent); }
.main-check input:checked::after { opacity: 1; transform: scale(1); }
.custom-check { display: none; }
.check-copy { min-width: 0; display: block; }
.check-title { display: block; color: var(--text); font-size: .81rem; font-weight: 600; line-height: 1.35; transition: color .18s ease; }
.is-done .check-title { color: var(--muted); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--accent) 50%, transparent); }
.check-detail { display: block; margin-top: .28rem; color: var(--muted); font-size: .7rem; line-height: 1.55; }
.tag-line { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .48rem; }
.task-tag { display: inline-flex; border: 1px solid color-mix(in srgb, var(--accent) 23%, transparent); color: var(--accent); padding: .2rem .35rem; font: 500 .54rem/1 var(--font-mono); letter-spacing: .045em; text-transform: uppercase; }
.task-tag--warning { border-color: color-mix(in srgb, var(--danger) 48%, transparent); background: color-mix(in srgb, var(--danger) 8%, transparent); color: var(--danger); }
.task-tag--marker { background: rgba(255,255,255,.025); }
.task-tag--missable, .task-tag--chase-sequence { border-color: color-mix(in srgb, var(--danger) 48%, transparent); color: var(--danger); }
.task-tag--ng, .task-tag--one-run { border-color: rgba(255,193,90,.42); color: #ffc15a; }
.task-tag--muted { border-color: var(--line); color: var(--muted); }
.subcheck-list { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .65rem; }
.subcheck { display: inline-flex; align-items: center; gap: .38rem; min-height: 1.9rem; border: 1px solid var(--line); background: var(--bg-deep); padding: .3rem .48rem; cursor: pointer; color: var(--muted); font: 500 .58rem/1 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; }
.subcheck:hover { border-color: var(--line-strong); color: var(--text); }
.subcheck input { width: .82rem; height: .82rem; margin: 0; accent-color: var(--accent); }
.subcheck:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 34%, transparent); color: var(--accent); background: color-mix(in srgb, var(--accent) 5%, transparent); }
.subcheck small { color: var(--muted-2); font-size: .48rem; }
.empty-state { border: 1px dashed var(--line-strong); padding: 3rem 1rem; text-align: center; color: var(--muted); }
.empty-state strong { display: block; color: var(--text); font: 600 1.4rem/1 var(--font-display); text-transform: uppercase; }
.empty-state span { display: block; margin-top: .5rem; font-size: .75rem; }

.site-footer { width: min(100%, var(--max)); margin: auto; padding: 0 1.5rem 2rem; }
.footer-inner { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); padding-top: 1.1rem; color: var(--muted-2); font: 500 .58rem/1.5 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }

.reset-dialog { width: min(92vw, 30rem); padding: 0; border: 1px solid var(--line-strong); border-radius: 0; background: var(--panel); color: var(--text); box-shadow: 0 1.5rem 5rem #000; }
.reset-dialog::backdrop { background: rgba(0,0,0,.78); backdrop-filter: blur(4px); }
.dialog-body { padding: 1.5rem; }
.dialog-body .eyebrow { color: var(--danger); }
.dialog-body h2 { margin: .55rem 0 .55rem; font: 600 2rem/1 var(--font-display); text-transform: uppercase; }
.dialog-body p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.6; }
.dialog-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; padding: 1rem 1.5rem; border-top: 1px solid var(--line); background: var(--bg-deep); }
.dialog-actions .danger { border-color: color-mix(in srgb, var(--danger) 50%, transparent); color: var(--danger); }
.toast { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 80; max-width: min(24rem, calc(100vw - 2.4rem)); border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent); border-left: 3px solid var(--accent); background: #151b14; padding: .9rem 1rem; box-shadow: 0 .7rem 2.5rem #000; color: var(--text); font: 500 .72rem/1.5 var(--font-mono); }
.toast[data-type="error"] { border-color: color-mix(in srgb, var(--danger) 50%, transparent); border-left-color: var(--danger); }
.toast[data-type="warning"] { border-left-color: #ffc15a; }
.noscript { margin: 1rem auto; max-width: 45rem; padding: 1rem; border: 1px solid var(--danger); color: var(--danger); }

@media (max-width: 960px) {
  .profile-strip__inner { flex-wrap:wrap; }.profile-status { width:100%;margin-left:0; }
  .header-top { grid-template-columns: minmax(0,1fr) auto; gap: .8rem; }
  .game-nav { grid-column: 1 / -1; justify-content: flex-start; order: 3; overflow-x: auto; border-top: 1px solid var(--line); margin: .1rem -1.5rem -.8rem; padding: .15rem 1rem; scrollbar-width: none; }
  .utility-actions { justify-self: end; }
  .home-intro { grid-template-columns: 1fr; }
  .summary-module { max-width: 38rem; }
  .tracker-grid { grid-template-columns: 1fr; }
  .tracker-sidebar { position: static; grid-template-columns: 1fr 1fr; }
  .sidebar-module--progress { grid-row: span 2; }
  .run-form { grid-template-columns: 1fr 1fr; }
  .run-field--notes { grid-column: 1 / 2; }
  .run-stats__grid, .dogtag-filter-grid { grid-template-columns: 1fr 1fr; }
  .dog-reward-grid { grid-template-columns:1fr; }
  .roadmap-phases { grid-template-columns:1fr; }
  .routing-head,.mission-map-head,.recovery-head,.area-exit-head { align-items:stretch;flex-direction:column; }.roadmap-minimum,.mission-map-total,.recovery-total { text-align:left; }.area-nav { grid-template-columns:2.45rem minmax(0,1fr) 2.45rem; }
  .rank-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filter-bar { top: 7.1rem; }
}

@media (max-width: 680px) {
  body { padding-bottom: env(safe-area-inset-bottom); }
  .header-top, .page-shell, .site-footer { padding-left: .75rem; padding-right: .75rem; }
  .header-top { padding-top: max(.65rem, env(safe-area-inset-top)); gap: .55rem; }
  .profile-strip__inner { display:grid;grid-template-columns:1fr;gap:.5rem;padding:.65rem .75rem; }.profile-picker { display:grid;grid-template-columns:auto minmax(0,1fr); }.profile-picker select { width:100%;min-height:2.75rem;font-size:.9rem; }.profile-actions { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.3rem; }.profile-actions button { min-width:0;min-height:2.75rem;padding:.45rem .2rem;font-size:.68rem; }.profile-status { overflow:visible;font-size:.68rem;white-space:normal; }
  .brand { gap: .55rem; }
  .brand-mark { width: 2.75rem; height: 2.75rem; }
  .brand-copy small { display: none; }
  .brand-copy strong { font-size: .875rem; line-height: 1.15; }
  .text-button .button-label { display: none; }
  .icon-button, .text-button { width: 2.75rem; min-height: 2.75rem; padding: 0; }
  .utility-actions { gap: .3rem; }
  .site-header, .header-top, .game-nav { width:100%; max-width:100%; min-width:0; }
  .game-nav { display:grid; grid-template-columns:minmax(0,1.45fr) repeat(4,minmax(0,1fr)); margin:.1rem 0 -.8rem; padding:.25rem 0 .35rem; overflow:hidden; }
  .nav-link { min-width:0; min-height:2.75rem; display:flex; align-items:center; justify-content:center; overflow:hidden; padding:.75rem .15rem; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
  .page-shell { padding-top: 1.25rem; padding-bottom: 2.5rem; }
  .home-title { font-size: clamp(3rem, 17vw, 5.2rem); }
  .lede { font-size: 1rem; line-height: 1.6; }
  .home-panorama { margin-bottom:1.5rem; }.home-panorama img { aspect-ratio:1.45/1; }.home-panorama figcaption { font-size:.52rem;line-height:1.35; }
  .game-grid { grid-template-columns: 1fr; }
  .game-card { min-height: 15rem; }
  .game-card > p { font-size: .95rem; line-height:1.5; }
  .home-foot, .footer-inner { flex-direction: column; }
  .game-hero { min-height: 0; margin: -1.25rem -.75rem 0; padding: 1.5rem .75rem 1.25rem; }
  .game-hero::after { inset:0;background-image:linear-gradient(90deg,rgba(11,14,11,.9),rgba(11,14,11,.35)),url('mission-theatres.webp');opacity:.32; }
  .game-hero h1 { font-size:clamp(2.75rem,14vw,4.5rem); line-height:.84; }
  .game-hero p { margin-top:.85rem; font-size:1rem; line-height:1.55; }
  .game-number { display:none; }
  .game-hero__copy { z-index: 1; }
  .tracker-grid { gap:.8rem; padding-top:.8rem; }
  .tracker-sidebar { grid-template-columns: 1fr; }
  .sidebar-module--progress { grid-row: auto; }
  .sidebar-module { padding:1rem; }
  .sidebar-label, .version-note { font-size:.8rem; line-height:1.5; }
  .side-actions { grid-template-columns:1fr 1fr; }
  .control-button { min-height:3rem; padding:.7rem; font-size:.75rem; }
  .run-panel__head, .trophy-head, .dogtag-tools__head { align-items:flex-start; flex-direction:column; gap:.7rem; padding:1rem; }
  .run-panel__head p, .trophy-head p { font-size:.9rem; line-height:1.5; }
  .run-total, .trophy-total { text-align:left; }
  .rank-planner, .run-form, .archive-label { padding-left:1rem; padding-right:1rem; }
  .run-form { grid-template-columns: 1fr; }
  .run-field--notes { grid-column: auto; }
  .rank-planner__top, .rank-status { align-items: stretch; flex-direction: column; }
  .rank-planner__top label { width: 100%; }
  .rank-stat-grid, .rank-rules { grid-template-columns: 1fr; }
  .rank-planner__top select, .rank-planner__top button, .rank-field input:not([type="checkbox"]), .rank-field select, .run-field input, .run-field select, .run-field textarea { min-height:3rem; font-size:1rem; }
  .rank-field > span, .run-field > span { font-size:.75rem; }
  .rank-rule { padding:.7rem; }
  .rank-rule strong { font-size:.9rem; }
  .rank-rule small { font-size:.75rem; }
  .rank-status span { text-align: left; }
  .rank-achievements { grid-template-columns: 1fr; gap: .4rem; }
  .run-stats__grid, .dogtag-filter-grid { grid-template-columns: 1fr; }
  .run-stats__grid { padding:.35rem 1rem 1rem; }
  .dogtag-filter-grid { padding:0 1rem 1rem; }
  .dogtag-filter-grid label > span { font-size:.75rem; }
  .dogtag-filter-grid select { height:3rem; font-size:1rem; }
  .dogtag-actions { align-items:stretch; flex-direction:column; padding:1rem; }
  .dogtag-actions label { margin:0; min-height:2.75rem; display:flex; align-items:center; gap:.55rem; font-size:.9rem; }
  .dogtag-actions button { min-height:2.75rem; }
  .dog-reward-head { align-items:stretch;flex-direction:column;padding:1rem; }.dog-reward-head label,.dog-reward-head select { width:100%; }.dog-reward-head label span { font-size:.75rem; }.dog-reward-head select { min-height:3rem;font-size:.9rem; }
  .dog-reward-grid { padding:0 1rem 1rem; }.dog-reward-ladder { padding:1rem; }.dog-reward-summary > span,.dog-reward-summary > strong { font-size:.85rem; }.dog-reward-summary > small { font-size:.78rem; }.dog-reward-stops b { font-size:.8rem; }.dog-reward-stops small { font-size:.7rem;overflow:visible;text-overflow:clip; }
  .preset-controls { align-items:stretch;flex-direction:column; }.preset-controls label,.preset-controls button { width:100%; }
  .routing-head, .mission-map-head, .recovery-head, .area-exit-head, .preset-controls, .roadmap-copy, .roadmap-phases { padding-left:1rem; padding-right:1rem; }
  .routing-head p, .mission-map-head p, .recovery-head p, .area-exit-head p, .roadmap-copy p { font-size:.9rem; }
  .mission-map-scroll { max-height:32rem;padding:.25rem 1rem 1rem; }.mission-route { grid-template-columns:1fr; }.mission-map-node { min-height:4rem;grid-template-columns:2rem minmax(0,1fr) auto;padding:.75rem; }.mission-map-copy strong { font-size:.9rem; }.mission-map-copy small,.mission-map-status { font-size:.72rem; }
  .recovery-summary { grid-template-columns:1fr;padding:.8rem 1rem; }.recovery-chip { min-height:2.75rem;font-size:.75rem; }.recovery-columns { grid-template-columns:1fr;padding:1rem; }.recovery-group > summary { min-height:4rem; }.recovery-group > summary strong,.recovery-item strong { font-size:.9rem; }.recovery-group > summary small,.recovery-item small { font-size:.78rem; }.recovery-item { grid-template-columns:1.3rem minmax(0,1fr);padding:.85rem; }.recovery-item input { width:1.2rem;height:1.2rem; }.area-type-summary { padding:.8rem 1rem; }.area-type-chip { width:100%;justify-content:space-between;min-height:2.5rem; }.area-type-chip strong { font-size:.82rem; }
  .preset-controls label span, .area-nav label span { font-size:.75rem; }
  .preset-controls select, .preset-controls button, .area-nav select, .area-nav button { min-height:3rem; height:3rem; font-size:.9rem; }
  .area-nav { grid-template-columns:3rem minmax(0,1fr) 3rem; }
  .area-nav button { width:3rem; }
  .roadmap-phase { min-height:4.5rem; padding:.85rem; }
  .roadmap-phase strong { font-size:.9rem; }
  .roadmap-phase small { font-size:.78rem; }
  .roadmap-phase em { font-size:.72rem; }
  .area-risk { grid-template-columns:1.35rem minmax(0,1fr); padding:.9rem 1rem; }
  .area-risk input { width:1.25rem; height:1.25rem; }
  .area-risk strong { font-size:.95rem; }
  .area-risk small { font-size:.78rem; }
  .area-risk em { grid-column:2; font-size:.7rem; }
  .field-mode .tracker-sidebar { grid-template-columns:1fr; }
  .run-entry { grid-template-columns: 1.5rem minmax(0,1fr) auto; padding: .8rem; }
  .filter-bar { position: static; grid-template-columns: 1fr; gap:.5rem; padding:.65rem; }
  .filter-bar .field-wrap:first-child, .filter-bar .field-wrap:last-child { grid-column: auto; }
  .field-wrap input, .field-wrap select { height:3rem; font-size:1rem; }
  .field-clear { top:.4rem; width:2.2rem; height:2.2rem; }
  .select-wrap::after { top:1rem; }
  .result-line { font-size:.75rem; line-height:1.4; }
  .category { margin-bottom:.75rem; }
  .category-head { min-height:4.75rem; grid-template-columns: 1.6rem minmax(0, 1fr) auto 1rem; gap:.55rem; padding: .85rem .75rem; }
  .category-index { font-size:.75rem; }
  .category-name strong { font-size:1.15rem; }
  .category-name small { display:block; font-size:.8rem; line-height:1.4; }
  .category-count { font-size:.75rem; }
  .check-label { min-height:4.75rem; grid-template-columns:1.55rem minmax(0,1fr); gap:.75rem; padding:1rem .75rem; }
  .main-check, .main-check input { width:1.5rem; height:1.5rem; }
  .main-check input::after { font-size:1rem; }
  .check-title { font-size:1rem; line-height:1.4; }
  .check-detail { font-size:.9rem; line-height:1.5; }
  .task-tag { padding:.3rem .45rem; font-size:.7rem; }
  .subcheck-list { display:grid; grid-template-columns:1fr; }
  .subcheck { min-height:2.75rem; padding:.55rem .65rem; font-size:.8rem; }
  .subcheck input { width:1.1rem; height:1.1rem; }
  .trophy-drawer > summary { min-height:3rem; display:flex; align-items:center; font-size:.78rem; }
  .trophy-row { grid-template-columns:1.25rem minmax(0,1fr); padding:.9rem 1rem; }
  .trophy-row input { width:1.2rem; height:1.2rem; }
  .trophy-row strong { font-size:.95rem; }
  .trophy-row small { font-size:.78rem; }
  .trophy-row em { grid-column:2; font-size:.7rem; }
  .dialog-body { padding:1.25rem; }
  .dialog-body p { font-size:1rem; }
  .dialog-actions { flex-direction:column; }
  .dialog-actions button { width:100%; min-height:3rem; }
  .rank-hud { right:.5rem;bottom:max(.5rem,env(safe-area-inset-bottom));left:.5rem;width:auto;grid-template-columns:.75rem minmax(0,1fr) auto;padding:.7rem; }.rank-hud__copy small { font-size:.68rem; }.rank-hud__copy strong { font-size:.9rem; }.rank-hud__copy em { font-size:.7rem; }.rank-hud button { min-height:2.75rem;padding:.55rem;font-size:.7rem; }.has-rank-hud { padding-bottom:6.5rem; }.has-rank-hud .toast { bottom:7rem; }
  .update-notice { right:.5rem;bottom:max(.5rem,env(safe-area-inset-bottom));left:.5rem;width:auto;grid-template-columns:1fr 1fr;transform:none; }.has-rank-hud .update-notice { bottom:7rem; }.update-notice > div { grid-column:1/-1; }.update-notice strong { font-size:1rem; }.update-notice span { font-size:.8rem; }.update-notice button { min-height:2.75rem;font-size:.72rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
