:root {
  --paper: #F8F4EE;
  --ink: #161616;
  --muted: #6F6A62;
  --line: #D9CBB8;
  --sand: #EADCC8;
  --taupe: #D9CBB8;
  --signal: #f58220;
  --navy: #1E2A6E;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); color: var(--ink); }
html[data-mode="dark"] {
  --paper: #12110F;
  --ink: #F8F4EE;
  --muted: #A8A298;
  --line: #3A332C;
  --sand: #2C2824;
  --taupe: #3A332C;
  --navy: #C9D2F5;
}
html { transition: background 280ms ease, color 280ms ease; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Schibsted Grotesk", "Segoe UI", sans-serif; font-size: 16px; line-height: 1.5; }
a { color: inherit; }
button, input, select, textarea { font-family: inherit; color: inherit; }
img { display: block; max-width: 100%; }
html[data-mode="light"] .for-dark, html[data-mode="dark"] .for-light { display: none; }
.wrap { width: min(1100px, calc(100% - 40px)); margin: 0 auto; }
.site-head { position: sticky; top: 0; z-index: 5; background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
.head-row { display: flex; align-items: center; gap: 18px; padding: 14px 0; flex-wrap: nowrap; }
.site-head img { height: 26px; width: auto; }
.nav { display: flex; gap: 16px; flex-wrap: nowrap; font-size: 14px; align-items: center; }
.nav a { text-decoration: none; }
.nav a[aria-current="page"], .nav a.is-here { color: var(--signal); font-weight: 600; }
.nav-drop { position: relative; }
.nav-drop > a { display: inline-flex; align-items: center; gap: 6px; }
.nav-drop.is-here > a { color: var(--signal); font-weight: 600; }
.nav-mark { width: 7px; height: 7px; background: #f58220; clip-path: polygon(0 0, 100% 0, 50% 100%); }
.nav-drop::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 14px; }
.nav-sub {
  position: absolute; top: calc(100% + 10px); left: -14px; min-width: 168px; padding: 6px 0;
  background: var(--paper); border: 1px solid var(--line); z-index: 2;
  opacity: 0; pointer-events: none;
}
.nav-drop:hover .nav-sub, .nav-drop:focus-within .nav-sub { opacity: 1; pointer-events: auto; }
.nav-sub a { display: block; padding: 8px 14px; }
.nav-sub a:hover { color: #f58220; }
.head-actions { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.menu-btn { display: none; }
.btn, .ghost {
  display: inline-flex; align-items: center; justify-content: center;
  height: 36px; padding: 0 14px; font-size: 13px; font-weight: 600;
  text-decoration: none; border: 1px solid transparent; cursor: pointer; background: transparent;
  position: relative; overflow: hidden;
}
.btn {
  background: linear-gradient(#d86e12, #d86e12) left center / 0 100% no-repeat, var(--signal);
  color: #141414; border-color: var(--signal); transition: background-size 220ms ease;
}
.btn:hover { background-size: 100% 100%, auto; }
a.btn, button.btn { color: #141414; }
.ghost { border-color: var(--ink); color: var(--ink); background: transparent; }
.mode {
  display: inline-flex; align-items: center; gap: 10px;
  height: 36px; padding: 0; border: 0; background: transparent; cursor: pointer; color: inherit;
}
.mode:focus-visible { outline: 2px solid #f58220; outline-offset: 4px; }
.mode [data-value] { font-size: 12px; font-weight: 700; letter-spacing: -0.01em; line-height: 1; color: var(--muted); }
html[data-mode="dark"] .mode [data-value] { color: #C8C4BC; }
html[data-mode="light"] .mode [data-value="light"],
html[data-mode="dark"] .mode [data-value="dark"] { color: #f58220; }
.mode .pill {
  position: relative; width: 54px; height: 28px; flex: none;
  border-radius: 999px; background: #f58220;
}
.mode .pill i {
  position: absolute; top: 3px; left: 3px; width: 22px; height: 22px;
  border-radius: 50%; background: #fff; transition: transform 220ms ease;
}
html[data-mode="dark"] .mode .pill i { transform: translateX(26px); }
.hero { position: relative; overflow: hidden; padding: 64px 0 36px; }
.corner { position: absolute; top: 0; right: 0; width: 140px; height: 140px; pointer-events: none; }
.corner i { position: absolute; inset: 0; }
.corner i:nth-child(1) { background: var(--sand); clip-path: polygon(38% 0, 100% 0, 100% 100%); }
.corner i:nth-child(2) { background: var(--taupe); clip-path: polygon(68% 0, 100% 0, 100% 58%); }
.corner i:nth-child(3) { background: #f58220; clip-path: polygon(100% 0, 100% 26%, 74% 0); }
.hero-copy { position: relative; z-index: 1; padding-right: 88px; }
.hero-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 10px; }
.hero-bar .kicker { margin: 0; }
.kicker { margin: 0 0 10px; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--signal); font-weight: 600; }
h1 { margin: 0 0 16px; font-size: clamp(36px, 5vw, 58px); line-height: 1.02; letter-spacing: -0.04em; font-weight: 500; max-width: 16ch; }
.lede { margin: 0 0 22px; max-width: 46ch; font-size: 18px; color: var(--muted); }
.actions { display: flex; gap: 10px; flex-wrap: wrap; }
.block { padding: 48px 0; border-top: 1px solid var(--line); }
h2 { margin: 0 0 8px; font-size: clamp(28px, 3vw, 36px); line-height: 1.1; letter-spacing: -0.03em; font-weight: 500; max-width: 22ch; }
.note { margin: 0 0 22px; max-width: 62ch; color: var(--muted); }
.chev-lead { display: grid; grid-template-columns: 54px 1fr; gap: 16px; align-items: center; margin-bottom: 16px; }
.chev-lead h2 { margin: 0; max-width: none; }
.chev { width: 54px; height: 64px; background: #f58220; clip-path: polygon(0 0, 58% 0, 100% 50%, 58% 100%, 0 100%, 42% 50%); }
.rule { display: block; width: 72px; height: 4px; background: #f58220; margin-top: 10px; }
.chev-sm { width: 28px; height: 22px; background: #f58220; margin-bottom: 10px; clip-path: polygon(0 0, 62% 0, 100% 50%, 62% 100%, 0 100%, 38% 50%); }
.chev-doors article { background: #fff; color: #161616; border-top: 8px solid var(--sand); padding: 16px 14px 18px; }
.chev-doors article:nth-child(2) { border-top-color: var(--taupe); }
.chev-doors article:nth-child(3) { border-top-color: var(--sand); }
.chev-doors p { color: #3a3a3a; }
html[data-mode="dark"] .chev-doors article { background: #1c1916; color: #F8F4EE; }
html[data-mode="dark"] .chev-doors p { color: #C8C2B8; }
.chev-bars { display: grid; gap: 8px; }
.chev-bars article { display: grid; grid-template-columns: 36px 1fr; gap: 14px; align-items: center; background: #fff; color: #161616; padding: 14px 16px; }
.chev-bars .chev-sm { width: 22px; height: 28px; margin: 0; clip-path: polygon(0 0, 58% 0, 100% 50%, 58% 100%, 0 100%, 42% 50%); }
.chev-bars strong { display: block; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.chev-bars p { margin: 2px 0 0; color: #3a3a3a; }
html[data-mode="dark"] .chev-bars article,
html[data-mode="dark"] .chev-band { background: #1c1916; color: #F8F4EE; }
html[data-mode="dark"] .chev-bars p { color: #C8C2B8; }
html[data-mode="dark"] .chev-band p { color: #F8F4EE; }
.chev-band { display: flex; gap: 16px; align-items: center; background: #fff; color: #161616; padding: 18px 16px; }
.chev-band .chev { width: 36px; height: 42px; }
.chev-band p { margin: 0; font-size: 18px; }
.doors, .three, .models { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.doors article, .three article, .model, .agenda article { border-top: 1px solid var(--ink); padding-top: 12px; }
.doors em { font-style: normal; font-weight: 600; font-size: 12px; letter-spacing: 0.08em; color: var(--signal); }
.doors h3, .three h3, .model h3, .agenda h3 { margin: 6px 0; font-size: 20px; font-weight: 500; letter-spacing: -0.02em; }
.doors p, .three p, .model p, .agenda p { margin: 0; color: var(--muted); font-size: 15px; }
.chev-doors article { background: #fff; color: #161616; border-top: 8px solid var(--sand); padding: 16px 14px 18px; }
.chev-doors article:nth-child(2) { border-top-color: var(--taupe); }
.chev-doors p { margin: 0; color: #3a3a3a; }
.start-band { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--sand); }
.start-band a { display: flex; flex-direction: column; min-height: 168px; padding: 18px 16px 16px; border-left: 1px solid var(--line); text-decoration: none; color: inherit; }
.start-band a:first-child { border-left: 0; }
.start-band strong { font-size: 18px; font-weight: 500; letter-spacing: -0.02em; }
.start-band em { display: block; margin-top: 6px; font-style: normal; color: var(--muted); font-size: 15px; }
.start-band span { display: flex; align-items: center; justify-content: center; margin-top: auto; height: 36px; background: #fff; color: #161616; font-weight: 600; font-size: 13px; }
.start-band a:first-child span { background: #f58220; color: #141414; }
html[data-mode="dark"] .start-band span { background: #1c1916; color: #F8F4EE; }
html[data-mode="dark"] .start-band a:first-child span { background: #f58220; color: #141414; }
.rail { display: grid; grid-template-columns: 260px 1fr; gap: 40px; align-items: start; }
.rail h2 { margin: 16px 0 0; max-width: none; font-size: clamp(26px, 2.2vw, 32px); }
.rail-copy > p { margin: 0 0 16px; color: var(--muted); }
.rail-points { margin: 0 0 16px; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 28px; }
.rail-points li { display: grid; grid-template-columns: 28px 1fr; gap: 10px; color: var(--muted); }
.rail-points b { color: #f58220; font-weight: 600; }
.rule-row { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 36px; margin-top: 6px; }
.rule-link { display: block; text-decoration: none; color: inherit; }
.rule-link strong { display: block; font-size: 20px; font-weight: 500; letter-spacing: -0.02em; }
.rule-link i { display: block; height: 4px; width: 48px; margin-top: 12px; background: #f58220; transition: width 220ms ease; }
.rule-link:hover i { width: 100%; }
.starts { display: grid; grid-template-columns: 160px 1fr; gap: 10px 18px; }
.starts strong { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--signal); }
.sectors { margin: 0; font-size: 18px; letter-spacing: -0.02em; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.for, .not { padding: 16px 16px 8px; color: #161616; }
.for { background: var(--sand); }
.not { background: #fff; border: 1px solid var(--taupe); }
html[data-mode="dark"] .for,
html[data-mode="dark"] .not { color: #F8F4EE; }
html[data-mode="dark"] .not { background: #1c1916; }
.kicker.marked { display: flex; gap: 8px; align-items: center; }
.kicker.marked::before,
.for h3::before,
.not h3::before,
.for li::before,
.not li::before {
  content: ""; width: 0; height: 0; flex: none;
  border-top: 5px solid transparent; border-bottom: 5px solid transparent;
  border-left: 8px solid #f58220;
}
.for h3, .not h3 {
  display: flex; gap: 8px; align-items: center; margin: 0 0 10px;
  font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: #f58220; font-weight: 700;
}
.for li, .not li { display: grid; grid-template-columns: 12px 1fr; gap: 8px; align-items: start; margin: 0 0 8px; }
.for li::before, .not li::before { margin-top: 8px; }
.practice { display: grid; grid-template-columns: 72px 1fr; gap: 14px; margin: 0; padding: 14px 0; border-top: 1px solid var(--line); }
.practice .ring {
  width: 44px; height: 44px; border: 2px solid #f58220; border-radius: 50%;
  display: grid; place-items: center; background: #fff; color: #161616; font-weight: 700;
}
.practice h3 { margin: 0 0 8px; font-size: 20px; font-weight: 600; letter-spacing: -0.02em; }
.practice ul { margin: 0; padding: 0; list-style: none; }
.practice li { padding: 8px 0; border-top: 1px solid var(--line); }
.practice strong { display: block; }
.svc-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.svc-cols span { display: block; margin-bottom: 8px; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--signal); font-weight: 600; }
.svc-cols > div > a, .svc-cols p { display: block; margin: 0; padding: 8px 0; border-top: 1px solid var(--line); text-decoration: none; }
.svc-cols > div > a:hover, .svc-cols p a:hover { color: #f58220; }
.svc-group { margin: 28px 0 0; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--signal); font-weight: 600; }
.svc-group:first-child { margin-top: 0; }
.svc-set { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 10px; }
.svc-set article { background: #fff; color: #161616; border-top: 8px solid var(--sand); padding: 16px 14px 18px; scroll-margin-top: 88px; }
.svc-set article:nth-child(even) { border-top-color: var(--taupe); }
.svc-set .chev-sm { width: 22px; height: 28px; margin-bottom: 10px; }
.svc-set h3 { margin: 0 0 6px; font-size: 18px; font-weight: 500; letter-spacing: -0.02em; }
.svc-set p { margin: 0; color: #3a3a3a; font-size: 15px; }
html[data-mode="dark"] .svc-set article { background: #1c1916; color: #F8F4EE; }
html[data-mode="dark"] .svc-set p { color: #C8C2B8; }
.models { grid-template-columns: 1fr 1fr; }
.model .meta { display: block; margin-bottom: 6px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--signal); font-weight: 600; }
.chev-models article { background: #fff; color: #161616; border-top: 8px solid var(--sand); padding: 16px 14px 18px; }
.chev-models article:nth-child(even) { border-top-color: var(--taupe); }
.chev-models p { margin: 0; color: #3a3a3a; }
html[data-mode="dark"] .chev-models article { background: #1c1916; color: #F8F4EE; }
html[data-mode="dark"] .chev-models p { color: #C8C2B8; }
.clock { display: grid; grid-template-columns: 140px 1fr; gap: 12px 18px; }
.team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.team-grid:has(> :only-child) { grid-template-columns: 1fr; }
.team-card { background: #fff; color: #161616; border-top: 8px solid var(--sand); min-width: 0; }
.team-card:nth-child(even) { border-top-color: var(--taupe); }
.team-card img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 18%; }
.team-card:only-child { display: grid; grid-template-columns: minmax(240px, 340px) 1fr; }
.team-card:only-child img { aspect-ratio: auto; height: 100%; min-height: 420px; }
.team-body { padding: 14px 14px 18px; }
.team-card h2 { margin: 0 0 8px; font-size: 26px; line-height: 1.1; letter-spacing: -0.03em; font-weight: 500; max-width: none; }
.team-card p { margin: 0 0 8px; color: #3a3a3a; font-size: 15px; }
.team-card .focus { font-weight: 600; }
.team-links { display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 12px 0 0; }
.team-links a { font-weight: 600; text-underline-offset: 3px; }
.three.team-principles article { background: #fff; color: #161616; border-top: 8px solid var(--sand); padding: 16px 14px 18px; }
.three.team-principles article:nth-child(even) { border-top-color: var(--taupe); }
.three.team-principles h3 { margin: 0 0 8px; }
.three.team-principles p { margin: 0; color: #3a3a3a; }
html[data-mode="dark"] .team-card,
html[data-mode="dark"] .three.team-principles article { background: #1c1916; color: #F8F4EE; }
html[data-mode="dark"] .team-card p,
html[data-mode="dark"] .three.team-principles p { color: #C8C2B8; }
html[data-mode="dark"] .team-links a { color: #F8F4EE; }
.person { display: grid; grid-template-columns: 88px 1fr; gap: 16px; align-items: start; }
.mark-tile { width: 88px; height: 88px; background: #fff; display: grid; place-items: center; }
.mark-tile img { height: 64px; }
.form, .diag { display: grid; gap: 10px; }
.form label, .diag label { display: grid; gap: 4px; font-size: 13px; font-weight: 600; }
.form input, .form select, .form textarea, .diag select {
  border: 1px solid var(--line); background: transparent; padding: 10px; font-size: 15px; font-weight: 400;
}
.form textarea { min-height: 110px; resize: vertical; }
.form .btn { width: auto; justify-self: start; }
.hp { position: absolute; left: -9999px; }
.company { font-size: 15px; }
.company p { margin: 0 0 8px; }
.legal h1 { max-width: 18ch; }
.legal p { max-width: 68ch; }
.sent { margin: 0 0 8px; padding: 10px 12px; background: var(--sand); color: #161616; }
html[data-mode="dark"] .sent { color: #F8F4EE; }
.sent.warn { background: transparent; border: 1px solid var(--signal); color: var(--ink); }
.foot { background: #EADCC8; border-top: 1px solid var(--line); padding: 16px 0 20px; text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
html[data-mode="dark"] .foot { background: #2C2824; }
.foot-top, .foot-line { display: flex; justify-content: space-between; gap: 24px; align-items: center; }
.foot-top { padding-bottom: 12px; }
.foot-bot { display: grid; gap: 6px; padding-top: 12px; border-top: 1px solid rgba(22, 22, 22, 0.16); }
html[data-mode="dark"] .foot-bot { border-top-color: #3A332C; }
.foot img { height: 20px; margin: 0; }
.foot .meta, .foot .legal, .foot .copy { margin: 0; font-size: 13px; color: var(--muted); }
.foot .legal a { display: inline; margin: 0; color: inherit; text-decoration: none; }
.foot .legal a:hover { color: #f58220; }
.foot-icons { display: flex; gap: 8px; align-items: center; }
.foot .foot-icons a { width: 32px; height: 32px; margin: 0; display: grid; place-items: center; border: 1px solid rgba(22, 22, 22, 0.28); color: var(--ink); text-decoration: none; }
html[data-mode="dark"] .foot .foot-icons a { color: #F8F4EE; border-color: rgba(248, 244, 238, 0.35); }
.foot .foot-icons a:hover { color: #f58220; border-color: #f58220; }
.foot-icons svg { width: 18px; height: 18px; display: block; }
.reach-row { display: flex; gap: 12px; flex-wrap: wrap; }
.reach-hit {
  width: 64px; height: 64px; display: grid; place-items: center; position: relative;
  color: var(--ink); text-decoration: none; border: 1px solid rgba(22, 22, 22, 0.22);
}
html[data-mode="dark"] .reach-hit { color: #F8F4EE; border-color: rgba(248, 244, 238, 0.28); }
.reach-hit svg { width: 26px; height: 26px; display: block; }
.reach-hit:hover, .reach-hit:focus-visible { color: #f58220; border-color: #f58220; outline: none; }
.reach-hit i {
  position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translateX(-50%) translateY(4px);
  opacity: 0; pointer-events: none; white-space: nowrap; font-style: normal;
  background: var(--ink); color: #F8F4EE; font-size: 12px; font-weight: 500; padding: 5px 8px;
  transition: opacity 160ms ease, transform 160ms ease;
}
.reach-hit:hover i, .reach-hit:focus-visible i { opacity: 1; transform: translateX(-50%) translateY(0); }
.reach-note { margin-top: 16px; padding-top: 12px; border-top: 1px solid rgba(22, 22, 22, 0.16); }
html[data-mode="dark"] .reach-note { border-top-color: #3A332C; }
.reach-note p { margin: 0; font-size: 14px; color: var(--muted); }
.reach-note strong { color: var(--ink); font-weight: 600; }
html[data-mode="dark"] .reach-note strong { color: #F8F4EE; }
.faq-mark { display: inline-flex; align-items: center; gap: 10px; flex: none; position: relative; z-index: 2; text-decoration: none; font-weight: 600; }
.faq-q {
  width: 36px; height: 36px; display: grid; place-items: center;
  border: 1px solid rgba(22, 22, 22, 0.22); color: #f58220; font-size: 20px; font-weight: 600;
}
html[data-mode="dark"] .faq-q { border-color: rgba(248, 244, 238, 0.28); }
.faq-mark:hover .faq-q { border-color: #f58220; }
.faq-list { display: grid; }
.faq-list article {
  display: grid; grid-template-columns: minmax(220px, 0.85fr) 1.15fr; gap: 28px;
  padding: 18px 0; border-top: 1px solid rgba(22, 22, 22, 0.16); background: transparent; color: inherit;
}
.faq-list article:first-child { border-top: 0; padding-top: 0; }
html[data-mode="dark"] .faq-list article { border-top-color: #3A332C; background: transparent; color: #F8F4EE; }
.faq-list h2 { margin: 0; font-size: 20px; line-height: 1.25; letter-spacing: -0.02em; font-weight: 500; max-width: none; }
.faq-list p { margin: 0 0 8px; color: var(--muted); font-size: 15px; }
.faq-list p:last-child { margin-bottom: 0; }
html[data-mode="dark"] .faq-list p { color: #A8A298; }
.diag fieldset { border: 0; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--line); }
.diag legend { font-weight: 600; padding: 0; }
.scale { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 13px; font-weight: 400; }
.scale input { flex: 1; accent-color: #f58220; }
.quad { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); margin: 8px 0 18px; }
.quad div { padding: 14px; min-height: 92px; }
.quad div:nth-child(odd) { border-right: 1px solid var(--line); }
.quad div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
.quad strong { display: block; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.quad .on { background: var(--sand); color: #161616; }
html[data-mode="dark"] .quad .on { color: #F8F4EE; }
.dx { display: grid; gap: 14px; max-width: 720px; }
.dx-nav[hidden], .dx-step[hidden], .dx-result[hidden], .dx-error[hidden], .dx-frame[hidden],
.dx [hidden] { display: none !important; }
.dx-step { border: 0; margin: 0; padding: 0; }
.dx legend { display: grid; gap: 4px; padding: 0; }
.dx-ask { font-size: clamp(22px, 3vw, 28px); font-weight: 500; letter-spacing: -0.02em; line-height: 1.25; }
.dx-frame, .dx-example { margin: 8px 0 0; max-width: 62ch; color: var(--muted); }
.dx-opts { display: grid; gap: 8px; margin-top: 14px; }
.dx-opt {
  display: grid; grid-template-columns: 18px 1fr; gap: 12px; align-items: start;
  padding: 12px 14px; background: #fff; color: #161616; border: 1px solid var(--line); cursor: pointer;
}
.dx-opt input { margin: 3px 0 0; accent-color: #f58220; }
.dx-opt strong { display: block; font-weight: 650; }
.dx-opt:has(input:checked) { background: var(--sand); border-color: #f58220; }
.dx-opt:focus-within { outline: 2px solid #f58220; outline-offset: 2px; }
html[data-mode="dark"] .dx-opt { background: #1c1916; color: #F8F4EE; }
html[data-mode="dark"] .dx-opt:has(input:checked) { background: #2C2824; }
.dx-field { display: grid; gap: 6px; margin-top: 14px; font-size: 13px; font-weight: 600; }
.dx select { border: 1px solid var(--line); background: #fff; color: #161616; padding: 10px; font: inherit; font-weight: 400; max-width: 360px; }
html[data-mode="dark"] .dx select { background: #1c1916; color: #F8F4EE; }
.dx-nav, .dx-result .actions { display: flex; flex-wrap: wrap; gap: 10px; }
.dx-error { margin: 0; color: #f58220; font-weight: 600; }
.dx-result { background: #fff; color: #161616; border-top: 8px solid #f58220; padding: 18px 16px 16px; outline: none; }
html[data-mode="dark"] .dx-result { background: #1c1916; color: #F8F4EE; }
.dx-result h2 { margin: 0 0 10px; max-width: 28ch; font-size: clamp(22px, 3vw, 28px); }
.dx-door { margin: 0 0 8px; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: #f58220; font-weight: 700; }
.dx-said { list-style: none; margin: 8px 0 12px; padding: 0; }
.dx-said li { position: relative; padding: 8px 0 8px 16px; border-top: 1px solid var(--line); }
.dx-said li::before {
  content: ""; position: absolute; left: 0; top: 14px; width: 0; height: 0;
  border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 7px solid #f58220;
}
html[data-mode="dark"] .dx-result .note { color: #C8C2B8; }
.dx-sheet { display: none; }
.dx-sheet header { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.dx-sheet img { height: 28px; }
.dx-sheet-meta { margin: 0; text-align: right; white-space: pre-line; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.dx-facts { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin: 12px 0; }
.dx-facts div { background: var(--sand); color: #161616; padding: 10px 12px; }
.dx-facts span { display: block; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #5c564e; font-weight: 700; }
.dx-sheet table { width: 100%; border-collapse: collapse; margin: 8px 0 12px; }
.dx-sheet th, .dx-sheet td { text-align: left; vertical-align: top; padding: 8px 10px 8px 0; border-top: 1px solid var(--line); }
.dx-sheet th { width: 28%; font-weight: 600; }
.dx-sheet-limit { margin: 12px 0 0; color: var(--muted); }
@media print {
  body[data-page="diagnostics"] main { display: block !important; }
  .site-head, .hero, .foot, .dx-progress, .dx-nav, .dx-step, .dx-error,
  .dx-result > :not(.dx-sheet) { display: none !important; }
  .dx-sheet { display: block !important; background: #fff; color: #161616; }
  .dx-result { background: #fff; border: 0; padding: 0; }
  .block { border: 0; padding: 0; }
}
.enquiries { width: 100%; border-collapse: collapse; font-size: 14px; }
.enquiries th, .enquiries td { border-top: 1px solid var(--line); text-align: left; vertical-align: top; padding: 8px; }

.poster { background: #F7F6F3; color: #161616; border: 1px solid var(--line); padding: 26px 22px 8px; }
html[data-mode="dark"] .poster { background: #12110F; color: #F8F4EE; border-color: #2A2622; }
.poster-lead { display: grid; grid-template-columns: 76px 1fr; column-gap: 18px; align-items: center; }
.poster-chevron { grid-row: 1 / span 3; width: 70px; height: 82px; background: #f58220; clip-path: polygon(0 0, 58% 0, 100% 50%, 58% 100%, 0 100%, 42% 50%); }
.poster-lead h2 { grid-column: 2; margin: 0; max-width: none; font-size: clamp(26px, 3vw, 34px); }
.poster-rule { grid-column: 2; display: block; width: 72px; height: 4px; background: #f58220; margin: 8px 0; }
.poster-lead p { grid-column: 2; margin: 0; }
.spine { position: relative; min-height: 560px; }
.spine-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
#spine-draw { stroke: #1E2A6E; }
html[data-mode="dark"] #spine-draw { stroke: #C9D2F5; }
#spine-stops { position: relative; z-index: 1; }
.station { position: relative; z-index: 1; display: grid; grid-template-columns: 96px 1fr; align-items: center; min-height: 76px; width: 100%; background: transparent; border: 0; padding: 0; color: inherit; font-family: inherit; text-align: left; cursor: pointer; }
.station:focus { outline: none; }
.station:focus-visible .bead { outline: 2px solid #161616; outline-offset: 3px; }
.station:nth-child(even) .bead { margin-left: 26px; }
.bead { width: 56px; height: 56px; border-radius: 50%; border: 3px solid #f58220; background: #fff; color: #161616; display: grid; place-items: center; font-size: 22px; font-weight: 650; }
.station[aria-selected="true"] .bead { color: #f58220; }
.station-copy { display: flex; gap: 8px; align-items: flex-start; }
.station-copy i { width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid #f58220; margin-top: 7px; flex: none; }
.station-copy strong { display: block; font-size: 15px; font-weight: 650; }
.station-copy em { display: block; font-style: normal; font-size: 14px; font-weight: 400; color: #3a3a3a; }
html[data-mode="dark"] .station-copy em { color: #C8C2B8; }
.poster.playing .station { opacity: 0.28; }
.poster.playing .station.lit { opacity: 1; }
.phase { margin-top: 8px; padding-top: 16px; border-top: 1px solid #E4DDD4; }
.phase-time, .phase-label { margin: 0; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: #f58220; font-weight: 600; }
.phase h3 { margin: 6px 0; font-size: 28px; font-weight: 500; }
.phase-out { margin-top: 12px; padding: 12px 14px; background: #EADCC8; color: #161616; }
html[data-mode="dark"] .phase-out { background: #2C2824; color: #F8F4EE; }

@media (min-width: 901px) {
  .spine { min-height: 0; }
  #spine-stops { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); min-height: 270px; }
  .station { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; min-height: 270px; height: 100%; gap: 8px; text-align: center; grid-template-columns: none; }
  .station:nth-child(even) { justify-content: flex-end; }
  .station:nth-child(even) .bead { margin-left: 0; }
  .station-copy { flex-direction: column; align-items: center; }
  .station-copy i { border: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 8px solid #f58220; margin: 0; }
  .station-copy strong, .station-copy em { font-size: 12px; }
}

.arrive-board .corner i { transform-origin: 100% 0; animation: wedge 480ms cubic-bezier(.2,.7,.2,1) both; }
.arrive-board .corner i:nth-child(2) { animation-delay: 110ms; }
.arrive-board .corner i:nth-child(1) { animation-delay: 200ms; }
.arrive-board .hero-copy > * { animation: fade 560ms ease both; }
.arrive-board .hero-copy .kicker { animation-delay: 320ms; }
.arrive-board .hero-copy h1 { animation-delay: 420ms; }
.arrive-board .hero-copy .lede { animation-delay: 520ms; }
.arrive-board .hero-copy .actions { animation-delay: 600ms; }
.arrive-rule .hero-copy h1 { position: relative; }
.arrive-rule .hero-copy h1::after {
  content: ""; display: block; width: 64px; height: 3px; background: #f58220; margin-top: 12px;
  transform-origin: left center; animation: draw 520ms cubic-bezier(.2,.7,.2,1) both; animation-delay: 200ms;
}
@keyframes wedge { from { opacity: 0; transform: scale(0.12); } to { opacity: 1; transform: none; } }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
body[data-page="insight-stall"] h1 { max-width: none; }
body[data-page="insight-stall"] h2 { max-width: none; }
body[data-page="insight-stall"] .lede { max-width: none; }
.insight p, .insight li { max-width: none; }
.insight h2 { margin-top: 36px; }
.insight h3 { margin: 0 0 6px; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; }
.roi { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 40px; margin: 8px 0 18px; }
.roi p { margin: 0; }
.check {
  margin: 0; padding: 20px 22px; max-width: none; background: var(--sand); color: var(--ink);
  font-family: inherit; font-size: 14px; line-height: 1.65; white-space: pre-wrap;
}
.rules, .sources { margin: 0; padding-left: 1.2em; }
.rules li, .sources li { margin: 0 0 12px; }
.sheet { width: 100%; max-width: none; border-collapse: collapse; font-size: 15px; }
.sheet th, .sheet td { text-align: left; vertical-align: top; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--line); }
.sheet th { font-size: 13px; font-weight: 600; color: var(--muted); }
.sheet td:first-child { font-weight: 600; }
.nums-head h3, .nums h3 { margin: 0 0 2px; font-size: 16px; font-weight: 600; letter-spacing: -0.02em; }
.nums-meta, .nums { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 40px; align-items: start; }
.nums { margin-top: 8px; }
.nums-col { display: grid; gap: 10px; align-content: start; }
.nums article { display: grid; grid-template-columns: 42px 1fr; gap: 12px; align-items: start; }
.nums b { color: #f58220; font-size: 18px; font-weight: 600; }
.nums p, .nums-head p { margin: 0; padding: 3px 0; max-width: none; border-bottom: 1px solid var(--line); font-size: 15px; }
.yn { white-space: nowrap; }
.decision { margin: 18px 0 0; font-weight: 600; }
.lead-top { display: grid; grid-template-columns: 1fr 140px; gap: 28px; align-items: end; }
.lead-top.has-rest { padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.lead-top .title { text-decoration: none; color: inherit; }
.lead-top time, .lead-rest time { color: var(--muted); font-size: 13px; }
.lead-top strong { display: block; margin-top: 8px; font-size: clamp(22px, 2.4vw, 28px); font-weight: 500; letter-spacing: -0.02em; }
.lead-top span { display: block; margin-top: 8px; max-width: 62ch; color: var(--muted); font-size: 16px; }
.lead-top .go { display: flex; align-items: center; justify-content: center; height: 40px; background: #f58220; color: #141414; font-weight: 600; font-size: 13px; text-decoration: none; }
.lead-rest a { display: grid; grid-template-columns: 120px 1fr; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: inherit; }
.lead-rest strong { display: block; font-size: 18px; font-weight: 500; letter-spacing: -0.02em; }
.lead-rest span { display: block; margin-top: 4px; color: var(--muted); font-size: 15px; }
.sources a { color: inherit; }
@media (prefers-reduced-motion: reduce) {
  *, *::before { animation: none !important; transition: none !important; }
}

@media (max-width: 800px) {
  .doors, .three, .models, .split, .faq-list article, .svc-set, .svc-cols, .rail, .rail-points, .rule-row, .start-band, .lead-top, .lead-rest a, .roi, .nums, .nums-meta { grid-template-columns: 1fr; }
  .start-band a { border-left: 0; border-top: 1px solid var(--line); }
  .start-band a:first-child { border-top: 0; }
  .faq-list article { gap: 8px; }
  .foot-top {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center;
    justify-items: start; gap: 12px;
  }
  .foot-top img { height: auto; max-height: 20px; max-width: 100%; }
  .foot-icons { justify-self: end; }
  .foot-line { display: block; }
  .foot .meta, .foot .legal { display: inline; }
  .foot .legal::before { content: " · "; }
  .clock, .starts, .person, .team-card:only-child { grid-template-columns: 1fr; }
  .team-card:only-child img { aspect-ratio: 4 / 5; height: auto; min-height: 0; }
  .head-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; column-gap: 18px; row-gap: 0; }
  .head-row > a:first-child { grid-column: 1; grid-row: 1; min-width: 0; }
  .head-row > a:first-child img { height: auto; max-height: 26px; max-width: 100%; }
  .head-actions { grid-column: 2; grid-row: 1; margin-left: 0; }
  .menu-btn {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    grid-column: 3; grid-row: 1;
    width: 36px; height: 36px; padding: 0; border: 1px solid rgba(22, 22, 22, 0.22);
    background: transparent; color: inherit; cursor: pointer;
  }
  .menu-btn i { display: block; width: 14px; height: 1.5px; background: currentColor; }
  .menu-btn.open, .menu-btn:hover { border-color: #f58220; }
  html[data-mode="dark"] .menu-btn { border-color: rgba(248, 244, 238, 0.28); }
  html[data-mode="dark"] .menu-btn.open, html[data-mode="dark"] .menu-btn:hover { border-color: #f58220; }
  .book { display: none; }
  .nav {
    display: none; grid-column: 1 / -1; grid-row: 2; flex-direction: column; align-items: stretch; gap: 0;
    margin-top: 4px; font-size: 16px;
  }
  .nav a { padding: 12px 0; border-top: 1px solid var(--line); }
  .nav-drop { display: block; position: static; width: 100%; }
  .nav-drop > a { display: flex; }
  .nav-drop::after { display: none; }
  .nav-sub { position: static; opacity: 1; pointer-events: auto; min-width: 0; padding: 0 0 0 14px; border: 0; background: transparent; }
  .nav-sub a { padding: 12px 0 12px 0; }
  .head-row.is-open .nav { display: flex; }
  .head-row.is-open .book { display: inline-flex; grid-column: 1 / -1; grid-row: 3; justify-self: start; margin: 8px 0 2px; }
  h1 { max-width: none; }
  .sheet, .sheet thead, .sheet tbody, .sheet tr, .sheet th, .sheet td { display: block; width: auto; }
  .sheet thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .sheet tr { padding: 14px 0; border-bottom: 1px solid var(--line); }
  .sheet td { border: 0; padding: 4px 0; }
  .sheet td::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 600; color: var(--muted); }
  .poster-lead { grid-template-columns: 56px 1fr; }
  .poster-chevron { width: 48px; height: 56px; }
}
