:root {
  --tabs-dur: 250ms;
  --tabs-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tabs-text-muted: rgba(15, 15, 15, 0.8);
  --tabs-text-active: #0f0f0f;
  --tabs-bar-bg: #f1f1f1;
  --tabs-pill-bg: #ffffff;
}

/* The bar is just a flex container with padding for the pill
   to sit inside. Tabs sit on z-index: 1, the pill on z-index: 0,
   so labels read above the pill background. */
.t-tabs {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px;
  border-radius: 48px;
  background: var(--tabs-bar-bg);
}
.t-tab {
  position: relative;
  appearance: none;
  border: 0;
  background: transparent;
  height: 30px;
  padding: 4px 12px;
  color: var(--tabs-text-muted);
  cursor: pointer;
  border-radius: 48px;
  z-index: 1;
  transition: color var(--tabs-dur) var(--tabs-ease);
}
.t-tab:not([aria-selected="true"]):hover,
.t-tab[aria-selected="true"] {
  color: var(--tabs-text-active);
}

/* The pill: width + transform are written inline by JS so
   the transition tweens between the previous and next
   measured positions. */
.t-tabs-pill {
  position: absolute;
  top: 3px;
  left: 0;
  height: 30px;
  width: 0;
  background: var(--tabs-pill-bg);
  border-radius: 48px;
  transform: translateX(0);
  transition:
    transform var(--tabs-dur) var(--tabs-ease),
    width     var(--tabs-dur) var(--tabs-ease);
  will-change: transform, width;
  z-index: 0;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .t-tabs-pill, .t-tab { transition: none !important; }
}

:root{--theme-fade-duration:1200ms;--tabs-dur:400ms;--tabs-ease:cubic-bezier(.22,1,.36,1)}
.header-actions{display:flex;align-items:center;gap:28px}
.theme-control{display:flex;align-items:center;gap:0;border:1px solid #FFFFFF38;border-radius:99px;background:#FFFFFF05;flex-shrink:0;--tabs-bar-bg:transparent;--tabs-pill-bg:#FFFFFF20;--tabs-text-muted:#FFFFFF91;--tabs-text-active:#FFF}
.theme-control[hidden]{display:none}
.theme-pill{border:0;box-shadow:none}
.theme-pill .t-tab{width:40px;height:40px;padding:10px;display:grid;place-items:center}
.theme-pill .t-tabs-pill{height:40px;border:0;box-shadow:none}
.theme-pill svg{width:19px;height:19px;transition:transform 400ms var(--tabs-ease)}
.theme-pill [data-current=true]{color:#FFF}.theme-pill [data-current=true] svg{transform:rotate(-8deg)}
.theme-control button:focus-visible,.header-actions nav a:focus-visible{outline:2px solid #FFF;outline-offset:4px}
.luminous-home .header-actions nav{padding:0;background:transparent;gap:7px}
.luminous-home .header .header-actions nav>a{display:inline-flex;align-items:center;min-height:46px;padding:0 2px;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:opacity 250ms}
.luminous-home .header .header-actions nav>a:hover{background:transparent;opacity:.78}
.luminous-home .header-actions .contact-link{gap:12px}
.luminous-home .chapter-nav{gap:4px;padding:4px 6px;border-color:color-mix(in srgb,var(--ink) 17%,transparent)}
.luminous-home .chapter-nav a{padding:0 18px;border:1px solid transparent;border-radius:99px;transition:background 400ms,border-color 400ms,color 400ms,transform 250ms var(--tabs-ease)}
.luminous-home .chapter-nav a::after{display:none}
.luminous-home .chapter-nav a[aria-current=location]{border-color:color-mix(in srgb,var(--ink) 16%,transparent);background:color-mix(in srgb,var(--ink) 6%,transparent)}
.luminous-home .chapter-nav a:hover{background:color-mix(in srgb,var(--ink) 6%,transparent);transform:translateY(-1px)}
.theme-photo-veil{position:absolute;inset:0;z-index:1;pointer-events:none}
.theme-smooth body,.theme-smooth .chapter,.theme-smooth .chapter-nav{transition:background-color var(--theme-fade-duration) ease-in-out,color var(--theme-fade-duration) ease-in-out,border-color var(--theme-fade-duration) ease-in-out}
@media(max-width:850px){
 .luminous-home .header{padding-inline:16px;gap:10px}.header-actions{gap:14px}
 .luminous-home .header .brand{width:96px;flex-shrink:0}
 .luminous-home .header .header-actions nav>a:not(.contact-link){display:none}
 .luminous-home .header-actions .contact-link{width:44px;min-height:44px;justify-content:center;padding:0;gap:0}
 .header-actions .contact-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .theme-pill .t-tab{width:36px}.theme-pill svg{width:18px;height:18px}
 .luminous-home .chapter-nav{gap:2px;padding:4px}.luminous-home .chapter-nav a{padding-inline:8px;font-size:.56rem}
}
@media(prefers-reduced-motion:reduce){.theme-smooth body,.theme-smooth .chapter,.theme-smooth .chapter-nav,.theme-pill svg,.theme-control button,.header-actions nav>a,.luminous-home .chapter-nav a{transition:none!important}}
@media print{.theme-control{display:none}}

/* A stronger closing line and a fine, continuously lit architectural edge. */
.luminous-home .closing-panel>.bridge-caption{left:24px;right:24px;bottom:32px;max-width:none;text-align:center;font-size:clamp(.88rem,1.4vw,1.2rem);font-weight:500;letter-spacing:-.015em;line-height:1.5;text-shadow:0 2px 14px #06111FE6}
@media(max-width:850px){.luminous-home .closing-panel>.bridge-caption{left:24px;right:24px;bottom:29px;font-size:.87rem}}

.dv-connect-explanation .google-authorization{display:flex;align-items:center;gap:12px;margin-top:18px;line-height:1.7}
.google-mark{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;background:#FFF;border:1px solid #E1E3E1;border-radius:50%}.google-mark img{width:24px;height:24px;object-fit:contain}

/* Secondary copy stays legible over the night smoke. */
:root[data-theme=dark]{--page-muted:#D6DCE8;--lab-muted:#D6DCE8}
:root[data-theme=dark] .journey-world{--muted:#E1E7F0}
:root[data-theme=dark] .journey-caption>p,:root[data-theme=dark] .journey-map .map-label,:root[data-theme=dark] .owned-note{text-shadow:0 1px 12px #07142480}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--page-muted:#D6DCE8;--lab-muted:#D6DCE8}:root:not([data-theme=light]) .journey-world{--muted:#E1E7F0}}

/* A balanced home header: brand / theme / contact. */
.luminous-home .header .theme-control{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#0B162333;border-color:#FFFFFF59;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.luminous-home .header .header-actions nav>a.contact-link{padding:0 21px;min-height:44px;border:1px solid #FFFFFFB3;border-radius:99px;color:#16225E;background:#F7F8F1F2;gap:12px;font-weight:500;box-shadow:0 4px 18px #07142417;transition:background 250ms,transform 250ms}
.luminous-home .header .header-actions nav>a.contact-link:hover{opacity:1;background:#FFF;transform:translateY(-1px)}
.header-actions .contact-label{position:static;width:auto;height:auto;overflow:visible;clip-path:none}
@media(max-width:850px){.luminous-home .header .header-actions nav>a.contact-link{width:auto;padding:0 13px;gap:8px;font-size:.63rem}.theme-pill .t-tab{width:36px}}
@media(max-width:380px){.luminous-home .header .brand{width:84px}.luminous-home .header .header-actions nav>a.contact-link{padding-inline:11px;font-size:.59rem}.theme-pill .t-tab{width:32px}}
/* One navigation at a time, with no separate strip between chapters. */
.passages-enabled .luminous-home .chapter-nav{position:fixed;left:50%;top:14px;transform:translate(-50%,-7px);margin:0;z-index:30;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 450ms ease,transform 450ms cubic-bezier(.22,1,.36,1),visibility 450ms}
.passages-enabled:not([data-story-phase=top]) .luminous-home .chapter-nav{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.luminous-home .intelligence-section{margin-top:0;border-radius:0}
.journey-enabled .journey .hero::after{content:'';position:absolute;left:0;right:0;bottom:0;height:min(38vh,280px);background:linear-gradient(transparent,var(--paper));opacity:var(--journey-exit,0);z-index:1;pointer-events:none}
.intelligence-atmosphere{mask-image:linear-gradient(to bottom,transparent,#000 180px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 180px)}
@media(prefers-reduced-motion:reduce){.passages-enabled .luminous-home .chapter-nav{transition:none}.luminous-home .header .header-actions nav>a.contact-link{transition:none}}

/* Clip the sticky scene without creating an inner scroll area for keyboard focus. */
.journey-enabled .luminous-home .journey .hero{overflow:clip}
