/* yaya.tech — HPC on Peruvian soil (2026-10). Source: node:~/yaya-site/web, built by build.py.
 * Palette: garúa (Lima's fog) grounds the page, ink carries text, cochineal carmine is the one accent.
 * Type: Archivo with its width axis for display (width encodes time: years wide, months narrow),
 * IBM Plex Sans for reading, IBM Plex Mono for coordinates, labels and data. */
:root {
  --fog: #E8ECEE;
  --fog-2: #DDE3E7;
  --paper: #FFFFFF;
  --ink: #0E1A26;
  --slate: #4F5D6B;
  --muted: #6B7986;
  --rule: #D3DAE0;
  --rule-strong: #B4BFC8;
  --carmine: #C8184A;
  --carmine-deep: #A3123B;
  --carmine-soft: #F7E1E8;
  --blue: #2E6FD0;
  --teal: #1E9E8A;
  --night: #0B1622;
  --night-2: #142231;
  --night-rule: #253545;
  --night-text: #C3CEd8;
  --navy: #0A2F6B;
  --display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --sans: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, Menlo, Consolas, monospace;
  --max: 1200px;
  --gutter: 28px;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 72px; }
body { background: var(--fog); color: var(--ink); font: 400 17px/1.6 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 3px; }
a:hover { text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--carmine); outline-offset: 3px; }
p { margin: 0; }
h1, h2, h3 { margin: 0; font-family: var(--display); color: var(--ink); }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
.mono { font-family: var(--mono); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ── type ── */
h1 { font-size: clamp(40px, 4.9vw, 70px); font-stretch: 118%; font-weight: 750; line-height: .95; letter-spacing: -.028em; }
h1 em { font-style: normal; color: var(--carmine); }
h2 { font-size: clamp(30px, 3.3vw, 46px); font-stretch: 112%; font-weight: 700; line-height: 1.04; letter-spacing: -.022em; max-width: 21ch; }
h3 { font-size: 20px; font-stretch: 105%; font-weight: 650; line-height: 1.2; letter-spacing: -.01em; }
.label { display: flex; align-items: center; gap: 10px; font: 500 12.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--slate); margin-bottom: 22px; }
.label::before { content: ""; width: 8px; height: 8px; background: var(--carmine); flex: none; }
.lead { font-size: 20px; line-height: 1.55; color: var(--slate); max-width: 62ch; }
.head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 56px; align-items: end; margin-bottom: 56px; }
.head .lead { padding-bottom: 6px; }
.fine { font-size: 13.5px; line-height: 1.55; color: var(--muted); }
.src { margin-top: 26px; font: 400 12.5px/1.6 var(--mono); color: var(--muted); }

/* ── nav ── */
.nav { position: sticky; top: 0; z-index: 30; background: color-mix(in srgb, var(--fog) 88%, transparent);
  backdrop-filter: blur(12px) saturate(140%); border-bottom: 1px solid var(--rule); }
.nav .wrap { display: flex; align-items: center; justify-content: space-between; height: 64px; gap: 20px; }
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; font: 700 19px/1 var(--display); font-stretch: 118%; letter-spacing: -.01em; }
.brand svg { width: 28px; height: 28px; flex: none; }
.links { display: flex; align-items: center; gap: 26px; font-size: 14.5px; }
.links a { text-decoration: none; color: var(--slate); }
.links a:hover { color: var(--ink); }
.links .lang { font: 500 12.5px/1 var(--mono); letter-spacing: .08em; color: var(--ink); border: 1px solid var(--rule-strong); padding: 6px 8px; border-radius: 3px; }

/* ── buttons ── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 22px; border-radius: 3px;
  font: 600 15.5px/1 var(--sans); text-decoration: none; cursor: pointer; border: 1.5px solid var(--ink); background: transparent; color: var(--ink);
  transition: background .15s, color .15s, border-color .15s, transform .15s; }
.btn:hover { background: var(--ink); color: var(--paper); }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--carmine); border-color: var(--carmine); color: #fff; }
.btn-primary:hover { background: var(--carmine-deep); border-color: var(--carmine-deep); color: #fff; }
.btn-sm { padding: 10px 15px; font-size: 14px; }
.links .btn-primary { color: #fff; }
.btn[disabled] { opacity: .45; cursor: not-allowed; }

/* ── sections ── */
section { padding: 120px 0; }
.paper { background: var(--paper); }
.night { background: var(--night); color: var(--night-text); }
.night h2, .night h3 { color: #fff; }
.night .label { color: #8FA0B1; }
.night .lead { color: var(--night-text); }

/* ── hero ── */
.hero { padding: 32px 0 0; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 24px 48px; align-items: center; }
.hero-copy { padding: 40px 0 72px; }
.hero .lead { margin-top: 30px; font-size: 20.5px; }
.cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 38px; }
.plate { margin: 48px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1.5px solid var(--ink); }
.plate div { padding: 14px 16px 0 0; }
.plate div + div { padding-left: 16px; border-left: 1px solid var(--rule-strong); }
.plate dt { font: 500 11.5px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.plate dd { margin: 6px 0 0; font: 600 15px/1.35 var(--sans); }
.map-col { position: relative; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.peru-map { display: block; width: 100%; height: auto; max-height: 860px; overflow: visible; }
.map-cap { font: 400 12px/1.5 var(--mono); color: var(--muted); padding: 10px 0 24px; text-align: right; }

/* the map (classes emitted by tools/peru_map.py) */
.pm-nb { fill: none; stroke: #CDD4DA; stroke-width: 2.4; stroke-linecap: round; }
.pm-pe { fill: none; stroke: var(--ink); stroke-width: 2.6; stroke-linecap: round; }
.pm-hot { fill: none; stroke: var(--carmine); stroke-width: 2.8; stroke-linecap: round; }
.pm-axis { fill: none; stroke: var(--carmine); stroke-width: 1; stroke-dasharray: 3 6; opacity: .55; }
.pm-arc { fill: none; stroke: var(--carmine); stroke-width: 1.8; stroke-dasharray: 2 9; stroke-linecap: round; animation: pm-flow 2.4s linear infinite; }
.pm-city { fill: var(--fog); stroke: var(--ink); stroke-width: 2.6; }
.pm-label, .pm-coord, .pm-lurin-label { paint-order: stroke; stroke: var(--fog); stroke-width: 7px; stroke-linejoin: round; }
.pm-label { font: 500 19px var(--mono); fill: var(--ink); }
.pm-coord { font: 500 18px var(--mono); fill: var(--carmine); }
.pm-lurin-label { font: 800 26px var(--display); font-stretch: 125%; letter-spacing: .06em; fill: var(--carmine); }
.pm-node { fill: var(--carmine); }
.pm-ring { fill: none; stroke: var(--carmine); stroke-width: 2.4; transform-box: fill-box; transform-origin: center; animation: pm-pulse 2.8s ease-out infinite; }
.pm-ring2 { animation-delay: 1.4s; }
@keyframes pm-flow { to { stroke-dashoffset: -44; } }
@keyframes pm-pulse { 0% { transform: scale(.7); opacity: .9; } 100% { transform: scale(3.2); opacity: 0; } }

/* ── the gap: GPU pictogram ── */
.gpus { border-top: 1.5px solid var(--ink); }
.gpus-head { display: flex; justify-content: space-between; gap: 20px; padding: 14px 0; font: 500 12px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--rule); }
.gpu-row { display: grid; grid-template-columns: minmax(0, 330px) 72px minmax(0, 1fr); gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--rule); }
.gpu-row h3 { font-size: 18px; }
.gpu-row p { margin-top: 5px; font-size: 14.5px; line-height: 1.5; color: var(--slate); }
.gpu-n { font: 750 40px/1 var(--display); font-stretch: 125%; letter-spacing: -.03em; text-align: right; font-variant-numeric: tabular-nums; }
.gpu-n small { display: block; font: 500 11px/1.3 var(--mono); letter-spacing: .06em; color: var(--muted); margin-top: 4px; text-transform: uppercase; }
.chips { display: flex; flex-wrap: wrap; gap: 5px; }
.chip { width: 22px; height: 22px; border-radius: 3px; background: var(--ink); position: relative; }
.chip::after { content: ""; position: absolute; inset: 6px; border: 1.5px solid color-mix(in srgb, #fff 45%, transparent); border-radius: 1px; }
.chip.none { background: transparent; border: 1.5px dashed var(--rule-strong); }
.chip.none::after { display: none; }
.chips .zero-note { font: 500 13px/22px var(--mono); color: var(--muted); margin-left: 6px; }
.gpu-row.ours { background: linear-gradient(90deg, var(--carmine-soft), transparent 70%); margin: 0 calc(var(--gutter) * -1); padding-left: var(--gutter); padding-right: var(--gutter); border-bottom: 0; }
.gpu-row.ours .gpu-n, .gpu-row.ours h3 { color: var(--carmine); }
.gpu-row.ours .chip { background: var(--carmine); }

/* ── thesis to discovery ── */
.time { display: grid; gap: 0; border-top: 1.5px solid var(--ink); }
.time-row { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 24px; align-items: baseline; padding: 28px 0 30px; border-bottom: 1px solid var(--rule-strong); }
.time-row .tag { font: 500 12.5px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.time-word { display: block; font-family: var(--display); font-weight: 800; line-height: .9; letter-spacing: -.035em; font-size: clamp(72px, 21vw, 284px); white-space: nowrap; padding-bottom: .06em; }
.time-word.years { font-stretch: 125%; color: var(--ink); }
.time-word.months { font-stretch: 62%; color: var(--carmine); }
.time-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; margin-top: 56px; }
.time-lists h3 { margin-bottom: 14px; }
ul.ticks { list-style: none; margin: 0; padding: 0; }
ul.ticks li { position: relative; padding: 11px 0 11px 30px; border-top: 1px solid var(--rule); color: var(--slate); }
ul.ticks li::before { content: ""; position: absolute; left: 0; top: 19px; width: 14px; height: 2px; background: var(--ink); }
ul.ticks.go li::before { background: var(--carmine); height: 8px; width: 8px; top: 18px; }
ul.ticks b { color: var(--ink); font-weight: 600; }

/* ── enclave (dark: the only place the data hides) ── */
.flow { display: grid; grid-template-columns: minmax(0, .8fr) 92px minmax(0, 1.3fr) 92px minmax(0, .8fr); align-items: stretch; margin-top: 8px; }
.node { border: 1px solid var(--night-rule); background: var(--night-2); padding: 24px; border-radius: 4px; }
.node h3 { font-size: 18px; }
.node p { margin-top: 8px; font-size: 15px; color: var(--night-text); }
.node .k { font: 500 11.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: #8FA0B1; display: block; margin-bottom: 14px; }
.node.enclave { border: 1.5px dashed var(--carmine); background: radial-gradient(120% 140% at 50% 0%, rgba(200,24,74,.16), transparent 60%), var(--night-2); }
.node.enclave .k { color: #F07A9C; }
.dies { display: flex; gap: 10px; margin-top: 18px; }
.die { flex: 1; border: 1px solid #3A4B5D; border-radius: 3px; padding: 10px 12px; font: 500 12.5px/1.35 var(--mono); color: #E6ECF1; background: rgba(255,255,255,.03); }
.die b { display: block; font-weight: 500; color: #F07A9C; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 4px; }
.pipe { position: relative; }
.pipe::before { content: ""; position: absolute; left: 6px; right: 6px; top: 50%; border-top: 1.5px dashed #4C6075; }
.pipe::after { content: ""; position: absolute; right: 4px; top: calc(50% - 5px); border: 5.5px solid transparent; border-left: 8px solid #8FA0B1; border-right: 0; }
.pipe span { position: absolute; left: 50%; top: calc(50% - 30px); transform: translateX(-50%); font: 500 11px/1 var(--mono); color: #8FA0B1; letter-spacing: .06em; white-space: nowrap; }
.steps { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; counter-reset: st; border-top: 1px solid var(--night-rule); }
.steps li { counter-increment: st; padding: 22px 22px 0 0; font-size: 15px; color: var(--night-text); }
.steps li + li { padding-left: 22px; border-left: 1px solid var(--night-rule); }
.steps li::before { content: counter(st); display: block; font: 750 30px/1 var(--display); font-stretch: 125%; color: var(--carmine); margin-bottom: 12px; }
.steps b { color: #fff; font-weight: 600; }
.operator { margin-top: 36px; display: flex; gap: 16px; align-items: center; padding: 18px 22px; border: 1px solid var(--night-rule); border-radius: 4px; font-size: 15px; }
.operator svg { flex: none; width: 34px; height: 34px; }
.operator b { color: #fff; }
.pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-top: 72px; }
.pillars h3 { margin-bottom: 10px; }
.pillars p { font-size: 15.5px; color: var(--night-text); }

/* ── markets ── */
.segs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1.5px solid var(--ink); }
.seg { padding: 24px 24px 26px 0; }
.seg + .seg { padding-left: 24px; border-left: 1px solid var(--rule); }
.seg h3 { font-size: 18px; margin-bottom: 10px; }
.seg p { font-size: 15px; color: var(--slate); }
.tracks { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 64px; }
.track { background: var(--fog); border-radius: 4px; padding: 32px; }
.track h3 { font-size: 24px; font-stretch: 112%; margin-bottom: 14px; }
.next { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 20px; margin-top: 20px; }
.next > div { border: 1px solid var(--rule); border-radius: 4px; padding: 28px; }
.next h3 { margin-bottom: 10px; }
.next p { font-size: 15px; color: var(--slate); }
.next .sbs { border-color: var(--ink); }
.art { display: inline-block; font: 500 11.5px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--carmine); margin-bottom: 12px; }

/* ── model ── */
.model-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: start; }
.wheel { display: grid; gap: 28px; }
.wheel svg { display: block; width: min(300px, 72%); height: auto; margin: 0 auto; }
.wheel .ring { fill: none; stroke: var(--rule-strong); stroke-width: 1.2; stroke-dasharray: 2 5; }
.wheel .arrow { fill: none; stroke: var(--carmine); stroke-width: 2.4; stroke-linecap: round; }
.wheel .tip { fill: var(--carmine); }
.wheel .n circle { fill: var(--carmine); }
.wheel .n text { fill: #fff; font: 600 13px var(--mono); text-anchor: middle; dominant-baseline: central; }
.wheel .c { font: 500 11px var(--mono); letter-spacing: .16em; fill: var(--muted); text-anchor: middle; }
.wheel ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; counter-reset: w; }
.wheel li { counter-increment: w; position: relative; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; padding: 18px 18px 18px 54px; font-size: 14.5px; line-height: 1.45; color: var(--slate); }
.wheel li::before { content: counter(w); position: absolute; left: 16px; top: 17px; width: 24px; height: 24px; border-radius: 50%; background: var(--carmine); color: #fff; font: 600 12px/24px var(--mono); text-align: center; }
.wheel li b { display: block; font: 650 16px/1.25 var(--display); font-stretch: 108%; color: var(--ink); margin-bottom: 4px; }
.cap { background: var(--paper); border-radius: 4px; padding: 30px; border: 1px solid var(--rule); }
.cap h3 { font-size: 18px; }
.cap .sub { font-size: 14px; color: var(--muted); margin-top: 4px; }
.bar { display: flex; gap: 2px; height: 44px; margin-top: 22px; }
.bar span { display: block; height: 100%; }
.bar span:first-child { border-radius: 4px 0 0 4px; }
.bar span:last-child { border-radius: 0 4px 4px 0; }
.c-com { background: var(--carmine); } .c-res { background: var(--blue); } .c-stu { background: var(--teal); }
.c-head { background: repeating-linear-gradient(45deg, #C9D1D8 0 2px, transparent 2px 7px); box-shadow: inset 0 0 0 1px var(--rule-strong); }
.keys { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.keys li { display: grid; grid-template-columns: 14px 1fr; gap: 10px; font-size: 14px; color: var(--slate); line-height: 1.45; }
.keys i { width: 14px; height: 14px; border-radius: 2px; margin-top: 3px; }
.keys b { display: block; color: var(--ink); font-weight: 600; }
.keys b span { font-family: var(--mono); font-weight: 500; margin-right: 6px; }
.tiers { width: 100%; border-collapse: collapse; margin-top: 28px; font-size: 14.5px; }
.tiers th, .tiers td { text-align: left; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.tiers th { font: 500 11.5px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); border-bottom: 1.5px solid var(--ink); }
.tiers td:first-child { font-weight: 600; color: var(--ink); }
.tiers td { color: var(--slate); }
.prepaid { margin-top: 22px; font-size: 15px; color: var(--slate); }
.prepaid b { color: var(--ink); }

/* ── services ── */
.svc { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1.5px solid var(--ink); }
.svc > div { padding: 26px 24px 0 0; }
.svc > div + div { padding-left: 24px; border-left: 1px solid var(--rule); }
.svc h3 { margin-bottom: 10px; }
.svc p { font-size: 15px; color: var(--slate); }
.proof { margin-top: 64px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.proof div { background: var(--fog); border-radius: 4px; padding: 24px; font-size: 15px; color: var(--slate); }
.proof b { display: block; color: var(--ink); font: 650 17px/1.3 var(--display); font-stretch: 108%; margin-bottom: 8px; }

/* ── the round ── */
.round-top { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 24px 64px; align-items: end; margin-bottom: 64px; }
.round-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 64px; align-items: start; }
.amount { font: 800 clamp(76px, 14vw, 196px)/.8 var(--display); font-stretch: 125%; letter-spacing: -.045em; color: var(--ink); }
.amount span { color: var(--carmine); }
.amount-cap { font-size: 19px; color: var(--slate); max-width: 34ch; padding-bottom: 6px; }
.amount-cap b { color: var(--ink); }
.funds { list-style: none; margin: 0; padding: 0; border-top: 1.5px solid var(--ink); }
.funds li { display: grid; grid-template-columns: 170px 1fr; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--rule); font-size: 15.5px; color: var(--slate); }
.funds li b { color: var(--ink); font-weight: 600; }
.impact { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.impact div { background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; padding: 22px 24px; }
.impact strong { display: block; font: 750 40px/1 var(--display); font-stretch: 118%; letter-spacing: -.03em; color: var(--ink); }
.impact span { display: block; margin-top: 8px; font-size: 14px; color: var(--slate); line-height: 1.45; }
.round-cta { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; }
.round-cta p { font-size: 15px; color: var(--slate); max-width: 46ch; }

/* ── why now / founder ── */
.why { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; }
.founder { display: grid; grid-template-columns: 76px 1fr; gap: 22px; }
.mono-mark { width: 76px; height: 76px; border-radius: 4px; background: var(--ink); color: #fff; display: grid; place-items: center; font: 800 26px var(--display); font-stretch: 125%; }
.founder h3 { font-size: 22px; font-stretch: 112%; }
.founder .role { font: 500 12px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-top: 6px; }
.founder p { margin-top: 14px; color: var(--slate); }

/* ── contact form ── */
.contact-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 72px; align-items: start; }
.form { background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; padding: 32px; box-shadow: 0 18px 50px rgba(14,26,38,.08); }
.modes { display: flex; gap: 24px; border-bottom: 1px solid var(--rule); margin: -8px 0 4px; }
.modes button { font: 600 15px var(--sans); background: none; border: 0; padding: 12px 0; color: var(--muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.modes button[aria-pressed="true"] { color: var(--ink); border-bottom-color: var(--carmine); }
.lbl { display: block; font: 500 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); margin: 22px 0 10px; }
.opts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.opts.three { grid-template-columns: repeat(3, 1fr); }
.opts button, .day, .slot { font: 500 14.5px var(--sans); color: var(--ink); background: var(--paper); border: 1px solid var(--rule-strong); border-radius: 3px; padding: 12px 10px; cursor: pointer; transition: border-color .12s, background .12s; }
.opts button:hover, .day:hover, .slot:hover { border-color: var(--ink); }
.opts button[aria-pressed="true"], .day[aria-pressed="true"], .slot[aria-pressed="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.days { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; }
.day { flex: none; width: 66px; padding: 8px 0; font-size: 12px; color: var(--muted); line-height: 1.3; }
.day b { display: block; font: 700 19px var(--display); color: var(--ink); }
.day[aria-pressed="true"] b { color: #fff; }
.slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); gap: 8px; }
.slot { padding: 9px 0; font-size: 14px; }
.tz { font-size: 13px; color: var(--muted); margin: -4px 0 10px; }
.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fields .full { grid-column: 1 / -1; }
.form input, .form textarea { width: 100%; font: 400 15.5px var(--sans); color: var(--ink); background: var(--paper); border: 1px solid var(--rule-strong); border-radius: 3px; padding: 13px 14px; outline: none; transition: border-color .12s, box-shadow .12s; }
.form textarea { min-height: 110px; resize: vertical; }
.form input:focus, .form textarea:focus { border-color: var(--ink); box-shadow: 0 0 0 3px var(--fog-2); }
.form ::placeholder { color: var(--muted); }
.submit { width: 100%; margin-top: 20px; }
.msg { min-height: 22px; margin-top: 12px; font-size: 14px; color: var(--carmine-deep); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.done { display: none; }
.done.show { display: block; }
.done h3 { font-size: 26px; font-stretch: 112%; color: var(--carmine); }
.done .when { margin-top: 12px; font-weight: 600; font-size: 18px; }
.done .when:empty { display: none; }
.done p { margin-top: 10px; color: var(--slate); }
.who-list { list-style: none; margin: 36px 0 0; padding: 0; border-top: 1.5px solid var(--ink); }
.who-list li { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--rule); font-size: 15px; color: var(--slate); }
.who-list b { color: var(--ink); font-weight: 600; }

/* ── footer ── */
.foot { padding: 44px 0 56px; background: var(--paper); border-top: 1px solid var(--rule); font-size: 14px; color: var(--slate); }
.foot .wrap { display: flex; flex-wrap: wrap; gap: 18px 32px; align-items: center; justify-content: space-between; }
.foot nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.foot a { text-decoration: none; color: var(--slate); }
.foot a:hover { color: var(--ink); }
.disclaimer { margin-top: 26px; font-size: 13px; color: var(--muted); max-width: 72ch; }

/* ── reveal on scroll (home.js adds .in; without JS everything is visible) ── */
.js .rv { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.js .rv.in { opacity: 1; transform: none; }
.js .time-word.months { font-stretch: 125%; transition: font-stretch 1.4s cubic-bezier(.2,.8,.2,1) .25s; }
.js .time-word.months.in { font-stretch: 62%; }

/* ── responsive ── */
@media (max-width: 1080px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { padding-bottom: 8px; }
  .map-col { max-width: 640px; margin: 0 auto; width: 100%; }
  .flow { grid-template-columns: 1fr; gap: 0; }
  .pipe { height: 48px; }
  .pipe::before { left: 50%; right: auto; top: 6px; bottom: 6px; border-top: 0; border-left: 1.5px dashed #4C6075; }
  .pipe::after { left: calc(50% - 5px); right: auto; top: auto; bottom: 2px; border: 5.5px solid transparent; border-top: 8px solid #8FA0B1; border-bottom: 0; }
  .pipe span { top: 50%; left: calc(50% + 14px); transform: translateY(-50%); }
  .segs, .svc { grid-template-columns: 1fr 1fr; }
  .seg:nth-child(3), .svc > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .seg:nth-child(n+3), .svc > div:nth-child(n+3) { border-top: 1px solid var(--rule); padding-top: 24px; margin-top: 4px; }
  .model-grid, .round-grid, .round-top, .why, .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .next { grid-template-columns: 1fr 1fr; }
  .next .sbs { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  section { padding: 88px 0; }
  .links a.hide { display: none; }
  .head { grid-template-columns: 1fr; gap: 20px; margin-bottom: 40px; }
  .plate { grid-template-columns: 1fr 1fr; }
  .plate div:nth-child(3) { padding-left: 0; border-left: 0; }
  .plate div:nth-child(n+3) { margin-top: 12px; border-top: 1px solid var(--rule-strong); }
  .gpu-row { grid-template-columns: minmax(0, 1fr) 64px; gap: 14px 16px; }
  .gpu-row .chips { grid-column: 1 / -1; grid-row: 2; }
  .time-row { grid-template-columns: 1fr; gap: 8px; }
  .time-lists, .tracks, .pillars, .proof, .impact { grid-template-columns: 1fr; gap: 28px; }
  .steps { grid-template-columns: 1fr 1fr; }
  .steps li:nth-child(3) { padding-left: 0; border-left: 0; }
  .steps li:nth-child(n+3) { border-top: 1px solid var(--night-rule); margin-top: 22px; }
}
@media (max-width: 560px) {
  :root { --gutter: 16px; }
  body { font-size: 16px; }
  .lead, .hero .lead { font-size: 18px; }
  .links { gap: 12px; }
  .brand span { display: none; }
  .segs, .svc, .next, .steps, .keys, .opts.three, .wheel ol { grid-template-columns: 1fr; }
  .seg + .seg, .svc > div + div, .steps li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); padding-top: 22px; margin-top: 0; }
  .steps li + li { border-top-color: var(--night-rule); }
  .funds li, .who-list li { grid-template-columns: 1fr; gap: 4px; }
  .fields { grid-template-columns: 1fr; }
  .form { padding: 22px 16px; }
  .chip { width: 20px; height: 20px; }
  .chip::after { inset: 5px; }
  .cap, .track, .next > div { padding: 22px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .pm-arc, .pm-ring { animation: none; }
  .pm-ring2 { display: none; }
  .js .rv { opacity: 1; transform: none; transition: none; }
  .js .time-word.months { font-stretch: 62%; transition: none; }
}
