/* ============================================================
   BrightTech AI — single-file site
   Architecture & component system: AuthorIOM standard
   Brand (color + type): BrightTech
   ============================================================ */

/* ---- Fonts (self-hosted Switzer + Whois Mono) ---- */
@font-face{font-family:'Switzer';src:url('../fonts/Switzer-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Switzer';src:url('../fonts/Switzer-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Switzer';src:url('../fonts/Switzer-Semibold.otf') format('opentype');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Whois Mono';src:url('../fonts/whois-mono.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap;}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

/* ---- Design tokens (BrightTech palette mapped onto AuthorIOM's token names) ---- */
:root{
  --ink:#030c1d;          /* near-black navy — primary text */
  --ink-2:#1f3661;        /* deep slate-blue — secondary text */
  --ink-3:#555c78;        /* slate — body text */
  --rule:#010080;         /* BrightTech deep blue — primary brand */
  --rule-lt:#1946fd;      /* vivid accent blue */
  --rule-2:#00074d;       /* darkest brand blue (hero bg) */
  --accent:#6684fd;       /* light electric blue */
  --accent-2:#9190ff;     /* periwinkle */
  --cream:#f0eeef;        /* off-white page background */
  --cream-2:#e2ecff;      /* pale blue tint */
  --white:#ffffff;
  --surface:#e1e7fb;      /* light blue surface band */
  --halo:#ceceff;         /* pale indigo */
  --border:rgba(3,12,29,0.10);
  --border-md:rgba(3,12,29,0.18);
  --sans:'Switzer','Inter',system-ui,Arial,sans-serif;
  --mono:'Whois Mono',ui-monospace,Menlo,monospace;
  --max:1160px;
  --gutter:clamp(1.5rem,5vw,4rem);
}

html{scroll-behavior:smooth;font-size:16px;}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.7;-webkit-font-smoothing:antialiased;}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--accent);color:var(--white);}

/* ---- Layout helpers ---- */
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter);}
.wrap--narrow{max-width:780px;margin-inline:auto;padding-inline:var(--gutter);}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;}
@media (max-width:860px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

/* ---- Typography ---- */
.display{font-family:var(--sans);font-weight:600;font-size:clamp(2.4rem,5vw,4rem);line-height:1.08;letter-spacing:-0.025em;color:var(--ink);}
.display em{font-style:normal;color:var(--rule-lt);}
.display--lg{font-family:var(--sans);font-weight:600;font-size:clamp(2.8rem,6vw,4.8rem);line-height:1.05;letter-spacing:-0.03em;}
h2.section-title{font-family:var(--sans);font-weight:600;font-size:clamp(1.8rem,3.5vw,2.7rem);line-height:1.18;letter-spacing:-0.02em;color:var(--ink);}
h3.card-title{font-family:var(--sans);font-weight:600;font-size:1.2rem;line-height:1.3;color:var(--ink);margin-bottom:0.5rem;letter-spacing:-0.01em;}
.eyebrow{font-family:var(--mono);font-size:0.72rem;font-weight:400;letter-spacing:0.16em;text-transform:uppercase;color:var(--rule-lt);display:block;margin-bottom:1rem;}
.lead{font-size:clamp(1.05rem,2vw,1.2rem);color:var(--ink-2);line-height:1.7;font-weight:400;}
.body-text{font-size:1rem;color:var(--ink-3);line-height:1.75;}
.caption{font-size:0.8rem;color:var(--ink-3);letter-spacing:0.03em;}

/* ---- Nav ---- */
nav{position:sticky;top:0;z-index:100;background:rgba(240,238,239,0.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);}
.nav-inner{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter);height:66px;display:flex;align-items:center;justify-content:space-between;gap:2rem;}
.nav-logo{font-family:var(--sans);font-weight:600;font-size:1.1rem;color:var(--rule);white-space:nowrap;display:flex;align-items:center;gap:0.5rem;letter-spacing:-0.01em;}
.nav-logo .brand-logo{height:24px;width:auto;display:block;}
.brand-logo .brand-fill{fill:var(--ink);}
.nav-logo .brand-suffix{color:var(--rule-lt);font-weight:600;font-size:1.05rem;}
.footer-brand .brand-logo{height:26px;width:auto;display:block;}
.footer-brand .brand-logo .brand-fill{fill:#ffffff;}
.nav-logo-dot{width:9px;height:9px;border-radius:50%;background:var(--rule-lt);flex-shrink:0;}
.nav-links{display:flex;align-items:center;gap:1.35rem;list-style:none;}
.nav-links a{white-space:nowrap;font-size:0.88rem;font-weight:500;color:var(--ink-2);transition:color 0.2s;}
.nav-links a:hover,.nav-links a.active{color:var(--rule-lt);}
.nav-cta{font-size:0.85rem;font-weight:500;padding:0.55rem 1.2rem;border:1.5px solid var(--rule);border-radius:6px;color:var(--rule);background:transparent;transition:background 0.2s,color 0.2s;cursor:pointer;white-space:nowrap;}
.nav-cta:hover{background:var(--rule);color:var(--white);}
.nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin:-10px -10px -10px 0;padding:0;border:none;background:transparent;cursor:pointer;color:var(--rule);flex:none;}
.nav-toggle svg{display:block;width:26px;height:26px;}
.nav-toggle .nav-x{display:none;}
.nav-toggle[aria-expanded="true"] .nav-burger{display:none;}
.nav-toggle[aria-expanded="true"] .nav-x{display:block;}
@media (max-width:820px){
  .nav-links{position:absolute;top:66px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--cream);border-bottom:1px solid var(--border-md);box-shadow:0 14px 30px rgba(3,12,29,0.10);padding:0.5rem var(--gutter) 1rem;max-height:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height 0.28s ease,opacity 0.2s ease;z-index:60;}
  .nav-links.open{max-height:85vh;opacity:1;pointer-events:auto;}
  .nav-links li{width:100%;}
  .nav-links a{display:block;padding:0.85rem 0;font-size:1rem;border-bottom:1px solid var(--border);}
  .nav-links li:last-child a{border-bottom:none;}
  .nav-links .nav-cta{margin-top:0.6rem;text-align:center;}
  .nav-toggle{display:flex;}
  nav{position:sticky;}
}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--sans);font-size:0.92rem;font-weight:500;padding:0.78rem 1.6rem;border-radius:6px;cursor:pointer;border:none;transition:all 0.2s;text-decoration:none;}
.btn--primary{background:var(--rule);color:var(--white);box-shadow:0 2px 12px rgba(1,0,128,0.18);}
.btn--primary:hover{background:var(--rule-lt);transform:translateY(-1px);box-shadow:0 4px 20px rgba(25,70,253,0.28);}
.btn--secondary{background:transparent;color:var(--rule);border:1.5px solid var(--rule);}
.btn--secondary:hover{background:var(--rule);color:var(--white);}
.btn--light{background:rgba(255,255,255,0.1);color:var(--white);border:1.5px solid rgba(255,255,255,0.3);}
.btn--light:hover{background:var(--white);color:var(--rule-2);}
.btn--accent{background:var(--rule-lt);color:var(--white);box-shadow:0 2px 12px rgba(25,70,253,0.25);}
.btn--accent:hover{background:var(--rule);transform:translateY(-1px);}
.btn svg{width:16px;height:16px;}

/* ---- Rules & sections ---- */
.h-rule{height:1px;background:var(--border-md);margin:0;border:none;}
.h-rule--accent{height:2px;background:linear-gradient(90deg,var(--rule-lt) 0%,transparent 100%);border:none;}
section{padding-block:clamp(4rem,8vw,7rem);}
.section--cream{background:var(--cream);}
.section--white{background:var(--white);}
.section--surface{background:var(--surface);}
.section--ink{background:var(--rule-2);color:var(--white);}
.section--ink .section-title,.section--ink .display,.section--ink .display--lg{color:var(--white);}
.section--ink .body-text{color:rgba(255,255,255,0.72);}
.section--rule{background:var(--rule);color:var(--white);}

/* ---- Hero ---- */
.hero{background:var(--rule-2);color:var(--white);padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:clamp(3.5rem,7vw,5.5rem);position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 72% 45%,rgba(25,70,253,0.45) 0%,transparent 70%),radial-gradient(ellipse 45% 45% at 18% 85%,rgba(145,144,255,0.14) 0%,transparent 60%);pointer-events:none;}
.hero-grid{position:relative;display:grid;grid-template-columns:1fr 420px;gap:4rem;align-items:center;}
.hero-visual{width:100%;}
.hero-continuation{margin-top:clamp(2.5rem,5vw,4rem);padding-top:clamp(2rem,4vw,3rem);border-top:1px solid rgba(255,255,255,0.14);max-width:900px;}
.differentiator{max-width:900px;}
.differentiator .diff-not{font-family:var(--sans);font-size:clamp(1.05rem,2vw,1.4rem);font-weight:400;color:var(--ink-3);margin:0;}
.differentiator .diff-do{font-family:var(--sans);font-size:clamp(1.9rem,4.5vw,3rem);font-weight:600;line-height:1.12;letter-spacing:-0.02em;color:var(--ink);margin:0.5rem 0 0;}
.differentiator .diff-do em{color:var(--rule-lt);font-style:italic;}
.differentiator .diff-sub{font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.6;color:var(--ink-2);margin:1.5rem 0 0;max-width:680px;}
.hero-continuation .hero-cont-text{margin-top:0.85rem;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.6;color:rgba(255,255,255,0.78);}
.hero-continuation em{color:var(--accent-2);font-style:italic;}
@media (max-width:960px){.hero-grid{grid-template-columns:1fr;gap:2.5rem;}}
.hero-kicker{display:flex;align-items:center;gap:0.75rem;margin-bottom:1.2rem;}
.hero-kicker-line{width:32px;height:1px;background:var(--accent);}
.hero-kicker span{font-family:var(--mono);font-size:0.72rem;font-weight:400;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent-2);}
.hero .display--lg{color:var(--white);margin-bottom:1.4rem;}
.hero .display--lg em{color:var(--accent);font-style:normal;}
.hero-sub{color:rgba(255,255,255,0.74);margin-bottom:2.3rem;max-width:560px;font-size:clamp(1.02rem,1.8vw,1.18rem);line-height:1.7;}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;}
.hero-panel{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);border-radius:10px;padding:2rem;}
.hero-panel-label{font-family:var(--mono);font-size:0.7rem;font-weight:400;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent-2);margin-bottom:1.25rem;padding-bottom:0.75rem;border-bottom:1px solid rgba(255,255,255,0.12);}
.hero-list{list-style:none;display:flex;flex-direction:column;}
.hero-list li{display:flex;align-items:flex-start;gap:0.75rem;padding:0.7rem 0;border-bottom:1px solid rgba(255,255,255,0.07);font-size:0.92rem;color:rgba(255,255,255,0.82);line-height:1.45;}
.hero-list li:last-child{border-bottom:none;}
.hero-list--check li{font-weight:500;color:#fff;}
.hero-mini{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,0.12);}
.cred-band{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;}
.outcome-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:1.25rem;margin-top:0.5rem;}
.outcome-item{display:flex;flex-direction:column;gap:0.7rem;padding:1.4rem 1rem;background:var(--surface);border-radius:12px;}
.outcome-item .outcome-mark{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--rule-lt);position:relative;}
.outcome-item .outcome-mark::after{content:'';position:absolute;left:8px;top:6px;width:7px;height:12px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);}
.outcome-item p{font-family:var(--sans);font-size:0.94rem;font-weight:500;color:var(--ink);line-height:1.4;margin:0;}
@media (max-width:900px){.outcome-strip{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.outcome-strip{grid-template-columns:1fr;}}
.cs-list{display:flex;flex-direction:column;gap:2rem;}
.cs-card{position:relative;padding:clamp(1.75rem,3.5vw,2.75rem);overflow:hidden;}
.cs-card:nth-child(even){background:var(--surface);}
.cs-num{position:absolute;top:clamp(1rem,2.5vw,1.6rem);right:clamp(1.25rem,3vw,2rem);font-family:var(--sans);font-weight:600;font-size:clamp(2.5rem,6vw,4rem);line-height:1;color:var(--rule-lt);opacity:0.14;pointer-events:none;}
.cs-card .eyebrow{color:var(--rule-lt);}
.cs-components{font-family:var(--mono);font-size:0.72rem;letter-spacing:0.04em;color:var(--ink-3);margin-top:1.25rem;line-height:1.6;}
.cs-insight{font-family:var(--sans);font-size:1.08rem;font-weight:500;color:var(--ink);line-height:1.5;margin-top:1.5rem;padding:1.1rem 0 0.2rem 1.25rem;border-left:3px solid var(--rule-lt);}
.cs-insight .cs-insight-label{display:block;font-family:var(--mono);font-size:0.66rem;font-weight:400;letter-spacing:0.12em;text-transform:uppercase;color:var(--rule-lt);margin-bottom:0.4rem;}
.cs-insight strong{color:var(--ink);}
.cred-band .cred-item{display:flex;flex-direction:column;gap:0.4rem;padding:0 0.5rem;border-left:1px solid rgba(255,255,255,0.14);}
.cred-band .cred-item:first-child{border-left:none;}
.cred-band .cred-label{font-family:var(--sans);font-size:1.02rem;font-weight:600;color:#fff;letter-spacing:-0.01em;}
.cred-band .cred-sub{font-family:var(--sans);font-size:0.85rem;line-height:1.45;color:rgba(255,255,255,0.6);}
@media (max-width:760px){.cred-band{grid-template-columns:1fr 1fr;gap:1.25rem 1rem;}.cred-band .cred-item{border-left:none;padding:0;}}
@media (max-width:430px){.cred-band{grid-template-columns:1fr;}}
.hero-mini svg{width:100%;height:auto;display:block;}
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(2rem,4vw,3.5rem);align-items:start;}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;}}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media (max-width:560px){.contact-form .form-row{grid-template-columns:1fr;}}
.contact-form .form-field{margin-bottom:1rem;display:flex;flex-direction:column;}
.contact-form label{font-family:var(--mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:0.4rem;}
.contact-form input,.contact-form select,.contact-form textarea{font-family:var(--sans);font-size:0.95rem;color:var(--ink);background:#fff;border:1px solid var(--border-md);border-radius:9px;padding:0.7rem 0.85rem;width:100%;transition:border-color 0.2s ease,box-shadow 0.2s ease;}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#9aa3bd;}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--rule-lt);box-shadow:0 0 0 3px rgba(25,70,253,0.12);}
.contact-form textarea{resize:vertical;min-height:120px;}
.contact-link{color:var(--rule-lt);font-weight:500;text-decoration:none;border-bottom:1px solid transparent;transition:border-color 0.2s ease;}
.contact-link:hover{border-bottom-color:var(--rule-lt);}

.hero-list li::before{content:'';flex-shrink:0;width:18px;height:18px;background:rgba(25,70,253,0.25);border:1px solid rgba(102,132,253,0.5);border-radius:5px;margin-top:2px;}

/* ---- Cards ---- */
.card{background:var(--white);border:1px solid var(--border);border-radius:12px;padding:1.75rem;transition:transform 0.22s,box-shadow 0.22s,border-color 0.22s;height:100%;}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(3,12,29,0.09);border-color:var(--border-md);}
.card-icon{width:44px;height:44px;margin-bottom:1.1rem;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--surface);}
.card-icon img,.card-icon svg{width:24px;height:24px;}
.card .body-text{font-size:0.94rem;}
.card--ghost{background:transparent;border:1px solid var(--border-md);}

/* feature list with check marks */
.check-list{list-style:none;display:flex;flex-direction:column;gap:0.7rem;margin-top:0.5rem;}
.check-list li{position:relative;padding-left:1.7rem;font-size:0.96rem;color:var(--ink-3);line-height:1.6;}
.check-list li::before{content:'';position:absolute;left:0;top:0.45em;width:9px;height:9px;border-radius:3px;background:var(--rule-lt);}
.check-list.on-dark li{color:rgba(255,255,255,0.82);}
.check-list.on-dark li::before{background:var(--accent);}

/* section intro block */
.sec-head{max-width:720px;margin-bottom:2.75rem;}
.sec-head .lead{margin-top:1rem;}

/* numbered steps */
.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;}
@media (max-width:760px){.steps{grid-template-columns:1fr;}}
.step{background:var(--white);border:1px solid var(--border);border-radius:12px;padding:1.6rem;display:flex;gap:1.1rem;align-items:flex-start;}
.step-num{flex-shrink:0;width:34px;height:34px;border-radius:8px;background:var(--rule);color:var(--white);font-family:var(--mono);font-size:0.85rem;display:flex;align-items:center;justify-content:center;}

/* pillar (two-column big feature) */
.pillar{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
@media (max-width:860px){.pillar{grid-template-columns:1fr;gap:1.75rem;}}
.pillar-media{background:var(--surface);border-radius:14px;padding:2.5rem;display:flex;align-items:center;justify-content:center;min-height:240px;}
.pillar-media img{max-height:220px;width:auto;}

/* CTA band */
.cta-band{text-align:center;}
.cta-band .display{margin-bottom:1.2rem;}
.cta-band .lead{max-width:620px;margin:0 auto 2.25rem;color:rgba(255,255,255,0.8);}

/* simple two-up logo / split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
@media (max-width:760px){.split{grid-template-columns:1fr;}}

/* tag chips */
.chips{display:flex;flex-wrap:wrap;gap:0.6rem;margin-top:1.25rem;}
.chip{font-family:var(--mono);font-size:0.74rem;letter-spacing:0.06em;text-transform:uppercase;padding:0.4rem 0.85rem;border-radius:6px;background:var(--surface);color:var(--rule);}

/* footer */
footer{background:var(--ink);color:rgba(255,255,255,0.66);padding-block:clamp(3rem,5vw,4rem);}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2.5rem;}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr;gap:2rem;}}
.footer-brand{font-family:var(--sans);font-weight:600;font-size:1.15rem;color:var(--white);display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem;}
.footer-brand .nav-logo-dot{background:var(--accent);}
.footer-blurb{font-size:0.9rem;max-width:340px;line-height:1.7;}
.footer-col h4{font-family:var(--mono);font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent-2);margin-bottom:1rem;font-weight:400;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:0.65rem;}
.footer-col a{font-size:0.9rem;color:rgba(255,255,255,0.7);transition:color 0.2s;}
.footer-col a:hover{color:var(--white);}
.footer-bottom{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,0.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:0.75rem;font-size:0.82rem;}

/* ---- Animations: BrightTech "slide-up-blur" reveal (IntersectionObserver-driven) ----
   Reproduces the original Webflow IX2 signature: elements start 60px lower,
   blurred 5px and transparent, then resolve to sharp/in-place when scrolled
   into view. Replaces webflow.js (445KB) with near-zero runtime cost. */
.fade-up{
  opacity:0;
  transform:translate3d(0,60px,0);
  filter:blur(5px);
  transition:opacity 0.7s cubic-bezier(0.22,0.61,0.36,1),
             transform 0.7s cubic-bezier(0.22,0.61,0.36,1),
             filter 0.7s cubic-bezier(0.22,0.61,0.36,1);
  will-change:opacity,transform,filter;
}
.fade-up.in{opacity:1;transform:none;filter:blur(0);}
/* stagger when several elements reveal together */
.fade-up-1{transition-delay:0.08s;}
.fade-up-2{transition-delay:0.18s;}
.fade-up-3{transition-delay:0.30s;}
.fade-up-4{transition-delay:0.44s;}
@media (prefers-reduced-motion:reduce){
  .fade-up{opacity:1!important;transform:none!important;filter:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
}

/* ---- Router ---- */
.route{display:block;}
.route.active{display:block;}

.iom-fw {
    background: #ffffff;
    border: 1px solid var(--border-md);
    border-radius: 16px;
    padding: 0;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
    color: #00074d;
    box-shadow: 0 18px 45px rgba(1,0,128,.07);
  }
  .iom-fw .iom-fw-svg { display:block; width:100%; height:auto; }
  .iom-fw .iom-fw-clickable { cursor:pointer; }
  .iom-fw .iom-fw-clickable rect.iom-fw-bg,
  .iom-fw .iom-fw-clickable circle.iom-fw-bg { transition: stroke .25s ease, stroke-width .25s ease, fill .25s ease, filter .25s ease; }
  .iom-fw .iom-fw-clickable:hover rect.iom-fw-bg,
  .iom-fw .iom-fw-clickable:hover circle.iom-fw-bg { stroke:#6684fd; stroke-width:2; }
  .iom-fw .iom-fw-clickable.active rect.iom-fw-bg,
  .iom-fw .iom-fw-clickable.active circle.iom-fw-bg { stroke:#6684fd; stroke-width:2.5; }
  .iom-fw .iom-fw-info {
    text-align:left;
    padding: 6px 24px 14px;
    height: 88px;
    box-sizing: border-box;
    overflow: hidden;
  }
  .iom-fw .iom-fw-label { font-size:10px; color:#555c78; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; }
  .iom-fw .iom-fw-name { margin:0; font-size:17px; line-height:1.15; font-weight:800; color:#1946fd; height:22px; overflow:hidden; }
  .iom-fw .iom-fw-desc {
    margin:4px 0 0; font-size:14px; line-height:1.45; color:#010080;
    height:42px; overflow:hidden;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  }
  .iom-fw .iom-fw-hint { text-align:center; font-size:10px; color:#555c78; font-style:italic; padding-bottom:10px; }

  @keyframes iomFwFlow { to { stroke-dashoffset:-14; } }
  .iom-fw .iom-fw-flow { animation: iomFwFlow 2.4s linear infinite; }
  @keyframes iomFwFlowRev { to { stroke-dashoffset:14; } }
  .iom-fw .iom-fw-flow-rev { animation: iomFwFlowRev 2.6s linear infinite; }
  @keyframes iomFwGatePulse { 0%,100%{opacity:.7} 50%{opacity:1} }
  .iom-fw .iom-fw-gate { animation: iomFwGatePulse 1.8s ease-in-out infinite; }

.iom-hero {
    background: linear-gradient(135deg, #f0eeef 0%, #e8eeff 55%, #e1e7fb 100%);
    border: 1px dashed #c7d2f0;
    border-radius: 16px;
    padding: 2px 4px 4px;
    font-family: -apple-system, system-ui, "Segoe UI", sans-serif;
    color: #1F2348;
  }
  .iom-hero .iom-svg { display: block; width: 100%; height: auto; }
  .iom-hero .iom-num { cursor: pointer; }
  .iom-hero .iom-num circle.iom-num-core { transition: r 0.35s cubic-bezier(.34,1.56,.64,1), fill 0.3s ease, stroke-width 0.3s ease; }
  .iom-hero .iom-num text { pointer-events: none; transition: font-size 0.3s ease; }
  .iom-hero .iom-num:hover circle.iom-num-core { filter: brightness(1.1); }
  .iom-hero .iom-scene { transition: opacity 0.35s ease; }
  .iom-hero .iom-info { margin-top: 2px; text-align: center; min-height: 52px; }
  .iom-hero .iom-step-name { font-size: 19px; font-weight: 700; color: #010080; margin: 0 0 2px 0; letter-spacing: -0.2px; }
  .iom-hero .iom-step-desc { font-size: 12.5px; color: #555c78; line-height: 1.4; margin: 0 auto; max-width: 540px; }
  .iom-hero .iom-hint { font-size: 10px; color: #8893b5; text-align: center; margin-top: 0; padding-bottom: 2px; font-style: italic; letter-spacing: 0.3px; }

  @keyframes iomPulse { 0%, 100% { opacity: 0.4; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } }
  .iom-hero .iom-pulse { animation: iomPulse 2s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
  @keyframes iomOrbGlow { 0%, 100% { opacity: 0.18; } 50% { opacity: 0.32; } }
  .iom-hero .iom-orb-glow { animation: iomOrbGlow 3.5s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
  @keyframes iomLedPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
  .iom-hero .iom-led { animation: iomLedPulse 1.2s ease-in-out infinite; }
  @keyframes iomFadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
  .iom-hero .iom-scene { animation: iomFadeIn 0.4s ease forwards; transform-origin: center; transform-box: fill-box; }
  .iom-hero .iom-num-halo { fill: none; stroke: #1946fd; stroke-width: 1.5; opacity: 0; transition: opacity 0.3s ease; }
  .iom-hero .iom-num.active .iom-num-halo { opacity: 0.5; }
  .iom-hero #orbConnect { transition: x2 0.4s cubic-bezier(.34,1.56,.64,1), opacity 0.3s ease; }

.pd-proof {
    --ink:#00074d; --ink-soft:#1946fd; --ink-mute:#6684fd;
    --violet:#6684fd; --violet-2:#9190ff; --violet-deep:#6684fd;
    --magenta:#1946fd; --amber:#1946fd; --amber-2:#1946fd; --emerald:#0fae74;
    --surface:#eef2ff; --wash-violet:#eef2ff; --wash-peach:#eef2ff; --wash-pink:#eef2ff;
    --line:#eef2ff; --line-soft:#eef2ff; --bg:#eef2ff;
  }
.pd-proof * {box-sizing:border-box}
.pd-proof body { margin:0; background:var(--bg); font-family:"Hanken Grotesk",system-ui,sans-serif;
    color:var(--ink); -webkit-font-smoothing:antialiased; padding:48px 24px 80px; }
.pd-proof .section { max-width:1080px; margin:0 auto; }
.pd-proof .eyebrow { font:700 12px/1 "Hanken Grotesk",sans-serif; letter-spacing:.22em; color:var(--violet); text-transform:uppercase; margin:0 0 14px; }
.pd-proof h2 { font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:clamp(34px,4.4vw,52px); line-height:1.02; letter-spacing:-.02em; margin:0 0 14px; color:var(--ink); }
.pd-proof .lede { font-size:15px; color:var(--ink-soft); max-width:620px; margin:0 0 28px; }
.pd-proof .vizcard { border:1px solid var(--line); border-radius:16px; overflow:hidden;
    background:linear-gradient(160deg,#eef2ff 0%, #eef2ff 55%, #eef2ff 100%); }
.pd-proof .viz-head { display:flex; align-items:center; justify-content:space-between; padding:13px 15px 0; }
.pd-proof .pill { font:700 10px/1 "Hanken Grotesk",sans-serif; letter-spacing:.08em; text-transform:uppercase;
    color:#fff; padding:6px 11px; border-radius:999px;
    background:linear-gradient(135deg,var(--violet) 0%, var(--magenta) 110%);
    box-shadow:0 4px 14px -6px rgba(124,58,237,.6); }
.pd-proof .viz-tag { font:700 11px/1 "Hanken Grotesk",sans-serif; letter-spacing:.04em; color:var(--ink); }
.pd-proof .viz-body { padding:14px 15px 4px; }
.pd-proof .viz-cap { font-size:11px; color:var(--ink-mute); padding:2px 15px 13px; }
.pd-proof .viz-body svg { width:100%; height:auto; display:block; }
.pd-proof .metrics { margin-bottom:26px; }
.pd-proof .grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media(max-width:820px){ .grid{ grid-template-columns:1fr; } }
.pd-proof .case h3 { font-family:"Bricolage Grotesque",sans-serif; font-weight:700; font-size:20px; line-height:1.12; letter-spacing:-.01em; margin:0 0 7px; }
.pd-proof .case .scene { font-size:13px; color:var(--ink-soft); margin:0 0 14px; }
.pd-proof .case .row { font-size:13px; margin:0 0 9px; color:var(--ink-soft); }
.pd-proof .case .row b { color:var(--ink); font-weight:700; }
.pd-proof .case ul { margin:13px 0 0; padding:0; list-style:none; }
.pd-proof .case li { position:relative; padding-left:18px; font-size:13px; color:var(--ink); margin:8px 0; }
.pd-proof .case li::before { content:""; position:absolute; left:2px; top:6px; width:6px; height:6px; border-radius:999px;
    background:linear-gradient(135deg,var(--violet),var(--magenta)); }
.pd-proof .spacer { height:12px; }
.pd-proof svg text { font-family:"Hanken Grotesk",sans-serif; fill:var(--ink); }
.pd-proof .t-eyebrow { font-size:8.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; fill:var(--ink-mute); }
.pd-proof .t-node { font-size:11px; font-weight:600; fill:var(--ink); }
.pd-proof .t-node-sm { font-size:9.5px; font-weight:600; fill:var(--ink-soft); }
.pd-proof .t-out { font-size:11.5px; font-weight:700; fill:var(--violet-deep); }
.pd-proof .t-cap { font-size:8.5px; font-weight:500; fill:var(--ink-mute); }
.pd-proof .t-kpi { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; fill:var(--ink-soft); }
.pd-proof .t-status { font-size:11px; font-weight:700; fill:var(--emerald); }