/* Levelorn — warm graphite HUD interface. System fonts only, no external assets. */

:root {
  --lvn-bg: #15120f;
  --lvn-bg-deep: #0e0c0a;
  --lvn-surface: #1f1b17;
  --lvn-raise: #2a241f;
  --lvn-line: #403731;
  --lvn-ink: #f7efe6;
  --lvn-muted: #c9bcae;
  --lvn-acc: #ffb020;
  --lvn-acc-ink: #1b1204;
  --lvn-teal: #34d6c2;
  --lvn-ember: #ff6a3d;
  --lvn-s1: 4px; --lvn-s2: 8px; --lvn-s3: 12px; --lvn-s4: 16px; --lvn-s5: 24px; --lvn-s6: 32px; --lvn-s7: 48px; --lvn-s8: 64px;
  --lvn-display: "Avenir Next Condensed", "Arial Narrow", "Roboto Condensed", "Liberation Sans Narrow", "Helvetica Neue", Arial, sans-serif;
  --lvn-text: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --lvn-mono: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;
  --lvn-ease: cubic-bezier(.2, .8, .2, 1);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 120px; }
html.lvn-locked { overflow: hidden; }
body {
  margin: 0;
  background:
    linear-gradient(180deg, rgba(255, 176, 32, .06), transparent 420px),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .018) 0 1px, transparent 1px 96px),
    var(--lvn-bg);
  color: var(--lvn-ink);
  font: 16px/1.6 var(--lvn-text);
  min-height: 100vh;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--lvn-teal); text-underline-offset: 3px; }
a:hover { color: var(--lvn-acc); }
:focus-visible { outline: 3px solid var(--lvn-acc); outline-offset: 2px; }
h1, h2, h3 { font-family: var(--lvn-display); font-stretch: condensed; text-transform: uppercase; line-height: 1.04; letter-spacing: .015em; margin: 0 0 var(--lvn-s3); }
h1 { font-size: clamp(2.2rem, 1.5rem + 2.8vw, 3.8rem); font-weight: 800; }
h2 { font-size: clamp(1.55rem, 1.25rem + 1.2vw, 2.25rem); font-weight: 800; }
h3 { font-size: 1.2rem; font-weight: 700; }
p { margin: 0 0 var(--lvn-s4); }
.lvn-ico { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.lvn-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lvn-skip { position: absolute; left: var(--lvn-s3); top: -60px; background: var(--lvn-acc); color: var(--lvn-acc-ink); padding: var(--lvn-s2) var(--lvn-s4); z-index: 90; font-weight: 700; }
.lvn-skip:focus { top: var(--lvn-s3); }
.lvn-small { font-size: .9rem; color: var(--lvn-muted); }
.lvn-kicker { font: 700 .76rem/1.4 var(--lvn-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--lvn-acc); margin-bottom: var(--lvn-s2); }

/* ---------- compliance strip ---------- */
.lvn-strip { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px var(--lvn-s5); padding: 6px var(--lvn-s4); background: var(--lvn-acc); color: var(--lvn-acc-ink); font: 700 .72rem/1.5 var(--lvn-text); letter-spacing: .08em; text-transform: uppercase; }

/* ---------- header: bar + tabs ---------- */
.lvn-head { position: sticky; top: 0; z-index: 30; background: rgba(21, 18, 15, .95); border-bottom: 1px solid var(--lvn-line); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.lvn-head__bar { max-width: 1280px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: var(--lvn-s4); padding: var(--lvn-s3) var(--lvn-s4); }
.lvn-brand { display: flex; align-items: center; gap: var(--lvn-s2); text-decoration: none; color: var(--lvn-ink); }
.lvn-brand__mark { width: 40px; height: 40px; }
.lvn-brand__name { font: 800 1.6rem/1 var(--lvn-display); font-stretch: condensed; text-transform: uppercase; letter-spacing: .06em; }
.lvn-hud { display: flex; align-items: stretch; gap: var(--lvn-s2); }
.lvn-hud__item { display: grid; gap: 4px; align-content: center; min-width: 120px; padding: 6px 14px; background: var(--lvn-surface); border: 1px solid var(--lvn-line); color: var(--lvn-ink); text-decoration: none; clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 8px 100%, 0 calc(100% - 8px)); }
.lvn-hud__item:hover { border-color: var(--lvn-acc); color: var(--lvn-ink); }
.lvn-hud__k { font: 600 .68rem var(--lvn-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--lvn-muted); }
.lvn-hud__k b { color: var(--lvn-acc); }
.lvn-hud__v { font: 700 1.05rem var(--lvn-mono); }
.lvn-hud__item--lvl { min-width: 180px; }
.lvn-track { position: relative; display: block; height: 8px; background: var(--lvn-raise); overflow: hidden; }
.lvn-track i { position: absolute; inset: 0 auto 0 0; width: var(--fill, 0%); background: var(--lvn-acc); transition: width .4s var(--lvn-ease); }
.lvn-track::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(10% - 2px), var(--lvn-bg-deep) calc(10% - 2px) 10%); }
.lvn-track--big { height: 16px; }
.lvn-tabs { max-width: 1280px; margin: 0 auto; padding: 0 var(--lvn-s4); overflow-x: auto; scrollbar-width: none; }
.lvn-tabs::-webkit-scrollbar { display: none; }
.lvn-tabs ul { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--lvn-s1); }
.lvn-tab { display: block; padding: 10px 14px 12px; color: var(--lvn-muted); text-decoration: none; white-space: nowrap; font: 700 .95rem var(--lvn-display); font-stretch: condensed; letter-spacing: .08em; text-transform: uppercase; border-bottom: 3px solid transparent; transition: color .18s var(--lvn-ease), border-color .18s var(--lvn-ease); }
.lvn-tab:hover { color: var(--lvn-ink); }
.lvn-tab.is-here { color: var(--lvn-acc); border-bottom-color: var(--lvn-acc); }
@media (max-width: 640px) {
  .lvn-head__bar { padding: var(--lvn-s2) var(--lvn-s3); gap: var(--lvn-s2); }
  .lvn-brand__name { font-size: 1.25rem; }
  .lvn-brand__mark { width: 32px; height: 32px; }
  .lvn-hud__item { min-width: 0; padding: 4px 10px; }
  .lvn-hud__item--lvl { display: none; }
  .lvn-hud__k { font-size: .6rem; }
  .lvn-tabs { padding: 0 var(--lvn-s2); }
  .lvn-tab { padding: 8px 10px 10px; font-size: .85rem; }
}
.lvn-refill { max-width: 1280px; margin: var(--lvn-s4) auto 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--lvn-s3); padding: var(--lvn-s3) var(--lvn-s4); background: rgba(255, 176, 32, .1); border: 1px solid var(--lvn-acc); }
.lvn-refill p { margin: 0; }
.lvn-main { padding: var(--lvn-s6) 0 var(--lvn-s8); }
.lvn-wrap { max-width: 1280px; margin: 0 auto; padding: 0 var(--lvn-s4); }
@media (min-width: 720px) { .lvn-wrap { padding: 0 var(--lvn-s6); } }

/* ---------- buttons ---------- */
.lvn-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--lvn-s2);
  min-height: 46px; padding: 10px 22px; border: 2px solid var(--lvn-line); background: var(--lvn-raise); color: var(--lvn-ink);
  font: 800 1rem/1.1 var(--lvn-display); font-stretch: condensed; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
  transition: transform .14s var(--lvn-ease), background-color .18s var(--lvn-ease), border-color .18s var(--lvn-ease), opacity .18s;
}
.lvn-btn:hover { border-color: var(--lvn-acc); color: var(--lvn-ink); }
.lvn-btn:active { transform: scale(.97); }
.lvn-btn:disabled { opacity: .38; cursor: not-allowed; transform: none; }
.lvn-btn--go { background: var(--lvn-acc); border-color: var(--lvn-acc); color: var(--lvn-acc-ink); }
.lvn-btn--go:hover { background: #ffc552; color: var(--lvn-acc-ink); }
.lvn-btn--line { background: transparent; }
.lvn-btn--big { min-width: 150px; min-height: 54px; font-size: 1.15rem; }
.lvn-btn small { font: 600 .78rem var(--lvn-mono); letter-spacing: 0; opacity: .85; text-transform: none; }
.lvn-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--lvn-teal); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.lvn-actions { display: flex; flex-wrap: wrap; gap: var(--lvn-s3); }

/* ---------- section heads ---------- */
.lvn-section { margin-top: var(--lvn-s8); }
.lvn-section__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--lvn-s2) var(--lvn-s4); margin-bottom: var(--lvn-s5); padding-bottom: var(--lvn-s3); border-bottom: 1px solid var(--lvn-line); }
.lvn-section__head h2 { margin: 0; }
.lvn-section__head p { margin: 0; color: var(--lvn-muted); max-width: 60ch; }
.lvn-index { font: 700 .9rem var(--lvn-mono); color: var(--lvn-acc); margin: 0 !important; }
.lvn-more-link { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; text-decoration: none; }

/* ---------- home ---------- */
.lvn-intro { display: grid; gap: var(--lvn-s6); grid-template-columns: 1fr; align-items: center; }
@media (min-width: 960px) { .lvn-intro { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.lvn-intro__text p { color: var(--lvn-muted); max-width: 60ch; font-size: 1.05rem; }
.lvn-intro__text .lvn-actions { margin-top: var(--lvn-s5); }
.lvn-zonepick { display: grid; gap: var(--lvn-s2); }
.lvn-zonepick__head { margin: 0 0 var(--lvn-s1); font: 700 .76rem var(--lvn-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--lvn-muted); }
.lvn-zonepick__row { display: grid; grid-template-columns: 120px 1fr auto; gap: var(--lvn-s3); align-items: center; padding: var(--lvn-s2); background: var(--lvn-surface); border: 1px solid var(--lvn-line); border-left: 4px solid var(--lvn-teal); color: var(--lvn-ink); text-decoration: none; transition: border-color .18s var(--lvn-ease), transform .18s var(--lvn-ease); }
.lvn-zonepick__row:hover { border-left-color: var(--lvn-acc); transform: translateX(3px); color: var(--lvn-ink); }
.lvn-zonepick__row img { width: 120px; height: 68px; object-fit: cover; }
.lvn-zonepick__row b { display: block; font: 800 1.2rem var(--lvn-display); font-stretch: condensed; text-transform: uppercase; letter-spacing: .04em; }
.lvn-zonepick__row small { display: block; color: var(--lvn-muted); font-size: .85rem; line-height: 1.4; }
.lvn-zonepick__row em { font: 700 1.6rem var(--lvn-mono); font-style: normal; color: var(--lvn-acc); padding-right: var(--lvn-s2); }
@media (max-width: 480px) { .lvn-zonepick__row { grid-template-columns: 84px 1fr auto; } .lvn-zonepick__row img { width: 84px; height: 56px; } }

.lvn-runstrip { margin-top: var(--lvn-s6); display: grid; gap: var(--lvn-s4); grid-template-columns: 1fr; align-items: center; padding: var(--lvn-s4) var(--lvn-s5); background: var(--lvn-surface); border-top: 3px solid var(--lvn-acc); }
@media (min-width: 900px) { .lvn-runstrip { grid-template-columns: minmax(0, 1.4fr) auto minmax(0, 1fr); } }
.lvn-runstrip__k { margin: 0 0 var(--lvn-s2); font: 700 1rem var(--lvn-display); font-stretch: condensed; text-transform: uppercase; letter-spacing: .06em; }
.lvn-runstrip__k b { color: var(--lvn-acc); font-size: 1.3rem; }
.lvn-runstrip__lvl .lvn-small { margin: 6px 0 0; }
.lvn-runstrip__stats { display: flex; gap: var(--lvn-s5); margin: 0; }
.lvn-runstrip__stats dt { font: 600 .7rem var(--lvn-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--lvn-muted); }
.lvn-runstrip__stats dd { margin: 0; font: 700 1.35rem var(--lvn-mono); }
.lvn-runhead .lvn-runstrip { margin-top: var(--lvn-s4); }
.lvn-resume { display: grid; grid-template-columns: 48px 1fr; gap: var(--lvn-s3); align-items: center; padding: var(--lvn-s2); background: var(--lvn-raise); color: var(--lvn-ink); text-decoration: none; border: 1px solid var(--lvn-line); }
.lvn-resume:hover { border-color: var(--lvn-acc); color: var(--lvn-ink); }
.lvn-resume img { width: 48px; height: 64px; object-fit: cover; }
.lvn-resume__k { display: block; font: 600 .7rem var(--lvn-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--lvn-teal); }
.lvn-resume b { font: 800 1.15rem var(--lvn-display); font-stretch: condensed; text-transform: uppercase; }

.lvn-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--lvn-s3); grid-template-columns: repeat(auto-fill, minmax(min(100%, 520px), 1fr)); }
.lvn-row { display: grid; grid-template-columns: 96px 1fr; gap: var(--lvn-s4); align-items: center; padding: var(--lvn-s3); background: var(--lvn-surface); border: 1px solid var(--lvn-line); color: var(--lvn-ink); text-decoration: none; transition: border-color .18s var(--lvn-ease), background-color .18s var(--lvn-ease); }
.lvn-row:hover { border-color: var(--lvn-acc); background: var(--lvn-raise); color: var(--lvn-ink); }
.lvn-row img { width: 96px; height: 128px; object-fit: cover; }
.lvn-row__body { display: grid; gap: 4px; }
.lvn-row__zone { font: 600 .7rem var(--lvn-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--lvn-teal); }
.lvn-row b { font: 800 1.45rem/1 var(--lvn-display); font-stretch: condensed; text-transform: uppercase; letter-spacing: .03em; }
.lvn-row__line { color: var(--lvn-muted); font-size: .92rem; }
.lvn-row__meta { font: 500 .8rem var(--lvn-mono); color: var(--lvn-muted); }

.lvn-rules { list-style: none; counter-reset: lvnrule; margin: 0; padding: 0; display: grid; gap: 0; grid-template-columns: 1fr; border-top: 1px solid var(--lvn-line); }
@media (min-width: 860px) { .lvn-rules { grid-template-columns: 1fr 1fr; column-gap: var(--lvn-s6); } }
.lvn-rules li { counter-increment: lvnrule; position: relative; padding: var(--lvn-s4) 0 var(--lvn-s4) 64px; border-bottom: 1px solid var(--lvn-line); color: var(--lvn-muted); }
.lvn-rules li::before { content: counter(lvnrule, decimal-leading-zero); position: absolute; left: 0; top: var(--lvn-s4); font: 800 2rem/1 var(--lvn-display); color: var(--lvn-acc); }
.lvn-rules b { display: block; color: var(--lvn-ink); margin-bottom: 2px; }

.lvn-split { display: grid; gap: var(--lvn-s6); grid-template-columns: 1fr; }
@media (min-width: 960px) { .lvn-split { grid-template-columns: 1fr 1fr; } }
.lvn-timeline { list-style: none; margin: 0; padding: 0 0 0 var(--lvn-s5); border-left: 2px solid var(--lvn-line); display: grid; gap: var(--lvn-s4); }
.lvn-timeline li { position: relative; }
.lvn-timeline li::before { content: ""; position: absolute; left: calc(-1 * var(--lvn-s5) - 7px); top: 6px; width: 12px; height: 12px; background: var(--lvn-acc); transform: rotate(45deg); }
.lvn-timeline__when { margin: 0 0 4px; font: 700 .78rem var(--lvn-mono); color: var(--lvn-acc); letter-spacing: .06em; }
.lvn-timeline p { color: var(--lvn-muted); font-size: .95rem; }
.lvn-timeline b { color: var(--lvn-ink); }
.lvn-guidecards { display: grid; gap: var(--lvn-s2); }
.lvn-guidecard { display: grid; grid-template-columns: 120px 1fr; gap: var(--lvn-s3); align-items: center; padding: var(--lvn-s2); background: var(--lvn-surface); border: 1px solid var(--lvn-line); color: var(--lvn-ink); text-decoration: none; transition: border-color .18s var(--lvn-ease); }
.lvn-guidecard:hover { border-color: var(--lvn-teal); color: var(--lvn-ink); }
.lvn-guidecard img { width: 120px; height: 68px; object-fit: cover; }
.lvn-guidecard b { font: 800 1.05rem var(--lvn-display); font-stretch: condensed; text-transform: uppercase; letter-spacing: .03em; }
.lvn-guidecard span { display: block; font: 400 .85rem var(--lvn-text); text-transform: none; letter-spacing: 0; color: var(--lvn-muted); }

.lvn-cards3 { display: grid; gap: var(--lvn-s4); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.lvn-cards3 > * { background: var(--lvn-surface); border-top: 3px solid var(--lvn-teal); padding: var(--lvn-s5); }
.lvn-cards3 p { color: var(--lvn-muted); margin: 0; }

.lvn-faq { display: grid; gap: 0; border-top: 1px solid var(--lvn-line); }
.lvn-faq details { border-bottom: 1px solid var(--lvn-line); }
.lvn-faq summary { cursor: pointer; padding: var(--lvn-s4) 0; font-weight: 700; list-style: none; display: flex; justify-content: space-between; gap: var(--lvn-s3); }
.lvn-faq summary::-webkit-details-marker { display: none; }
.lvn-faq summary::after { content: "▸"; color: var(--lvn-acc); transition: transform .2s var(--lvn-ease); }
.lvn-faq details[open] summary::after { transform: rotate(90deg); }
.lvn-faq details p { color: var(--lvn-muted); max-width: 72ch; }

/* ---------- library ---------- */
.lvn-pagehead { margin-bottom: var(--lvn-s5); }
.lvn-pagehead p { color: var(--lvn-muted); max-width: 70ch; }
.lvn-filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lvn-s3); margin-bottom: var(--lvn-s5); }
.lvn-libsearch { display: flex; align-items: center; gap: var(--lvn-s2); flex: 1 1 260px; max-width: 420px; padding: 0 var(--lvn-s3); background: var(--lvn-surface); border: 1px solid var(--lvn-line); color: var(--lvn-muted); }
.lvn-libsearch:focus-within { border-color: var(--lvn-acc); }
.lvn-libsearch input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--lvn-ink); font: inherit; padding: 11px 0; }
.lvn-libsearch input:focus { outline: none; }
.lvn-filters__chips { display: flex; gap: var(--lvn-s1); }
.lvn-filter { padding: 9px 16px; border: 1px solid var(--lvn-line); background: var(--lvn-surface); color: var(--lvn-ink); font: 700 .9rem var(--lvn-display); font-stretch: condensed; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; min-height: 42px; transition: background-color .18s var(--lvn-ease); }
.lvn-filter[aria-pressed="true"] { background: var(--lvn-acc); color: var(--lvn-acc-ink); border-color: var(--lvn-acc); }
.lvn-filters__count { margin-left: auto; color: var(--lvn-muted); font: 600 .85rem var(--lvn-mono); }
.lvn-grid { display: grid; gap: var(--lvn-s4); grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); list-style: none; margin: 0; padding: 0; }
.lvn-tile { position: relative; display: block; overflow: hidden; color: var(--lvn-ink); text-decoration: none; background: var(--lvn-surface); border: 1px solid var(--lvn-line); transition: border-color .2s var(--lvn-ease); }
.lvn-tile:hover { border-color: var(--lvn-acc); color: var(--lvn-ink); }
.lvn-tile img { aspect-ratio: 3 / 4; width: 100%; object-fit: cover; transition: transform .3s var(--lvn-ease); }
.lvn-tile:hover img { transform: scale(1.03); }
.lvn-tile__info { display: grid; gap: 2px; padding: var(--lvn-s3); }
.lvn-tile__t { font: 800 1.15rem/1.1 var(--lvn-display); font-stretch: condensed; text-transform: uppercase; }
.lvn-tile__k { font-size: .8rem; color: var(--lvn-muted); }
.lvn-tile__badge { position: absolute; top: 0; left: 0; z-index: 1; padding: 4px 10px; background: var(--lvn-acc); color: var(--lvn-acc-ink); font: 700 .68rem var(--lvn-mono); letter-spacing: .08em; text-transform: uppercase; }
.lvn-tablewrap { overflow-x: auto; border: 1px solid var(--lvn-line); margin-bottom: var(--lvn-s4); }
.lvn-table { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 480px; }
.lvn-table caption { text-align: left; padding: var(--lvn-s3) var(--lvn-s4); color: var(--lvn-muted); font-size: .85rem; background: var(--lvn-surface); }
.lvn-table th, .lvn-table td { padding: 10px var(--lvn-s4); border-top: 1px solid var(--lvn-line); text-align: left; vertical-align: middle; }
.lvn-table thead th { font: 700 .74rem var(--lvn-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--lvn-acc); background: var(--lvn-surface); }
.lvn-table tbody tr:nth-child(even) { background: rgba(255, 255, 255, .02); }
.lvn-table tbody th { font-weight: 600; }
.lvn-table th img { display: inline-block; vertical-align: middle; width: 40px; height: 40px; margin-right: 8px; }
.lvn-table td { font-family: var(--lvn-mono); }

/* ---------- zone map ---------- */
.lvn-zone { margin-top: var(--lvn-s7); display: grid; gap: 0; grid-template-columns: 1fr; border: 1px solid var(--lvn-line); background: var(--lvn-surface); }
@media (min-width: 960px) { .lvn-zone { grid-template-columns: 380px minmax(0, 1fr); } }
.lvn-zone__banner { position: relative; min-height: 200px; }
.lvn-zone__banner img { width: 100%; height: 100%; object-fit: cover; }
.lvn-zone__banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14, 12, 10, .92), transparent 60%); }
.lvn-zone__title { position: absolute; left: var(--lvn-s4); bottom: var(--lvn-s3); z-index: 1; }
.lvn-zone__title h2 { margin: 0; }
.lvn-zone__body { padding: var(--lvn-s5); }
.lvn-zone__body > p { color: var(--lvn-muted); max-width: 70ch; }
.lvn-path { list-style: none; margin: var(--lvn-s4) 0 0; padding: 0; counter-reset: lvnnode; display: grid; gap: 0; }
.lvn-path li { counter-increment: lvnnode; border-top: 1px dashed var(--lvn-line); }
.lvn-node { display: grid; grid-template-columns: 40px 64px 1fr; gap: 2px var(--lvn-s3); align-items: center; padding: var(--lvn-s2) 0; color: var(--lvn-ink); text-decoration: none; }
.lvn-node::before { content: counter(lvnnode, decimal-leading-zero); grid-row: span 3; font: 800 1.5rem var(--lvn-display); color: var(--lvn-acc); }
.lvn-node img { grid-row: span 3; width: 64px; height: 86px; object-fit: cover; border: 1px solid var(--lvn-line); transition: border-color .2s var(--lvn-ease); }
.lvn-node:hover img { border-color: var(--lvn-acc); }
.lvn-node b { font: 800 1.15rem var(--lvn-display); font-stretch: condensed; text-transform: uppercase; }
.lvn-node span { font-size: .85rem; color: var(--lvn-muted); }

/* ---------- game page ---------- */
.lvn-crumbs { display: flex; flex-wrap: wrap; gap: var(--lvn-s2); font-size: .85rem; color: var(--lvn-muted); margin-bottom: var(--lvn-s4); }
.lvn-crumbs a { color: var(--lvn-muted); }
.lvn-gamehead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--lvn-s4); margin-bottom: var(--lvn-s4); }
.lvn-gamehead h1 { margin-bottom: var(--lvn-s2); }
.lvn-gamehead__line { color: var(--lvn-muted); margin: 0; max-width: 70ch; }
.lvn-gamehead__step { display: flex; gap: var(--lvn-s4); }
.lvn-gamehead__step a { display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; text-decoration: none; color: var(--lvn-muted); }
.lvn-gamehead__step a:hover { color: var(--lvn-acc); }

.lvn-cab { position: relative; overflow: hidden; isolation: isolate; border: 1px solid var(--lvn-line); border-top: 3px solid var(--lvn-acc); padding: var(--lvn-s5) var(--lvn-s4); background: var(--lvn-bg-deep); display: grid; gap: var(--lvn-s4); }
.lvn-cab { grid-template-columns: minmax(0, 1fr); }
.lvn-cab > * { min-width: 0; }
.lvn-cab__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .5; z-index: -1; }
.lvn-cab::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14, 12, 10, .35), rgba(14, 12, 10, .85)); }
.lvn-cab__nojs { background: var(--lvn-surface); padding: var(--lvn-s4); }
.lvn-cab__status { margin: 0; min-height: 1.6em; text-align: center; font-weight: 700; text-shadow: 0 1px 8px rgba(0, 0, 0, .9); }
.lvn-cab__controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--lvn-s3); padding: var(--lvn-s3); background: rgba(21, 18, 15, .86); border: 1px solid var(--lvn-line); }
.lvn-stakebox { display: inline-flex; align-items: center; gap: var(--lvn-s2); }
.lvn-stakebox__k { font: 700 .7rem var(--lvn-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--lvn-muted); }
.lvn-stakebox__v { min-width: 3.4em; text-align: center; font: 700 1.15rem var(--lvn-mono); color: var(--lvn-acc); }
.lvn-step { width: 42px; height: 42px; border: 2px solid var(--lvn-line); background: var(--lvn-raise); color: var(--lvn-ink); font: 700 1.2rem/1 var(--lvn-text); cursor: pointer; transition: border-color .18s, transform .14s var(--lvn-ease); }
.lvn-step:hover { border-color: var(--lvn-acc); }
.lvn-step:active { transform: scale(.94); }
.lvn-step:disabled { opacity: .4; cursor: not-allowed; }

/* reels */
.lvn-reels { display: grid; grid-template-columns: repeat(var(--cols, 5), minmax(0, 1fr)); gap: 6px; padding: var(--lvn-s3); background: rgba(14, 12, 10, .6); border: 2px solid rgba(255, 176, 32, .5); max-width: 760px; width: 100%; margin: 0 auto; }
.lvn-reels--classic { max-width: 440px; }
.lvn-reels--adjacent { max-width: 620px; gap: 4px; padding: var(--lvn-s2); }
.lvn-reel { display: grid; gap: 6px; }
.lvn-reels--adjacent .lvn-reel { gap: 4px; }
.lvn-cell { aspect-ratio: 1; background: rgba(42, 36, 31, .78); display: grid; place-items: center; padding: 7%; transition: transform .2s var(--lvn-ease), box-shadow .2s var(--lvn-ease), opacity .2s var(--lvn-ease); }
.lvn-cell img { width: 100%; height: 100%; object-fit: contain; }
.lvn-reel.is-rolling .lvn-cell img { filter: blur(1.5px); opacity: .85; }
.lvn-cell.is-hit { box-shadow: inset 0 0 0 2px var(--lvn-acc), 0 0 16px rgba(255, 176, 32, .55); transform: scale(1.04); }
.lvn-cell.is-gone { opacity: 0; transform: scale(.9); }
.lvn-bonus { justify-self: center; padding: 6px 16px; background: var(--lvn-teal); color: #04201c; font: 700 .85rem var(--lvn-mono); letter-spacing: .06em; }

/* cards */
.lvn-felt { display: grid; gap: var(--lvn-s4); padding: var(--lvn-s5) var(--lvn-s4); background: radial-gradient(ellipse at 50% 0%, rgba(52, 214, 194, .35), rgba(10, 46, 42, .92)); border: 1px solid rgba(52, 214, 194, .4); }
.lvn-felt--bac { grid-template-columns: 1fr 1fr; }
.lvn-felt--bac .lvn-spots, .lvn-felt--bac .lvn-felt__rule { grid-column: 1 / -1; }
.lvn-bacside { display: grid; gap: var(--lvn-s2); justify-items: center; }
.lvn-felt__k { margin: 0; font: 700 .76rem var(--lvn-mono); letter-spacing: .1em; text-transform: uppercase; color: #e3fffb; }
.lvn-felt__cards { display: flex; gap: var(--lvn-s2); flex-wrap: wrap; justify-content: center; min-height: 100px; }
.lvn-felt__rule { margin: 0; text-align: center; font: 600 .76rem var(--lvn-mono); color: rgba(227, 255, 251, .85); }
.lvn-spots { display: grid; grid-template-columns: 1fr .8fr 1fr; gap: var(--lvn-s2); }
.lvn-spot { display: grid; gap: 2px; justify-items: center; padding: var(--lvn-s3); border: 2px solid rgba(227, 255, 251, .35); background: rgba(14, 12, 10, .45); color: #f2fffd; cursor: pointer; transition: border-color .16s var(--lvn-ease), background-color .16s var(--lvn-ease); }
.lvn-spot span { font: 800 1.2rem var(--lvn-display); font-stretch: condensed; text-transform: uppercase; letter-spacing: .06em; }
.lvn-spot small { font: 600 .72rem var(--lvn-mono); opacity: .8; }
.lvn-spot b { font: 700 .95rem var(--lvn-mono); color: var(--lvn-acc); }
.lvn-spot:hover, .lvn-spot.has-bet { border-color: var(--lvn-acc); }
.lvn-spot.is-lit { background: rgba(255, 176, 32, .25); border-color: var(--lvn-acc); }
.lvn-spot--tie span { color: var(--lvn-teal); }
.lvn-card { position: relative; width: 64px; aspect-ratio: 5 / 7; border-radius: 6px; background: linear-gradient(160deg, #fffdf8, #ece4d8); color: #1d1712; box-shadow: 0 6px 14px rgba(0, 0, 0, .45); }
.lvn-card.is-red { color: #c0262d; }
.lvn-card.is-wild { background: linear-gradient(160deg, #ffd36b, #ffb020); color: #2b1a00; }
.lvn-card.is-down { background: repeating-linear-gradient(45deg, #b56a10 0 6px, #ffb020 6px 12px); border: 3px solid #fffdf8; }
.lvn-card__corner { position: absolute; top: 4px; left: 6px; font: 800 .95rem/1 var(--lvn-display); }
.lvn-card__pip { position: absolute; inset: 0; display: grid; place-items: center; font-size: 1.9rem; }
@media (min-width: 720px) { .lvn-card { width: 78px; } .lvn-card__pip { font-size: 2.2rem; } }
.lvn-handlist { list-style: none; margin: 0 auto; padding: var(--lvn-s3); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 2px var(--lvn-s4); width: 100%; max-width: 680px; background: rgba(21, 18, 15, .86); border: 1px solid var(--lvn-line); font-size: .86rem; }
.lvn-handlist li { display: flex; justify-content: space-between; gap: var(--lvn-s2); padding: 3px 8px; }
.lvn-handlist b { font-family: var(--lvn-mono); color: var(--lvn-acc); }
.lvn-handlist li.is-hit { background: var(--lvn-acc); color: var(--lvn-acc-ink); }
.lvn-handlist li.is-hit b { color: var(--lvn-acc-ink); }
.lvn-pokerrow { display: flex; justify-content: center; gap: var(--lvn-s2); flex-wrap: wrap; min-height: 132px; }
.lvn-slot { display: grid; justify-items: center; gap: 6px; padding: 6px; border: 2px solid transparent; background: transparent; color: var(--lvn-ink); cursor: pointer; transition: transform .16s var(--lvn-ease), border-color .16s var(--lvn-ease); }
.lvn-slot:disabled { cursor: default; }
.lvn-slot.is-held { border-color: var(--lvn-acc); transform: translateY(-6px); }
.lvn-slot__tag { font: 700 .7rem var(--lvn-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--lvn-muted); }
.lvn-slot.is-held .lvn-slot__tag { color: var(--lvn-acc); }
.lvn-ladder { display: grid; gap: var(--lvn-s4); grid-template-columns: minmax(0, 150px) minmax(0, 1fr); align-items: center; padding: var(--lvn-s4); background: rgba(21, 18, 15, .78); border: 1px solid var(--lvn-line); }
.lvn-ladder__rungs { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; }
.lvn-ladder__rungs li { padding: 4px 10px; background: var(--lvn-raise); font: 600 .78rem var(--lvn-mono); color: var(--lvn-muted); transition: background-color .2s var(--lvn-ease), color .2s; }
.lvn-ladder__rungs li.is-done { background: var(--lvn-acc); color: var(--lvn-acc-ink); }
.lvn-ladder__rungs li.is-next { outline: 2px solid var(--lvn-teal); color: var(--lvn-ink); }
.lvn-ladder__table { display: grid; justify-items: center; gap: var(--lvn-s3); }
.lvn-ladder__card { min-height: 112px; display: grid; place-items: center; }
.lvn-ladder__card .lvn-card { width: 96px; }
.lvn-ladder__carry { margin: 0; text-align: center; }
.lvn-ladder__carry b { font-family: var(--lvn-mono); color: var(--lvn-acc); }

/* roulette */
.lvn-wheelrow { display: grid; gap: var(--lvn-s4); grid-template-columns: 1fr; justify-items: center; align-items: center; }
@media (min-width: 720px) { .lvn-wheelrow { grid-template-columns: auto 1fr; } }
.lvn-wheel { width: min(300px, 78vw); }
.lvn-wheel svg { width: 100%; height: auto; display: block; }
.lvn-wheel__spin { transform-box: view-box; transform-origin: 160px 160px; }
.lvn-wheel__rim { fill: #2a241f; stroke: var(--lvn-acc); stroke-width: 3; }
.lvn-pocket { stroke: rgba(255, 255, 255, .25); stroke-width: .6; }
.lvn-pocket--red { fill: #c0262d; }
.lvn-pocket--black { fill: #1b1714; }
.lvn-pocket--green { fill: #1f9d72; }
.lvn-wheel__num { fill: #fff; font: 700 11px var(--lvn-text); text-anchor: middle; dominant-baseline: central; }
.lvn-wheel__hub { fill: #3a3029; stroke: var(--lvn-teal); stroke-width: 2; }
.lvn-wheel__cap { fill: var(--lvn-acc); }
.lvn-wheel__pointer { fill: var(--lvn-teal); }
.lvn-wheelinfo { justify-self: stretch; padding: var(--lvn-s4); background: rgba(21, 18, 15, .86); border: 1px solid var(--lvn-line); }
.lvn-wheelinfo__n { font: 800 2.2rem var(--lvn-display); text-transform: uppercase; margin: 0 0 var(--lvn-s3); }
.lvn-pips { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: var(--lvn-s2) 0 0; padding: 0; }
.lvn-pip { width: 30px; height: 30px; display: grid; place-items: center; font: 700 .78rem var(--lvn-mono); }
.lvn-pip--red { background: #c0262d; }
.lvn-pip--black { background: #1b1714; border: 1px solid var(--lvn-line); }
.lvn-pip--green { background: #1f9d72; }
.lvn-board { display: grid; grid-template-columns: 44px minmax(0, 1fr); grid-template-rows: auto auto; gap: 4px; overflow-x: auto; padding-bottom: 4px; }
.lvn-board__grid { display: grid; grid-template-columns: repeat(12, minmax(36px, 1fr)) minmax(48px, 1.2fr); gap: 4px; min-width: 560px; }
.lvn-board__out { grid-column: 2; display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; min-width: 560px; }
.lvn-board__out .lvn-bet--d1, .lvn-board__out .lvn-bet--d2, .lvn-board__out .lvn-bet--d3 { grid-column: span 2; }
.lvn-bet { position: relative; min-height: 42px; border: 1px solid rgba(255, 255, 255, .2); color: #fff; font: 700 .85rem var(--lvn-mono); cursor: pointer; background: rgba(10, 46, 42, .92); transition: box-shadow .16s var(--lvn-ease), transform .12s var(--lvn-ease); }
.lvn-bet:hover { box-shadow: 0 0 0 2px var(--lvn-teal); }
.lvn-bet:active { transform: scale(.96); }
.lvn-bet--n.is-red, .lvn-bet--red { background: #c0262d; }
.lvn-bet--n.is-black, .lvn-bet--black { background: #1b1714; }
.lvn-bet--zero { grid-row: 1; background: #1f9d72; min-height: 100%; }
.lvn-bet.is-lit { box-shadow: 0 0 0 3px var(--lvn-acc), 0 0 16px rgba(255, 176, 32, .7); }
.lvn-chipmark { position: absolute; right: 2px; top: 2px; padding: 0 5px; background: var(--lvn-acc); color: var(--lvn-acc-ink); font: 700 .66rem/1.5 var(--lvn-mono); }
.lvn-chips { display: inline-flex; align-items: center; gap: 6px; }
.lvn-chipbtn { width: 46px; height: 46px; border: 2px solid var(--lvn-line); background: var(--lvn-raise); color: var(--lvn-ink); font: 700 .8rem var(--lvn-mono); cursor: pointer; clip-path: polygon(30% 0, 70% 0, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0 70%, 0 30%); transition: transform .14s var(--lvn-ease), background-color .14s; }
.lvn-chipbtn[aria-pressed="true"] { background: var(--lvn-acc); color: var(--lvn-acc-ink); border-color: var(--lvn-acc); transform: translateY(-3px); }
.lvn-tabletotal { margin: 0; font-size: .9rem; }
.lvn-tabletotal b { font-family: var(--lvn-mono); color: var(--lvn-acc); }

/* session strip */
.lvn-hudstrip { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lvn-s3) var(--lvn-s5); padding: var(--lvn-s3) var(--lvn-s4); background: var(--lvn-surface); border: 1px solid var(--lvn-line); border-top: 0; }
.lvn-hudstrip__head { display: flex; align-items: center; gap: 6px; margin: 0; font: 800 .95rem var(--lvn-display); font-stretch: condensed; text-transform: uppercase; letter-spacing: .08em; color: var(--lvn-teal); }
.lvn-hudstrip__grid { display: flex; flex-wrap: wrap; gap: var(--lvn-s2) var(--lvn-s5); margin: 0; }
.lvn-hudstrip__grid dt { font: 600 .66rem var(--lvn-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--lvn-muted); }
.lvn-hudstrip__grid dd { margin: 0; font: 700 1rem var(--lvn-mono); }
.lvn-hudstrip__note { margin: 0 0 0 auto; font-size: .85rem; color: var(--lvn-muted); }

/* game body */
.lvn-gamebody { display: grid; gap: var(--lvn-s6); grid-template-columns: minmax(0, 1fr); margin-top: var(--lvn-s7); }
@media (min-width: 1000px) { .lvn-gamebody { grid-template-columns: minmax(0, 1fr) 300px; } .lvn-spec { position: sticky; top: 130px; align-self: start; } }
.lvn-spec { display: grid; gap: var(--lvn-s3); padding: var(--lvn-s4); background: var(--lvn-surface); border: 1px solid var(--lvn-line); }
.lvn-spec__cover { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.lvn-spec__list { margin: 0; display: grid; gap: 0; }
.lvn-spec__list div { display: flex; justify-content: space-between; gap: var(--lvn-s3); padding: 8px 0; border-bottom: 1px solid var(--lvn-line); font-size: .9rem; }
.lvn-spec__list dt { color: var(--lvn-muted); }
.lvn-spec__list dd { margin: 0; font-weight: 700; text-align: right; }
.lvn-spec__note { margin: 0; font-size: .84rem; color: var(--lvn-muted); }
.lvn-spec__note b { color: var(--lvn-acc); }
@media (max-width: 999px) { .lvn-spec { grid-template-columns: 120px 1fr; align-items: start; } .lvn-spec__note { grid-column: 1 / -1; } }
.lvn-prose { max-width: 74ch; }
.lvn-prose--wide { max-width: 90ch; }
.lvn-prose h2 { margin-top: var(--lvn-s6); }
.lvn-prose h2:first-child { margin-top: 0; }
.lvn-prose h3 { margin-top: var(--lvn-s5); }
.lvn-prose p, .lvn-prose li { color: #e6dbcf; }
.lvn-prose ol, .lvn-prose ul { padding-left: 1.3em; margin: 0 0 var(--lvn-s4); }
.lvn-prose li { margin-bottom: var(--lvn-s2); }
.lvn-prose address { font-style: normal; color: #e6dbcf; margin-bottom: var(--lvn-s4); line-height: 1.7; padding-left: var(--lvn-s3); border-left: 3px solid var(--lvn-acc); }
.lvn-callout { border-left: 4px solid var(--lvn-acc); background: var(--lvn-surface); padding: var(--lvn-s4) var(--lvn-s5); margin: var(--lvn-s5) 0; }
.lvn-callout p:last-child { margin: 0; }
.lvn-band { margin-top: var(--lvn-s7); }
.lvn-mini { display: grid; grid-auto-flow: column; grid-auto-columns: 136px; gap: var(--lvn-s3); overflow-x: auto; list-style: none; padding: 0 0 var(--lvn-s3); margin: 0; }
.lvn-mini a { display: grid; gap: 4px; color: var(--lvn-ink); text-decoration: none; }
.lvn-mini img { aspect-ratio: 3 / 4; object-fit: cover; border: 1px solid var(--lvn-line); }
.lvn-mini li.is-same img { border-color: var(--lvn-acc); }
.lvn-mini__t { font: 800 .98rem var(--lvn-display); font-stretch: condensed; text-transform: uppercase; }
.lvn-mini__k { font-size: .76rem; color: var(--lvn-muted); }

/* text pages */
.lvn-doc { display: grid; gap: var(--lvn-s6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .lvn-doc { grid-template-columns: minmax(0, 1fr) 230px; } .lvn-doc > .lvn-jump { order: 2; position: sticky; top: 130px; align-self: start; flex-direction: column; } }
.lvn-jump { display: flex; flex-wrap: wrap; gap: 2px var(--lvn-s3); border-left: 2px solid var(--lvn-line); padding-left: var(--lvn-s3); }
.lvn-jump a { padding: 4px 0; color: var(--lvn-muted); text-decoration: none; font-size: .9rem; }
.lvn-jump a:hover { color: var(--lvn-acc); }
.lvn-doc__meta { font: 600 .8rem var(--lvn-mono); color: var(--lvn-muted); }
.lvn-hero-img { margin: 0 0 var(--lvn-s5); border: 1px solid var(--lvn-line); }
.lvn-hero-img img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }
.lvn-orgs { display: grid; gap: var(--lvn-s3); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); list-style: none; padding: 0 !important; margin: 0 0 var(--lvn-s5); }
.lvn-orgs li { background: var(--lvn-surface); border-left: 3px solid var(--lvn-teal); padding: var(--lvn-s4); margin: 0; }
.lvn-orgs b { display: block; font: 800 1.1rem var(--lvn-display); font-stretch: condensed; text-transform: uppercase; margin-bottom: 4px; }
.lvn-orgs span { display: block; color: var(--lvn-muted); font-size: .9rem; margin-bottom: 6px; }
.lvn-panel { background: var(--lvn-surface); border: 1px solid var(--lvn-line); padding: var(--lvn-s5); }
.lvn-welcome p { color: var(--lvn-muted); max-width: 62ch; }

/* run page */
.lvn-feats { display: grid; gap: var(--lvn-s3); grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); list-style: none; margin: 0; padding: 0; }
.lvn-feat { display: grid; grid-template-columns: 44px 1fr; gap: var(--lvn-s3); align-items: center; padding: var(--lvn-s3); background: var(--lvn-surface); border: 1px solid var(--lvn-line); opacity: .6; transition: opacity .2s var(--lvn-ease), border-color .2s; }
.lvn-feat.is-on { opacity: 1; border-color: var(--lvn-acc); }
.lvn-feat__badge { width: 44px; height: 44px; display: grid; place-items: center; background: var(--lvn-raise); color: var(--lvn-muted); clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
.lvn-feat.is-on .lvn-feat__badge { background: var(--lvn-acc); color: var(--lvn-acc-ink); }
.lvn-feat b { display: block; }
.lvn-feat span { display: block; font-size: .84rem; color: var(--lvn-muted); }
.lvn-feat em { font: 600 .7rem var(--lvn-mono); letter-spacing: .08em; text-transform: uppercase; font-style: normal; color: var(--lvn-muted); }
.lvn-tools { display: grid; gap: var(--lvn-s4); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.lvn-tools label { display: block; font-weight: 700; margin-bottom: var(--lvn-s2); }
.lvn-tools select { width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--lvn-line); background: var(--lvn-raise); color: var(--lvn-ink); font: inherit; }
.lvn-switch { display: flex; align-items: center; gap: var(--lvn-s3); }
.lvn-switch input { width: 22px; height: 22px; accent-color: var(--lvn-acc); }

/* forms */
.lvn-form { display: grid; gap: var(--lvn-s4); max-width: 640px; }
.lvn-form label { display: block; font-weight: 700; margin-bottom: 6px; }
.lvn-form input, .lvn-form textarea, .lvn-form select { width: 100%; padding: 12px; border: 1px solid var(--lvn-line); background: var(--lvn-surface); color: var(--lvn-ink); font: inherit; }
.lvn-form input:focus, .lvn-form textarea:focus, .lvn-form select:focus { outline: none; border-color: var(--lvn-acc); }
.lvn-form textarea { min-height: 160px; resize: vertical; }
.lvn-form__check { display: flex; gap: var(--lvn-s3); align-items: flex-start; }
.lvn-form__check input { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--lvn-acc); }
.lvn-form__check label { font-weight: 400; }
.lvn-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lvn-notice { padding: var(--lvn-s4); border: 1px solid var(--lvn-line); background: var(--lvn-surface); }
.lvn-notice--ok { border-color: var(--lvn-teal); }
.lvn-notice--bad { border-color: var(--lvn-ember); }

/* ---------- footer ---------- */
.lvn-foot { margin-top: var(--lvn-s8); background: var(--lvn-bg-deep); border-top: 1px solid var(--lvn-line); }
.lvn-foot__band { background: var(--lvn-surface); border-bottom: 1px solid var(--lvn-line); padding: var(--lvn-s5) var(--lvn-s4); }
.lvn-foot__help { max-width: 1280px; margin: 0 auto; display: grid; gap: var(--lvn-s3); }
.lvn-foot__help ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--lvn-s2) var(--lvn-s5); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); color: var(--lvn-muted); font-size: .92rem; }
.lvn-foot__notice, .lvn-foot__grid, .lvn-foot__base { max-width: 1280px; margin: 0 auto; padding: 0 var(--lvn-s4); }
.lvn-foot__notice { padding-top: var(--lvn-s6); }
.lvn-foot__notice p { color: var(--lvn-muted); margin-bottom: var(--lvn-s2); max-width: 100ch; }
.lvn-foot__lead { color: var(--lvn-ink) !important; }
.lvn-foot__lead b { color: var(--lvn-acc); }
.lvn-foot__grid { display: grid; gap: var(--lvn-s5); grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); padding-top: var(--lvn-s5); }
.lvn-foot__grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .92rem; }
.lvn-foot__grid a { color: var(--lvn-muted); }
.lvn-foot__grid a:hover { color: var(--lvn-acc); }
.lvn-foot__head { font: 800 .95rem var(--lvn-display); font-stretch: condensed; letter-spacing: .1em; text-transform: uppercase; color: var(--lvn-acc); margin-bottom: var(--lvn-s3); }
.lvn-foot__base { margin-top: var(--lvn-s6); padding-top: var(--lvn-s4); padding-bottom: var(--lvn-s7); border-top: 1px solid var(--lvn-line); font-size: .85rem; color: var(--lvn-muted); }
.lvn-foot__base p { margin: 0 0 var(--lvn-s2); }
@media (min-width: 720px) { .lvn-foot__band, .lvn-foot__notice, .lvn-foot__grid, .lvn-foot__base { padding-left: var(--lvn-s6); padding-right: var(--lvn-s6); } }

/* ---------- overlays ---------- */
.lvn-gate { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: var(--lvn-s4); background: rgba(10, 8, 6, .86); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.lvn-gate__card { max-width: 520px; width: 100%; padding: var(--lvn-s6) var(--lvn-s5); background: var(--lvn-surface); border-top: 4px solid var(--lvn-acc); box-shadow: 0 30px 80px rgba(0, 0, 0, .6); animation: lvn-in .24s var(--lvn-ease); }
.lvn-gate__card img { width: 64px; height: 64px; margin-bottom: var(--lvn-s3); }
.lvn-gate__kicker { font: 700 .76rem var(--lvn-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--lvn-acc); margin-bottom: var(--lvn-s2); }
.lvn-gate__title { font: 800 1.8rem/1.08 var(--lvn-display); font-stretch: condensed; text-transform: uppercase; margin-bottom: var(--lvn-s3); }
.lvn-gate__card p { color: var(--lvn-muted); }
.lvn-gate__actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lvn-s2); margin: var(--lvn-s4) 0; }
@media (max-width: 420px) { .lvn-gate__actions { grid-template-columns: 1fr; } }
.lvn-gate__small { font-size: .82rem; margin: 0; }
@keyframes lvn-in { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }
.lvn-cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--lvn-s3) var(--lvn-s5); padding: var(--lvn-s3) var(--lvn-s4); background: var(--lvn-raise); border-top: 2px solid var(--lvn-acc); font-size: .9rem; }
.lvn-cookie p { margin: 0; max-width: 820px; color: var(--lvn-muted); }
.lvn-cookie p b { color: var(--lvn-ink); }
.lvn-cookie__actions { display: flex; gap: var(--lvn-s2); }
.lvn-cookie__actions .lvn-btn { min-width: 120px; }
.lvn-nudge { position: fixed; right: var(--lvn-s3); bottom: var(--lvn-s3); z-index: 61; max-width: 360px; padding: var(--lvn-s4); background: var(--lvn-raise); border-left: 4px solid var(--lvn-teal); box-shadow: 0 18px 50px rgba(0, 0, 0, .55); }
.lvn-nudge__actions { display: flex; flex-wrap: wrap; gap: var(--lvn-s2); }
.lvn-toast { position: fixed; left: 50%; bottom: var(--lvn-s5); z-index: 70; max-width: min(92vw, 440px); padding: 10px 18px; background: var(--lvn-teal); color: #04201c; font-weight: 700; font-size: .92rem; text-align: center; opacity: 0; pointer-events: none; transform: translate(-50%, 8px); transition: opacity .2s var(--lvn-ease), transform .2s var(--lvn-ease); }
.lvn-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ---------- narrow screens ---------- */
@media (max-width: 560px) {
  .lvn-strip { font-size: .6rem; gap: 2px 10px; padding: 4px 8px; }
  .lvn-main { padding-top: var(--lvn-s4); }
  .lvn-gamehead h1 { font-size: 2rem; }
  .lvn-gamehead__line { font-size: .92rem; }
  .lvn-gamehead__step { display: none; }
  .lvn-cab { padding: var(--lvn-s3) var(--lvn-s2); }
  .lvn-ladder { grid-template-columns: 104px minmax(0, 1fr); padding: var(--lvn-s3); }
  .lvn-ladder__rungs li { padding: 2px 8px; }
  .lvn-felt--bac { grid-template-columns: 1fr; }
  .lvn-handlist { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--lvn-s2); font-size: .74rem; padding: var(--lvn-s2); }
  .lvn-handlist li { padding: 2px 4px; }
  .lvn-spot span { font-size: 1rem; }
  .lvn-row { grid-template-columns: 72px 1fr; }
  .lvn-row img { width: 72px; height: 96px; }
  .lvn-runstrip__stats { gap: var(--lvn-s4); }
  .lvn-hudstrip__note { margin-left: 0; }
}

/* ---------- low-motion mode / reduced motion ---------- */
html.lvn-calm *, html.lvn-calm *::before, html.lvn-calm *::after { transition-duration: 0s !important; animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0s !important; animation: none !important; scroll-behavior: auto !important; }
}
