:root {
  --cp-route-soft: color-mix(in srgb, var(--cp-border-strong) 45%, var(--cp-coffee-bg));
  --cp-route-vivid: oklch(from var(--cp-clay-strong) l 0.22 h);
  --cp-journey-ink: var(--cp-clay-strong);
  --cp-rule: color-mix(in srgb, var(--cp-text) 20%, var(--cp-coffee-bg));
  --cp-transparent: transparent;
  --journey-progress: 0;
  --journey-vibrancy: 10%;
  --header-height: 80px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
body { margin: 0; background: var(--cp-coffee-bg); color: var(--cp-text); font-family: "Segoe UI", Aptos, Calibri, -apple-system, BlinkMacSystemFont, sans-serif; font-size: 16px; line-height: 1.6; }
a { color: inherit; text-underline-offset: 5px; }
a, button { -webkit-tap-highlight-color: var(--cp-accent-soft); }
a:focus-visible, button:focus-visible, h2:focus-visible { outline: 3px solid var(--cp-journey-ink); outline-offset: 5px; }
button { font: inherit; cursor: pointer; }
svg { display: block; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
img { display: block; object-fit: contain; flex-shrink: 0; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.03em; }
p { color: var(--cp-readable-muted); max-width: 65ch; }
.skip-link { position: fixed; left: 16px; top: -100px; background: var(--cp-surface); padding: 12px 16px; z-index: 100; }
.skip-link:focus { top: 16px; }
.site-header { min-height: var(--header-height); max-width: 1248px; margin: 0 auto; padding: 16px 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--cp-rule); }
.brand { display: inline-flex; gap: 12px; align-items: center; min-height: 44px; text-decoration: none; font-size: 16px; font-weight: 650; line-height: 1.3; }
.header-nav { display: flex; align-items: center; gap: 24px; font-size: 14px; }
.text-link:hover { color: var(--cp-journey-ink); }
.sign-in { display: inline-flex; justify-content: center; align-items: center; gap: 24px; min-height: 48px; padding: 12px 20px; border: 1px solid var(--cp-border-strong); border-radius: 10px; color: var(--cp-text); background: var(--cp-surface); font-size: 15px; font-weight: 600; text-decoration: none; line-height: 1.4; }
.sign-in span { font-size: 19px; font-weight: 400; }
.sign-in:hover { border-color: var(--cp-journey-ink); background: var(--cp-bg-elevated); }
.sign-in.primary { background: var(--cp-clay-strong); color: var(--cp-accent-fg); border-color: var(--cp-clay-strong); }
.sign-in.primary:hover { background: color-mix(in srgb, var(--cp-clay-strong) 85%, var(--cp-text)); }
.opening, .journey, .closing, .site-footer { width: min(1184px, calc(100% - 64px)); margin-inline: auto; }
.opening { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .75fr); align-items: center; gap: 80px; padding-block: 80px 88px; }
h1 { font-size: clamp(44px, 4.6vw, 66px); line-height: 1.08; margin-bottom: 28px; }
h1 span { color: var(--cp-journey-ink); }
.opening-copy > p { font-size: 19px; max-width: 43ch; margin-bottom: 28px; }
.text-link { display: inline-flex; min-height: 44px; gap: 24px; align-items: center; font-size: 15px; }
.entry { padding: 32px; border: 1px solid var(--cp-rule); border-radius: 16px; background: var(--cp-coffee-surface); }
.entry-logo { margin-bottom: 24px; }
.entry h2 { font-size: 30px; line-height: 1.18; letter-spacing: -.02em; margin-bottom: 16px; }
.entry > p { font-size: 16px; margin-bottom: 24px; }
.entry .sign-in { width: 100%; }
.entry .entry-note { font-size: 13px; margin: 16px 0 0; }
.journey { display: grid; grid-template-columns: 288px minmax(0, 1fr); align-items: start; gap: 80px; border-top: 1px solid var(--cp-rule); padding-top: 48px; }
.journey-map { position: sticky; top: 72px; height: 640px; }
.route { position: absolute; inset: 0; width: 288px; height: 640px; pointer-events: none; }
.route-base { stroke: var(--cp-route-soft); stroke-width: 2; }
.route-progress { stroke: color-mix(in oklch, var(--cp-route-soft), var(--cp-route-vivid) var(--journey-vibrancy)); stroke-width: 3; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--journey-progress)); }
.route-phone { display: none; }
.stage-links { margin: 0; padding: 0; list-style: none; position: relative; display: grid; grid-template-rows: repeat(4, 160px); }
.stage-links li { display: flex; min-width: 0; align-items: center; }
.stage-links a { width: 100%; min-height: 64px; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 12px; text-decoration: none; }
.stage-node { position: relative; display: grid; place-items: center; justify-self: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--cp-border-strong); background: var(--cp-coffee-bg); color: var(--cp-readable-muted); font-size: 14px; }
.stage-label { font-size: 18px; font-family: Georgia, "Times New Roman", serif; color: var(--cp-readable-muted); line-height: 1.25; }
.stage-links a:hover .stage-label, .stage-links a.is-current .stage-label { color: var(--cp-journey-ink); }
.stage-links a.is-current .stage-node { color: var(--cp-journey-ink); border-color: var(--cp-journey-ink); }
.orbit { position: absolute; inset: -6px; border: 1px solid var(--cp-transparent); border-radius: 50%; opacity: 0; pointer-events: none; }
.is-current .orbit { opacity: 1; border-color: var(--cp-clay-soft); animation: orbit 10s linear infinite; }
.orbit::after { content: ""; position: absolute; left: calc(50% - 2px); top: -2px; width: 4px; height: 4px; border-radius: 50%; background: var(--cp-journey-ink); box-shadow: 0 0 8px 3px var(--cp-clay-soft); }
[data-motion-paused="true"] .orbit { animation-play-state: paused; }
@keyframes orbit { to { transform: rotate(360deg); } }
.journey-stage { min-height: 580px; padding: 32px 0 72px; border-bottom: 1px solid var(--cp-rule); }
.journey-stage + .journey-stage { padding-top: 64px; }
.journey-stage:last-child { border: 0; }
.stage-copy h2 { font-size: clamp(30px, 3vw, 42px); line-height: 1.15; margin-bottom: 20px; }
.stage-copy p { max-width: 61ch; font-size: 17px; margin-bottom: 32px; }
.workflow { margin: 0; border: 1px solid var(--cp-rule); border-radius: 16px; padding: 24px; background: var(--cp-coffee-surface); }
.workflow-bar { display: flex; justify-content: space-between; align-items: center; min-height: 32px; margin-bottom: 24px; font-size: 16px; font-weight: 600; color: var(--cp-text); }
.workflow-bar svg { color: var(--cp-journey-ink); }
.search-outline { display: grid; grid-template-columns: 1fr 1fr 1fr; padding-bottom: 16px; border-bottom: 1px solid var(--cp-rule); font-size: 14px; color: var(--cp-readable-muted); }
.search-outline span + span { border-left: 1px solid var(--cp-rule); padding-left: 20px; }
.role-paper { position: relative; padding: 28px 56px 24px 0; }
.paper-title { display: block; font-size: 19px; font-family: Georgia, "Times New Roman", serif; }
.paper-line { display: block; height: 5px; width: 52%; background: var(--cp-clay-soft); margin-top: 14px; border-radius: 2px; }
.paper-line.long { width: 76%; }
.role-bookmark { position: absolute; right: 0; top: 32px; color: var(--cp-journey-ink); }
.role-bookmark svg { width: 28px; height: 28px; }
figcaption { font-size: 13px; line-height: 1.55; color: var(--cp-readable-muted); margin-top: 20px; max-width: 65ch; }
.private-label { font-size: 12px; font-weight: 400; }
.tracker-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0 24px; font-family: Georgia, "Times New Roman", serif; font-size: 21px; }
.status-label { font-family: "Segoe UI", Aptos, sans-serif; font-size: 12px; border: 1px solid var(--cp-rule); border-radius: 6px; padding: 3px 10px; }
.tracker-stages { display: flex; flex-wrap: wrap; gap: 12px 24px; font-size: 13px; color: var(--cp-journey-ink); border-top: 1px solid var(--cp-rule); border-bottom: 1px solid var(--cp-rule); padding-block: 14px; }
.tracker-stages span + span::before { content: "→"; margin-right: 18px; color: var(--cp-readable-muted); }
.note-lines { padding-top: 20px; font-size: 13px; color: var(--cp-readable-muted); }
.note-lines i { display: block; width: 100%; height: 1px; background: var(--cp-rule); margin-top: 16px; }
.note-lines i:last-child { width: 66%; }
.person-outline { display: flex; align-items: center; gap: 20px; padding-bottom: 24px; font-family: Georgia, "Times New Roman", serif; font-size: 21px; line-height: 1.4; }
.person-outline small { font-family: "Segoe UI", Aptos, sans-serif; font-size: 13px; color: var(--cp-readable-muted); }
.person-shape { display: grid; place-items: center; width: 64px; height: 64px; background: var(--cp-clay-soft); border-radius: 50%; color: var(--cp-journey-ink); }
.person-shape svg { width: 48px; height: 48px; }
.outreach-steps { margin: 0; padding: 0 0 0 24px; font-size: 14px; }
.outreach-steps li { padding: 10px 0 10px 8px; border-top: 1px solid var(--cp-rule); }
.outreach-steps li::marker { color: var(--cp-journey-ink); }
.offer-sheet { padding: 24px 16px; }
.offer-mark { display: block; width: 48px; height: 48px; margin-bottom: 24px; color: var(--cp-journey-ink); }
.offer-sheet h3 { font-family: Georgia, "Times New Roman", serif; font-size: 36px; font-weight: 400; line-height: 1.2; letter-spacing: -.02em; margin-bottom: 12px; }
.offer-sheet p { font-size: 15px; }
.signature-lines { display: flex; gap: 32px; margin-top: 40px; }
.signature-lines span { height: 1px; background: var(--cp-rule); width: 60%; }
.signature-lines span:last-child { width: 25%; }
.closing { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); align-items: center; gap: 80px; padding: 64px 0 72px; border-top: 1px solid var(--cp-rule); }
.closing h2 { font-size: clamp(34px, 4vw, 52px); line-height: 1.1; margin-bottom: 20px; }
.closing p { margin-bottom: 0; font-size: 17px; max-width: 45ch; }
.closing-entry .sign-in { width: 100%; }
.closing-entry p { margin-top: 16px; font-size: 13px; }
.site-footer { padding: 28px 0 40px; border-top: 1px solid var(--cp-rule); display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; font-size: 13px; }
.site-footer .brand { font-size: 14px; }
.site-footer > p { margin: 0; font-size: 13px; }
.site-footer nav { display: flex; gap: 24px; }
.site-footer nav a { display: flex; align-items: center; min-height: 44px; }
@media (max-width: 1000px) {
  .opening, .journey, .closing { gap: 40px; }
  .journey { grid-template-columns: 224px minmax(0, 1fr); }
  .stage-label { font-size: 17px; }
  .opening { grid-template-columns: 1fr 310px; padding-block: 56px 64px; }
  .entry { padding: 24px; }
}
@media (max-width: 760px) {
  :root { --header-height: 72px; }
  html { scroll-padding-top: 132px; }
  .site-header { padding: 12px 20px; gap: 12px; }
  .brand { font-size: 14px; gap: 10px; }
  .brand img { width: 32px; height: 32px; }
  .header-nav { gap: 8px; }
  .header-nav .compact { display: none; }
  .opening, .journey, .closing, .site-footer { width: calc(100% - 40px); }
  .opening { grid-template-columns: 1fr; padding-block: 40px 48px; gap: 32px; }
  h1 { font-size: clamp(38px, 8vw, 52px); margin-bottom: 24px; }
  .opening-copy > p { font-size: 17px; }
  .entry { padding: 24px; }
  .entry-logo { width: 48px; height: 48px; margin-bottom: 20px; }
  .entry h2 { font-size: 28px; }
  .journey { display: block; padding-top: 0; }
  .journey-map { position: sticky; top: 0; z-index: 10; height: 112px; margin-inline: -20px; padding-inline: 0; background: var(--cp-coffee-bg); border-bottom: 1px solid var(--cp-rule); }
  .route-desktop { display: none; }
  .route-phone { display: block; width: 100%; height: 96px; }
  .stage-links { grid-template-rows: 1fr; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .stage-links li { align-items: start; }
  .stage-links a { display: flex; flex-direction: column; gap: 10px; padding: 10px 4px; text-align: center; min-height: 104px; }
  .stage-node { width: 40px; height: 40px; flex: 0 0 40px; }
  .stage-label { font-family: "Segoe UI", Aptos, sans-serif; font-size: 11px; font-weight: 600; line-height: 1.25; max-width: 10ch; }
  .journey-stage { min-height: 0; padding: 40px 0 44px; }
  .journey-stage + .journey-stage { padding-top: 40px; }
  .stage-copy h2 { font-size: 32px; line-height: 1.16; }
  .stage-copy p { font-size: 16px; margin-bottom: 24px; }
  .workflow { padding: 20px; }
  .search-outline { font-size: 12px; }
  .search-outline span + span { padding-left: 12px; }
  .tracker-row { font-size: 19px; }
  .tracker-stages { gap: 10px; font-size: 12px; }
  .tracker-stages span + span::before { margin-right: 10px; }
  .person-outline { gap: 14px; font-size: 19px; }
  .person-shape { width: 52px; height: 52px; flex: 0 0 52px; }
  .outreach-steps { font-size: 13px; }
  .offer-sheet { padding: 12px 0; }
  .offer-sheet h3 { font-size: 32px; }
  .closing { grid-template-columns: 1fr; padding: 44px 0 48px; gap: 28px; }
  .closing h2 { font-size: 38px; }
  .site-footer { align-items: start; gap: 16px; padding-bottom: 28px; }
  .site-footer > p { width: 100%; order: 2; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .is-current .orbit { animation: none; border-color: var(--cp-journey-ink); opacity: .5; }
  .orbit::after { display: none; }
}
