/* The hero shares the homepage palette and keeps its illustration separate from copy. */
.hero { position:relative; border-bottom:1px solid var(--line); background:var(--paper); }
/* Keep navigation and hero content on the same responsive edges. */
.header__inner,.launch-layout { width:min(1560px,calc(100% - 128px)); margin-inline:auto; }
.launch-layout { display:grid; grid-template-columns:1fr 1.1fr; align-items:start; gap:56px; padding:54px 0 48px; }
.launch-copy { padding:0 0 12px; }
.launch-eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 33px; color:var(--muted); font:10px/1.5 var(--font-sans); letter-spacing:.12em; }
.launch-eyebrow>span { width:7px; height:7px; background:var(--orange); }
.hero h1 { margin:0; font-size:clamp(54px,5.3vw,84px); font-weight:510; line-height:1.03; letter-spacing:-.065em; }
.hero h1 em { color:var(--orange); font-style:normal; }
.launch-intro { max-width:485px; margin:28px 0 0; color:var(--muted); font-size:17px; line-height:1.7; }
.launch-actions { display:flex; flex-wrap:wrap; align-items:center; gap:27px; margin-top:33px; }
.launch-actions .button { min-height:54px; min-width:175px; border-radius:4px; font-size:15px; }
.launch-actions .button span { font-size:22px; }
.launch-actions .button:hover { background:var(--orange); }
.launch-actions .text-link { border-color:var(--line); font-size:14px; }
.launch-agents { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:23px; font-size:12px; color:var(--muted); }
.launch-agents>a { text-decoration:none; }
.launch-agents>span { display:flex; align-items:center; gap:12px; }
.launch-agents>span a { text-decoration-color:#c7c1b5; text-underline-offset:4px; }
.launch-agents a:hover { color:var(--violet); }
.launch-backers { display:flex; align-items:center; gap:16px; margin-top:55px; color:var(--muted); font-size:12px; }
.launch-backers .launch-yc { display:flex; align-items:center; gap:7px; color:var(--ink); font-size:14px; }
.launch-yc b { display:grid; place-items:center; width:23px; height:23px; background:#f26522; color:white; font-weight:400; }
.launch-backers>i { height:18px; width:1px; background:var(--line); }
.launch-backers img { display:block; width:64px; height:auto; }
.launch-demo { min-width:0; position:relative; }
.launch-demo__top { display:flex; justify-content:space-between; align-items:center; padding:0 0 3px; margin:0 18px; }
.launch-demo__top>span { display:flex; align-items:center; gap:8px; font:10px/1.5 var(--font-sans); letter-spacing:.12em; color:var(--muted); }
.launch-demo__top i { width:6px; height:6px; border-radius:50%; background:var(--orange); }
/* Independent continuous loops keep the core and its signal field in motion. */
.launch-stack { position:relative; width:min(100%,704px); aspect-ratio:720 / 470; margin:0 auto; color:#8e9a8f; --launch-cycle:6s; perspective:1100px; transform-style:preserve-3d; transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform .4s ease-out; }
.launch-stack__map { display:block; width:100%; height:100%; overflow:visible; }
.launch-stack__floor { opacity:.32; }
.launch-stack__orbit { stroke:#91a18e; stroke-width:.65; opacity:.15; }
.launch-stack__route { stroke:#9c8bd5; stroke-width:1; opacity:.5; }
.launch-stack__route--out { stroke:#268465; }
.launch-stack__signal { stroke:#8065e3; stroke-width:3; stroke-linecap:round; stroke-dasharray:3 30.333; filter:url(#stack-glow); }
.launch-stack__signal--out { stroke:#268465; }
.launch-stack__shadow { fill:#273b2c; opacity:.16; transform-origin:290px 348px; }
.launch-stack__satellite { stroke:#8c9b88; stroke-width:.7; }
.launch-stack__light { stroke:url(#stack-copper); stroke-width:2.5; filter:url(#stack-glow); }
.launch-core__inner,.launch-core__edge { filter:url(#stack-glow); }
.launch-orbit { transform-origin:0 0; }
.launch-stack__port { fill:var(--paper); stroke:var(--violet); stroke-width:1.5; }
.launch-stack__port--out { stroke:#268465; }
.launch-art-label { font:10px var(--font-sans); letter-spacing:.035em; fill:#68685c; }
.launch-code { font:12px var(--font-mono); fill:#66615c; }
/* Panels retain their original content and violet/green identities. */
.launch-input,.launch-output { filter:drop-shadow(0 5px 8px #273b2c0b); }
.launch-panel-aura { opacity:0; stroke-width:1; }
.launch-code-active { opacity:.6; }
.launch-file-check,.launch-save-progress { stroke-dasharray:1; stroke-dashoffset:0; }
.launch-demo[data-step="match"] .launch-input>rect:nth-of-type(3) { stroke:#8c76d7; stroke-width:1.3; }
.launch-demo[data-step="recover"] .launch-output>rect:nth-of-type(3) { stroke:#439c78; stroke-width:1.3; }
.launch-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:0 18px; }
.launch-steps button { position:relative; padding:14px 12px 15px; border:1px solid transparent; border-radius:7px; background:transparent; color:var(--muted); text-align:left; cursor:pointer; transition:background .25s,border-color .25s; }
.launch-steps button[aria-pressed="true"] { border-color:var(--step-line); background:var(--step-bg); color:var(--step-color); }
.launch-steps button[data-step-button="match"] { --step-line:#d9d1ef; --step-bg:#f3f0fa; --step-color:#7460bc; }
.launch-steps button[data-step-button="execute"] { --step-line:#efc8b5; --step-bg:#fcf0e7; --step-color:#be552f; }
.launch-steps button[data-step-button="recover"] { --step-line:#c8ded1; --step-bg:#eef6ef; --step-color:#3e8969; }
.launch-steps button:hover { background:var(--step-bg); }
.launch-steps span { display:flex; align-items:center; gap:7px; margin-bottom:9px; font:9px/1.2 var(--font-sans); letter-spacing:.07em; }
.launch-steps span b { display:grid; place-items:center; width:22px; height:22px; border:1px solid var(--step-line); border-radius:50%; color:var(--step-color); font-weight:400; letter-spacing:0; }
.launch-steps button[aria-pressed="true"] span b { background:var(--step-color); color:white; border-color:var(--step-color); }
.launch-steps strong { display:block; color:var(--ink); font-size:12px; font-weight:500; letter-spacing:-.02em; }
.launch-step-caption { min-height:42px; margin:14px 31px 0; color:var(--muted); font-size:12px; line-height:1.6; }
@media(prefers-reduced-motion:no-preference) {
  .launch-copy { animation:launch-enter .75s both; }
  .launch-demo { animation:launch-enter .9s .12s both; }
  .launch-stack__signal { animation:launch-stream 3.2s linear infinite; }
  .launch-stack__signal--out { animation-duration:3.8s; animation-delay:-1.7s; }
  .launch-stack__shadow { animation:launch-stack-shadow var(--launch-cycle) ease-in-out infinite; }
  .launch-stack__satellite { animation:launch-stack-satellite 8s ease-in-out infinite; }
  .launch-stack__satellite--near { animation-delay:-4s; }
  .launch-orbit { animation:launch-orbit 14s linear infinite; }
  .launch-orbit--green { animation-direction:reverse; animation-duration:19s; }
  .launch-core { animation:launch-core-float 5s ease-in-out infinite; }
  .launch-core__inner { animation:launch-core-light 2.6s ease-in-out infinite; }
  .launch-core__scan { animation:launch-core-scan 3.8s linear infinite; }
  .launch-core__guides { animation:launch-guide-flow 2s linear infinite; }
  .launch-socket { animation:launch-socket 3s ease-in-out infinite; }
  .launch-stack__base { animation:launch-stack-base var(--launch-cycle) ease-in-out infinite; }
  .launch-stack__middle { animation:launch-stack-middle var(--launch-cycle) ease-in-out infinite; }
  .launch-stack__lid { animation:launch-stack-lift var(--launch-cycle) ease-in-out infinite; }
  .launch-stack__core-light,.launch-stack__activity { animation:launch-stack-illuminate var(--launch-cycle) ease-in-out infinite; }
  .launch-stack__sheen { animation:launch-stack-sheen var(--launch-cycle) ease-in-out infinite; }
  .launch-panel-aura--input,.launch-code-active { animation:launch-code-ready var(--launch-cycle) ease-in-out infinite; }
  .launch-panel-aura--output,.launch-saved-dot { animation:launch-files-ready var(--launch-cycle) ease-in-out infinite; }
  .launch-code-cursor { animation:launch-cursor 1s steps(1) infinite; }
  .launch-file-check--checkpoint { animation:launch-checkpoint var(--launch-cycle) ease-in-out infinite; }
  .launch-file-check--output { animation:launch-output var(--launch-cycle) ease-in-out infinite; }
  .launch-save-progress { animation:launch-save var(--launch-cycle) ease-in-out infinite; }
  @keyframes launch-orbit { to { transform:rotate(360deg); } }
  @keyframes launch-core-float { 0%,100% { transform:translateY(-8px); } 50% { transform:translateY(-22px); } }
  @keyframes launch-core-light { 0%,100% { opacity:.65; } 50% { opacity:1; } }
  @keyframes launch-core-scan { 0% { transform:translateY(0); opacity:0; } 15%,75% { opacity:.8; } 100% { transform:translateY(72px); opacity:0; } }
  @keyframes launch-guide-flow { to { stroke-dashoffset:-28; } }
  @keyframes launch-socket { 0%,100% { opacity:.5; } 50% { opacity:1; } }
  @keyframes launch-enter { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
  @keyframes launch-stream { from { stroke-dashoffset:100; } to { stroke-dashoffset:0; } }
  @keyframes launch-stack-lift { 0%,100% { transform:translateY(-2px); } 50% { transform:translateY(-13px); } }
  @keyframes launch-stack-middle { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-6px); } }
  @keyframes launch-stack-base { 0%,100% { transform:translateY(0); } 45% { transform:translateY(-2px); } }
  @keyframes launch-stack-shadow { 0%,100% { opacity:.16; transform:scale(1); } 45% { opacity:.11; transform:scale(.93); } }
  @keyframes launch-stack-satellite { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }
  @keyframes launch-stack-illuminate { 0%,100% { opacity:.6; } 50% { opacity:1; } }
  @keyframes launch-stack-sheen { from { transform:translateX(-320px); } to { transform:translateX(320px); } }
  @keyframes launch-code-ready { 0%,35% { opacity:.9; } 48%,90% { opacity:.1; } 100% { opacity:.9; } }
  @keyframes launch-files-ready { 0%,60% { opacity:.12; } 80%,95% { opacity:1; } 100% { opacity:.12; } }
  @keyframes launch-cursor { 0%,49% { opacity:1; } 50%,100% { opacity:0; } }
  @keyframes launch-checkpoint { 0%,72% { stroke-dashoffset:1; opacity:0; } 74% { opacity:1; } 80%,95% { stroke-dashoffset:0; opacity:1; } 100% { stroke-dashoffset:0; opacity:0; } }
  @keyframes launch-output { 0%,80% { stroke-dashoffset:1; opacity:0; } 82% { opacity:1; } 88%,95% { stroke-dashoffset:0; opacity:1; } 100% { stroke-dashoffset:0; opacity:0; } }
  @keyframes launch-save { 0%,68% { stroke-dashoffset:1; opacity:.5; } 88%,95% { stroke-dashoffset:0; opacity:1; } 100% { stroke-dashoffset:0; opacity:0; } }
}
@media(max-width:1200px) {
  .header__inner,.launch-layout { width:calc(100% - 80px); }
  .launch-layout { gap:25px; padding-block:60px; grid-template-columns:.95fr 1.05fr; }
  .hero h1 { font-size:clamp(50px,5.3vw,65px); }
  .launch-intro { font-size:15px; }
  .launch-desktop-break { display:none; }
  .launch-steps strong { font-size:11px; }
  .launch-backers { margin-top:40px; }
}
@media(max-width:900px) {
  .header__inner,.launch-layout { width:min(680px,calc(100% - 48px)); }
  .launch-layout { grid-template-columns:1fr; gap:48px; padding:48px 0 36px; }
  .hero h1 { font-size:clamp(52px,8.8vw,76px); }
  .launch-eyebrow { margin-bottom:23px; }
  .launch-intro { max-width:520px; font-size:16px; margin-top:23px; }
  .launch-backers { margin-top:30px; }
  .launch-demo__top,.launch-steps { margin-inline:0; }
  .launch-steps strong { font-size:13px; }
  .launch-step-caption { margin-inline:9px; }
}
@media(max-width:480px) {
  .header__inner,.launch-layout { width:calc(100% - 40px); }
  .header .nav { gap:4px; }
  .header .nav > a:not(.header-signin) { font-size:8px; letter-spacing:.08em; }
  .header .nav .header-cta { padding-inline:6px; }
  .launch-layout { gap:37px; padding-top:34px; }
  .launch-eyebrow { font-size:8px; letter-spacing:.08em; }
  .hero h1 { font-size:clamp(43px,11.5vw,55px); }
  .launch-intro { font-size:15px; }
  .launch-actions { gap:18px; margin-top:25px; }
  .launch-actions .button { min-width:145px; min-height:48px; font-size:13px; }
  .launch-actions .text-link { font-size:12px; }
  .launch-agents { gap:12px; font-size:11px; }
  .launch-backers { gap:12px; }
  .launch-demo__top>span { font-size:9px; }
  .launch-steps button { padding:12px 6px; }
  .launch-steps span { gap:4px; font-size:8px; }
  .launch-steps span b { width:18px; height:18px; }
  .launch-steps strong { font-size:11px; line-height:1.4; }
  .launch-step-caption { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero *, .hero *::before { animation:none!important; transition:none!important; }
  .launch-stack { transform:none; }
  .launch-stack__signal { stroke-dashoffset:90; }
}
