/* ==========================================================================
   Xon Bet Casino — plate.css
   Hand-written stylesheet. Tokens: TYPO-10, SPACE-08, CONT-08, BP-04,
   GEO-09, MOTION-03. Media strategy: desktop-first (max-width queries).
   CSS rule order: alphabetical within each thematic block.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Design tokens (single source of truth)
   -------------------------------------------------------------------------- */
:root {
    /* Breakpoints (BP-04) — reference values, used in media queries */
    --bp-sm-x: 540px;
    --bp-md-x: 880px;
    --bp-lg-x: 1120px;
    --bp-xl-x: 1440px;

    /* Colors (RANDOM_SPEC .final values after ±2% shift) */
    --highlight: #f98945;
    --accent-pressed: #f6771c;
    --page-bg: #131516;
    --bg-elevated: #1c1f20;
    --gradient-start: #fcd1b9;
    --gradient-to: #fba56a;
    --main-color: #212425;
    --banner-bg: #dc2626;
    --body-color: #ffffff;
    --text-muted: #bfbfbf;

    /* Containers (single site width + readable width) */
    --pad-desktop: 56px;
    --pad-mobile: 16px;
    --container-padding-tablet-x: 32px;
    --text-width: 720px;
    --container: 1340px;

    /* Fonts (Inter for display + body) */
    --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --font-title: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

    /* Font sizes (TYPO-10 — desktop) */
    --text-base: 16px;
    --size-h1: 60px;
    --type-h2: 34px;
    --size-h3: 24px;
    --text-h4: 19px;
    --type-h5: 16px;
    --type-h6: 14px;
    --type-micro: 10px;
    --size-sm: 13px;

    /* Font weights (TYPO-10) */
    --weight-bold: 800;
    --font-medium: 600;
    --fw-normal: 400;

    /* Geometry (GEO-09) */
    --border-medium-x: 2px;
    --stroke-thin: 1px;
    --round-circle: 50%;
    --rounded-lg: 22px;
    --rounded-md: 14px;
    --corner-pill: 9999px;
    --round-sm: 8px;
    --rounded-xs: 2px;
    --shade-lg: 0 16px 48px rgba(0, 0, 0, 0.30), 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
    --elevation-2: 0 8px 24px rgba(0, 0, 0, 0.20), 0 0 0 1px rgba(255, 255, 255, 0.10) inset;
    --elevation-1: 0 4px 12px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;

    /* Header height (STICKY-01 fixed → body compensation) */
    --header-height-desktop-x: 96px;
    --topbar-mobile: 72px;

    /* Letter spacing (TYPO-10) */
    --tracking-tight: -0.02em;
    --ls-normal-x: 0;
    --letter-wide: 0.06em;

    /* Line heights (TYPO-10) */
    --leading-loose: 1.65;
    --leading-normal: 1.5;
    --leading-tight: 1.1;

    /* Motion (MOTION-03) */
    --speed-base: 300ms;
    --transition-fast: 200ms;
    --duration-slow: 500ms;
    --ease-in-x: cubic-bezier(0.7, 0, 0.84, 0);
    --ease-in-out-x: cubic-bezier(0.83, 0, 0.17, 1);
    --timing: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-spring-x: cubic-bezier(0.34, 1.56, 0.64, 1);

    /* Spacing (SPACE-08 — even decimal) */
    --gutter-2xl: 90px;
    --gap-2xs: 5px;
    --gutter-3xl: 140px;
    --gap-lg: 40px;
    --gap-md: 25px;
    --gap-sm: 15px;
    --spacing-xl: 60px;
    --gap-xs: 10px;
}

/* --------------------------------------------------------------------------
   Reset / base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    overflow-x: clip;
}

body {
    background: var(--page-bg);
    color: var(--body-color);
    font-family: var(--font-sans);
    font-size: var(--text-base);
    font-weight: var(--fw-normal);
    line-height: var(--leading-normal);
    margin: 0;
    padding-top: calc(var(--header-height-desktop-x) + 34px);
}

a {
    color: var(--highlight);
    text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
}

img {
    display: block;
    max-width: 100%;
}

p {
    margin: 0;
}

ul {
    margin: 0;
    padding: 0;
}

/* Off-screen skip link (canon: unfocused top ≤ -100px) */
.skip-link {
    background: var(--highlight);
    border-radius: var(--round-sm);
    color: var(--page-bg);
    left: var(--gap-sm);
    padding: var(--gap-xs) var(--gap-md);
    position: fixed;
    top: var(--gap-sm);
    z-index: 200;
}

.skip-link:not(:focus) {
    top: -200px !important;
}

.sr-only {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

/* Shared full-width section inner (single container width for every section) */
.shell-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-inline: var(--pad-desktop);
    width: 100%;
}

/* --------------------------------------------------------------------------
   Responsible-gaming banner (fixed above header — STICKY-01)
   -------------------------------------------------------------------------- */
.rg-banner {
    align-items: center;
    background: var(--banner-bg);
    color: var(--body-color);
    display: flex;
    font-size: var(--size-sm);
    font-weight: var(--font-medium);
    justify-content: center;
    left: 0;
    letter-spacing: var(--letter-wide);
    min-height: 34px;
    padding: var(--gap-2xs) var(--gap-sm);
    position: fixed;
    right: 0;
    text-align: center;
    top: 0;
    z-index: 120;
}

/* --------------------------------------------------------------------------
   HEADER — HEAD-04 (.coreRegion), sticky-fixed (STICKY-01), NAV-03 two-row
   -------------------------------------------------------------------------- */
.coreRegion {
    background: var(--page-bg);
    border-bottom: var(--stroke-thin) solid rgba(255, 255, 255, 0.08);
    left: 0;
    position: fixed;
    right: 0;
    top: 34px;
    transition: box-shadow var(--speed-base) var(--timing);
    z-index: 100;
}

.coreRegion.is-scrolled {
    box-shadow: var(--elevation-1);
}

.coreRegion-inner {
    align-items: center;
    display: flex;
    gap: var(--gap-lg);
    height: var(--header-height-desktop-x);
    justify-content: space-between;
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.coreRegion-logo {
    align-items: center;
    display: inline-flex;
    flex-shrink: 0;
}

.coreRegion-logo img {
    flex-shrink: 0;
    height: 88px;
    min-width: 88px;
    width: auto;
}

.coreRegion-nav {
    display: flex;
    flex-direction: column;
    gap: var(--gap-2xs);
    margin-left: auto;
}

.coreRegion-nav-list {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--gap-sm);
    justify-content: flex-end;
    list-style: none;
}

.coreRegion-nav-list--top {
    padding-bottom: 0;
}

.coreRegion-nav-list--bottom {
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.08);
    padding-top: var(--gap-2xs);
}

.coreRegion-nav-item {
    display: block;
}

.coreRegion-link {
    border-radius: var(--round-sm);
    color: var(--body-color);
    display: block;
    font-size: var(--type-h6);
    font-weight: var(--font-medium);
    letter-spacing: var(--letter-wide);
    padding: var(--gap-2xs) var(--gap-xs);
    text-transform: uppercase;
    transition: color var(--transition-fast) var(--timing);
    white-space: nowrap;
}

.coreRegion-link:hover,
.coreRegion-link[aria-current='page'] {
    color: var(--highlight);
}

.coreRegion-toggle {
    align-items: center;
    background: transparent;
    border: var(--stroke-thin) solid rgba(255, 255, 255, 0.18);
    border-radius: var(--round-sm);
    color: var(--body-color);
    cursor: pointer;
    display: none;
    height: 46px;
    justify-content: center;
    margin-left: auto;
    width: 46px;
}

.coreRegion-toggle svg {
    height: 24px;
    width: 24px;
}

/* Mobile drawer (flat list of all nav items — inside <header>) */
.coreRegion-drawer {
    background: var(--page-bg);
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.08);
    display: none;
    left: 0;
    padding: var(--gap-md) var(--pad-mobile);
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 110;
}

.coreRegion-drawer.is-open {
    display: block;
}

.coreRegion-drawer-list {
    display: flex;
    flex-direction: column;
    gap: var(--gap-2xs);
    list-style: none;
}

.coreRegion-drawer-link {
    border-radius: var(--round-sm);
    color: var(--body-color);
    display: block;
    font-size: var(--type-h5);
    font-weight: var(--font-medium);
    padding: var(--gap-sm);
}

.coreRegion-drawer-link:hover,
.coreRegion-drawer-link[aria-current='page'] {
    background: var(--bg-elevated);
    color: var(--highlight);
}

/* --------------------------------------------------------------------------
   HERO — HERO-07 (.plateWrapper), full-bleed top image + text below
   -------------------------------------------------------------------------- */
.plateWrapper {
    background: var(--page-bg);
}

.plateWrapper-figure {
    margin: 0;
    max-height: 440px;
    overflow: hidden;
    position: relative;
}

.plateWrapper-figure::after {
    background: linear-gradient(to bottom, rgba(19, 21, 22, 0) 40%, var(--page-bg) 100%);
    content: '';
    inset: 0;
    position: absolute;
}

.plateWrapper-figure img {
    height: 440px;
    object-fit: cover;
    width: 100%;
}

.plateWrapper-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--gutter-2xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.plateWrapper-content {
    max-width: var(--text-width);
}

.plateWrapper-eyebrow {
    color: var(--highlight);
    font-size: var(--type-micro);
    font-weight: var(--font-medium);
    letter-spacing: var(--letter-wide);
    margin-bottom: var(--gap-sm);
    text-transform: uppercase;
}

.plateWrapper-title {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--size-h1);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-md);
}

.plateWrapper-subtitle {
    color: var(--text-muted);
    font-size: var(--type-h5);
    line-height: var(--leading-loose);
    margin-bottom: var(--gap-lg);
    max-width: var(--text-width);
}

.plateWrapper-cta {
    background: var(--highlight);
    border-radius: var(--corner-pill);
    color: var(--page-bg);
    display: inline-block;
    font-family: var(--font-title);
    font-size: var(--type-h6);
    font-weight: var(--weight-bold);
    letter-spacing: var(--letter-wide);
    padding: var(--gap-sm) var(--spacing-xl);
    text-transform: uppercase;
    transition: background var(--speed-base) var(--ease-spring-x), color var(--speed-base) var(--ease-spring-x);
}

.plateWrapper-cta:hover {
    background: var(--accent-pressed);
    color: var(--page-bg);
}

/* --------------------------------------------------------------------------
   PAGE HEADER — PHEAD-05 (.districtStrip) — breadcrumbs disabled
   -------------------------------------------------------------------------- */
.districtStrip {
    background: var(--page-bg);
    border-bottom: var(--stroke-thin) solid rgba(255, 255, 255, 0.06);
}

.districtStrip-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.districtStrip-eyebrow {
    color: var(--text-muted);
    font-size: var(--type-micro);
    font-weight: var(--font-medium);
    letter-spacing: var(--letter-wide);
    margin-bottom: var(--gap-sm);
    text-transform: uppercase;
}

.districtStrip-title {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--size-h1);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-md);
}

.districtStrip-description {
    color: var(--text-muted);
    font-size: var(--type-h5);
    line-height: var(--leading-loose);
    max-width: var(--text-width);
}

/* --------------------------------------------------------------------------
   INLINE CTA — INLINE-CTA-05 (.spikePanel) — editorial outline button
   -------------------------------------------------------------------------- */
.spikePanel {
    background: var(--bg-elevated);
}

.spikePanel-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    text-align: center;
    width: 100%;
}

.spikePanel-quote {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--size-h3);
    font-style: italic;
    line-height: var(--leading-normal);
    margin: 0 auto var(--gap-md);
    max-width: var(--text-width);
}

.spikePanel-btn {
    background: transparent;
    border: var(--border-medium-x) solid var(--highlight);
    border-radius: var(--corner-pill);
    color: var(--highlight);
    display: inline-block;
    font-family: var(--font-title);
    font-size: var(--type-h6);
    font-weight: var(--weight-bold);
    letter-spacing: var(--letter-wide);
    padding: var(--gap-sm) var(--spacing-xl);
    text-transform: uppercase;
    transition: background var(--speed-base) var(--timing), color var(--speed-base) var(--timing);
}

.spikePanel-btn:hover {
    background: var(--highlight);
    color: var(--page-bg);
}

/* --------------------------------------------------------------------------
   PROSE — PROSE-01 (.sectionBlock) — long-read body sections
   -------------------------------------------------------------------------- */
.sectionBlock {
    background: var(--page-bg);
}

.sectionBlock-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.sectionBlock-body {
    max-width: var(--text-width);
}

.sectionBlock-body h2 {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--type-h2);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-md);
    margin-top: var(--spacing-xl);
}

.sectionBlock-body h2:first-child {
    margin-top: 0;
}

.sectionBlock-body p {
    color: var(--body-color);
    font-size: var(--text-base);
    line-height: var(--leading-loose);
    margin-bottom: var(--gap-md);
}

.sectionBlock-body ul,
.sectionBlock-body ol {
    color: var(--body-color);
    line-height: var(--leading-loose);
    margin-bottom: var(--gap-md);
    padding-left: var(--gap-md);
}

.sectionBlock-body li {
    margin-bottom: var(--gap-2xs);
}

.sectionBlock-body a {
    color: var(--highlight);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: text-decoration-thickness var(--transition-fast) var(--timing);
}

.sectionBlock-body a:hover {
    color: var(--accent-pressed);
    text-decoration-thickness: 2px;
}

.sectionBlock-body strong {
    color: var(--body-color);
    font-weight: var(--weight-bold);
}

.sectionBlock-figure {
    margin: var(--gap-lg) 0 0;
}

.sectionBlock-figure img {
    border: var(--stroke-thin) solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rounded-md);
    height: auto;
    width: 100%;
}

/* --------------------------------------------------------------------------
   ITEMS GRID — GRID-02 (.quarterSpan) — numbered vertical strip
   -------------------------------------------------------------------------- */
.quarterSpan {
    background: var(--page-bg);
}

.quarterSpan-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.quarterSpan-heading {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--type-h2);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-lg);
}

.quarterSpan-list {
    display: flex;
    flex-direction: column;
    list-style: none;
}

.quarterSpan-item {
    align-items: start;
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.10);
    display: grid;
    gap: var(--gap-lg);
    grid-template-columns: 80px 1fr;
    padding-block: var(--gap-lg);
}

.quarterSpan-num {
    color: var(--highlight);
    font-family: var(--font-title);
    font-size: var(--size-h1);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: 1;
    transition: transform var(--speed-base) var(--ease-spring-x);
}

.quarterSpan-item:hover .quarterSpan-num {
    transform: scale(1.1);
}

.quarterSpan-body {
    min-width: 0;
}

.quarterSpan-title {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--size-h3);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-sm);
}

.quarterSpan-text {
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: var(--leading-loose);
}

/* --------------------------------------------------------------------------
   DATA TABLE — TABLE-06 (.hingeContainer) — editorial borderless
   -------------------------------------------------------------------------- */
.hingeContainer {
    background: var(--page-bg);
}

.hingeContainer-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.hingeContainer-heading {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--type-h2);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-md);
}

.hingeContainer-scroll {
    overflow-x: auto;
}

.hingeContainer-table {
    border-collapse: collapse;
    min-width: 520px;
    width: 100%;
}

.hingeContainer-caption {
    color: var(--text-muted);
    font-family: var(--font-title);
    font-size: var(--type-h5);
    font-style: italic;
    padding-block-end: var(--gap-md);
    text-align: center;
}

.hingeContainer-table th {
    border-bottom: var(--border-medium-x) solid var(--highlight);
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--size-sm);
    font-weight: var(--weight-bold);
    letter-spacing: var(--letter-wide);
    padding: var(--gap-md);
    text-align: left;
    text-transform: uppercase;
}

.hingeContainer-table td {
    border-bottom: var(--stroke-thin) solid rgba(255, 255, 255, 0.06);
    color: var(--text-muted);
    font-size: var(--text-base);
    padding: var(--gap-md);
}

.hingeContainer-table td:first-child {
    color: var(--body-color);
    font-weight: var(--font-medium);
}

.hingeContainer-table tr:last-child td {
    border-bottom: none;
}

/* --------------------------------------------------------------------------
   FAQ — FAQ-10 (.crateSpan) — 40/60 two-column, always-open dl
   -------------------------------------------------------------------------- */
.crateSpan {
    background: var(--page-bg);
}

.crateSpan-inner {
    display: grid;
    gap: var(--gutter-2xl);
    grid-template-columns: 40% 1fr;
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.crateSpan-aside {
    align-self: start;
    position: sticky;
    top: calc(var(--header-height-desktop-x) + 60px);
}

.crateSpan-heading {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--type-h2);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-sm);
}

.crateSpan-lead {
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: var(--leading-loose);
    max-width: 32ch;
}

.crateSpan-list {
    display: flex;
    flex-direction: column;
    gap: var(--gap-lg);
    margin: 0;
}

.crateSpan-qa {
    display: block;
}

.crateSpan-q {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--text-h4);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-xs);
}

.crateSpan-a {
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: var(--leading-loose);
    margin: 0;
}

/* --------------------------------------------------------------------------
   REVIEWS — REV-04 (.vectorSet) — featured + compact grid, NO dates
   -------------------------------------------------------------------------- */
.vectorSet {
    background: var(--page-bg);
}

.vectorSet-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.vectorSet-heading {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--type-h2);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-lg);
}

.vectorSet-featured {
    background: rgba(33, 36, 37, 0.55);
    border-radius: var(--rounded-lg);
    margin-bottom: var(--gutter-2xl);
    padding: var(--spacing-xl);
}

.vectorSet-featured-stars {
    color: var(--highlight);
    font-size: 28px;
    letter-spacing: 4px;
    margin-bottom: var(--gap-md);
}

.vectorSet-featured-text {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--text-h4);
    font-style: italic;
    line-height: var(--leading-normal);
    margin-bottom: var(--gap-md);
}

.vectorSet-featured-cite {
    color: var(--text-muted);
    font-size: var(--text-base);
    font-style: normal;
    font-weight: var(--font-medium);
}

.vectorSet-list {
    display: grid;
    gap: var(--gap-md) var(--gap-lg);
    grid-template-columns: repeat(2, 1fr);
    list-style: none;
}

.vectorSet-item {
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.10);
    padding-top: var(--gap-md);
}

.vectorSet-item-head {
    align-items: center;
    display: flex;
    gap: var(--gap-sm);
    justify-content: space-between;
    margin-bottom: var(--gap-xs);
}

.vectorSet-item-author {
    color: var(--body-color);
    font-weight: var(--font-medium);
}

.vectorSet-item-stars {
    color: var(--highlight);
    font-size: var(--text-base);
    letter-spacing: 2px;
    white-space: nowrap;
}

.vectorSet-item-text {
    color: var(--text-muted);
    font-size: var(--size-sm);
    line-height: var(--leading-loose);
    margin: 0;
}

/* --------------------------------------------------------------------------
   CTA BLOCK — CTA-06 (.nookGroup) — accent full-width band
   -------------------------------------------------------------------------- */
.nookGroup {
    background: var(--highlight);
}

.nookGroup-inner {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-lg);
    justify-content: space-between;
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.nookGroup-text-wrap {
    max-width: var(--text-width);
}

.nookGroup-title {
    color: var(--page-bg);
    font-family: var(--font-title);
    font-size: var(--size-h3);
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-xs);
}

.nookGroup-text {
    color: var(--main-color);
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    margin: 0;
}

.nookGroup-btn {
    background: var(--page-bg);
    border-radius: var(--corner-pill);
    color: var(--body-color);
    display: inline-block;
    flex-shrink: 0;
    font-family: var(--font-title);
    font-size: var(--type-h6);
    font-weight: var(--weight-bold);
    letter-spacing: var(--letter-wide);
    padding: var(--gap-sm) var(--spacing-xl);
    text-transform: uppercase;
    transition: background var(--speed-base) var(--ease-spring-x), color var(--speed-base) var(--ease-spring-x);
}

.nookGroup-btn:hover {
    background: var(--main-color);
    color: var(--body-color);
}

/* --------------------------------------------------------------------------
   LEGAL SECTION — LEGAL-05 (.fragmentSlider) — readable long-form
   -------------------------------------------------------------------------- */
.fragmentSlider {
    background: var(--page-bg);
}

.fragmentSlider-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.fragmentSlider-readable {
    max-width: var(--text-width);
}

.fragmentSlider-intro {
    color: var(--text-muted);
    font-size: var(--type-h5);
    line-height: var(--leading-loose);
    margin-bottom: var(--gap-lg);
}

.fragmentSlider-block {
    border-left: var(--border-medium-x) solid var(--highlight);
    margin-bottom: var(--gap-lg);
    padding-left: var(--gap-md);
}

.fragmentSlider-block-heading {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--size-h3);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-sm);
}

.fragmentSlider-block p {
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: var(--leading-loose);
    margin-bottom: var(--gap-sm);
}

.fragmentSlider-subheading {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--text-h4);
    font-weight: var(--weight-bold);
    margin-bottom: var(--gap-sm);
    margin-top: var(--gap-lg);
}

.fragmentSlider-contacts {
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: var(--leading-loose);
    list-style: disc;
    margin-bottom: var(--gap-lg);
    padding-left: var(--gap-md);
}

.fragmentSlider-contacts li {
    margin-bottom: var(--gap-2xs);
}

.fragmentSlider-disclaimer {
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.08);
    color: var(--text-muted);
    font-size: var(--size-sm);
    font-style: italic;
    line-height: var(--leading-loose);
    padding-top: var(--gap-md);
}

/* --------------------------------------------------------------------------
   CONTACT FORM — FORM-06 (.caseSlider)
   -------------------------------------------------------------------------- */
.caseSlider {
    background: var(--page-bg);
}

.caseSlider-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.caseSlider-intro {
    color: var(--text-muted);
    font-size: var(--type-h5);
    line-height: var(--leading-loose);
    margin-bottom: var(--gap-lg);
    max-width: var(--text-width);
}

.caseSlider-form {
    background: var(--bg-elevated);
    border: var(--stroke-thin) solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rounded-lg);
    max-width: var(--text-width);
    padding: var(--spacing-xl);
}

.caseSlider-field {
    display: flex;
    flex-direction: column;
    margin-bottom: var(--gap-md);
}

.caseSlider-label {
    color: var(--body-color);
    font-size: var(--size-sm);
    font-weight: var(--font-medium);
    letter-spacing: var(--letter-wide);
    margin-bottom: var(--gap-xs);
    text-transform: uppercase;
}

.caseSlider-input,
.caseSlider-textarea {
    background: var(--page-bg);
    border: var(--stroke-thin) solid rgba(255, 255, 255, 0.16);
    border-radius: var(--round-sm);
    color: var(--body-color);
    font-family: var(--font-sans);
    font-size: var(--text-base);
    padding: var(--gap-sm);
    width: 100%;
}

.caseSlider-input:focus,
.caseSlider-textarea:focus {
    border-color: var(--highlight);
    outline: none;
}

.caseSlider-textarea {
    min-height: 140px;
    resize: vertical;
}

.caseSlider-submit {
    background: var(--highlight);
    border: none;
    border-radius: var(--corner-pill);
    color: var(--page-bg);
    cursor: pointer;
    font-family: var(--font-title);
    font-size: var(--type-h6);
    font-weight: var(--weight-bold);
    letter-spacing: var(--letter-wide);
    padding: var(--gap-sm) var(--spacing-xl);
    text-transform: uppercase;
    transition: background var(--speed-base) var(--ease-spring-x), color var(--speed-base) var(--ease-spring-x);
}

.caseSlider-submit:hover {
    background: var(--accent-pressed);
    color: var(--page-bg);
}

.caseSlider-success {
    background: rgba(249, 137, 69, 0.14);
    border: var(--stroke-thin) solid var(--highlight);
    border-radius: var(--round-sm);
    color: var(--body-color);
    display: none;
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    margin-top: var(--gap-md);
    padding: var(--gap-md);
}

.caseSlider-success.is-visible {
    display: block;
}

/* --------------------------------------------------------------------------
   AUTHOR CARD — AUTH-06 (.knobStrip) + articles list
   -------------------------------------------------------------------------- */
.knobStrip {
    background: var(--page-bg);
}

.knobStrip-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.knobStrip-card {
    align-items: start;
    background: var(--bg-elevated);
    border: var(--stroke-thin) solid rgba(255, 255, 255, 0.08);
    border-radius: var(--rounded-lg);
    display: grid;
    gap: var(--gap-lg);
    grid-template-columns: 160px 1fr;
    padding: var(--spacing-xl);
}

.knobStrip-portrait {
    border-radius: var(--rounded-md);
    height: auto;
    width: 160px;
}

.knobStrip-body {
    min-width: 0;
}

.knobStrip-name {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--size-h3);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-2xs);
}

.knobStrip-role {
    color: var(--highlight);
    font-size: var(--size-sm);
    font-weight: var(--font-medium);
    letter-spacing: var(--letter-wide);
    margin-bottom: var(--gap-md);
    text-transform: uppercase;
}

.knobStrip-bio {
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: var(--leading-loose);
    margin-bottom: var(--gap-md);
}

.knobStrip-expertise-heading {
    color: var(--body-color);
    font-size: var(--type-h6);
    font-weight: var(--weight-bold);
    letter-spacing: var(--letter-wide);
    margin-bottom: var(--gap-xs);
    text-transform: uppercase;
}

.knobStrip-expertise {
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: var(--leading-loose);
    list-style: disc;
    padding-left: var(--gap-md);
}

.knobStrip-articles {
    margin-top: var(--gutter-2xl);
}

.knobStrip-articles-heading {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--size-h3);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-md);
}

.knobStrip-articles-list {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    list-style: none;
}

.knobStrip-articles-item {
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.10);
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--type-h5);
    font-weight: var(--font-medium);
    padding-top: var(--gap-sm);
}

/* --------------------------------------------------------------------------
   AUTHOR BYLINE — BYLINE-06 (.flagFooter) — footer-style byline row
   -------------------------------------------------------------------------- */
.flagFooter {
    background: var(--page-bg);
}

.flagFooter-inner {
    align-items: center;
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.10);
    display: flex;
    gap: var(--gap-md);
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--gap-lg);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.flagFooter-portrait {
    border-radius: var(--round-circle);
    flex-shrink: 0;
    height: 64px;
    object-fit: cover;
    width: 64px;
}

.flagFooter-meta {
    min-width: 0;
}

.flagFooter-byline-label {
    color: var(--text-muted);
    font-size: var(--type-micro);
    letter-spacing: var(--letter-wide);
    text-transform: uppercase;
}

.flagFooter-name {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--type-h5);
    font-weight: var(--weight-bold);
}

.flagFooter-name a {
    color: var(--body-color);
    transition: color var(--transition-fast) var(--timing);
}

.flagFooter-name a:hover {
    color: var(--highlight);
}

.flagFooter-role {
    color: var(--text-muted);
    font-size: var(--size-sm);
}

/* --------------------------------------------------------------------------
   ERROR BLOCK — ERR-04 (.boltSpan) — 404
   -------------------------------------------------------------------------- */
.boltSpan {
    align-items: center;
    background: var(--page-bg);
    display: flex;
    min-height: 60vh;
}

.boltSpan-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--gutter-2xl);
    padding-inline: var(--pad-desktop);
    text-align: center;
    width: 100%;
}

.boltSpan-code {
    color: var(--highlight);
    font-family: var(--font-title);
    font-size: 120px;
    font-weight: var(--weight-bold);
    letter-spacing: var(--tracking-tight);
    line-height: 1;
    margin-bottom: var(--gap-md);
}

.boltSpan-title {
    color: var(--body-color);
    font-family: var(--font-title);
    font-size: var(--type-h2);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    margin-bottom: var(--gap-md);
}

.boltSpan-text {
    color: var(--text-muted);
    font-size: var(--type-h5);
    line-height: var(--leading-loose);
    margin: 0 auto var(--gap-lg);
    max-width: var(--text-width);
}

.boltSpan-btn {
    background: var(--highlight);
    border-radius: var(--corner-pill);
    color: var(--page-bg);
    display: inline-block;
    font-family: var(--font-title);
    font-size: var(--type-h6);
    font-weight: var(--weight-bold);
    letter-spacing: var(--letter-wide);
    padding: var(--gap-sm) var(--spacing-xl);
    text-transform: uppercase;
    transition: background var(--speed-base) var(--ease-spring-x), color var(--speed-base) var(--ease-spring-x);
}

.boltSpan-btn:hover {
    background: var(--accent-pressed);
    color: var(--page-bg);
}

/* --------------------------------------------------------------------------
   FOOTER — FOOT-02 (.wingModule) — two rows
   -------------------------------------------------------------------------- */
.wingModule {
    background: var(--page-bg);
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.10);
}

.wingModule-inner {
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--spacing-xl);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.wingModule-row {
    align-items: center;
    display: flex;
    gap: var(--gap-lg);
    justify-content: space-between;
}

.wingModule-row--top {
    flex-wrap: wrap;
}

.wingModule-row--bottom {
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.08);
    flex-wrap: wrap;
    margin-top: var(--gap-lg);
    padding-top: var(--gap-md);
}

.wingModule-logo {
    align-items: center;
    display: inline-flex;
    flex-shrink: 0;
}

.wingModule-logo img {
    height: 72px;
    width: auto;
}

.wingModule-nav {
    min-width: 0;
}

.wingModule-nav-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-sm) var(--gap-md);
    justify-content: flex-end;
    list-style: none;
}

.wingModule-nav-link {
    color: var(--text-muted);
    font-size: var(--size-sm);
    font-weight: var(--font-medium);
    letter-spacing: var(--letter-wide);
    text-transform: uppercase;
    transition: color var(--transition-fast) var(--timing);
}

.wingModule-nav-link:hover,
.wingModule-nav-link[aria-current='page'] {
    color: var(--highlight);
}

.wingModule-copyright {
    color: var(--text-muted);
    font-size: var(--size-sm);
    line-height: var(--leading-normal);
}

.wingModule-legal {
    min-width: 0;
}

.wingModule-legal-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-sm) var(--gap-md);
    list-style: none;
}

.wingModule-legal-link {
    color: var(--text-muted);
    font-size: var(--type-micro);
    letter-spacing: var(--letter-wide);
    text-transform: uppercase;
    transition: color var(--transition-fast) var(--timing);
}

.wingModule-legal-link:hover {
    color: var(--highlight);
}

/* --------------------------------------------------------------------------
   COOKIE BANNER — COOK-03 (.boxSet) — bottom bar
   -------------------------------------------------------------------------- */
.boxSet {
    background: var(--main-color);
    border-top: var(--stroke-thin) solid rgba(255, 255, 255, 0.12);
    bottom: 0;
    box-shadow: var(--shade-lg);
    display: none;
    left: 0;
    position: fixed;
    right: 0;
    z-index: 130;
}

.boxSet.is-visible {
    display: block;
}

.boxSet-inner {
    align-items: center;
    display: flex;
    gap: var(--gap-lg);
    justify-content: space-between;
    margin-inline: auto;
    max-width: calc(var(--container) + 2 * var(--pad-desktop));
    padding-block: var(--gap-md);
    padding-inline: var(--pad-desktop);
    width: 100%;
}

.boxSet-message {
    color: var(--text-muted);
    font-size: var(--size-sm);
    line-height: var(--leading-normal);
    margin: 0;
    max-width: 720px;
}

.boxSet-actions {
    display: flex;
    flex-shrink: 0;
    gap: var(--gap-sm);
}

.boxSet-accept {
    background: var(--highlight);
    border: none;
    border-radius: var(--corner-pill);
    color: var(--page-bg);
    cursor: pointer;
    font-family: var(--font-title);
    font-size: var(--type-h6);
    font-weight: var(--weight-bold);
    letter-spacing: var(--letter-wide);
    padding: var(--gap-xs) var(--gap-lg);
    text-transform: uppercase;
    transition: background var(--speed-base) var(--ease-spring-x), color var(--speed-base) var(--ease-spring-x);
}

.boxSet-accept:hover {
    background: var(--accent-pressed);
    color: var(--page-bg);
}

.boxSet-decline {
    background: transparent;
    border: var(--stroke-thin) solid rgba(255, 255, 255, 0.28);
    border-radius: var(--corner-pill);
    color: var(--body-color);
    cursor: pointer;
    font-family: var(--font-title);
    font-size: var(--type-h6);
    font-weight: var(--font-medium);
    letter-spacing: var(--letter-wide);
    padding: var(--gap-xs) var(--gap-lg);
    text-transform: uppercase;
    transition: background var(--speed-base) var(--timing), color var(--speed-base) var(--timing);
}

.boxSet-decline:hover {
    background: rgba(255, 255, 255, 0.10);
    color: var(--body-color);
}

/* ==========================================================================
   RESPONSIVE (desktop-first — BP-04 max-width queries)
   ========================================================================== */

/* Tablet and below ( < bp-lg 1120px ) */
@media (max-width: 1119px) {
    .coreRegion-inner,
    .plateWrapper-inner,
    .districtStrip-inner,
    .spikePanel-inner,
    .sectionBlock-inner,
    .quarterSpan-inner,
    .hingeContainer-inner,
    .crateSpan-inner,
    .vectorSet-inner,
    .nookGroup-inner,
    .fragmentSlider-inner,
    .caseSlider-inner,
    .knobStrip-inner,
    .flagFooter-inner,
    .boltSpan-inner,
    .wingModule-inner,
    .boxSet-inner {
        padding-inline: var(--container-padding-tablet-x);
    }

    .coreRegion-logo img {
        height: 72px;
        min-width: 72px;
    }
}

/* Below bp-md (880px) — collapse desktop nav to drawer, stack columns */
@media (max-width: 879px) {
    body {
        padding-top: calc(var(--topbar-mobile) + 34px);
    }

    .coreRegion {
        top: 34px;
    }

    .coreRegion-inner {
        height: var(--topbar-mobile);
    }

    .coreRegion-logo img {
        height: 60px;
        min-width: 60px;
    }

    .coreRegion-nav {
        display: none;
    }

    .coreRegion-toggle {
        display: inline-flex;
    }

    .crateSpan-inner,
    .knobStrip-card {
        grid-template-columns: 1fr;
        row-gap: var(--gap-lg);
    }

    .crateSpan-aside {
        position: static;
    }

    .knobStrip-portrait {
        width: 140px;
    }

    .nookGroup-inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .vectorSet-list {
        grid-template-columns: 1fr;
    }

    .wingModule-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .wingModule-nav-list,
    .wingModule-legal-list {
        justify-content: flex-start;
    }
}

/* Phone ( < bp-sm 540px ) */
@media (max-width: 539px) {
    :root {
        --text-base: 15px;
        --size-h1: 36px;
        --type-h2: 26px;
        --size-h3: 20px;
        --text-h4: 17px;
        --type-h5: 14px;
        --type-h6: 12px;
        --type-micro: 9px;
        --size-sm: 12px;
    }

    .coreRegion-inner,
    .plateWrapper-inner,
    .districtStrip-inner,
    .spikePanel-inner,
    .sectionBlock-inner,
    .quarterSpan-inner,
    .hingeContainer-inner,
    .crateSpan-inner,
    .vectorSet-inner,
    .nookGroup-inner,
    .fragmentSlider-inner,
    .caseSlider-inner,
    .knobStrip-inner,
    .flagFooter-inner,
    .boltSpan-inner,
    .wingModule-inner,
    .boxSet-inner {
        padding-inline: var(--pad-mobile);
    }

    .plateWrapper-figure,
    .plateWrapper-figure img {
        height: 240px;
        max-height: 240px;
    }

    .boltSpan-code {
        font-size: 84px;
    }

    .caseSlider-form {
        padding: var(--gap-lg) var(--gap-md);
    }

    .quarterSpan-item {
        gap: var(--gap-md);
        grid-template-columns: 54px 1fr;
    }

    .knobStrip-card {
        padding: var(--gap-lg) var(--gap-md);
    }

    /* Cookie banner — compact on mobile (SKILL canon) */
    .boxSet-inner {
        flex-direction: column;
        gap: 8px !important;
        padding: 12px 14px !important;
    }

    .boxSet-message {
        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    .boxSet-actions {
        width: 100%;
    }

    .boxSet-accept,
    .boxSet-decline {
        flex: 1;
        font-size: 12px !important;
        min-height: 36px !important;
        padding: 8px 14px !important;
    }
}
