/* Ramp AI Labs: ink on cool paper, with a single deep-blue field for the hero and contact. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--paper:#f4f6fb;--raised:#fff;--ink:#0a1130;--muted:#4a5274;--faint:#767e9e;--rule:#d9ddeb;--rule-strong:#b3bad2;--accent:#1d3ff0;--tint:rgba(29,63,240,.06);--field:#1d3ff0;--on:#f2f4ff;--on-muted:rgba(242,244,255,.78);--stretch:115%}
html{font-size:17px;scroll-behavior:smooth}
body{font-family:'Archivo','Helvetica Neue',Arial,sans-serif;line-height:1.6;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.field :focus-visible{outline-color:var(--on)}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
.skip{position:absolute;left:-999px;top:8px;z-index:9;background:var(--raised);color:var(--ink);padding:8px 14px;border-radius:4px}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.field{position:relative;overflow:hidden;background:var(--field);color:var(--on)}
/* header */
.site-header{position:absolute;inset:0 0 auto;z-index:3;padding:26px 0;color:var(--on)}
.site-header .wrap{display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;font-weight:600;font-stretch:110%;letter-spacing:-.01em}
.brand svg{width:26px;height:26px}
.nav{display:flex;gap:28px;font-size:.94rem}
.nav a{color:var(--on-muted);transition:color .15s}
.nav a:hover{color:var(--on)}
/* hero */
.hero{display:flex;align-items:flex-end;min-height:min(880px,94vh);padding:180px 0 72px}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero .wrap{position:relative;z-index:1;width:100%}
.kicker{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--on-muted);margin-bottom:22px}
.display{font-size:clamp(2.5rem,6.6vw,5.4rem);font-weight:500;font-stretch:var(--stretch);line-height:.98;letter-spacing:-.035em;max-width:14ch;text-wrap:balance}
.hero-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px 64px;align-items:end;margin-top:48px}
.lede{max-width:46em;text-wrap:pretty;font-size:1.16rem;line-height:1.55;color:var(--on-muted)}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;padding:14px 22px;border-radius:4px;font-weight:500;font-size:.97rem;border:1px solid var(--on);background:var(--on);color:var(--field);transition:background .15s,color .15s,border-color .15s}
.btn:hover{background:transparent;color:var(--on)}
.btn.ghost{background:transparent;color:var(--on);border-color:rgba(242,244,255,.4)}
.btn.ghost:hover{border-color:var(--on)}
.btn.ink{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn.ink:hover{background:transparent;color:var(--ink)}
/* sections */
.section{padding:128px 0 0}
.section-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px 64px}
.label{font-size:.85rem;color:var(--faint);font-variant-numeric:tabular-nums;margin-bottom:14px}
h2{font-size:clamp(1.85rem,3.4vw,2.7rem);font-weight:500;font-stretch:var(--stretch);line-height:1.06;letter-spacing:-.03em;text-wrap:balance}
.section-head p{font-size:1.1rem;color:var(--muted);max-width:36em}
.section-head p+p{margin-top:16px}
h3{font-size:1.06rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}
/* contrast pair */
.pair{margin-top:72px;display:grid;grid-template-columns:1fr 1fr}
.pair>div{border-top:2px solid var(--ink);padding:24px 32px 36px 0}
.pair>div.now{border-top-color:var(--accent);background:var(--tint);padding-left:32px}
.pair .tag{font-size:.88rem;color:var(--muted);margin-bottom:14px}
.pair .now .tag{color:var(--accent)}
.pair h3{font-size:1.4rem;font-weight:500;font-stretch:108%;margin-bottom:10px}
.pair p{color:var(--muted)}
/* numbered columns */
.cols{margin-top:72px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;border-top:2px solid var(--ink);counter-reset:c}
.cols li{padding:36px 28px 0 0;counter-increment:c}
.cols li::before{content:counter(c,decimal-leading-zero);display:block;margin-bottom:18px;font-size:2.3rem;font-weight:300;font-stretch:var(--stretch);line-height:1;color:var(--faint)}
.cols h3{margin-bottom:8px}.cols p{font-size:.95rem;color:var(--muted)}
/* environment rows */
.rows{margin-top:64px;border-top:2px solid var(--ink)}
.row{display:grid;grid-template-columns:4fr 5fr 3fr;gap:8px 40px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--rule);transition:background .15s}
.row:hover{background:var(--tint)}
.row h3{font-size:clamp(1.25rem,2vw,1.55rem);font-weight:500;font-stretch:var(--stretch);letter-spacing:-.02em}
.row p{color:var(--muted)}.row p:last-child{font-size:.9rem;color:var(--faint)}
.tiers{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin-top:32px}
.tiers li{border:1px solid var(--rule-strong);border-radius:999px;padding:6px 14px;font-size:.88rem;color:var(--muted)}
.tiers strong{color:var(--ink);font-weight:600;margin-right:6px}
/* results */
.results{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px 64px;margin-top:96px;align-items:start}
.results p{color:var(--muted);margin:14px 0 24px}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:14px 0;border-bottom:1px solid var(--rule)}
thead th{font-size:.85rem;font-weight:500;color:var(--faint);border-bottom:2px solid var(--ink)}
td:last-child,th:last-child{text-align:right}
.bar{display:block;height:3px;background:var(--accent);margin-top:6px;border-radius:2px}
tr.base td{color:var(--faint)}tr.base .bar{background:var(--rule-strong)}
/* timeline */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 64px;align-items:start}
.split .intro{position:sticky;top:48px}
.split .intro p{margin-top:20px;font-size:1.1rem;color:var(--muted);max-width:30em}
.gates{list-style:none}
.gates li{position:relative;padding:0 0 40px 44px}
.gates li::before{content:'';position:absolute;left:6px;top:14px;bottom:-6px;width:1.5px;background:var(--rule-strong)}
.gates li::after{content:'';position:absolute;left:0;top:6px;width:13px;height:13px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink)}
.gates li:last-child{padding-bottom:0}.gates li:last-child::before{display:none}
.gates li:last-child::after{background:var(--accent);border-color:var(--accent)}
.gates h3{font-size:1.2rem;font-weight:500;font-stretch:108%;margin-bottom:6px}
.gates p{color:var(--muted)}
/* contact + footer */
.contact{margin-top:144px;padding:112px 0}
.contact h2{font-size:clamp(2.2rem,5vw,4rem);max-width:16ch}
.contact p{margin:22px 0 34px;color:var(--on-muted);font-size:1.12rem;max-width:34em}
.foot{padding:32px 0;font-size:.88rem;color:var(--faint);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot a:hover{color:var(--ink)}
.notfound{min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:24px}
/* motion */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
@media (max-width:860px){
 .wrap{padding:0 22px}.nav a:not(.keep){display:none}
 .hero{padding:140px 0 48px;min-height:auto}
 .hero-foot,.section-head,.results,.split{grid-template-columns:1fr}
 .split .intro{position:static}
 .pair,.cols{grid-template-columns:1fr}
 .pair>div,.pair>div.now{padding:24px 20px 28px}
 .cols li{padding:28px 0 8px}
 .row{grid-template-columns:1fr;gap:6px}
 .section{padding-top:88px}.contact{margin-top:104px;padding:80px 0}
}
.section-head p.thesis{font-size:clamp(1.3rem,2.2vw,1.7rem);color:var(--ink);font-weight:500;font-stretch:108%;line-height:1.25;letter-spacing:-.015em;margin-bottom:24px}
.contact h2{margin-bottom:32px}
