/* ===========================================================================
   site.css - GENERATED BUNDLE (comment-stripped concatenation; rules
   untouched). DO NOT EDIT BY HAND. Source of truth = the modular partials
   in this folder - commentary lives there.  Regenerate:  python build.py
   Frozen order: tokens -> base -> utilities -> layout -> components ->
                 marketing -> identity -> responsive
   =========================================================================== */
@layer tokens, base, layout, components, pages;

/* ===== tokens.css ===== */
:root{
  --accent:#4338CA;
  --accent-deep:#322aa6;
  --accent-tint:#edecfb;
  --accent-soft:#d6d3f6;
  --accent-lilac:#9b93ff;   
  --logo-ai:#8f88ff;        
  --grad-accent:linear-gradient(110deg,#5b8cff 0%,#8b7bf7 55%,#a78bfa 100%); 
  --navy:#0B0F17;           
  --footer:#080b11;         
  --page:#F5F3EE;           
  --surface:#ffffff;        
  --surface-2:#faf9f5;      
  --border:#e6e2d9;         
  --ink:#101725;            
  --text-2:#5b6676;         
  --text-3:#7a8494;         
  --meta:#98a2b0;           
  --d-text:#EAECF2;
  --d-text-2:#aab2c2;
  --d-text-3:#c3cbe0;
  --d-muted:#6f7a8d;
  --nav-text:#c3c9d4;
  --ok:#6fd39f;      --ok-deep:#2E7D5B;
  --warn:#e0b872;    --warn-deep:#B08430;
  --warn-text:#8A6414;      
  --r-xs:5px; --r-nav:7px; --r-sm:8px; --r:10px; --r-btn:11px; --r-md:12px;
  --r-lg:14px; --r-xl:16px; --r-2xl:18px; --r-pill:999px;
  --container:1240px;
  --gutter:32px;
  --header-h:68px;
  --sp-30:30px; --sp-44:44px; --sp-60:60px; --sp-76:76px;
  --sp-96:96px; --sp-100:100px; --sp-104:104px; --sp-108:108px;
  --shadow-sm:0 1px 2px rgba(16,23,37,.06);
  --shadow-lg:0 18px 48px rgba(16,23,37,.12);
  --ease:cubic-bezier(.2,.7,.2,1);
  --dur-micro:.15s;   
  --dur-reveal:.6s;   
  --focus:rgba(67,56,202,.55);  
  --text-primary:#101725;
  --text-secondary:#5b6676;
  --text-muted:#616b7a;        
  --text-faint:#656f80;        
  --text-inverse:#ffffff;
  --text-secondary-d:#aab2c2;  
  --text-muted-d:#808b9e;      
  --text-faint-d:#7c8698;      
  --font-body:'IBM Plex Sans','Plex Sans Fallback',system-ui,sans-serif;
  --font-display:'Newsreader','Newsreader Fallback',serif;
  --font-mono:'IBM Plex Mono','Plex Mono Fallback',monospace;
  --font-hero:var(--font-display);  
  --fs-hero:clamp(38px,4.8vw,62px);   
  --fs-h2:clamp(28px,3.6vw,46px);     
  --fs-h3:22px;                        
  --fs-lead:18px;                      
  --fs-body:16px;                      
  --fs-sm:14px;                        
  --fs-xs:13px;                        
  --fs-eyebrow:12px;                   
  --fs-label:11px;                     
  --lh-tight:1.05; --lh-heading:1.1; --lh-body:1.6;
  --ls-hero:-0.03em; --ls-heading:-0.015em; --ls-eyebrow:0.16em; --ls-label:0.08em;
  --fw-body:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-hero:900;
}
:root{
  --space-1:8px; --space-2:16px; --space-3:24px; --space-4:32px;
  --space-5:40px; --space-6:48px; --space-8:64px; --space-10:80px; --space-12:96px;
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px; --radius-pill:999px;
  --dur-standard:.25s;
  --sh-bar-bg:rgba(11,15,23,.82);
  --sh-edge:rgba(255,255,255,.08);
  --sh-edge-2:rgba(255,255,255,.1);
  --sh-hover:rgba(255,255,255,.06);
  --sh-menu-bg:#0e1120;
  --sh-white:#ffffff;
  --sh-footer-text:#97a0b2;
  --sh-footer-muted:#6f7a8d;
}
@font-face{font-family:"Newsreader Fallback";src:local("Georgia");size-adjust:92.81%;ascent-override:96.97%;descent-override:26.94%;line-gap-override:0%;font-weight:300 700;}
@font-face{font-family:"Plex Sans Fallback";src:local("Arial");size-adjust:100.34%;ascent-override:101.65%;descent-override:26.91%;line-gap-override:0%;font-weight:300 800;}
@font-face{font-family:"Plex Mono Fallback";src:local("Courier New");size-adjust:99.98%;ascent-override:102.02%;descent-override:27.01%;line-gap-override:0%;font-weight:300 700;}

/* ===== base.css ===== */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--page);            
  font-family: var(--font-body);      
  -webkit-font-smoothing: antialiased;
  color: var(--ink);                  
}
::selection { background: var(--accent); color: #fff; }   
a { text-decoration: none; color: inherit; }
:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}
a:focus-visible, button:focus-visible, [tabindex]:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ===== utilities.css ===== */
.flex{ display:flex; }
.grid{ display:grid; }
.inline-flex{ display:inline-flex; }
.hidden{ display:none; }
.items-center{ align-items:center; }
.justify-between{ justify-content:space-between; }
.justify-center{ justify-content:center; }
.center{ display:flex; align-items:center; justify-content:center; }
.text-center{ text-align:center; }
.text-left{ text-align:left; }
.w-full{ width:100%; }
.mx-auto{ margin-inline:auto; }
.gap-14{ gap:14px; }
.gap-24{ gap:24px; }
.gap-44{ gap:var(--sp-44); }
.mt-24{ margin-top:24px; }
.mt-44{ margin-top:var(--sp-44); }
.mb-24{ margin-bottom:24px; }
.mb-32{ margin-bottom:32px; }
.rounded-lg{ border-radius:var(--r-lg); }
.rounded-xl{ border-radius:var(--r-xl); }
.rounded-2xl{ border-radius:var(--r-2xl); }
.shadow-lg{ box-shadow:var(--shadow-lg); }
@media (max-width:768px){
  .hide-mobile{ display:none !important; }
}
@media (min-width:769px){
  .show-mobile{ display:none !important; }
}
.measure{ max-width: 62ch; }
.text-muted{ color: var(--text-muted); }       
.text-faint{ color: var(--text-faint); }        
.text-muted-d{ color: var(--text-muted-d); }   
.text-faint-d{ color: var(--text-faint-d); }   
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ===== layout.css ===== */
.section{ padding: 100px 32px; }
.section--page{ background: var(--page); }                                   
.section--white{ background: var(--surface); border-top: 1px solid #ece9e1; }
.section--dark{ background: var(--navy); color: var(--d-text); }             
.section--flush-bottom{ padding-bottom: 56px; }
.sh-header{position:sticky;top:0;z-index:50;background:var(--sh-bar-bg);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--sh-edge)}
.sh-bar{max-width:var(--container);margin:0 auto;height:var(--header-h);
  padding:0 var(--gutter);display:flex;align-items:center;gap:var(--space-3)}
.sh-nav{display:flex;align-items:center;gap:var(--space-1);margin-left:var(--space-2)}
.sh-utility{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}
.sh-footer{background:var(--footer);color:var(--sh-footer-text);padding:var(--space-8) 0 var(--space-5)}
.sh-footer-wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.sh-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-5);margin-bottom:var(--space-6)}
@media (max-width:900px){
  .sh-nav,.sh-utility{display:none}
  .sh-footer-grid{grid-template-columns:1fr 1fr}
}
@media (min-width:901px){ .sh-burger{display:none} }

/* ===== components.css ===== */
.badge{
  font-family:var(--font-mono);
  font-size:10px;
  border-radius:5px;
  padding:2px 8px;
}
.badge-impl{ color:#2E7D5B; border:1px solid #bfe0cd; background:#edf7f1; } 
.badge-plan{ color:var(--accent); border:1px solid var(--accent-soft); background:var(--accent-tint); }
.badge-ext{  color:#B08430; border:1px solid #f0e2c4; background:#fbf3e6; }
.btn{
  display:inline-flex; align-items:center; gap:9px;
  font-weight:var(--fw-medium); font-size:15px;
  padding:14px 24px; border-radius:var(--r-btn); 
  text-decoration:none; cursor:pointer;
  transition:background var(--dur-micro) var(--ease), transform var(--dur-micro) var(--ease);
}
.btn-primary{ background:var(--accent); color:#fff; box-shadow:0 8px 30px rgba(67,56,202,.35); }
.btn-primary:hover{ background:var(--accent-deep); transform:translateY(-2px); }
.btn-ghost{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); color:#fff; }
.btn-ghost:hover{ background:rgba(255,255,255,.13); }
.btn-outline{ background:transparent; border:1px solid rgba(255,255,255,.18); color:#fff; }
.btn-outline:hover{ background:rgba(255,255,255,.08); }
.btn-lg{ font-size:15.5px; padding:15px 28px; }              
.btn-lg.btn-primary{ box-shadow:0 12px 40px rgba(67,56,202,.4); }
.btn-sm{ font-size:14px; padding:9px 16px; border-radius:var(--r-sm); }  
.card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); padding:28px 26px; }
.card-muted{ background:var(--surface-2); padding:26px 24px; }   
.card-lg{ border-radius:var(--r-xl); }                          
.card-row{ background:var(--surface-2); border:1px solid var(--border); border-radius:var(--r-lg); padding:22px 24px; display:flex; gap:18px; align-items:flex-start; }
.card-desc{ font-size:13px; line-height:1.5; color:var(--text-muted); margin:0; }
.card-quote{ font-family:var(--font-display); font-size:16px; line-height:1.5; font-style:italic; color:var(--text-faint); margin:0 0 14px; }
.card-label{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.06em; color:var(--text-faint); margin-bottom:14px; }
.info-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
  padding:20px 22px;
}
.sh-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.sh-mark{height:28px;width:30.8px;display:block}
.sh-word{font-family:var(--font-body);font-weight:var(--fw-bold);font-size:19px;color:var(--sh-white)}
.sh-word b{color:var(--logo-ai);font-weight:var(--fw-bold)}
.sh-link{font-family:var(--font-body);font-size:var(--fs-sm);color:var(--nav-text);
  text-decoration:none;padding:7px 12px;border-radius:var(--r-nav);background:none;border:0;cursor:pointer;
  transition:color var(--dur-micro) var(--ease),background var(--dur-micro) var(--ease)}
.sh-link:hover{color:var(--sh-white);background:var(--sh-hover)}
.sh-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sh-link[aria-current="page"]{color:var(--sh-white)}
.sh-textlink{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--nav-text);text-decoration:underline;text-underline-offset:3px}
.sh-textlink:hover{color:var(--sh-white)}
.sh-cta{font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--sh-white);
  background:var(--accent);padding:9px 16px;border-radius:var(--r-btn);text-decoration:none;
  transition:background var(--dur-micro) var(--ease)}
.sh-cta:hover{background:var(--accent-deep)}
.sh-cta:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sh-drop{position:relative}
.sh-caret{font-size:9px;margin-left:4px}
.sh-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:460px;
  background:var(--sh-menu-bg);border:1px solid var(--sh-edge-2);border-radius:var(--radius-md);
  padding:var(--space-2);display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-2);
  box-shadow:var(--shadow-lg)}
.sh-menu[hidden]{display:none}
.sh-menu--simple{min-width:200px;grid-template-columns:1fr}
.sh-menu-h{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--d-muted);margin:0 0 6px;padding:4px 10px}
.sh-menu a{display:block;font-family:var(--font-body);font-size:var(--fs-sm);color:var(--d-text-2);
  text-decoration:none;padding:7px 10px;border-radius:var(--r-sm)}
.sh-menu a:hover{color:var(--sh-white);background:var(--sh-hover)}
.sh-menu a:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.sh-burger{background:none;border:0;cursor:pointer;padding:10px;margin-left:auto;border-radius:var(--r-sm)}
.sh-burger:focus-visible{outline:2px solid var(--focus)}
.sh-burger span{display:block;width:20px;height:2px;background:var(--sh-white);margin:4px 0;border-radius:1px}
.sh-drawer{border-top:1px solid var(--sh-edge);background:var(--navy);padding:var(--space-2) var(--gutter) var(--space-4)}
.sh-drawer[hidden]{display:none}
.sh-drawer a{display:block;font-family:var(--font-body);font-size:16px;color:var(--d-text);
  text-decoration:none;padding:12px 8px;border-radius:var(--r-sm);min-height:44px}
.sh-drawer a:hover{background:var(--sh-hover)}
.sh-drawer a:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.sh-drawer-h{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--d-muted);margin:14px 0 2px;padding:0 8px}
.sh-footer-brand-word{font-family:var(--font-body);font-weight:var(--fw-bold);font-size:20px;color:var(--sh-white)}
.sh-footer-brand-word b{color:var(--logo-ai)}
.sh-footer-tag{font-size:13.5px;line-height:1.6;color:var(--sh-footer-text);margin:10px 0 0;max-width:38ch}
.sh-footer-h{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--ls-label);
  text-transform:uppercase;color:var(--d-muted);margin:0 0 12px}
.sh-footer-links{display:flex;flex-direction:column;gap:10px;font-size:14px}
.sh-footer-links a{color:var(--sh-footer-text);text-decoration:none}
.sh-footer-links a:hover{color:var(--sh-white)}
.sh-footer-links a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sh-strap{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.02em;color:var(--text-faint-d);
  border-top:1px solid var(--sh-edge);padding-top:var(--space-2);margin:0 0 8px}
.sh-legal-note{font-size:12px;line-height:1.6;color:var(--sh-footer-muted);margin:0 0 12px;max-width:88ch}
.sh-legal-row{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:12.5px;color:var(--sh-footer-muted)}
.sh-legal-row a{color:var(--sh-footer-muted);text-decoration:none}
.sh-legal-row a:hover{color:var(--sh-white)}

/* ===== marketing.css ===== */


/* ===== identity.css ===== */


/* ===== responsive.css ===== */

