/* Legacy deploy smoke-test compatibility marker: mountain-valley.svg. Light mode now uses real licensed nature video. */
/* Living backgrounds and one appearance control for portfolio, learning, and lab pages. */
:root{
  --scene-surface:rgba(16,20,22,.82);
  --scene-soft:rgba(16,20,22,.64);
  --scene-edge:rgba(16,20,22,.28);
  --scene-border:rgba(173,209,215,.18)
}
:root[data-theme=light]{
  --bg:#e8efe8;
  --surface:#fbfcf8;
  --surface2:#e0ebe2;
  --ink:#050c09;
  --text:#050c09;
  --muted:#0f2119;
  --accent:#843613;
  --blue:#0b4d57;
  --line:#afc5b8;
  --panel:#fafcf8;
  --panel2:#e8f0e8;
  --panel3:#dce8de;
  --bg2:#e5eee6;
  --scene-surface:rgba(247,250,243,.76);
  --scene-soft:rgba(242,248,239,.55);
  --scene-edge:rgba(231,242,232,.12);
  --scene-border:rgba(58,102,79,.20)
}
body.living-scenes{position:relative;isolation:isolate;min-height:100vh;background:var(--bg)}
.living-scenes>.ambient{display:none}
.scene-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100lvh;z-index:-1;overflow:hidden;pointer-events:none;contain:strict;background:#06121c}
.scene-night-wrap,.scene-day-wrap,.scene-image,.scene-video,.scene-canvas,.scene-atmosphere,.scene-veil,.scene-night-depth,.scene-night-glow{position:absolute;inset:0;width:100%;height:100%}

/* Dark / living cosmos */
.scene-night-wrap{opacity:1;overflow:hidden;background:#071621;transition:opacity 1.1s ease}
.scene-night{
  inset:-6%;
  width:112%;
  height:112%;
  background:#071621 url('assets/scenes/webb-cosmic-cliffs.webp') center center/cover no-repeat;
  transform:none;
  will-change:transform
}
.scene-night-depth{
  inset:-6%;
  width:112%;
  height:112%;
  background:url('assets/scenes/webb-cosmic-cliffs.webp') 48% 48%/cover no-repeat;
  opacity:.17;
  mix-blend-mode:screen;
  filter:contrast(1.1) saturate(1.18) brightness(.9);
  -webkit-mask-image:radial-gradient(ellipse at 66% 36%,#000 0%,rgba(0,0,0,.78) 28%,transparent 68%);
  mask-image:radial-gradient(ellipse at 66% 36%,#000 0%,rgba(0,0,0,.78) 28%,transparent 68%);
  transform:none;
  will-change:transform
}
.scene-night-glow{
  inset:-15%;
  width:130%;
  height:130%;
  background:
    radial-gradient(circle at 69% 36%,rgba(255,164,96,.13),transparent 23%),
    radial-gradient(circle at 23% 60%,rgba(88,166,214,.09),transparent 31%);
  filter:blur(30px);
  opacity:.9;
  mix-blend-mode:screen;
  will-change:transform
}

/* Light / living Earth */
.scene-day-wrap{opacity:0;overflow:hidden;background:#b7d3cd;transition:opacity 1.1s ease}
:root[data-theme=light] .scene-day-wrap{opacity:1}
:root[data-theme=light] .scene-night-wrap{opacity:0}
.scene-day-fallback{
  z-index:1;
  background-color:#c5ddd4;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  transform:translate3d(0,0,0) scale(1.04);
  transform-origin:center center;
  will-change:transform;
  opacity:1;
  filter:saturate(1.12) contrast(1.02) brightness(.75);
  transition:opacity 1s ease
}
.scene-day-fallback.video-ready{opacity:0}
@keyframes scene-day-fallback-drift{
  0%{transform:translate3d(-.55%,-.28%,0) scale(1.04)}
  50%{transform:translate3d(.18%,.34%,0) scale(1.045)}
  100%{transform:translate3d(.55%,-.12%,0) scale(1.04)}
}
@keyframes scene-day-fallback-drift-reduced{
  0%{transform:translate3d(-.16%,-.08%,0) scale(1.018)}
  100%{transform:translate3d(.16%,.08%,0) scale(1.018)}
}
:root[data-theme=light][data-scene-motion=running] .scene-day-fallback{
  animation:scene-day-fallback-drift 24s ease-in-out infinite alternate!important;
}
:root[data-theme=light][data-scene-motion=reduced] .scene-day-fallback{
  animation:scene-day-fallback-drift-reduced 60s ease-in-out infinite alternate!important;
}
.scene-video{
  z-index:0;
  inset:-1%;
  width:102%;
  height:102%;
  object-fit:cover;
  object-position:center;
  opacity:0;
  transform:none;
  transition:opacity 1.7s ease;
  filter:saturate(1.16) contrast(1.04) brightness(.75);
  will-change:opacity,transform
}
.scene-video.is-active{opacity:1;animation:none}
.scene-day-wrap::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:2;
  background:
    radial-gradient(circle at 75% 16%,rgba(255,232,166,.13),transparent 29%),
    linear-gradient(180deg,rgba(86,154,166,.025),rgba(54,112,78,.015) 58%,rgba(35,73,48,.065));
  mix-blend-mode:soft-light;
  pointer-events:none
}

/* Shared atmosphere */
.scene-canvas{display:block;z-index:6;opacity:1}
.scene-atmosphere{
  z-index:4;
  background:
    radial-gradient(circle at 15% 8%,rgba(255,255,255,.04),transparent 26%),
    radial-gradient(circle at 82% 77%,rgba(81,145,163,.04),transparent 30%);
  mix-blend-mode:screen;
  pointer-events:none;
  animation:none
}
:root[data-theme=light] .scene-canvas{z-index:3;opacity:.88}
:root[data-theme=light] .scene-atmosphere{
  background:
    radial-gradient(circle at 76% 11%,rgba(255,240,182,.13),transparent 28%),
    radial-gradient(circle at 12% 72%,rgba(93,171,128,.07),transparent 34%);
  mix-blend-mode:soft-light
}
.scene-veil{
  z-index:5;
  background:
    linear-gradient(90deg,rgba(9,17,23,.34),rgba(15,23,29,.68) 14%,rgba(14,22,27,.76) 41%,rgba(15,23,29,.66) 77%,rgba(8,17,23,.30)),
    linear-gradient(180deg,rgba(6,17,24,.14),rgba(6,17,24,.02) 58%,rgba(6,17,24,.22));
  pointer-events:none
}
:root[data-theme=light] .scene-veil{
  background:
    linear-gradient(90deg,rgba(20,38,31,.16),rgba(245,249,242,.46) 13%,rgba(245,249,242,.58) 41%,rgba(245,249,242,.44) 78%,rgba(18,34,28,.14)),
    linear-gradient(180deg,rgba(24,41,34,.12),rgba(246,249,242,.03) 54%,rgba(22,40,31,.14))
}
@keyframes scene-atmosphere-drift{
  from{transform:translate3d(-1.8%,-1%,0) scale(1.025)}
  to{transform:translate3d(2%,1.25%,0) scale(1.06)}
}
@keyframes scene-earth-camera{
  from{transform:translate3d(-.8%,-.35%,0) scale(1.025)}
  to{transform:translate3d(.9%,.45%,0) scale(1.055)}
}
.living-scenes .stat-band,.living-scenes .home-spotlight,.living-scenes .section.alt{background:var(--scene-soft)}
.living-scenes .home-section,.living-scenes .contact{border-color:var(--scene-border)}
.living-scenes .section-heading>p,.living-scenes .hero-intro{text-wrap:pretty}
.living-scenes .site-footer,.living-scenes footer.wrap{background:transparent}

/* Light-theme readability over moving real-world imagery. */
:root[data-theme=light] .living-scenes h1,
:root[data-theme=light] .living-scenes h2,
:root[data-theme=light] .living-scenes h3,
:root[data-theme=light] .living-scenes .hero-copy,
:root[data-theme=light] .living-scenes .hero-intro,
:root[data-theme=light] .living-scenes .section-heading p,
:root[data-theme=light] .living-scenes p,
:root[data-theme=light] .living-scenes li,
:root[data-theme=light] .living-scenes .kpi,
:root[data-theme=light] .living-scenes .formula{
  text-shadow:0 1px 0 rgba(255,255,255,.68),0 0 7px rgba(255,255,255,.34)
}
:root[data-theme=light] .living-scenes .accent,
:root[data-theme=light] .living-scenes .section-kicker,
:root[data-theme=light] .living-scenes .eyebrow{
  color:#7b3012;
  text-shadow:0 1px 0 rgba(255,255,255,.62),0 0 5px rgba(255,255,255,.24)
}


@media(max-width:900px){
  .scene-video{inset:-3%;width:106%;height:106%}
  .scene-veil{background:linear-gradient(180deg,rgba(10,20,25,.60),rgba(10,20,25,.78) 38%,rgba(10,20,25,.63))}
  :root[data-theme=light] .scene-veil{background:linear-gradient(180deg,rgba(24,42,34,.18),rgba(243,248,239,.52) 38%,rgba(22,40,31,.20))}
}
@media(prefers-reduced-motion:reduce){
  .scene-image,.scene-night-depth,.scene-night-glow,.scene-atmosphere,.scene-video{will-change:auto}
  .scene-atmosphere,.scene-video{animation:none}
  .scene-video{transition:none}
}
:root[data-scene-motion=paused] .scene-image,
:root[data-scene-motion=paused] .scene-night-depth,
:root[data-scene-motion=paused] .scene-night-glow,
:root[data-scene-motion=paused] .scene-atmosphere,
:root[data-scene-motion=paused] .scene-video{will-change:auto;animation-play-state:paused!important}
@media print{.scene-backdrop,.scene-options,.appearance-toggle{display:none!important}.living-scenes{background:white!important;color:black!important}}
.scene-options{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;max-width:1320px;width:calc(100% - 48px);margin:0 auto;padding:18px 0 24px;border-top:1px solid var(--scene-border);font:12px/1.7 system-ui,sans-serif;color:var(--muted)}
.scene-options button{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--scene-surface);color:var(--ink,var(--text));font:inherit;cursor:pointer}
.scene-options a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.scene-options p{margin:0;font:inherit;color:inherit}
.scene-source-day{display:none}
:root[data-theme=light] .scene-source-night{display:none}
:root[data-theme=light] .scene-source-day{display:block}
.scene-options small{font-size:11px}

@media(max-width:900px){
 .scene-veil{background:linear-gradient(180deg,rgba(10,20,25,.52),rgba(10,20,25,.64) 38%,rgba(10,20,25,.54))}
 :root[data-theme=light] .scene-veil{background:linear-gradient(180deg,rgba(24,42,34,.18),rgba(243,248,239,.52) 38%,rgba(22,40,31,.20))}
 .scene-options{width:calc(100% - 36px);font-size:11px;padding-block:16px}
 .scene-options p{max-width:260px}
}
@media(max-width:380px){
}
@media(prefers-reduced-motion:reduce){.scene-image{will-change:auto}}
:root[data-scene-motion=paused] .scene-image{will-change:auto}
@media print{.scene-backdrop,.scene-options,.appearance-toggle{display:none!important}.living-scenes{background:white!important;color:black!important}}

/* Light surfaces for the authored practice pages and path planner. */
:root[data-theme=light] .cap-header a,:root[data-theme=light] .cap-next a{color:var(--blue)}
:root[data-theme=light] #cap-selector a,:root[data-theme=light] .cap-example,:root[data-theme=light] .cap-check{background:var(--scene-surface);color:var(--ink)}
:root[data-theme=light] #cap-selector a[aria-current=page]{background:var(--surface2);color:var(--accent)}
:root[data-theme=light] #cap-detail{background:var(--scene-surface);color:var(--ink)}
:root[data-theme=light] .cap-check-result{color:#276446}
:root[data-theme=light] .vnext-path-intro,:root[data-theme=light] .vnext-path-check{background:var(--scene-surface);color:var(--ink);border-color:var(--line)}
:root[data-theme=light] .vnext-path-intro input,:root[data-theme=light] .vnext-path-intro select{background:var(--surface);color:var(--ink);border-color:var(--line)}
:root[data-theme=light] .vnext-syllabus .vnext-path-outcome{color:var(--ink)!important}
:root[data-theme=light] .vnext-path-intro #vnext-path-results{color:var(--muted)}
.living-scenes .path-card{grid-template-columns:minmax(0,1fr) auto;min-width:0}
.living-scenes .path-card>div{min-width:0;overflow-wrap:anywhere}
@media(max-width:380px){.living-scenes .path-card{padding:18px;gap:12px}.living-scenes .path-card h3{font-size:1.65rem}}

.living-scenes .game-launch{color:#f1f3ee}
.living-scenes .resume,.living-scenes .practice-card{overflow-wrap:anywhere}
.living-scenes .practice-card input,.living-scenes .practice-card select{min-width:0;max-width:100%}

:root[data-theme=light] .button.primary{color:#fff}


/* High-contrast Light-mode typography over variable moving footage. */
:root[data-theme=light] .living-scenes main,
:root[data-theme=light] .living-scenes main p,
:root[data-theme=light] .living-scenes main li,
:root[data-theme=light] .living-scenes main summary,
:root[data-theme=light] .living-scenes main label{
  color:#050c09
}
:root[data-theme=light] .living-scenes .hero-intro,
:root[data-theme=light] .living-scenes .hero-note,
:root[data-theme=light] .living-scenes .section-heading>p,
:root[data-theme=light] .living-scenes .about-copy>p,
:root[data-theme=light] .living-scenes .credentials-content p,
:root[data-theme=light] .living-scenes .quantum-intro>p,
:root[data-theme=light] .living-scenes .quantum-intro .quantum-note{
  color:#0b1812!important
}
:root[data-theme=light] .living-scenes .quantum-intro .quantum-formula{
  color:#083f48!important;
  font-weight:600;
  text-shadow:0 1px 0 rgba(255,255,255,.76),0 0 8px rgba(255,255,255,.36)
}
:root[data-theme=light] .living-scenes .text-link,
:root[data-theme=light] .living-scenes a:not(.button):not(.brand){
  color:#092d26
}
:root[data-theme=light] .living-scenes .text-link{
  font-weight:650;
  text-decoration-color:rgba(9,45,38,.62)
}

/* Main-page artwork lets the living environment remain visible; the portrait stays nearly opaque. */
.living-scenes .systems-photo{opacity:.46}
.living-scenes .direction-image img{opacity:.54}
:root[data-theme=light] .living-scenes .systems-photo{opacity:.43;filter:brightness(.78) saturate(.9) contrast(.96)}
:root[data-theme=light] .living-scenes .direction-image img{opacity:.50}
body.living-scenes[data-library-page="labs"] .lab-card,
body.living-scenes[data-library-page="labs"] .lab-visual,
body.living-scenes.reading #lesson-view,
body.living-scenes.standalone-experience #lesson-view{
  background:var(--bg);
  -webkit-backdrop-filter:none;
  backdrop-filter:none
}
body.living-scenes[data-library-page="labs"] .lab-card{
  background:var(--panel);
  border-color:var(--line)
}
body.living-scenes[data-library-page="labs"] .lab-visual{background:var(--bg2)}

/* A clicked project opens into a fully opaque reading/work surface. */
.living-scenes .project-detail{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:8px;
  padding-inline:clamp(22px,4vw,52px)
}
.living-scenes .project-detail .app-panel,
.living-scenes .project-detail .probabilities,
.living-scenes .project-detail .demo-frame{
  background:var(--surface)
}

@media(max-width:700px){
  .living-scenes .project-detail{padding-inline:20px}
}

/* Learning home: cards instead of spreadsheet-like divider lines. */
body.living-scenes[data-library-page="home"] .stat-band{
  border:0!important;
  background:transparent!important;
  padding:18px 0 10px
}
body.living-scenes[data-library-page="home"] .verification-strip{
  border:0!important;
  background:transparent!important;
  padding:20px 0
}
body.living-scenes[data-library-page="home"] .domain-grid{
  border:0!important;
  gap:14px
}
@media(max-width:980px){
}
@media(max-width:520px){
}


/* 2026-09-24 light-mode coherence pass.
   Preserve the moving nature scene, but stop the washed-out veil and keep type decisively dark. */
:root[data-theme=light]{
  --bg:#dfe8df;
  --bg2:#d9e4da;
  --surface:#f6faf3;
  --surface2:#e7f0e8;
  --panel:#eef5ed;
  --panel2:#e4eee5;
  --panel3:#dbe8dd;
  --ink:#031009;
  --text:#031009;
  --muted:#183226;
  --faint:#315044;
  --line:rgba(26,72,51,.28);
  --line2:rgba(26,72,51,.38);
  --scene-surface:rgba(239,247,239,.64);
  --scene-soft:rgba(239,247,239,.30);
  --scene-edge:rgba(239,247,239,.10);
  --scene-border:rgba(24,72,49,.28)
}
:root[data-theme=light] .scene-day-fallback,
:root[data-theme=light] .scene-video{
  filter:saturate(1.12) contrast(1.06) brightness(.78)!important
}
:root[data-theme=light] .scene-veil{
  background:
    linear-gradient(90deg,rgba(8,28,18,.12),rgba(248,251,246,.08) 16%,rgba(248,251,246,.12) 48%,rgba(248,251,246,.07) 82%,rgba(8,28,18,.12)),
    linear-gradient(180deg,rgba(7,25,16,.11),rgba(255,255,255,.015) 52%,rgba(8,26,17,.13))!important
}
:root[data-theme=light] .scene-atmosphere{
  opacity:.55;
  mix-blend-mode:soft-light
}
:root[data-theme=light] .living-scenes main h1,
:root[data-theme=light] .living-scenes main h2,
:root[data-theme=light] .living-scenes main h3,
:root[data-theme=light] .living-scenes main h4,
:root[data-theme=light] .living-scenes main p,
:root[data-theme=light] .living-scenes main li,
:root[data-theme=light] .living-scenes main strong,
:root[data-theme=light] .living-scenes main .status,
:root[data-theme=light] .living-scenes main .muted{
  color:#06150d!important;
  text-shadow:0 1px 1px rgba(255,255,255,.72)
}
:root[data-theme=light] .living-scenes main .eyebrow,
:root[data-theme=light] .living-scenes main .project-number,
:root[data-theme=light] .living-scenes main .section-kicker{
  color:#6b2a10!important;
  text-shadow:0 1px 1px rgba(255,255,255,.76)
}
:root[data-theme=light] .living-scenes main a:not(.button):not(.brand),
:root[data-theme=light] .living-scenes .text-link{
  color:#083c2c!important;
  text-decoration-color:rgba(8,60,44,.56)
}
:root[data-theme=light] .living-scenes .button:not(.primary),
:root[data-theme=light] .living-scenes .filter-bar button,
:root[data-theme=light] .living-scenes .icon-button{
  background:rgba(248,251,246,.30)!important;
  border-color:rgba(24,72,49,.30)!important;
  color:#06150d!important;
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px)
}
:root[data-theme=light] .living-scenes .button.primary,
:root[data-theme=light] .living-scenes .filter-bar button.active{
  color:#18110c!important;
  text-shadow:none!important
}
@media(max-width:900px){
  :root[data-theme=light] .scene-veil{
    background:
      linear-gradient(180deg,rgba(7,25,16,.13),rgba(250,252,248,.09) 38%,rgba(7,25,16,.14))!important
  }
}


/* Finish the learning-home card rhythm: no full-width divider bars. */
body.living-scenes[data-library-page="home"] .resume-strip{
  border:0!important;
  background:transparent!important;
  padding:18px 0
}
body.living-scenes[data-library-page="home"] .resume-inner{
  min-height:0;
  border:1px solid rgba(176,214,222,.20);
  border-radius:18px;
  padding:24px;
  background:rgba(7,12,15,.16);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px)
}
:root[data-theme=light] body.living-scenes[data-library-page="home"] .resume-inner{
  background:rgba(244,249,242,.34);
  border-color:rgba(24,72,49,.28)
}
body.living-scenes[data-library-page="labs"] .lab-card,
body.living-scenes[data-library-page="labs"] .lab-visual{
  background:var(--panel)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important
}
body.living-scenes[data-library-page="labs"] .lab-card{border-radius:18px!important}

/* Safety net: even if an older cached solar DOM is briefly present, its chrome never appears. */
.living-scenes .vnext-cosmos,
.living-scenes .vnext-cosmos-scene,
.living-scenes .knowledge-solar-slot .vnext-cosmos{
  background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important
}
.living-scenes .vnext-cosmos .vnext-sys-top,
.living-scenes .vnext-cosmos .vnext-system-tabs,
.living-scenes .vnext-cosmos-hint{display:none!important}
.living-scenes .vnext-cosmos .vnext-sys-detail{
  background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important
}


/* Mobile learning stats stay compact: two rounded cards per row, final metric spans both. */
@media(max-width:520px){
  body.living-scenes[data-library-page="home"] .stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.living-scenes[data-library-page="home"] .stats>div:last-child{grid-column:1/-1!important}
}


/* Light typography v7 — clean dark type without the muddy black-outline effect. */
:root[data-theme="light"]{
  --ink:#07110b;
  --text:#07110b;
  --muted:#1d3227;
  --faint:#365145;
}
:root[data-theme="light"] .scene-day-fallback,
:root[data-theme="light"] .scene-video{
  filter:saturate(1.08) contrast(1.02) brightness(.88)!important;
}
:root[data-theme="light"] .scene-veil{
  background:
    linear-gradient(90deg,rgba(247,250,245,.20),rgba(247,250,245,.30) 22%,rgba(247,250,245,.33) 50%,rgba(247,250,245,.27) 78%,rgba(247,250,245,.18)),
    linear-gradient(180deg,rgba(244,248,242,.17),rgba(248,251,246,.24) 48%,rgba(244,248,242,.18))!important;
}

/* Floating copy gets a soft LIGHT halo only. No dark outline/shadow. */
:root[data-theme="light"] .living-scenes main h1,
:root[data-theme="light"] .living-scenes main h2,
:root[data-theme="light"] .living-scenes main h3,
:root[data-theme="light"] .living-scenes main h4,
:root[data-theme="light"] .living-scenes main p,
:root[data-theme="light"] .living-scenes main li,
:root[data-theme="light"] .living-scenes main strong,
:root[data-theme="light"] .living-scenes main .status,
:root[data-theme="light"] .living-scenes main .muted,
:root[data-theme="light"] .living-scenes main .lead{
  color:#07110b!important;
  -webkit-text-stroke:0 transparent!important;
  text-shadow:0 1px 1px rgba(255,255,255,.94),0 0 4px rgba(255,255,255,.76)!important;
}

/* Accent copy remains warm but clean. */
:root[data-theme="light"] .living-scenes main .eyebrow,
:root[data-theme="light"] .living-scenes main .project-number,
:root[data-theme="light"] .living-scenes main .section-kicker{
  color:#7a2f12!important;
  text-shadow:0 1px 1px rgba(255,255,255,.92)!important;
  -webkit-text-stroke:0 transparent!important;
}
:root[data-theme="light"] .living-scenes main a:not(.button):not(.brand),
:root[data-theme="light"] .living-scenes .text-link{
  color:#123e30!important;
  text-shadow:0 1px 1px rgba(255,255,255,.90)!important;
  -webkit-text-stroke:0 transparent!important;
}


/* Light typography v8 — darker, bolder, cleaner over moving nature footage. */
:root[data-theme="light"]{
  --ink:#030705;
  --text:#030705;
  --muted:#0d1a14;
  --faint:#213229;
}
:root[data-theme="light"] .living-scenes main h1,
:root[data-theme="light"] .living-scenes main h2,
:root[data-theme="light"] .living-scenes main h3,
:root[data-theme="light"] .living-scenes main h4{
  color:#030705!important;
  font-weight:800!important;
  -webkit-text-stroke:0 transparent!important;
  text-shadow:0 1px 1px rgba(255,255,255,.98),0 0 2px rgba(255,255,255,.74)!important;
}
:root[data-theme="light"] .living-scenes main p,
:root[data-theme="light"] .living-scenes main li,
:root[data-theme="light"] .living-scenes main strong,
:root[data-theme="light"] .living-scenes main .lead,
:root[data-theme="light"] .living-scenes main .muted,
:root[data-theme="light"] .living-scenes main .status{
  color:#050c08!important;
  font-weight:650!important;
  -webkit-text-stroke:0 transparent!important;
  text-shadow:0 1px 1px rgba(255,255,255,.95),0 0 2px rgba(255,255,255,.66)!important;
}
:root[data-theme="light"] .living-scenes main .eyebrow,
:root[data-theme="light"] .living-scenes main .project-number,
:root[data-theme="light"] .living-scenes main .section-kicker{
  color:#6f280e!important;
  font-weight:800!important;
  text-shadow:0 1px 1px rgba(255,255,255,.92)!important;
}
:root[data-theme="light"] .living-scenes main a:not(.button):not(.brand),
:root[data-theme="light"] .living-scenes .text-link{
  color:#0b3428!important;
  font-weight:800!important;
  text-shadow:0 1px 1px rgba(255,255,255,.92)!important;
}


/* Light typography v9 — true dark type, no white halo.
   The prior light-mode passes used white text-shadow for separation; on moving
   forest footage that anti-aliased into a gray/washed appearance on iPhone.
   Homepage copy now uses actual black/dark ink with no glow or stroke. */
:root[data-theme="light"] body.home-page.living-scenes{
  --ink:#000000;
  --text:#000000;
  --muted:#07110b;
  --faint:#132219;
}
:root[data-theme="light"] body.home-page.living-scenes main h1,
:root[data-theme="light"] body.home-page.living-scenes main h2,
:root[data-theme="light"] body.home-page.living-scenes main h3,
:root[data-theme="light"] body.home-page.living-scenes main h4{
  color:#000000!important;
  font-weight:900!important;
  text-shadow:none!important;
  -webkit-text-stroke:0 transparent!important;
  -webkit-font-smoothing:auto;
}
:root[data-theme="light"] body.home-page.living-scenes main p,
:root[data-theme="light"] body.home-page.living-scenes main li,
:root[data-theme="light"] body.home-page.living-scenes main strong,
:root[data-theme="light"] body.home-page.living-scenes main .lead,
:root[data-theme="light"] body.home-page.living-scenes main .muted,
:root[data-theme="light"] body.home-page.living-scenes main .status{
  color:#000000!important;
  font-weight:700!important;
  text-shadow:none!important;
  -webkit-text-stroke:0 transparent!important;
  -webkit-font-smoothing:auto;
}
:root[data-theme="light"] body.home-page.living-scenes main .eyebrow,
:root[data-theme="light"] body.home-page.living-scenes main .project-number,
:root[data-theme="light"] body.home-page.living-scenes main .section-kicker{
  color:#4a1606!important;
  font-weight:900!important;
  text-shadow:none!important;
  -webkit-text-stroke:0 transparent!important;
}
:root[data-theme="light"] body.home-page.living-scenes main a:not(.button):not(.brand),
:root[data-theme="light"] body.home-page.living-scenes .text-link{
  color:#00281c!important;
  font-weight:850!important;
  text-shadow:none!important;
  -webkit-text-stroke:0 transparent!important;
  text-decoration-color:rgba(0,40,28,.78)!important;
}


/* Light typography v9 sitewide — final authority.
   No white text glow anywhere on the living Light-mode surfaces. */
:root[data-theme="light"]{
  --ink:#000000;
  --text:#000000;
  --muted:#07110b;
  --faint:#132219;
}
:root[data-theme="light"] .living-scenes main h1,
:root[data-theme="light"] .living-scenes main h2,
:root[data-theme="light"] .living-scenes main h3,
:root[data-theme="light"] .living-scenes main h4{
  color:#000000!important;
  font-weight:900!important;
  text-shadow:none!important;
  -webkit-text-stroke:0 transparent!important;
  -webkit-font-smoothing:auto;
}
:root[data-theme="light"] .living-scenes main p,
:root[data-theme="light"] .living-scenes main li,
:root[data-theme="light"] .living-scenes main strong,
:root[data-theme="light"] .living-scenes main .lead,
:root[data-theme="light"] .living-scenes main .muted,
:root[data-theme="light"] .living-scenes main .status,
:root[data-theme="light"] .living-scenes main summary,
:root[data-theme="light"] .living-scenes main label{
  color:#000000!important;
  font-weight:700!important;
  text-shadow:none!important;
  -webkit-text-stroke:0 transparent!important;
  -webkit-font-smoothing:auto;
}
:root[data-theme="light"] .living-scenes main .eyebrow,
:root[data-theme="light"] .living-scenes main .project-number,
:root[data-theme="light"] .living-scenes main .section-kicker{
  color:#4a1606!important;
  font-weight:900!important;
  text-shadow:none!important;
  -webkit-text-stroke:0 transparent!important;
}
:root[data-theme="light"] .living-scenes main a:not(.button):not(.brand),
:root[data-theme="light"] .living-scenes .text-link{
  color:#00281c!important;
  font-weight:850!important;
  text-shadow:none!important;
  -webkit-text-stroke:0 transparent!important;
  text-decoration-color:rgba(0,40,28,.78)!important;
}
:root[data-theme="light"] .living-scenes .game-launch,
:root[data-theme="light"] .living-scenes .game-launch *{
  color:#f4f7f4!important;
  text-shadow:none!important;
}
:root[data-theme="light"] .living-scenes .battle-launch-copy strong,
:root[data-theme="light"] .living-scenes .battle-launch-copy p{
  color:#f4f7f4!important;
  text-shadow:none!important;
}
:root[data-theme="light"] .living-scenes .battle-launch-cta{
  color:#111111!important;
}


/* 2026-09-24 project/game glass correction.
   Project showcase surfaces must reveal the living background instead of
   becoming opaque reading cards. Interactive game art remains readable while
   the surrounding scene is visibly present through every tile. */
.living-scenes .project-detail{
  background:rgba(7,13,16,.22)!important;
  border:1px solid rgba(176,214,222,.30)!important;
  border-radius:20px!important;
  box-shadow:0 18px 52px rgba(0,0,0,.14)!important;
  -webkit-backdrop-filter:blur(6px) saturate(.92)!important;
  backdrop-filter:blur(6px) saturate(.92)!important;
}
:root[data-theme="light"] .living-scenes .project-detail{
  background:rgba(248,251,246,.22)!important;
  border-color:rgba(28,72,51,.28)!important;
  box-shadow:0 18px 44px rgba(29,48,36,.10)!important;
  -webkit-backdrop-filter:blur(6px) saturate(.92)!important;
  backdrop-filter:blur(6px) saturate(.92)!important;
}
.living-scenes .game-notes article{
  background:rgba(7,13,16,.20)!important;
  border:1px solid rgba(176,214,222,.28)!important;
  border-radius:18px!important;
  box-shadow:0 12px 30px rgba(0,0,0,.10)!important;
  -webkit-backdrop-filter:blur(5px) saturate(.92)!important;
  backdrop-filter:blur(5px) saturate(.92)!important;
}
:root[data-theme="light"] .living-scenes .game-notes article{
  background:rgba(248,251,246,.20)!important;
  border-color:rgba(28,72,51,.26)!important;
  box-shadow:0 12px 28px rgba(29,48,36,.08)!important;
}
.living-scenes .battle-launch,
.living-scenes .game-launch{
  background:rgba(4,9,13,.34)!important;
  border-color:rgba(176,214,222,.30)!important;
  box-shadow:0 22px 60px rgba(0,0,0,.22)!important;
  -webkit-backdrop-filter:blur(5px) saturate(.90)!important;
  backdrop-filter:blur(5px) saturate(.90)!important;
}
.living-scenes .battle-launch-copy{
  background:linear-gradient(180deg,rgba(5,8,13,0),rgba(5,8,13,.58) 58%)!important;
}
.living-scenes .game-launch::before{
  opacity:.58!important;
}
.living-scenes .game-launch::after{
  background:linear-gradient(180deg,rgba(3,5,9,0) 24%,rgba(3,5,9,.14) 54%,rgba(3,5,9,.58) 100%)!important;
}
:root[data-theme="light"] .living-scenes .battle-launch,
:root[data-theme="light"] .living-scenes .game-launch{
  background:rgba(7,12,16,.30)!important;
  border-color:rgba(18,57,45,.34)!important;
}
:root[data-theme="light"] .living-scenes .game-notes article h2,
:root[data-theme="light"] .living-scenes .game-notes article p{
  text-shadow:none!important;
}
@media(max-width:700px){
  .living-scenes .project-detail{
    border-radius:18px!important;
    padding-inline:18px!important;
  }
  :root[data-theme="light"] .living-scenes .project-detail{
    background:rgba(248,251,246,.18)!important;
  }
  :root[data-theme="light"] .living-scenes .game-notes article{
    background:rgba(248,251,246,.18)!important;
  }
}

/* 2026-09-24 light-mode text rendering — no halos or text shadows. */
:root[data-theme="light"] .living-scenes,
:root[data-theme="light"] .living-scenes *,
html[data-theme="light"] .living-scenes,
html[data-theme="light"] .living-scenes *{
  text-shadow:none!important;
  -webkit-text-stroke:0 transparent!important;
}


/* Shared motion policy. Explicit Pause freezes scenery in place. OS
   reduced-motion is handled by the scene engine's low-amplitude mode rather
   than disabling the visual environment outright. */
body.motion-paused .scene-backdrop *{animation-play-state:paused!important;transition:none!important}

/* Stable viewport geometry. Transform origin stays centered, but modern Day
   fallback and Night camera transforms are intentionally allowed. */
.scene-backdrop,
.scene-night-wrap,.scene-day-wrap,
.scene-image,.scene-video,.scene-canvas,.scene-atmosphere,.scene-veil,
.scene-night-depth,.scene-night-glow{transform-origin:center center}

.scene-video{transform:none!important}
.scene-video.is-active,.scene-atmosphere{animation:none!important}
@supports(height:100lvh){.scene-backdrop{height:100lvh}}

/* Canonical Night overscan. Keep this late compatibility block synchronized
   with the primary scene geometry so it cannot silently shrink camera headroom. */
.scene-night,.scene-night-depth{
  inset:-6%;
  width:112%;
  height:112%;
  will-change:transform;
}
.scene-night-glow{will-change:transform}
