:root {
    --cream:     #fff4dc;   /* cream FOREGROUND (text on dark + on accents) */
    --cream-2:   #241a12;   /* elevated dark surface (purple-tinted) */
    --tomato:    #fac9c6;   /* PRIMARY accent — blush (light: needs dark text) */
    --raspberry: #f5b13d;   /* SECONDARY accent — purple */
    --bottle:    #4a3320;   /* deep purple surface (was green) */
    --ink:       #16110d;   /* near-black: page bg + dark text on light accents */
    --hot:       #fac9c6;   /* blush highlight */
    --cobalt:    #f5b13d;   /* purple */
    --bg:        #16110d;   /* page background */
    --bg-2:      #241a12;   /* elevated dark surface */
    --line:      #fff4dc;   /* borders — cream on black */
    --shadow:    #f5b13d;   /* hard offset shadow — purple, visible on black */
    --display:   'Archivo Black', 'Archivo', sans-serif;
    --body:      'Archivo', system-ui, sans-serif;
    --hand:      'Caveat', cursive;
    --mono:      'Space Mono', ui-monospace, monospace;
  }

  /* ── CORE-COLOUR VARIATIONS (swap the dominant accent) ──────────────── */
  /* Cherry — punchy red-pink */
  :root[data-core="cherry"]  { --tomato: #d72638; --hot: #ff7a6b; --raspberry: #a01f4a; }
  /* Pumpkin — burnt orange */
  :root[data-core="pumpkin"] { --tomato: #e07a1f; --hot: #ffb347; --raspberry: #b9482a; }
  /* Cobalt — cool electric blue */
  :root[data-core="cobalt"]  { --tomato: #2755d6; --hot: #5b8cff; --raspberry: #7b3fb0; }
  /* Bottle — deep grass green */
  :root[data-core="bottle"]  { --tomato: #1f7a4d; --hot: #45a877; --raspberry: #0e5e3f; }
  /* Grape — playful purple */
  :root[data-core="grape"]   { --tomato: #7b3fb0; --hot: #a370d6; --raspberry: #c93060; }

  /* ── Core-colour picker ─────────────────────────────────────────────── */
  .core-picker {
    position: fixed;
    bottom: 16px; left: 16px;
    z-index: 50;
    display: flex; align-items: center; gap: 10px;
    background: var(--bg-2);
    border: 3px solid var(--line);
    border-radius: 999px;
    padding: 8px 14px 8px 12px;
    box-shadow: 4px 4px 0 var(--shadow);
  }
  .core-picker .cp-label {
    font-family: var(--display);
    font-size: 10px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink);
  }
  .core-dots { display: flex; gap: 7px; }
  .core-dot {
    width: 24px; height: 24px;
    border-radius: 50%;
    border: 3px solid var(--line);
    cursor: pointer;
    padding: 0;
    position: relative;
    transition: transform .12s;
  }
  .core-dot:hover { transform: scale(1.16); }
  .core-dot.active { box-shadow: 0 0 0 3px var(--cream), 0 0 0 6px var(--ink); }
  .core-dot span {
    position: absolute;
    bottom: calc(100% + 8px); left: 50%;
    transform: translateX(-50%);
    background: var(--bg-2); color: var(--cream);
    font-family: var(--display); font-size: 9px;
    letter-spacing: 0.06em; text-transform: uppercase;
    padding: 4px 8px; border-radius: 6px;
    white-space: nowrap;
    opacity: 0; pointer-events: none;
    transition: opacity .12s;
  }
  .core-dot:hover span { opacity: 1; }
  @media (max-width: 600px) { .core-picker .cp-label { display: none; } }

  * { box-sizing: border-box; }
  html, body {
    margin: 0; padding: 0;
    background: var(--bg);
    color: var(--cream);
    font-family: var(--body);
    font-weight: 500;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
  }
  a { color: inherit; text-decoration: none; }
  ::selection { background: var(--tomato); color: var(--cream); }

  .page { padding: 0 clamp(20px, 4vw, 56px); }
  .shell { max-width: 1280px; margin: 0 auto; }

  /* MEGA HEADLINES */
  .mega {
    font-family: var(--display);
    font-size: clamp(56px, 14vw, 220px);
    line-height: 0.86;
    letter-spacing: -0.045em;
    text-transform: uppercase;
    color: var(--ink);
    margin: 0;
  }
  .mega-2 {
    font-family: var(--display);
    font-size: clamp(40px, 8vw, 120px);
    line-height: 0.88;
    letter-spacing: -0.04em;
    text-transform: uppercase;
    margin: 0;
  }
  .hand {
    font-family: var(--hand);
    font-weight: 700;
    color: var(--raspberry);
  }

  /* Stickers — rotated little tags */
  .sticker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 999px;
    background: var(--tomato);
    color: var(--cream);
    font-family: var(--display);
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    box-shadow: 3px 3px 0 var(--shadow);
    transform: rotate(-3deg);
    border: 2px solid var(--line);
  }
  .sticker.green  { background: var(--bottle); }
  .sticker.berry  { background: var(--raspberry); }
  .sticker.cobalt { background: var(--cobalt); color: var(--cream); }
  .sticker.cream  { background: var(--bg-2); color: var(--ink); }
  .sticker.flip   { transform: rotate(2.5deg); }

  /* NAV — pill bar */
  .navbar {
    position: sticky; top: 12px;
    z-index: 40;
    margin: 16px 0 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px 10px 18px;
    background: var(--bg-2);
    color: var(--cream);
    border-radius: 999px;
    border: 2px solid var(--line);
    box-shadow: 4px 4px 0 var(--tomato);
  }
  .navbar .brand {
    font-family: var(--display);
    font-size: 18px;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    display: flex; align-items: center; gap: 8px;
  }
  .navbar .brand .blob {
    width: 28px; height: 28px;
    background: var(--tomato);
    border-radius: 50%;
    border: 2px solid var(--cream);
    display: inline-block;
    position: relative;
  }
  .navbar .brand .blob::after {
    content: '';
    position: absolute; right: -4px; top: -2px;
    width: 10px; height: 10px;
    background: var(--bg-2);
    border-radius: 50%;
    border: 2px solid var(--cream);
  }
  .navbar nav {
    display: flex; gap: 18px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }
  .navbar nav a { transition: color .15s; }
  .navbar nav a:hover { color: var(--hot); }
  .nav-cta {
    background: var(--tomato);
    color: var(--cream);
    padding: 10px 18px;
    border-radius: 999px;
    font-family: var(--display);
    font-size: 12px;
    letter-spacing: 0.04em;
    border: 2px solid var(--cream);
  }
  .nav-cta:hover { background: var(--bg-2); color: var(--ink); border-color: var(--ink); }

  /* HERO */
  .hero {
    padding: 20px 0 56px;
    position: relative;
  }
  .hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
    gap: 40px;
    margin-top: 48px;
    align-items: start;
  }
  .hero .top-row {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 32px;
    flex-wrap: wrap; gap: 16px;
  }
  .hero .mega { position: relative; }
  .hero .mega .ink-blob {
    display: inline-block;
    background: var(--tomato);
    color: var(--cream);
    padding: 0 0.18em 0.06em;
    border-radius: 0.12em;
    transform: rotate(-1.5deg) skewX(-3deg);
  }
  .hero .mega .underline {
    text-decoration: var(--raspberry) wavy underline;
    text-decoration-thickness: 6px;
    text-underline-offset: 6px;
    text-decoration-skip-ink: none;
  }
  /* HERO SCENE VIEWER */
  .scene-stage { display: flex; flex-direction: column; gap: 16px; margin-top: 20px; }
  .scene-frame {
    position: relative; margin: 0;
    aspect-ratio: 3/2;
    transform: rotate(1.5deg);
    border-radius: 18px;
    border: 4px solid var(--line);
    box-shadow: 10px 10px 0 var(--tomato);
    overflow: hidden;
    background: var(--bg-2);
  }
  .scene-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .scene-tag {
    position: absolute; bottom: 12px; left: 12px;
    background: var(--bg-2); color: var(--cream);
    padding: 8px 14px; border-radius: 999px;
    font-family: var(--display); font-size: 12px;
    text-transform: uppercase; letter-spacing: 0.02em;
  }
  .scene-hint {
    position: absolute; top: 12px; right: 12px;
    background: var(--tomato); color: var(--cream);
    padding: 6px 12px; border-radius: 999px;
    font-family: var(--display); font-size: 11px;
    text-transform: uppercase; border: 2px solid var(--cream);
    transform: rotate(3deg);
  }
  .scene-controls {
    border: 3px solid var(--line);
    border-radius: 20px;
    background: var(--bg-2);
    box-shadow: 6px 6px 0 var(--bottle);
    padding: 18px 20px;
    display: flex; flex-direction: column; gap: 16px;
  }
  .scene-ctrl { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
  .scene-lbl {
    font-family: var(--display); font-size: 13px; text-transform: uppercase;
    min-width: 50px; letter-spacing: 0.02em;
  }
  .scene-pills { display: flex; gap: 6px; flex-wrap: wrap; }
  .scene-swatches { display: flex; gap: 8px; flex-wrap: wrap; }
  .sc-pill {
    padding: 8px 13px; border: 2px solid var(--line); border-radius: 999px;
    background: var(--bg-2); font-family: var(--display); font-size: 11px;
    text-transform: uppercase; cursor: pointer; transition: all .12s;
  }
  .sc-pill.active { background: var(--bg-2); color: var(--cream); }
  .sc-pill:hover { transform: translate(-1px, -1px); }
  .sc-swatch {
    width: 30px; height: 30px; border-radius: 9px;
    border: 3px solid var(--line); cursor: pointer; padding: 0;
    box-shadow: 2px 2px 0 var(--shadow); transition: transform .12s;
  }
  .sc-swatch:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--shadow); }
  .sc-swatch.active { box-shadow: 0 0 0 3px var(--cream-2), 0 0 0 5px var(--tomato); }

  .hero-deck {
    font-size: clamp(18px, 1.8vw, 24px);
    line-height: 1.4;
    color: var(--ink);
    max-width: 32ch;
    font-weight: 500;
    margin-top: 32px;
  }
  .hero-row {
    display: flex; gap: 14px; align-items: center; flex-wrap: wrap;
    margin-top: 32px;
  }

  /* BIG BUTTONS */
  .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 18px 28px;
    background: var(--tomato);
    color: var(--cream);
    font-family: var(--display);
    font-size: 16px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    border: 3px solid var(--line);
    border-radius: 999px;
    box-shadow: 5px 5px 0 var(--shadow);
    transition: transform .12s, box-shadow .12s;
    cursor: pointer;
  }
  .btn:hover { transform: translate(-2px, -2px); box-shadow: 7px 7px 0 var(--shadow); }
  .btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--shadow); }
  .btn-cream { background: var(--bg-2); color: var(--ink); }
  .btn-green { background: var(--bottle); color: var(--cream); }
  .btn-berry { background: var(--raspberry); color: var(--cream); }

  /* HERO PHOTO — slanted, framed */
  .hero-photo-wrap {
    position: relative;
    aspect-ratio: 4/5;
    transform: rotate(2deg);
    margin-top: 20px;
  }
  .hero-photo-wrap img {
    width: 100%; height: 100%; object-fit: cover;
    border-radius: 18px;
    border: 4px solid var(--line);
    box-shadow: 10px 10px 0 var(--tomato);
    display: block;
  }
  .hero-photo-tag {
    position: absolute;
    bottom: -16px; left: -24px;
    background: var(--bottle);
    color: var(--cream);
    padding: 12px 18px;
    border-radius: 12px;
    border: 3px solid var(--line);
    font-family: var(--display);
    font-size: 14px;
    text-transform: uppercase;
    transform: rotate(-4deg);
    box-shadow: 4px 4px 0 var(--shadow);
  }

  /* STATS — coloured tiles */
  .stat-tiles {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 44px 0;
  }
  .stat-tile {
    padding: 28px 24px;
    border-radius: 24px;
    border: 3px solid var(--line);
    box-shadow: 6px 6px 0 var(--shadow);
    display: flex; flex-direction: column; gap: 8px;
    min-height: 180px;
    transition: transform .15s;
  }
  .stat-tile:hover { transform: translate(-3px, -3px); }
  .stat-tile .v {
    font-family: var(--display);
    font-size: clamp(40px, 5vw, 64px);
    line-height: 0.9;
    letter-spacing: -0.03em;
    text-transform: uppercase;
  }
  .stat-tile .l {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-top: auto;
  }
  .stat-tile.tomato { background: var(--tomato); color: var(--cream); }
  .stat-tile.green  { background: var(--bottle); color: var(--cream); }
  .stat-tile.berry  { background: var(--raspberry); color: var(--cream); }
  .stat-tile.cream  { background: var(--bg-2); color: var(--ink); }

  /* SECTION HEADERS */
  .sec-header {
    display: flex; align-items: baseline; gap: 18px; justify-content: space-between;
    flex-wrap: wrap;
    padding: 44px 0 20px;
  }
  .sec-header .sticker { font-size: 12px; }

  /* MODELS — chunky cards */
  .models {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin: 20px 0 48px;
  }
  .models.cols-2 { grid-template-columns: 1fr 1fr; }
  .model-card {
    border-radius: 28px;
    border: 3px solid var(--line);
    box-shadow: 8px 8px 0 var(--shadow);
    padding: 32px 28px;
    display: flex; flex-direction: column; gap: 14px;
    min-height: 420px;
    position: relative;
  }
  /* kill default h3/p/ul margins so only the flex gap sets rhythm */
  .model-card > * { margin: 0; }
  .model-card .ttl { margin-top: -4px; }       /* tuck title under its label */
  .model-card .feat-list { margin-top: 4px; }  /* a touch of air above the list */
  .model-card.tomato { background: var(--tomato); color: var(--cream); }
  .model-card.green  { background: var(--bottle); color: var(--cream); }
  .model-card.cream  { background: var(--bg-2); color: var(--ink); }
  .model-card .badge {
    position: absolute;
    top: -16px; right: 20px;
    background: var(--bg-2);
    color: var(--ink);
    padding: 8px 14px;
    border-radius: 999px;
    font-family: var(--display);
    font-size: 11px;
    text-transform: uppercase;
    border: 2px solid var(--line);
    transform: rotate(4deg);
    box-shadow: 2px 2px 0 var(--shadow);
  }
  .model-card .ttl {
    font-family: var(--display);
    font-size: 44px;
    line-height: 0.9;
    letter-spacing: -0.03em;
    text-transform: uppercase;
  }
  .model-card .sub {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.9;
  }
  .model-card .body {
    font-size: 14.5px;
    line-height: 1.5;
    font-weight: 500;
  }
  .feat-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 14.5px;
    line-height: 1.35;
    font-weight: 600;
  }
  .feat-list li {
    position: relative;
    padding-left: 28px;
  }
  .feat-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: -1px;
    font-family: var(--display);
    font-weight: 900;
    color: currentColor;
  }
  .model-card .price {
    margin-top: auto;
    padding-top: 18px;
    border-top: 2px dashed currentColor;
    display: flex; justify-content: space-between; align-items: baseline;
  }
  .model-card .price .v {
    font-family: var(--display);
    font-size: 36px;
    letter-spacing: -0.03em;
  }
  .model-card .price .n {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 700;
    opacity: 0.85;
  }

  /* MARQUEE */
  @keyframes marq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  .marquee-band {
    background: var(--bg-2);
    color: var(--cream);
    padding: 18px 0;
    border-top: 3px solid var(--line);
    border-bottom: 3px solid var(--line);
    overflow: hidden;
    transform: rotate(-1.5deg);
    margin: 72px -8% 72px;
    box-shadow: 0 12px 0 var(--tomato);
  }
  .marquee-track {
    display: flex; gap: 56px;
    animation: marq 40s linear infinite;
    white-space: nowrap;
    width: max-content;
  }
  .marquee-item {
    font-family: var(--display);
    font-size: clamp(28px, 4vw, 56px);
    text-transform: uppercase;
    letter-spacing: -0.02em;
    display: inline-flex; align-items: center; gap: 56px;
  }
  .marquee-item::after {
    content: '★';
    color: var(--tomato);
    font-size: 0.6em;
  }

  /* CUSTOMISE — sticker pack */
  .custom-block {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 24px;
    margin: 24px 0 64px;
  }
  .custom-preview {
    border: 3px solid var(--line);
    border-radius: 28px;
    overflow: hidden;
    background: var(--bg-2);
    box-shadow: 8px 8px 0 var(--shadow);
    position: relative;
  }
  .custom-preview img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
  .custom-preview .corner-tag {
    position: absolute;
    top: 16px; right: 16px;
    background: var(--bg-2);
    color: var(--cream);
    padding: 8px 14px;
    border-radius: 999px;
    font-family: var(--display);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .custom-controls {
    border: 3px solid var(--line);
    border-radius: 28px;
    background: var(--bg-2);
    box-shadow: 8px 8px 0 var(--bottle);
    padding: 28px;
    display: flex; flex-direction: column; gap: 22px;
  }
  .ctrl-row .lbl {
    font-family: var(--display);
    font-size: 18px;
    text-transform: uppercase;
    margin-bottom: 12px;
    display: flex; justify-content: space-between; align-items: baseline;
  }
  .ctrl-row .lbl .pick {
    font-size: 11px;
    background: var(--bg-2);
    color: var(--cream);
    padding: 4px 10px;
    border-radius: 999px;
    letter-spacing: 0.06em;
  }
  .swatches {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
  }
  .swatch {
    aspect-ratio: 1/1;
    border: 3px solid var(--line);
    border-radius: 14px;
    cursor: pointer;
    transition: transform .12s;
    box-shadow: 3px 3px 0 var(--shadow);
  }
  .swatch:hover { transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--shadow); }
  .swatch.active { box-shadow: 0 0 0 4px var(--cream), 0 0 0 7px var(--tomato); }
  .pills { display: flex; gap: 8px; flex-wrap: wrap; }
  .pill {
    padding: 10px 16px;
    border: 2px solid var(--line);
    border-radius: 999px;
    background: var(--bg-2);
    font-family: var(--display);
    font-size: 12px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all .12s;
  }
  .pill.active { background: var(--bg-2); color: var(--cream); }
  .pill:hover { transform: translate(-1px, -1px); }

  /* QUOTE BLOCK */
  .quote-wall {
    background: var(--bottle);
    color: var(--cream);
    border-radius: 32px;
    padding: clamp(40px, 6vw, 72px);
    margin: 64px 0;
    border: 3px solid var(--line);
    box-shadow: 10px 10px 0 var(--shadow);
    position: relative;
  }
  .quote-wall .q-mark {
    font-family: var(--display);
    font-size: 200px;
    line-height: 0.7;
    color: var(--hot);
    position: absolute;
    top: 24px; left: 32px;
    opacity: 0.9;
  }
  .quote-wall blockquote {
    margin: 0;
    font-family: var(--display);
    font-size: clamp(28px, 3.8vw, 52px);
    line-height: 1.05;
    letter-spacing: -0.025em;
    text-transform: uppercase;
    text-wrap: balance;
    max-width: 18ch;
    margin-left: clamp(64px, 8vw, 110px);
  }
  .quote-wall .author {
    margin-top: 28px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-left: clamp(64px, 8vw, 110px);
    font-weight: 700;
  }

  /* WHAT WE NEED — playful checklist */
  .needs-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    margin: 24px 0 64px;
  }
  .needs-grid.cols-2 { grid-template-columns: 1fr 1fr; }
  .needs-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
  .need {
    border: 3px solid var(--line);
    border-radius: 20px;
    padding: 24px 20px;
    background: var(--bg-2);
    box-shadow: 5px 5px 0 var(--shadow);
    min-height: 200px;
    display: flex; flex-direction: column; gap: 10px;
  }
  .need .check {
    width: 36px; height: 36px;
    background: var(--bottle);
    color: var(--cream);
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--display);
    font-size: 20px;
    border: 2px solid var(--line);
  }
  .need h4 {
    font-family: var(--display);
    font-size: 18px;
    text-transform: uppercase;
    margin: 0;
    letter-spacing: -0.01em;
  }
  .need p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink); font-weight: 500; }

  /* CTA — big silly footer */
  .cta-big {
    background: var(--tomato);
    color: var(--cream);
    border-radius: 36px;
    padding: clamp(44px, 6vw, 84px);
    text-align: center;
    margin: 48px 0;
    border: 4px solid var(--line);
    box-shadow: 12px 12px 0 var(--shadow);
    position: relative;
    overflow: hidden;
  }
  .cta-big .mega {
    color: var(--cream);
    text-transform: uppercase;
    font-size: clamp(30px, 8vw, 108px);
    overflow-wrap: break-word;
    hyphens: auto;
  }
  .cta-big .sub {
    font-size: 18px;
    margin: 24px auto 32px;
    max-width: 36ch;
    font-weight: 500;
    line-height: 1.4;
  }

  /* Footer */
  .colophon {
    display: flex; justify-content: space-between; align-items: center;
    padding: 32px 24px;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 24px;
    font-family: var(--mono);
    font-size: 12px;
  }

  /* Mobile */
  /* ---------- Tablet ---------- */
  @media (max-width: 900px) {
    .navbar nav { display: none; }
    .hero-grid { grid-template-columns: 1fr; gap: 28px; margin-top: 28px; }
    .stat-tiles { grid-template-columns: 1fr 1fr; }
    .models, .models.cols-2 { grid-template-columns: 1fr; }
    .custom-block { grid-template-columns: 1fr; }
    .needs-grid, .needs-grid.cols-2, .needs-grid.cols-4 { grid-template-columns: 1fr 1fr; }
    .marquee-band { margin: 56px -16% 56px; }
  }

  /* ---------- Phone ---------- */
  @media (max-width: 600px) {
    .hero { padding: 8px 0 44px; }
    .hero .mega { font-size: clamp(42px, 13vw, 96px); }
    .hero-grid { margin-top: 16px; }
    .hero-deck { margin-top: 0; max-width: none; }
    .hero-row { margin-top: 20px; gap: 12px; }
    .hero-row .btn { flex: 1 1 100%; justify-content: center; }
    /* the sticky bottom bar already carries Get a quote — drop the duplicate hero CTA */
    .hero-row .btn:first-child { display: none; }
    .scene-frame { transform: rotate(1deg); box-shadow: 7px 7px 0 var(--tomato); }
    .stat-tiles { grid-template-columns: 1fr; gap: 12px; margin: 40px 0; }
    .stat-tile { min-height: 0; padding: 24px 22px; }
    .stat-tile .v { font-size: clamp(40px, 11vw, 56px); }
    .needs-grid, .needs-grid.cols-2, .needs-grid.cols-4 { grid-template-columns: 1fr; }
    .sec-header { padding: 40px 0 18px; }
    .model-card { min-height: 0; padding: 28px 24px; }
    .marquee-item { font-size: clamp(26px, 8vw, 40px); }
    .cta-big { border-radius: 28px; margin: 48px 0; padding: 40px 22px; }
    .colophon { padding: 28px 4px; }
  }

  /* Switcher */
  .var-switcher {
    position: fixed;
    bottom: 16px; right: 16px;
    z-index: 50;
    display: flex; gap: 0;
    background: var(--bg-2);
    border: 3px solid var(--line);
    border-radius: 999px;
    box-shadow: 4px 4px 0 var(--shadow);
    font-family: var(--display);
    font-size: 10px;
    text-transform: uppercase;
    overflow: hidden;
  }
  .var-switcher a {
    padding: 10px 12px;
    color: var(--ink);
    border-right: 2px solid var(--line);
  }
  .var-switcher a:last-child { border-right: none; }
  .var-switcher a.active { background: var(--tomato); color: var(--cream); }

  /* ═══════════ PURPLE / BLACK THEME — contrast & accent fixes ═══════════ */
  ::selection { background: var(--raspberry); color: var(--cream); }
  .core-picker { display: none; }

  /* one-pager masthead — big logo, no nav pill */
  .site-head { display: flex; padding: 28px 0 4px; }
  .site-head .brand img { height: clamp(80px, 13vw, 132px); width: auto; display: block; }

  /* variation switcher — readable on the dark theme */
  .var-switcher a { color: var(--cream); }
  .var-switcher a.active { background: var(--tomato); color: var(--ink); }

  /* headlines & lede must be light on the near-black page */
  .mega, .hero-deck { color: var(--cream); }

  /* blush (light) surfaces need dark text */
  .sticker, .nav-cta, .scene-hint,
  .hero .mega .ink-blob,
  .stat-tile.tomato, .model-card.tomato,
  .cta-big, .cta-big .sub, .cta-big .mega { color: var(--ink); }

  /* buttons: blush primary (dark text); purple + outline secondaries (light) */
  .btn { color: var(--ink); }
  .btn-green, .btn-berry { color: var(--cream); }
  .btn-cream { background: var(--bg-2); color: var(--cream); border-color: var(--line); }
  .nav-cta:hover { background: var(--bg-2); color: var(--cream); border-color: var(--line); }

  /* dark elevated cards need light text (were dark text on cream) */
  .stat-tile.cream, .model-card.cream, .sticker.cream, .need p { color: var(--cream); }

  /* dark/ink chips → purple */
  .marquee-band { background: var(--raspberry); color: var(--cream); }
  .sc-pill.active, .pill.active, .ctrl-row .lbl .pick { background: var(--raspberry); color: var(--cream); }

  /* badge: purple so it reads on the blush "most booked" card */
  .model-card .badge { background: var(--raspberry); color: var(--cream); border-color: var(--line); }

  /* active swatch rings: gap matches card, purple halo */
  .swatch.active    { box-shadow: 0 0 0 4px var(--bg-2), 0 0 0 7px var(--raspberry); }
  .sc-swatch.active { box-shadow: 0 0 0 3px var(--bg-2), 0 0 0 5px var(--raspberry); }

/* ═══════════════ LANDING PAGES (shared) ═══════════════ */
.lp { padding: 8px 0 8px; }
.back-link {
  display: inline-block; font-family: var(--mono); font-size: 12px;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--cream);
  opacity: .75; margin-bottom: 14px;
}
.back-link:hover { opacity: 1; color: var(--hot); }
.kicker {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--display); font-size: 12px; letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--ink);
  background: var(--tomato); border: 2px solid var(--line);
  box-shadow: 3px 3px 0 var(--shadow); border-radius: 999px;
  padding: 8px 14px; transform: rotate(-2deg); margin-bottom: 14px;
}
.lp h1.mega { font-size: clamp(44px, 8vw, 120px); margin-bottom: 16px; }
.lp h1.mega em, .lede em { font-style: normal; color: var(--raspberry); }
.lede {
  font-size: clamp(18px, 2vw, 24px); line-height: 1.45; max-width: 42ch;
  font-weight: 500; color: var(--cream); margin: 0 0 28px;
}
.article-body { max-width: 66ch; margin-top: 8px; }
.article-body h2 {
  font-family: var(--display); font-size: clamp(26px, 3.4vw, 42px);
  line-height: 1; letter-spacing: -0.02em; text-transform: uppercase;
  margin: 52px 0 16px; color: var(--cream);
}
.article-body p { font-size: 16.5px; line-height: 1.6; margin: 0 0 18px; color: var(--cream); }
.article-body a { color: var(--raspberry); text-decoration: underline; text-underline-offset: 3px; }
.article-body ul { margin: 0 0 22px; padding: 0; list-style: none; display: grid; gap: 11px; }
.article-body li { position: relative; padding-left: 32px; font-size: 16px; line-height: 1.5; color: var(--cream); }
.article-body li::before {
  content: '✓'; position: absolute; left: 0; top: -1px;
  width: 23px; height: 23px; border-radius: 50%;
  background: var(--bottle); color: var(--cream); font-family: var(--display);
  font-size: 12px; display: inline-flex; align-items: center; justify-content: center;
  border: 2px solid var(--line);
}
.related { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 8px; }
.related a {
  font-family: var(--display); font-size: 11px; letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--cream);
  border: 2px solid var(--line); border-radius: 999px; padding: 9px 15px;
  transition: transform .12s;
}
.related a:hover { transform: translate(-1px,-1px); background: var(--tomato); color: var(--ink); }

/* hub (events / areas) grid */
.hub-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin: 24px 0 48px; }
.hub-card {
  border: 3px solid var(--line); border-radius: 22px; padding: 24px;
  box-shadow: 6px 6px 0 var(--shadow); background: var(--bg-2);
  display: flex; flex-direction: column; gap: 8px; min-height: 150px; transition: transform .15s;
}
.hub-card:hover { transform: translate(-3px,-3px); }
.hub-card .hc-name { font-family: var(--display); font-size: 26px; text-transform: uppercase; line-height: .95; color: var(--cream); }
.hub-card .hc-sub { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--cream); opacity: .7; margin-top: auto; }
@media (max-width: 880px) { .hub-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .hub-grid { grid-template-columns: 1fr; } }


/* ═══════════════ QUOTE FORM ═══════════════ */
.form { max-width: 660px; margin: 12px 0 24px; display: grid; gap: 22px; }
.form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px){ .form .row { grid-template-columns: 1fr; } }
.field { display: grid; gap: 8px; }
.field > label { font-family: var(--display); font-size: 13px; text-transform: uppercase; letter-spacing: .03em; color: var(--cream); display:flex; align-items:baseline; gap:8px; }
.field .opt { font-family: var(--mono); font-size: 10px; letter-spacing:.08em; text-transform:uppercase; opacity:.55; }
.form input, .form select, .form textarea {
  font-family: var(--body); font-weight:500; font-size: 16px; color: var(--cream);
  background: var(--bg-2); border: 2px solid var(--line); border-radius: 12px;
  padding: 13px 15px; width: 100%; box-shadow: 3px 3px 0 var(--shadow);
}
.form input::placeholder, .form textarea::placeholder { color: var(--cream); opacity:.4; }
.form input:focus, .form select:focus, .form textarea:focus { outline:none; border-color: var(--tomato); box-shadow: 4px 4px 0 var(--tomato); }
.form textarea { min-height: 120px; resize: vertical; }
.form select {
  appearance:none; -webkit-appearance:none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23fac9c6' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position: right 16px center; background-size: 13px 9px; padding-right: 40px;
}
.form select option { color:#16110d; background:#fff; }
.checks { display:grid; gap:12px; padding-top:2px; }
.check-opt { display:flex; align-items:center; gap:12px; font-size:15.5px; color:var(--cream); cursor:pointer; }
.check-opt input[type=checkbox]{ width:22px; height:22px; flex:0 0 auto; accent-color: var(--tomato); box-shadow:none; }
.check-opt .opt { font-family:var(--mono); font-size:11px; opacity:.6; }
.form button.submit { justify-self:start; cursor:pointer; }
.form-note { font-family: var(--mono); font-size:12px; line-height:1.6; opacity:.7; max-width: 54ch; }


/* ═══════════ GOLD ACCENT — dark text on gold-bg elements ═══════════ */
.sticker.berry, .sticker.cobalt,
.stat-tile.berry,
.marquee-band,
.sc-pill.active, .pill.active, .ctrl-row .lbl .pick,
.model-card .badge { color: var(--ink); }
::selection { background: var(--raspberry); color: var(--ink); }

/* ═══════════ COMPARISON TABLE ═══════════ */
.compare-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; margin: 8px 0 12px;
  border:3px solid var(--line); border-radius:18px; box-shadow:6px 6px 0 var(--shadow);
  background: var(--bg-2); }
.compare { width:100%; border-collapse:separate; border-spacing:0; min-width:580px; }
.compare th, .compare td { padding:14px 16px; border-bottom:2px solid rgba(255,244,220,.18); }
.compare tbody tr:last-child td { border-bottom:none; }
.compare thead th { font-family:var(--display); text-transform:uppercase; font-size:12.5px;
  letter-spacing:.02em; color:var(--cream); border-bottom:3px solid var(--line); text-align:center; }
.compare thead th:first-child { text-align:left; }
.compare thead th.us { color: var(--tomato); }
.compare td:first-child { color:var(--cream); font-size:15px; font-weight:500; }
.compare td:not(:first-child) { text-align:center; color:var(--cream); font-size:14px; }
.compare td.us { background: rgba(250,201,198,.10); color: var(--raspberry);
  font-family:var(--display); font-size:18px; }
.compare .no { opacity:.45; }

/* ═══════════ BROWSE PILLS ═══════════ */
.pill-block { margin: 6px 0 8px; }
.pill-label { font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--cream); opacity:.65; margin: 20px 0 10px; }

/* ═══════════════ MENU ═══════════════ */
.menu { display:grid; grid-template-columns:1fr 1fr; gap: 0 48px; margin: 8px 0 8px; }
@media (max-width:720px){ .menu { grid-template-columns:1fr; } }
.mrow { padding: 13px 0; border-bottom: 2px solid rgba(255,244,220,.14); }
.mname { font-family: var(--display); font-size: 19px; text-transform: uppercase; letter-spacing:-0.01em; color: var(--cream); display:flex; flex-direction:column; gap:4px; }
.mname small { font-family: var(--body); font-size: 13px; text-transform:none; letter-spacing:0; font-weight:500; color: var(--cream); opacity:.55; }
.menu-note { font-family: var(--mono); font-size:12px; letter-spacing:.03em; line-height:1.7; color: var(--cream); opacity:.8; margin: 14px 0 4px; max-width: 60ch; }
.menu-note strong { color: var(--raspberry); opacity:1; }

/* ═══════════════ ABOUT ═══════════════ */
.about-hero { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(24px,4vw,48px); align-items:center; margin:8px 0 14px; }
.about-hero h1 { font-family:var(--display); font-size:clamp(34px,5vw,66px); line-height:1; letter-spacing:-0.02em; text-transform:uppercase; color:var(--cream); margin:14px 0 14px; }
.about-hero h1 em, .article-body h2 em { font-style:normal; color:var(--raspberry); }
.about-hero .lede { margin-bottom:0; }
.about-portrait { border:3px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:8px 8px 0 var(--shadow); aspect-ratio:4/5; }
.about-portrait img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
@media (max-width:820px){ .about-hero { grid-template-columns:1fr; } .about-portrait{ max-width:340px; } }
.photo-band { border:3px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:8px 8px 0 var(--shadow); margin:20px 0; }
.photo-band img { width:100%; height:clamp(220px,32vw,420px); object-fit:cover; display:block; }
.photo-band.natural { background:#fff; }
.photo-band.natural img { height:auto; max-height:520px; object-fit:contain; }

/* ═══════════════ CREDENTIALS STRIP ═══════════════ */
.creds { display:flex; flex-wrap:wrap; gap:18px 48px; margin:18px 0; font-family:var(--mono); font-size:12px; letter-spacing:.03em; color:var(--cream); }
.creds span { display:inline-flex; align-items:center; gap:10px; }
.creds span::before { content:'✓'; color:var(--raspberry); font-family:var(--display); font-size:13px; }

/* ═══════════ FIX: light text on brown/espresso elements ═══════════ */
.sticker.green { color: var(--cream); }       /* was inheriting ink on brown */
.sc-pill { color: var(--cream); }             /* <button> defaults to black */

/* ═══════════════ BLOG ═══════════════ */
.blog-title { font-family:var(--display); font-size:clamp(30px,4.6vw,58px); line-height:1.03; letter-spacing:-0.02em; color:var(--cream); text-transform:none; margin:12px 0 14px; }
.bmeta { font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--cream); opacity:.6; display:flex; gap:14px; flex-wrap:wrap; margin:0 0 22px; }
.post-cta { border:3px solid var(--line); border-radius:20px; box-shadow:6px 6px 0 var(--shadow); background:var(--bg-2); padding:28px; margin:36px 0 8px; }
.post-cta h3 { font-family:var(--display); text-transform:uppercase; font-size:clamp(22px,3vw,30px); line-height:1; color:var(--cream); margin:0 0 10px; }
.post-cta p { color:var(--cream); font-size:15.5px; line-height:1.5; margin:0 0 16px; opacity:.9; max-width:none; }
.readnext { margin:40px 0 8px; }
.related-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; }
@media(max-width:640px){ .related-grid{ grid-template-columns:1fr; } }
.related-grid a { border:2px solid var(--line); border-radius:16px; padding:18px; box-shadow:4px 4px 0 var(--shadow); background:var(--bg-2); display:block; transition:transform .12s; }
.related-grid a:hover { transform:translate(-2px,-2px); }
.related-grid .rt { font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--raspberry); }
.related-grid h4 { font-family:var(--display); font-size:17px; text-transform:uppercase; line-height:1.05; color:var(--cream); margin:8px 0 0; }
.post-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin:24px 0 40px; }
@media(max-width:700px){ .post-grid{ grid-template-columns:1fr; } }
.post-card { border:3px solid var(--line); border-radius:20px; padding:24px; box-shadow:6px 6px 0 var(--shadow); background:var(--bg-2); display:flex; flex-direction:column; gap:10px; transition:transform .15s; }
.post-card:hover { transform:translate(-3px,-3px); }
.post-card .rt { font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--raspberry); }
.post-card h2 { font-family:var(--display); font-size:22px; text-transform:uppercase; line-height:1.02; color:var(--cream); margin:0; }
.post-card p { font-size:14px; line-height:1.5; color:var(--cream); opacity:.7; margin:0; }

/* FIX: buttons inside article-body must stay buttons, not inline links */
.article-body a.btn { color: var(--ink); text-decoration: none; }
.article-body a.btn.btn-green, .article-body a.btn.btn-berry { color: var(--cream); }

/* ═══════════════ CART SPEC SHEET ═══════════════ */
.spec-table { width:100%; border-collapse:separate; border-spacing:0; }
.spec-table td { padding:14px 4px; border-bottom:2px solid rgba(255,244,220,.14); vertical-align:top; }
.spec-table td:first-child { font-family:var(--display); text-transform:uppercase; font-size:12.5px; letter-spacing:.03em; color:var(--cream); width:38%; }
.spec-table td:last-child { color:var(--cream); font-size:15px; line-height:1.45; }
.spec-table tr:last-child td { border-bottom:none; }

/* FIX: spec table padding (dedicated wrapper, roomier cells) */
.spec-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; margin:10px 0 14px;
  border:3px solid var(--line); border-radius:18px; box-shadow:6px 6px 0 var(--shadow);
  background:var(--bg-2); padding:14px 30px; }
.spec-table td { padding:16px 0; }
.spec-table td:first-child { width:36%; padding-right:28px; }
@media (max-width:560px){ .spec-wrap{ padding:10px 18px; } .spec-table td:first-child{ padding-right:16px; } }

/* ═══════════════ TOP NAV ═══════════════ */
.site-nav { display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding:16px 0 8px; }
.site-nav .brand { display:block; }
.site-nav .brand img { height:clamp(78px,11vw,118px); width:auto; display:block; }
.nav-links { display:flex; flex-wrap:wrap; gap:20px; margin-left:auto; align-items:center; }
.nav-links a { font-family:var(--display); font-size:13px; letter-spacing:.02em; text-transform:uppercase; color:var(--cream); transition:color .15s; }
.nav-links a:hover, .nav-links a.active { color:var(--raspberry); }
.nav-quote { font-family:var(--display); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink); background:var(--tomato); border:2px solid var(--line); box-shadow:3px 3px 0 var(--shadow); border-radius:999px; padding:10px 16px; white-space:nowrap; transition:transform .12s; }
.nav-quote:hover { transform:translate(-1px,-1px); }
/* burger menu — hidden on desktop, shown on mobile */
.nav-burger { display:none; }
@media (max-width:820px){
  .site-nav { align-items:center; gap:14px; padding:16px 0 8px; justify-content:flex-start; }
  .site-nav .brand img { height:clamp(52px,13vw,72px); }

  .nav-burger {
    display:flex; flex-direction:column; justify-content:center; align-items:stretch; gap:5px;
    order:2; margin-left:auto;
    width:50px; height:44px; padding:0 13px;
    background:var(--bg-2); border:2px solid var(--line); border-radius:999px;
    box-shadow:3px 3px 0 var(--shadow); cursor:pointer;
  }
  .nav-burger span { height:2.5px; background:var(--cream); border-radius:2px; transition:transform .18s, opacity .18s; }
  /* quote lives in the sticky bottom bar on mobile, so drop it from the header */
  .nav-quote { display:none; }

  .nav-links, .nav-popup { display:none; }
  .nav-links { order:4; width:100%; margin-left:0; }
  .nav-popup { order:5; width:100%; justify-content:center; }

  .nav-toggle:checked ~ .nav-links {
    display:flex; flex-direction:column; align-items:flex-start; gap:2px;
    width:100%; margin-top:6px; padding-top:8px;
    border-top:2px solid rgba(255,244,220,.15);
  }
  .nav-toggle:checked ~ .nav-links a { font-size:16px; padding:10px 0; width:100%; }
  .nav-toggle:checked ~ .nav-popup { display:inline-flex; margin-top:6px; }

  .nav-toggle:checked ~ .nav-burger span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){ opacity:0; }
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }
}

/* secondary header CTA (pop-up) */
.nav-popup { font-family:var(--display); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--cream); background:transparent; border:2px solid var(--line); border-radius:999px; padding:9px 15px; white-space:nowrap; transition:transform .12s, background .15s, color .15s; }
.nav-popup:hover { background:var(--tomato); color:var(--ink); transform:translate(-1px,-1px); }

/* ============================================================
   LIGHT THEME (exploration) — printed-menu style
   Activated by <html data-theme="light">. Dark stays the default.
   ============================================================ */
:root[data-theme="light"]{
  --bg:#fff4dc; --bg-2:#fffaf0; --ink:#16110d; --cream:#fff4dc;
  --line:#16110d; --shadow:#16110d;
  --tomato:#fac9c6; --hot:#fac9c6; --raspberry:#f5b13d; --cobalt:#f5b13d;
  --bottle:#20392c;
  --hand:'Archivo', system-ui, sans-serif;
  --mono:'Archivo', system-ui, sans-serif;
}

/* default text: cream -> ink on the light ground */
[data-theme="light"] body{ color:var(--ink); }
[data-theme="light"] a{ color:var(--ink); }
[data-theme="light"] .mega,[data-theme="light"] .mega-2,[data-theme="light"] .hero-deck,
[data-theme="light"] .blog-title,[data-theme="light"] .about-hero h1{ color:var(--ink); }
[data-theme="light"] .hand{ font-weight:700; color:var(--ink); transform:none; }
[data-theme="light"] ::selection{ background:var(--tomato); color:var(--ink); }

/* text the dark theme pinned to cream but which sits on the LIGHT ground -> ink */
[data-theme="light"] .pill-label,[data-theme="light"] .menu-note,[data-theme="light"] .bmeta,
[data-theme="light"] .creds,[data-theme="light"] .form-note,[data-theme="light"] .field .opt,
[data-theme="light"] .check-opt .opt,[data-theme="light"] .check-opt,
[data-theme="light"] .mname,[data-theme="light"] .mname small,
[data-theme="light"] .field > label,[data-theme="light"] .form input,
[data-theme="light"] .form textarea,[data-theme="light"] .form select,
[data-theme="light"] .hub-card .hc-name,[data-theme="light"] .hub-card .hc-sub,
[data-theme="light"] .article-body h2,[data-theme="light"] .article-body p,
[data-theme="light"] .article-body li,
[data-theme="light"] .related-grid h4,[data-theme="light"] .post-card h2,
[data-theme="light"] .post-card p,[data-theme="light"] .post-cta h3,[data-theme="light"] .post-cta p,
[data-theme="light"] .spec-table td:first-child,[data-theme="light"] .spec-table td:last-child,
[data-theme="light"] .stat-tile.cream,[data-theme="light"] .model-card.cream,
[data-theme="light"] .sticker.cream,[data-theme="light"] .need p,[data-theme="light"] .stat-tile.berry,
[data-theme="light"] .nav-links a,[data-theme="light"] .nav-popup,[data-theme="light"] .colophon,
[data-theme="light"] .lede,[data-theme="light"] .back-link{ color:var(--ink); }
[data-theme="light"] .form input::placeholder,[data-theme="light"] .form textarea::placeholder{ color:var(--ink); opacity:.45; }

/* gold/blush used as TEXT or thin marks -> ink / espresso (never light-on-light) */
[data-theme="light"] .lp h1.mega em,[data-theme="light"] .lede em,
[data-theme="light"] .about-hero h1 em,[data-theme="light"] .article-body h2 em,
[data-theme="light"] .menu-note strong,
[data-theme="light"] .related-grid .rt,[data-theme="light"] .post-card .rt{ color:var(--bottle); }
[data-theme="light"] .article-body a{ color:var(--ink); }
[data-theme="light"] .creds span::before{ color:var(--ink); }
[data-theme="light"] .nav-links a:hover,[data-theme="light"] .nav-links a.active{ color:var(--bottle); }
[data-theme="light"] .hero .mega .underline{ text-decoration-color:var(--hot); }

/* stickers / badges: blush+gold fills get INK; dark (espresso) fills keep cream */
[data-theme="light"] .sticker{ color:var(--ink); }
[data-theme="light"] .sticker.green{ color:var(--cream); }
[data-theme="light"] .model-card .badge{ color:var(--ink); }
[data-theme="light"] .related a{ color:var(--ink); }

/* cards/tiles: borders+shadows follow --line/--shadow (now ink) automatically.
   keep the dark-surface (espresso) variants' text cream. */
[data-theme="light"] .model-card.green,[data-theme="light"] .stat-tile.green{ color:var(--cream); }

/* buttons */
[data-theme="light"] .btn{ color:var(--ink); }
[data-theme="light"] .btn-green{ background:var(--bottle); color:var(--cream); }
[data-theme="light"] .btn-berry{ color:var(--ink); }
[data-theme="light"] .btn-cream{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
[data-theme="light"] .nav-quote{ background:var(--ink); color:var(--cream); }

/* nav + mobile burger */
[data-theme="light"] .site-nav{ background:var(--bg); }
[data-theme="light"] .nav-burger span{ background:var(--ink); }

/* hero image frame + marquee: hardcoded blush shadows -> ink / espresso */
[data-theme="light"] .scene-frame{ box-shadow:10px 10px 0 var(--ink); }
[data-theme="light"] .marquee-band{ background:var(--ink); color:var(--cream); box-shadow:0 12px 0 var(--bottle); }

/* compare table: ink text + ink rules; highlighted column = blush fill + ink text */
[data-theme="light"] .compare,[data-theme="light"] .compare th,[data-theme="light"] .compare td{ color:var(--ink); }
[data-theme="light"] .compare thead th.us{ color:var(--ink); }
[data-theme="light"] .compare td.us{ background:rgba(250,201,198,.45); color:var(--ink); }

/* =========================================================
   MOBILE INTERACTION PATTERNS
   ========================================================= */

/* ---- Wide-table scroll hint (side gradients) ---- */
.table-scroll { position: relative; }
.table-scroll::before,
.table-scroll::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 44px;
  pointer-events: none; opacity: 0; transition: opacity .2s; z-index: 3;
}
.table-scroll::before { left: 0;  background: linear-gradient(90deg,  var(--bg), transparent); }
.table-scroll::after  { right: 0; background: linear-gradient(270deg, var(--bg), transparent); }
.table-scroll.more-left::before  { opacity: 1; }
.table-scroll.more-right::after  { opacity: 1; }
/* little nudge chip while there's more to the right */
.table-scroll::marker { content: none; }
.table-scroll .swipe-hint {
  position: absolute; right: 10px; bottom: 10px; z-index: 4;
  font-family: var(--display); font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
  background: var(--bg-2); color: var(--cream); border: 2px solid var(--line);
  padding: 5px 10px; border-radius: 999px; pointer-events: none;
  opacity: 0; transition: opacity .2s;
}
.table-scroll.more-right .swipe-hint { opacity: .95; }

/* ---- Sticky mobile CTA bar ---- */
.mcta-bar { display: none; }
@media (max-width: 820px) {
  .mcta-bar {
    display: flex; gap: 10px; align-items: stretch;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    background: rgba(22,17,13,.86); backdrop-filter: blur(8px);
    border-top: 2px solid var(--line);
    transform: translateY(0); transition: transform .25s ease;
  }
  .mcta-bar.is-hidden { transform: translateY(120%); }
  .mcta-bar a {
    flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--display); font-size: 14px; letter-spacing: .03em; text-transform: uppercase;
    border: 2px solid var(--line); border-radius: 999px; padding: 14px 12px; white-space: nowrap;
    box-shadow: 3px 3px 0 var(--shadow);
  }
  .mcta-quote { background: var(--tomato); color: var(--ink); flex-grow: 1.4; }
  .mcta-spot  { background: transparent; color: var(--cream); }
  /* keep content clear of the fixed bar */
  .colophon { margin-bottom: 76px; }
}

/* ---- Scroll-snap carousel (opt-in on a .models row) ---- */
@media (max-width: 820px) {
  .models.swipe {
    grid-template-columns: none;
    display: flex; flex-wrap: nowrap;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    gap: 14px; margin-left: calc(-1 * clamp(20px,4vw,56px)); margin-right: calc(-1 * clamp(20px,4vw,56px));
    padding: 26px clamp(20px,4vw,56px) 16px;
    scroll-padding-left: clamp(20px,4vw,56px);
  }
  .models.swipe::-webkit-scrollbar { display: none; }
  .models.swipe { scrollbar-width: none; }
  .models.swipe > .model-card {
    flex: 0 0 86%; scroll-snap-align: start; min-height: 0;
  }
}

/* ---- Collapsible cloud (accordion via <details>) ---- */
.cloud-toggle { margin: 8px 0 28px; }
.cloud-toggle > summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--display); font-size: 13px; letter-spacing: .03em; text-transform: uppercase;
  color: var(--cream); background: var(--bg-2); border: 2px solid var(--line);
  border-radius: 999px; padding: 11px 18px; box-shadow: 3px 3px 0 var(--shadow);
}
.cloud-toggle > summary::-webkit-details-marker { display: none; }
.cloud-toggle > summary::after { content: '▾'; transition: transform .2s; }
.cloud-toggle[open] > summary::after { transform: rotate(180deg); }
.cloud-toggle[open] > summary .more-word { display: none; }
.cloud-toggle .related { margin-top: 16px; }
/* only collapse on mobile; show everything on desktop */
@media (min-width: 821px) {
  .cloud-toggle > summary { display: none; }
  .cloud-toggle > .related { display: flex; }
}

/* ---- Respect reduced-motion ---- */
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none !important; }
  * { scroll-behavior: auto !important; }
}
