:root {
  --ink: #f6eee9;
  --muted: #ad9f97;
  --faint: #71655f;
  --bg: #070606;
  --panel: #110e0d;
  --panel-2: #1a1411;
  --line: #30231d;
  --line-bright: #5b3a2b;
  --lime: #ff9a3d;
  --lime-2: #df6124;
  --amber: #ffc36d;
  --red: #ef6a62;
  --blue: #73bfe8;
  --purple: #ae8ee6;
  --shadow: 0 22px 60px rgba(0, 0, 0, 0.35);
  --sidebar: 272px;
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; scrollbar-width:thin; scrollbar-color:var(--line-bright) transparent; }
*::-webkit-scrollbar{width:4px;height:4px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{border-radius:8px;background:var(--line-bright)}
html { scroll-behavior: smooth; scrollbar-gutter: stable; }
body { margin: 0; min-width: 320px; min-height: 100vh; color: var(--ink); background: var(--bg); }
button, input, select, textarea { font: inherit; }
button, a, label[for] { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
img { image-rendering: pixelated; }

body::before {
  position: fixed; inset: 0; z-index: -1; content: ""; pointer-events: none;
  background:
    radial-gradient(circle at 74% -10%, rgba(224, 90, 28, .18), transparent 35%),
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size: auto, 32px 32px, 32px 32px;
}

.app-shell { min-height: 100vh; }
.sidebar {
  position: fixed; inset: 0 auto 0 0; z-index: 30; width: var(--sidebar); overflow-y: auto;
  display: flex; flex-direction: column; padding: 22px 16px; border-right: 1px solid var(--line);
  background: rgba(7,6,6,.96); backdrop-filter: blur(18px);
}
.brand { display: flex; gap: 14px; align-items: center; padding: 5px 6px 23px; }
.brand-rune { position: relative; width: 46px; height: 50px; display: grid; place-items: center; }
.brand-rune::before, .brand-rune::after { position: absolute; content: ""; border: 2px solid var(--lime); transform: rotate(45deg); }
.brand-rune::before { width: 31px; height: 31px; }
.brand-rune::after { width: 18px; height: 18px; border-color: rgba(255,154,61,.45); }
.brand-rune i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 12px var(--lime); }
.brand-rune i:first-child { transform: translate(-18px,-18px); }
.brand-rune i:last-child { transform: translate(18px,18px); }
.brand small, .eyebrow, .section-kicker, .nav-label, .chip, .micro-label {
  font: 700 10px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .15em; text-transform: uppercase;
}
.brand small { display: block; margin-bottom: 3px; color: var(--lime); }
.brand strong { display: block; font: 800 18px/.95 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: -.04em; }

.project-card { margin-bottom: 24px; padding: 13px; border: 1px solid var(--line); background: var(--panel); }
.project-card label { display: block; margin-bottom: 8px; color: var(--muted); font-size: 11px; }
.project-card input { width: 100%; padding: 0 0 9px; border: 0; border-bottom: 1px solid var(--line); outline: none; color: var(--ink); background: transparent; font-weight: 700; }
.project-meter { height: 3px; margin-top: 14px; overflow: hidden; background: #2c1b13; }
.project-meter span { display: block; width: 0; height: 100%; background: var(--lime); transition: width .3s ease; }
.project-card p { margin: 7px 0 0; color: var(--faint); font-size: 10px; }
.project-card p span { color: var(--lime); font-weight: 800; }

.nav-label { margin: 20px 10px 8px; color: var(--faint); }
.sidebar-group { margin: 5px 0; border: 1px solid var(--line); background: rgba(17,14,13,.7); }
.sidebar-group > summary { display: flex; align-items: center; justify-content: space-between; min-height: 39px; padding: 9px 10px; color: var(--muted); cursor: pointer; list-style: none; font: 700 9px ui-monospace,monospace; letter-spacing: .12em; text-transform: uppercase; }
.sidebar-group > summary::-webkit-details-marker { display: none; }
.sidebar-group > summary::before { width: 14px; color: var(--lime); content: "+"; }
.sidebar-group[open] > summary::before { content: "−"; }
.sidebar-group > summary span { flex: 1; }
.sidebar-group > summary b { display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid var(--line); color: var(--faint); font-size: 8px; }
.sidebar-links { padding: 0 4px 5px; border-top: 1px solid var(--line); }
#primary-nav a { position: relative; display: grid; grid-template-columns: 28px 1fr; padding: 11px 10px; border-left: 2px solid transparent; color: var(--muted); }
#primary-nav a > span { grid-row: 1 / 3; color: var(--faint); font: 700 10px ui-monospace, monospace; }
#primary-nav a b { color: inherit; font-size: 13px; }
#primary-nav a small { margin-top: 2px; color: var(--faint); font-size: 10px; }
#primary-nav a:hover, #primary-nav a.active { color: var(--ink); background: linear-gradient(90deg, rgba(255,154,61,.12), transparent); border-color: var(--lime); }
#primary-nav a.active > span { color: var(--lime); }
.sidebar-run-preview { margin-top: 13px; border: 1px solid var(--line); background: var(--panel); }
.sidebar-run-preview[hidden] { display: none; }
.sidebar-preview-head { padding: 11px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg,rgba(255,154,61,.1),transparent); }
.sidebar-preview-head span,.sidebar-preview-head small,.sidebar-preview-head b { display: block; }
.sidebar-preview-head small { color: var(--faint); font: 700 7px ui-monospace,monospace; letter-spacing: .12em; text-transform: uppercase; }
.sidebar-preview-head b { margin-top: 5px; font-size: 12px; }
.sidebar-preview-head b i { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 7px; border: 1px solid var(--lime); color: var(--lime); font-style: normal; transform: rotate(45deg); }
.weather-note { margin-top: 5px; color: var(--muted); font-size: 8px; }
.shop-countdown{display:grid!important;grid-template-columns:1fr auto;gap:3px 8px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}.shop-countdown small{display:block}.shop-countdown b{grid-row:1/3;grid-column:2;color:var(--lime);font:900 10px ui-monospace,monospace}.shop-countdown em{color:var(--muted);font:normal 7px ui-monospace,monospace}
.sidebar-preview-title { display: flex; justify-content: space-between; padding: 10px 11px 7px; color: var(--faint); font: 800 8px ui-monospace,monospace; letter-spacing: .1em; text-transform: uppercase; }
.sidebar-preview-title b { color: var(--lime); }
.descent-list { padding: 0 8px 9px; }
.descent-floor { position: relative; display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 8px; align-items: center; min-height: 48px; padding: 5px 4px; color: var(--muted); }
.descent-floor:not(:last-child)::after { position: absolute; z-index: 0; top: 33px; bottom: -10px; left: 18px; border-left: 1px solid var(--line-bright); content: ""; }
.descent-node { position: relative; z-index: 1; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--line-bright); border-radius: 10px; color: var(--faint); background: linear-gradient(145deg,#1d120e,#0d0908); font: 900 14px ui-monospace,monospace; }
.descent-floor > span:nth-child(2) { min-width: 0; }
.descent-floor strong,.descent-floor small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.descent-floor strong { color: var(--ink); font-size: 8px; }
.descent-floor small { margin-top: 3px; color: var(--faint); font-size: 7px; }
.descent-floor.current { background: rgba(255,154,61,.08); }
.descent-floor.current .descent-node { border-color: var(--lime); color: var(--lime); box-shadow: 0 0 14px rgba(255,154,61,.15); }
.descent-floor.boss .descent-node { border-color: var(--amber); }.descent-floor.item .descent-node{border-color:#6dca96}.descent-floor.final .descent-node{border-color:var(--red)}
.sidebar-footer { margin-top: auto; padding: 28px 8px 4px; }
.sidebar-footer p { color: var(--faint); font: 700 9px ui-monospace, monospace; letter-spacing: .12em; }
.sidebar-footer button, .sidebar-footer label { display: inline-block; margin: 4px 10px 0 0; padding: 0; border: 0; color: var(--muted); background: none; cursor: pointer; font-size: 10px; }
.sidebar-footer button:hover, .sidebar-footer label:hover { color: var(--lime); }

.main-column { min-height: 100vh; margin-left: var(--sidebar); }
.topbar { position: sticky; top: 0; z-index: 20; height: 66px; display: flex; align-items: center; gap: 18px; padding: 0 34px; border-bottom: 1px solid var(--line); background: rgba(7,6,6,.9); backdrop-filter: blur(14px); }
.menu-button { display: none; width: 34px; padding: 6px; border: 0; background: none; }
.menu-button i { display: block; height: 2px; margin: 4px 0; background: var(--ink); }
.crumb { display: flex; align-items: center; gap: 10px; }
.crumb span { color: var(--faint); font: 700 9px ui-monospace, monospace; letter-spacing: .12em; }
.crumb span::after { content: " /"; }
.crumb b { font-size: 12px; }
.save-cluster { display: flex; align-items: center; gap: 7px; margin-left: auto; color: var(--muted); font-size: 10px; }
.save-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 8px var(--lime); }
.save-cluster.saving .save-dot { background: var(--amber); box-shadow: 0 0 8px var(--amber); }
.top-action, .ghost-button, .primary-button, .danger-button, .small-button {
  border: 1px solid var(--line-bright); padding: 9px 13px; background: var(--panel-2); cursor: pointer; font-weight: 750; font-size: 11px; transition: .16s ease;
}
.top-action:hover, .ghost-button:hover, .small-button:hover { border-color: var(--lime-2); color: var(--lime); }
.primary-button { border-color: var(--lime); color: #170a04; background: var(--lime); box-shadow: 0 8px 25px rgba(255,154,61,.16); }
.primary-button:hover { background: #ffb66f; transform: translateY(-1px); }
.danger-button { border-color: rgba(239,106,98,.4); color: var(--red); background: rgba(239,106,98,.08); }
.primary-button:disabled, .ghost-button:disabled, .small-button:disabled { opacity: .4; cursor: not-allowed; transform: none; }

#app { width: min(1440px, 100%); margin: 0 auto; padding: 38px 38px 80px; }
#app>*>:not(.confirm-backdrop):not(.evolution-backdrop){animation:pageArrive .28s ease both}@keyframes pageArrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.page-header { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.section-kicker { margin: 0 0 8px; color: var(--lime); }
.page-header h1 { margin: 0; font: 750 clamp(30px,4vw,54px)/.95 Georgia, serif; letter-spacing: -.045em; }
.page-header .lede { max-width: 670px; margin: 12px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.page-actions { display: flex; flex-wrap: wrap; gap: 8px; }

.panel { border: 1px solid var(--line); background: rgba(17,14,13,.92); box-shadow: var(--shadow); }
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 15px 18px; border-bottom: 1px solid var(--line); }
.panel-head h2, .panel-head h3 { margin: 0; font-size: 13px; }
.panel-body { padding: 18px; }
.subtle { color: var(--muted); }
.chip { display: inline-flex; align-items: center; min-height: 23px; padding: 4px 8px; border: 1px solid var(--line); color: var(--muted); background: #100b09; }
.chip.lime { border-color: rgba(255,154,61,.38); color: var(--lime); }
.chip.amber { border-color: rgba(240,180,95,.35); color: var(--amber); }
.chip.red { border-color: rgba(239,106,98,.35); color: var(--red); }

.setup-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 20px; }
.setup-hero { min-height: 510px; padding: clamp(26px,5vw,62px); display: flex; flex-direction: column; justify-content: end; overflow: hidden; position: relative; background:
  linear-gradient(0deg, rgba(8,5,4,.98) 0%, rgba(8,5,4,.38) 70%),
  radial-gradient(circle at 76% 24%, rgba(255,154,61,.24), transparent 34%), #1d100a; }
.setup-hero::before { position: absolute; width: 360px; height: 360px; right: -90px; top: -120px; content: ""; border: 1px solid rgba(255,154,61,.25); transform: rotate(45deg); box-shadow: inset 0 0 0 50px rgba(255,154,61,.03), inset 0 0 0 100px rgba(255,154,61,.03); }
.setup-hero h2 { max-width: 650px; margin: 14px 0; font: 750 clamp(36px,6vw,72px)/.91 Georgia, serif; letter-spacing: -.055em; }
.setup-hero p { max-width: 610px; margin: 0; color: var(--muted); line-height: 1.65; }
.feature-row { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 25px; }
.setup-form { padding: 23px; }
.setup-form h3 { margin: 0 0 20px; font-size: 15px; }
.field { margin-bottom: 17px; }
.field label { display: flex; justify-content: space-between; margin-bottom: 7px; color: var(--muted); font-size: 11px; }
.field input, .field select, .field textarea, .workbook-card textarea, .note-pad textarea {
  width: 100%; border: 1px solid var(--line); outline: none; color: var(--ink); background: #0d0908;
}
.field input, .field select { height: 42px; padding: 0 11px; }
.field textarea { min-height: 110px; padding: 11px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus, textarea:focus { border-color: var(--lime-2); }
.range-line { display: grid; grid-template-columns: 1fr 42px; gap: 11px; align-items: center; }
.range-line input[type="range"] { height: auto; padding: 0; accent-color: var(--lime); }
.range-value { display: grid; place-items: center; height: 34px; border: 1px solid var(--line); color: var(--lime); font: 800 12px ui-monospace, monospace; }
.setup-form .primary-button { width: 100%; margin-top: 8px; padding: 13px; }

.run-hud { display: grid; grid-template-columns: 1.35fr repeat(4, minmax(82px,.5fr)); gap: 1px; margin-bottom: 18px; border: 1px solid var(--line); background: var(--line); }
.run-hud > div { min-height: 66px; padding: 11px 14px; background: var(--panel); }
.run-hud small { display: block; color: var(--faint); font: 700 8px ui-monospace, monospace; letter-spacing: .13em; text-transform: uppercase; }
.run-hud strong { display: block; margin-top: 4px; font-size: 18px; }
.run-hud .floor strong { color: var(--lime); }
.floor-track { height: 4px; margin-top: 8px; background: #2c1b13; }
.floor-track span { display: block; height: 100%; background: linear-gradient(90deg,var(--lime-2),var(--lime)); }

.draft-layout, .expedition-grid, .lab-grid { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 18px; }
.draft-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 11px; }
.pokemon-card { position: relative; min-height: 310px; overflow: hidden; border: 1px solid var(--line); text-align: left; background: #120c09; transition: .16s ease; }
.pokemon-card-main { position: relative; display: block; width: 100%; min-height: 260px; padding: 36px 15px 14px; border: 0; color: var(--ink); text-align: left; background: transparent; cursor: pointer; }
.pokemon-card:hover { border-color: var(--line-bright); transform: translateY(-2px); }
.pokemon-card-main:focus-visible { outline: 2px solid var(--lime); outline-offset: -3px; }
.pokemon-card.selected { border-color: var(--lime); box-shadow: inset 0 0 0 1px var(--lime), 0 10px 25px rgba(255,154,61,.11); }
.pokemon-card.disabled { opacity: .58; }
.pokemon-card::after { position: absolute; inset: auto -30px -70px auto; width: 150px; height: 150px; content: ""; border: 1px solid var(--line); transform: rotate(45deg); }
.pokemon-card img { position: relative; z-index: 1; display: block; width: 82px; height: 82px; margin: 0 auto 6px; object-fit: contain; filter: drop-shadow(0 12px 9px rgba(0,0,0,.4)); }
.pokemon-card h3 { margin: 4px 0 7px; font: 750 19px Georgia, serif; }
.pokemon-card p { margin: 4px 0; color: var(--muted); font-size: 11px; }
.starter-price { position: absolute; z-index: 3; top: 10px; right: 10px; padding: 5px 8px; border: 1px solid var(--lime); color: var(--lime); background: #1b1009; font: 900 14px ui-monospace,monospace; }
.card-level { position: absolute; z-index: 3; top: 12px; left: 12px; color: var(--ink); font: 800 9px ui-monospace,monospace; letter-spacing: .1em; }
.card-moves { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 4px; margin-top: 9px; }
.card-moves span { padding: 3px 5px; border: 1px solid var(--line); color: var(--muted); background: #0d0908; font: 700 8px ui-monospace,monospace; }
.purchase-label { position: relative; z-index: 1; color: var(--lime)!important; font-weight: 800; }
.hover-stats { position: absolute; z-index: 50; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 14px; color: var(--ink); background: linear-gradient(145deg,rgba(21,12,8,.99),rgba(52,25,12,.99)); opacity: 0; transform: translateY(8px); pointer-events: none; transition: .16s ease; }
.pokemon-card-main:hover .hover-stats,.pokemon-card-main:focus-visible .hover-stats { opacity: 1; transform: none; }
.hover-stats > b { margin-bottom: 12px; color: var(--lime); font: 800 12px ui-monospace,monospace; letter-spacing: .12em; text-transform: uppercase; }
.hover-stats > div { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 3px; min-width:0; }
.hover-stats span { min-width:0;padding: 7px 1px; border: 1px solid var(--line-bright); color: var(--faint); text-align: center; font: 700 7px ui-monospace,monospace; overflow:hidden; }
.hover-stats strong { display: block; margin-top: 4px; color: var(--ink); font-size: 11px; }
.hover-stats small { margin-top: 14px; color: var(--muted); font-size: 9px; }
.card-actions { position: relative; z-index: 7; display: grid; grid-template-columns: .7fr 1.3fr; gap: 6px; padding: 8px; border-top: 1px solid var(--line); background: #0d0908; }
.card-actions button { min-height: 34px; padding: 7px 5px; font-size: 9px; }
.type-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.type-tag { padding: 3px 6px; border: 1px solid currentColor; color: var(--muted); font: 700 8px ui-monospace, monospace; text-transform: uppercase; opacity: .85; }
.type-fire { color:#f28b5d; }.type-water{color:#65b9e8}.type-grass{color:#86cf69}.type-electric{color:#ebd36b}.type-psychic{color:#da75a4}.type-ghost{color:#a58bd3}.type-dragon{color:#9b83ed}.type-ground{color:#d1a761}.type-rock{color:#b9a36b}.type-steel{color:#aab8bb}.type-fighting{color:#e16d67}.type-dark{color:#918b8b}.type-flying{color:#94b5da}.type-poison{color:#bc79c9}.type-bug{color:#a9bf57}.type-normal{color:#aaa}.type-ice{color:#83d1d7}
.stat-mini { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin-top: 12px; }
.stat-mini span { padding: 5px; border-top: 1px solid var(--line); color: var(--faint); font: 700 8px ui-monospace, monospace; }
.stat-mini b { display: block; margin-top: 2px; color: var(--ink); font-size: 11px; }

.squad-panel { height: fit-content; }
.starter-sidebar { position: sticky; top: 82px; display: grid; gap: 10px; height: fit-content; max-height: calc(100vh - 95px); overflow-y: auto; }
.bag-list { display: grid; gap: 7px; }
.bag-item { display: grid; grid-template-columns: 34px 1fr auto; gap: 9px; align-items: center; padding: 9px; border: 1px solid var(--line); background: #0d0908; }
.bag-item .bag-icon { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--lime); color: var(--lime); transform: rotate(45deg); }
.bag-item .bag-icon.potion { color: #e17b65; border-color: #e17b65; }
.bag-item .bag-icon i { font-style: normal; transform: rotate(-45deg); }
.bag-item b,.bag-item small { display: block; }.bag-item b{font-size:10px}.bag-item small{margin-top:2px;color:var(--faint);font-size:8px;line-height:1.35}.bag-item>strong{color:var(--lime);font-size:12px}
.bag-balance { display:grid; grid-template-columns:repeat(2,1fr); gap:6px; margin-bottom:9px; }
.bag-balance span { padding:9px; border:1px solid var(--line); background:#0d0908; }.bag-balance small,.bag-balance b{display:block}.bag-balance small{color:var(--faint);font:700 7px ui-monospace,monospace;text-transform:uppercase}.bag-balance b{margin-top:3px;color:var(--lime);font-size:13px}
.bag-grid { display:grid; grid-template-columns:1fr; gap:7px; }
.inventory-card { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:10px; align-items:center; min-height:68px; padding:10px 11px; border:1px solid var(--line); background:#0d0908; }
.inventory-copy { min-width:0; }.inventory-copy b,.inventory-copy small{display:block}.inventory-copy b{font-size:10px}.inventory-copy small{margin-top:4px;color:var(--faint);font-size:8px;line-height:1.35}.inventory-card>strong{color:var(--lime);font:800 10px ui-monospace,monospace}.inventory-card.key-item{border-color:var(--lime);background:rgba(255,154,61,.07)}
.item-sprite { position:relative; display:block; width:36px; height:36px; }
.item-sprite.pokeball { overflow:hidden; border:2px solid #120d0b; border-radius:50%; background:linear-gradient(#dc604f 0 45%,#251713 45% 55%,#eee6dd 55%); box-shadow:0 0 0 1px var(--line-bright); }
.item-sprite.pokeball::after { position:absolute; top:50%; left:50%; width:9px; height:9px; border:3px solid #251713; border-radius:50%; background:#eee6dd; content:""; transform:translate(-50%,-50%); }
.item-sprite.potion-bottle { width:29px; height:31px; margin:5px 0 0 3px; border:2px solid #ef765f; border-radius:4px 4px 9px 9px; background:linear-gradient(145deg,rgba(239,118,95,.45),#331714); }
.item-sprite.potion-bottle::before { position:absolute; top:-8px; left:5px; width:15px; height:7px; border:2px solid #ef765f;border-radius:3px 3px 0 0; background:#f2c56d; content:""; }
.item-sprite.potion-bottle i::before,.item-sprite.potion-bottle i::after { position:absolute; top:13px; left:7px; width:12px; height:2px; background:#ffd8c9; content:""; }
.item-sprite.potion-bottle i::after { transform:rotate(90deg); }
.item-sprite.pokeball,.item-sprite.potion-bottle{width:36px;height:36px;margin:0;border:0;border-radius:0;background:center/contain no-repeat;box-shadow:none}.item-sprite.pokeball{background-image:url("assets/items/poke-ball.png")}.item-sprite.potion-bottle{background-image:url("assets/items/potion.png")}.item-sprite.pokeball::after,.item-sprite.potion-bottle::before,.item-sprite.potion-bottle i{display:none}
.item-pixel-icon{width:22px;height:22px;object-fit:contain;image-rendering:pixelated}.item-pixel-art{display:block;width:38px;height:38px;object-fit:contain;image-rendering:pixelated}
.item-sprite.relic-gem { width:27px; height:27px; margin-left:4px; border:2px solid var(--lime); background:rgba(255,154,61,.12); transform:rotate(45deg); box-shadow:inset 0 0 0 5px #0d0908; }
.bag-warning { margin:9px 0 0; padding:9px; border-left:2px solid #ef6a58; color:var(--muted); background:rgba(239,106,88,.06); font-size:9px; line-height:1.45; }
.progress-hints{display:grid;gap:2px;margin-top:5px}.progress-hints em{display:block;overflow:hidden;color:var(--muted);font:normal 8px/1.35 ui-monospace,monospace;text-overflow:ellipsis;white-space:nowrap}.progress-hints em:last-child{color:#e8b56e}
.squad-list { display: grid; gap: 7px; }
.squad-unit { display: grid; grid-template-columns: 50px 1fr auto; gap: 10px; align-items: start; padding: 10px; border: 1px solid var(--line); background: #0d0908; }
.squad-unit img { width: 50px; height: 50px; object-fit: contain; }
.squad-unit strong { display: block; font-size: 11px; }
.squad-unit small { color: var(--faint); font-size: 9px; }
.squad-unit button { border: 0; color: var(--faint); background: none; cursor: pointer; }
.unit-actions{display:grid;gap:4px}.unit-actions button{min-width:25px;padding:3px;border:1px solid var(--line);font:800 7px ui-monospace,monospace}.unit-actions button:hover{color:var(--lime);border-color:var(--lime)}
.squad-title,.roster-hp-label { display: flex; justify-content: space-between; gap: 6px; align-items: center; }
.squad-title b { color: var(--lime); font: 800 9px ui-monospace,monospace; }
.squad-sheet .type-tags { margin: 4px 0 6px; }
.squad-sheet .type-tag { padding: 2px 4px; font-size: 7px; }
.roster-hp-label { margin-top: 5px; }
.roster-hp { display: block; height: 5px; margin: 3px 0 7px; overflow: hidden; background: #301b1a; }
.roster-hp i { display: block; height: 100%; background: linear-gradient(90deg,var(--lime-2),var(--lime)); }
.roster-hp i.low { background: var(--red); }
.xp-track{display:block;height:4px;margin:3px 0 5px;overflow:hidden;border-radius:4px;background:#242042}.xp-track i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#6faee8,#b289ec)}.next-progress{display:block;margin-bottom:6px!important;color:#9fc7f0!important;font-size:7px!important}.unit-tactics{margin-top:7px;border:1px solid var(--line);background:#120d0b}.unit-tactics summary{padding:6px;color:var(--lime);cursor:pointer;font:800 7px ui-monospace,monospace;text-transform:uppercase}.unit-tactics label{display:grid;grid-template-columns:58px 1fr;gap:5px;align-items:center;padding:3px 6px;color:var(--faint);font:700 7px ui-monospace,monospace}.unit-tactics select{min-width:0;height:25px;padding:0 4px;border:1px solid var(--line);color:var(--ink);background:#0b0807;font-size:7px}.nuzlocke-note,.pc-note{margin:0 0 8px;padding:7px 8px;border-left:2px solid var(--red);color:var(--muted);background:rgba(239,106,98,.06);font-size:8px;line-height:1.4}.pc-note{border-color:#6faee8;background:rgba(111,174,232,.06)}
.pc-list{display:grid;gap:6px}.pc-unit{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px;border:1px solid var(--line);background:#0d0908}.pc-unit img{width:42px;height:42px;object-fit:contain}.pc-unit b,.pc-unit small{display:block}.pc-unit b{font-size:9px}.pc-unit small{margin-top:2px;color:var(--faint);font-size:7px}.pc-recovery{max-width:980px;margin:20px auto;padding:30px;background:radial-gradient(circle at 50% 10%,rgba(111,174,232,.12),transparent 35%),var(--panel)}.pc-recovery h2{margin:12px 0 5px;font:750 36px "Trebuchet MS",sans-serif}.pc-recovery>p{color:var(--muted)}.recovery-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.recovery-layout>div{padding:14px;border:1px solid var(--line);background:#0d0908}.recovery-layout h3{margin:0 0 10px;font-size:11px}
.between-battles{position:relative;min-height:440px;padding:44px;overflow:hidden;border-radius:20px;background:radial-gradient(circle at 85% 20%,rgba(255,231,120,.22),transparent 20%),linear-gradient(145deg,#2b1b11,#171126)}.between-battles::after{position:absolute;right:-50px;bottom:-70px;width:220px;height:220px;border:3px dashed rgba(255,154,61,.2);border-radius:50%;content:""}.between-mascot{position:absolute;right:42px;top:42px;color:#ffe778;font-size:52px;animation:starTwinkle .7s infinite alternate}.between-battles h2{max-width:560px;margin:18px 0 10px;font:900 42px "Trebuchet MS",sans-serif;color:#fff3d8;text-shadow:0 4px 0 #5d2812}.between-battles>p{max-width:620px;color:#c8b9ae;line-height:1.65}.between-perks{display:flex;gap:8px;margin:26px 0}.between-perks span{min-width:100px;padding:12px;border:1px solid var(--line-bright);border-radius:12px;background:rgba(10,7,6,.65)}.between-perks b,.between-perks small{display:block}.between-perks b{color:var(--lime);font-size:18px}.between-perks small{margin-top:3px;color:var(--muted);font-size:8px;text-transform:uppercase}.between-battles>.primary-button{position:relative;z-index:2;padding:13px 20px;border-radius:12px}
.move-chips { display: flex; flex-wrap: wrap; gap: 3px; margin-bottom: 5px; }
.move-chips em { padding: 2px 4px; border: 1px solid var(--line); color: var(--muted); font: normal 700 7px ui-monospace,monospace; }
.heart-readout { color: #ef6a58; letter-spacing: .12em; text-shadow: 0 0 12px rgba(239,106,88,.25); }
.hearts-cell { position: relative; }.hud-abandon{margin-top:4px;padding:0;border:0;color:var(--faint);background:none;font:700 7px ui-monospace,monospace;text-transform:uppercase;cursor:pointer}.hud-abandon:hover{color:var(--red)}
.rail-section { overflow: visible; }
.rail-section > summary { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 48px; padding: 11px 13px; color: var(--ink); font: 800 11px ui-monospace,monospace; cursor: pointer; list-style: none; }
.rail-section > summary::-webkit-details-marker { display:none; }
.rail-section > summary::before { content:"+"; color:var(--lime); }
.rail-section[open] > summary::before { content:"−"; }
.rail-section > summary span:first-of-type { flex:1; }
.rail-section > .panel-body { border-top: 1px solid var(--line); }
.starter-leave { margin-top: 12px; }
.abandon-expedition { width: 100%; margin-top: 10px; }

.pokemon-inspector { display: grid; gap: 12px; }
.inspector-identity { display: grid; grid-template-columns: 72px 1fr; gap: 11px; align-items: center; }
.inspector-identity img { width: 72px; height: 72px; object-fit: contain; filter: drop-shadow(0 8px 8px rgba(0,0,0,.35)); }
.inspector-identity h3 { margin: 3px 0 5px; font: 750 24px Georgia,serif; }
.inspector-stats { display: grid; grid-template-columns: repeat(5,1fr); gap: 4px; }
.inspector-stats span { padding: 7px 2px; border: 1px solid var(--line); color: var(--faint); text-align: center; font: 700 7px ui-monospace,monospace; }
.inspector-stats b { display: block; margin-top: 3px; color: var(--ink); font-size: 11px; }
.trait-line { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; text-transform: capitalize; }
.trait-help { position: relative; z-index: 20; display: inline-grid; place-items: center; width: 18px; height: 18px; border: 1px solid var(--lime); border-radius: 50%; color: var(--lime); font: 900 10px ui-monospace,monospace; cursor: help; }
.trait-help.compact { z-index:1;width: 14px; height: 14px; font-size: 8px; vertical-align: middle; }
.trait-help::after { position: absolute; z-index: 40; bottom: calc(100% + 8px); left: 50%; width: 210px; padding: 9px; border: 1px solid var(--line-bright); color: var(--ink); text-align: left; text-transform: none; background: #1b100b; box-shadow: var(--shadow); content: attr(data-tooltip); font: 500 9px/1.5 Inter,Arial,sans-serif; opacity: 0; pointer-events: none; transform: translate(-50%,5px); transition: .15s ease; }
.trait-help:hover::after,.trait-help:focus::after { opacity: 1; transform: translate(-50%,0); }
.rarity-pill { display:inline-flex; align-items:center; width:max-content; padding:3px 6px; border:1px solid currentColor; border-radius:9px; color:#aaa; font:800 7px ui-monospace,monospace; letter-spacing:.04em; text-transform:uppercase; }
.rarity-common{color:#a8aaa5}.rarity-uncommon{color:#71c78f}.rarity-rare{color:#6daee8}.rarity-epic{color:#b689ed}.rarity-pseudo-legend{color:#e4a567}.rarity-legendary{color:#efc955}.rarity-mythical{color:#ef7aaa}
.move-chain { display: flex; gap: 0; padding: 6px 2px 11px; overflow-x: auto; }
.move-step { position: relative; flex: 0 0 94px; min-height: 53px; padding: 9px 8px; border: 1px solid var(--line); background: #0d0908; }
.move-step:not(:last-child)::after { position: absolute; z-index: 2; top: 50%; right: -7px; width: 12px; border-top: 1px solid var(--line-bright); content:""; }
.move-step b,.move-step small { display:block; }.move-step b{color:var(--ink);font-size:9px}.move-step small{margin-top:5px;color:var(--faint);font:700 7px ui-monospace,monospace;text-transform:uppercase}
.move-step.current { border-color: var(--lime); background: rgba(255,154,61,.09); }.move-step.current b{color:var(--lime)}
.move-step.learned { opacity: .48; }.move-step.future{border-style:dashed}
.floor-preview-list { display: grid; gap: 5px; }
.floor-preview { display: grid; grid-template-columns: 37px 1fr; gap: 8px; align-items: center; padding: 7px; border-left: 2px solid var(--line-bright); background: #0d0908; }
.floor-preview > b { color: var(--lime); font: 900 13px ui-monospace,monospace; }
.floor-preview strong,.floor-preview small { display:block; }.floor-preview strong{font-size:9px}.floor-preview small{margin-top:2px;color:var(--faint);font-size:7px}
.floor-preview.boss { border-color:#ef985d }.floor-preview.item{border-color:#6dca96}.floor-preview.final{border-color:#ef6a58}
.empty-slot { min-height: 58px; display: grid; place-items: center; border: 1px dashed var(--line); color: var(--faint); font-size: 10px; }

.route-map { position: relative; min-height: 620px; padding: 25px; overflow: hidden; border-radius:18px; background:
  radial-gradient(circle at 15% 12%, rgba(255,201,122,.16) 0 8px, transparent 9px),radial-gradient(circle at 86% 18%, rgba(115,191,232,.1) 0 18px, transparent 19px),linear-gradient(145deg,#20130d,#100c0a 58%,#171126); }
.route-map::before { position: absolute; top: 50%; left: 12%; right: 12%; content: ""; border-top: 1px dashed var(--line-bright); }
.route-map::after{position:absolute;right:-70px;bottom:-80px;width:220px;height:220px;border:2px dashed rgba(255,154,61,.18);border-radius:50%;content:""}
.route-intro { position: relative; z-index: 5; }
.route-intro h2 { margin: 9px 0 0; font: 900 34px "Trebuchet MS",sans-serif;letter-spacing:-.04em;color:#fff4de;text-shadow:0 3px 0 #5d2812; }
.route-intro p { color: var(--muted); line-height: 1.6; }
.route-title-row { display:flex; justify-content:space-between; gap:16px; align-items:start; }
.route-title-row > span { min-width:0; }
.rules-popover { position:relative; }
.rules-popover > summary { display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--line-bright); border-radius:50%; color:var(--lime); background:#0d0908; cursor:pointer; list-style:none; font:800 13px Georgia,serif; }
.rules-popover > summary::-webkit-details-marker { display:none; }
.rules-popover[open] > summary { border-color:var(--lime); }
.rules-popover > div { position:absolute; z-index:20; top:39px; right:0; width:min(430px,75vw); padding:15px; border:1px solid var(--line-bright); background:#170f0b; box-shadow:var(--shadow); }
.rules-popover > div > b { color:var(--lime); font:800 9px ui-monospace,monospace; letter-spacing:.12em; text-transform:uppercase; }
.rules-popover p { margin:8px 0 0; font-size:9px; line-height:1.55; }
.decision-chain { display:grid; grid-template-columns:1fr 16px 1fr 16px 1fr 16px 1fr; align-items:center; margin-top:18px; }
.decision-chain > span { position:relative; min-height:64px; padding:10px 9px 9px 37px; border:1px solid var(--line-bright);border-radius:12px; background:linear-gradient(145deg,#22150f,#100c0a);box-shadow:0 5px 0 #080505; }
.decision-chain > span > b { position:absolute; top:14px; left:11px; display:grid; place-items:center; width:18px; height:18px; border:1px solid var(--lime); color:var(--lime); font:800 8px ui-monospace,monospace; transform:rotate(45deg); }
.decision-chain small,.decision-chain strong { display:block; }.decision-chain small{color:var(--faint);font:700 7px ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.decision-chain strong{margin-top:5px;font-size:8px}.decision-chain>i{color:var(--line-bright);text-align:center;font-style:normal}
.route-howto { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:14px; }
.route-howto span { display:flex; gap:7px; align-items:center; padding:8px; border:1px solid var(--line); color:var(--muted); background:#0d0908; font-size:8px; }.route-howto b{display:grid;place-items:center;flex:0 0 18px;height:18px;border:1px solid var(--lime);color:var(--lime);font:800 8px ui-monospace,monospace;transform:rotate(45deg)}
.capture-rule { display:grid; grid-template-columns:145px 1fr; gap:10px; margin-top:8px; padding:10px 12px; border-left:2px solid #ef6a58; background:rgba(239,106,88,.06); }.capture-rule b{font-size:9px}.capture-rule span{color:var(--muted);font-size:8px;line-height:1.45}.capture-rule strong{color:var(--ink)}
.rarity-legend { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.route-options { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; margin-top: 28px; align-items:stretch; }
.route-card { position: relative; display:flex; flex-direction:column; min-height: 290px; padding: 22px 18px 15px; border: 2px solid var(--line-bright);border-radius:16px; text-align: left; background: linear-gradient(155deg,rgba(37,47,39,.98),rgba(18,18,25,.98)); cursor: pointer; transition: .22s cubic-bezier(.2,.9,.25,1.25);box-shadow:0 8px 0 #080605; }
.route-card:nth-child(odd){transform:rotate(-.4deg)}.route-card:nth-child(even){transform:rotate(.4deg)}.route-card:hover { border-color: var(--lime); transform: translateY(-7px) rotate(0); box-shadow: 0 16px 0 rgba(67,30,12,.75); }
.route-card header { display:grid; grid-template-columns:42px 1fr; gap:12px; align-items:center; margin-bottom:14px; }
.route-card .node-icon { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid currentColor; color: var(--lime); font: 800 15px Georgia,serif; transform: rotate(45deg); }
.route-card .node-icon b { transform: rotate(-45deg); }
.route-heading small{display:block;margin-bottom:3px;color:var(--faint);font:700 7px ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}.route-card h3 { margin:0; font: 750 22px/1.05 Georgia,serif; }
.route-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.route-popular { position:absolute; z-index:4; top:-9px; right:14px; padding:5px 9px; border:1px solid var(--lime); color:#171008; background:var(--lime); box-shadow:0 4px 12px rgba(0,0,0,.35); font:900 7px ui-monospace,monospace; letter-spacing:.05em; text-transform:uppercase; }
.route-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:12px; }.route-tags>span:not(.rarity-pill){padding:3px 6px;border:1px solid var(--line);border-radius:9px;color:var(--faint);font:700 7px ui-monospace,monospace;text-transform:uppercase}
.route-reward { margin-top:12px; padding:9px 10px; border:1px solid var(--line); background:#0d0908; }.route-reward small,.route-reward b{display:block}.route-reward small{color:var(--faint);font:700 7px ui-monospace,monospace;text-transform:uppercase}.route-reward b{margin-top:3px;color:var(--lime);font-size:10px}
.route-card footer { display: flex; justify-content: space-between; gap:8px; margin-top:auto; padding-top:13px; color: var(--faint); font: 700 7px ui-monospace,monospace; text-transform: uppercase; }
.route-card.reward-item{border-top-color:#e6b85f}.route-card.reward-potion{border-top-color:#ef7d68}.route-card.reward-move{border-top-color:#71aee8}.route-card.reward-pokemon{border-top-color:#71c78f}

.roster-rail .panel-body { max-height: 430px; overflow-y: auto; }
.resource-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); }
.resource-row div { padding: 11px; text-align: center; background: var(--panel); }
.resource-row b { display:block; color:var(--lime); font-size:14px; }.resource-row small{color:var(--faint);font-size:8px;text-transform:uppercase}
.debug-tools { margin-top: 18px; padding: 13px; border: 1px dashed var(--line); }
.debug-tools summary { color: var(--muted); cursor:pointer; font-size:10px; }
.debug-row { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }

.battle-shell { display:grid; gap:12px; }
.battle-topline { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:12px; }
.battle-command-deck{display:grid;grid-template-columns:1fr;gap:12px;align-items:stretch}
.battle-command-deck>.panel{margin:0;overflow:hidden}.battle-command-deck .panel-head{min-height:46px}
.battle-bag .panel-body{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(420px,1.25fr);gap:10px;padding:10px}.battle-resources{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.battle-resources>span{display:grid;grid-template-columns:28px 1fr;column-gap:7px;align-items:center;min-height:43px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:#0d0908}.battle-resources>span>.item-pixel-icon,.battle-resources>span>i{grid-row:1/3}.battle-resources b,.battle-resources small{display:block}.battle-resources b{font:900 14px ui-monospace,monospace}.battle-resources small{color:var(--faint);font-size:8px}.relic-mini{display:grid;place-items:center;width:18px;height:18px;color:#ffe778;font-style:normal}
.battle-squad{min-width:0}.battle-team-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}.battle-team-grid>div{min-width:0;background:var(--panel)}.battle-team-grid h4{margin:0;padding:8px 10px 0;color:var(--muted);font:900 8px ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}.battle-squad-strip{display:grid;grid-template-columns:repeat(3,minmax(135px,1fr));gap:6px;padding:9px}.enemy-strip{grid-template-columns:repeat(3,minmax(120px,1fr));max-height:180px;overflow-y:auto}.battle-squad-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:7px;align-items:center;min-width:0;padding:7px;border:1px solid var(--line);border-radius:11px;background:#0d0908}.battle-squad-card.active{border-color:rgba(255,154,61,.45);background:linear-gradient(135deg,rgba(255,154,61,.08),#0d0908)}.battle-squad-card.reserve{opacity:.72}.battle-squad-card.enemy-summary{border-color:rgba(239,106,98,.22)}.battle-squad-card.fainted{opacity:.38;filter:grayscale(1)}.battle-squad-card>img{width:42px;height:42px;object-fit:contain}.battle-squad-card>span{min-width:0}.battle-squad-card b,.battle-squad-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-squad-card b{font-size:9px}.battle-squad-card b em{color:var(--lime);font:800 8px ui-monospace,monospace}.battle-squad-card small{margin-top:2px;color:var(--faint);font-size:8px}.squad-mini-bar{display:block;height:4px;margin:2px 0 3px;overflow:hidden;border-radius:4px;background:#2a1914}.squad-mini-bar u{display:block;height:100%;border-radius:inherit;background:#68d391;text-decoration:none;transition:width .25s ease}.squad-mini-bar.hp u.low{background:var(--red)}.squad-mini-bar.xp u{background:#73bfe8}
.battle-stage { position:relative; min-height:560px; overflow:hidden; border:1px solid var(--line-bright); background:
  radial-gradient(ellipse at 50% 50%, rgba(132,174,112,.18), transparent 60%),
  repeating-linear-gradient(0deg, transparent 0 55px, rgba(255,255,255,.022) 56px),
  repeating-linear-gradient(90deg, transparent 0 55px, rgba(255,255,255,.022) 56px), #18100c; contain:layout paint; }
.battle-stage::before {position:absolute;inset:0 auto 0 50%;content:"";border-left:1px dashed rgba(255,255,255,.09)}
.arena-lane{position:absolute;z-index:0;left:4%;right:4%;height:1px;border-top:1px dashed rgba(255,255,255,.055)}.arena-lane.lane-one{top:33.333%}.arena-lane.lane-two{top:66.666%}
.battle-side-label { position:absolute; z-index:1; left:12px; color:rgba(255,255,255,.12); font:800 10px ui-monospace,monospace; letter-spacing:.2em; writing-mode:vertical-rl; }
.battle-side-label.enemy { right:12px; left:auto; }
.battle-unit { position:absolute; z-index:2; width:62px; height:62px; transform:translate(-50%,-50%); transition:left .48s cubic-bezier(.2,.72,.2,1), top .48s cubic-bezier(.2,.72,.2,1), opacity .25s; will-change:left,top; }
.battle-unit img { width:100%;height:100%;object-fit:contain;transform:scaleX(var(--face,1));transform-origin:50% 85%;filter:drop-shadow(0 8px 5px rgba(0,0,0,.55));animation:spriteIdle 1.7s ease-in-out infinite; }
.battle-unit:nth-of-type(even) img{animation-delay:-.65s}@keyframes spriteIdle{0%,100%{transform:scaleX(var(--face,1)) translateY(0) scale(1)}50%{transform:scaleX(var(--face,1)) translateY(-2px) scale(1.035,.97)}}
.battle-unit.moving img{animation:spriteStep .5s steps(2,end) infinite}@keyframes spriteStep{0%{transform:scaleX(var(--face,1)) translateY(0) rotate(-2deg)}50%{transform:scaleX(var(--face,1)) translateY(-5px) rotate(2deg)}}
.battle-unit.enemy img { filter:hue-rotate(-10deg) drop-shadow(0 8px 5px rgba(0,0,0,.55)); }
.battle-unit.fainted { opacity:.18; filter:grayscale(1); }
.battle-unit.fainted img{animation:faintDrop .55s ease-out both}@keyframes faintDrop{to{transform:scaleX(var(--face,1)) translateY(16px) rotate(8deg) scale(.75);filter:grayscale(1) brightness(.55)}}
.battle-unit.captured { animation:capture-out .6s forwards; }
@keyframes capture-out { 50%{transform:translate(-50%,-50%) scale(.25);filter:brightness(3)} 100%{transform:translate(-50%,-50%) scale(0);opacity:0} }
.battle-unit.attacking img { animation:spriteStrike .46s cubic-bezier(.2,.8,.3,1); }
.battle-unit.hit img { animation:spriteHit .46s steps(2,end); }
@keyframes spriteStrike { 0%{transform:scaleX(var(--face,1)) translateX(0) scale(1)}28%{transform:scaleX(var(--face,1)) translateX(-8px) scale(.88,1.08);filter:brightness(1.2)}62%{transform:scaleX(var(--face,1)) translateX(14px) scale(1.22,.86);filter:brightness(1.8)}100%{transform:scaleX(var(--face,1)) translateX(0) scale(1)} }
@keyframes spriteHit { 0%,100%{transform:scaleX(var(--face,1)) translateX(0);filter:brightness(1)}30%{transform:scaleX(var(--face,1)) translateX(-7px);filter:brightness(4) saturate(0)}60%{transform:scaleX(var(--face,1)) translateX(7px);filter:brightness(1.7)} }
.unit-name {position:absolute;left:50%;bottom:-29px;min-width:82px;transform:translateX(-50%);white-space:nowrap;padding:4px 7px;border:1px solid rgba(255,255,255,.09);border-radius:7px;background:rgba(7,11,9,.92);font:800 8px ui-monospace,monospace;text-align:center}.unit-name small{display:block;margin-top:1px;color:var(--muted);font-size:7px}
.unit-hp {position:absolute;left:-5px;right:-5px;top:-13px;height:7px;padding:1px;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:#301b1a;box-shadow:0 2px 5px #000}
.unit-hp span{display:block;height:100%;background:var(--lime);transition:width .2s}.unit-hp span.low{background:var(--red)}
.capture-mark {position:absolute;right:-9px;top:-12px;width:20px;height:20px;border-radius:50%;border:3px solid #fff;background:linear-gradient(#ef6558 0 43%,#222 44% 57%,#fff 58%);box-shadow:0 0 16px #fff;animation:pulse .7s infinite}
.battle-stage.capture-aiming .battle-unit.enemy:not(.capture-targetable){opacity:.32;filter:saturate(.3)}.battle-unit.capture-targetable{z-index:6;cursor:url("assets/items/poke-ball.png") 12 12,pointer;filter:drop-shadow(0 0 13px #fff)}.battle-unit.capture-targetable::after{position:absolute;inset:-14px;border:2px dashed #fff;border-radius:50%;content:"";animation:captureTarget 1s ease-in-out infinite}@keyframes captureTarget{50%{inset:-20px;border-color:var(--lime);transform:rotate(28deg)}}
@keyframes pulse{50%{transform:scale(1.25)}}
.float-label {position:absolute;z-index:9;min-width:92px;padding:5px 7px;border:1px solid rgba(255,255,255,.18);background:rgba(9,6,5,.9);transform:translate(-50%,-50%);pointer-events:none;animation:floatUp .82s forwards;font:800 10px ui-monospace,monospace;text-align:center;text-shadow:0 2px 3px #000}
.float-label b{display:block;margin:3px 0;color:#fff;font-size:11px}.float-label strong{display:block;color:var(--red);font-size:15px}.float-label.heal strong{color:var(--lime)}
@keyframes floatUp{to{transform:translate(-50%,-110%);opacity:0}}
.impact-fire{--move-vfx:#f28b5d}.impact-water{--move-vfx:#65b9e8}.impact-grass,.impact-bug{--move-vfx:#86cf69}.impact-electric{--move-vfx:#ebd36b}.impact-psychic,.impact-poison{--move-vfx:#da75c5}.impact-ghost,.impact-dark{--move-vfx:#a58bd3}.impact-ice{--move-vfx:#83d1d7}.impact-fighting,.impact-ground,.impact-rock{--move-vfx:#d69a63}.impact-dragon{--move-vfx:#9b83ed}.impact-steel,.impact-normal{--move-vfx:#c0c3c4}
.impact {position:absolute;z-index:8;width:34px;height:34px;border:3px solid var(--move-vfx,var(--amber));border-radius:45% 55% 50% 50%;transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 20px var(--move-vfx,var(--amber));pointer-events:none}
.impact[data-type="electric"]{border-radius:0;clip-path:polygon(42% 0,100% 0,61% 39%,91% 39%,25% 100%,42% 54%,8% 54%)}.impact[data-type="water"],.impact[data-type="ice"]{border-radius:65% 35% 60% 40%}.impact[data-type="fire"]{clip-path:polygon(50% 0,72% 35%,100% 58%,68% 100%,29% 91%,0 55%)}.impact[data-type="grass"],.impact[data-type="bug"]{border-radius:100% 0 100% 0}.type-particle{position:absolute;z-index:9;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--move-vfx,var(--amber));box-shadow:0 0 12px var(--move-vfx,var(--amber));pointer-events:none}
@keyframes impact{55%{filter:brightness(2)}to{width:100px;height:100px;transform:translate(-50%,-50%) rotate(115deg);opacity:0}}
.move-trail{position:absolute;z-index:7;height:5px;border-radius:8px;transform-origin:0 50%;background:linear-gradient(90deg,transparent,var(--move-vfx,var(--blue)),#fff);box-shadow:0 0 14px var(--move-vfx,var(--blue));animation:moveTrail .46s ease-out forwards}@keyframes moveTrail{0%{clip-path:inset(0 100% 0 0);opacity:0}35%{clip-path:inset(0 0 0 0);opacity:1}100%{clip-path:inset(0 0 0 75%);opacity:0}}
.battle-feed-panel{overflow:hidden}.battle-feed-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px}.battle-log {height:270px;overflow-y:auto;display:grid;grid-template-columns:1fr;align-content:start;gap:3px;scrollbar-gutter:stable}
.battle-brief{padding:16px;border-left:1px solid var(--line);background:linear-gradient(145deg,rgba(255,154,61,.06),#0d0908)}.battle-brief p{margin:8px 0 0;color:var(--muted);font-size:10px;line-height:1.6}
.battle-event {display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:39px;padding:4px 7px;border:1px solid var(--line);background:#0d0908;font-size:10px}
.event-icon{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line-bright);color:var(--lime);background:#17100d;font:900 11px ui-monospace,monospace;transform:rotate(45deg)}
.event-copy{min-width:0;display:flex;gap:6px;align-items:center}.event-copy small,.event-copy strong{display:block}.event-copy small{overflow:hidden;min-width:120px;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.event-copy strong{margin:0;color:var(--ink);font-size:11px}.event-copy>span{color:var(--faint);font-size:8px;text-transform:uppercase}.event-amount{color:var(--red);font:900 11px ui-monospace,monospace;white-space:nowrap}.battle-event.capture .event-icon,.battle-event.heal .event-icon{color:var(--lime)}.battle-event.capture .event-amount,.battle-event.heal .event-amount{color:var(--lime)}.battle-event.ko .event-icon{color:var(--red);border-color:rgba(239,106,98,.5)}
.move-type{display:inline-flex;padding:2px 5px;border:1px solid currentColor;border-radius:8px;font:800 7px ui-monospace,monospace;line-height:1;text-transform:uppercase;background:#0d0908}
.battle-controls {display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.battle-controls button{min-height:40px}.battle-controls .wide{grid-column:1/-1}
.battle-controls button{display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px}.battle-controls button.active{outline:2px solid #fff;box-shadow:0 0 20px rgba(255,154,61,.32)}.mini-ball-icon{display:inline-block;width:17px;height:17px;border:2px solid #251713;border-radius:50%;background:center/contain no-repeat url("assets/items/poke-ball.png")}.mini-potion-icon{display:inline-block;width:17px;height:17px;background:center/contain no-repeat url("assets/items/potion.png")}.battle-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:0 9px 9px}.battle-plans>span{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:7px;align-items:center;padding:5px;border:1px solid var(--line);border-radius:9px;background:#0d0908}.battle-plans img{grid-row:1/3;width:28px;height:28px;object-fit:contain}.battle-plans b,.battle-plans small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-plans b{font-size:9px}.battle-plans small{color:var(--muted);font-size:8px;text-transform:capitalize}
.battle-controls [data-action="capture"]:not(:disabled){cursor:url("assets/items/poke-ball.png") 12 12,pointer}.battle-controls [data-action="heal"]:not(:disabled){cursor:url("assets/items/potion.png") 12 12,pointer}
.catch-alert{position:absolute;z-index:13;left:50%;bottom:18px;width:min(620px,calc(100% - 32px));display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:2px solid #fff;border-radius:16px;background:linear-gradient(135deg,#f15e54,#b82d42);box-shadow:0 10px 35px #000,0 0 30px rgba(255,255,255,.35);transform:translateX(-50%)}.catch-alert-ball{display:grid;place-items:center;width:42px;height:42px;animation:pulse .65s infinite}.catch-alert small,.catch-alert b,.catch-alert em{display:block}.catch-alert small{color:#fff;font:900 9px ui-monospace,monospace;letter-spacing:.14em}.catch-alert b{margin:3px 0;color:#fff;font-size:14px}.catch-alert em{color:#ffe8de;font:normal 9px ui-monospace,monospace}.capture-projectile{position:absolute;z-index:18;width:40px;height:40px;transform:translate(-50%,-50%);filter:drop-shadow(0 6px 5px rgba(0,0,0,.8));pointer-events:none}.capture-projectile img{width:100%;height:100%;object-fit:contain}
.battle-countdown{position:absolute;z-index:14;inset:0;display:grid;place-content:center;text-align:center;background:radial-gradient(circle,rgba(255,154,61,.2),rgba(8,5,4,.82));backdrop-filter:blur(3px)}.battle-countdown small{color:var(--lime);font:900 9px ui-monospace,monospace;letter-spacing:.2em}.battle-countdown b{position:relative;display:block;width:120px;height:80px;margin:12px auto}.battle-countdown i{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:900 72px "Trebuchet MS",sans-serif;opacity:0;animation:countBeat 1.05s both}.battle-countdown i:nth-child(2){animation-delay:.32s}.battle-countdown i:nth-child(3){animation-delay:.64s}.battle-countdown strong{color:#ffe778;font:900 30px "Trebuchet MS",sans-serif;letter-spacing:.08em;animation:battleWord 1.05s both}@keyframes countBeat{0%{opacity:0;transform:scale(1.8)}15%,28%{opacity:1;transform:scale(1)}36%,100%{opacity:0;transform:scale(.7)}}@keyframes battleWord{0%,80%{opacity:0;transform:scale(.6)}100%{opacity:1;transform:scale(1.1)}}
.battle-result {position:absolute;z-index:12;inset:0;display:grid;place-content:center;text-align:center;background:rgba(5,9,7,.82);backdrop-filter:blur(5px)}
.battle-result h2{margin:8px 0;font:750 42px Georgia,serif}.battle-result p{max-width:450px;color:var(--muted)}
.battle-result .page-actions{justify-content:center;margin-top:12px}
.fallen-notice{padding:9px 12px;border:1px solid rgba(239,106,98,.5);color:#ffd5ce!important;background:rgba(239,106,98,.12)}
.evolution-backdrop{position:fixed;z-index:110;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle,rgba(109,174,232,.3),rgba(5,4,13,.96) 60%)}.evolution-scene{width:min(620px,100%);padding:28px;text-align:center;border:2px solid #9cccf2;border-radius:22px;background:linear-gradient(145deg,#251a3e,#0c0914);box-shadow:0 0 80px rgba(129,190,239,.35)}.evolution-scene h2{margin:10px 0;font:900 34px "Trebuchet MS",sans-serif}.evolution-scene>p{color:#c9c3dc}.evolution-scene .page-actions{justify-content:center}.evolution-stars{display:block;color:#ffe778;font-size:22px;letter-spacing:.3em;animation:starTwinkle .7s infinite alternate}@keyframes starTwinkle{to{filter:brightness(2);transform:scale(1.08)}}.evolution-stage{position:relative;width:210px;height:210px;margin:10px auto}.evolution-stage img{position:absolute;z-index:2;inset:25px;width:160px;height:160px;object-fit:contain;image-rendering:pixelated}.evolution-from{animation:evolveFrom 2s infinite}.evolution-to{animation:evolveTo 2s infinite}.evolution-ring{position:absolute;inset:5px;border:3px dashed #9cccf2;border-radius:50%;animation:evolveSpin 3s linear infinite;box-shadow:0 0 40px #6faee8}@keyframes evolveSpin{to{transform:rotate(360deg)}}@keyframes evolveFrom{0%,38%{opacity:1;filter:brightness(1)}52%,100%{opacity:0;filter:brightness(8);transform:scale(1.25)}}@keyframes evolveTo{0%,45%{opacity:0;filter:brightness(8);transform:scale(.75)}65%,100%{opacity:1;filter:brightness(1);transform:scale(1)}}.evolution-result .evolution-stage{width:180px;height:180px}.evolution-result .evolution-stage img{width:130px;height:130px}

.event-card {max-width:780px;margin:40px auto;padding:35px;background:linear-gradient(135deg,rgba(255,154,61,.08),transparent),var(--panel)}
.event-glyph {display:grid;place-items:center;width:70px;height:70px;border:1px solid var(--lime);color:var(--lime);font:700 28px Georgia,serif;transform:rotate(45deg);margin:4px auto 35px}.event-glyph span{transform:rotate(-45deg)}
.event-card h2{text-align:center;font:750 36px Georgia,serif;margin:0 0 12px}.event-card>p{max-width:590px;margin:0 auto 28px;color:var(--muted);text-align:center;line-height:1.6}
.event-options{display:grid;gap:9px}.event-option{padding:15px;border:1px solid var(--line);background:#0d0908;cursor:pointer;text-align:left}.event-option:hover{border-color:var(--lime)}.event-option:disabled{opacity:.4;cursor:not-allowed}.event-option b{display:block}.event-option small{color:var(--muted)}
.shop-intro{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:14px}.shop-intro>p{margin:0!important;text-align:left!important}.shop-intro>span{flex:0 0 150px;padding:10px;border:1px solid var(--line);background:#0d0908}.shop-intro small,.shop-intro b{display:block}.shop-intro small{color:var(--faint);font:800 7px ui-monospace,monospace;text-transform:uppercase}.shop-intro b{margin-top:4px;color:var(--lime);font-size:10px}.shop-wallet{display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-items:center;margin-bottom:12px;padding:11px 13px;border-left:2px solid var(--lime);background:rgba(255,154,61,.06)}.shop-wallet small{color:var(--faint);font:800 7px ui-monospace,monospace;text-transform:uppercase}.shop-wallet strong{grid-row:1/3;grid-column:2;color:var(--lime);font:900 22px ui-monospace,monospace}.shop-wallet span{color:var(--muted);font-size:8px}.shop-stock{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:75px;padding:10px}.shop-item>span:nth-child(2){min-width:0}.shop-item>strong{color:var(--lime);font:900 11px ui-monospace,monospace}.shop-item-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line-bright);transform:rotate(45deg)}.shop-item-icon::before{transform:rotate(-45deg);font:900 11px ui-monospace,monospace}.shop-item-icon.capture::before{content:"◉"}.shop-item-icon.recovery::before{content:"+"}.shop-item-icon.training::before{content:"↑"}.shop-item-icon.survival::before{content:"♥"}.shop-item-icon.premium::before{content:"◆"}.shop-item-icon.relic::before{content:"✦"}.shop-item-icon.capture{color:#73bfe8}.shop-item-icon.recovery{color:#ef7d68}.shop-item-icon.training{color:#e6b85f}.shop-item-icon.survival{color:#ef6a62}.shop-item-icon.premium,.shop-item-icon.relic{color:var(--lime)}
.shop-item-icon.capture,.shop-item-icon.recovery{border:0;transform:none;background:center/contain no-repeat}.shop-item-icon.capture{background-image:url("assets/items/poke-ball.png")}.shop-item-icon.recovery{background-image:url("assets/items/potion.png")}.shop-item-icon.capture::before,.shop-item-icon.recovery::before{content:""}
.shop-item[data-kind^="ball"]:not(:disabled){cursor:url("assets/items/poke-ball.png") 12 12,pointer}.shop-item[data-kind^="potion"]:not(:disabled){cursor:url("assets/items/potion.png") 12 12,pointer}.shop-item:active,[data-action="buy-starter"]:active{transform:scale(.97);filter:brightness(1.24)}

.confirm-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:rgba(5,3,3,.82);backdrop-filter:blur(7px)}
.confirm-dialog{width:min(460px,100%);padding:28px;border:1px solid rgba(239,106,98,.55);background:linear-gradient(145deg,rgba(239,106,98,.08),transparent),var(--panel);box-shadow:var(--shadow)}.confirm-dialog h2{margin:15px 0 8px;font:750 30px Georgia,serif}.confirm-dialog p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.confirm-dialog .page-actions{justify-content:flex-end;margin-top:22px}

.atlas-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.atlas-floor { min-height:105px;padding:12px;border:1px solid var(--line);background:var(--panel); }
.atlas-floor strong{display:block;margin:6px 0;font:750 20px Georgia,serif}.atlas-floor small{color:var(--muted);font-size:9px;line-height:1.4}.atlas-floor.boss{border-color:rgba(255,195,109,.45)}.atlas-floor.final{border-color:var(--lime);background:rgba(255,154,61,.08)}
.legend-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}
.path-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.path-guide article{min-height:135px;padding:15px;border:1px solid var(--line);background:var(--panel)}.path-guide span,.path-guide b,.path-guide small{display:block}.path-guide span{color:var(--faint);font:800 8px ui-monospace,monospace;text-transform:uppercase}.path-guide b{margin:13px 0 7px;font:750 18px Georgia,serif}.path-guide small{color:var(--muted);font-size:9px;line-height:1.5}.path-guide .pokemon{border-top-color:#71c78f}.path-guide .item{border-top-color:#e6b85f}.path-guide .potion{border-top-color:#ef7d68}.path-guide .move{border-top-color:#71aee8}.atlas-rarities{margin:0 0 16px}

.lab-grid { grid-template-columns:360px 1fr; }
.metric-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.metric{padding:16px;border:1px solid var(--line);background:#0d0908}.metric small{display:block;color:var(--faint);font-size:8px;text-transform:uppercase}.metric strong{display:block;margin-top:5px;font:750 25px Georgia,serif;color:var(--lime)}
.curve-chart{height:300px;display:flex;align-items:end;gap:2px;padding:20px 14px 25px;border:1px solid var(--line);background:#0d0908}.curve-bar{position:relative;flex:1;min-width:2px;background:linear-gradient(var(--lime),var(--lime-2));opacity:.75}.curve-bar:hover{opacity:1}.curve-bar span{display:none;position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);padding:3px;background:#000;font-size:8px}.curve-bar:hover span{display:block}
.lab-output {margin-top:14px;padding:15px;border-left:2px solid var(--lime);background:rgba(255,154,61,.06);color:var(--muted);font-size:12px;line-height:1.6}

.workbook-layout{display:grid;grid-template-columns:240px 1fr;gap:18px}.workbook-tabs{display:grid;gap:4px;align-content:start}.workbook-tabs button{text-align:left;padding:12px;border:1px solid var(--line);background:var(--panel);cursor:pointer}.workbook-tabs button.active{border-color:var(--lime);color:var(--lime)}
.workbook-cards{display:grid;gap:10px}.workbook-card{padding:18px;border:1px solid var(--line);background:var(--panel)}.workbook-card header{display:flex;justify-content:space-between;gap:15px}.workbook-card h3{margin:0 0 5px;font-size:14px}.workbook-card p{margin:0 0 13px;color:var(--muted);font-size:11px;line-height:1.5}.workbook-card textarea{min-height:115px;padding:12px;resize:vertical;line-height:1.5}.status-toggle{min-width:92px;height:29px;border:1px solid var(--line);background:#100b09;cursor:pointer;color:var(--muted);font-size:9px;text-transform:uppercase}.status-toggle.working{color:var(--amber);border-color:rgba(255,195,109,.5)}.status-toggle.locked{color:var(--lime);border-color:rgba(255,154,61,.5)}
.notes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.note-pad{position:relative;padding:17px;border:1px solid var(--line);background:var(--panel);overflow:hidden}.note-pad::after{position:absolute;right:-25px;top:-25px;width:58px;height:58px;content:"";border:1px solid rgba(255,154,61,.16);transform:rotate(45deg)}.note-pad h2{margin:0 0 4px;font:750 22px Georgia,serif}.note-pad p{margin:0 0 13px;color:var(--muted);font-size:10px}.note-pad textarea{min-height:420px;padding:13px;resize:vertical;line-height:1.65}

.module-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;margin-bottom:18px;border:1px solid var(--line);background:var(--line)}
.module-tabs button{min-height:68px;padding:11px;border:0;border-bottom:2px solid transparent;text-align:left;background:var(--panel);cursor:pointer;color:var(--muted)}
.module-tabs button b{display:block;margin-bottom:4px;color:var(--ink);font-size:11px}.module-tabs button small{font-size:9px}.module-tabs button.active{border-color:var(--lime);background:linear-gradient(180deg,rgba(255,154,61,.12),var(--panel));color:var(--lime)}
.test-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.test-summary .metric{min-height:96px}
.test-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.test-card{padding:16px;border:1px solid var(--line);background:#0d0908}.test-card h3{margin:6px 0;font:750 20px Georgia,serif}.test-card p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}
.probability-track{height:8px;margin:9px 0;background:#2d1c14}.probability-track span{display:block;height:100%;background:linear-gradient(90deg,var(--lime-2),var(--lime))}
.journey-intro{margin-bottom:10px;padding:14px 16px;border-left:2px solid var(--lime);background:rgba(255,154,61,.05);color:var(--muted);font-size:11px;line-height:1.55}
.improvement-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.improvement-guide div{padding:10px;border-top:2px solid var(--line-bright);background:var(--panel);font-size:9px;color:var(--muted)}.improvement-guide b{display:block;margin-bottom:3px;color:var(--ink);font-size:10px;text-transform:uppercase}.improvement-guide div:first-child{border-color:var(--lime)}

.toast{position:fixed;z-index:80;right:24px;bottom:24px;padding:11px 15px;border:1px solid var(--lime-2);background:#120c09;box-shadow:var(--shadow);font-size:11px;transform:translateY(25px);opacity:0;pointer-events:none;transition:.2s}.toast.visible{transform:none;opacity:1}
.success-feedback-slot{position:fixed;z-index:130;top:82px;left:50%;width:min(430px,calc(100vw - 28px));transform:translateX(-50%);pointer-events:none}.success-celebration{--success-accent:#ff9a3d;position:relative;display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;align-items:center;min-height:76px;padding:10px 17px 10px 10px;overflow:hidden;border:2px solid var(--success-accent);border-radius:16px;background:linear-gradient(125deg,color-mix(in srgb,var(--success-accent) 18%,#100a08),#0b0807 68%);box-shadow:0 18px 50px rgba(0,0,0,.58),0 0 28px color-mix(in srgb,var(--success-accent) 30%,transparent)}.success-celebration.tone-capture,.success-celebration.tone-pokemon{--success-accent:#73bfe8}.success-celebration.tone-heal{--success-accent:#ef7d68}.success-celebration.tone-evolution{--success-accent:#b9a0ff}.success-celebration.tone-training{--success-accent:#e6b85f}.success-celebration.tone-victory,.success-celebration.tone-relic{--success-accent:#ffe778}.success-icon{position:relative;z-index:2;display:grid;place-items:center;width:54px;height:54px;border:1px solid color-mix(in srgb,var(--success-accent) 70%,#fff);border-radius:50%;color:var(--success-accent);background:#17100d;box-shadow:inset 0 0 16px color-mix(in srgb,var(--success-accent) 18%,transparent),0 0 16px color-mix(in srgb,var(--success-accent) 22%,transparent);font:900 24px ui-monospace,monospace}.success-icon img{width:43px;height:43px;object-fit:contain;image-rendering:pixelated}.success-copy{position:relative;z-index:2;min-width:0}.success-copy small,.success-copy b,.success-copy em{display:block}.success-copy small{color:var(--success-accent);font:900 8px ui-monospace,monospace;letter-spacing:.18em}.success-copy b{overflow:hidden;margin:3px 0;color:#fff;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.success-copy em{overflow:hidden;color:#cbbeb3;font:normal 9px ui-monospace,monospace;text-overflow:ellipsis;white-space:nowrap}.success-halo{position:absolute;left:36px;width:95px;height:95px;border:1px solid var(--success-accent);transform:rotate(45deg);opacity:.3;animation:successHalo 1.2s ease-out both}.success-particles{position:absolute;inset:0}.success-particles i{position:absolute;left:55px;top:38px;width:5px;height:5px;border-radius:1px;background:var(--success-accent);box-shadow:0 0 8px var(--success-accent);animation:successSpark .8s ease-out both}.success-particles i:nth-child(1){--spark-x:-48px;--spark-y:-28px}.success-particles i:nth-child(2){--spark-x:-38px;--spark-y:30px}.success-particles i:nth-child(3){--spark-x:16px;--spark-y:-40px}.success-particles i:nth-child(4){--spark-x:47px;--spark-y:-24px}.success-particles i:nth-child(5){--spark-x:58px;--spark-y:22px}.success-particles i:nth-child(6){--spark-x:8px;--spark-y:39px}.success-particles i:nth-child(7){--spark-x:85px;--spark-y:-6px}.success-particles i:nth-child(8){--spark-x:100px;--spark-y:32px}@keyframes successSpark{0%{opacity:0;transform:translate(0,0) scale(0) rotate(0)}24%{opacity:1}100%{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) scale(.35) rotate(135deg)}}@keyframes successHalo{0%{opacity:.8;transform:rotate(45deg) scale(.25)}100%{opacity:0;transform:rotate(135deg) scale(1.25)}}.success-token{position:fixed;z-index:131;display:grid;place-items:center;width:38px;height:38px;margin:-19px;border:2px solid #ff9a3d;border-radius:50%;background:#17100d;box-shadow:0 0 18px rgba(255,154,61,.55);pointer-events:none}.success-token img{width:30px;height:30px;object-fit:contain;image-rendering:pixelated}.success-token b{color:#ffe778;font-size:20px}
.mobile-scrim{display:none;position:fixed;z-index:25;inset:0;background:rgba(0,0,0,.6)}
.empty-state{padding:50px 20px;text-align:center;color:var(--muted)}
.separator{height:1px;margin:15px 0;background:var(--line)}

@media(max-width:1050px){.battle-bag .panel-body{grid-template-columns:1fr}.battle-team-grid{grid-template-columns:1fr}.enemy-strip{max-height:240px}}
@media(max-width:680px){.battle-controls{grid-template-columns:1fr 1fr}.battle-team-grid{grid-template-columns:1fr}.battle-squad-strip,.enemy-strip{grid-template-columns:1fr 1fr}.event-copy{display:grid;gap:1px}.event-copy small{min-width:0}.battle-feed-layout{grid-template-columns:1fr}.battle-brief{border-top:1px solid var(--line);border-left:0}}

@media(max-width:1050px){
  .setup-grid,.draft-layout,.expedition-grid{grid-template-columns:1fr}.squad-panel{order:2}.squad-panel{position:static}.starter-sidebar{position:static;max-height:none;overflow:visible}.draft-grid{grid-template-columns:repeat(2,1fr)}.atlas-grid{grid-template-columns:repeat(4,1fr)}.path-guide{grid-template-columns:repeat(2,1fr)}.notes-grid{grid-template-columns:repeat(2,1fr)}.battle-command-deck{grid-template-columns:1fr}.battle-resources{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:800px){
  .sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:none}.mobile-scrim.visible{display:block}.main-column{margin-left:0}.menu-button{display:block}.topbar{padding:0 16px}.crumb span,.top-action{display:none}#app{padding:25px 16px 60px}.page-header{align-items:start;flex-direction:column}.run-hud{grid-template-columns:repeat(2,1fr)}.run-hud .floor{grid-column:1/-1}.route-options{grid-template-columns:1fr;margin-top:30px}.battle-stage{min-height:520px}.battle-squad-strip,.battle-plans{grid-template-columns:repeat(2,minmax(0,1fr))}.battle-feed-layout{grid-template-columns:1fr}.battle-brief{border-top:1px solid var(--line);border-left:0}.battle-log{height:240px}.lab-grid,.workbook-layout{grid-template-columns:1fr}.workbook-tabs{grid-template-columns:repeat(2,1fr)}.notes-grid{grid-template-columns:1fr}.module-tabs{grid-template-columns:repeat(3,1fr)}.test-card-grid{grid-template-columns:1fr 1fr}.improvement-guide{grid-template-columns:1fr 1fr}.recovery-layout{grid-template-columns:1fr}
}
@media(max-width:560px){
  .setup-grid{grid-template-columns:1fr}.setup-hero{min-height:420px}.draft-grid{grid-template-columns:1fr}.pokemon-card{min-height:190px}.run-hud{grid-template-columns:repeat(2,1fr)}.atlas-grid{grid-template-columns:repeat(2,1fr)}.path-guide{grid-template-columns:1fr}.metric-grid,.test-summary{grid-template-columns:1fr}.battle-unit{width:50px;height:50px}.battle-stage{min-height:470px}.battle-resources,.battle-squad-strip,.battle-plans,.battle-log{grid-template-columns:1fr}.battle-log{height:280px}.battle-topline{align-items:flex-start;flex-direction:column}.battle-topline .danger-button{align-self:stretch}.save-cluster{display:none}.module-tabs,.test-card-grid,.improvement-guide{grid-template-columns:1fr}.decision-chain{grid-template-columns:1fr}.decision-chain>i{display:none}.rules-popover>div{width:82vw}.route-map{padding:18px}.shop-stock{grid-template-columns:1fr}.shop-intro{flex-direction:column}.shop-intro>span{flex:auto;width:100%}.catch-alert{grid-template-columns:38px 1fr}.catch-alert button{font-size:8px;padding:7px}.catch-alert-ball{width:34px;height:34px}.between-battles{padding:28px}.between-battles h2{font-size:32px}.between-perks{flex-wrap:wrap}
}

@media(hover:none){
  .hover-stats{position:relative;inset:auto;margin:12px -5px 0;padding:11px;opacity:1;transform:none;background:#0d0908}.hover-stats>b{margin-bottom:7px}.hover-stats small{display:none}.pokemon-card{min-height:340px}
}

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