/* ══════════════════════════════════════════════════════════════
   AKESO — Design System v3 (clean rebuild)
   ══════════════════════════════════════════════════════════════ */

/* ── TOKENS ─────────────────────────────────────────────────── */
:root {
  --ink:      oklch(0.16 0.004 70);
  --ink-2:    oklch(0.32 0.005 70);
  --ink-3:    oklch(0.52 0.005 70);
  --ink-4:    oklch(0.72 0.005 70);
  --surface:  oklch(0.985 0.004 80);
  --surface-2:oklch(0.955 0.006 75);
  --surface-3:oklch(0.925 0.008 70);
  --rule:     oklch(0.88 0.005 70);
  --rule-strong:oklch(0.78 0.005 70);
  --black:    oklch(0.13 0.004 70);
  --accent-h:50; --accent-c:0.18; --accent-l:0.64;
  --accent:   oklch(var(--accent-l) var(--accent-c) var(--accent-h));
  --accent-glow: oklch(var(--accent-l) var(--accent-c) var(--accent-h) / 0.22);
  /* Single consistent side margin used everywhere */
  --pad-x: clamp(36px, 6.5vw, 96px);
  --pad-y: clamp(48px, 6vw, 80px);
  --gutter: clamp(20px, 4vw, 48px);
  --font: "Geist","Inter",ui-sans-serif,system-ui,-apple-system,"Helvetica Neue",Arial,"Noto Sans SC","PingFang SC",sans-serif;
  --mono: "Geist Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
html[lang^="zh"] { --font:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Geist",ui-sans-serif,sans-serif; }
html[lang^="zh"] body { letter-spacing:0; }
html[lang^="zh"] .h2,html[lang^="zh"] h1,html[lang^="zh"] h2 { letter-spacing:-0.01em; }
html[lang^="zh"] .hero h1 { font-size:clamp(34px,5vw,68px); line-height:1.06; }
html[lang^="zh"] .h2 { font-size:clamp(22px,3vw,42px); }
html[lang^="zh"] .future h2 { font-size:clamp(28px,4vw,56px); line-height:1.08; }
html[lang^="zh"] .final-cta h2 { font-size:clamp(28px,4.4vw,60px); }
html[lang^="zh"] .em { font-style:normal; font-weight:600; }

/* ── RESET ── */
*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; padding:0; }
html { background:var(--surface); }
body { color:var(--ink); background:var(--surface); font-family:var(--font); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; line-height:1.5; letter-spacing:-0.005em; overflow-x:hidden; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
main { padding-top:60px; }
/* On homepage, hero-dark is inside main — override main padding */
main:has(.hero-dark) { padding-top:0; }
main:has(.mrx-hero) { padding-top:0; }

/* ── KEYFRAMES ── */
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.3} }

/* ── SCROLL REVEAL ── */
/* Elements start hidden, JS adds .in when scrolled into view */
.reveal, .reveal-stagger > * {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.reveal-fade { opacity:0; transition:opacity 0.85s ease; }
.reveal.in, .reveal-stagger.in > *, .reveal-fade.in { opacity:1 !important; transform:none !important; }
.reveal-stagger.in > *:nth-child(1) { transition-delay:0.06s; }
.reveal-stagger.in > *:nth-child(2) { transition-delay:0.13s; }
.reveal-stagger.in > *:nth-child(3) { transition-delay:0.20s; }
.reveal-stagger.in > *:nth-child(4) { transition-delay:0.27s; }
.reveal-stagger.in > *:nth-child(5) { transition-delay:0.34s; }
.reveal-stagger.in > *:nth-child(6) { transition-delay:0.41s; }
@media (scripting:none) { .reveal,.reveal-stagger>*,.reveal-fade { opacity:1; transform:none; } }

/* ── LUCIDE ICONS ── */
.icon-xs { width:13px; height:13px; flex-shrink:0; }
.icon-sm { width:15px; height:15px; flex-shrink:0; }
[data-lucide] { display:inline-block; vertical-align:middle; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; fill:none; }

/* ── TYPE ATOMS ── */
.eyebrow { font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-3); display:inline-flex; align-items:center; gap:10px; font-weight:500; }
.eyebrow::before { content:""; width:6px; height:6px; background:var(--accent); border-radius:50%; flex-shrink:0; }
.eyebrow.no-dot::before { display:none; }
.section-index { font-family:var(--mono); font-size:11px; letter-spacing:0.08em; color:var(--accent) !important; text-transform:uppercase; display:block; }
.h2 { font-size:clamp(26px,3.8vw,52px); line-height:1.05; letter-spacing:-0.022em; font-weight:400; margin:0; text-wrap:balance; }
.lede { font-size:clamp(16px,1.3vw,20px); line-height:1.5; color:var(--ink-2); max-width:56ch; }
.body { font-size:16px; line-height:1.6; color:var(--ink-2); }
.mono { font-family:var(--mono); }

/* ── BUTTONS ── */
.btn { display:inline-flex; align-items:center; gap:10px; height:44px; padding:0 20px; border-radius:999px; font-family:var(--font); font-size:13.5px; font-weight:500; letter-spacing:-0.005em; white-space:nowrap; cursor:pointer; transition:background 200ms,color 200ms,border-color 200ms,box-shadow 200ms,transform 150ms; }
.btn-primary { background:var(--ink); color:var(--surface); border:1px solid var(--ink); }
.btn-primary .dot { width:7px; height:7px; border-radius:50%; background:var(--accent); flex-shrink:0; }
.btn-primary:hover { background:var(--black); box-shadow:0 0 0 3px var(--accent-glow); transform:translateY(-1px); }
.btn-ghost { background:transparent; color:var(--ink); border:1px solid var(--rule-strong); }
.btn-ghost:hover { border-color:var(--ink); transform:translateY(-1px); }
.btn [data-lucide] { transition:transform 200ms; }
.btn:hover [data-lucide] { transform:translateX(2px); }
.btn-wghost { background:transparent; color:white; border:1px solid rgba(255,255,255,0.22); font-family:var(--font); font-size:13px; font-weight:500; padding:0 18px; height:44px; border-radius:999px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:border-color 0.2s,background 0.2s,transform 0.15s; }
.btn-wghost:hover { border-color:rgba(255,255,255,0.55); background:rgba(255,255,255,0.04); transform:translateY(-1px); }

/* ── LAYOUT ── */
.shell { padding-left:var(--pad-x); padding-right:var(--pad-x); }
.section { padding-top:var(--pad-y); padding-bottom:var(--pad-y); border-top:1px solid var(--rule); } /* pad-y now clamp(48px,6vw,80px) */
.section.no-rule { border-top:0; }
.section-head { display:grid; grid-template-columns:1fr 2fr; gap:var(--gutter); align-items:end; padding-bottom:clamp(40px,6vw,80px); }
.section-head .meta { display:flex; flex-direction:column; gap:14px; }

/* ── NAV ── */
.nav { position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:17px var(--pad-x); transition:background 240ms,border-color 240ms; border-bottom:1px solid transparent; }
.nav.solid { background:color-mix(in oklab,var(--surface) 88%,transparent); backdrop-filter:saturate(160%) blur(14px); -webkit-backdrop-filter:saturate(160%) blur(14px); border-bottom-color:var(--rule); }
.nav-logo { height:22px; display:block; }
.nav-logo svg { height:100%; width:auto; }
.nav-logo svg path { fill:var(--ink); }
.nav-links { display:flex; gap:26px; align-items:center; }
.nav-links a { font-size:13px; color:var(--ink-2); letter-spacing:-0.005em; transition:color 200ms; position:relative; white-space:nowrap; }
.nav-links a::after { content:''; position:absolute; bottom:-3px; left:0; width:0; height:1.5px; background:var(--accent); transition:width 0.22s; }
.nav-links a:hover { color:var(--ink); }
.nav-links a:hover::after { width:100%; }
.nav-links a.active { color:var(--accent); }
.nav-links a.active::after { width:100%; }
.nav-right { display:flex; align-items:center; gap:14px; }
.nav-cta { height:36px; padding:0 16px; font-size:13px; }
.lang-toggle { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 11px; border-radius:999px; font-family:var(--mono); font-size:11px; letter-spacing:0.04em; background:transparent; border:1px solid var(--rule-strong); color:var(--ink-3); transition:border-color 200ms,color 200ms; cursor:pointer; }
.lang-toggle:hover { border-color:var(--ink); color:var(--ink); }
.lang-toggle .seg { line-height:1; }
.lang-toggle .seg.on { color:var(--ink); font-weight:500; }
.lang-toggle .seg:not(.on) { color:var(--ink-4); }
.lang-toggle .seg-sep { color:var(--ink-4); font-weight:300; line-height:1; }

/* ── HERO ── */
.hero { padding-top:60px; padding-bottom:0; border-top:0; display:grid; grid-template-columns:52% 48%; align-items:stretch; min-height:78vh; }
/* hero-left uses same pad-x as everything else — consistent margins */
.hero-left { display:flex; flex-direction:column; justify-content:space-between; gap:36px; padding:clamp(40px,5.5vw,64px) 0; }
.hero-eyebrow { display:flex; gap:14px; align-items:center; font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-3); }
.hero-eyebrow .tick { width:26px; height:1px; background:var(--ink-4); flex-shrink:0; }
.hero h1 { font-size:clamp(36px,5vw,72px); line-height:1.0; letter-spacing:-0.03em; font-weight:400; margin:0; }
.hero h1 .em { font-style:italic; font-weight:400; }
.hero-support { font-size:clamp(14px,1.05vw,16px); line-height:1.6; color:var(--ink-2); max-width:48ch; margin:0; }
.hero-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.hero-bottom { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding-top:22px; border-top:1px solid var(--rule); }
.hero-bottom .item { display:flex; flex-direction:column; gap:5px; }
.hero-bottom .k { font-family:var(--mono); font-size:10px; letter-spacing:0.1em; color:var(--ink-3); text-transform:uppercase; }
.hero-bottom .v { font-size:13px; color:var(--ink); letter-spacing:-0.005em; line-height:1.3; }
/* Hero right — photo panel */
.hero-right { position:relative; background:var(--black); overflow:hidden; isolation:isolate; }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 45%; display:block; opacity:0.7; transition:transform 8s ease-out; }
.hero-right:hover .hero-photo { transform:scale(1.03); }
.hero-right::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(255,255,255,0.022) 60px),repeating-linear-gradient(90deg,transparent,transparent 59px,rgba(255,255,255,0.022) 60px); z-index:2; pointer-events:none; }
.hero-right::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,oklch(0.6 0.18 45/0.08) 0%,transparent 35%); z-index:2; pointer-events:none; }
.hero-right .corner { position:absolute; font-family:var(--mono); font-size:10px; letter-spacing:0.1em; color:rgba(255,255,255,0.45); text-transform:uppercase; z-index:5; }
.hero-right .corner.tl { top:18px; left:18px; display:flex; gap:8px; align-items:center; }
.hero-right .corner.tl::before { content:""; width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 2.4s ease-in-out infinite; }
.hero-right .corner.br { bottom:18px; right:18px; }
#hero-reticle { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:min(240px,38%); height:min(240px,38%); z-index:4; pointer-events:none; }
#hero-reticle svg { width:100%; height:100%; }

/* ── IMAGE STRIP ── */
.img-strip { display:grid; grid-template-columns:1fr 1fr 1fr; gap:2px; height:clamp(200px,26vw,360px); border-top:1px solid var(--rule); }
.img-strip-item { position:relative; overflow:hidden; background:var(--surface-2); }
.img-strip-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.7s cubic-bezier(0.22,1,0.36,1); }
.img-strip-item:hover img { transform:scale(1.05); }
.img-strip-item .strip-label { position:absolute; bottom:12px; left:14px; font-family:var(--mono); font-size:9.5px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.6); pointer-events:none; z-index:2; }
.img-strip-item::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,0.32) 0%,transparent 50%); pointer-events:none; }

/* ── PLATFORM CARDS ── */
.cards-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.card { background:var(--surface); padding:clamp(26px,3vw,42px) clamp(26px,3vw,38px) clamp(32px,4vw,52px); display:flex; flex-direction:column; gap:clamp(28px,4vw,48px); position:relative; transition:background 240ms; cursor:default; overflow:hidden; }
.card:hover { background:var(--surface-2); }
.card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform 0.32s; }
.card:hover::before { transform:scaleX(1); }
.card .card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.card .card-glyph { width:100%; aspect-ratio:4/3; background:var(--surface-2); border:1px solid var(--rule); border-radius:2px; position:relative; overflow:hidden; }
.card:hover .card-glyph { border-color:var(--rule-strong); }
.card-body { display:flex; flex-direction:column; gap:12px; }
.card-body h3 { font-size:clamp(20px,1.9vw,26px); font-weight:500; letter-spacing:-0.015em; margin:0; line-height:1.1; }
.card-body h3 sup { font-family:var(--mono); font-size:0.44em; font-weight:400; vertical-align:top; margin-left:2px; color:var(--ink-3); }
.card-body p { margin:0; font-size:14.5px; line-height:1.55; color:var(--ink-2); }
.card-list { list-style:none; padding:0; margin:6px 0 0; display:flex; flex-direction:column; gap:6px; }
.card-list li { font-family:var(--mono); font-size:11px; letter-spacing:0.02em; color:var(--ink-3); display:flex; align-items:flex-start; gap:8px; }
.card-list li::before { display:none; }
.card-num { font-family:var(--mono); font-size:11px; letter-spacing:0.08em; color:var(--ink-3); }

/* ── PARALLAX DARK SECTION ── */
.parallax-section { position:relative; overflow:hidden; background:var(--black); color:white; padding:clamp(80px,12vw,140px) var(--pad-x); }
.parallax-bg { position:absolute; inset:-20% 0; width:100%; height:140%; object-fit:cover; object-position:center 40%; opacity:0.25; will-change:transform; }
.parallax-grid { position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent,transparent 79px,rgba(255,255,255,0.02) 80px),repeating-linear-gradient(90deg,transparent,transparent 79px,rgba(255,255,255,0.02) 80px); pointer-events:none; z-index:1; }
.parallax-content { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:clamp(44px,7vw,92px); align-items:center; }
.parallax-section .section-index { color:rgba(255,255,255,0.35) !important; }
.parallax-section h2 { font-size:clamp(26px,3.8vw,52px); font-weight:400; letter-spacing:-0.024em; line-height:1.04; color:white; margin:0 0 26px; }
.parallax-section p { font-size:clamp(13px,1vw,15px); line-height:1.7; color:rgba(255,255,255,0.58); margin:0 0 14px; max-width:46ch; }
.parallax-section .tag { font-family:var(--mono); font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; display:flex; align-items:center; gap:10px; }
.parallax-section .tag::before { content:''; width:20px; height:1.5px; background:var(--accent); }
.process-steps { display:flex; flex-direction:column; border-top:1px solid rgba(255,255,255,0.1); }
.process-step { display:grid; grid-template-columns:28px 1fr auto; gap:16px; padding:15px 0; border-bottom:1px solid rgba(255,255,255,0.07); align-items:center; transition:padding-left 0.2s; }
.process-step:hover { padding-left:6px; }
.process-step .s-idx { font-family:var(--mono); font-size:10px; color:rgba(255,255,255,0.28); letter-spacing:0.08em; }
.process-step .s-lbl { font-size:13.5px; color:rgba(255,255,255,0.72); letter-spacing:-0.005em; }
.process-step .s-status { font-family:var(--mono); font-size:10px; color:var(--accent); letter-spacing:0.08em; text-transform:uppercase; }

/* ── RESEARCH GRID ── */
.research-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.research-cell { background:var(--surface); padding:clamp(24px,2.4vw,36px); min-height:220px; display:flex; flex-direction:column; gap:14px; position:relative; transition:background 220ms,transform 220ms,box-shadow 220ms; }
.research-cell:hover { background:var(--surface-2); transform:translateY(-2px); box-shadow:0 4px 20px rgba(0,0,0,0.05); z-index:1; }
.research-cell .num { font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; color:var(--ink-3); display:flex; justify-content:space-between; align-items:center; }
.research-cell .num .tag { color:var(--ink-3); }
.research-cell h4 { margin:0; font-size:clamp(17px,1.5vw,21px); font-weight:500; letter-spacing:-0.012em; line-height:1.15; margin-top:auto; }
.research-cell p { margin:0; font-size:13.5px; line-height:1.55; color:var(--ink-3); }
.research-cell [data-lucide] { color:var(--accent); margin-left:auto; margin-top:-18px; display:block; transition:transform 200ms; }
.research-cell:hover [data-lucide] { transform:translate(1px,-1px); }

/* ── MANUFACTURING ── */
.mfg-image { width:100%; aspect-ratio:16/8; background:var(--surface-2); border:1px solid var(--rule); border-radius:4px; position:relative; overflow:hidden; margin-bottom:2px; }
.mfg-image .annot { position:absolute; font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.55); display:flex; align-items:center; gap:10px; z-index:2; }
.mfg-image .annot .dot { width:6px; height:6px; background:var(--accent); border-radius:50%; }
.mfg-image .annot.tl { top:18px; left:18px; }
.mfg-image .annot.br { bottom:18px; right:18px; }
.mfg-image .annot.bl { bottom:18px; left:18px; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); margin-top:clamp(40px,6vw,64px); }
.metric { background:var(--surface); padding:clamp(24px,2.4vw,34px); display:flex; flex-direction:column; gap:8px; min-height:145px; }
.metric .k { font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-3); }
.metric .v { font-size:clamp(36px,3.8vw,52px); line-height:0.95; letter-spacing:-0.025em; font-weight:400; font-feature-settings:"tnum","lnum"; margin-top:auto; }
.metric .v .unit { font-size:0.44em; color:var(--accent); margin-left:2px; letter-spacing:0.04em; font-family:var(--mono); font-weight:400; vertical-align:top; position:relative; top:0.44em; }

/* ── FUTURE SECTION ── */
.future { background:var(--black); color:var(--surface); padding:clamp(96px,13vw,168px) var(--pad-x); position:relative; overflow:hidden; }
.future .future-visual { position:absolute; inset:0; z-index:1; opacity:0.55; pointer-events:none; }
.future-parallax-bg { position:absolute; left:0; right:auto; top:-20%; width:50%; height:140%; object-fit:cover; object-position:right center; opacity:0.12; will-change:transform; }
.future .grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,88px); position:relative; z-index:2; }
.future .section-index { color:rgba(255,255,255,0.4) !important; }
.future h2 { font-size:clamp(30px,4.8vw,66px); line-height:1.0; letter-spacing:-0.025em; font-weight:400; margin:0; color:var(--surface); }
.future p { color:rgba(255,255,255,0.68); font-size:clamp(14px,1.05vw,16px); line-height:1.62; margin:0; max-width:50ch; }
.future .head { display:flex; justify-content:space-between; margin-bottom:clamp(48px,7vw,84px); position:relative; z-index:2; }
.future .head .right { font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.42); }
.future-list { display:flex; flex-direction:column; margin-top:20px; }
.future-list .item { display:grid; grid-template-columns:32px 1fr auto; padding:15px 0; gap:22px; border-top:1px solid rgba(255,255,255,0.12); align-items:center; font-family:var(--mono); font-size:11px; letter-spacing:0.04em; text-transform:uppercase; color:rgba(255,255,255,0.65); transition:padding-left 0.2s; }
.future-list .item:last-child { border-bottom:1px solid rgba(255,255,255,0.12); }
.future-list .item:hover { padding-left:4px; color:var(--surface); }
.future-list .item .idx { color:rgba(255,255,255,0.35); }
.future-list .item .v { color:var(--accent); }

/* ── NTNB ── */
.ntnb-section { position:relative; overflow:hidden; background:var(--black); padding:clamp(80px,10vw,120px) var(--pad-x); border-top:1px solid rgba(255,255,255,0.05); }
.ntnb-section::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--accent),transparent 55%); z-index:3; }
.ntnb-bg { position:absolute; inset:-20% 0; width:100%; height:140%; object-fit:cover; object-position:center 55%; opacity:0.15; will-change:transform; }
.ntnb-grid { position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(255,255,255,0.016) 60px),repeating-linear-gradient(90deg,transparent,transparent 59px,rgba(255,255,255,0.016) 60px); pointer-events:none; z-index:1; }
.ntnb-inner { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:clamp(44px,7vw,92px); align-items:start; }
.ntnb-tag { font-family:var(--mono); font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:10px; margin-bottom:20px; }
.ntnb-tag::before { content:''; width:20px; height:1.5px; background:var(--accent); }
.ntnb-section h2 { font-size:clamp(22px,3vw,42px); font-weight:400; letter-spacing:-0.022em; line-height:1.06; color:white; margin:0 0 18px; }
.ntnb-section p { font-size:clamp(13px,1vw,15px); line-height:1.68; color:rgba(255,255,255,0.52); margin:0 0 26px; max-width:48ch; }
.ntnb-facts { display:flex; flex-direction:column; border-top:1px solid rgba(255,255,255,0.07); }
.ntnb-fact { display:flex; align-items:flex-start; gap:14px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,0.05); }
.ntnb-fact .f-icon { width:14px; height:14px; color:var(--accent); flex-shrink:0; margin-top:2px; }
.ntnb-fact .f-text { font-size:12.5px; color:rgba(255,255,255,0.6); line-height:1.5; }
.ntnb-caps { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.05); border-radius:2px; overflow:hidden; }
.ntnb-cap { background:rgba(255,255,255,0.02); padding:16px 18px; display:flex; flex-direction:column; gap:5px; transition:background 0.2s; }
.ntnb-cap:hover { background:rgba(255,255,255,0.05); }
.ntnb-cap .c-idx { font-family:var(--mono); font-size:9.5px; letter-spacing:0.1em; color:rgba(255,255,255,0.2); text-transform:uppercase; }
.ntnb-cap .c-title { font-size:12.5px; font-weight:500; color:rgba(255,255,255,0.72); }
.ntnb-cap .c-sub { font-size:11.5px; color:rgba(255,255,255,0.3); line-height:1.4; }
.ntnb-ctas { display:flex; gap:10px; margin-top:24px; flex-wrap:wrap; }

/* ── FINAL CTA ── */
.final-cta { padding-top:clamp(96px,13vw,148px); padding-bottom:clamp(96px,13vw,148px); display:flex; flex-direction:column; align-items:center; text-align:center; gap:26px; }
.final-cta h2 { font-size:clamp(34px,5.4vw,76px); line-height:0.98; letter-spacing:-0.025em; font-weight:400; margin:0; max-width:16ch; }
.final-cta p { max-width:50ch; margin:0; font-size:clamp(14px,1.1vw,17px); color:var(--ink-2); line-height:1.55; }
.final-cta .actions { display:flex; gap:10px; margin-top:4px; flex-wrap:wrap; justify-content:center; }

/* ── FOOTER ── */
footer.foot { background:var(--black); color:var(--surface); padding:clamp(68px,9vw,108px) var(--pad-x) 32px; }
.foot-top { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:var(--gutter); padding-bottom:clamp(52px,7vw,84px); border-bottom:1px solid rgba(255,255,255,0.12); }
.foot-mark { display:flex; flex-direction:column; gap:20px; align-items:flex-start; }
.foot-mark svg { height:22px; width:auto; display:block; margin-right:auto; }
.foot-mark svg path { fill:var(--surface); }
.foot-mark p { font-size:13.5px; line-height:1.5; color:rgba(255,255,255,0.55); margin:0; }
.foot-col h5 { font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.38); margin:0 0 15px; font-weight:500; }
.foot-col ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.foot-col a { font-size:13.5px; color:rgba(255,255,255,0.78); transition:color 200ms; display:flex; align-items:center; gap:8px; }
.foot-col a:hover { color:var(--accent); }
.foot-col a [data-lucide] { opacity:0.75; flex-shrink:0; transition:opacity 200ms; color:var(--accent); }
.foot-col a:hover [data-lucide] { opacity:1; }
.foot-bottom { padding-top:24px; display:flex; justify-content:space-between; align-items:center; font-family:var(--mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.38); }
.foot-bottom .right { display:flex; gap:24px; }

/* ── PAGE HERO (inner pages) ── */
.page-hero { padding-top:clamp(68px,10vw,106px); padding-bottom:clamp(52px,7vw,84px); border-top:0; }
.page-hero .eyebrow { margin-bottom:22px; }
.page-hero h1 { font-size:clamp(34px,5.8vw,80px); line-height:0.97; letter-spacing:-0.03em; font-weight:400; margin:0 0 22px; max-width:20ch; }
.page-hero p { font-size:clamp(15px,1.25vw,18px); line-height:1.55; color:var(--ink-2); max-width:52ch; margin:0; }

/* ── PLATFORM BLOCKS (tech page) ── */
.platform-block { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,84px); align-items:start; padding-top:var(--pad-y); padding-bottom:var(--pad-y); border-top:1px solid var(--rule); }
.platform-block.reverse { direction:rtl; }
.platform-block.reverse>* { direction:ltr; }
.platform-visual { background:var(--surface-2); border:1px solid var(--rule); border-radius:4px; overflow:hidden; position:relative; aspect-ratio:4/3; }
.platform-visual .corner { position:absolute; font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-3); z-index:4; }
.platform-visual .corner.tl { top:15px; left:15px; display:flex; gap:8px; align-items:center; }
.platform-visual .corner.tl::before { content:""; width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 2.4s ease-in-out infinite; }
.platform-visual .corner.br { bottom:15px; right:15px; }
.platform-content { display:flex; flex-direction:column; gap:clamp(22px,2.8vw,34px); padding-top:8px; }
.platform-tag { font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-3); display:flex; align-items:center; gap:10px; }
.platform-tag .num { color:var(--accent); font-weight:500; }
.platform-h { font-size:clamp(24px,2.6vw,38px); font-weight:400; letter-spacing:-0.022em; line-height:1.05; margin:0; }
.platform-h sup { font-family:var(--mono); font-size:0.4em; font-weight:400; vertical-align:top; margin-left:2px; color:var(--ink-3); }
.platform-body { font-size:clamp(13.5px,1vw,15.5px); line-height:1.62; color:var(--ink-2); margin:0; max-width:46ch; }
.platform-specs { display:flex; flex-direction:column; border-top:1px solid var(--rule); }
.spec-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:13px 0 13px 10px; border-bottom:1px solid var(--rule); border-left:2px solid transparent; transition:border-left-color 0.2s; align-items:start; }
.spec-row:hover { border-left-color:var(--accent); }
.spec-row .k { font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-3); padding-top:2px; }
.spec-row .v { font-size:13.5px; color:var(--ink); line-height:1.45; }

/* ── PHILOSOPHY (tech page) ── */
.philosophy { background:var(--black); color:white; padding:clamp(84px,12vw,148px) var(--pad-x); position:relative; overflow:hidden; }
.philosophy::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent,transparent 79px,rgba(255,255,255,0.02) 80px),repeating-linear-gradient(90deg,transparent,transparent 79px,rgba(255,255,255,0.02) 80px); pointer-events:none; z-index:1; }
.philosophy>* { position:relative; z-index:2; }
.philosophy h2 { font-size:clamp(30px,4.6vw,62px); line-height:1.0; letter-spacing:-0.025em; font-weight:400; margin:0; color:var(--surface); }
.philosophy .grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5.5vw,80px); margin-top:clamp(40px,5vw,64px); align-items:start; }
.philosophy p { font-size:clamp(13.5px,1vw,15.5px); line-height:1.62; color:rgba(255,255,255,0.62); margin:0 0 16px; max-width:48ch; }
.phil-list { display:flex; flex-direction:column; border-top:1px solid rgba(255,255,255,0.1); }
.phil-list .item { display:grid; grid-template-columns:26px 1fr; gap:16px; padding:16px 0; border-bottom:1px solid rgba(255,255,255,0.08); align-items:start; }
.phil-list .item .idx { font-family:var(--mono); font-size:10px; color:rgba(255,255,255,0.3); padding-top:2px; }
.phil-list .item .lbl { font-size:13.5px; color:rgba(255,255,255,0.72); line-height:1.4; }
.sys-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:3px; overflow:hidden; margin-top:34px; }
.sys-cell { background:var(--surface); padding:clamp(20px,2.6vw,36px); display:flex; flex-direction:column; gap:11px; min-height:165px; }
.sys-cell .idx { font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; color:var(--ink-3); text-transform:uppercase; }
.sys-cell h5 { font-size:clamp(14px,1.3vw,18px); font-weight:500; margin:0; color:var(--ink); }
.sys-cell p { font-size:13px; line-height:1.55; color:var(--ink-3); margin:0; }
.sys-cell .dot-accent { width:6px; height:6px; background:var(--accent); border-radius:50%; margin-top:auto; }

/* ── DISCIPLINE MODULES (research page) ── */
.discipline { display:grid; grid-template-columns:1fr 2fr; gap:clamp(32px,5vw,80px); padding-top:var(--pad-y); padding-bottom:var(--pad-y); border-top:1px solid var(--rule); align-items:start; }
.disc-meta { display:flex; flex-direction:column; gap:13px; position:sticky; top:calc(60px + 26px); }
.disc-num { font-family:var(--mono); font-size:11px; letter-spacing:0.1em; color:var(--ink-3); text-transform:uppercase; }
.disc-status { display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-3); }
.disc-status::before { content:''; width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 2.4s ease-in-out infinite; }
.disc-h { font-size:clamp(20px,2.2vw,32px); font-weight:400; letter-spacing:-0.02em; line-height:1.1; margin:0; }
.disc-content { display:flex; flex-direction:column; gap:clamp(26px,3.2vw,40px); }
.disc-visual { width:100%; aspect-ratio:16/7; background:var(--surface-2); border:1px solid var(--rule); border-radius:4px; position:relative; overflow:hidden; }
.disc-visual .corner { position:absolute; font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-3); z-index:4; }
.disc-visual .corner.tl { top:14px; left:14px; display:flex; gap:8px; align-items:center; }
.disc-visual .corner.tl::before { content:""; width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 2.4s ease-in-out infinite; }
.disc-visual .corner.br { bottom:14px; right:14px; }
.disc-body { font-size:clamp(13.5px,1vw,15.5px); line-height:1.65; color:var(--ink-2); margin:0; max-width:58ch; }
.disc-areas { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:2px; overflow:hidden; }
.disc-area { background:var(--surface); padding:17px 19px; display:flex; flex-direction:column; gap:5px; }
.disc-area .a-idx { font-family:var(--mono); font-size:10px; letter-spacing:0.1em; color:var(--ink-3); text-transform:uppercase; }
.disc-area .a-lbl { font-size:13px; font-weight:500; color:var(--ink); line-height:1.3; }
.disc-area .a-sub { font-size:12px; color:var(--ink-3); line-height:1.45; margin-top:2px; }

/* ── ABOUT PAGE ── */
.origin { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5.5vw,80px); align-items:start; }
.origin-text { display:flex; flex-direction:column; gap:clamp(18px,2.2vw,28px); }
.origin-text p { margin:0; font-size:clamp(13.5px,1vw,15.5px); line-height:1.65; color:var(--ink-2); max-width:48ch; }
.origin-text p.lede { font-size:clamp(16px,1.35vw,20px); line-height:1.45; color:var(--ink); font-weight:400; }
.origin-visual { background:var(--surface-2); border:1px solid var(--rule); border-radius:4px; overflow:hidden; position:relative; aspect-ratio:4/3; }
.origin-visual img { width:100%; height:100%; object-fit:cover; display:block; }
.origin-visual .corner { position:absolute; font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-3); z-index:4; }
.origin-visual .corner.tl { top:14px; left:14px; display:flex; gap:8px; align-items:center; }
.origin-visual .corner.tl::before { content:""; width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 2.4s ease-in-out infinite; }
.origin-visual .corner.br { bottom:14px; right:14px; }
.pillars { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:2px; overflow:hidden; margin-top:clamp(36px,5vw,56px); }
.pillar { background:var(--surface); padding:clamp(20px,2.5vw,34px); display:flex; flex-direction:column; gap:10px; min-height:162px; }
.pillar .p-idx { font-family:var(--mono); font-size:10px; letter-spacing:0.1em; color:var(--ink-3); text-transform:uppercase; }
.pillar h4 { font-size:clamp(15px,1.3vw,19px); font-weight:500; margin:0; line-height:1.2; }
.pillar p { font-size:13px; line-height:1.55; color:var(--ink-3); margin:0; }
.pillar .dot-accent { width:6px; height:6px; background:var(--accent); border-radius:50%; margin-top:auto; }
.leadership-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(24px,3.8vw,48px); }
.leader-card { display:grid; grid-template-columns:145px 1fr; gap:clamp(18px,2vw,28px); align-items:start; }
.leader-photo { aspect-ratio:3/4; background:var(--surface-2); border:1px solid var(--rule); border-radius:3px; overflow:hidden; position:relative; }
.leader-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.leader-photo .photo-label { position:absolute; bottom:9px; left:9px; font-family:var(--mono); font-size:9px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-3); }
.leader-info { display:flex; flex-direction:column; gap:8px; padding-top:4px; }
.leader-name { font-size:clamp(16px,1.4vw,20px); font-weight:500; letter-spacing:-0.015em; margin:0; line-height:1.15; }
.leader-role { font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); }
.leader-bio { font-size:13px; line-height:1.6; color:var(--ink-2); margin:0; margin-top:4px; }
.team-block { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5.5vw,72px); align-items:start; }
.team-photo { background:var(--surface-2); border:1px solid var(--rule); border-radius:4px; overflow:hidden; position:relative; aspect-ratio:4/3; }
.team-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.team-photo .corner { position:absolute; font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:white; text-shadow:0 1px 3px rgba(0,0,0,0.4); z-index:4; }
.team-photo .corner.tl { top:14px; left:14px; }
.team-photo .corner.br { bottom:14px; right:14px; }
.team-text { display:flex; flex-direction:column; gap:clamp(16px,2vw,24px); padding-top:6px; }
.team-text p { margin:0; font-size:clamp(13px,0.98vw,15px); line-height:1.65; color:var(--ink-2); }
.values-list { display:flex; flex-direction:column; border-top:1px solid var(--rule); }
.value-row { display:grid; grid-template-columns:34px 1fr 2fr; gap:clamp(18px,2.8vw,40px); padding:24px 0; border-bottom:1px solid var(--rule); align-items:start; transition:padding-left 0.2s; }
.value-row:hover { padding-left:4px; }
.value-row .v-num { font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; color:var(--ink-3); padding-top:3px; }
.value-row .v-title { font-size:clamp(14px,1.2vw,17px); font-weight:500; line-height:1.25; color:var(--ink); }
.value-row .v-desc { font-size:13px; line-height:1.6; color:var(--ink-3); margin:0; }

/* ── CONTACT PAGE ── */
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(44px,7vw,104px); align-items:start; }
.inquiry-channels { display:flex; flex-direction:column; border-top:1px solid var(--rule); }
.inquiry-channel { display:grid; grid-template-columns:26px 1fr; gap:20px; padding:26px 0; border-bottom:1px solid var(--rule); align-items:start; transition:padding-left 0.2s; }
.inquiry-channel:hover { padding-left:4px; }
.inquiry-channel .ch-idx { font-family:var(--mono); font-size:10.5px; letter-spacing:0.1em; color:var(--ink-3); padding-top:3px; }
.inquiry-channel .ch-body { display:flex; flex-direction:column; gap:5px; }
.inquiry-channel .ch-title { font-size:clamp(14px,1.15vw,17px); font-weight:500; color:var(--ink); line-height:1.2; }
.inquiry-channel .ch-desc { font-size:13px; line-height:1.55; color:var(--ink-3); margin:0; }
.contact-details { display:flex; flex-direction:column; gap:clamp(32px,4.5vw,52px); position:sticky; top:calc(60px + 32px); }
.contact-block { display:flex; flex-direction:column; gap:13px; }
.contact-block-label { font-family:var(--mono); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-3); }
.contact-block-value { font-size:clamp(15px,1.3vw,19px); color:var(--ink); line-height:1.3; text-decoration:none; transition:color 200ms; display:block; }
a.contact-block-value:hover { color:var(--accent); }
.contact-block-sub { font-size:13px; color:var(--ink-3); line-height:1.5; margin:0; }
.social-links { display:flex; flex-direction:column; gap:9px; }
.social-link { display:inline-flex; align-items:center; gap:11px; font-size:13.5px; color:var(--ink-2); text-decoration:none; transition:color 200ms; }
.social-link:hover { color:var(--accent); }
.location-block { background:var(--surface-2); border:1px solid var(--rule); border-radius:4px; padding:clamp(18px,2.5vw,30px); display:flex; flex-direction:column; gap:11px; }
.location-label { font-family:var(--mono); font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-3); display:flex; align-items:center; gap:8px; }
.location-label::before { content:''; width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 2.4s ease-in-out infinite; }
.location-address { font-size:clamp(13px,1.05vw,15px); line-height:1.6; color:var(--ink); margin:0; }
.location-sub { font-size:12px; color:var(--ink-3); margin:0; font-family:var(--mono); }
.partnership-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:2px; overflow:hidden; }
.partnership-cell { background:var(--surface); padding:clamp(17px,2vw,28px); display:flex; flex-direction:column; gap:8px; min-height:148px; transition:background 200ms; }
.partnership-cell:hover { background:var(--surface-2); }
.p-idx { font-family:var(--mono); font-size:10px; letter-spacing:0.1em; color:var(--ink-3); text-transform:uppercase; }
.p-title { font-size:clamp(13px,1.1vw,15.5px); font-weight:500; color:var(--ink); line-height:1.25; }
.p-desc { font-size:12.5px; line-height:1.55; color:var(--ink-3); margin:0; }
.p-dot { width:6px; height:6px; background:var(--accent); border-radius:50%; margin-top:auto; }

/* ── REDUCED MOTION ── */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .reveal,.reveal-stagger>*,.reveal-fade { opacity:1 !important; transform:none !important; }
}

/* ── RESPONSIVE ── */
@media (max-width:1100px) {
  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-right { min-height:55vh; }
  .cards-3 { grid-template-columns:1fr; }
  .research-grid { grid-template-columns:repeat(2,1fr); }
  .metrics { grid-template-columns:repeat(2,1fr); }
  .future .grid { grid-template-columns:1fr; }
  .foot-top { grid-template-columns:1fr 1fr; }
  .section-head { grid-template-columns:1fr; align-items:start; gap:22px; }
  .platform-block { grid-template-columns:1fr; }
  .platform-block.reverse { direction:ltr; }
  .parallax-content { grid-template-columns:1fr; }
  .ntnb-inner { grid-template-columns:1fr; }
  .discipline { grid-template-columns:1fr; }
  .disc-meta { position:static; }
  .leadership-grid { grid-template-columns:1fr; }
  .leader-card { grid-template-columns:130px 1fr; }
  .team-block { grid-template-columns:1fr; }
  .contact-layout { grid-template-columns:1fr; }
  .contact-details { position:static; }
  .origin { grid-template-columns:1fr; }
  .img-strip { height:clamp(160px,22vw,280px); grid-template-columns:1fr 1fr; }
  .img-strip-item:last-child { display:none; }
  .partnership-grid { grid-template-columns:repeat(2,1fr); }
  .philosophy .grid { grid-template-columns:1fr; }
  .sys-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px) {
  .nav-links { display:none; }
  .research-grid { grid-template-columns:1fr; }
  .metrics { grid-template-columns:1fr 1fr; }
  .foot-top { grid-template-columns:1fr; }
  .hero-bottom { grid-template-columns:1fr; }
  .img-strip { grid-template-columns:1fr; height:200px; }
  .img-strip-item:not(:first-child) { display:none; }
  .disc-areas { grid-template-columns:1fr; }
  .pillars { grid-template-columns:1fr; }
  .ntnb-caps { grid-template-columns:1fr; }
  .partnership-grid { grid-template-columns:1fr; }
  .value-row { grid-template-columns:26px 1fr; }
  .value-row .v-desc { display:none; }
  .sys-grid { grid-template-columns:1fr; }
}


/* ══════════════════════════════════════════════════════════════
   FULL-BLEED DARK HERO
   ══════════════════════════════════════════════════════════════ */
.hero-dark {
  position: relative;
  min-height: 100vh;
  padding-top: 0;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--black);
}
.hero-bg-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 35%;
  opacity: 0.42;
  display: block;
  transition: transform 10s ease-out;
  z-index: 0;
}
.hero-dark:hover .hero-bg-img { transform: scale(1.025); }
.hero-bg-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(
    110deg,
    rgba(0,0,0,0.82) 0%,
    rgba(0,0,0,0.55) 50%,
    rgba(0,0,0,0.25) 100%
  );
}
/* grid overlay */
.hero-dark::before {
  content: '';
  position: absolute; inset: 0; z-index: 2;
  background:
    repeating-linear-gradient(0deg, transparent, transparent 59px, rgba(255,255,255,0.016) 60px),
    repeating-linear-gradient(90deg, transparent, transparent 59px, rgba(255,255,255,0.016) 60px);
  pointer-events: none;
}
/* Reticle — positioned right side */
#hero-reticle {
  position: absolute;
  right: 18%;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(200px, 28vw, 380px);
  height: clamp(200px, 28vw, 380px);
  z-index: 3;
  pointer-events: none;
  opacity: 0.7;
  transition: transform 0.15s ease-out, right 0.15s ease-out;
}
#hero-reticle svg { width: 100%; height: 100%; }

/* Hero content */
.hero-content {
  position: relative; z-index: 4;
  padding: clamp(100px,12vw,140px) var(--pad-x) clamp(60px,8vw,100px);
  max-width: min(720px, 60vw);
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.hero-dark .hero-eyebrow {
  display: flex; gap: 10px; align-items: center;
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.5);
}
.hero-dark h1 {
  font-size: clamp(40px, 5.5vw, 80px);
  line-height: 1.0; letter-spacing: -0.03em;
  font-weight: 400; margin: 0; color: white;
}
.hero-dark h1 .em { font-style: italic; color: var(--accent); }
.hero-dark .hero-support {
  font-size: clamp(15px, 1.1vw, 17px);
  line-height: 1.65; color: rgba(255,255,255,0.68);
  max-width: 52ch; margin: 0;
}
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.btn-hero-ghost {
  display: inline-flex; align-items: center; gap: 10px;
  height: 44px; padding: 0 20px; border-radius: 999px;
  font-family: var(--font); font-size: 13.5px; font-weight: 500;
  white-space: nowrap; cursor: pointer; text-decoration: none;
  background: transparent; color: white;
  border: 1px solid rgba(255,255,255,0.28);
  transition: border-color 200ms, background 200ms, transform 150ms;
}
.btn-hero-ghost:hover { border-color: white; background: rgba(255,255,255,0.06); transform: translateY(-1px); }
.btn-hero-ghost [data-lucide] { transition: transform 200ms; }
.btn-hero-ghost:hover [data-lucide] { transform: translateX(2px); }
.hero-dark .hero-bottom {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 16px; padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,0.12);
}
.hero-dark .hero-bottom .item { display: flex; flex-direction: column; gap: 5px; }
.hero-dark .hero-bottom .k {
  font-family: var(--mono); font-size: 10px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,0.35);
}
.hero-dark .hero-bottom .v {
  font-size: 13px; color: rgba(255,255,255,0.82);
  display: flex; align-items: center; gap: 6px;
}
/* Corner labels */
.hero-corner-tl, .hero-corner-br {
  position: absolute;
  font-family: var(--mono); font-size: 10px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,0.35); z-index: 4;
}
.hero-corner-tl { top: 76px; left: var(--pad-x); display: flex; gap: 8px; align-items: center; }
.hero-corner-tl::before {
  content: ""; width: 6px; height: 6px;
  background: var(--accent); border-radius: 50%;
  animation: pulse 2.4s ease-in-out infinite;
}
.hero-corner-br { bottom: 28px; right: var(--pad-x); }

/* Nav: solid by default on all pages */
.nav { background: color-mix(in oklab,var(--surface) 92%,transparent); backdrop-filter:saturate(160%) blur(14px); -webkit-backdrop-filter:saturate(160%) blur(14px); border-bottom-color:var(--rule); }
/* Nav dark mode: only when .nav-on-dark class present (homepage only) */
.nav.nav-on-dark:not(.solid) { background: transparent; backdrop-filter:none; -webkit-backdrop-filter:none; border-bottom-color:transparent; }
.nav.nav-on-dark:not(.solid) .nav-logo svg path { fill: white; }
.nav.nav-on-dark:not(.solid) .nav-links a { color: rgba(255,255,255,0.7); }
.nav.nav-on-dark:not(.solid) .nav-links a:hover { color: white; }
.nav.nav-on-dark:not(.solid) .nav-links a.active { color: var(--accent); }
.nav.nav-on-dark:not(.solid) .lang-toggle { border-color: rgba(255,255,255,0.25); color: rgba(255,255,255,0.6); }
.nav.nav-on-dark:not(.solid) .lang-toggle:hover { border-color: white; color: white; }
.nav.nav-on-dark:not(.solid) .btn-primary { background: var(--accent); border-color: var(--accent); color: white; }

/* ══════════════════════════════════════════════════════════════
   MOUSE CURSOR
   ══════════════════════════════════════════════════════════════ */
@media (pointer: fine) {
  *, a, button { cursor: none !important; }
}
#cursor-dot {
  position: fixed;
  width: 7px; height: 7px;
  background: var(--accent);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: width 200ms, height 200ms, background 200ms;
  top: 0; left: 0;
}
#cursor-ring {
  position: fixed;
  width: 34px; height: 34px;
  border: 1.5px solid var(--accent);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%);
  opacity: 0.55;
  transition: width 250ms ease, height 250ms ease, opacity 250ms ease, border-color 250ms ease;
  top: 0; left: 0;
}
body.cursor-hover #cursor-dot { width: 10px; height: 10px; }
body.cursor-hover #cursor-ring { width: 50px; height: 50px; opacity: 0.7; }
body.cursor-dark #cursor-dot { background: white; }
body.cursor-dark #cursor-ring { border-color: white; }

/* ══════════════════════════════════════════════════════════════
   TEXT VISIBILITY IMPROVEMENTS
   ══════════════════════════════════════════════════════════════ */
/* Slightly darker muted text — better contrast */
:root { --ink-3: oklch(0.46 0.006 70); }

/* Base body text size bump */
body { font-size: 16px; }

/* Card body text */
.card-body p { font-size: 15px !important; line-height: 1.6 !important; }
.card-list li { font-size: 12.5px !important; letter-spacing: 0.01em !important; }

/* Section descriptions */
.section-head .h2 { font-size: clamp(28px, 3.8vw, 52px); }

/* Metric labels */
.metric .k { font-size: 11px; }

/* Research cell text */
.research-cell p { font-size: 14px; }
.research-cell h4 { font-size: clamp(17px,1.5vw,21px); }

/* Eyebrow */
.eyebrow { font-size: 11.5px; }

/* Body copy in sections */
.parallax-section p { font-size: clamp(14px, 1.1vw, 16px); }
.future p { font-size: clamp(15px, 1.1vw, 16.5px); }
.ntnb-section p { font-size: clamp(14px, 1.1vw, 16px); }
.ntnb-fact .f-text { font-size: 13.5px; }
.ntnb-cap .c-title { font-size: 13.5px; }
.ntnb-cap .c-sub { font-size: 12.5px; }
.final-cta p { font-size: clamp(15px, 1.2vw, 18px); }

/* Footer text */
.foot-mark p { font-size: 14px; }
.foot-col a { font-size: 14px; }
.foot-col a { gap: 9px; }

/* ══════════════════════════════════════════════════════════════
   FOOTER LOGO LEFT-ALIGN (definitive fix)
   ══════════════════════════════════════════════════════════════ */
.foot-mark {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 20px;
}
.foot-mark svg {
  height: 22px;
  width: auto;
  display: block;
  /* never stretch or center */
  align-self: flex-start;
  flex-shrink: 0;
}
.foot-col ul { gap: 11px; }

/* ── FOOTER LEGAL ───────────────────────────────────────── */
.foot-bottom { flex-wrap: wrap; gap: 16px; }
.foot-legal { display: flex; flex-direction: column; gap: 5px; }
.foot-legal span { font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; color: rgba(255,255,255,0.3); line-height: 1.5; }
.foot-legal-zh { color: rgba(255,255,255,0.22) !important; }
.foot-credit { font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; color: rgba(255,255,255,0.25); white-space: nowrap; }
.foot-credit a { color: rgba(255,255,255,0.4); text-decoration: none; transition: color 200ms; }
.foot-credit a:hover { color: var(--accent); }

/* ── FOOTER INLINE SVG ICONS ────────────────────────────── */
.foot-col a svg { opacity: 0.8; flex-shrink: 0; transition: opacity 200ms; }
.foot-col a:hover svg { opacity: 1; }
/* Social links flex */
.foot-col a { display: flex; align-items: center; gap: 9px; }
/* Legal block */
.foot-legal { display: flex; flex-direction: column; gap: 5px; max-width: 70%; }
.foot-legal span { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.06em; color: rgba(255,255,255,0.3); line-height: 1.6; }
.foot-legal-zh { color: rgba(255,255,255,0.2) !important; }
.foot-credit { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.06em; color: rgba(255,255,255,0.25); white-space: nowrap; }
.foot-credit a { color: rgba(255,255,255,0.4); text-decoration: none; transition: color 200ms; }
.foot-credit a:hover { color: var(--accent); }
