/* =========================================================
   AIXIS — V2 "Terminal"
   Brutalist tech-noir · monospace-heavy · deep navy + blue
   ========================================================= */

:root{
  --bg:#070C16;
  --bg-elev:#0B1220;
  --bg-deep:#04070D;
  --surface:#0F1828;
  --ink:#E8ECF1;
  --ink-soft:#B8C2D4;
  --muted:#5C6B85;
  --dim:#3D4A66;
  --line:#1F2C42;
  --line-soft:#172238;
  --accent:#5B8DEF;
  --accent-deep:#4173E6;
  --accent-soft:#A8C5FF;
  --accent-glow:rgba(91,141,239,.2);
  --success:#7CFFAF;
  --warn:#FFB155;
  --hot:#FF5E7A;
}

*{box-sizing:border-box; margin:0; padding:0}
html{scroll-behavior:smooth}
:where(section[id]){scroll-margin-top:96px}
body{
  background:var(--bg); color:var(--ink);
  font-family:'JetBrains Mono','IBM Plex Mono',monospace;
  font-weight:400; line-height:1.5; font-size:14px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  background-image:
    radial-gradient(ellipse 800px 400px at 100% 0%, rgba(91,141,239,.1), transparent 60%);
}

/* sans only for long prose */
.sans{font-family:'IBM Plex Sans',system-ui,sans-serif; font-weight:300}
.serif{font-family:'Instrument Serif',Georgia,serif; font-style:italic; font-weight:400}

a{color:inherit}
img,svg{display:block; max-width:100%}
button{font:inherit; color:inherit; background:transparent; border:none; cursor:pointer}

/* —— page chrome —— */

/* container */
.wrap{max-width:1320px; margin:0 auto; padding:0 32px; position:relative; z-index:2}
@media (max-width:640px){ .wrap{padding:0 16px} }

/* —— top bar ascii —— */
.topbar{
  background:var(--bg-deep); border-bottom:1px solid var(--line);
  padding:6px 0; font-size:11px; color:var(--dim); letter-spacing:.06em;
  position:relative; z-index:30;
}
.topbar .wrap{display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap}
.topbar .ok{color:var(--success)}
.topbar .acc{color:var(--accent)}
@media (max-width:640px){ .topbar .hide-sm{display:none} }

/* —— nav —— */
nav.top{
  position:sticky; top:0; z-index:50;
  background:rgba(7,12,22,.88); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s ease, background .3s ease, border-color .3s ease;
}
nav.top.scrolled{
  background:rgba(7,12,22,.96);
  box-shadow:0 10px 30px rgba(0,0,0,.4), 0 1px 0 rgba(91,141,239,.15);
}
nav.top .row{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:16px 32px; max-width:1320px; margin:0 auto;
}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink)}
.brand svg{color:var(--accent)}
.brand-text{font-family:'JetBrains Mono',monospace; font-size:18px; font-weight:600; letter-spacing:-.01em}
.brand-text::after{content:"_"; color:var(--accent); animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

.nav-links{display:flex; gap:0; align-items:center; font-size:12px}
.nav-links a{
  padding:8px 14px; text-decoration:none; color:var(--ink-soft);
  letter-spacing:.04em; transition:all .15s; position:relative; white-space:nowrap;
}
.nav-links a:hover{color:var(--accent-soft)}
.nav-links a::before{content:"["; color:var(--dim); margin-right:4px; opacity:0; transition:opacity .15s}
.nav-links a::after{content:"]"; color:var(--dim); margin-left:4px; opacity:0; transition:opacity .15s}
.nav-links a:hover::before, .nav-links a:hover::after{opacity:1}
.nav-links a.btn{
  background:var(--accent); color:#fff; padding:10px 16px;
  margin-left:8px; font-weight:600;
}
.nav-links a.btn:hover{background:var(--accent-deep); color:#fff}
.nav-links a.btn::before, .nav-links a.btn::after{display:none}
@media (max-width:1040px){
  .nav-links a:not(.btn){display:none}
}

/* —— ascii dividers —— */
.ascii-div{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--dim);
  letter-spacing:.04em; padding:24px 0; line-height:1;
  white-space:nowrap; overflow:hidden;
}
.ascii-div::before{
  content:"────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────";
}

.section-hd{
  display:flex; justify-content:space-between; align-items:flex-end; gap:24px;
  padding:16px 0; border-bottom:1px solid var(--line); margin-bottom:32px;
  flex-wrap:wrap;
}
.section-tag{
  display:flex; align-items:center; gap:10px;
  font-size:11px; color:var(--accent); letter-spacing:.1em; text-transform:uppercase;
}
.section-tag::before{content:"//"; color:var(--dim)}
.section-idx{
  font-size:11px; color:var(--dim); letter-spacing:.08em;
}

/* —— sections —— */
section{padding:80px 0; position:relative}
@media (max-width:760px){ section{padding:56px 0} }

.section-title{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:clamp(34px,5vw,64px); line-height:1; letter-spacing:-.03em;
  max-width:24ch; margin-bottom:24px;
}
.section-title em{font-family:'Instrument Serif',serif; font-style:italic; color:var(--accent-soft); font-weight:400}
.section-lede{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:17px; color:var(--ink-soft); max-width:64ch; line-height:1.55;
}

/* —— HERO —— */
.hero{padding:48px 0 80px; position:relative}

.hero-grid{
  display:grid; grid-template-columns:1.3fr 1fr; gap:48px;
  align-items:start;
}
@media (max-width:980px){ .hero-grid{grid-template-columns:1fr; gap:40px} }

/* terminal box */
.term{
  background:var(--bg-deep); border:1px solid var(--line);
  font-family:'JetBrains Mono',monospace; font-size:13px;
  position:relative; overflow:hidden;
}
.term-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 16px; border-bottom:1px solid var(--line);
  font-size:11px; color:var(--muted); letter-spacing:.06em;
}
.term-head .lights{display:flex; gap:6px}
.term-head .lights span{width:10px; height:10px; background:var(--line); display:inline-block}
.term-head .lights span.on{background:var(--success); box-shadow:0 0 8px var(--success)}
.term-body{padding:20px; min-height:280px}
.term-line{display:flex; gap:10px; line-height:1.7}
.term-line .prompt{color:var(--accent); flex-shrink:0}
.term-line .out{color:var(--muted); flex-shrink:0; min-width:14px}
.term-line .txt{color:var(--ink-soft)}
.term-line .txt.acc{color:var(--accent-soft)}
.term-line .txt.ok{color:var(--success)}
.term-line .txt.warn{color:var(--warn)}
.term-cursor{
  display:inline-block; width:9px; height:15px; background:var(--accent);
  vertical-align:-2px; animation:blink 1s steps(1) infinite; margin-left:2px;
}

/* hero copy */
.hero-meta{
  font-size:11px; color:var(--accent); letter-spacing:.12em; text-transform:uppercase;
  margin-bottom:24px; display:flex; align-items:center; gap:10px;
}
.hero-meta .dot{
  width:8px; height:8px; background:var(--accent); display:inline-block;
  animation:beat 1.6s ease-in-out infinite;
}
@keyframes beat{50%{transform:scale(1.4); opacity:.6}}

.hero h1{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:clamp(40px,6vw,84px); line-height:.98; letter-spacing:-.04em;
  margin-bottom:24px;
}
.hero h1 .strike{position:relative; display:inline-block; color:var(--muted)}
.hero h1 .strike::after{
  content:""; position:absolute; left:-4px; right:-4px; top:55%; height:3px;
  background:var(--hot); transform:scaleX(0) rotate(-2deg); transform-origin:left center;
  animation:strike-draw .55s cubic-bezier(.2,.7,.3,1) .9s forwards;
}
.hero h1 .strike:nth-of-type(2)::after{ animation-delay:1.1s; }
@keyframes strike-draw{ to{ transform:scaleX(1) rotate(-2deg); } }
.hero h1 em{font-family:'Instrument Serif',serif; font-style:italic; color:var(--accent-soft); font-weight:400}

.hero-sub{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:18px; color:var(--ink-soft); max-width:58ch; line-height:1.55;
  margin-bottom:32px;
}
.hero-sub strong{color:var(--ink); font-weight:500}

.hero-cta{display:flex; gap:0; flex-wrap:wrap; margin-bottom:40px}
.hero-cta .btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:18px 24px; font-size:13px; letter-spacing:.06em; text-decoration:none;
  border:1px solid var(--line); transition:all .2s;
  font-weight:600;
}
.hero-cta .btn.primary{
  background:var(--accent); color:#fff; border-color:var(--accent);
  border-right:none;
}
.hero-cta .btn.primary:hover{background:var(--accent-deep); border-color:var(--accent-deep)}
.hero-cta .btn.primary svg{transition:transform .2s}
.hero-cta .btn.primary:hover svg{transform:translateX(4px)}
.hero-cta .btn.secondary{
  background:transparent; color:var(--ink); border-color:var(--accent);
}
.hero-cta .btn.secondary:hover{background:var(--accent); color:#fff}
@media (max-width:540px){
  .hero-cta{flex-direction:column}
  .hero-cta .btn{width:100%; justify-content:center}
  .hero-cta .btn.primary{border-right:1px solid var(--accent); border-bottom:none}
}

/* who footer */
.who{
  padding:20px 0; border-top:1px dashed var(--line);
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px;
}
@media (max-width:640px){ .who{grid-template-columns:1fr 1fr} }
.who-cell .l{font-size:10px; color:var(--dim); letter-spacing:.1em; margin-bottom:6px; text-transform:uppercase}
.who-cell .v{font-size:13px; color:var(--ink); font-weight:500}
.who-cell .v.ok{color:var(--success)}

/* —— METRICS —— */
.metrics-band{
  margin-top:48px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:repeat(4,1fr);
}
.metric-cell{
  padding:32px 24px; border-right:1px solid var(--line);
  position:relative; min-height:180px;
}
.metric-cell:last-child{border-right:none}
@media (max-width:760px){
  .metrics-band{grid-template-columns:repeat(2,1fr)}
  .metric-cell:nth-child(2){border-right:none}
  .metric-cell:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
.metric-cell .k{
  font-size:10px; color:var(--dim); letter-spacing:.1em;
  text-transform:uppercase; margin-bottom:18px; display:flex; justify-content:space-between;
}
.metric-cell .k .ix{color:var(--accent)}
.metric-cell .v{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:64px; line-height:1; letter-spacing:-.045em;
  font-variant-numeric:tabular-nums;
}
.metric-cell .v em{font-family:'Instrument Serif',serif; font-style:italic; color:var(--accent-soft); font-weight:400}
.metric-cell .d{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300; font-size:13px;
  color:var(--ink-soft); margin-top:14px; line-height:1.45;
}

/* —— MANIFESTO —— */
.manifesto{padding-top:48px}
.man-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:0;
  margin-top:16px; border-top:1px solid var(--line); border-left:1px solid var(--line);
}
@media (max-width:760px){ .man-grid{grid-template-columns:1fr} }
.man-item{
  padding:28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  display:flex; gap:24px; align-items:flex-start;
  transition:background .25s;
}
.man-item:hover{background:var(--bg-elev)}
.man-item .num{
  font-family:'IBM Plex Sans',sans-serif; font-weight:200;
  font-size:64px; line-height:.9; color:var(--accent); letter-spacing:-.04em;
  flex-shrink:0; min-width:80px;
}
.man-item h4{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:18px;
  margin-bottom:8px; letter-spacing:-.01em;
}
.man-item p{font-size:13px; color:var(--ink-soft); line-height:1.65}

/* —— SERVICES —— */
.services{padding-top:64px}
.svc-grid{
  margin-top:16px;
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.svc-row{
  display:grid; grid-template-columns:100px 1fr 1.4fr 200px;
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  transition:background .25s;
}
.svc-row:hover{background:var(--bg-elev)}
.svc-row > div{padding:28px 24px; border-right:1px solid var(--line)}
.svc-row > div:last-child{border-right:none}
@media (max-width:900px){
  .svc-row{grid-template-columns:1fr}
  .svc-row > div{border-right:none; border-bottom:1px solid var(--line)}
  .svc-row > div:last-child{border-bottom:none}
}
.svc-idx{
  font-family:'IBM Plex Sans',sans-serif; font-weight:200; font-size:52px;
  color:var(--accent); line-height:.9; letter-spacing:-.04em;
  display:flex; align-items:flex-start;
}
.svc-title h3{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:20px;
  letter-spacing:-.01em; line-height:1.2; margin-bottom:8px;
}
.svc-title .tag{
  font-size:10px; color:var(--accent); letter-spacing:.08em; text-transform:uppercase;
}
.svc-desc{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:14px; color:var(--ink-soft); line-height:1.6;
}
.svc-result{
  display:flex; flex-direction:column; justify-content:center; gap:6px;
  background:var(--bg-elev);
}
.svc-result .l{font-size:10px; color:var(--muted); letter-spacing:.08em; text-transform:uppercase}
.svc-result .v{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300; font-size:32px;
  color:var(--accent-soft); letter-spacing:-.03em; line-height:1;
}
.svc-result .c{font-size:11px; color:var(--muted); margin-top:2px}

/* —— CASES —— */
.cases{padding-top:64px}
.case-row{
  display:grid; grid-template-columns:48px 1fr 1.2fr 280px;
  gap:0; padding:0; border-top:1px solid var(--line); transition:background .25s;
}
.case-row:last-child{border-bottom:1px solid var(--line)}
.case-row:hover{background:var(--bg-elev)}
.case-row > *{padding:28px 20px}
@media (max-width:900px){
  .case-row{grid-template-columns:48px 1fr}
  .case-row > *:nth-child(3), .case-row > *:nth-child(4){grid-column:1 / -1; padding-top:0}
}
.case-letter{
  font-family:'IBM Plex Sans',sans-serif; font-weight:200; font-size:48px;
  color:var(--accent); line-height:.9;
}
.case-row h3{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:20px;
  letter-spacing:-.015em; line-height:1.2; margin-bottom:8px;
}
.case-row .ctx{font-size:11px; color:var(--muted); letter-spacing:.04em}
.case-desc{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:14px; color:var(--ink-soft); line-height:1.6;
}
.case-stack{margin-top:10px; font-size:11px; color:var(--dim); letter-spacing:.02em}
.case-stack::before{content:"$ stack › "; color:var(--accent); margin-right:0}
.case-mx{
  display:grid; grid-template-columns:repeat(3,1fr); gap:8px;
  align-content:center; background:var(--bg-elev); margin:0;
}
.case-mx .mx{padding:8px 4px}
.case-mx .mx .v{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300; font-size:24px;
  color:var(--accent-soft); letter-spacing:-.025em; line-height:1;
  font-variant-numeric:tabular-nums;
}
.case-mx .mx .l{font-size:10px; color:var(--muted); margin-top:6px; letter-spacing:.04em; line-height:1.3}

.cases-disc{
  margin-top:32px; padding-top:24px; border-top:1px solid var(--line);
  font-size:11px; color:var(--muted); line-height:1.7; max-width:80ch; letter-spacing:.02em;
}
.cases-disc::before{content:"# nda · "; color:var(--accent)}

/* —— INFERENCE switcher —— */
.inference{padding-top:64px}
.infr-frame{
  margin-top:16px; border:1px solid var(--line);
  display:grid; grid-template-columns:1fr 1.2fr; min-height:520px;
}
@media (max-width:980px){ .infr-frame{grid-template-columns:1fr} }

.infr-tabs-col{
  border-right:1px solid var(--line); background:var(--bg-deep);
  display:flex; flex-direction:column;
}
@media (max-width:980px){ .infr-tabs-col{border-right:none; border-bottom:1px solid var(--line)} }
.infr-tab{
  padding:24px; border-bottom:1px solid var(--line);
  cursor:pointer; transition:all .2s; text-align:left;
  position:relative; flex:1;
}
.infr-tab:last-child{border-bottom:none}
.infr-tab .ix{
  font-size:10px; color:var(--dim); letter-spacing:.1em;
  margin-bottom:8px; display:flex; justify-content:space-between;
}
.infr-tab h4{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:18px;
  margin-bottom:6px; letter-spacing:-.01em;
}
.infr-tab .meta{font-size:11px; color:var(--muted); margin-bottom:14px; line-height:1.5}
.infr-tab .when{font-size:11px; color:var(--ink-soft); line-height:1.6; max-width:36ch}
.infr-tab .when::before{content:"› when: "; color:var(--accent)}
.infr-tab.active{background:var(--bg-elev)}
.infr-tab.active .ix{color:var(--accent)}
.infr-tab.active::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--accent);
}
.infr-tab:hover{background:var(--bg-elev)}

.infr-view{
  padding:32px; background:var(--bg-deep); position:relative; display:flex; flex-direction:column;
}
.infr-view-head{
  font-size:11px; color:var(--muted); letter-spacing:.04em;
  padding-bottom:14px; margin-bottom:24px; border-bottom:1px solid var(--line);
  display:flex; justify-content:space-between;
}
.infr-view-head .acc{color:var(--accent)}
#infr-svg{width:100%; flex:1; min-height:380px}
.infr-pros{
  margin-top:20px; display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--line); border:1px solid var(--line);
}
.infr-pros > div{padding:14px; background:var(--bg-deep); font-size:12px}
.infr-pros .head{font-size:10px; color:var(--muted); letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px}
.infr-pros .plus .head{color:var(--success)}
.infr-pros .minus .head{color:var(--warn)}
.infr-pros li{list-style:none; padding:3px 0; color:var(--ink-soft); line-height:1.5}
.infr-pros .plus li::before{content:"+ "; color:var(--success)}
.infr-pros .minus li::before{content:"− "; color:var(--warn)}

/* —— METHOD timeline —— */
.method{padding-top:64px}
.method-track{
  margin-top:24px; position:relative;
  display:grid; grid-template-columns:repeat(5,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
@media (max-width:1100px){ .method-track{grid-template-columns:repeat(3,1fr)} }
@media (max-width:760px){ .method-track{grid-template-columns:repeat(2,1fr)} }
@media (max-width:540px){ .method-track{grid-template-columns:1fr} }
.mst{
  background:var(--bg); padding:28px 20px;
  display:flex; flex-direction:column; min-height:280px;
  position:relative;
}
.mst::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .8s ease;
}
.mst.quickwin{ background:linear-gradient(180deg, rgba(124,255,175,.06), var(--bg) 60%); }
.mst.quickwin::before{ background:var(--success); }
.mst.quickwin .ix{ color:var(--success); }
.mst.quickwin .v.acc{ color:var(--success); }
.mst.active::before{transform:scaleX(1)}
.mst .ix{
  font-family:'IBM Plex Sans',sans-serif; font-weight:200; font-size:48px;
  color:var(--accent); line-height:.9; letter-spacing:-.04em; margin-bottom:16px;
}
.mst h4{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:18px;
  margin-bottom:8px; letter-spacing:-.01em;
}
.mst .row{display:flex; justify-content:space-between; padding:6px 0; font-size:11px}
.mst .row .k{color:var(--muted); letter-spacing:.04em}
.mst .row .v{color:var(--ink); font-weight:600}
.mst .row .v.acc{color:var(--accent-soft)}
.mst .desc{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  margin-top:12px; padding-top:12px; border-top:1px dashed var(--line);
  font-size:13px; color:var(--ink-soft); line-height:1.55; flex:1;
}
.method-note{
  margin-top:24px; font-size:11px; color:var(--muted); line-height:1.7;
  max-width:80ch; letter-spacing:.02em;
}
.method-note::before{content:"# "; color:var(--accent)}

/* —— WHY —— */
.why{padding-top:64px}
.why-grid{
  margin-top:16px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
@media (max-width:900px){ .why-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:540px){ .why-grid{grid-template-columns:1fr} }
.why-cell{
  background:var(--bg); padding:32px 28px;
  display:grid; grid-template-columns:36px 1fr; gap:20px;
  min-height:200px; align-items:start;
}
.why-cell .ic{
  font-family:'Instrument Serif',serif; font-style:italic;
  font-size:28px; color:var(--accent); line-height:1;
}
.why-cell h4{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:16px;
  margin-bottom:10px; letter-spacing:-.005em; line-height:1.3;
}
.why-cell p{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:13px; color:var(--ink-soft); line-height:1.6;
}

/* —— ICP grid —— */
.icp{padding-top:48px}
.icp-tags{
  margin-top:20px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
@media (max-width:760px){ .icp-tags{grid-template-columns:repeat(2,1fr)} }
@media (max-width:480px){ .icp-tags{grid-template-columns:1fr} }
.icp-tag{
  background:var(--bg); padding:18px 16px;
  font-size:12px; color:var(--ink-soft); display:flex; justify-content:space-between; align-items:center;
  transition:all .2s; cursor:default;
}
.icp-tag:hover{background:var(--bg-elev); color:var(--accent-soft)}
.icp-tag .dot{
  width:6px; height:6px; background:var(--dim); border-radius:50%; flex-shrink:0;
}
.icp-tag.hot{color:var(--ink); background:var(--bg-elev)}
.icp-tag.hot .dot{background:var(--accent); box-shadow:0 0 8px var(--accent)}

/* —— FAQ —— */
.faq{padding-top:64px}
.faq-list{margin-top:16px; border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{
  list-style:none; cursor:pointer; padding:24px 0;
  display:grid; grid-template-columns:40px 1fr 32px; gap:16px; align-items:baseline;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::marker{display:none}
.faq-ix{
  font-size:11px; color:var(--accent); letter-spacing:.06em;
}
.faq-q{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:18px;
  letter-spacing:-.015em; line-height:1.3; color:var(--ink); transition:color .15s;
}
.faq-item summary:hover .faq-q{color:var(--accent-soft)}
.faq-ic{
  font-size:18px; color:var(--accent); transition:transform .25s ease;
  text-align:right;
}
.faq-item[open] .faq-ic{transform:rotate(45deg)}
.faq-a{
  padding:0 32px 24px 56px;
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:14px; color:var(--ink-soft); line-height:1.7; max-width:80ch;
}
.faq-a strong{color:var(--ink); font-weight:500}
@media (max-width:540px){
  .faq-item summary{grid-template-columns:24px 1fr 24px; gap:12px}
  .faq-a{padding:0 0 24px 36px}
}

/* —— FINAL CTA —— */
.final{
  padding:80px 0 100px; position:relative; overflow:hidden;
  background:linear-gradient(180deg, transparent, rgba(91,141,239,.04));
  border-top:1px solid var(--line);
}
.final-grid{
  display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:start;
}
@media (max-width:900px){ .final-grid{grid-template-columns:1fr} }
.final h2{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:clamp(36px,5vw,68px); line-height:1; letter-spacing:-.035em;
  margin-bottom:24px;
}
.final h2 em{font-family:'Instrument Serif',serif; font-style:italic; color:var(--accent-soft); font-weight:400}
.final p{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:17px; color:var(--ink-soft); margin-bottom:32px; max-width:54ch; line-height:1.55;
}
.contact-box{
  background:var(--bg-deep); border:1px solid var(--line); padding:0;
}
.contact-box .ch{
  display:flex; justify-content:space-between; align-items:center;
  padding:12px 18px; border-bottom:1px solid var(--line);
  font-size:11px; color:var(--muted); letter-spacing:.06em;
}
.contact-box .ch .ok{color:var(--success)}
.contact-row{
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 22px; border-bottom:1px solid var(--line);
}
.contact-row:last-of-type{border-bottom:none}
.contact-row .k{font-size:11px; color:var(--muted); letter-spacing:.08em; text-transform:uppercase}
.contact-row .v{font-size:13px; color:var(--ink)}
.contact-row .v a{color:var(--accent-soft); text-decoration:none}
.contact-row .v a:hover{color:#fff}

/* —— FOUNDER —— */
.founder{ padding-top:64px; }
.founder-grid{
  margin-top:24px; display:grid; grid-template-columns:320px 1fr; gap:48px;
  align-items:start;
}
@media (max-width:900px){ .founder-grid{grid-template-columns:1fr; gap:32px} }

.founder-photo{ max-width:320px; display:flex; flex-direction:column; gap:12px; }
.founder-photo-wrap{
  border:1px solid var(--line); background:var(--bg-deep);
}
.founder-photo-wrap .photo-label{
  padding:8px 12px; border-bottom:1px solid var(--line);
  font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--accent);
  letter-spacing:1.2px;
  display:flex; justify-content:space-between; align-items:center;
}
.founder-photo-wrap .photo-label::after{
  content:"● ● ●"; color:var(--dim); letter-spacing:2px;
}
.founder-img{
  width:100%; height:auto; aspect-ratio:1/1; display:block;
  object-fit:cover; object-position:center;
}
.founder-name{ font-size:22px; font-weight:300; letter-spacing:-.015em; color:var(--ink); margin-top:4px; }
.founder-role{
  font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--accent);
  letter-spacing:.05em;
}
.founder-role::before{ content:"› "; color:var(--dim); }

.founder-bio p{
  font-size:16px; color:var(--ink-soft); line-height:1.65; margin-bottom:14px; max-width:64ch;
}
.founder-bio p strong{ color:var(--ink); font-weight:500; }
.founder-bio p a{
  color:var(--accent-soft); text-decoration:none;
  border-bottom:1px solid rgba(91,141,239,.3); transition:border-color .15s;
}
.founder-bio p a:hover{ border-color:var(--accent); }

/* —— PRACTICES · interactive wheel —— */
.domains{
  padding-top:64px; position:relative;
  background:linear-gradient(180deg, var(--bg) 0%, rgba(91,141,239,.025) 100%);
}
.domains::before{
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:80px; height:1px; background:var(--accent);
}
.practice-wheel{
  margin-top:40px;
  display:grid; grid-template-columns:minmax(320px, 480px) 1fr;
  gap:56px; align-items:center;
}
@media (max-width:900px){ .practice-wheel{ grid-template-columns:1fr; gap:32px; } }
.wheel-svg-wrap{ position:relative; width:100%; max-width:480px; aspect-ratio:1/1; margin:0 auto; }
#practice-svg{ width:100%; height:100%; display:block; }
.wheel-center{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  display:flex; flex-direction:column; align-items:center; gap:6px;
  pointer-events:none;
}
.wheel-center .ix{
  font-family:'IBM Plex Sans',sans-serif; font-weight:200; font-size:80px;
  letter-spacing:-.04em; line-height:.9; color:var(--accent-soft);
  font-variant-numeric:tabular-nums;
}
.wheel-center .lbl{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted);
  letter-spacing:.12em; text-transform:uppercase;
}

#practice-svg .seg{ cursor:pointer; outline:none; }
#practice-svg .seg:focus-visible path.bg{ fill:rgba(91,141,239,.22); stroke:var(--accent); stroke-width:2; }
#practice-svg .seg path.bg{
  fill:rgba(91,141,239,.06); stroke:var(--line); stroke-width:1;
  transition:fill .2s, stroke .2s;
}
#practice-svg .seg:hover path.bg,
#practice-svg .seg.active path.bg{
  fill:rgba(91,141,239,.22); stroke:var(--accent);
}
#practice-svg .seg text.num{
  font-family:'JetBrains Mono',monospace; font-size:11px; fill:var(--accent);
  letter-spacing:.06em; pointer-events:none; text-anchor:middle; dominant-baseline:central;
}
#practice-svg .seg text.lbl{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:14px;
  fill:var(--ink-soft); letter-spacing:-.005em;
  pointer-events:none; text-anchor:middle; dominant-baseline:central;
  transition:fill .2s;
}
#practice-svg .seg:hover text.lbl,
#practice-svg .seg.active text.lbl{ fill:var(--ink); }

.practice-detail{
  border-left:1px solid var(--line); padding-left:32px;
  display:flex; flex-direction:column; gap:14px;
}
@media (max-width:900px){
  .practice-detail{ border-left:none; padding-left:0; border-top:1px solid var(--line); padding-top:24px; }
}
.practice-detail .d-tag{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--accent);
  letter-spacing:.08em;
}
.practice-detail h3{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:28px;
  letter-spacing:-.02em; line-height:1.1; color:var(--ink);
}
.practice-detail p{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:15px; color:var(--ink-soft); line-height:1.65; max-width:52ch;
}
.practice-detail .d-meta{
  margin-top:12px; padding-top:16px; border-top:1px dashed var(--line);
  display:flex; flex-direction:column; gap:6px;
}
.practice-detail .d-meta .k{
  font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--muted);
  letter-spacing:.08em; text-transform:uppercase;
}
.practice-detail .d-meta .v{
  font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--accent-soft);
  letter-spacing:.02em;
}

/* —— VECTORS STRIP (under practice wheel) —— */
.vectors-strip{
  margin-top:64px; padding-top:40px; border-top:1px dashed var(--line);
}
.vstrip-head{
  display:flex; align-items:center; gap:16px; margin-bottom:24px;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em;
}
.vstrip-head .vh-tag{ color:var(--accent); text-transform:uppercase; }
.vstrip-head .vh-rule{ flex:1; height:1px; background:var(--line); }
.vstrip-head .vh-meta{ color:var(--muted); }
.vectors-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
@media (max-width:860px){ .vectors-grid{ grid-template-columns:1fr; } }
.vector{
  background:var(--bg); padding:28px 24px;
  display:flex; flex-direction:column; gap:10px;
  text-decoration:none; color:inherit;
  transition:background .25s; position:relative; overflow:hidden;
}
.vector::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:var(--accent); transform:scaleY(0); transform-origin:bottom;
  transition:transform .45s cubic-bezier(.2,.7,.3,1);
}
.vector:hover{ background:var(--bg-elev); }
.vector:hover::before{ transform:scaleY(1); transform-origin:top; }
.vector:hover .v-go{ color:var(--accent-soft); transform:translateX(4px); }
.vector .v-ix{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--accent);
  letter-spacing:.08em;
}
.vector h4{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:20px;
  letter-spacing:-.015em; line-height:1.15; color:var(--ink);
}
.vector .v-sub{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted);
  letter-spacing:.04em;
}
.vector p{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:13.5px; color:var(--ink-soft); line-height:1.55;
  margin-top:4px; flex:1;
}
.vector .v-go{
  margin-top:8px; padding-top:14px; border-top:1px dashed var(--line);
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--ink-soft);
  letter-spacing:.06em; transition:color .15s, transform .25s;
}

/* —— STACK · tile grid —— */
.stack-sec{ padding-top:64px; }
.stack-grid{
  margin-top:32px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
@media (max-width:980px){ .stack-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .stack-grid{grid-template-columns:1fr} }
.stack-cat{
  background:var(--bg); padding:28px 22px; min-height:200px;
  display:flex; flex-direction:column; gap:12px;
  transition:background .25s;
}
.stack-cat:hover{ background:var(--bg-elev); }
.stack-cat .cat-ix{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--accent);
  letter-spacing:.08em;
}
.stack-cat h4{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:17px;
  letter-spacing:-.01em; margin-bottom:4px;
}
.stack-cat ul{ list-style:none; padding:0; margin:0; }
.stack-cat li{
  font-family:'JetBrains Mono',monospace; font-size:12px;
  color:var(--ink-soft); line-height:1.6; padding:3px 0;
}
.stack-cat li::before{ content:"› "; color:var(--accent); }

/* —— R&D —— */
.rnd-sec{ padding-top:64px; }
.rnd-grid{
  margin-top:24px; display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--line); border:1px solid var(--line);
}
@media (max-width:860px){ .rnd-grid{grid-template-columns:1fr} }
.rnd-block{
  background:var(--bg); padding:28px 24px;
}
.rnd-block .rnd-tag{
  font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--accent);
  letter-spacing:.1em; text-transform:uppercase; margin-bottom:18px;
}
.rnd-block h4{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:19px;
  letter-spacing:-.01em; margin-bottom:18px; line-height:1.25;
}
.rnd-block ul{ list-style:none; padding:0; margin:0; }
.rnd-block li{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:14px; color:var(--ink-soft); line-height:1.55;
  padding:8px 0; padding-left:18px; position:relative;
}
.rnd-block li::before{
  content:"›"; color:var(--accent); position:absolute; left:0; top:8px;
  font-family:'JetBrains Mono',monospace; font-size:13px;
}
.rnd-formats{
  margin-top:24px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
}
@media (max-width:760px){ .rnd-formats{grid-template-columns:1fr} }
.rnd-fmt{
  background:var(--bg); padding:18px 20px;
  display:flex; flex-direction:column; gap:6px;
}
.rnd-fmt .lbl{
  font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:15px;
  color:var(--ink);
}
.rnd-fmt .vbl{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted);
  letter-spacing:.04em;
}
.rnd-fmt .bud{
  font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--accent-soft);
  letter-spacing:.04em;
}

/* —— responsive polish —— */
@media (max-width:760px){
  .topbar{ font-size:10px; padding:5px 0; }
  nav.top .row{ padding:12px 20px; }
  .term-body{ min-height:200px; padding:16px; font-size:11px; }
  .term-head{ padding:8px 12px; font-size:10px; }
  .hero-meta{ margin-bottom:16px; }
  .hero{ padding-bottom:48px; }
  .hero h1{ margin-bottom:18px; }
  .hero-sub{ font-size:16px; margin-bottom:24px; }
  .metric-cell{ padding:24px 18px; min-height:auto; }
  .metric-cell .v{ font-size:44px; }
  .section-hd{ flex-direction:column; align-items:flex-start; gap:6px; margin-bottom:24px; padding:12px 0; }
  .section-idx{ font-size:10px; }
}
@media (max-width:540px){
  .topbar{ font-size:9px; }
  .nav-links a.btn{ padding:9px 12px; font-size:11px; }
  .brand-text{ font-size:16px; }
  .hero{ padding-top:32px; padding-bottom:40px; }
  .hero-cta{ flex-direction:column; gap:0; }
  .hero-cta .btn{ width:100%; justify-content:center; border-right:1px solid var(--accent); }
  .hero-cta .btn.primary{ border-bottom:none; }
  .who{ grid-template-columns:1fr 1fr; gap:14px 18px; padding-bottom:0; }
  .metrics-band{ grid-template-columns:1fr; }
  .metric-cell{ border-right:none !important; border-bottom:1px solid var(--line); }
  .metric-cell:last-child{ border-bottom:none; }
  .metric-cell .v{ font-size:40px; }
  .term-body{ min-height:180px; padding:14px; font-size:10.5px; }
  .term-head{ font-size:9px; }
}

/* practice wheel mobile */
@media (max-width:760px){
  .practice-wheel{ margin-top:32px; gap:24px; }
  #practice-svg .seg text.lbl{ font-size:12px; }
  #practice-svg .seg text.num{ font-size:10px; }
  .wheel-center .ix{ font-size:60px; }
  .wheel-center .lbl{ font-size:10px; }
  .practice-detail h3{ font-size:24px; }
}

/* inference diagram horizontal scroll on narrow */
@media (max-width:760px){
  .infr-view{ padding:20px 16px; }
  #infr-svg{ min-width:560px; }
  .infr-view-head{ font-size:10px; flex-wrap:wrap; gap:6px; }
  .infr-pros{ grid-template-columns:1fr; }
  .infr-tab{ padding:18px 16px; }
  .infr-tab h4{ font-size:16px; }
  .infr-tab .when, .infr-tab .meta{ font-size:10.5px; }
}
.infr-view{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* cases mobile fix */
@media (max-width:760px){
  .case-row > *{ padding:18px 16px; }
  .case-letter{ font-size:36px; }
  .case-row h3{ font-size:18px; }
  .case-desc{ font-size:13px; }
  .case-mx .mx .v{ font-size:20px; }
  .case-stack{ font-size:10.5px; word-break:break-word; }
}

/* method timeline mobile */
@media (max-width:760px){
  .mst{ padding:24px 18px; min-height:auto; }
  .mst .ix{ font-size:40px; margin-bottom:12px; }
  .mst h4{ font-size:17px; }
  .mst .desc{ font-size:13px; }
}

/* r&d mobile */
@media (max-width:760px){
  .rnd-block{ padding:24px 20px; }
  .rnd-block h4{ font-size:17px; margin-bottom:14px; }
  .rnd-block li{ font-size:13px; padding:6px 0 6px 16px; }
  .rnd-fmt{ padding:16px 18px; }
}

/* practices spec rows mobile */
@media (max-width:540px){
  .practice-row .cat{ font-size:16px; }
  .practice-row .desc{ font-size:13.5px; }
}

/* domain wheel needs min-width on tiny screens to keep readable */
.wheel-svg-wrap{ overflow:visible; }
@media (max-width:380px){
  .practice-wheel{ gap:18px; }
  .wheel-center .ix{ font-size:48px; }
}

/* faq mobile */
@media (max-width:540px){
  .faq-item summary{ padding:18px 0; gap:10px; }
  .faq-q{ font-size:15px; }
  .faq-a{ font-size:13px; padding-left:32px; }
}

/* final cta + contact mobile */
@media (max-width:760px){
  .final{ padding:48px 0 64px; }
  .final h2{ font-size:clamp(32px,7vw,48px); }
  .contact-row{ padding:14px 16px; flex-direction:column; align-items:flex-start; gap:4px; }
  .contact-row .k{ font-size:10px; }
  .contact-row .v{ font-size:13px; word-break:break-word; }
  .contact-box .ch{ padding:10px 14px; font-size:10px; }
}

/* founder mobile */
@media (max-width:900px){
  .founder-photo{ max-width:280px; margin:0 auto; }
}
@media (max-width:540px){
  .founder-bio p{ font-size:14.5px; }
  .founder-photo{ max-width:240px; }
}

/* scroll-margin for sticky nav anchors — already there but tighten on mobile */
@media (max-width:640px){
  :where(section[id]){ scroll-margin-top:70px; }
}

/* manifesto rows mobile */
@media (max-width:540px){
  .man-item{ padding:20px 18px; gap:14px; }
  .man-item .num{ font-size:48px; min-width:60px; }
  .man-item h4{ font-size:16px; }
  .man-item p{ font-size:13px; }
}

/* prevent svg text overflow */
.term-body, .term-line{ overflow-wrap:anywhere; }
footer.foot{
  padding:24px 0; background:var(--bg-deep); border-top:1px solid var(--line);
}
footer.foot .wrap{ text-align:center; }
footer.foot .foot-row{
  display:flex; justify-content:space-between; align-items:center;
  gap:20px; flex-wrap:wrap;
}
footer.foot .cr{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted);
  letter-spacing:.06em;
}
footer.foot .cr a{
  color:var(--ink-soft); text-decoration:none;
  border-bottom:1px solid transparent; transition:color .15s, border-color .15s;
}
footer.foot .cr a:hover{ color:var(--accent-soft); border-bottom-color:var(--accent); }
footer.foot .foot-links{
  display:flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted);
  letter-spacing:.04em;
}
footer.foot .foot-links a{
  color:var(--muted); text-decoration:none; transition:color .15s;
  border-bottom:1px solid transparent;
}
footer.foot .foot-links a:hover{ color:var(--accent-soft); border-bottom-color:var(--accent); }
footer.foot .foot-links .sep{ color:var(--dim); }
@media (max-width:540px){
  footer.foot .foot-row{ flex-direction:column; gap:10px; text-align:center; }
}

/* —— modal —— */
.modal-bd{
  position:fixed; inset:0; background:rgba(4,7,13,.85); backdrop-filter:blur(8px);
  display:none; align-items:center; justify-content:center; z-index:100; padding:20px;
}
.modal-bd.open{display:flex}
.modal{
  background:var(--surface); border:1px solid var(--accent); padding:32px;
  max-width:520px; width:100%; position:relative;
}
.modal h3{font-family:'IBM Plex Sans',sans-serif; font-weight:400; font-size:22px; margin-bottom:8px}
.modal p{font-family:'IBM Plex Sans',sans-serif; font-weight:300; color:var(--ink-soft); font-size:14px; margin-bottom:24px}
.modal .close{position:absolute; top:14px; right:14px; width:32px; height:32px; display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:20px}
.modal .close:hover{color:var(--ink)}
.form-row{margin-bottom:14px}
.form-row label{display:block; font-size:10px; color:var(--muted); letter-spacing:.08em; text-transform:uppercase; margin-bottom:6px}
.form-row label::before{content:"› "; color:var(--accent)}
.form-row input, .form-row select{
  width:100%; padding:12px 14px; background:var(--bg-deep); border:1px solid var(--line);
  color:var(--ink); font:inherit; font-size:13px; transition:border .15s;
}
.form-row input:focus, .form-row select:focus{outline:none; border-color:var(--accent)}
.modal .submit{
  width:100%; padding:14px; background:var(--accent); color:#fff;
  font-weight:600; font-size:13px; letter-spacing:.06em; cursor:pointer;
  border:1px solid var(--accent); transition:background .2s;
}
.modal .submit:hover{background:var(--accent-deep)}
.modal-alt{
  margin-top:14px; text-align:center;
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted);
  letter-spacing:.04em;
}
.modal-alt a{
  color:var(--accent-soft); text-decoration:none;
  border-bottom:1px solid rgba(91,141,239,.3); transition:border-color .15s;
}
.modal-alt a:hover{ border-bottom-color:var(--accent); color:#fff; }
.form-ok{text-align:center; padding:32px 16px}
.form-ok .check{
  width:48px; height:48px; border:1px solid var(--accent); color:var(--accent);
  display:flex; align-items:center; justify-content:center; font-size:24px;
  margin:0 auto 16px;
}

/* —— reveal —— */
.js .reveal{opacity:0; transform:translateY(14px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1)}
.js .reveal.visible{opacity:1; transform:translateY(0)}
.js .stagger > *{opacity:0; transform:translateY(14px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1)}
.js .stagger.visible > *{opacity:1; transform:translateY(0)}
.js .stagger.visible > *:nth-child(1){transition-delay:0ms}
.js .stagger.visible > *:nth-child(2){transition-delay:60ms}
.js .stagger.visible > *:nth-child(3){transition-delay:120ms}
.js .stagger.visible > *:nth-child(4){transition-delay:180ms}
.js .stagger.visible > *:nth-child(5){transition-delay:240ms}
.js .stagger.visible > *:nth-child(6){transition-delay:300ms}
.js .stagger.visible > *:nth-child(7){transition-delay:360ms}
.js .stagger.visible > *:nth-child(8){transition-delay:420ms}
.js .stagger.visible > *:nth-child(9){transition-delay:480ms}

@media (prefers-reduced-motion:reduce){
  .js .reveal, .js .stagger > *{opacity:1 !important; transform:none !important; transition:none !important}
  *, *::before, *::after{animation-duration:.01ms !important; transition-duration:.01ms !important}
}

/* —— scroll-to-top —— */
.scroll-top{
  position:fixed; right:24px; bottom:24px; z-index:60;
  width:44px; height:44px;
  background:rgba(4,7,13,.85); backdrop-filter:blur(10px);
  border:1px solid var(--accent); color:var(--accent-soft);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transform:translateY(8px);
  transition:opacity .3s ease, transform .3s ease, background .2s, color .2s;
  cursor:pointer;
}
.scroll-top.on{opacity:1; pointer-events:auto; transform:translateY(0)}
body:has(.cookie-banner.show) .scroll-top{ opacity:0 !important; pointer-events:none !important; }
.scroll-top:hover{background:var(--accent); color:#fff}
.scroll-top:focus-visible{outline:2px solid var(--accent); outline-offset:3px}

/* ========== splash · cookie · burger · lang · tooltip ========== */

/* SPLASH — fades out on DOM ready */
.splash{
  position:fixed; inset:0; z-index:200; background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .4s ease, visibility .4s ease;
  pointer-events:none;
}
.splash.hide{ opacity:0; visibility:hidden; }
.splash-mark{ display:flex; flex-direction:column; align-items:center; gap:24px; color:var(--accent); }
.splash-bar{
  width:140px; height:1px; background:var(--line); position:relative; overflow:hidden;
}
.splash-bar::after{
  content:""; position:absolute; left:-40%; top:0; bottom:0; width:40%;
  background:var(--accent); animation:splash-sweep 1.2s ease-in-out infinite;
}
@keyframes splash-sweep{ to{ left:140%; } }

/* COOKIE BANNER */
.cookie-banner{
  position:fixed; left:24px; right:24px; bottom:24px; z-index:80;
  background:var(--bg-deep); border:1px solid var(--accent);
  padding:18px 22px; max-width:680px; margin:0 auto;
  display:flex; gap:24px; align-items:center; flex-wrap:wrap;
  box-shadow:0 12px 36px rgba(0,0,0,.45);
  transform:translateY(140%); opacity:0;
  transition:transform .5s cubic-bezier(.2,.7,.3,1), opacity .4s ease;
}
.cookie-banner.show{ transform:translateY(0); opacity:1; }
.cookie-banner .cookie-text{ flex:1; min-width:240px; }
.cookie-banner .cookie-prompt{
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--accent);
  letter-spacing:.06em; margin-bottom:6px; display:block;
}
.cookie-banner p{
  font-family:'IBM Plex Sans',sans-serif; font-weight:300;
  font-size:13px; color:var(--ink-soft); line-height:1.55; margin:0;
}
.cookie-banner a{
  color:var(--accent-soft); text-decoration:none;
  border-bottom:1px solid rgba(91,141,239,.3); transition:border-color .15s;
}
.cookie-banner a:hover{ border-bottom-color:var(--accent); }
.cookie-actions{ display:flex; gap:10px; }
.cookie-btn{
  padding:10px 18px; font-family:'JetBrains Mono',monospace; font-size:12px;
  letter-spacing:.06em; cursor:pointer; transition:all .15s;
  border:1px solid var(--accent); white-space:nowrap;
}
.cookie-btn.primary{ background:var(--accent); color:#fff; }
.cookie-btn.primary:hover{ background:var(--accent-deep); }
.cookie-btn.secondary{ background:transparent; color:var(--ink-soft); border-color:var(--line); }
.cookie-btn.secondary:hover{ border-color:var(--accent); color:var(--ink); }
@media (max-width:540px){
  .cookie-banner{ left:12px; right:12px; bottom:12px; padding:14px 16px; }
  .cookie-actions{ width:100%; justify-content:stretch; }
  .cookie-btn{ flex:1; }
}

/* BURGER MENU */
.burger{
  display:none; width:44px; height:44px; background:transparent; border:1px solid var(--line);
  cursor:pointer; padding:0; position:relative; transition:border-color .2s;
}
.burger span{
  position:absolute; left:11px; right:11px; height:1.5px; background:var(--ink-soft);
  transition:transform .25s, opacity .15s, top .25s;
}
.burger span:nth-child(1){ top:14px; }
.burger span:nth-child(2){ top:21px; }
.burger span:nth-child(3){ top:28px; }
.burger:hover{ border-color:var(--accent); }
.burger[aria-expanded="true"] span:nth-child(1){ top:21px; transform:rotate(45deg); background:var(--accent); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ top:21px; transform:rotate(-45deg); background:var(--accent); }

/* desktop nav is part of nav.top.row; mobile nav is portaled to body by JS */
@media (max-width:1040px){
  .burger{ display:block; }
  body > .nav-links{
    position:fixed !important; top:0; left:0; right:0; bottom:0;
    width:100vw; height:100vh; height:100dvh; max-height:100dvh;
    z-index:55; margin:0; padding-top:120px !important;
    background:var(--bg-deep);
    background-image:
      radial-gradient(ellipse 600px 400px at 100% 0%, rgba(91,141,239,.10), transparent 60%),
      radial-gradient(ellipse 500px 300px at 0% 100%, rgba(91,141,239,.06), transparent 60%);
    display:flex !important; flex-direction:column; align-items:stretch; justify-content:flex-start;
    gap:0; overflow-y:auto;
    padding-left:32px; padding-right:32px; padding-bottom:48px;
    transform:translateY(-100%); transition:transform .45s cubic-bezier(.2,.7,.3,1);
    pointer-events:none;
    -webkit-overflow-scrolling:touch;
    visibility:hidden;
  }
  body > .nav-links.open{ transform:translateY(0); pointer-events:auto; visibility:visible; }
  body > .nav-links::before{ display:none; }
  body > .nav-links a{
    padding:24px 0; border-bottom:1px solid var(--line);
    font-family:'IBM Plex Sans',sans-serif; font-size:22px; font-weight:300;
    color:var(--ink); text-align:left; letter-spacing:-.01em;
    display:flex !important; align-items:center; justify-content:space-between;
    text-decoration:none; transition:color .15s, padding-left .25s;
  }
  body > .nav-links a::before{ display:none !important; }
  body > .nav-links a::after{
    content:"→"; display:block !important;
    font-family:'JetBrains Mono',monospace; font-size:18px; color:var(--accent);
    opacity:.4; transition:opacity .15s, transform .25s;
  }
  body > .nav-links a:hover{ color:var(--accent-soft); padding-left:6px; }
  body > .nav-links a:hover::after{ opacity:1; transform:translateX(4px); }
  body > .nav-links a.btn{
    margin-top:32px; padding:18px 22px; justify-content:center;
    background:var(--accent); color:#fff;
    font-family:'JetBrains Mono',monospace; font-size:14px; font-weight:600;
    letter-spacing:.06em;
    border:1px solid var(--accent);
  }
  body > .nav-links a.btn::after{ display:none !important; }
  body > .nav-links a.btn:hover{ background:var(--accent-deep); padding-left:22px; }

  /* burger above the menu */
  nav.top{ z-index:60; }
  .burger{ position:relative; z-index:61; }
}

/* desktop: keep original layout when nav-links is inside nav.top */
@media (min-width:1041px){
  body > .nav-links{
    /* Even if portaled to body for some reason, hide on desktop */
    display:none !important;
  }
}


/* HOVER PREVIEW TOOLTIP for vectors */
.vector{ position:relative; }
.vector[data-preview]:hover::after{
  content:attr(data-preview);
  position:absolute; bottom:calc(100% + 8px); left:24px; right:24px;
  background:var(--bg-deep); border:1px solid var(--accent); padding:12px 14px;
  font-family:'IBM Plex Sans',sans-serif; font-weight:300; font-size:12px;
  color:var(--ink-soft); line-height:1.55; letter-spacing:.01em;
  pointer-events:none; z-index:30; box-shadow:0 8px 24px rgba(0,0,0,.4);
  animation:tip-fade .25s ease;
}
@keyframes tip-fade{ from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:translateY(0); } }
@media (max-width:860px){ .vector[data-preview]:hover::after{ display:none; } }

/* DEV TERMINAL command input (shown after script completes) */
.term-input-row{
  display:flex; align-items:baseline; gap:10px; padding-top:4px;
  font-family:'JetBrains Mono',monospace; font-size:13px;
}
.term-input-row .prompt{ color:var(--accent); flex-shrink:0; }
.term-input-row input{
  flex:1; background:transparent; border:none; outline:none;
  font:inherit; color:var(--ink); padding:0; caret-color:var(--accent);
}
.term-input-row input::placeholder{ color:var(--muted); font-style:italic; }

/* PRINT styles */
@media print{
  *, *::before, *::after{
    background:transparent !important; color:#000 !important;
    box-shadow:none !important; text-shadow:none !important;
    animation:none !important; transition:none !important;
  }
  body{ font-family:Georgia, serif !important; font-size:11pt !important; line-height:1.5; }
  .topbar, nav.top, .scroll-top, .modal-bd, .splash, .cookie-banner,
  .burger, .infr-view, .practice-wheel .wheel-svg-wrap,
  #hero-term, .term, .vectors-strip, .seo-cta-card, .nf-actions,
  .term-input-row, .hero-cta{ display:none !important; }
  section{ padding:18pt 0 !important; page-break-inside:avoid; }
  h1, h2, h3, h4{ page-break-after:avoid; color:#000 !important; }
  a{ color:#000 !important; text-decoration:underline !important; }
  a[href^="http"]::after, a[href^="mailto:"]::after, a[href^="tel:"]::after{
    content:" (" attr(href) ")"; font-size:9pt; color:#555 !important;
  }
  a[href^="#"]::after{ content:""; }
  .wrap{ max-width:none; padding:0; }
  footer.foot{ border-top:1px solid #999; padding-top:12pt; margin-top:24pt; }
  .case-row, .mst, .domain, .vector{ page-break-inside:avoid; border:1px solid #ccc; padding:12pt !important; margin-bottom:8pt; }
  img{ max-width:100% !important; }
}

/* ========== responsive polish v2 ========== */

/* prevent any horizontal page scroll */
html, body{ overflow-x:hidden; max-width:100vw; }

/* tablets — 5-card stages grid auto-wraps cleanly */
@media (max-width:1100px) and (min-width:761px){
  .method-track{ grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); }
}

/* tablets — vectors 2 cols + 3rd full-width */
@media (max-width:860px) and (min-width:541px){
  .vectors-grid{ grid-template-columns:1fr 1fr; }
  .vector:last-child{ grid-column:1 / -1; }
}

/* very small screens — wheel still readable */
@media (max-width:380px){
  .wheel-svg-wrap{ max-width:340px; }
  #practice-svg .seg text.lbl{ font-size:11px; }
  #practice-svg .seg text.num{ font-size:9px; }
  .wheel-center .ix{ font-size:44px; }
}

/* very small screens — inference diagram still legible */
@media (max-width:400px){
  #infr-svg{ min-width:520px; }
  .infr-view{ padding:16px 12px; }
}

/* topbar collapse on tiny screens */
@media (max-width:480px){
  .topbar .wrap > span:first-child{ display:none; }
  .topbar .wrap{ justify-content:flex-end; }
}

/* hero meta wrap + terminal text break */
@media (max-width:540px){
  .hero-meta{ flex-wrap:wrap; }
  .term-line .txt{ word-break:break-word; }
  .infr-tab .ix{ flex-wrap:wrap; gap:4px; }
}

/* minimum tap targets ≥ 44px on mobile */
@media (max-width:760px){
  .faq-item summary{ min-height:44px; }
  .infr-tab{ min-height:60px; }
  .vector{ min-height:60px; }
  .nav-links a.btn{ min-height:44px; }
  .scroll-top{ width:48px; height:48px; }
  section{ padding:56px 0; }
}

/* iOS safe-area for floating buttons */
@supports(padding:max(0px)){
  .scroll-top{
    right:max(24px, env(safe-area-inset-right, 24px));
    bottom:max(24px, env(safe-area-inset-bottom, 24px));
  }
}

/* mobile section paddings + page edges */
@media (max-width:540px){
  section{ padding:48px 0; }
  .wrap{ padding:0 16px; }
  .scroll-top{ width:44px; height:44px; }
}

@media (max-width:380px){
  .scroll-top{ width:40px; height:40px; right:14px; bottom:14px; }
}

/* anti-overflow for long values across components */
.who-cell .v{ word-break:break-word; overflow-wrap:break-word; }
.contact-row .v a{ word-break:break-word; }
.contact-row .v{ overflow-wrap:anywhere; }
.practice-detail{ min-width:0; }
.practice-detail h3{ overflow-wrap:break-word; }
.practice-detail p{ overflow-wrap:break-word; }
.stack-cat li{ overflow-wrap:break-word; }
.case-stack{ overflow-wrap:anywhere; }
.case-desc{ overflow-wrap:break-word; }
.vector p{ overflow-wrap:break-word; }
.rnd-block li{ overflow-wrap:break-word; }

/* prevent terminal from overflowing parent */
.term{ min-width:0; overflow:hidden; }
.term-body{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.term-body::-webkit-scrollbar{ display:none; }
.term-body{ scrollbar-width:none; }

/* practice wheel — wrap-friendly on narrow */
@media (max-width:760px){
  .practice-detail h3{ font-size:22px; line-height:1.15; }
  .practice-detail p{ font-size:14px; }
  .practice-detail .d-meta .v{ font-size:12px; word-break:break-all; }
}

/* avoid awkward orphans on cases description on mid screens */
@media (max-width:900px) and (min-width:761px){
  .case-row > *{ padding:22px 18px; }
}

/* nav contrast — ensure tap area visible */
@media (max-width:1040px) and (min-width:541px){
  .nav-links a.btn{ padding:11px 14px; }
}

/* manifesto rows mobile — already exists but ensure num doesn't push p out */
@media (max-width:760px){
  .man-grid{ margin-top:32px; }
  .man-item p{ min-width:0; }
}

/* prevent stack-row mono items from breaking layout */
.stack-row .items span{ overflow-wrap:anywhere; }
@media (max-width:540px){.scroll-top{right:16px; bottom:16px; width:40px; height:40px}}
