/* MAIRA landing — tokens from the product's own dark theme */
@font-face{font-family:"Plus Jakarta Sans";font-weight:400;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:500;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:600;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:700;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-weight:800;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

:root{
  color-scheme:dark;
  --canvas:#0b1019;--base:#111621;--raised:#18202E;--subtle:#212B3C;
  --fg:#E4E9F1;--muted:#98A6BA;--dim:#6b7a90;--line:#263246;--line2:#34425A;
  --accent:#6FA3D8;--accent-fg:#A8CBEC;--accent-sub:#1D2E44;
  --ok:#6FB08B;--warn:#D69B5C;--bad:#D07E75;--ok-sub:#14291F;--warn-sub:#2C2115;--bad-sub:#2E1A18;
  --sans:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --gutter:clamp(16px,5vw,80px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--canvas);color:var(--fg);font-family:var(--sans);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:#061020;padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:12px}

/* type */
.kicker{font:500 13px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 20px}
.h-xl{font:800 clamp(38px,5.6vw,84px)/1.02 var(--sans);letter-spacing:-.035em;margin:0;text-wrap:balance}
.h-l{font:800 clamp(34px,5vw,64px)/1.06 var(--sans);letter-spacing:-.03em;margin:0 0 28px;text-wrap:balance}
.h-m{font:700 clamp(28px,3.4vw,44px)/1.1 var(--sans);letter-spacing:-.02em;margin:0 0 20px;text-wrap:balance}
.lead{font:500 clamp(18px,1.7vw,24px)/1.45 var(--sans);color:var(--muted);margin:28px 0 0;max-width:620px}
.lead-s{font:500 17px/1.6 var(--sans);color:var(--muted);margin:0 0 24px;max-width:600px}
.lead-s.center{margin:40px auto 0;text-align:center}
.fine{font:500 12.5px var(--mono);color:var(--dim);letter-spacing:.04em;margin:28px 0 0}

/* buttons, chips */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;border-radius:12px;background:var(--accent);color:#061020;font-weight:700;text-decoration:none;border:1px solid transparent;transition:transform .15s ease,background .15s ease}
.btn:hover{background:var(--accent-fg);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--fg);border-color:var(--line2)}
.btn-ghost:hover{background:var(--raised)}
.btn-sm{padding:9px 14px;border-radius:10px;font-size:14px}
.chip{display:inline-flex;align-items:center;gap:8px;font:600 14px/1 var(--sans);padding:10px 14px;border-radius:999px;background:var(--accent-sub);color:var(--accent-fg);border:1px solid #2b4566}
.chip.ok{background:var(--ok-sub);color:var(--ok);border-color:#24493a}
.chip.warn{background:var(--warn-sub);color:var(--warn);border-color:#4a3720}
.chip.bad{background:var(--bad-sub);color:var(--bad);border-color:#4f2c28}

/* nav */
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:14px var(--gutter);background:rgba(11,16,25,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(38,50,70,.6)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;letter-spacing:-.02em;font-size:18px}
.brand img{border-radius:8px}
.nav nav{display:flex;align-items:center;gap:22px}
.nav nav a{font-size:14px;font-weight:600;color:var(--muted);text-decoration:none}
.nav nav a:hover{color:var(--fg)}
.nav nav a.btn{color:#061020}
@media (max-width:760px){.nav nav a:not(.btn){display:none}}

/* hero */
.hero{position:relative;min-height:calc(100svh - 61px);max-width:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.25fr);align-items:center;gap:40px;padding:clamp(48px,8vh,96px) var(--gutter);overflow:hidden;background:radial-gradient(120% 90% at 50% 0%,#142035 0%,var(--canvas) 62%)}
.floor{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-copy{position:relative;z-index:2}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.hero-stage{position:relative;z-index:1;perspective:2000px;perspective-origin:30% 40%}
.hero-screen{transform:rotateY(-18deg) rotateX(5deg);will-change:transform}
@media (max-width:980px){
  .hero{grid-template-columns:minmax(0,1fr);gap:28px;min-height:auto}
  .hero-stage{perspective-origin:50% 50%}
  .hero-screen{transform:rotateY(-10deg) rotateX(3deg)}
}

/* a screen in a window frame */
.screen{border-radius:18px;background:var(--base);border:1px solid var(--line2);box-shadow:0 60px 120px -30px rgba(0,0,0,.8),0 0 0 1px rgba(111,163,216,.06),0 0 80px -20px rgba(111,163,216,.28);overflow:hidden;transform-style:preserve-3d}
.screen .bar{height:34px;display:flex;align-items:center;gap:8px;padding:0 14px;background:#0f1520;border-bottom:1px solid var(--line)}
.screen .bar i{width:10px;height:10px;border-radius:50%;background:#2a3446}
.screen .bar span{margin-left:10px;min-width:0;font:500 12px var(--mono);color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.screen .view{position:relative;overflow:hidden;aspect-ratio:16/9}
.screen .cam{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.screen .shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease}
.screen .shot.is-on{opacity:1}
.ring{position:absolute;border:2px solid var(--accent);border-radius:8px;box-shadow:0 0 0 9999px rgba(8,12,20,.52),0 0 24px rgba(111,163,216,.55);opacity:0;pointer-events:none}
.ring.warn{border-color:var(--warn);box-shadow:0 0 0 9999px rgba(8,12,20,.52),0 0 24px rgba(214,155,92,.55)}
.ring.bad{border-color:var(--bad);box-shadow:0 0 0 9999px rgba(8,12,20,.52),0 0 24px rgba(208,126,117,.55)}

/* heard */
.heard{padding:56px var(--gutter);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--base)}
.heard .kicker{text-align:center}
.heard-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 36px}
.heard-list li{font:600 clamp(16px,1.5vw,20px) var(--sans);color:var(--muted)}
.heard-list b{color:var(--fg)}

/* cases */
.cases{position:relative;padding:0 var(--gutter)}
.cases-pin{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:48px;align-items:center;min-height:100vh;padding:48px 0}
.cases-text{position:relative;min-height:300px}
.case{position:absolute;inset:0;opacity:0;visibility:hidden;display:flex;flex-direction:column;justify-content:center}
.case.is-on{opacity:1;visibility:visible}
.case .chip{align-self:flex-start}
.cases-stage{position:relative;perspective:1800px;perspective-origin:40% 50%}
.case-screen{transform:rotateY(8deg) rotateX(2deg)}
.dots{list-style:none;margin:18px 0 0;padding:0;display:flex;gap:8px;justify-content:center}
.dots li{width:28px;height:4px;border-radius:2px;background:var(--line2);transition:background .3s}
.dots li.on{background:var(--accent)}
@media (max-width:980px){
  .cases-pin{grid-template-columns:minmax(0,1fr);min-height:auto;gap:24px}
  .cases-text{min-height:0}
  .case{position:static;opacity:1;visibility:visible;padding:40px 0 16px}
  .case-screen{transform:none}
  .cases-stage{order:-1;position:sticky;top:70px;z-index:2;background:var(--canvas);padding-bottom:8px}
}

/* lifecycle */
.lifecycle{padding:120px var(--gutter);text-align:center}
.strip{list-style:none;margin:40px auto 0;padding:0;display:grid;grid-template-columns:repeat(8,1fr);gap:8px;max-width:1200px;position:relative}
.strip::before{content:"";position:absolute;left:6%;right:6%;top:14px;height:2px;background:linear-gradient(90deg,var(--accent),#3a5a80);z-index:0}
.strip li{position:relative;display:grid;justify-items:center;gap:14px;font:600 14px var(--sans);color:var(--muted)}
.strip li::before{content:"";width:30px;height:30px;border-radius:50%;border:3px solid var(--accent);background:var(--canvas);box-sizing:border-box;z-index:1}
.strip li.on{color:var(--fg)}
.strip li.on::before{background:var(--accent);box-shadow:0 0 24px rgba(111,163,216,.6)}
@media (max-width:760px){.strip{grid-template-columns:repeat(4,1fr);gap:28px 8px}.strip::before{display:none}}

/* trust */
.trust{padding:100px var(--gutter);background:var(--base);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.nots{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:18px;max-width:760px}
.nots li{font:700 clamp(20px,2.4vw,30px)/1.25 var(--sans);display:flex;gap:18px;align-items:baseline;letter-spacing:-.01em}
.nots .x{font:500 18px var(--mono);color:var(--bad)}
.nots .ok .x{color:var(--ok)}
.nots .ok{color:var(--fg)}

/* pilot */
.pilot{padding:120px var(--gutter)}
.terms{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}
.terms .chip{font-size:16px;padding:12px 18px}
.path{list-style:none;margin:0 0 40px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.path li{border:1px solid var(--line2);background:rgba(24,32,46,.75);border-radius:16px;padding:22px;display:grid;gap:8px;align-content:start}
.path li.now{border-color:var(--accent);background:rgba(29,46,68,.8)}
.path .e{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.path b{font:800 20px var(--sans)}
.path span:last-child{font:500 15px/1.45 var(--sans);color:var(--muted)}
@media (max-width:900px){.path{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.path{grid-template-columns:1fr}}

/* about */
.about{padding:100px var(--gutter);background:var(--base);border-top:1px solid var(--line)}
.team{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:40px}
.mate{display:grid;grid-template-columns:140px 1fr;gap:24px;align-items:start}
.mate img{width:140px;height:140px;object-fit:cover;border-radius:20px;border:1px solid var(--line2);box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.mate h3{font:800 24px var(--sans);letter-spacing:-.02em;margin:0}
.mate .role{font:500 12.5px var(--mono);color:var(--accent);margin:6px 0 12px;letter-spacing:.02em}
.mate p{margin:0;color:var(--muted);font-size:16px}
@media (max-width:820px){.team{grid-template-columns:1fr}}
@media (max-width:460px){.mate{grid-template-columns:1fr}}

/* contact */
.contact{padding:120px var(--gutter) 100px;border-top:1px solid var(--line)}
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px;max-width:1000px}
.card{display:grid;gap:8px;padding:22px;border-radius:16px;border:1px solid var(--line2);background:var(--raised);text-decoration:none;transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--accent);transform:translateY(-2px)}
.card .e{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.card b{font:700 16px var(--sans);word-break:break-all}
@media (max-width:820px){.contact-cards{grid-template-columns:1fr}}

.foot{display:flex;flex-wrap:wrap;gap:8px 32px;justify-content:space-between;padding:28px var(--gutter);border-top:1px solid var(--line);font:500 12.5px var(--mono);color:var(--dim)}

@media (prefers-reduced-motion:reduce){
  .hero-screen,.case-screen{transform:none}
  .screen .shot{transition:none}
}
