/* Hello Bleu — Bleu OS launch page (/bleu-os/). Loaded after hb-tools.css (shared lab- sections, cards, form,
   FAQ, CTA). Only the Bleu OS hero, animations, demo, audit teaser, agents and ticker live here (prefix os-). */
@keyframes os-spin{to{transform:rotate(360deg)}}
@keyframes os-pulse{0%{box-shadow:0 0 0 0 rgba(44,143,250,.45)}70%{box-shadow:0 0 0 36px rgba(44,143,250,0)}100%{box-shadow:0 0 0 0 rgba(44,143,250,0)}}
@keyframes os-flow{to{stroke-dashoffset:-28}}
@keyframes os-live{0%,100%{box-shadow:0 0 0 0 rgba(40,200,64,.55)}60%{box-shadow:0 0 0 7px rgba(40,200,64,0)}}
@keyframes os-blink{0%,100%{opacity:1}50%{opacity:0}}
@keyframes os-dot{0%,80%,100%{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@keyframes os-scan{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
@keyframes os-marquee{to{transform:translateX(-50%)}}
@keyframes os-type{0%{width:0}14%{width:32ch}90%{width:32ch}96%,100%{width:0}}
@keyframes os-think{0%,13%{opacity:0}15%,23%{opacity:1}25%,100%{opacity:0}}
@keyframes os-s1{0%,23%{opacity:0;transform:translateY(-8px)}26%,88%{opacity:1;transform:none}92%,100%{opacity:0;transform:none}}
@keyframes os-s2{0%,30%{opacity:0;transform:translateY(-8px)}33%,88%{opacity:1;transform:none}92%,100%{opacity:0;transform:none}}
@keyframes os-s3{0%,37%{opacity:0;transform:translateY(-8px)}40%,88%{opacity:1;transform:none}92%,100%{opacity:0;transform:none}}
@keyframes os-s4{0%,44%{opacity:0;transform:translateY(-8px)}47%,88%{opacity:1;transform:none}92%,100%{opacity:0;transform:none}}
@keyframes os-s5{0%,51%{opacity:0;transform:translateY(-8px)}54%,88%{opacity:1;transform:none}92%,100%{opacity:0;transform:none}}
@keyframes os-s6{0%,58%{opacity:0;transform:translateY(-8px)}61%,88%{opacity:1;transform:none}92%,100%{opacity:0;transform:none}}
@keyframes os-s7{0%,65%{opacity:0;transform:translateY(-8px)}68%,88%{opacity:1;transform:none}92%,100%{opacity:0;transform:none}}

/* hero */
.os-hero{padding:150px 0 64px;overflow:hidden}
.os-hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:40px;align-items:center}
.os-pill{display:inline-flex;align-items:center;gap:10px;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;color:#2c8ffa;background:#edf4ff;padding:8px 16px;border-radius:100px;letter-spacing:1px;text-transform:uppercase;margin:0 0 22px}
.os-live{width:8px;height:8px;border-radius:50%;background:#28c840;display:inline-block;flex:none;animation:os-live 2s ease-out infinite}
.os-h1{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(64px,8.4vw,120px);line-height:.9;letter-spacing:2px;color:#111;margin:0 0 18px;text-transform:none}
.os-h1 span{color:#2c8ffa}
.os-sub{font-size:17px;font-weight:500;color:#555;margin:0 0 30px;max-width:520px;line-height:1.65}
.os-sub strong{color:#111}
.os-row{display:flex;gap:14px;flex-wrap:wrap}

/* orbiting agents */
.os-orbit-wrap{height:460px;display:flex;justify-content:center}
.os-orbit{position:relative;width:440px;height:440px;flex:none}
.os-glow{position:absolute;inset:70px;border-radius:50%;background:radial-gradient(circle,rgba(44,143,250,.16) 0%,rgba(44,143,250,0) 70%)}
.os-ring{position:absolute;border-radius:50%;animation:os-spin 40s linear infinite}
.os-ring.r1{inset:0;border:1.5px dashed rgba(44,143,250,.35)}
.os-ring.r2{inset:62px;border:1.5px solid rgba(44,143,250,.16);animation-duration:26s;animation-direction:reverse}
.os-ring.r3{inset:118px;border:1.5px dashed rgba(44,143,250,.45);animation-duration:16s}
.os-track{position:absolute;inset:0;animation:os-spin 48s linear infinite}
.os-track.inner{animation:os-spin 30s linear infinite reverse}
.os-links{position:absolute;inset:0;width:440px;height:440px}
.os-links line{stroke:#2c8ffa;stroke-width:1.5;stroke-dasharray:4 10;opacity:.55;animation:os-flow 1.6s linear infinite}
.os-sat{position:absolute;top:50%;left:50%;width:0;height:0}
.os-sat.a1{transform:rotate(-90deg) translateX(200px) rotate(90deg)}
.os-sat.a2{transform:rotate(-18deg) translateX(200px) rotate(18deg)}
.os-sat.a3{transform:rotate(54deg) translateX(200px) rotate(-54deg)}
.os-sat.a4{transform:rotate(126deg) translateX(200px) rotate(-126deg)}
.os-sat.a5{transform:rotate(198deg) translateX(200px) rotate(-198deg)}
.os-sat.b1{transform:rotate(-30deg) translateX(118px) rotate(30deg)}
.os-sat.b2{transform:rotate(90deg) translateX(118px) rotate(-90deg)}
.os-sat.b3{transform:rotate(210deg) translateX(118px) rotate(-210deg)}
.os-upright{width:0;height:0;animation:os-spin 48s linear infinite reverse}
.os-track.inner .os-upright{animation:os-spin 30s linear infinite}
.os-chip{position:absolute;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:7px;background:#fff;border:2px solid #e8e8e0;border-radius:100px;padding:8px 14px;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:800;color:#111;white-space:nowrap;box-shadow:0 8px 24px rgba(17,17,17,.08)}
.os-track.inner .os-chip{font-size:11px;padding:6px 11px;background:#f0f7ff;border-color:#cfe3fb}
.os-core{position:absolute;top:50%;left:50%;width:136px;height:136px;margin:-68px 0 0 -68px;border-radius:34px;background:#2c8ffa;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:os-pulse 2.6s ease-out infinite;z-index:2}
.os-core b{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:40px;line-height:.9;letter-spacing:1px;white-space:nowrap}
.os-core span{font:10px 'Courier New',monospace;letter-spacing:1px;opacity:.9;margin-top:4px}

/* 4-step flow */
.os-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
.os-flow .lab-card{padding:52px 22px 22px}
.os-arrow{position:absolute;top:50%;right:-12px;width:22px;height:22px;border-radius:50%;background:#2c8ffa;color:#fff;display:flex;align-items:center;justify-content:center;z-index:2;transform:translateY(-50%)}
.os-flow .lab-card:last-child .os-arrow{display:none}

/* demo terminal */
.os-demo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:40px;align-items:center}
.os-term{background:#16162a;border-radius:16px;overflow:hidden;color:#f0f0f0;box-shadow:0 24px 60px rgba(22,22,42,.18)}
.os-body{padding:24px 26px 26px;font:14px/1.5 'Courier New',monospace;min-height:430px}
.os-prompt{display:flex;align-items:center;gap:8px;color:#8b8ba7;margin:0 0 16px}
.os-typed{display:inline-block;overflow:hidden;white-space:nowrap;width:0;color:#fff;animation:os-type 14s steps(32,end) infinite;vertical-align:bottom}
.os-caret{display:inline-block;width:9px;height:16px;background:#2c8ffa;animation:os-blink 1s step-start infinite}
.os-thinking{display:flex;align-items:center;gap:8px;color:#8b8ba7;margin:0 0 12px;animation:os-think 14s infinite;height:20px}
.os-thinking i,.os-task i{width:6px;height:6px;border-radius:50%;background:#2c8ffa;display:inline-block;animation:os-dot 1.2s infinite}
.os-thinking i:nth-of-type(2),.os-task i:nth-of-type(2){animation-delay:.15s}
.os-thinking i:nth-of-type(3),.os-task i:nth-of-type(3){animation-delay:.3s}
.os-step{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed #2e2e4d;color:#e6e7f2;opacity:0}
.os-ck{width:20px;height:20px;border-radius:50%;background:#2c8ffa;display:flex;align-items:center;justify-content:center;flex:none}
.os-who{margin-left:auto;font-size:10px;font-family:'Montserrat',sans-serif;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#7cb9ff;background:#1f1f38;border:1px solid #2e2e4d;padding:3px 8px;border-radius:100px;white-space:nowrap}
.os-step.s1{animation:os-s1 14s infinite}.os-step.s2{animation:os-s2 14s infinite}.os-step.s3{animation:os-s3 14s infinite}
.os-step.s4{animation:os-s4 14s infinite}.os-step.s5{animation:os-s5 14s infinite}.os-step.s6{animation:os-s6 14s infinite}
.os-approve{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#1f1f38;border:1px solid #2e2e4d;border-radius:12px;padding:12px 14px;opacity:0;animation:os-s7 14s infinite;font-size:13px}
.os-approve b{color:#febc2e}
.os-go{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;color:#fff;background:#2c8ffa;border-radius:100px;padding:8px 16px;white-space:nowrap}

/* sample audit teaser */
.os-audit{background:#fff;border:2px solid #e8e8e0;border-radius:16px;padding:54px 24px 24px;position:relative}
.os-audit h3{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:32px;letter-spacing:.5px;line-height:1;margin:0 0 4px;color:#111;text-transform:none}
.os-audit h3 span{color:#2c8ffa}
.os-meta{font-size:12px;color:#777;font-weight:600;margin:0 0 18px}
.os-alabel{font-family:'Montserrat',sans-serif;font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#777;margin:0 0 8px}
.os-alist{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}
.os-alist li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:#333;background:#fffef7;border:1px solid #eee9da;border-radius:10px;padding:10px 12px;line-height:1.4}
.os-ic{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;font:700 12px 'Montserrat',sans-serif;color:#fff}
.os-ic.good{background:#1f9d3a}.os-ic.bad{background:#d9480f}
.os-locked{position:relative;margin-top:6px}
.os-locked .os-alist{filter:blur(5px);user-select:none;margin:0}
.os-lockbox{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.os-lockbox span{display:inline-flex;align-items:center;gap:8px;background:#111;color:#fff;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;padding:9px 16px;border-radius:100px}
.os-audit .lab-btn{width:100%;margin-top:18px}

/* agents */
.os-agents{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}
.os-agents .lab-card{padding:52px 20px 20px}
.lab-chip.ok{color:#1a7a2c;background:#e9f8ec;display:inline-flex;align-items:center;gap:6px}
.os-task{margin-top:auto;font:12px 'Courier New',monospace;color:#555;background:#fffef7;border:1px solid #eee9da;border-radius:8px;padding:8px 10px;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden}
.os-task i{width:4px;height:4px}
.os-meter{height:4px;border-radius:100px;background:#edf4ff;overflow:hidden;margin-top:10px}
.os-meter i{display:block;width:40%;height:100%;background:#2c8ffa;border-radius:100px;animation:os-scan 1.8s ease-in-out infinite}
.os-more{border-style:dashed !important;background:#fffef7 !important;justify-content:center}

/* activity ticker */
.os-ticker{overflow:hidden;border-top:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06);padding:18px 0;background:#fff}
.os-ticker-note{font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#777;text-align:center;margin:0 0 12px}
.os-ticker-track{display:flex;gap:16px;width:max-content;animation:os-marquee 46s linear infinite}
.os-tick{display:inline-flex;align-items:center;gap:10px;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;color:#444;background:#fffef7;border:1.5px solid #e8e8e0;border-radius:100px;padding:8px 16px;white-space:nowrap}
.os-tick b{color:#2c8ffa;font-weight:800}

/* pre-registration extras */
.os-agree{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:#444;line-height:1.5;margin:4px 0 16px;font-weight:500}
.os-agree input{width:20px !important;height:20px !important;min-height:0 !important;margin:1px 0 0;accent-color:#2c8ffa;flex:none;padding:0 !important}
.os-terms{max-width:860px;margin:28px auto 0;background:#fff;border:2px solid #e8e8e0;border-radius:16px;padding:0 22px}
.os-terms summary{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;padding:16px 0;color:#111;list-style:none;display:flex;justify-content:space-between;gap:16px;min-height:44px;align-items:center}
.os-terms summary::-webkit-details-marker{display:none}
.os-terms summary::after{content:'+';color:#2c8ffa;font-size:20px;line-height:1}
.os-terms[open] summary::after{content:'\2013'}
.os-terms ul{margin:0 0 18px;padding-left:20px;font-size:13px;color:#555;line-height:1.7}
.os-q{font-size:13px;color:#777;margin:0}
.os-q a{font-weight:700;text-decoration:none}

@media (max-width:900px){.os-hero{padding:118px 0 48px}}
@media (max-width:620px){
  .os-hero{padding:100px 0 32px}
  .os-orbit{transform:scale(.68);transform-origin:top center}.os-orbit-wrap{height:310px}
  .os-body{padding:20px 16px;font-size:12.5px;min-height:420px}
  .os-who{display:none}
  .os-arrow{display:none}
}
@media (max-width:380px){.os-orbit{transform:scale(.6)}.os-orbit-wrap{height:276px}}
@media (prefers-reduced-motion:reduce){
  .os-ring,.os-track,.os-upright,.os-core,.os-links line,.os-live,.os-task i,.os-meter i,.os-ticker-track,.os-thinking,.os-thinking i,.os-caret{animation:none !important}
  .os-typed{animation:none;width:32ch}
  .os-step,.os-approve{animation:none;opacity:1}
}
