/* ─────────────────────────────────────────────────────────────
   8e8 · Sunrise: off-white with a saffron-to-indigo dawn behind the hero; indigo accent.
   The look is set by <html data-look="sunrise">; the bare :root tokens are base values it overrides.
   Restraint: one accent colour, used on approvals, links and active tabs.
   Layout: plain document flow. Nothing is pinned or held up on scroll.
   ───────────────────────────────────────────────────────────── */
:root {
  --bg: #F4F1EA;
  --panel: #FBF9F4;
  --ink: #1A1C20;
  --muted: #5B5A55;
  --dim: #8C8980;
  --rule: rgba(26, 28, 32, .14);
  --rule-2: rgba(26, 28, 32, .32);
  --accent: #B5382A;
  --accent-ink: #A8301F;
  --on-accent: #FBF9F4;
  --mark: #1A1C20;          /* agent and bot nodes in the process story */
  --mark-ink: #F4F1EA;
  --soft: #E3DED2;          /* the "before" bar in charts */
  --primary-bg: var(--accent);
  --primary-ink: var(--on-accent);
  --ghost-line: var(--ink);
  --font-head: "Newsreader", Georgia, serif;
  --font-em: "Newsreader", Georgia, serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --head-weight: 300;
  --head-track: -.018em;
  --em-size: 1em;
  --win-radius: 0px;
  --shadow: none;
  --max: 1240px;
  --margin: 210px;
  --ease: cubic-bezier(.2, .8, .2, 1);
  color-scheme: light;
}
[data-look="sunrise"] {
  --bg: #F7F6F3;
  --panel: #FFFFFF;
  --ink: #16171B;
  --muted: #5D5F66;
  --dim: #8E9097;
  --rule: rgba(22, 23, 27, .09);
  --rule-2: rgba(22, 23, 27, .2);
  --accent: #5562E8;
  --accent-ink: #4350D8;
  --on-accent: #FFFFFF;
  --mark: #FFFFFF;
  --mark-ink: #5562E8;
  --soft: #DCDCE2;
  --saffron: #F4A259;
  --primary-bg: var(--ink);
  --primary-ink: #FFFFFF;
  --ghost-line: var(--rule-2);
  --font-head: "Geist", system-ui, sans-serif;
  --font-em: "Instrument Serif", Georgia, serif;
  --font-body: "Geist", system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, monospace;
  --head-weight: 500;
  --head-track: -.035em;
  --em-size: 1.08em;
  --win-radius: 12px;
  --shadow: 0 1px 2px rgba(22, 23, 27, .05), 0 18px 40px -18px rgba(22, 23, 27, .22);
  --max: 1180px;
  --margin: 0px;
}
/* The Ledger's ink bands (case study, closing call): the same tokens, inverted */

* { box-sizing: border-box; }
[hidden] { display: none !important; } /* layout classes (.field is a grid) must never override hidden */
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 400 17px/1.65 var(--font-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
svg { display: block; max-width: 100%; }
h1, h2, h3 { font-family: var(--font-head); font-weight: var(--head-weight); letter-spacing: var(--head-track); margin: 0; line-height: 1.06; text-wrap: balance; }
h1 em, h2 em { font-family: var(--font-em); font-style: italic; font-size: var(--em-size); letter-spacing: -.01em; }
p { margin: 0; }
.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding-inline: 24px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.label { font: 500 12px/1.4 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

/* Sunrise: a faint engineering grid and two thin column rules down the page */
[data-look="sunrise"] body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(rgba(22, 23, 27, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(22, 23, 27, .035) 1px, transparent 1px);
  background-size: 40px 40px;
}
[data-look="sunrise"] body::after {
  content: ""; position: fixed; top: 0; bottom: 0; left: 50%; z-index: 0; pointer-events: none;
  width: min(1132px, calc(100% - 48px)); transform: translateX(-50%);
  border-inline: 1px solid rgba(22, 23, 27, .07);
}

/* ── Nav ─────────────────────────────────────────────── */
.nav { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--rule); }
.nav .wrap { display: flex; align-items: center; justify-content: space-between; height: 76px; }
.brand { display: flex; align-items: center; gap: 12px; font: 600 26px/1 var(--font-body); letter-spacing: -.03em; }
.brand-mark { width: 38px; height: 38px; }
.nav-links { display: flex; align-items: center; gap: 28px; }
.nav-link { font-size: 15px; color: var(--muted); transition: color .2s; }
.nav-link:hover { color: var(--ink); }

/* ── Buttons: square corners ─────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 22px; border-radius: 0; border: 1px solid transparent;
  font: 500 15px/1 var(--font-body); cursor: pointer; white-space: nowrap;
  transition: background .2s, border-color .2s, color .2s;
}
.btn-primary { background: var(--primary-bg); color: var(--primary-ink); }
.btn-primary:hover { background: color-mix(in srgb, var(--primary-bg) 86%, #000); }
.btn-ghost { border-color: var(--ghost-line); color: var(--ink); background: transparent; }
.btn-ghost:hover { background: color-mix(in srgb, var(--ink) 6%, transparent); }
.nav-links .btn { padding: 11px 18px; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.arrow { transition: transform .2s var(--ease); }
.btn:hover .arrow { transform: translateX(3px); }
.tag { font: 500 12px/1 var(--font-mono); letter-spacing: .04em; padding: 7px 10px; border: 1px solid var(--rule-2); color: var(--muted); display: inline-flex; align-items: center; }
[data-look="sunrise"] .tag { border-radius: 4px; background: var(--panel); }

/* ── Sections: label on top, index on the right ── */
.sec { position: relative; padding-block: 124px; border-top: 1px solid var(--rule-2); }
.sec-grid { display: grid; grid-template-columns: var(--margin) minmax(0, 1fr); }
.sec-margin { padding-top: 10px; padding-right: 24px; }
.sec-body { min-width: 0; }

[data-look="sunrise"] .sec { border-top-color: var(--rule); }
[data-look="sunrise"] .sec-grid { grid-template-columns: minmax(0, 1fr); }
[data-look="sunrise"] .sec-margin { padding: 0 0 22px; }
[data-look="sunrise"] .sec[data-no]::after {
  content: attr(data-no); position: absolute; top: 124px; right: max(36px, calc(50% - 554px));
  font: 500 12px/1 var(--font-mono); color: var(--dim); letter-spacing: .08em;
}
.sec h2 { font-size: clamp(34px, 4.2vw, 54px); max-width: 820px; }
[data-look="sunrise"] .sec h2 { font-size: clamp(32px, 3.8vw, 48px); }

/* ═════════════════ HOME ═════════════════ */
.hero { position: relative; overflow: hidden; }
.hero-inner { position: relative; z-index: 1; display: grid; justify-items: center; padding-block: 92px 112px; }
.hero-text { display: grid; justify-items: center; text-align: center; max-width: 900px; }
.hero h1 { font-size: clamp(48px, 6.2vw, 92px); margin-top: 24px; line-height: 1.02; }
[data-look="sunrise"] .hero h1 { font-size: clamp(46px, 5.6vw, 82px); }
.hero .lede { margin-top: 24px; font-size: 19px; color: var(--muted); max-width: 600px; }
.hero .ctas { display: flex; justify-content: center; gap: 12px; margin-top: 34px; flex-wrap: wrap; }
/* Sunrise: the dawn glow sits behind the hero window */
[data-look="sunrise"] .hero::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  left: 50%; bottom: -6%; width: min(1700px, 160vw); height: 78%; transform: translateX(-50%);
  background:
    radial-gradient(30% 46% at 24% 58%, rgba(244, 162, 89, .62), transparent 74%),
    radial-gradient(32% 50% at 77% 44%, rgba(85, 98, 232, .4), transparent 74%),
    radial-gradient(40% 30% at 50% 96%, rgba(244, 162, 89, .35), transparent 74%);
  filter: blur(28px);
}

/* ── Screens: one window style per look. They move only by typing, appearing and ticking. ── */
.win { position: relative; margin: 0; min-width: 0; background: var(--panel); color: var(--ink); font: 400 14px/1.45 var(--font-body); text-align: left; }

[data-look="sunrise"] .win { background: #fff; border: 1px solid var(--rule); border-radius: 12px; box-shadow: 0 1px 2px rgba(22, 23, 27, .05), 0 30px 60px -28px rgba(40, 44, 90, .3); overflow: hidden; }
.win-bar { display: flex; align-items: center; gap: 14px; height: 44px; padding: 0 18px; flex: none; }
.win-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.win-dots { display: none; gap: 6px; }
.win-dots i { width: 10px; height: 10px; border-radius: 50%; background: #DCDCE2; }

[data-look="sunrise"] .win-bar { border-bottom: 1px solid var(--rule); background: #FBFBFA; font: 500 13px/1 var(--font-body); color: var(--muted); }
[data-look="sunrise"] .win-dots { display: inline-flex; }
/* The Ledger's case-study screen is a paper sheet on the ink band: light tokens again */

/* tool chips: plain text, never logos */
.chip { display: inline-flex; align-items: center; white-space: nowrap; font: 500 12px/1 var(--font-mono); padding: 5px 8px; color: var(--ink); }

[data-look="sunrise"] .chip { font: 500 12px/1 var(--font-body); padding: 6px 10px; border-radius: 999px; background: #F0F0F3; color: #4A4C55; }
/* status pills */
.pill { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font: 500 12px/1 var(--font-mono); padding: 5px 8px; border: 1px solid var(--rule-2); color: var(--muted); }
[data-look="sunrise"] .pill { font-family: var(--font-body); border-radius: 999px; padding: 5px 10px; }
.pill.flag { border-color: var(--flag); color: var(--flag); }

[data-look="sunrise"] { --flag: #B9661A; }
[data-look="sunrise"] .pill.flag { background: #FDF1E4; border-color: #F2C894; }

/* ticks: an empty box, then a tick drawn in (ink in The Ledger, indigo in Sunrise) */
.tk { width: 20px; height: 20px; flex: none; display: inline-grid; place-items: center; border: 1px solid var(--rule-2); transition: background .3s, border-color .3s; }
.tk svg { width: 14px; height: 14px; fill: none; stroke: var(--ink); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.tk path { stroke-dasharray: 16; stroke-dashoffset: 16; transition: stroke-dashoffset .35s ease-out; }
.tk.on path { stroke-dashoffset: 0; }
.tk.on { border-color: var(--ink); }
[data-look="sunrise"] .tk { border-radius: 50%; }
[data-look="sunrise"] .tk svg { stroke: var(--accent); }
[data-look="sunrise"] .tk.on { border-color: color-mix(in srgb, var(--accent) 40%, transparent); background: color-mix(in srgb, var(--accent) 10%, transparent); }

/* approval marks: the vermilion stamp (Ledger) or the indigo tick badge (Sunrise) */
.mk-stamp { color: var(--accent); fill: none; stroke: currentColor; transform: rotate(-9deg); }
.mk-stamp rect { stroke-width: 2.6; } .mk-stamp .in { stroke-width: 1; }
.mk-stamp path { stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }
.mk-badge circle { fill: var(--accent); }
.mk-badge path { fill: none; stroke: #fff; stroke-width: 3.4; stroke-linecap: round; stroke-linejoin: round; }
[data-look="sunrise"] .mk-stamp { display: none; }
.mk { position: relative; display: inline-block; flex: none; width: 40px; height: 40px; opacity: 0; transform: scale(1.7); transition: opacity .2s, transform .28s cubic-bezier(.5, 0, .75, 0); }
.mk svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.mk.on { opacity: .94; transform: none; }
[data-look="sunrise"] .mk { transform: scale(.6); transition: opacity .25s, transform .35s var(--ease); }
[data-look="sunrise"] .mk.on { opacity: 1; transform: none; }
/* a person (a role, never a step) */
.face { width: 36px; height: 36px; border-radius: 50%; overflow: hidden; flex: none; }
.face svg { width: 100%; height: 100%; }
.av-bg { fill: #D9D2C3; } .av-shirt { fill: #3F4650; } .av-skin { fill: #B9845F; } .av-hair { fill: #2A211C; }

  
.mini-btn { display: inline-flex; align-items: center; justify-content: center; padding: 9px 18px; font: 500 13px/1 var(--font-body); background: var(--primary-bg); color: var(--primary-ink); transition: transform .15s, background .15s; }
.mini-btn.press { transform: scale(.95); background: color-mix(in srgb, var(--primary-bg) 80%, #000); }
[data-look="sunrise"] .mini-btn { border-radius: 6px; background: var(--accent); color: #fff; }
[data-look="sunrise"] .mini-btn.press { background: var(--accent-ink); }
/* typing: a caret while the text writes itself */
.typing::after { content: ""; display: inline-block; width: 1.5px; height: 1.05em; margin-left: 2px; vertical-align: -.16em; background: var(--ink); animation: caret 1s steps(1) infinite; }
[data-look="sunrise"] .typing::after { background: var(--accent); }
@keyframes caret { 50% { opacity: 0; } }
/* things that appear: a short fade and a 6px rise */
.rise { opacity: 0; transform: translateY(6px); transition: opacity .4s ease-out, transform .4s var(--ease); }
.rise.in { opacity: 1; transform: none; }
.no-tr, .no-tr * { transition: none !important; }

/* ── Hero window: Ask · Act · Check ── */
.os { width: 100%; max-width: 1080px; margin-top: 64px; display: grid; grid-template-rows: auto auto minmax(0, 1fr); min-height: 540px; }
.os-tabs { display: flex; gap: 30px; padding: 0 26px; border-bottom: 1px solid var(--rule); }
.os-tabs button { all: unset; cursor: pointer; position: relative; padding: 15px 2px 13px; font: 500 15px/1 var(--font-body); color: var(--dim); transition: color .2s; }
.os-tabs button:hover, .os-tabs button[aria-selected="true"] { color: var(--ink); }
.os-tabs button::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--accent); transform: scaleX(0); transition: transform .3s var(--ease); }
.os-tabs button[aria-selected="true"]::after { transform: none; }
.os-tabs button:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

.os-body { display: grid; min-height: 0; }
.os-job { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); min-height: 0; visibility: hidden; opacity: 0; transition: opacity .3s, visibility 0s .3s; }
.os-job.on { visibility: visible; opacity: 1; transition: opacity .3s; }
.os-left { padding: 32px 32px 28px; border-right: 1px solid var(--rule); min-width: 0; }
.os-right { padding: 32px; min-width: 0; display: grid; align-content: start; }
[data-look="sunrise"] .os-right { background: #FBFBFC; }
.os-prompt { display: flex; align-items: flex-start; gap: 14px; min-height: 84px; padding: 16px 16px 16px 18px; font-size: 18px; line-height: 1.45; }
.os-q { flex: 1; min-width: 0; }
.os-send { width: 32px; height: 32px; flex: none; display: grid; place-items: center; background: var(--ink); color: var(--panel); transition: transform .15s, opacity .2s; opacity: .35; }
.os-send svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.os-send.ready { opacity: 1; }
.os-send.press { transform: scale(.88); }

[data-look="sunrise"] .os-prompt { border: 1px solid var(--rule-2); border-radius: 12px; box-shadow: 0 1px 2px rgba(22, 23, 27, .05); }
[data-look="sunrise"] .os-send { border-radius: 50%; background: var(--accent); color: #fff; }
.os-tools { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.steps { list-style: none; margin: 26px 0 0; padding: 0; }
.steps li { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-top: 1px solid var(--rule); font-size: 15px; color: var(--muted); }
.steps li .chip { flex: none; }
.steps li span:last-child { min-width: 0; }
/* results */
.res { padding: 22px 22px 20px; }

[data-look="sunrise"] .res { background: #fff; border: 1px solid var(--rule); border-radius: 10px; box-shadow: 0 1px 2px rgba(22, 23, 27, .04), 0 12px 30px -16px rgba(22, 23, 27, .2); }
.res-lab { display: flex; align-items: center; gap: 8px; font: 500 12px/1.3 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--dim); }
.res-ans { margin-top: 14px; font: var(--head-weight) 30px/1.22 var(--font-head); letter-spacing: -.01em; }
[data-look="sunrise"] .res-ans { font-size: 25px; letter-spacing: -.02em; }
.res-doc { margin: 20px 0 0; padding: 14px 16px; font-size: 14px; line-height: 1.6; color: var(--muted); background: var(--bg); border-left: 2px solid var(--ink); }
.res-doc span { display: block; margin-bottom: 6px; font: 500 12px/1.3 var(--font-mono); letter-spacing: .06em; color: var(--ink); }
.res-doc mark { color: var(--ink); background: color-mix(in srgb, var(--ink) 9%, transparent); box-shadow: inset 0 -2px 0 var(--ink); padding: 0 2px; }
[data-look="sunrise"] .res-doc { background: #F6F6F8; border-left-color: var(--accent); border-radius: 0 6px 6px 0; }
[data-look="sunrise"] .res-doc span { font-family: var(--font-body); font-weight: 600; letter-spacing: 0; font-size: 13px; }
[data-look="sunrise"] .res-doc mark { background: color-mix(in srgb, var(--accent) 14%, transparent); box-shadow: none; border-radius: 3px; }
.res-src { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--rule); font-size: 13px; color: var(--muted); }
/* Act: waiting for a person's approval */
.appr-head { display: flex; align-items: center; gap: 12px; }
.appr-head .res-lab { flex: 1; }
.appr-head .res-lab { display: block; }
.appr .ok { display: none; }
.approved .wait { display: none; }
.approved .ok { display: inline; }
.approved .res-lab .ok { color: var(--ink); }
.appr-who { margin-top: 16px; font: var(--head-weight) 24px/1.2 var(--font-head); letter-spacing: -.01em; }
[data-look="sunrise"] .appr-who { font-size: 21px; letter-spacing: -.02em; }
.appr-role { margin-top: 4px; color: var(--muted); font-size: 14px; }
.appr-list { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 0; }
.appr-list li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--rule); font-size: 13px; color: var(--muted); }
.appr-list li b { font-weight: 500; color: var(--ink); white-space: nowrap; }
.appr-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; }
.appr-foot .mk { width: 46px; height: 46px; }
/* Check: one row per manager */
.mgr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--rule); }
.mgr:first-of-type { margin-top: 14px; }
.mgr b { font-weight: 500; font-size: 14px; }
.mgr small { display: block; color: var(--dim); font-size: 12px; }
.mgr .pill.ok { color: var(--ink); }
.mgr .pill.ok::before { content: "✓"; color: var(--accent); }

/* ── Process: one review screen over three phase tabs ── */
.pr { margin-top: 56px; --rh: 54px; }
.pr-table { padding: 6px 26px 18px; min-height: calc(44px + 7 * var(--rh) + 58px + 24px); }
.pr-row { display: grid; grid-template-columns: 30px minmax(0, 1.5fr) minmax(0, 1.25fr) 74px minmax(0, 1fr); gap: 16px; align-items: center; height: var(--rh); border-bottom: 1px solid var(--rule); overflow: hidden; }
.pr-rows .pr-row { opacity: 0; transition: opacity .35s, height .5s var(--ease), border-color .3s; }
.pr-rows .pr-row.in { opacity: 1; }
.pr-rows .pr-row.gone { height: 0; opacity: 0; border-bottom-color: transparent; }
.pr-head { height: 44px; font: 500 12px/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--dim); border-bottom-color: var(--rule-2); }
.pr-no { font: 500 12px/1 var(--font-mono); color: var(--dim); }
.pr-step { display: flex; align-items: center; gap: 10px; min-width: 0; }
.pr-name { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: line-through; text-decoration-color: transparent; transition: color .3s, text-decoration-color .3s; }
.struck .pr-name { color: var(--dim); text-decoration-color: var(--ink); }
.pr-step .pill { display: none; }
.wait-on .pill.wait, .par-on .pill.par { display: inline-flex; animation: fadeIn .4s ease-out; }
.pill.wait { border-color: var(--flag); color: var(--flag); }
.pr-h { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; color: var(--muted); }
.pr-h b { font-weight: 500; color: var(--ink); }
.pr-bar { height: 6px; background: var(--rule); position: relative; }
.pr-bar i { position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--w, 0) * 100%); background: var(--dim); transition: width .6s var(--ease); }
[data-look="sunrise"] .pr-bar { height: 8px; border-radius: 3px; }
[data-look="sunrise"] .pr-bar i { border-radius: 3px; background: #BFC1C9; }
.pr-total { border-bottom: 0; border-top: 1px solid var(--rule-2); margin-top: -1px; height: 58px; font-weight: 500; }
.pr-total .pr-h { font-size: 18px; color: var(--ink); }
.pr-total .pr-h b { font-weight: 600; }
.pr-total .pr-bar i { background: var(--ink); }
[data-look="sunrise"] .pr-total .pr-bar i { background: var(--accent); }
/* two steps that now run side by side: a bracket on the left */
.pr-row.par-on .pr-no { position: relative; }
.pr-row.par-on .pr-no::after { content: ""; position: absolute; left: 22px; width: 6px; border-left: 1.5px solid var(--ink); }
.pr-row.par-top .pr-no::after { top: 4px; height: calc(var(--rh) - 4px); border-top: 1.5px solid var(--ink); }
.pr-row.par-bot .pr-no::after { bottom: 4px; height: calc(var(--rh) - 4px); border-bottom: 1.5px solid var(--ink); }
/* who does each step */
.pr-by { display: flex; align-items: center; gap: 10px; min-width: 0; }
.by { display: none; align-items: center; gap: 7px; white-space: nowrap; font-size: 14px; }
.by svg { width: 16px; height: 16px; flex: none; }
.by-person { display: inline-flex; color: var(--muted); }
.agent .by-person { display: none; }
.agent.t-bot .by-bot, .agent.t-ai .by-ai, .agent.t-human .by-human { display: inline-flex; animation: fadeIn .45s ease-out; }
.by-bot, .by-ai { font: 500 12px/1 var(--font-mono); padding: 5px 8px; }
.by-bot { border: 1px solid var(--ink); }
.by-ai { background: var(--ink); color: var(--panel); border: 1px solid var(--ink); }
[data-look="sunrise"] .by-bot, [data-look="sunrise"] .by-ai { font-family: var(--font-body); border-radius: 999px; padding: 5px 10px; }
[data-look="sunrise"] .by-bot { border-color: var(--rule-2); }
.by-human { color: var(--ink); font-weight: 500; }
.pr-by .mk { width: 28px; height: 28px; }
.ico { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

.phases { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rule-2); }
.phases button { all: unset; box-sizing: border-box; width: 100%; cursor: pointer; position: relative; display: grid; gap: 8px; padding: 22px 20px 4px 0; }
.phases .bar { position: absolute; top: -1px; left: 0; right: 20px; height: 2px; overflow: hidden; }
.phases .bar::after { content: ""; position: absolute; inset: 0; transform-origin: left; transform: scaleX(var(--p, 0)); background: var(--accent); }
.phases button.on .bar { background: color-mix(in srgb, var(--accent) 22%, transparent); }
.phases .no { font: 500 12px/1 var(--font-mono); color: var(--dim); }
.phases .name { font: 500 14px/1.3 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); transition: color .3s; }
.phases .out { font-size: 16px; color: var(--dim); transition: color .3s; }
.phases button.on .name, .phases button:hover .name { color: var(--ink); }
.phases button.on .out { color: var(--muted); }
.phases button:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; }

/* ── What your AI OS does: five cards, one open ── */
.acc { --tab: 76px; --gap: 10px; display: flex; gap: var(--gap); height: 590px; margin-top: 56px; container-type: inline-size; }
.card { position: relative; flex: 0 0 var(--tab); min-width: 0; overflow: hidden; transition: flex-grow .6s var(--ease), background .3s; }
.card.open { flex: 1 1 0; }

[data-look="sunrise"] .card { border: 1px solid var(--rule); border-radius: 14px; background: rgba(255, 255, 255, .55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
[data-look="sunrise"] .card.open { background: rgba(255, 255, 255, .8); }
.card-tab { all: unset; box-sizing: border-box; cursor: pointer; position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 24px 0; transition: opacity .3s, background .2s; }
.card-tab:hover { background: color-mix(in srgb, var(--ink) 4%, transparent); }
.card-tab:focus-visible { outline: 2px solid var(--accent); outline-offset: -4px; }
.card-tab .no, .card-text .no { font: 500 12px/1 var(--font-mono); color: var(--dim); letter-spacing: .06em; }
.card-tab .ttl { writing-mode: vertical-rl; transform: rotate(180deg); font: 500 15px/1 var(--font-body); color: var(--muted); white-space: nowrap; letter-spacing: .01em; }

.card-tab:hover .ttl { color: var(--ink); }
.card.open .card-tab { opacity: 0; pointer-events: none; }
.card-body { position: absolute; top: 0; bottom: 0; left: 0; width: calc(100cqw - 4 * (var(--tab) + var(--gap))); padding: 30px 32px 32px; display: flex; flex-direction: column; gap: 26px; opacity: 0; visibility: hidden; transition: opacity .3s, visibility 0s .3s; }
.card.open .card-body { opacity: 1; visibility: visible; transition: opacity .45s .2s; }
.card-text { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; align-items: baseline; }
.card-text h3 { font-size: 30px; }
[data-look="sunrise"] .card-text h3 { font-size: 24px; letter-spacing: -.02em; }
.card-text p { grid-column: 2; color: var(--muted); font-size: 16px; max-width: 520px; }
.scr { flex: 1; min-height: 0; display: flex; flex-direction: column; }

.sc-body { flex: 1; min-height: 0; padding: 20px 22px; position: relative; overflow: hidden; }
/* 02 Knowledge: a question and its answer, with the source */
.sc-q { margin-left: auto; max-width: 78%; width: fit-content; padding: 12px 15px; font-size: 15px; }

[data-look="sunrise"] .sc-q { border-radius: 14px 14px 4px 14px; background: #F0F0F3; }
.sc-a { margin-top: 20px; max-width: 92%; }
.sc-a p { font: var(--head-weight) 25px/1.3 var(--font-head); letter-spacing: -.01em; }
[data-look="sunrise"] .sc-a p { font-size: 22px; letter-spacing: -.02em; }
.sc-a .res-src { margin-top: 16px; }
/* 03 Documents: the invoice is read into the form */
.sc-doc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; height: 100%; }
.inv { padding: 16px 16px 14px; position: relative; display: grid; align-content: start; gap: 9px; }

[data-look="sunrise"] .inv { border: 1px solid var(--rule); border-radius: 8px; background: #FCFCFD; }
.inv-head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 8px; border-bottom: 1px solid var(--rule-2); }
.inv-head b { font: 600 12px/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; }
.inv-head span { font: 400 12px/1 var(--font-mono); color: var(--dim); }
.inv-row { display: flex; justify-content: space-between; align-items: center; font-size: 14px; }
.inv-row .k { font: 400 12px/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--dim); }
.inv-lines { display: grid; gap: 7px; margin-block: 4px; }
.inv-lines i { height: 3px; background: var(--rule); }
.inv-lines i:nth-child(2) { width: 80%; } .inv-lines i:nth-child(3) { width: 55%; }
.hl { padding: 1px 4px; margin: -1px -4px; transition: background .25s, box-shadow .25s; font-variant-numeric: tabular-nums; }
.hl.on { background: color-mix(in srgb, var(--ink) 9%, transparent); box-shadow: inset 0 -2px 0 var(--ink); }
[data-look="sunrise"] .hl { border-radius: 3px; }
[data-look="sunrise"] .hl.on { background: color-mix(in srgb, var(--accent) 14%, transparent); box-shadow: none; }
.inv .mk { position: absolute; right: 14px; bottom: 14px; width: 54px; height: 54px; }
.frm { display: grid; gap: 12px; align-content: start; }
.fld-l { display: block; font: 500 12px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--dim); margin-bottom: 5px; }
.fld { display: block; min-height: 30px; padding: 5px 0 4px; border-bottom: 1px solid var(--rule-2); white-space: nowrap; overflow: hidden; font-size: 14px; font-variant-numeric: tabular-nums; }
.fld.typing { border-bottom-color: var(--ink); }
[data-look="sunrise"] .fld { padding: 6px 10px 5px; border: 1px solid var(--rule-2); border-radius: 6px; }
[data-look="sunrise"] .fld.typing { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent); }
.frm .appr-foot { margin-top: 4px; }
/* 04 Investigation and 05 Scheduled work: small tables */
.sc-ask { font-size: 15px; display: flex; align-items: center; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid var(--rule-2); min-height: 44px; }
.sc-ask .lbl { font: 500 12px/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--dim); }
.tbl { display: grid; }
.tbl > div { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, .8fr); gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--rule); font-size: 14px; font-variant-numeric: tabular-nums; }
.tbl > div > span:not(:first-child) { text-align: right; }
.tbl .th { font: 500 12px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--dim); padding-top: 12px; }
.tbl .down { color: var(--flag); font-weight: 500; }
.sc-why { margin-top: 16px; display: flex; gap: 12px; align-items: flex-start; font: var(--head-weight) 19px/1.35 var(--font-head); }
[data-look="sunrise"] .sc-why { font-size: 17px; letter-spacing: -.01em; }
.sc-why .tk { margin-top: 2px; }
.tbl.sched > div { grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr) 140px; padding: 10px 0; }
.tbl.sched > div > span:nth-child(2) { text-align: left; color: var(--muted); }
.st { justify-self: end; }
.st .pill { position: relative; overflow: hidden; }
.st .pill.run { color: var(--ink); border-color: var(--ink); }
.st .pill.run i { position: absolute; left: 0; bottom: 0; height: 2px; width: calc(var(--k, 0) * 100%); background: var(--ink); }
[data-look="sunrise"] .st .pill.run { border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
[data-look="sunrise"] .st .pill.run i { background: var(--accent); }
.st .pill.ok { color: var(--ink); }
.st .pill.ok::before { content: "✓"; color: var(--accent); }

/* 01 Early warning: three problems nobody has raised yet, each with where it was seen and who owns it */
.scr[data-scr="watch"] .sc-body { padding-block: 14px; }
.watch { display: grid; gap: 8px; }
.alert { display: grid; gap: 4px; padding: 10px 14px; border: 1px solid var(--rule); border-left: 3px solid var(--flag); border-radius: 8px; background: #FCFCFD; }
.al-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.al-top b { font: 500 15px/1.3 var(--font-body); }
.al-top .pill { flex: none; }
.al-why { font-size: 13.5px; line-height: 1.4; color: var(--muted); }
.al-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; color: var(--muted); }
.al-own { display: inline-flex; align-items: center; gap: 5px; }
.al-own .ico { width: 14px; height: 14px; }
.al-act { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; height: 24px; padding: 0 10px; font: 500 12.5px/1 var(--font-body); color: var(--accent); border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); border-radius: 6px; white-space: nowrap; transition: transform .15s, background .15s, color .3s, border-color .3s; }
.al-act.press { transform: scale(.95); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.al-act.drafted { color: var(--ink); border-color: var(--rule-2); }
.al-act.drafted::before { content: "✓"; line-height: 1; color: var(--accent); }
/* 04 Investigation: the trail through three systems */
.tbl.trail > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) 120px; }
.tbl.trail > div > span:nth-child(2) { text-align: left; }

/* ── Case study ─────────────────────────────────────── */
.own { display: grid; grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr); gap: 56px; align-items: center; }
.own-text { display: grid; gap: 24px; align-content: center; min-width: 0; }
.case-tags { display: flex; gap: 8px; flex-wrap: wrap; }
.own-text .line { color: var(--muted); font-size: 18px; max-width: 480px; }
.own-text .link { color: var(--accent-ink); font-weight: 500; justify-self: start; }
.own-text .link:hover { text-decoration: underline; text-underline-offset: 4px; }

.compare { margin: 0; padding-top: 24px; border-top: 1px solid var(--rule-2); display: grid; gap: 24px; max-width: 520px; }
.cmp-block { display: grid; gap: 10px; }
.cmp-head { font: 500 12px/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.cmp-line { display: grid; grid-template-columns: 96px 1fr 58px; align-items: center; gap: 14px; }
.cmp-lab { font-size: 14px; color: var(--muted); }
.cmp-line b { font: 600 20px/1 var(--font-body); letter-spacing: -.01em; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cmp-track { height: 6px; background: var(--rule); }
.cmp-bar { display: block; height: 100%; width: calc(var(--w) * 100%); }
.cmp-bar.before { background: var(--dim); }
.cmp-bar.after { background: var(--ink); }
[data-look="sunrise"] .cmp-track { height: 10px; border-radius: 3px; background: color-mix(in srgb, var(--ink) 6%, transparent); }
[data-look="sunrise"] .cmp-bar { border-radius: 3px; }
[data-look="sunrise"] .cmp-bar.before { background: var(--soft); }
[data-look="sunrise"] .cmp-bar.after { background: var(--accent); }
.seats { display: grid; grid-template-columns: repeat(12, minmax(0, 18px)); gap: 5px; }
.seats i { display: block; aspect-ratio: 1; border: 1.5px solid var(--dim); }
.seats i.one { background: var(--ink); border-color: var(--ink); }
[data-look="sunrise"] .seats i { border-radius: 3px; border-color: var(--soft); background: var(--panel); }
[data-look="sunrise"] .seats i.one { background: var(--accent); border-color: var(--accent); }
/* reveal once, when the block comes into view: the bars grow */
.js-anim .compare .cmp-bar { transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--ease); }
.js-anim .compare.play .cmp-bar { transform: none; }
.js-anim .compare.play .cmp-bar.after { transition-delay: .35s; }
/* ── Case study: CATLab's own schedule ── */
.lab { min-width: 0; }
.lab-table { padding: 4px 20px 12px; }
.lab-row { display: grid; grid-template-columns: minmax(0, 1fr) 84px 132px 96px; gap: 12px; align-items: center; height: 56px; border-bottom: 1px solid var(--rule); font-size: 14px; }
.lab-row:last-child { border-bottom: 0; }
.lab-head { white-space: nowrap; height: 42px; font: 500 12px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--dim); border-bottom-color: var(--rule-2); }
.lab-name { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lab-runs { color: var(--muted); font-size: 13px; white-space: nowrap; }
.lab-st .pill { position: relative; overflow: hidden; }
.lab-st .pill.run { color: var(--ink); border-color: var(--ink); }
.lab-st .pill.run i { position: absolute; left: 0; bottom: 0; height: 2px; width: calc(var(--k, 0) * 100%); background: var(--ink); }
.lab-st .pill.rev { color: var(--ink); background: color-mix(in srgb, var(--ink) 7%, transparent); border-color: var(--ink); }
.lab-st .pill.ok { color: var(--ink); }
[data-look="sunrise"] .lab-st .pill.run { border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
[data-look="sunrise"] .lab-st .pill.run i { background: var(--accent); }
[data-look="sunrise"] .lab-st .pill.rev { background: #FDF1E4; border-color: #F2C894; color: #8A4A10; }
.lab-by { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); min-width: 0; }
.lab-by .mk { width: 26px; height: 26px; }
.lab-by span { opacity: 0; transition: opacity .3s; }
.lab-by.on span { opacity: 1; color: var(--ink); }

/* ── Working together: four open columns ────────────── */
.ladder { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 56px; border-top: 1px solid var(--rule-2); }
.rung { padding: 26px 24px 8px; border-left: 1px solid var(--rule); display: grid; align-content: start; gap: 10px; }
.rung:first-child { border-left: 0; padding-left: 0; }
.rung .rn { font: 500 12px/1 var(--font-mono); color: var(--dim); }
.rung h3 { font-size: 26px; margin-top: 4px; }

[data-look="sunrise"] .rung h3 { font-size: 21px; letter-spacing: -.02em; }
.rung p { color: var(--muted); font-size: 16px; }
.rung .tag { justify-self: start; margin-top: 6px; }

/* ── Closing call ───────────────────────────────────── */
.close { overflow: hidden; }
.close-inner { position: relative; z-index: 1; display: grid; justify-items: start; gap: 22px; }
.close h2 { font-size: clamp(42px, 6vw, 84px); max-width: 900px; }
[data-look="sunrise"] .close h2 { font-size: clamp(40px, 5.4vw, 72px); }
.close p { color: var(--muted); font-size: 19px; max-width: 560px; }
.close .btn { margin-top: 10px; }
[data-look="sunrise"] .close::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none; left: -10%; top: -10%; width: 90%; height: 130%;
  background: radial-gradient(40% 45% at 30% 55%, rgba(244, 162, 89, .22), transparent 72%), radial-gradient(40% 46% at 55% 40%, rgba(85, 98, 232, .16), transparent 72%);
  filter: blur(20px);
}

/* ── Footer ──────────────────────────────────────────── */
.footer { border-top: 1px solid var(--rule-2); padding-block: 32px 44px; color: var(--dim); font-size: 14px; position: relative; z-index: 1; }
.band + .footer, .close + .footer { border-top: 0; }
.footer .wrap { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; }
main { position: relative; z-index: 1; }

/* ═════════════════ CONTACT ═════════════════ */
.page-head { padding-block: 96px 48px; }
.page-head h1 { font-size: clamp(44px, 6vw, 80px); margin-top: 20px; max-width: 900px; }
.page-head p { color: var(--muted); font-size: 19px; margin-top: 20px; max-width: 580px; }
.contact-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 56px; align-items: start; padding-bottom: 120px; }
.pane { min-width: 0; }
.form-pane { padding: 40px; background: var(--panel); border: 1px solid var(--rule-2); }

[data-look="sunrise"] .form-pane { border-color: var(--rule); border-radius: var(--win-radius); box-shadow: var(--shadow); }
.pane h2 { font-size: 28px; }
[data-look="sunrise"] .pane h2 { font-size: 22px; letter-spacing: -.02em; }
.pane p.sub { color: var(--muted); margin: 8px 0 28px; font-size: 16px; }
.field { display: grid; gap: 6px; margin-bottom: 22px; }
.field label, .field .lbl { font: 500 11px/1.2 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.two .field { margin-bottom: 22px; }
.input, .textarea {
  width: 100%; color: var(--ink); font: 400 16px/1.5 var(--font-body); outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.input::placeholder, .textarea::placeholder { color: var(--dim); }
/* The Ledger: a paper form on ruled lines */

/* Sunrise: an app-style form */
[data-look="sunrise"] .input, [data-look="sunrise"] .textarea { background: #fff; border: 1px solid var(--rule-2); border-radius: 6px; padding: 11px 13px; }
[data-look="sunrise"] .textarea { min-height: 130px; resize: vertical; }
[data-look="sunrise"] .input:focus, [data-look="sunrise"] .textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent); }
[data-look="sunrise"] .input.auto-typing { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent); }
.topics { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.topic { all: unset; cursor: pointer; font-size: 14px; padding: 7px 12px; border: 1px solid var(--rule-2); color: var(--muted); transition: background .2s, border-color .2s, color .2s; display: inline-flex; align-items: center; gap: 6px; }
.topic:hover { color: var(--ink); border-color: var(--ink); }
.topic[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--bg); }
.topic[aria-pressed="true"]::before { content: "✓"; font-size: 12px; }
[data-look="sunrise"] .topic { border-radius: 5px; background: #fff; }
[data-look="sunrise"] .topic[aria-pressed="true"] { background: color-mix(in srgb, var(--accent) 10%, #fff); border-color: var(--accent); color: var(--ink); }
[data-look="sunrise"] .topic[aria-pressed="true"]::before { color: var(--accent-ink); }
.topic:focus-visible { outline: 2px solid var(--accent); }
.topic.auto-on { animation: autoOn .6s var(--ease); }
@keyframes autoOn { 0% { transform: scale(.92); } 60% { transform: scale(1.05); } 100% { transform: none; } }
.hp { position: absolute; left: -9999px; }
.note { margin-top: 14px; padding: 12px 14px; font-size: 14px; border: 1px solid var(--accent); color: var(--accent-ink); }
[data-look="sunrise"] .note { border-radius: 6px; }

.next-pane { padding-top: 6px; }
.next { display: grid; margin-top: 24px; border-top: 1px solid var(--rule-2); }
.next div { display: grid; grid-template-columns: 36px 1fr; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--rule); color: var(--muted); font-size: 16px; }
.next span { font: 500 12px/24px var(--font-mono); color: var(--ink); }
.side { display: grid; gap: 20px; min-width: 0; }

/* On send: the request is seen being handled */
.send-stage { padding: 28px 0 8px; display: grid; justify-items: center; }
.sheet { position: relative; width: 168px; height: 212px; padding: 18px 16px; background: var(--panel); border: 1px solid var(--ink); box-shadow: 4px 4px 0 var(--rule-2); display: grid; gap: 9px; align-content: start; }
.sheet b { font: 600 11px/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; padding-bottom: 8px; border-bottom: 1px solid var(--rule-2); }
.sheet .who { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sheet i { height: 3px; background: var(--rule-2); }
.sheet i:nth-of-type(2) { width: 85%; } .sheet i:nth-of-type(4) { width: 60%; }
.sheet .stamp { position: absolute; right: 12px; bottom: 16px; width: 64px; height: 64px; opacity: 0; }
.sheet .stamp svg { width: 100%; height: 100%; }
.card-sent { width: min(320px, 100%); padding: 18px 18px; display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--rule); border-radius: 10px; box-shadow: var(--shadow); }
.card-sent .who { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card-sent small { display: block; color: var(--dim); font: 400 12px/1.3 var(--font-mono); margin-top: 3px; }
.card-sent .ring { width: 44px; height: 44px; position: relative; }
.card-sent .ring svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.card-sent .spin { transform-origin: 50% 50%; animation: spin 1.1s linear infinite; }
.card-sent .mk-badge { opacity: 0; transform: scale(.6); }
@keyframes spin { to { transform: rotate(360deg); } }
.done { text-align: center; padding: 22px 8px 6px; }
.done h3 { font-size: 30px; }
[data-look="sunrise"] .done h3 { font-size: 24px; letter-spacing: -.02em; }
.done p { color: var(--muted); margin-top: 10px; font-size: 16px; }

/* ── Responsive ──────────────────────────────────────── */
@media (max-width: 1020px) {
  :root, [data-look] { --margin: 0px; }
  
  .sec-grid { grid-template-columns: minmax(0, 1fr); }
  .sec-margin { padding: 0 0 22px; }
  .own { grid-template-columns: 1fr; gap: 48px; }
  .contact-grid { grid-template-columns: 1fr; gap: 48px; }
  [data-look="sunrise"] .sec[data-no]::after { top: 92px; }
}
@media (max-width: 720px) {
  body { font-size: 16px; }
  .sec { padding-block: 88px; }
  [data-look="sunrise"] .sec[data-no]::after { top: 88px; right: 28px; }
  .hero .lede { font-size: 17px; }
  .phases button { padding: 16px 10px 4px 0; gap: 6px; }
  .phases .bar { right: 10px; }
  .phases .name { font-size: 11px; letter-spacing: .06em; }
  .phases .out { font-size: 12px; line-height: 1.3; }
  .cmp-line { grid-template-columns: 78px 1fr 46px; gap: 10px; }
  .cmp-lab { font-size: 13px; }
  .cmp-line b { font-size: 17px; }
  .seats { gap: 3px; }
  .ladder { grid-template-columns: 1fr 1fr; margin-top: 40px; }
  .rung:nth-child(3) { border-left: 0; padding-left: 0; }
  .rung:nth-child(n+3) { border-top: 1px solid var(--rule); margin-top: 18px; }
  .page-head { padding-block: 64px 36px; }
  .form-pane { padding: 28px 20px; }
}
@media (max-width: 560px) {
  .wrap { padding-inline: 16px; }
  .nav .wrap { height: 68px; }
  .nav-link { display: none; }
  .brand { font-size: 22px; gap: 10px; }
  .brand-mark { width: 32px; height: 32px; }
  .two { grid-template-columns: 1fr; gap: 0; }
  .ladder { grid-template-columns: 1fr; }
  .rung, .rung:nth-child(3) { border-left: 0; padding-left: 0; padding-right: 0; }
  .rung + .rung { border-top: 1px solid var(--rule); margin-top: 0; }
  .rung { padding-bottom: 22px; }
  .hero .ctas .btn { flex: 1 1 100%; }
}
/* ── Screens on tablets and phones ── */
@media (max-width: 1020px) {
  .os-job { grid-template-columns: minmax(0, 1fr); align-content: start; }
  .os-left { border-right: 0; border-bottom: 1px solid var(--rule); }
  .lab { max-width: 640px; }
}
@media (max-width: 760px) {
  /* the five cards become a stacked list; one row open, its screen below its title */
  .acc { flex-direction: column; height: auto; gap: 8px; margin-top: 40px; container-type: normal; }
  .card, .card.open { flex: none; }
  .card-tab { position: static; flex-direction: row; align-items: center; gap: 14px; padding: 16px 18px; }
  .card.open .card-tab { opacity: 1; pointer-events: auto; padding-bottom: 6px; }
  .card-tab .ttl { writing-mode: horizontal-tb; transform: none; font-size: 17px; color: var(--ink); }
  
  .card-body { position: static; width: auto; display: none; padding: 0 14px 14px; gap: 14px; opacity: 1; visibility: visible; }
  .card.open .card-body { display: flex; }
  .card-text { display: block; padding-left: 4px; }
  .card-text .no, .card-text h3 { display: none; }
  .card-text p { font-size: 15px; min-height: 3.2em; }
  .scr { flex: none; height: 540px; }
  .sc-body { padding: 16px; }
  .sc-q { max-width: 92%; font-size: 14px; }
  .sc-a { max-width: none; }
  .sc-a p { font-size: 21px; }
  .sc-doc { grid-template-columns: minmax(0, 1fr); gap: 12px; height: auto; }
  .inv { padding: 12px 14px 52px; gap: 7px; }
  .inv-lines { display: none; }
  .inv .mk { width: 40px; height: 40px; right: 12px; bottom: 8px; }
  .frm { grid-template-columns: 1fr 1fr; gap: 10px 12px; }
  .frm > div:first-child, .frm .appr-foot { grid-column: 1 / -1; }
  .fld { min-height: 28px; font-size: 13px; }
  .tbl > div { gap: 8px; font-size: 13px; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, .7fr); }
  .tbl .th { font-size: 12px; letter-spacing: .02em; }
  .sc-why { font-size: 17px; }
  .tbl.sched > div { grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; }
  .tbl.sched > div > span:nth-child(2) { grid-column: 1; grid-row: 2; font-size: 12px; }
  .tbl.sched > div > .st, .tbl.sched .th > span:nth-child(3) { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .tbl.sched .th > span:nth-child(2) { display: none; }
  .scr[data-scr="watch"] .sc-body { padding: 12px; }
  .alert { padding: 9px 11px; gap: 4px; }
  .al-top .pill { padding: 4px 8px; font-size: 11px; }
  .al-top b { font-size: 14px; }
  .al-why { font-size: 12.5px; }
  .tbl.trail > div { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; }
  .tbl.trail > div > span:nth-child(2) { grid-column: 1; grid-row: 2; font-size: 12.5px; }
  .tbl.trail > div > .st, .tbl.trail .th > span:nth-child(3) { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .tbl.trail .th > span:nth-child(2) { display: none; }
}
@media (max-width: 720px) {
  .hero-inner { padding-block: 56px 72px; }
  .os { margin-top: 44px; min-height: 0; }
  .os-tabs { gap: 24px; padding: 0 16px; }
  .os-left, .os-right { padding: 18px 16px; }
  .os-prompt { min-height: 0; font-size: 16px; padding: 12px 12px 12px 14px; }
  .os-send { width: 28px; height: 28px; }
  .steps { margin-top: 16px; }
  .steps li { align-items: flex-start; flex-wrap: wrap; gap: 6px 10px; padding: 10px 0; font-size: 14px; }
  .steps li span:last-child { flex: 1 1 160px; padding-top: 2px; }
  .res { padding: 18px 16px; }
  .res-ans { font-size: 24px; }
  [data-look="sunrise"] .res-ans { font-size: 21px; }
  .res-doc { padding: 12px 14px; font-size: 13px; }
  .mgr .pill.flag { white-space: normal; max-width: 150px; line-height: 1.3; text-align: right; }
  /* process: two lines per step; the hours bar becomes the row's underline */
  .pr { margin-top: 40px; --rh: 68px; }
  .pr-table { padding: 2px 16px 12px; min-height: calc(40px + 7 * var(--rh) + 56px + 14px); }
  .pr-row { position: relative; grid-template-columns: 22px minmax(0, 1fr) 40px; grid-template-areas: "no step h" "no by h"; gap: 4px 10px; align-content: center; }
  .pr-no { grid-area: no; align-self: start; padding-top: 4px; }
  .pr-step { grid-area: step; }
  .pr-by { grid-area: by; }
  .pr-h { grid-area: h; }
  .pr-bar, [data-look="sunrise"] .pr-bar { position: absolute; left: 32px; right: 0; bottom: 0; height: 2px; background: none; border-radius: 0; }
  .pr-head { grid-template-areas: "no step h"; grid-template-columns: 22px minmax(0, 1fr) auto; height: 40px; }
  .pr-head > span:nth-child(3) { display: none; }
  .pr-total { grid-template-areas: "no step h"; height: 56px; }
  .pr-name { font-size: 14px; }
  .by { font-size: 13px; }
  .pr-step .pill { font-size: 12px; padding: 3px 6px; }
  .pr-row.par-top .pr-no::after { top: 6px; height: calc(var(--rh) - 6px); left: 16px; }
  .pr-row.par-bot .pr-no::after { bottom: 4px; height: calc(var(--rh) - 4px); left: 16px; top: auto; }
  .pr-row.par-on .pr-no::after { left: 16px; }
  /* CATLab: name over its schedule; status over the reviewer */
  .lab-table { padding: 2px 14px 8px; }
  .lab-row { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; gap: 3px 10px; height: 66px; align-content: center; }
  .lab-runs { grid-column: 1; grid-row: 2; font-size: 12px; }
  .lab-st { grid-column: 2; grid-row: 1; justify-self: end; }
  .lab-by { grid-column: 2; grid-row: 2; justify-self: end; font-size: 12px; }
  .lab-by .mk { width: 20px; height: 20px; }
  .lab-head { height: 38px; grid-template-rows: auto; }
  .lab-head > span:nth-child(2), .lab-head > span:nth-child(4) { display: none; }
  .lab-head > span:nth-child(3) { grid-column: 2; grid-row: 1; justify-self: end; }
}
@media (prefers-reduced-motion: reduce) {
  /* calmer, not frozen: the scripts slow every timeline down and fade text in instead of typing it;
     CSS keeps the fades, drops the rise, the press and the pop, and slows every change */
  .topic.auto-on { animation: none; }
  .rise { transform: none; transition-duration: .8s; }
  .mk, [data-look="sunrise"] .mk { transform: none; transition: opacity .8s; }
  .os-q, .q, .fld { transition: opacity .6s; }
  .mini-btn.press, .os-send.press { transform: none; }
  .card, .card-body, .pr-rows .pr-row, .pr-bar i { transition-duration: 1s; }
}
