/* ============================================================
   Sonder · The Living Website design system  ·  LIGHT (v2)
   Loaded ONLY on the four new-system pages: index, /living-website,
   /dead-or-alive, /snowball. Warm cream base; deep emerald is the
   working accent; mint is decorative only (glows, pulses, charts) and is
   NEVER body text on cream. Self-hosted fonts (no Google Fonts link):
   Hanken Grotesk (UI/body/headlines), Instrument Serif italic (accent
   words), JetBrains Mono (labels/verdicts/receipts/counters, tabular).
   Only dark surfaces are .lw-dark-panel (scanner, verdict, receipts),
   sitting as dark cards on the cream page. Australian spelling.
   ============================================================ */

/* ---------------- 0 · fonts (self-hosted, latin subset) ---------------- */
@font-face{
  font-family:'Hanken Grotesk';
  font-style:normal; font-weight:400 700; font-display:swap;
  src:url(/fonts/hanken-grotesk-var.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Instrument Serif';
  font-style:italic; font-weight:400; font-display:swap;
  src:url(/fonts/instrument-serif-italic.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Instrument Serif';
  font-style:normal; font-weight:400; font-display:swap;
  src:url(/fonts/instrument-serif.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal; font-weight:400 700; font-display:swap;
  src:url(/fonts/jetbrains-mono-var.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------------- 1 · tokens ---------------- */
:root{
  --bg: oklch(0.975 0.006 80);           /* warm cream, #f9f6f3 family */
  --surface: #ffffff;
  --surface-2: oklch(0.985 0.005 80);    /* barely-tinted panel */
  --ink: oklch(0.24 0.012 80);           /* warm near-black text */
  --muted: oklch(0.45 0.012 80);
  --faint: oklch(0.55 0.012 80);         /* small mono labels only, AA on cream */
  --accent: oklch(0.505 0.12 163);       /* deep emerald: buttons + links + ALIVE (>=4.5:1 on cream, measured) */
  --accent-hover: oklch(0.45 0.12 163);
  --accent-bright: oklch(0.87 0.19 163); /* mint: glows/pulses/charts, NEVER body text */
  --accent-ink: #ffffff;                 /* text on emerald buttons */
  --line: oklch(0.90 0.008 80);
  --line-2: oklch(0.94 0.006 80);
  --panel-dark: oklch(0.22 0.012 80);    /* the dark monitor/terminal panels on cream */
  --panel-dark-2: oklch(0.27 0.012 80);
  --amber: oklch(0.62 0.13 70);          /* FADING (AA on cream) */
  --bone: oklch(0.55 0.01 80);           /* DEAD on light = drained warm grey */
  --shadow-sm: 0 1px 2px oklch(0.24 0.012 80 / .05), 0 2px 8px oklch(0.24 0.012 80 / .05);
  --shadow-md: 0 2px 6px oklch(0.24 0.012 80 / .06), 0 14px 40px -14px oklch(0.24 0.012 80 / .16);
  --shadow-lg: 0 4px 10px oklch(0.24 0.012 80 / .07), 0 30px 70px -24px oklch(0.24 0.012 80 / .22);
  --mint-glow: oklch(0.87 0.19 163 / .5);
  --body:'Hanken Grotesk',system-ui,-apple-system,sans-serif;
  --serif:'Instrument Serif',Georgia,serif;
  --mono:'JetBrains Mono',ui-monospace,'SF Mono',monospace;
}

/* remap legacy sb- component tokens to the living system, scoped to new pages */
.living{
  --sb-accent:var(--accent); --sb-accent-dim:var(--accent-hover); --sb-accent-ink:var(--accent-ink);
  --sb-snow:var(--ink); --sb-glow:var(--mint-glow);
  --sb-disp:var(--body); --sb-mono:var(--mono); --sb-sans:var(--body);
  background:var(--bg); color:var(--ink);
}

/* ---------------- 2 · base (scoped to .living) ---------------- */
.living{ margin:0; font-family:var(--body); -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility; line-height:1.6; overflow-x:hidden; }
.living *,.living *::before,.living *::after{ box-sizing:border-box; }
.living ::selection{ background:var(--accent); color:var(--accent-ink); }
.living :focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }
.living a{ color:var(--accent); text-decoration:none; }
.living a.lw-tlink{ text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }

.lw-wrap{ width:100%; max-width:1140px; margin:0 auto; padding:0 clamp(20px,5vw,32px); }

/* ---------------- 3 · type scale ---------------- */
.living h1,.living h2,.living h3{ font-family:var(--body); font-weight:700; line-height:1.06;
  letter-spacing:-.02em; overflow-wrap:break-word; margin:0; color:var(--ink); }
.living h1{ font-size:clamp(44px,6.4vw,76px); }
.living h2{ font-size:clamp(32px,4.4vw,44px); letter-spacing:-.018em; }
.living h3{ font-size:clamp(18px,2.2vw,22px); letter-spacing:-.01em; }
.lw-lead{ color:var(--muted); font-size:clamp(18px,1.5vw,20px); line-height:1.55; max-width:60ch; margin:0; }
.lw-eyebrow{ font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.18em;
  text-transform:uppercase; color:var(--accent); margin:0 0 14px; }
.lw-mono{ font-family:var(--mono); }
.lw-tnum{ font-variant-numeric:tabular-nums; }
/* serif-italic accent word(s) inside an otherwise-sans headline */
.lw-serif{ font-family:var(--serif); font-style:italic; font-weight:400; letter-spacing:0; }
.lw-serif.is-accent{ color:var(--accent); }

/* ---------------- 4 · buttons ---------------- */
.lw-btn{ display:inline-flex; align-items:center; gap:.5em; text-decoration:none; cursor:pointer;
  font-family:var(--body); font-size:15px; font-weight:500; letter-spacing:0;
  padding:12px 22px; border-radius:999px; border:1px solid transparent;
  transition:transform .2s cubic-bezier(.16,1,.3,1), box-shadow .25s, border-color .2s, color .2s, background .2s; }
/* the extra .living a qualifier keeps button text colours ahead of the generic `.living a` link rule */
.lw-btn-life, .living a.lw-btn-life{ background:var(--accent); color:var(--accent-ink);
  box-shadow:0 1px 2px oklch(0.24 0.012 80 / .12); }
.lw-btn-life:hover, .living a.lw-btn-life:hover{ background:var(--accent-hover); transform:translateY(-1px);
  box-shadow:0 8px 26px -10px var(--mint-glow), 0 0 0 4px oklch(0.87 0.19 163 / .14); }
.lw-btn-ghost, .living a.lw-btn-ghost{ background:var(--surface); color:var(--ink); border-color:var(--line); }
.lw-btn-ghost:hover, .living a.lw-btn-ghost:hover{ border-color:oklch(0.82 0.01 80); transform:translateY(-1px); box-shadow:var(--shadow-sm); }
.lw-btn-sm{ padding:9px 16px; font-size:14px; }

/* ---------------- 5 · pulse system (life) · one 2.4s heartbeat ---------------- */
.lw-pulse-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; flex:none;
  background:var(--accent-bright); box-shadow:0 0 0 0 var(--mint-glow);
  animation:lw-heartbeat 2.4s ease-in-out infinite; }
.lw-pulse-ring{ width:64px; height:64px; border-radius:50%; border:1px solid var(--accent-bright);
  animation:lw-heartbeat 2.4s ease-in-out infinite; }
@keyframes lw-heartbeat{
  0%   { box-shadow:0 0 0 0 var(--mint-glow); opacity:1; }
  35%  { box-shadow:0 0 0 10px oklch(0.87 0.19 163 / 0); opacity:.9; }
  100% { box-shadow:0 0 0 0 oklch(0.87 0.19 163 / 0); opacity:1; }
}

/* ---------------- 6 · always-watching bar (light) ---------------- */
.lw-watch{ display:flex; gap:10px 14px; flex-wrap:wrap; align-items:center; margin:22px 0 4px; }
.lw-ind{ display:inline-flex; align-items:center; gap:9px; padding:9px 15px; border-radius:999px;
  background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-sm);
  font-family:var(--mono); font-size:13px; color:var(--muted); }
.lw-live{ width:8px; height:8px; border-radius:50%; flex:none; background:var(--accent-bright);
  box-shadow:0 0 0 0 var(--mint-glow); animation:lw-beat 2.4s ease-out infinite; }
.lw-ind:nth-child(2) .lw-live{ animation-delay:.6s; }
.lw-ind:nth-child(3) .lw-live{ animation-delay:1.2s; }
.lw-watch-cap{ flex-basis:100%; margin:8px 0 0; font-family:var(--mono); font-size:12px; color:var(--faint); }
@keyframes lw-beat{
  0%{ box-shadow:0 0 0 0 var(--mint-glow); }
  70%{ box-shadow:0 0 0 9px oklch(0.87 0.19 163 / 0); }
  100%{ box-shadow:0 0 0 0 oklch(0.87 0.19 163 / 0); }
}

/* ---------------- 7 · reveal on scroll (12px fade-up) ---------------- */
.lw-reveal{ opacity:0; transform:translateY(12px);
  transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.lw-reveal.is-in{ opacity:1; transform:none; }

/* ---------------- 8 · odometer (rolling digit counter) ---------------- */
/* contract: <span class="lw-odometer" data-odo="12482"></span>; lw.js builds
   per-digit .lw-odo-col > .lw-odo-reel (0-9 stacked), rolls via translateY. */
.lw-odometer{ display:inline-flex; font-family:var(--mono); font-weight:600;
  font-variant-numeric:tabular-nums; line-height:1; overflow:hidden;
  vertical-align:baseline; }
.lw-odo-col{ display:inline-block; overflow:hidden; height:1em; }
.lw-odo-sep{ display:inline-block; } /* commas / decimals rendered inline */
.lw-odo-reel{ display:flex; flex-direction:column;
  transition:transform 1.2s cubic-bezier(.16,1,.3,1); will-change:transform; }
.lw-odo-reel span{ display:block; height:1em; text-align:center; }

/* ---------------- 9 · logo wall (tool logos, grayscale at rest) ---------------- */
.lw-logowall{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:26px 40px; }
.lw-logowall svg,.lw-logowall img{ height:22px; width:auto; display:block;
  color:var(--muted); opacity:.72; transition:color .2s, opacity .2s; }
.lw-logowall a:hover svg,.lw-logowall a:hover img,
.lw-logowall svg:hover,.lw-logowall img:hover{ color:var(--ink); opacity:1; }
/* optional drifting marquee variant */
.lw-logowall.is-marquee{ flex-wrap:nowrap; overflow:hidden; gap:0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); }
.lw-logowall.is-marquee .lw-logo-track{ display:flex; align-items:center; gap:56px;
  flex:none; padding-right:56px; animation:lw-drift 34s linear infinite; }
.lw-logowall.is-marquee:hover .lw-logo-track{ animation-play-state:paused; }
@keyframes lw-drift{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------------- 10 · bento grid ---------------- */
.lw-bento{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.lw-bento-card{ position:relative; background:var(--surface); border:1px solid var(--line);
  border-radius:6px; padding:24px; box-shadow:var(--shadow-sm);
  transition:transform .22s cubic-bezier(.16,1,.3,1), box-shadow .25s, border-color .2s; }
.lw-bento-card:hover{ transform:translateY(-1px); box-shadow:var(--shadow-md); border-color:var(--line-2); }
.lw-bento-card.is-feature{ overflow:hidden; }
.lw-bento-card.is-feature::before{ content:""; position:absolute; top:-40%; right:-30%;
  width:70%; height:80%; border-radius:50%;
  background:radial-gradient(closest-side, oklch(0.87 0.19 163 / .22), transparent 70%);
  pointer-events:none; }
.lw-bento-card h3{ margin:0 0 8px; }
.lw-bento-card p{ margin:0; color:var(--muted); font-size:15px; }
.lw-bento-card.is-wide{ grid-column:span 2; }
.lw-bento-card.is-tall{ grid-row:span 2; }
@media (max-width:820px){ .lw-bento{ grid-template-columns:repeat(2,1fr); }
  .lw-bento-card.is-wide{ grid-column:span 2; } }
@media (max-width:560px){ .lw-bento{ grid-template-columns:1fr; }
  .lw-bento-card.is-wide{ grid-column:auto; } }

/* ---------------- 11 · browser-chrome frame (product previews) ---------------- */
.lw-frame{ background:var(--surface); border:1px solid var(--line); border-radius:8px;
  box-shadow:var(--shadow-lg); overflow:hidden; }
.lw-frame-bar{ display:flex; align-items:center; gap:7px; padding:12px 16px;
  border-bottom:1px solid var(--line-2); background:var(--surface-2); }
.lw-frame-bar i{ width:11px; height:11px; border-radius:50%; background:oklch(0.86 0.01 80);
  display:inline-block; }
.lw-frame-bar .lw-frame-url{ margin-left:12px; font-family:var(--mono); font-size:12px;
  color:var(--faint); display:inline-flex; align-items:center; gap:7px; }
.lw-frame-body{ padding:0; }

/* ---------------- 12 · dark panels (scanner / verdict / receipts terminal) ---------------- */
/* dark cards on the cream page; scoped light-on-dark context re-established here */
.lw-dark-panel{ position:relative;
  --ink:oklch(0.96 0.006 80); --muted:oklch(0.74 0.01 80); --faint:oklch(0.6 0.01 80);
  --surface:var(--panel-dark-2); --line:oklch(0.34 0.01 80);
  --accent:oklch(0.86 0.16 163);            /* inside dark, "alive" uses bright mint (AA on dark) */
  background:var(--panel-dark); color:var(--ink);
  border:1px solid oklch(0.32 0.01 80); border-radius:8px;
  box-shadow:var(--shadow-lg); font-family:var(--mono); }
.lw-dark-panel .lw-dp-bar{ display:flex; align-items:center; gap:7px; padding:12px 16px;
  border-bottom:1px solid oklch(0.32 0.01 80); }
.lw-dark-panel .lw-dp-bar i{ width:10px; height:10px; border-radius:50%;
  background:oklch(0.4 0.01 80); display:inline-block; }
.lw-dark-panel .lw-dp-title{ margin-left:10px; font-size:12px; letter-spacing:.02em;
  color:oklch(0.72 0.01 80); }
.lw-dark-panel .lw-dp-body{ padding:18px 18px 20px; }
.lw-dark-panel a{ color:var(--accent); }

/* ---------------- 13 · verdict type ---------------- */
.lw-verdict-word{ font-family:var(--mono); font-weight:700; line-height:.9;
  font-size:clamp(60px,15vw,168px); letter-spacing:-.04em; font-variant-numeric:tabular-nums;
  display:inline-flex; align-items:center; gap:.28em; margin:0; }
/* on cream (default context) */
.lw-verdict-word.is-alive{ color:var(--accent); }
.lw-verdict-word.is-fading{ color:var(--amber); }
.lw-verdict-word.is-dead{ color:var(--bone); }
/* inside a dark panel, .lw-dark-panel remaps --accent to bright mint, so
   .is-alive picks it up automatically; fading/dead lift for dark legibility */
.lw-dark-panel .lw-verdict-word.is-fading{ color:oklch(0.78 0.14 75); }
.lw-dark-panel .lw-verdict-word.is-dead{ color:oklch(0.68 0.01 80); }

/* ---------------- 14 · skip link ---------------- */
.lw-skip{ position:absolute; left:12px; top:-60px; z-index:200;
  background:var(--accent); color:var(--accent-ink); font-family:var(--mono); font-size:13px;
  padding:10px 16px; border-radius:8px; text-decoration:none; transition:top .2s ease; }
.lw-skip:focus{ top:12px; }

/* ---------------- 15 · header (new-system pages, light) ---------------- */
.lw-header{ position:sticky; top:0; z-index:60;
  backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%);
  background:oklch(0.975 0.006 80 / .42); border-bottom:1px solid oklch(0.90 0.008 80 / .45);
  transition:background .3s ease, border-color .3s ease; }
.lw-header .wrap.nav{ display:flex; align-items:center; justify-content:space-between; gap:20px;
  height:66px; width:100%; max-width:1140px; margin:0 auto; padding:0 clamp(20px,5vw,32px); }
.lw-header .brand{ display:inline-flex; align-items:center; text-decoration:none; }
.lw-header .brand-logo{ height:22px; width:auto; display:block; }
.lw-header .nav-links{ display:flex; gap:30px; }
.lw-header .nav-links a{ font-family:var(--body); font-size:14.5px; font-weight:500;
  color:var(--muted); text-decoration:none; transition:color .18s; }
.lw-header .nav-links a:hover,.lw-header .nav-links a[aria-current="page"]{ color:var(--ink); }
.lw-header .nav-cta{ display:flex; align-items:center; gap:14px; }

/* the header CTA — "living" pill: heartbeat dot + scan-line shine + breathing glow */
.lw-header .lw-pulse,.lw-footer .lw-pulse{ position:relative; overflow:hidden;
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--body); font-size:14px; font-weight:600; letter-spacing:-.005em; padding:9px 17px 9px 14px; border-radius:999px;
  color:var(--accent-ink); text-decoration:none;
  background:linear-gradient(135deg, oklch(0.56 0.13 163), var(--accent) 52%, oklch(0.46 0.115 163));
  box-shadow:0 1px 2px oklch(0.24 0.012 80 / .14), 0 6px 20px -8px var(--mint-glow);
  transition:transform .18s, box-shadow .25s, filter .2s; animation:lwPulse 2.4s ease-in-out infinite; }
/* live heartbeat status dot */
.lw-header .lw-pulse::before,.lw-footer .lw-pulse::before{ content:''; flex:none; width:7px; height:7px; border-radius:50%;
  background:oklch(0.93 0.17 163); box-shadow:0 0 6px oklch(0.87 0.19 163 / .95);
  animation:lwLiveDot 1.6s ease-in-out infinite; }
/* scan-line shine sweeping across */
.lw-header .lw-pulse::after,.lw-footer .lw-pulse::after{ content:''; position:absolute; top:0; bottom:0; left:0; width:42%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.5), transparent);
  transform:translateX(-160%); animation:lwScan 3.4s ease-in-out infinite; pointer-events:none; }
.lw-header .lw-pulse:hover,.lw-footer .lw-pulse:hover{ transform:translateY(-1px) scale(1.025);
  box-shadow:0 2px 4px oklch(0.24 0.012 80 / .16), 0 14px 32px -10px var(--mint-glow), 0 0 0 3px oklch(0.87 0.19 163 / .25);
  filter:brightness(1.06); }
@keyframes lwPulse{
  0%,100%{ box-shadow:0 1px 2px oklch(0.24 0.012 80 / .14), 0 6px 20px -8px var(--mint-glow), 0 0 0 0 oklch(0.87 0.19 163 / .5); }
  50%{ box-shadow:0 1px 2px oklch(0.24 0.012 80 / .14), 0 6px 20px -8px var(--mint-glow), 0 0 0 7px oklch(0.87 0.19 163 / 0); }
}
@keyframes lwLiveDot{
  0%,100%{ transform:scale(1); box-shadow:0 0 6px oklch(0.87 0.19 163 / .95), 0 0 0 0 oklch(0.87 0.19 163 / .6); }
  50%{ transform:scale(1.28); box-shadow:0 0 9px oklch(0.9 0.19 163 / 1), 0 0 0 4px oklch(0.87 0.19 163 / 0); }
}
@keyframes lwScan{ 0%{ transform:translateX(-160%); } 60%,100%{ transform:translateX(360%); } }

/* mobile hamburger (light card panel) */
.lw-header .m-nav{ display:none; }
@media (max-width:900px){
  .lw-header .nav-links{ display:none; }
  .lw-header .nav-cta>.lw-pulse{ display:none; }
  .lw-header .m-nav{ display:block; position:relative; }
  .lw-header .m-nav summary{ list-style:none; cursor:pointer; display:flex; flex-direction:column;
    justify-content:center; gap:5px; width:42px; height:42px; padding:0 11px; box-sizing:border-box;
    border:1px solid var(--line); border-radius:9px; background:var(--surface); box-shadow:var(--shadow-sm); }
  .lw-header .m-nav summary>span{ display:block; height:2px; width:100%; background:var(--ink); border-radius:2px;
    transition:transform .28s cubic-bezier(.4,0,.2,1), opacity .2s ease; }
  .lw-header .m-nav[open] summary>span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .lw-header .m-nav[open] summary>span:nth-child(2){ opacity:0; }
  .lw-header .m-nav[open] summary>span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .lw-header .m-nav summary::-webkit-details-marker{ display:none; }
  .lw-header .m-nav .panel{ position:absolute; right:0; top:48px; min-width:236px; padding:10px;
    background:var(--surface); border:1px solid var(--line); border-radius:6px;
    box-shadow:var(--shadow-lg); }
  .lw-header .m-nav .panel a{ display:block; padding:12px 14px; border-radius:6px;
    color:var(--muted); font-family:var(--body); font-size:15px; font-weight:500; text-decoration:none; }
  .lw-header .m-nav .panel a:hover{ background:var(--surface-2); color:var(--ink); }
  .lw-header .m-nav .panel .lw-pulse{ width:100%; display:inline-flex; justify-content:center; margin-top:8px;
    animation:none; background:var(--accent); color:#fff; }
  .lw-header .m-nav .panel .lw-pulse:hover{ background:var(--accent-hover); color:#fff; }
}

/* ---------------- 16 · footer (new-system pages, light) ---------------- */
.lw-footer{ border-top:1px solid var(--line); padding:clamp(48px,7vw,72px) 0 40px; }
.lw-footer .lw-foot-hero{ display:flex; align-items:center; justify-content:space-between; gap:24px;
  flex-wrap:wrap; padding-bottom:clamp(32px,5vw,48px); margin-bottom:clamp(32px,5vw,48px);
  border-bottom:1px solid var(--line); }
.lw-footer .lw-foot-hero-line{ font-family:var(--serif); font-style:normal; font-weight:400;
  font-size:clamp(30px,5vw,52px); line-height:1; letter-spacing:-.01em; color:var(--ink); margin:0; }
.lw-footer .lw-foot-hero-line em{ font-family:var(--serif); font-style:italic; }
.lw-footer .lw-foot-hero-cta{ flex:none; }
.lw-footer .lw-foot-top{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:32px 24px; }
.lw-footer .lw-foot-brand{ display:flex; flex-direction:column; gap:14px; }
.lw-footer .lw-foot-brand img{ height:22px; width:auto; }
.lw-footer .lw-foot-tag{ color:var(--muted); font-size:15px; max-width:34ch; margin:0; }
.lw-footer .lw-foot-sign,.lw-footer .lw-foot-sign-brand{ font-family:var(--mono); font-size:12px; color:var(--faint);
  margin:0; display:inline-flex; align-items:center; gap:9px; }
.lw-footer .lw-foot-sign-brand{ margin:6px 0 0; }
.lw-footer h3,.lw-footer h4{ font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink); margin:0 0 14px; }
.lw-footer .lw-foot-col a{ display:block; font-size:14px; line-height:2.1; color:var(--muted);
  text-decoration:none; transition:color .18s; }
.lw-footer .lw-foot-col a:hover{ color:var(--accent); }
.lw-footer .lw-foot-loc{ display:inline-flex; align-items:center; gap:9px; }
.lw-footer .lw-foot-places{ display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px;
  margin-top:36px; padding-top:26px; border-top:1px solid var(--line); }
.lw-footer .lw-foot-places-label{ font-family:var(--mono); font-size:11px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink); margin-right:6px; }
.lw-footer .lw-foot-places a{ font-size:13px; color:var(--muted); text-decoration:none; transition:color .18s; }
.lw-footer .lw-foot-places a:hover{ color:var(--accent); }
.lw-footer .lw-foot-places .sep{ color:var(--line); }
.lw-footer .lw-foot-bot{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  margin-top:36px; padding-top:26px; border-top:1px solid var(--line);
  font-family:var(--mono); font-size:12px; color:var(--faint); }
.lw-footer .lw-foot-links{ display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; }
.lw-footer .lw-foot-links a{ color:var(--faint); text-decoration:none; transition:color .18s; }
.lw-footer .lw-foot-links a:hover{ color:var(--accent); }
.lw-footer .lw-foot-links .sep{ color:var(--line); }
@media (max-width:820px){
  .lw-footer .lw-foot-top{ grid-template-columns:1fr 1fr; }
  .lw-footer .lw-foot-brand{ grid-column:1 / -1; }
}
@media (max-width:520px){
  .lw-footer .lw-foot-top{ grid-template-columns:1fr; }
}

/* ---------------- 17 · FAQ (matches site .faq / .pm contract) ---------------- */
.faq{ max-width:840px; margin-top:30px; }
.faq details{ border-top:1px solid var(--line); padding:6px 0; }
.faq details:last-child{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  gap:18px; padding:20px 2px; font-family:var(--body); font-weight:600; font-size:clamp(16px,1.8vw,18px);
  color:var(--ink); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:focus-visible{ outline:2px solid var(--accent); outline-offset:4px; border-radius:4px; }
.faq summary .pm{ font-family:var(--mono); font-size:22px; color:var(--muted); flex:none;
  transition:transform .2s ease, color .2s ease; }
.faq details[open] summary .pm{ transform:rotate(45deg); color:var(--accent); }
.faq .ans{ padding:0 2px 24px; color:var(--muted); font-size:15.5px; line-height:1.7; max-width:68ch; }

/* ---------------- 18 · sb- receipts / dashboard (light overrides) ---------------- */
/* Scoped to .living so legacy snowball.css is untouched. Receipts render
   light-on-dark inside .lw-dark-panel; dashboard is light .lw-frame content. */

/* receipts terminal rows (inside .lw-dark-panel) */
.living .sb-receipt{ display:grid; grid-template-columns:auto 1fr auto; align-items:center;
  gap:12px; padding:10px 4px; border-bottom:1px solid oklch(0.32 0.01 80);
  font-family:var(--mono); font-size:13px; color:oklch(0.9 0.006 80); list-style:none; }
.living .sb-receipt:last-child{ border-bottom:0; }
.living .sb-r-type{ font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  padding:3px 9px; border-radius:999px; white-space:nowrap;
  border:1px solid transparent; }
.living .sb-receipt.is-heal .sb-r-type{ color:oklch(0.86 0.16 163);
  background:oklch(0.86 0.16 163 / .12); border-color:oklch(0.86 0.16 163 / .3); }      /* HEALED = mint */
.living .sb-receipt.is-catch .sb-r-type{ color:oklch(0.8 0.13 75);
  background:oklch(0.8 0.13 75 / .12); border-color:oklch(0.8 0.13 75 / .3); }           /* CAUGHT = amber */
.living .sb-receipt.is-improve .sb-r-type{ color:oklch(0.78 0.11 235);
  background:oklch(0.78 0.11 235 / .12); border-color:oklch(0.78 0.11 235 / .3); }       /* IMPROVED = sky */
.living .sb-r-text{ color:oklch(0.9 0.006 80); overflow:hidden; text-overflow:ellipsis; }
.living .sb-r-tag{ font-size:11px; color:oklch(0.86 0.16 163); white-space:nowrap; }     /* "Tim approved" mint */
.living .sb-r-tag.sb-r-queued{ color:oklch(0.72 0.01 80); }                              /* queued = neutral */
.living .sb-receipt.is-new{ animation:lw-receipt-in .5s cubic-bezier(.16,1,.3,1); }
@keyframes lw-receipt-in{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

/* dashboard [data-sb-dash] rendered as light .lw-frame content */
.living .sb-dc-head{ display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:0 0 14px; margin-bottom:14px; border-bottom:1px solid var(--line-2); }
.living .sb-dc-head .t{ display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:13px; color:var(--muted); }
.living .sb-dc-stat{ font-family:var(--mono); font-weight:600; font-variant-numeric:tabular-nums;
  color:var(--ink); }
.living [data-count]{ font-family:var(--mono); font-weight:600; font-variant-numeric:tabular-nums;
  color:var(--ink); }
.living [data-sb-revenue]{ color:var(--accent); }
/* mint chart bars */
.living .sb-dc-chart{ display:flex; align-items:flex-end; gap:6px; height:64px; }
.living .sb-dc-bar{ flex:1; min-width:5px; border-radius:3px 3px 0 0;
  background:linear-gradient(180deg, var(--accent-bright), var(--accent));
  height:0; transition:height .7s cubic-bezier(.16,1,.3,1); }
.living .sb-dc-row{ display:flex; align-items:center; gap:10px; padding:8px 0;
  font-family:var(--mono); font-size:13px; color:var(--muted); list-style:none;
  border-top:1px solid var(--line-2); }
.living .sb-dc-row .tag{ font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:2px 8px; border-radius:999px; white-space:nowrap;
  color:var(--accent); background:oklch(0.55 0.13 163 / .1); }
.living .sb-dc-row .tag.out{ color:var(--amber); background:oklch(0.62 0.13 70 / .12); }
.living .sb-dc-row .txt{ color:var(--ink); }
.living .sb-dc-foot{ margin-top:14px; padding-top:12px; border-top:1px solid var(--line-2);
  font-family:var(--mono); font-size:12px; color:var(--faint); }
.living .sb-dc-row.is-new{ animation:lw-receipt-in .5s cubic-bezier(.16,1,.3,1); }
.living [data-sb-dash].is-personal{ animation:lw-dash-flash .6s ease; }
@keyframes lw-dash-flash{ 0%{ box-shadow:0 0 0 0 var(--mint-glow); } 100%{ box-shadow:0 0 0 0 oklch(0.87 0.19 163 / 0); } }

/* ---------------- 19 · reduced motion ---------------- */
@media (prefers-reduced-motion: reduce){
  .living *{ scroll-behavior:auto !important; }
  .lw-btn,.lw-bento-card,.lw-header .lw-pulse{ transition:none; }
  .lw-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .lw-pulse-dot,.lw-pulse-ring,.lw-live{ animation:none !important; box-shadow:none !important; }
  .lw-header .lw-pulse,.lw-footer .lw-pulse,
  .lw-header .lw-pulse::before,.lw-footer .lw-pulse::before,
  .lw-header .lw-pulse::after,.lw-footer .lw-pulse::after{ animation:none !important; }
  .lw-odo-reel{ transition:none !important; }
  .lw-logowall.is-marquee .lw-logo-track{ animation:none !important; }
  .lw-logowall.is-marquee{ flex-wrap:wrap; overflow:visible;
    -webkit-mask-image:none; mask-image:none; }
  .lw-logowall.is-marquee .lw-logo-track{ flex-wrap:wrap; padding-right:0; }
  .living .sb-receipt.is-new,.living .sb-dc-row.is-new,
  .living [data-sb-dash].is-personal{ animation:none !important; }
  .living .sb-dc-bar{ transition:none !important; }
}
