@font-face{font-family:'Newsreader';font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/newsreader-latin-opsz-normal.woff2) format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/geist-latin-wght-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-500-normal.woff2) format('woff2')}
/* K2 Capital, built on the Ascentia template */
:root {
  --ink-0: #02060E; --ink-1: #050D1C; --ink-2: #08152B; --ink-3: #0E2142;
  --text: #EEF3FF; --muted: #93A3C2; --dim: #5E6E8C;
  --line-d: rgba(160, 190, 255, .12); --line-d2: rgba(160, 190, 255, .2);
  --glow: #8CC3FF; --glow-2: #4D8DFF; --ice: #CFE3FF; --brand: #20509A;
  --paper: #F3F5F8; --paper-2: #E7EBF2; --paper-3: #DCE2EB; --ink: #0A1326; --muted-l: #5A6478; --line-l: rgba(10, 19, 38, .1);
  --up: #34D399; --dn: #FF5A6A;
  --f-disp: 'Newsreader', 'Iowan Old Style', Georgia, serif;
  --f-body: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --gut: 24px; --nav-h: 56px;
  --ease: cubic-bezier(.2, .7, .1, 1);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
img { max-width: 100%; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 70px; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
body { margin: 0; background: var(--ink-0); color: var(--text); font-family: var(--f-body); font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; }
body::after { content: ""; position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: .07; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
img, video, svg, canvas { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
::selection { background: var(--glow); color: var(--ink-0); }
:focus-visible { outline: 2px solid var(--glow); outline-offset: 3px; border-radius: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 200; background: var(--glow); color: var(--ink-0); padding: 10px 14px; border-radius: 8px; font-weight: 500; }
.skip:focus { top: 12px; }
.wrap { width: 100%; max-width: 1488px; margin: 0 auto; padding: 0 var(--gut); }
.ic { width: 18px; height: 18px; flex: none; }
section { position: relative; }

/* type */
.h-hero, .h-sec, .h-cta, .st-text, .q-text, .ctr strong, .foot-tag, .seal-ring b { font-family: var(--f-disp); font-weight: 340; font-optical-sizing: auto; font-variation-settings: "opsz" 72; letter-spacing: -.035em; }
.h-hero { font-size: clamp(44px, 5.2vw, 78px); line-height: .98; margin: 0; max-width: 12.5ch; }
.h-sec { font-size: clamp(34px, 3.7vw, 54px); line-height: 1.02; margin: 0; }
.h-sec.center, .center { text-align: center; }
.eyebrow { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--glow); margin: 0; white-space: nowrap; }
.eyebrow.dark { color: var(--muted-l); }
.sim { display: inline-flex; align-items: center; gap: 8px; font-family: var(--f-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--dim); margin: 0; }
.sim i { width: 6px; height: 6px; border-radius: 50%; background: var(--glow); box-shadow: 0 0 10px var(--glow); }
.light .sim { color: var(--muted-l); }
.light .sim i { background: var(--glow-2); box-shadow: none; }

/* buttons */
.pill { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; padding: 0 17px; border-radius: 999px; font-size: 14.5px; font-weight: 450; white-space: nowrap; transition: background .3s var(--ease), color .3s, transform .3s var(--ease), box-shadow .3s; }
.pill:active { transform: scale(.97); }
.pill-glow { background: var(--glow); color: #04122A; }
.pill-glow:hover { background: #A9D4FF; box-shadow: 0 0 0 4px rgba(140, 195, 255, .18), 0 8px 30px -6px rgba(110, 170, 255, .55); }
.pill-dark { background: rgba(160, 190, 255, .1); color: var(--text); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.pill-dark:hover { background: rgba(160, 190, 255, .18); }
.pill-line { border: 1px solid var(--line-d2); color: var(--text); height: 34px; font-size: 13.5px; }
.pill-line:hover { background: var(--text); color: var(--ink-0); }
.btns { display: flex; gap: 8px; flex-wrap: wrap; }

/* nav */
.nav { position: fixed; inset: 0 0 auto; z-index: 80; height: var(--nav-h); border-bottom: 1px solid var(--line-d); background: rgba(2, 6, 14, .28); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); transition: background .45s, border-color .45s, color .45s; }
.nav-in { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; position: relative; }
.brand-logo { height: 27px; width: auto; aspect-ratio: 1694/262; color: var(--text); transition: color .45s; }
.nav-links { position: absolute; left: 50%; transform: translateX(-50%); display: flex; gap: 34px; font-size: 14.5px; color: rgba(238, 243, 255, .8); white-space: nowrap; }
.nav-links a { position: relative; transition: color .25s; }
.nav-links a:hover, .nav-links a.is-on { color: var(--text); }
.nav-links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.nav-links a.is-on::after { transform: scaleX(1); }
.nav-cta { display: flex; align-items: center; gap: 22px; }
.nav-text { font-size: 14.5px; color: rgba(238, 243, 255, .85); }
.nav-text:hover { color: var(--text); }
.pill-nav { height: 32px; padding: 0 16px; background: var(--text); color: var(--ink-0); font-size: 14px; }
.pill-nav:hover { background: var(--glow); }
.nav-menu { display: none; width: 36px; height: 36px; border-radius: 50%; position: relative; background: rgba(160, 190, 255, .1); }
.nav-menu span { position: absolute; left: 11px; right: 11px; height: 1.5px; background: currentColor; transition: transform .35s var(--ease); }
.nav-menu span:first-child { top: 14px; } .nav-menu span:last-child { top: 20px; }
.nav-menu[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
.nav-menu[aria-expanded="true"] span:last-child { transform: translateY(-3px) rotate(-45deg); }
.nav.is-light { background: rgba(243, 245, 248, .72); border-color: var(--line-l); color: var(--ink); }
.nav.is-light .brand-logo { color: var(--ink); }
.nav.is-light .nav-links, .nav.is-light .nav-text { color: rgba(10, 19, 38, .7); }
.nav.is-light .nav-links a:hover, .nav.is-light .nav-links a.is-on, .nav.is-light .nav-text:hover { color: var(--ink); }
.nav.is-light .pill-nav { background: var(--ink); color: var(--paper); }
.nav.is-light .pill-nav:hover { background: var(--brand); }
.nav.is-light .nav-menu { background: rgba(10, 19, 38, .07); }
.sheet { position: fixed; inset: var(--nav-h) 0 auto; z-index: 79; background: rgba(5, 13, 28, .96); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line-d); }
.sheet-in { display: flex; flex-direction: column; padding-top: 12px; padding-bottom: 24px; }
.sheet-in a:not(.pill) { font-family: var(--f-disp); font-size: 30px; font-weight: 340; letter-spacing: -.02em; padding: 10px 0; border-bottom: 1px solid var(--line-d); }
.sheet-in .pill { margin-top: 20px; align-self: flex-start; }

/* hero */
.hero { height: 100svh; min-height: 680px; max-height: 1100px; overflow: hidden; background: radial-gradient(120% 70% at 50% 8%, #0B1D3D 0%, #061024 45%, var(--ink-0) 100%); isolation: isolate; }
.hero-gl { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.hero-fallback { position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 40% at 60% 62%, rgba(79, 141, 255, .35), transparent 70%), radial-gradient(40% 30% at 30% 80%, rgba(32, 80, 154, .5), transparent 70%); }
.hero::after { content: ""; position: absolute; inset: auto 0 0; height: 46%; z-index: 1; pointer-events: none; background: linear-gradient(to bottom, transparent, rgba(2, 6, 14, .55) 55%, rgba(2, 6, 14, .9)); }
.hero-marks { position: absolute; z-index: 2; left: 0; right: 0; top: 40%; height: 1px; background: linear-gradient(90deg, transparent, rgba(160, 200, 255, .22) 8%, rgba(160, 200, 255, .22) 92%, transparent); pointer-events: none; }
.sweep { position: absolute; top: -1px; height: 3px; width: 160px; left: 0; margin-left: -80px; background: linear-gradient(90deg, transparent, var(--glow), transparent); filter: blur(1px); opacity: .9; transition: left 1.4s var(--ease); }
.hm { position: absolute; top: 0; transform: translate(-50%, 0); padding-top: 10px; font-size: 13.5px; color: rgba(238, 243, 255, .72); white-space: nowrap; transition: color .5s; }
.hm i { position: absolute; left: 50%; top: -3px; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; background: var(--glow); box-shadow: 0 0 0 0 rgba(140, 195, 255, .5); transition: box-shadow .5s, transform .5s; }
.hm.is-on { color: var(--text); }
.hm.is-on i { transform: scale(1.3); box-shadow: 0 0 0 5px rgba(140, 195, 255, .18), 0 0 14px var(--glow); }
.hm[data-k="0"] { left: 8%; } .hm[data-k="1"] { left: 23%; } .hm[data-k="2"] { left: 77%; } .hm[data-k="3"] { left: 92%; }
.stack { position: absolute; z-index: 3; left: 0; right: 0; top: 40%; width: 380px; margin: -22px auto 0; }
.stack-cards { position: relative; height: 112px; perspective: 900px; }
.scard { position: absolute; left: 0; right: 0; top: 0; display: flex; align-items: center; gap: 12px; padding: 12px 12px; border-radius: 14px; color: var(--ink); background: rgba(236, 242, 252, .86); -webkit-backdrop-filter: blur(16px) saturate(150%); backdrop-filter: blur(16px) saturate(150%); box-shadow: 0 20px 50px -16px rgba(0, 10, 30, .65), inset 0 1px 0 rgba(255, 255, 255, .7); transform-origin: 50% 0; will-change: transform, opacity; }
.scard .si { width: 38px; height: 38px; border-radius: 9px; background: linear-gradient(160deg, #10264A, #050D1C); display: grid; place-items: center; flex: none; box-shadow: inset 0 0 0 1px rgba(160, 200, 255, .2); }
.scard .si svg { width: 24px; height: auto; color: var(--glow); }
.scard .st { flex: 1; min-width: 0; }
.scard b { display: block; font-weight: 500; font-size: 14.5px; letter-spacing: -.005em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.scard small { display: block; color: var(--muted-l); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.scard em { font-style: normal; font-size: 11.5px; padding: 3px 8px; border-radius: 999px; background: rgba(10, 19, 38, .07); color: #2B3A55; align-self: flex-start; white-space: nowrap; }
.hero-copy { position: absolute; z-index: 3; left: 0; right: 0; bottom: 56px; margin: 0 auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.hero-side { max-width: 500px; padding-bottom: 6px; }
.hero-side p { margin: 0 0 22px; font-size: 16px; line-height: 1.55; color: rgba(238, 243, 255, .82); }
.hero-scroll { position: absolute; z-index: 3; left: 50%; bottom: 18px; width: 1px; height: 26px; background: rgba(238, 243, 255, .15); overflow: hidden; }
.hero-scroll i { position: absolute; left: 0; top: -40%; width: 1px; height: 40%; background: var(--text); animation: drip 2.2s var(--ease) infinite; }
@keyframes drip { to { top: 110%; } }

/* statement (pinned) */
.statement { height: 100vh; min-height: 640px; overflow: hidden; display: grid; place-items: center; }
.st-bg { position: absolute; inset: 0 0 -14% 0; background: linear-gradient(180deg, var(--ink-0) 0%, #061227 38%, #0B2A5C 72%, #2F6FE0 100%); }
.st-bg::after { content: ""; position: absolute; inset: auto -10% -30% -10%; height: 70%; background: radial-gradient(50% 60% at 50% 100%, rgba(140, 195, 255, .75), rgba(79, 141, 255, .25) 50%, transparent 75%); filter: blur(20px); }
.tiles { position: absolute; inset: 0; z-index: 1; pointer-events: none; perspective: 1200px; }
.statement::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 34%; background: linear-gradient(180deg, rgba(2, 6, 14, 0), rgba(2, 6, 14, .55) 45%, var(--ink-0)); pointer-events: none; }
.tile { position: absolute; width: var(--s, 92px); aspect-ratio: 1; transform-style: preserve-3d; will-change: transform; }
.tile .tf { position: absolute; inset: 0; border-radius: 4px; overflow: hidden; background: #06132A center/cover no-repeat; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .7), inset 0 0 0 1px rgba(170, 205, 255, .25); transform: rotateX(var(--rx, 40deg)) rotateY(var(--ry, -30deg)) rotateZ(var(--rz, 30deg)); }
.tile .tf::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255, 255, 255, .18), transparent 40%, rgba(0, 0, 0, .3)); }
.tile .tl { position: absolute; left: calc(100% + 8px); top: 0; writing-mode: vertical-rl; font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: rgba(207, 227, 255, .55); white-space: nowrap; }
.st-chips { position: absolute; inset: 0; pointer-events: none; }
.chipc { position: absolute; display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 11px 0 6px; border-radius: 999px; background: rgba(236, 242, 252, .9); color: var(--ink); font-size: 12.5px; font-weight: 500; box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .5); opacity: 0; }
.chipc em { font-style: normal; font-weight: 400; color: var(--muted-l); }
.dotg { width: 16px; height: 16px; border-radius: 50%; display: block; }
.dotg.a { background: radial-gradient(circle at 35% 35%, #BFD6FF, #2F6FE0); }
.dotg.b { background: radial-gradient(circle at 35% 35%, #9AF0CF, #129A70); }
.dotg.c { background: radial-gradient(circle at 35% 35%, #FFE3A6, #D9892B); }
.chipc .cur { position: absolute; width: 16px; height: 16px; color: var(--text); filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .5)); }
.c1 { left: 58%; top: 26%; } .c1 .cur { right: -12px; bottom: -14px; }
.c2 { left: 20%; top: 62%; } .c2 .cur { left: -12px; top: -14px; transform: scaleX(-1); }
.c3 { left: 66%; top: 70%; } .c3 .cur { right: -14px; top: -12px; }
.st-text-wrap { position: relative; z-index: 2; width: 100%; max-width: 920px; padding: 0 var(--gut); }
.st-text { margin: 0; text-align: center; font-size: clamp(30px, 3.4vw, 50px); line-height: 1.12; color: var(--text); }
.st-text .ln { display: block; }
.st-text .w { display: inline-block; }
.st-text .hl .w { color: var(--ice); }

/* metrics */
.metrics { min-height: 100vh; display: flex; overflow: hidden; background: var(--ink-0); }
.mt-bg { position: absolute; inset: 0; overflow: hidden; }
.mt-bg i { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .75; }
.mt-bg i:nth-child(1) { width: 70vw; height: 22vw; left: -8vw; top: 38%; background: linear-gradient(90deg, transparent, #2F6FE0 40%, #6FA8FF 60%, transparent); transform: rotate(-12deg); animation: wave 18s ease-in-out infinite alternate; }
.mt-bg i:nth-child(2) { width: 60vw; height: 14vw; right: -10vw; top: 30%; background: linear-gradient(90deg, transparent, #20509A 30%, #6FA8FF 55%, transparent); opacity: .5; transform: rotate(14deg); animation: wave 22s ease-in-out infinite alternate-reverse; }
.mt-bg i:nth-child(3) { width: 50vw; height: 12vw; left: 20vw; top: 55%; background: linear-gradient(90deg, transparent, #0E2142, #2F6FE0, transparent); opacity: .55; animation: wave 26s ease-in-out infinite alternate; }
@keyframes wave { 0% { translate: 0 0; } 50% { translate: 6vw -3vh; } 100% { translate: -4vw 4vh; } }
.mt-in { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding-top: 22vh; padding-bottom: 64px; gap: 80px; }
.metrics .h-sec { font-size: clamp(38px, 4.2vw, 62px); }
.counters { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.ctr strong { display: flex; justify-content: center; align-items: baseline; font-size: clamp(38px, 3.9vw, 58px); line-height: 1.1; height: 1.1em; overflow: hidden; color: var(--text); }
.ctr strong .dg { display: inline-block; height: 1.1em; overflow: hidden; }
.ctr strong .dg > span { display: block; will-change: transform; }
.ctr strong .dg > span > span { display: block; height: 1.1em; }
.ctr strong .sx { display: inline-block; }
.ctr strong .unit { font-size: .45em; margin-left: .2em; letter-spacing: 0; color: var(--muted); font-family: var(--f-body); font-weight: 400; }
.ctr > span { display: block; margin-top: 10px; color: var(--muted); font-size: 13.5px; }
.metrics .sim { align-self: center; }

/* section header pattern */
.suite, .methods, .strategies, .quote { background: var(--ink-0); }
.suite { padding: 120px 0 120px; }
.sec-top { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 24px; margin-bottom: 56px; }
.sec-top .eyebrow { padding-top: 14px; }
.sec-top-main { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }

/* suite */
.suite-grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 24px; align-items: start; }
.tabsv { list-style: none; margin: 0; padding: 0; position: sticky; top: 96px; }
.tabsv li { border-bottom: 1px solid var(--line-d); }
.tabsv button { display: block; width: 100%; text-align: left; padding: 16px 0; font-size: 15px; color: rgba(238, 243, 255, .78); transition: color .3s; }
.tabsv button:hover { color: var(--text); }
.tabsv .tdesc { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease); }
.tabsv .tdesc > p { overflow: hidden; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.tabsv li.is-on button { color: var(--text); }
.tabsv li.is-on button::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 10px; vertical-align: 2px; background: var(--glow); box-shadow: 0 0 10px var(--glow); }
.tabsv li.is-on .tdesc { grid-template-rows: 1fr; }
.tabsv li.is-on .tdesc > p { padding-bottom: 18px; }
.cards6 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 8px; }
.grp-label { display: none; }
.mcard { min-width: 0; }
.mcard .mv { position: relative; height: 330px; overflow: hidden; background: #071226; isolation: isolate; }
.mcard .mv::before { content: ""; position: absolute; inset: -20%; z-index: -1; background: radial-gradient(40% 35% at var(--bx, 30%) var(--by, 70%), rgba(47, 111, 224, .55), transparent 70%), radial-gradient(35% 30% at var(--cx, 75%) var(--cy, 25%), rgba(111, 168, 255, .3), transparent 70%), linear-gradient(180deg, #071226, #0A1C3C); filter: blur(10px); transition: transform 1.2s var(--ease); }
.mcard:hover .mv::before { transform: scale(1.08) rotate(3deg); }
.mcard .mv::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(160, 200, 255, 0); transition: box-shadow .5s; }
.mcard.is-hot .mv::after { box-shadow: inset 0 0 0 1px rgba(160, 200, 255, .35); }
.mcard h3 { margin: 16px 0 6px; font-weight: 450; font-size: 15px; letter-spacing: -.005em; }
.mcard p { margin: 0 0 30px; color: var(--muted); font-size: 14px; line-height: 1.5; max-width: 40ch; }
/* glass widgets inside suite cards */
.wg { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(84%, 300px); color: var(--ink); font-size: 13px; }
.gl { background: rgba(236, 242, 252, .9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-radius: 12px; box-shadow: 0 24px 50px -18px rgba(0, 8, 26, .7), inset 0 1px 0 rgba(255, 255, 255, .7); }
.gl-d { background: rgba(5, 13, 28, .82); color: var(--text); border-radius: 12px; box-shadow: 0 24px 50px -18px rgba(0, 0, 0, .8), inset 0 0 0 1px rgba(160, 200, 255, .16); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.wg-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.wg .mono { font-family: var(--f-mono); font-size: 11.5px; }
.wg .lbl { color: var(--muted-l); font-size: 12px; }
.gl-d .lbl { color: var(--muted); }
.chip { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; padding: 3px 8px; border-radius: 999px; background: rgba(10, 19, 38, .07); white-space: nowrap; }
.chip.up { background: rgba(52, 211, 153, .16); color: #0B7A53; }
.gl-d .chip { background: rgba(160, 190, 255, .12); color: var(--ice); }
.spin { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid rgba(10, 19, 38, .18); border-top-color: var(--ink); animation: spin .9s linear infinite; }
.gl-d .spin { border-color: rgba(238, 243, 255, .2); border-top-color: var(--text); }
@keyframes spin { to { transform: rotate(360deg); } }
/* alpha */
.w-alpha .ghost { position: absolute; left: 10px; right: 10px; padding: 10px 12px; opacity: .5; transform: scale(.95); }
.w-alpha .ghost.g1 { top: -26px; opacity: .35; transform: scale(.9); }
.w-alpha .main { position: relative; padding: 12px 12px; }
.w-alpha .formula { font-family: var(--f-mono); font-size: 11.5px; line-height: 1.45; color: #13213D; min-height: 34px; margin: 0 0 10px; word-break: break-word; }
.w-alpha .formula .car { display: inline-block; width: 6px; height: 13px; background: var(--brand); vertical-align: -2px; animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.w-alpha .tally { margin-top: 10px; display: flex; justify-content: space-between; font-family: var(--f-mono); font-size: 10.5px; color: rgba(238, 243, 255, .75); padding: 0 4px; }
/* forecast */
.w-fc { padding: 12px 12px 10px; }
.w-fc svg { width: 100%; height: 120px; margin: 8px 0 6px; overflow: visible; }
/* depth ladder */
.w-lob { padding: 10px 12px; }
.lob { display: grid; gap: 3px; margin: 8px 0; font-family: var(--f-mono); font-size: 11px; }
.lob div { position: relative; display: flex; justify-content: space-between; padding: 2px 6px; border-radius: 3px; overflow: hidden; }
.lob div i { position: absolute; top: 0; bottom: 0; right: 0; width: var(--d, 40%); border-radius: 3px; transition: width .6s var(--ease); z-index: -1; }
.lob div { isolation: isolate; }
.lob .a i { background: rgba(255, 90, 106, .16); }
.lob .b i { background: rgba(52, 211, 153, .18); left: 0; right: auto; }
.lob .mid { justify-content: center; color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.lob .hd { color: var(--muted); font-size: 10px; letter-spacing: .08em; padding-top: 0; padding-bottom: 0; }
/* greeks */
.w-vol { padding: 12px; }
.greeks { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 10px; }
.greeks div { background: rgba(10, 19, 38, .05); border-radius: 8px; padding: 7px 9px; }
.greeks span { display: block; color: var(--muted-l); font-size: 11px; }
.greeks b { font-family: var(--f-mono); font-weight: 500; font-size: 13.5px; }
.w-vol svg { width: 100%; height: 64px; margin-top: 6px; }
/* hrp */
.w-hrp { padding: 12px; }
.w-hrp svg { width: 100%; height: 118px; margin: 8px 0 4px; }
/* execution */
.w-exec { padding: 14px 14px 12px; }
.w-exec .big { font-family: var(--f-mono); font-size: 18px; font-weight: 500; margin: 2px 0 10px; letter-spacing: -.02em; }
.track { height: 6px; border-radius: 6px; background: rgba(238, 243, 255, .1); overflow: hidden; }
.track i { display: block; height: 100%; width: 0; border-radius: 6px; background: linear-gradient(90deg, var(--glow-2), var(--glow)); box-shadow: 0 0 12px rgba(140, 195, 255, .6); }
.w-exec .stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 12px; }
.w-exec .stats div { font-family: var(--f-mono); font-size: 12.5px; }
.w-exec .stats span { display: block; font-family: var(--f-body); color: var(--muted); font-size: 10.5px; }
/* var */
.w-var { padding: 12px; }
.hist { display: flex; align-items: flex-end; gap: 2px; height: 92px; margin: 10px 0 8px; }
.hist i { flex: 1; background: rgba(32, 80, 154, .55); border-radius: 2px 2px 0 0; height: var(--h); transform-origin: bottom; }
.hist i.t { background: rgba(255, 90, 106, .75); }
/* cpcv */
.w-cv { padding: 12px; }
.folds { display: grid; gap: 3px; margin: 10px 0 8px; }
.folds div { display: grid; grid-template-columns: repeat(10, 1fr); gap: 3px; }
.folds i { height: 9px; border-radius: 2px; background: rgba(32, 80, 154, .35); }
.folds i.te { background: var(--glow-2); }
.folds i.em { background: rgba(10, 19, 38, .12); }
/* regimes */
.w-reg { padding: 12px; }
.w-reg svg { width: 100%; height: 96px; margin: 8px 0 6px; }
.reg-key { display: flex; gap: 12px; font-size: 11px; color: var(--muted); }
.reg-key i { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 4px; vertical-align: -1px; }

/* methods */
.methods { padding: 110px 0 120px; overflow: hidden; }
.methods-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 40px; align-items: center; }
.methods-copy p { color: var(--muted); max-width: 40ch; margin: 18px 0 26px; font-size: 15.5px; }
.mgrid-wrap { position: relative; -webkit-mask-image: radial-gradient(closest-side, #000 52%, transparent 100%); mask-image: radial-gradient(closest-side, #000 52%, transparent 100%); }
.mgrid { display: grid; grid-template-columns: repeat(9, 1fr); gap: 8px; padding: 10px; }
.mt { aspect-ratio: 1; border-radius: 10px; display: grid; place-items: center; font-family: var(--f-mono); font-size: 11px; letter-spacing: .02em; color: rgba(207, 227, 255, .66); background: rgba(160, 190, 255, .045); box-shadow: inset 0 0 0 1px rgba(160, 190, 255, .07); transition: background .4s, color .4s, box-shadow .4s, transform .4s var(--ease); cursor: default; text-align: center; line-height: 1.1; padding: 2px; }
.mt:hover, .mt.is-ping { background: rgba(140, 195, 255, .14); color: var(--text); box-shadow: inset 0 0 0 1px rgba(160, 200, 255, .35), 0 0 24px -4px rgba(110, 170, 255, .4); }
.mt:hover { transform: translateY(-2px); }
.mt.core { background: var(--glow); box-shadow: 0 0 0 6px rgba(140, 195, 255, .12), 0 0 50px rgba(110, 170, 255, .55); }
.mt.core svg { width: 70%; height: auto; color: #04122A; }
.mt.blank { background: transparent; box-shadow: inset 0 0 0 1px rgba(160, 190, 255, .04); }

/* strategies */
.strategies { padding: 100px 0 120px; overflow: hidden; }
.strat-head { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 24px; margin-bottom: 48px; align-items: start; }
.strat-head .eyebrow { padding-top: 12px; }
.strat-grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 24px; align-items: start; }
.strat-side p { color: var(--muted); margin: 0 0 22px; max-width: 32ch; font-size: 15px; }
.arrows { display: flex; gap: 4px; }
.arrows button { width: 40px; height: 40px; display: grid; place-items: center; background: rgba(160, 190, 255, .08); color: var(--text); transition: background .3s, opacity .3s; }
.arrows button:hover { background: rgba(160, 190, 255, .2); }
.arrows button:disabled { opacity: .35; cursor: default; }
.carousel { min-width: 0; display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc(-1 * var(--gut) - max(0px, (100vw - 1488px) / 2)); padding-right: var(--gut); cursor: grab; overscroll-behavior-x: contain; }
.carousel::-webkit-scrollbar { display: none; }
.carousel.is-drag { cursor: grabbing; scroll-snap-type: none; }
.carousel.is-drag * { pointer-events: none; }
.scard2 { position: relative; flex: none; width: 330px; height: 508px; overflow: hidden; scroll-snap-align: start; background: #050D1C; user-select: none; }
.scard2 img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.4s var(--ease), filter .8s; -webkit-user-drag: none; }
.scard2:hover img { transform: scale(1.12); }
.scard2::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2, 6, 14, 0) 40%, rgba(2, 6, 14, .82) 78%, rgba(2, 6, 14, .95)); }
.scard2 .xp { position: absolute; z-index: 2; top: 16px; left: 16px; width: 40px; height: 40px; display: grid; place-items: center; background: rgba(160, 190, 255, .12); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: var(--ice); }
.scard2 .xp svg { width: 14px; height: 14px; }
.scard2 .cap { position: absolute; z-index: 2; left: 16px; right: 16px; bottom: 16px; }
.scard2 h3 { margin: 0 0 4px; font-weight: 450; font-size: 15px; }
.scard2 p { margin: 0 0 14px; color: rgba(207, 222, 245, .72); font-size: 14px; line-height: 1.45; }
.tags { display: flex; flex-wrap: wrap; gap: 5px; }
.tags span { font-size: 12px; padding: 4px 10px; border-radius: 999px; background: rgba(2, 6, 14, .55); box-shadow: inset 0 0 0 1px rgba(160, 190, 255, .18); color: var(--text); white-space: nowrap; }
.cprog { position: relative; height: 1px; background: var(--line-d); margin-top: 120px; overflow: hidden; }
.cprog i { position: absolute; left: 0; top: 0; height: 100%; width: 34%; background: var(--glow); transform-origin: left; }

/* quote */
.quote { padding: 140px 0 160px; }
.quote-in { max-width: 900px; text-align: center; }
.q-text { margin: 0; }
.q-text p { margin: 0; font-family: var(--f-disp); font-weight: 340; letter-spacing: -.03em; font-size: clamp(26px, 2.6vw, 38px); line-height: 1.2; }
.q-text mark { background: linear-gradient(var(--glow), var(--glow)) no-repeat 0 0 / var(--m, 100%) 100%; color: #04122A; padding: 0 .08em; -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: color .4s; }
.q-text.anim mark { color: inherit; }
.q-text.anim mark.is-on { color: #04122A; }
.q-by { margin-top: 34px; display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 13px; }
.q-by b { font-weight: 450; }
.q-by > span:last-child { color: var(--muted); }
.q-av { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(160deg, #10264A, #050D1C); box-shadow: inset 0 0 0 1px rgba(160, 200, 255, .25); margin-bottom: 8px; }
.q-av svg { width: 22px; height: auto; color: var(--glow); }

/* light sections */
.light { background: var(--paper); color: var(--ink); }
.light .h-sec { color: var(--ink); }
.film { padding: 130px 0 40px; }
.split-head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 48px; }
.split-head p { margin: 0; color: var(--muted-l); font-size: 15.5px; max-width: 54ch; justify-self: end; }
.player { position: relative; aspect-ratio: 16/9; background: #02060E; overflow: hidden; }
.player video { width: 100%; height: 100%; object-fit: cover; }
.play { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: var(--text); background: radial-gradient(60% 60% at 50% 50%, rgba(2, 6, 14, .15), rgba(2, 6, 14, .5)); transition: opacity .5s; }
.play span { width: 78px; height: 78px; border-radius: 50%; display: grid; place-items: center; background: rgba(236, 242, 252, .9); color: var(--ink); box-shadow: 0 0 0 10px rgba(236, 242, 252, .14); transition: transform .5s var(--ease), box-shadow .5s; }
.play span .ic { width: 22px; height: 22px; margin-left: 3px; }
.play:hover span { transform: scale(1.06); box-shadow: 0 0 0 16px rgba(236, 242, 252, .12); }
.play b { font-weight: 450; font-size: 15px; margin-top: 8px; }
.play em { font-style: normal; font-family: var(--f-mono); font-size: 11px; letter-spacing: .08em; color: rgba(238, 243, 255, .7); text-transform: uppercase; }
.player.is-playing .play { opacity: 0; pointer-events: none; }
.measured { padding: 130px 0 120px; }
.measured-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 40px; align-items: start; }
.measured .h-sec { font-size: clamp(32px, 3vw, 44px); margin-bottom: 26px; max-width: 12ch; }
.bar-row { display: grid; grid-template-columns: 22px minmax(0, 1.2fr) minmax(0, 1fr) 56px; align-items: center; gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--line-l); font-size: 14.5px; color: var(--muted-l); }
.bar-row.hi { color: var(--ink); }
.bi { display: grid; place-items: center; }
.bi svg { width: 17px; height: 17px; color: var(--muted-l); }
.bar-row.hi .bi svg { color: var(--brand); }
.bt { height: 14px; position: relative; }
.bt i { position: absolute; left: 0; top: 0; bottom: 0; width: var(--w); background: var(--paper-3); border-radius: 2px; transform-origin: left; }
.bar-row.hi .bt i { background: linear-gradient(90deg, var(--glow-2), var(--glow)); }
.bv { text-align: right; font-variant-numeric: tabular-nums; color: var(--ink); }
.bars .sim { margin-top: 18px; }
.panels { padding: 0 0 130px; }
.panels-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.panel { position: relative; background: #02060E; color: var(--text); overflow: hidden; }
.panel-img { position: relative; aspect-ratio: 692/560; overflow: hidden; }
.panel-img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); }
.panel-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2, 6, 14, .1), rgba(2, 6, 14, .05) 50%, rgba(2, 6, 14, .9)); pointer-events: none; }
.panel-cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; text-align: center; padding: 0 24px 26px; }
.panel-cap h3 { margin: 0 0 4px; font-weight: 450; font-size: 15.5px; }
.panel-cap p { margin: 0 auto 14px; color: rgba(207, 222, 245, .72); font-size: 14px; max-width: 46ch; }
.panel-cap .tags { justify-content: center; }
.ask { position: absolute; z-index: 3; left: 50%; top: 26%; transform: translateX(-50%); width: min(78%, 440px); height: 48px; display: flex; align-items: center; gap: 8px; padding: 0 6px 0 16px; border-radius: 12px; background: rgba(236, 242, 252, .9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 24px 50px -16px rgba(0, 0, 0, .7); }
.ask input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: 14px; color: var(--ink); }
.ask input::placeholder { color: #5A6478; }
.ask button { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; background: rgba(10, 19, 38, .08); color: var(--ink); transition: background .3s; }
.ask button:hover { background: var(--ink); color: var(--paper); }
.ask button .ic { width: 15px; height: 15px; }
.ask-out { position: absolute; z-index: 3; left: 50%; top: calc(26% + 58px); transform: translateX(-50%); width: min(78%, 440px); display: grid; gap: 6px; }
.step { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 10px; font-size: 13px; background: rgba(5, 13, 28, .78); box-shadow: inset 0 0 0 1px rgba(160, 200, 255, .16); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.step .ok { width: 16px; height: 16px; border-radius: 50%; display: grid; place-items: center; background: rgba(52, 211, 153, .2); color: var(--up); flex: none; }
.step .ok svg { width: 10px; height: 10px; }
.step .spin { border-color: rgba(238, 243, 255, .2); border-top-color: var(--text); flex: none; }
.step b { font-weight: 450; }
.step b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.step em { font-style: normal; color: var(--muted); font-family: var(--f-mono); font-size: 11px; white-space: nowrap; }
.notes { position: absolute; z-index: 3; left: 50%; top: 18%; transform: translateX(-50%); width: min(80%, 360px); height: 150px; }
.note { position: absolute; left: 0; right: 0; top: 0; display: flex; align-items: center; gap: 10px; padding: 11px 12px; border-radius: 13px; background: rgba(236, 242, 252, .9); color: var(--ink); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 20px 44px -16px rgba(0, 0, 0, .7); transform-origin: 50% 0; }
.note .ni { width: 36px; height: 36px; border-radius: 9px; display: grid; place-items: center; background: #0A1326; color: var(--glow); flex: none; }
.note .ni svg { width: 17px; height: 17px; }
.note .nt { flex: 1; min-width: 0; }
.note b { display: block; font-weight: 500; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.note small { display: block; color: var(--muted-l); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.note em { font-style: normal; font-size: 11px; padding: 3px 8px; border-radius: 999px; background: rgba(10, 19, 38, .07); align-self: flex-start; }

/* validation */
.validation { padding: 40px 0 140px; }
.val-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: start; }
.tag-hi { display: inline-block; margin: 0 0 22px; padding: 3px 7px; background: var(--glow); color: #04122A; font-family: var(--f-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.validation .h-sec { max-width: 13ch; margin-bottom: 44px; font-size: clamp(32px, 3.1vw, 46px); }
.pillars { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; max-width: 520px; }
.pillars li { display: flex; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--line-l); }
.pillars li:first-child { padding-top: 0; }
.pillars .ic { width: 16px; height: 16px; margin-top: 2px; color: var(--ink); }
.pillars b { font-weight: 500; font-size: 14.5px; }
.pillars p { margin: 4px 0 0; color: var(--muted-l); font-size: 14px; }
.seals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.seal { background: var(--paper-2); aspect-ratio: 230/460; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 24px 14px; text-align: center; position: relative; overflow: hidden; }
.seal::before { content: "Sample run"; position: absolute; top: 14px; left: 14px; font-family: var(--f-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted-l); }
.seal > span { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted-l); max-width: 18ch; line-height: 1.5; }
.seal-ring { width: min(100%, 150px); aspect-ratio: 1; position: relative; display: grid; place-items: center; }
.seal-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.seal-ring .ring-bg { fill: none; stroke: var(--paper-3); stroke-width: 3; }
.seal-ring .ring { fill: none; stroke: var(--brand); stroke-width: 3; stroke-linecap: round; }
.seal-ring .ticks { fill: none; stroke: rgba(10, 19, 38, .18); stroke-width: 6; stroke-dasharray: 1 5.28; }
.seal-ring .in { display: grid; place-items: center; gap: 2px; }
.seal-ring b { font-size: clamp(26px, 2.4vw, 36px); color: var(--ink); line-height: 1; }
.seal-ring small { font-family: var(--f-mono); font-size: 10px; letter-spacing: .14em; color: var(--muted-l); }
.seal:hover .seal-ring { transform: scale(1.03); }
.seal-ring { transition: transform .6s var(--ease); }

/* faq */
.faq { padding: 30px 0 150px; }
.faq-grid { display: grid; grid-template-columns: 1fr minmax(0, 820px) 1fr; gap: 24px; }
.faq .acc { max-width: 640px; margin: 0 auto; }
.faq .eyebrow { padding-top: 14px; }
.faq-main .h-sec { text-align: center; margin-bottom: 48px; font-size: clamp(30px, 2.8vw, 42px); }
.acc { display: grid; gap: 6px; }
.acc details { background: var(--paper-2); border-radius: 2px; transition: background .3s; }
.acc details:hover { background: var(--paper-3); }
.acc summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 18px; font-size: 14.5px; cursor: pointer; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: ""; width: 12px; height: 12px; flex: none; background: linear-gradient(currentColor, currentColor) center/12px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center/1.5px 12px no-repeat; transition: transform .4s var(--ease); }
.acc details[open] summary::after { transform: rotate(45deg); }
.acc .ans { overflow: hidden; }
.acc details p { margin: 0; padding: 0 18px 18px; color: var(--muted-l); font-size: 14.5px; line-height: 1.6; max-width: 60ch; }

/* cta */
.cta { min-height: 100vh; display: flex; align-items: center; overflow: hidden; background: var(--ink-0); }
.cta-img { position: absolute; inset: 0; width: 100%; height: 120%; object-fit: cover; object-position: 70% 40%; will-change: transform; }
.cta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2, 6, 14, .82), rgba(2, 6, 14, .25) 60%, rgba(2, 6, 14, .1)), linear-gradient(180deg, transparent 60%, var(--ink-0)); }
.cta-in { position: relative; z-index: 2; }
.h-cta { font-size: clamp(44px, 5vw, 76px); line-height: 1; margin: 0 0 30px; }

/* footer */
.foot { position: relative; background: var(--ink-0); padding: 40px 0 0; overflow: hidden; }
.foot-top { display: grid; grid-template-columns: 1.6fr repeat(3, minmax(0, .55fr)); gap: 24px; padding-bottom: 80px; }
.foot-tag { margin: 0 0 26px; font-size: clamp(26px, 2.2vw, 32px); line-height: 1.12; max-width: 16ch; }
.fcol { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; }
.fcol b { font-family: var(--f-mono); font-weight: 400; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.fcol a { color: rgba(238, 243, 255, .82); transition: color .25s; width: fit-content; }
.fcol a:hover { color: var(--glow); }
.by-aether { display: inline-flex; align-items: center; gap: 12px; height: 48px; padding: 0 22px; border-radius: 999px; background: rgba(255, 255, 255, .05); border: 1.5px solid rgba(200, 220, 255, .16); color: rgba(238, 243, 255, .82); font-family: var(--f-body); font-size: 16px; font-weight: 450; white-space: nowrap; transition: background .3s, border-color .3s; }
.by-aether:hover { background: rgba(255, 255, 255, .09); border-color: rgba(200, 220, 255, .3); }
.ba-logo { height: 20px; width: auto; aspect-ratio: 1169/278; color: var(--text); flex: none; }
.foot-mark { position: relative; padding: 0 var(--gut); max-width: 1488px; margin: 0 auto; }
.foot-mark svg { width: 100%; height: auto; color: rgba(160, 190, 255, .07); aspect-ratio: 1694/262; }
.foot-base { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-top: 18px; padding-bottom: 22px; border-top: 1px solid var(--line-d); font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--dim); }

/* modal */
.modal { position: fixed; inset: 0; z-index: 150; display: grid; place-items: center; padding: 24px; }
.modal-back { position: absolute; inset: 0; background: rgba(2, 6, 14, .86); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.modal-box { position: relative; width: min(1200px, 100%); aspect-ratio: 16/9; max-height: calc(100vh - 48px); background: #000; box-shadow: 0 40px 120px -20px rgba(0, 0, 0, .9); }
.modal-box video { width: 100%; height: 100%; object-fit: contain; }
.modal-x { position: absolute; right: 0; top: -48px; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: rgba(238, 243, 255, .12); color: var(--text); }
.modal-x:hover { background: rgba(238, 243, 255, .22); }

/* reveal helpers (motion.js sets initial states only when it runs) */
.wd { display: inline-block; }

/* responsive */
@media (max-width: 1180px) {
  .nav-links { gap: 26px; }
  .sec-top, .suite-grid, .strat-head, .strat-grid { grid-template-columns: 260px minmax(0, 1fr); }
  .mgrid { grid-template-columns: repeat(7, 1fr); }
}
@media (max-width: 1024px) {
  .nav-links, .nav-text { display: none; }
  .nav-menu { display: inline-block; }
  .hm[data-k="1"], .hm[data-k="2"] { display: none; }
  .hm[data-k="0"] { left: 10%; } .hm[data-k="3"] { left: 90%; }
  .sec-top, .strat-head { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .sec-top .eyebrow, .strat-head .eyebrow { padding-top: 0; }
  .suite-grid { grid-template-columns: minmax(0, 1fr); }
  .tabsv { position: static; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--gut)) 8px; padding: 0 var(--gut); }
  .tabsv::-webkit-scrollbar { display: none; }
  .tabsv li { border: 0; flex: none; }
  .tabsv button { padding: 0 14px; height: 34px; border-radius: 999px; background: rgba(160, 190, 255, .08); font-size: 14px; }
  .tabsv li.is-on button { background: var(--text); color: var(--ink-0); }
  .tabsv li.is-on button::before { display: none; }
  .tabsv .tdesc { display: none; }
  .cards6 { grid-template-columns: repeat(2, 1fr); }
  .grp-label { display: block; grid-column: 1 / -1; margin: 26px 0 6px; font-family: var(--f-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--glow); }
  .grp-label:first-child { margin-top: 8px; }
  .methods-grid, .measured-grid, .val-grid, .split-head { grid-template-columns: 1fr; }
  .split-head p { justify-self: start; }
  .strat-grid { grid-template-columns: minmax(0, 1fr); }
  .strat-side { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
  .strat-side p { margin: 0; }
  .carousel { margin-right: calc(-1 * var(--gut)); }
  .faq-grid { grid-template-columns: 1fr; }
  .faq .eyebrow { text-align: center; padding: 0; }
  .foot-top { grid-template-columns: 1fr 1fr 1fr; }
  .foot-brand { grid-column: 1 / -1; margin-bottom: 20px; }
}
@media (max-width: 760px) {
  :root { --gut: 16px; --nav-h: 54px; }
  body { font-size: 15px; }
  .pill-nav { display: none; }
  .brand-logo { height: 23px; }
  .hero { min-height: 640px; max-height: none; }
  .hero-marks { display: none; }
  .stack { width: min(340px, calc(100% - 32px)); top: 27%; margin-top: 0; }
  .stack-cards { height: 100px; }
  .scard { padding: 10px; gap: 10px; }
  .scard em { display: none; }
  .hero-copy { flex-direction: column; align-items: flex-start; gap: 18px; bottom: 34px; }
  .h-hero { font-size: clamp(42px, 12vw, 54px); }
  .hero-side p { font-size: 15px; margin-bottom: 18px; }
  .hero-scroll { display: none; }
  .tile { --s: 70px !important; }
  .tile .tl { display: none; }
  .c1 { left: 30%; top: 15%; } .c2 { left: 6%; top: 70%; } .c3 { left: 34%; top: 82%; }
  .chipc { font-size: 11.5px; height: 26px; }
  .sec-top-main { flex-direction: column; align-items: flex-start; gap: 20px; }
  .mt-in { padding-top: 16vh; gap: 56px; }
  .counters { grid-template-columns: 1fr 1fr; gap: 40px 12px; }
  .suite { padding: 90px 0; }
  .cards6 { grid-template-columns: 1fr; }
  .mcard .mv { height: 300px; }
  .mcard p { margin-bottom: 18px; }
  .methods { padding: 70px 0 80px; }
  .mgrid { grid-template-columns: repeat(6, 1fr); gap: 6px; }
  .mt { font-size: 9.5px; border-radius: 8px; }
  .strategies { padding: 20px 0 90px; }
  .strat-side { flex-direction: column; align-items: flex-start; }
  .scard2 { width: 280px; height: 440px; }
  .cprog { margin-top: 60px; }
  .quote { padding: 90px 0 110px; }
  .film { padding: 90px 0 24px; }
  .split-head { margin-bottom: 30px; gap: 18px; }
  .play span { width: 60px; height: 60px; }
  .play b { display: none; }
  .measured { padding: 80px 0; }
  .bar-row { grid-template-columns: 20px 1fr 52px; row-gap: 8px; }
  .bar-row .bt { grid-column: 2 / 3; grid-row: 2; }
  .bar-row .bv { grid-row: 1 / 3; }
  .panels { padding-bottom: 80px; }
  .panels-grid { grid-template-columns: 1fr; }
  .panel-img { aspect-ratio: 4/4.6; }
  .ask { top: 16%; width: calc(100% - 32px); }
  .ask-out { top: calc(16% + 58px); width: calc(100% - 32px); }
  .notes { top: 14%; width: calc(100% - 32px); }
  .validation { padding-bottom: 90px; }
  .seals { grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
  .seal { aspect-ratio: auto; padding: 40px 8px 18px; gap: 12px; }
  .seal::before { font-size: 8.5px; left: 8px; top: 10px; }
  .seal > span { font-size: 9px; }
  .faq { padding-bottom: 100px; }
  .acc summary { padding: 14px 14px; font-size: 14px; }
  .acc details p { padding: 0 14px 16px; }
  .cta { min-height: 88svh; align-items: flex-end; padding-bottom: 60px; }
  .cta::after { background: linear-gradient(180deg, rgba(2, 6, 14, .2), rgba(2, 6, 14, .5) 50%, var(--ink-0)); }
  .foot-top { grid-template-columns: 1fr 1fr; row-gap: 34px; padding-bottom: 50px; }
  .fcol:last-child { grid-column: 1 / -1; }
  .by-aether { height: 44px; padding: 0 18px; font-size: 15px; }
  .ba-logo { height: 18px; }
  .foot-base { flex-direction: column; gap: 8px; }
  .modal { padding: 12px; }
  .modal-x { top: -50px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
.hero-fallback { transition: opacity 1.2s; }
.hero.gl-on .hero-fallback { opacity: 0; }

/* =====================================================================
   K2 Capital additions: pages, routing, new widgets, research and news
   ===================================================================== */
.skip { border: 0; cursor: pointer; }
main:focus { outline: none; }
.page { display: block; }
.nav-prog { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; pointer-events: none; }
.nav-prog i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--glow-2), var(--glow)); box-shadow: 0 0 10px rgba(140, 195, 255, .6); }
.nav-links a.is-on { color: var(--text); }
.nav.is-light .nav-text.is-on { color: var(--ink); }
.nav-text.is-on { color: var(--text); }
.ic-sm { width: 14px; height: 14px; }
.pill .ic { width: 15px; height: 15px; }

/* page transition: the two K2 bars shoot in, a navy panel sweeps */
.trans { position: fixed; inset: 0; z-index: 140; pointer-events: none; visibility: hidden; }
.trans.on { visibility: visible; pointer-events: all; }
.trans-panel { position: absolute; inset: 0; background: radial-gradient(70% 60% at 60% 60%, #0B1D3D, #02060E 70%); transform: translateY(100%); }
.trans-mark { position: absolute; left: 50%; top: 50%; width: 132px; height: auto; margin: -31px 0 0 -66px; color: var(--glow); opacity: 0; filter: drop-shadow(0 0 18px rgba(140, 195, 255, .55)); }
.trans-line { position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--glow), transparent); box-shadow: 0 0 18px var(--glow); transform: translateY(100vh); opacity: 0; }

/* hero card icon uses the K2 mark */
.scard .si { background: linear-gradient(160deg, #10264A, #050D1C); }

/* metrics counters: four K2 facts */
.ctr strong .sx.plus { color: var(--glow); }

/* ---------- what we do: K2 widgets ---------- */
.w-mix { padding: 12px 12px 10px; }
.mix-row { display: grid; grid-template-columns: 10px 1fr 92px; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid rgba(10, 19, 38, .07); }
.mix-row:last-of-type { border-bottom: 0; }
.mix-row i { width: 7px; height: 7px; border-radius: 50%; background: var(--c, var(--brand)); box-shadow: 0 0 0 0 var(--c); transition: box-shadow .5s; }
.mix-row.is-on i { box-shadow: 0 0 0 4px rgba(47, 111, 224, .18); }
.mix-row span { font-size: 12.5px; }
.mix-row svg { width: 92px; height: 22px; overflow: visible; }
.w-hedge { padding: 12px; }
.w-hedge svg { width: 100%; height: 118px; margin: 8px 0 4px; overflow: visible; }
.w-hedge .key { display: flex; gap: 12px; font-size: 11px; color: var(--muted-l); }
.w-hedge .key i { display: inline-block; width: 12px; height: 2px; margin-right: 5px; vertical-align: 3px; }
.w-sot { padding: 12px; }
.w-sot .gl-main { position: relative; }
.w-sot .lead { font-family: var(--f-mono); font-size: 11.5px; color: #13213D; min-height: 52px; line-height: 1.45; margin: 8px 0 10px; }
.w-sot .lead .car { display: inline-block; width: 6px; height: 13px; background: var(--brand); vertical-align: -2px; animation: blink 1s steps(1) infinite; }
.w-sot .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.w-sot .steps b { height: 4px; border-radius: 4px; background: rgba(10, 19, 38, .1); overflow: hidden; position: relative; }
.w-sot .steps b::after { content: ""; position: absolute; inset: 0; width: var(--p, 0%); background: var(--brand); transition: width .3s linear; }
.w-vc { padding: 0; width: min(92%, 320px); height: 250px; }
.w-vc svg { width: 100%; height: 100%; overflow: visible; }
.w-vc .nd text { font-family: var(--f-body); font-size: 9.5px; fill: rgba(238, 243, 255, .85); }
.w-vc .core text { font-size: 10px; fill: #04122A; font-weight: 600; }
.w-alts { height: 210px; perspective: 700px; width: min(84%, 280px); }
.alts-ring { position: absolute; inset: 0; transform-style: preserve-3d; }
.alts-ring .ac { position: absolute; left: 0; right: 0; top: 50%; margin-top: -24px; height: 48px; display: flex; align-items: center; gap: 10px; padding: 0 14px; border-radius: 12px; background: rgba(236, 242, 252, .92); color: var(--ink); font-size: 13px; font-weight: 500; box-shadow: 0 14px 30px -14px rgba(0, 8, 26, .8); backface-visibility: hidden; }
.alts-ring .ac i { width: 22px; height: 22px; border-radius: 6px; display: grid; place-items: center; background: #0A1326; color: var(--glow); font-style: normal; font-family: var(--f-mono); font-size: 10px; }
.w-feed { padding: 12px; }
.feed { position: relative; height: 150px; overflow: hidden; margin-top: 8px; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent); mask-image: linear-gradient(180deg, #000 70%, transparent); }
.feed-in { position: absolute; left: 0; right: 0; top: 0; display: grid; gap: 6px; transition: transform .9s var(--ease); }
.feed .fi { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; padding: 8px 10px; border-radius: 9px; background: rgba(160, 190, 255, .07); box-shadow: inset 0 0 0 1px rgba(160, 200, 255, .1); }
.feed .fi b { font-weight: 450; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.feed .fi small { grid-column: 1; color: var(--muted); font-size: 10.5px; font-family: var(--f-mono); letter-spacing: .04em; text-transform: uppercase; }
.feed .fi em { grid-row: 1 / 3; grid-column: 2; align-self: center; font-style: normal; font-family: var(--f-mono); font-size: 10.5px; color: var(--ice); }
.feed .fi.is-new { background: rgba(140, 195, 255, .16); box-shadow: inset 0 0 0 1px rgba(160, 200, 255, .35); }
.w-map { padding: 10px 12px 12px; }
.w-map svg { width: 100%; height: 150px; margin: 6px 0 2px; overflow: visible; }
.w-map .lbl-m { font-family: var(--f-mono); font-size: 8.5px; letter-spacing: .06em; fill: var(--muted-l); text-transform: uppercase; }
.w-map .hk-l { fill: var(--ink); font-weight: 500; }
.w-adv { height: 168px; width: min(84%, 300px); }
.adv-c { position: absolute; left: 0; right: 0; top: 0; display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 14px; background: rgba(236, 242, 252, .92); color: var(--ink); box-shadow: 0 20px 44px -16px rgba(0, 8, 26, .7); transform-origin: 50% 0; }
.adv-c .av { width: 42px; height: 42px; border-radius: 50%; flex: none; display: grid; place-items: center; background: linear-gradient(160deg, #10264A, #050D1C); color: var(--glow); font-family: var(--f-disp); font-size: 17px; }
.adv-c b { display: block; font-weight: 500; font-size: 14px; }
.adv-c small { display: block; color: var(--brand); font-size: 12px; margin-bottom: 4px; }
.adv-c p { margin: 0; font-size: 12px; line-height: 1.45; color: var(--muted-l); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- portfolio carousel cards ---------- */
.scard2 { cursor: pointer; text-align: left; color: var(--text); }
.scard2 .pf-logo { position: absolute; z-index: 2; top: 20px; left: 18px; height: 34px; width: auto; color: #fff; filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .5)); }
.scard2 .xp { left: auto; right: 16px; }
.scard2 .typ { position: absolute; z-index: 2; top: 70px; left: 18px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ice); opacity: .8; }
.scard2:focus-visible { outline-offset: -3px; }

/* ---------- research desk (home) ---------- */
.desk { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.6fr); gap: 8px; min-height: 560px; }
.desk-list { display: grid; align-content: start; gap: 4px; }
.dk { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; text-align: left; padding: 16px 18px 18px; background: var(--paper-2); transition: background .35s; overflow: hidden; }
.dk:hover { background: var(--paper-3); }
.dk b { font-weight: 450; font-size: 14.5px; line-height: 1.35; color: var(--ink); }
.dk small { grid-column: 1 / -1; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted-l); }
.dk em { font-style: normal; font-family: var(--f-mono); font-size: 11px; color: var(--muted-l); }
.dk .bar { position: absolute; left: 0; bottom: 0; height: 2px; width: 0; background: var(--brand); }
.dk.is-on { background: var(--ink); }
.dk.is-on b { color: var(--paper); }
.dk.is-on small, .dk.is-on em { color: rgba(207, 227, 255, .6); }
.dk.is-on .bar { background: var(--glow); }
.desk-view { position: relative; overflow: hidden; background: #02060E; color: var(--text); min-height: 480px; }
.dv { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 34px; }
.dv.out { pointer-events: none; }
.dv-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; transform: scale(1.06); }
.dv::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(2, 6, 14, .2), rgba(2, 6, 14, .45) 40%, rgba(2, 6, 14, .95)); }
.dv > :not(img) { position: relative; z-index: 2; }
.dv .cat { font-family: var(--f-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--glow); margin: 0 0 12px; }
.dv h3 { margin: 0 0 12px; font-family: var(--f-disp); font-weight: 340; letter-spacing: -.03em; font-size: clamp(26px, 2.5vw, 38px); line-height: 1.06; max-width: 20ch; }
.dv p { margin: 0 0 20px; max-width: 56ch; color: rgba(207, 222, 245, .78); font-size: 14.5px; }
.dv .fig { position: absolute; top: 30px; right: 30px; z-index: 2; text-align: right; padding: 14px 16px; border-radius: 12px; background: rgba(5, 13, 28, .66); box-shadow: inset 0 0 0 1px rgba(160, 200, 255, .2); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.dv .fig b { display: block; font-family: var(--f-disp); font-weight: 340; font-size: 38px; letter-spacing: -.03em; line-height: 1; color: var(--text); }
.dv .fig small { display: block; margin-top: 6px; font-size: 12px; color: var(--muted); max-width: 22ch; }
.dv .fig em { display: block; margin-top: 8px; font-style: normal; font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--dim); }
.dv .row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.dv .meta { font-family: var(--f-mono); font-size: 11px; letter-spacing: .04em; color: var(--muted); }

/* ---------- milestones (bars) ---------- */
.bar-row { cursor: default; }
.bar-row.lk { cursor: pointer; }
.bar-row.lk:hover .bl { color: var(--ink); }
.bar-row .bi.yr { font-family: var(--f-mono); font-size: 12px; color: var(--muted-l); }
.bar-row.hi .bi.yr { color: var(--brand); }
.bar-row { grid-template-columns: 42px minmax(0, 1.5fr) minmax(0, 1fr) 24px; }
.bar-row .bv { color: var(--muted-l); }
.bar-row .bv .ic { width: 15px; height: 15px; }
.bar-row.lk:hover .bv { color: var(--brand); }

/* ---------- panels: search results and news ---------- */
.ask input[type=search]::-webkit-search-cancel-button { display: none; }
.step { text-align: left; width: 100%; color: var(--text); }
button.step:hover { background: rgba(14, 33, 66, .92); }
.step .cat { font-style: normal; color: var(--muted); font-family: var(--f-mono); font-size: 10.5px; white-space: nowrap; }
.note { cursor: pointer; }

/* ---------- award seals ---------- */
.seal { cursor: default; }
.seal::before { content: "Recognition"; }
.seal.est::before { content: "Hong Kong"; }
.seal-ring b { font-size: clamp(24px, 2.2vw, 34px); }
/* dark award cards: the real HKMOB logos in gold, with a slow glint */
.seals .seal { background: radial-gradient(90% 55% at 50% 0%, rgba(47, 111, 224, .22), transparent 70%), linear-gradient(180deg, #0A1830, #040B18); }
.seals .seal::before { color: rgba(160, 190, 230, .62); }
.seals .seal > span { color: rgba(207, 222, 245, .72); }
.seals .seal-ring .ring-bg { stroke: rgba(160, 200, 255, .14); }
.seals .seal-ring .ring { stroke: var(--glow); }
.seals .seal-ring .ticks { stroke: rgba(160, 200, 255, .26); }
.seals .seal-ring b { color: var(--text); }
.seals .seal-ring small { color: var(--muted); }
.seal.award { gap: 28px; }
.aw-logo { position: relative; width: min(88%, 220px); transition: transform .6s var(--ease); }
.aw-logo img { display: block; width: 100%; height: auto; filter: drop-shadow(0 8px 22px rgba(214, 170, 60, .22)); }
.aw-logo::after { content: ""; position: absolute; inset: 0; pointer-events: none; -webkit-mask: var(--src) center / 100% 100% no-repeat; mask: var(--src) center / 100% 100% no-repeat; background: linear-gradient(105deg, transparent 36%, rgba(255, 248, 220, .9) 48%, transparent 60%) no-repeat; background-size: 250% 100%; background-position: 130% 0; mix-blend-mode: screen; animation: awGlint 4.4s cubic-bezier(.45, .05, .25, 1) infinite; }
.seal.award:nth-child(2) .aw-logo::after { animation-delay: 1.5s; }
.seal.award:hover .aw-logo { transform: scale(1.05); }
@keyframes awGlint { 0%, 50% { background-position: 130% 0; } 100% { background-position: -30% 0; } }
@media (prefers-reduced-motion: reduce) { .aw-logo::after { animation: none; opacity: 0; } }

/* ---------- duotone images (content photos graded into the palette) ---------- */
.duo { position: relative; overflow: hidden; background: #0A1C3C; isolation: isolate; }
.duo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08) brightness(.92); mix-blend-mode: luminosity; opacity: .92; transition: filter .8s var(--ease), opacity .8s, transform 1.2s var(--ease); }
.duo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(47, 111, 224, .28), rgba(2, 6, 14, .35)); mix-blend-mode: multiply; transition: opacity .8s; pointer-events: none; }
a:hover .duo img, button:hover .duo img, .duo:hover img { filter: none; mix-blend-mode: normal; opacity: 1; transform: scale(1.04); }
a:hover .duo::after, button:hover .duo::after, .duo:hover::after { opacity: 0; }

/* ---------- page header ---------- */
.phead { position: relative; min-height: 78vh; display: flex; align-items: flex-end; overflow: hidden; background: var(--ink-0); padding: 140px 0 70px; isolation: isolate; }
.phead-img { position: absolute; inset: -6% 0 0; width: 100%; height: 112%; object-fit: cover; z-index: -2; opacity: .75; will-change: transform; }
.phead::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(2, 6, 14, .92), rgba(2, 6, 14, .55) 55%, rgba(2, 6, 14, .25)), linear-gradient(180deg, rgba(2, 6, 14, .1) 40%, var(--ink-0)); }
.phead-in { position: relative; }
.ph-news .phead-img { opacity: .95; }
.h-page { font-family: var(--f-disp); font-weight: 320; font-optical-sizing: auto; letter-spacing: -.04em; font-size: clamp(56px, 8.4vw, 132px); line-height: .92; margin: 18px 0 0; }
.phead-sub { margin: 14px 0 0; font-family: var(--f-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.phead-lead { margin: 24px 0 28px; max-width: 56ch; font-size: 16.5px; line-height: 1.55; color: rgba(238, 243, 255, .84); }
.phead-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.phead-meta span { display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 14px; border-radius: 999px; background: rgba(160, 190, 255, .1); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-size: 13px; }
.phead-meta span b { font-family: var(--f-disp); font-weight: 400; font-size: 17px; color: var(--glow); }

/* ---------- portfolio page ---------- */
.pf { padding: 40px 0 120px; background: var(--ink-0); }
.pf-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.pf-grid > .pfc { grid-column: span 2; }
.pf-grid > .pfc:nth-child(n+4):nth-last-child(-n+2) { grid-column: span 3; }
.pfc { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 520px; padding: 22px; overflow: hidden; background: #050D1C; color: var(--text); text-align: left; cursor: pointer; isolation: isolate; }
.pfc > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.06); transition: transform 1.4s var(--ease); }
.pfc::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(2, 6, 14, .25), rgba(2, 6, 14, .2) 35%, rgba(2, 6, 14, .92) 80%); }
.pfc:hover > img { transform: scale(1.12); }
.pfc .lg { position: absolute; top: 24px; left: 22px; height: 42px; width: auto; color: #fff; }
.pfc .typ { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--glow); margin: 0 0 8px; }
.pfc h3 { margin: 0 0 6px; font-weight: 450; font-size: 18px; }
.pfc p { margin: 0 0 16px; color: rgba(207, 222, 245, .74); font-size: 14px; line-height: 1.5; }
.pfc .go { position: absolute; top: 20px; right: 20px; width: 40px; height: 40px; display: grid; place-items: center; background: rgba(160, 190, 255, .12); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: var(--ice); transition: background .3s, transform .4s var(--ease); }
.pfc:hover .go { background: var(--glow); color: #04122A; transform: rotate(45deg); }
.pfc .go svg { width: 14px; height: 14px; }
.pfc .glow { position: absolute; z-index: -1; width: 380px; height: 380px; border-radius: 50%; left: var(--mx, 50%); top: var(--my, 50%); transform: translate(-50%, -50%); background: radial-gradient(closest-side, rgba(140, 195, 255, .28), transparent); opacity: 0; transition: opacity .5s; pointer-events: none; }
.pfc:hover .glow { opacity: 1; }
.deals { padding: 120px 0 130px; }
.hlist { position: relative; border-top: 1px solid var(--line-l); }
.hrow { display: grid; grid-template-columns: 90px minmax(0, 1fr) 180px 40px; align-items: center; gap: 20px; width: 100%; padding: 26px 0; border-bottom: 1px solid var(--line-l); text-align: left; color: var(--ink); transition: padding .5s var(--ease), color .3s; }
.hrow .y { font-family: var(--f-mono); font-size: 12px; color: var(--muted-l); }
.hrow b { font-family: var(--f-disp); font-weight: 340; letter-spacing: -.02em; font-size: clamp(20px, 2vw, 28px); line-height: 1.15; }
.hrow .c { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-l); }
.hrow .ar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: rgba(10, 19, 38, .06); transition: background .3s, color .3s, transform .4s var(--ease); }
.hrow:hover { padding-left: 14px; }
.hrow:hover .ar { background: var(--ink); color: var(--paper); transform: rotate(-45deg); }
.hprev { position: fixed; z-index: 60; left: 0; top: 0; width: 280px; aspect-ratio: 16/10; pointer-events: none; overflow: hidden; border-radius: 6px; box-shadow: 0 30px 60px -20px rgba(0, 8, 26, .6); opacity: 0; transform: translate(-50%, -50%) scale(.85); transition: opacity .3s, transform .4s var(--ease); }
.hprev.on { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.hprev img { width: 100%; height: 100%; object-fit: cover; }
.band { padding: 110px 0; background: radial-gradient(70% 120% at 80% 100%, rgba(47, 111, 224, .35), transparent 60%), var(--ink-0); }
.band-in { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.band .h-sec { max-width: 22ch; }

/* portfolio drawer */
.drawer { place-items: stretch end; padding: 0; }
.dbox { position: relative; width: min(560px, 100%); height: 100%; overflow-y: auto; background: var(--ink-1); color: var(--text); box-shadow: -40px 0 120px -20px rgba(0, 0, 0, .8); overscroll-behavior: contain; }
.dbox .dimg { position: relative; height: 300px; overflow: hidden; }
.dbox .dimg img { width: 100%; height: 100%; object-fit: cover; }
.dbox .dimg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5, 13, 28, .1), var(--ink-1)); }
.dbox .dimg svg { position: absolute; z-index: 2; left: 28px; bottom: 26px; height: 48px; width: auto; color: #fff; }
.dbox .din { padding: 6px 28px 40px; }
.dbox .typ { font-family: var(--f-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--glow); margin: 0 0 8px; }
.dbox h2 { margin: 0 0 12px; font-family: var(--f-disp); font-weight: 340; letter-spacing: -.03em; font-size: 38px; line-height: 1.02; }
.dbox p { color: rgba(207, 222, 245, .8); font-size: 15px; line-height: 1.6; margin: 0 0 18px; }
.dbox h3 { margin: 30px 0 10px; font-family: var(--f-mono); font-weight: 400; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.dbox .mini { display: grid; gap: 6px; }
.dbox .mini a { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 12px 14px; background: rgba(160, 190, 255, .06); transition: background .3s; }
.dbox .mini a:hover { background: rgba(160, 190, 255, .14); }
.dbox .mini b { font-weight: 450; font-size: 14px; }
.dbox .mini small { font-family: var(--f-mono); font-size: 10.5px; color: var(--muted); }
.dx { position: absolute; z-index: 3; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: rgba(2, 6, 14, .55); color: var(--text); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.dx:hover { background: rgba(2, 6, 14, .85); }

/* ---------- research and news listings ---------- */
.rs, .nw { padding: 40px 0 130px; background: var(--ink-0); }
.rs-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 70px 0 18px; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; }
.chips button { height: 34px; padding: 0 14px; border-radius: 999px; font-size: 13.5px; color: rgba(238, 243, 255, .8); background: rgba(160, 190, 255, .08); transition: background .3s, color .3s; }
.chips button:hover { color: var(--text); background: rgba(160, 190, 255, .16); }
.chips button.is-on { background: var(--text); color: var(--ink-0); }
.chips button em { font-style: normal; font-family: var(--f-mono); font-size: 10.5px; margin-left: 6px; opacity: .6; }
.rs-search { display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border-radius: 999px; background: rgba(160, 190, 255, .08); box-shadow: inset 0 0 0 1px rgba(160, 190, 255, .1); width: min(320px, 100%); transition: box-shadow .3s; }
.rs-search:focus-within { box-shadow: inset 0 0 0 1px var(--glow), 0 0 0 4px rgba(140, 195, 255, .12); }
.rs-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text); font: inherit; font-size: 14px; }
.rs-search input::placeholder { color: var(--dim); }
.rs-search .ic { width: 16px; height: 16px; color: var(--muted); }
.rs-count { margin: 0 0 18px; font-family: var(--f-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--dim); }
.rgrid, .ngrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rc { display: flex; flex-direction: column; background: var(--ink-1); color: var(--text); text-align: left; min-width: 0; transition: background .4s; }
.rc:hover { background: #0A1A35; }
.rc .duo { aspect-ratio: 16/10; }
.rc .duo.cover img { object-position: top; }
.rc .rb { display: flex; flex-direction: column; gap: 10px; padding: 18px 18px 20px; flex: 1; }
.rc .top { display: flex; justify-content: space-between; gap: 10px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .07em; text-transform: uppercase; color: var(--glow); }
.rc .top span:last-child { color: var(--dim); }
.rc h3 { margin: 0; font-weight: 450; font-size: 16.5px; line-height: 1.32; letter-spacing: -.005em; }
.rc p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rc .by { margin-top: auto; padding-top: 10px; display: flex; justify-content: space-between; font-size: 12.5px; color: var(--dim); border-top: 1px solid var(--line-d); }
.rc.is-hide { display: none; }
.rs-feat, .nw-feat { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 8px; margin-top: -10px; }
.ft { position: relative; display: block; min-height: 440px; overflow: hidden; background: #050D1C; color: var(--text); }
.ft .duo { position: absolute; inset: 0; }
.ft .duo.cover img { object-position: top; }
.ft .fin { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 28px; background: linear-gradient(180deg, transparent, rgba(2, 6, 14, .92) 45%); }
.ft .lab { display: inline-block; margin-bottom: 14px; padding: 3px 7px; background: var(--glow); color: #04122A; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; }
.ft h2 { margin: 0 0 10px; font-family: var(--f-disp); font-weight: 340; letter-spacing: -.03em; font-size: clamp(28px, 2.8vw, 42px); line-height: 1.04; max-width: 22ch; }
.ft p { margin: 0; color: rgba(207, 222, 245, .78); max-width: 60ch; font-size: 14.5px; }
.fside { display: grid; gap: 8px; align-content: stretch; }
.fside .fs { display: grid; grid-template-columns: 120px 1fr; gap: 16px; align-items: center; padding: 12px; background: var(--ink-1); color: var(--text); text-align: left; transition: background .4s; }
.fside .fs:hover { background: #0A1A35; }
.fside .fs .duo { aspect-ratio: 4/3; }
.fside .fs b { display: block; font-weight: 450; font-size: 14.5px; line-height: 1.35; margin-bottom: 6px; }
.fside .fs small { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.nc { display: flex; flex-direction: column; background: var(--ink-1); color: var(--text); text-align: left; min-width: 0; transition: background .4s; }
.nc:hover { background: #0A1A35; }
.nc .duo { aspect-ratio: 1.9; }
.nc .rb { display: flex; flex-direction: column; gap: 10px; padding: 18px 18px 20px; flex: 1; }
.nc .top { display: flex; justify-content: space-between; gap: 10px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .07em; text-transform: uppercase; color: var(--glow); }
.nc .top span:last-child { color: var(--dim); }
.nc h3 { margin: 0; font-weight: 450; font-size: 16.5px; line-height: 1.32; }
.nc p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.nc .by { margin-top: auto; padding-top: 10px; font-size: 12.5px; color: var(--dim); border-top: 1px solid var(--line-d); display: flex; justify-content: space-between; }
.nc.no-link { cursor: default; }
.light-grid .nc { background: var(--paper-2); color: var(--ink); }
.light-grid .nc:hover { background: var(--paper-3); }
.light-grid .nc p, .light-grid .nc .by { color: var(--muted-l); border-color: var(--line-l); }
.light-grid .nc .top { color: var(--brand); }

/* ---------- Aether page ---------- */
.ae-logo svg { width: min(620px, 82vw); height: auto; aspect-ratio: 1169/278; color: var(--text); display: block; }
.ae-how { padding: 110px 0 120px; background: var(--ink-0); }
.ae-how-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 60px; align-items: center; }
.ae-body p { margin: 0 0 18px; color: rgba(207, 222, 245, .82); font-size: 16px; line-height: 1.65; max-width: 58ch; }
.ae-body p:first-child { font-family: var(--f-disp); font-weight: 340; font-size: clamp(22px, 2vw, 28px); letter-spacing: -.02em; line-height: 1.3; color: var(--text); }
.ae-loop { position: relative; aspect-ratio: 1; max-width: 520px; width: 100%; justify-self: center; }
.ae-loop > svg { width: 100%; height: 100%; overflow: visible; }
.ae-loop .lp-n text { font-family: var(--f-body); font-size: 15px; fill: var(--text); }
.ae-loop .lp-n .s { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .1em; fill: var(--muted); }
.ae-ventures { padding: 40px 0 130px; background: var(--ink-0); }
.vgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.vc { display: flex; flex-direction: column; background: var(--ink-1); color: var(--text); text-align: left; transition: background .4s; }
a.vc:hover { background: #0A1A35; }
.vc .duo { aspect-ratio: 1.1; }
.vc .rb { padding: 18px 18px 22px; display: grid; gap: 8px; }
.vc h3 { margin: 0; font-weight: 450; font-size: 16px; display: flex; justify-content: space-between; gap: 10px; }
.vc h3 svg { width: 14px; height: 14px; color: var(--muted); }
.vc p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.ae-acc { padding: 90px 0 30px; }
.marq { position: relative; overflow: hidden; margin-top: 34px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.marq-in { display: flex; gap: 8px; width: max-content; animation: marq 40s linear infinite; }
.marq:hover .marq-in { animation-play-state: paused; }
@keyframes marq { to { transform: translateX(-50%); } }
.lt { flex: none; width: 210px; height: 110px; display: grid; place-items: center; background: #fff; padding: 22px 28px; }
.lt img { max-width: 100%; max-height: 52px; width: auto; height: auto; filter: grayscale(1); opacity: .75; transition: filter .4s, opacity .4s; }
.lt:hover img { filter: none; opacity: 1; }
.ae-close { padding: 80px 0 140px; }
.ae-close-in { max-width: 900px; text-align: center; }
.ae-close-in p { margin: 22px auto 30px; color: var(--muted-l); font-size: 16px; max-width: 60ch; }

/* ---------- profile ---------- */
.prof { padding: 140px 0 110px; background: radial-gradient(60% 80% at 80% 20%, rgba(47, 111, 224, .25), transparent 60%), var(--ink-0); }
.prof-in { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 70px; align-items: start; }
.prof-ph { position: sticky; top: 100px; }
.prof-ph .duo { aspect-ratio: 554/686; }
.prof-ph .duo img { mix-blend-mode: normal; filter: grayscale(.2) contrast(1.02); }
.prof-ph .duo::after { opacity: .5; }
.prof-ph:hover .duo::after { opacity: 0; }
.prof-ph .cap { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 14px; font-family: var(--f-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.prof-tx .h-page { font-size: clamp(52px, 6.6vw, 104px); margin-top: 10px; }
.prof-tx .role { margin: 16px 0 30px; font-size: 18px; color: var(--glow); }
.prof-tx .bio p { margin: 0 0 18px; color: rgba(207, 222, 245, .84); font-size: 16px; line-height: 1.7; max-width: 64ch; }
.prof-tx .bio p:first-child { font-family: var(--f-disp); font-weight: 340; font-size: clamp(21px, 1.9vw, 26px); letter-spacing: -.02em; line-height: 1.35; color: var(--text); }
.exp { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 34px 0 30px; }
.exp div { padding: 18px; background: rgba(160, 190, 255, .06); box-shadow: inset 0 0 0 1px rgba(160, 190, 255, .1); }
.exp b { display: block; font-weight: 500; font-size: 15px; margin-bottom: 4px; }
.exp span { font-size: 13px; color: var(--muted); }
.prof-news { padding: 110px 0 60px; }
.advisors { padding: 60px 0 140px; }
.adv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.adv { padding: 26px; background: var(--paper-2); }
.adv .av { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--glow); font-family: var(--f-disp); font-size: 21px; margin-bottom: 22px; }
.adv b { display: block; font-weight: 500; font-size: 17px; }
.adv small { display: block; margin: 4px 0 14px; color: var(--brand); font-size: 13.5px; }
.adv p { margin: 0; color: var(--muted-l); font-size: 14.5px; line-height: 1.55; }

/* ---------- contact ---------- */
.ph-contact { min-height: 64vh; }
.ct { padding: 100px 0 140px; }
.ct-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 60px; align-items: start; }
.ct-side { display: grid; gap: 8px; }
.cc { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 14px; padding: 18px; background: var(--paper-2); color: var(--ink); text-align: left; transition: background .3s; }
a.cc:hover, button.cc:hover { background: var(--paper-3); }
.cc .ci { width: 42px; height: 42px; border-radius: 10px; display: grid; place-items: center; background: var(--ink); color: var(--glow); }
.cc .ci .ic { width: 18px; height: 18px; }
.cc small { display: block; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-l); margin-bottom: 2px; }
.cc b { font-weight: 450; font-size: 16px; }
.cc em { font-style: normal; font-size: 12.5px; color: var(--muted-l); }
.clock { display: flex; align-items: center; gap: 18px; padding: 22px 18px; background: var(--ink); color: var(--text); }
.clock .face { width: 66px; height: 66px; flex: none; }
.clock .face circle { fill: none; stroke: rgba(160, 190, 255, .25); }
.clock .face line { stroke-linecap: round; }
.clock b { display: block; font-family: var(--f-disp); font-weight: 340; font-size: 32px; letter-spacing: -.02em; line-height: 1; }
.clock small { color: var(--muted); font-size: 13px; }
.ct-form { display: grid; gap: 14px; padding: 34px; background: #fff; box-shadow: 0 30px 80px -40px rgba(10, 19, 38, .35); }
.ct-form h2 { margin: 0 0 6px; font-family: var(--f-disp); font-weight: 340; letter-spacing: -.03em; font-size: 34px; line-height: 1.05; color: var(--ink); }
.ct-form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fld { display: grid; gap: 6px; }
.fld span { font-size: 12.5px; color: var(--muted-l); }
.fld input, .fld textarea { width: 100%; border: 1px solid var(--line-l); border-radius: 8px; background: var(--paper); padding: 12px 14px; font: inherit; font-size: 15px; color: var(--ink); outline: 0; transition: border-color .3s, box-shadow .3s; }
.fld textarea { min-height: 130px; resize: vertical; }
.fld input:focus, .fld textarea:focus { border-color: var(--glow-2); box-shadow: 0 0 0 4px rgba(77, 141, 255, .14); }
.fld.err input, .fld.err textarea { border-color: var(--dn); }
.tchips { display: flex; flex-wrap: wrap; gap: 6px; }
.tchips button { height: 34px; padding: 0 14px; border-radius: 999px; font-size: 13.5px; background: var(--paper-2); color: var(--ink); transition: background .3s, color .3s; }
.tchips button:hover { background: var(--paper-3); }
.tchips button.is-on { background: var(--ink); color: var(--paper); }
.ct-form .pill-glow { justify-self: start; }
.ct-form .fine { margin: 0; font-size: 12.5px; color: var(--muted-l); }

/* ---------- article / report ---------- */
.ah { position: relative; padding: 150px 0 0; background: var(--ink-0); overflow: hidden; isolation: isolate; }
.ah::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 60% at 80% 0%, rgba(47, 111, 224, .28), transparent 60%); }
.ah-in { max-width: 980px; }
.back { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--muted); margin-bottom: 30px; transition: color .3s, gap .3s; }
.back:hover { color: var(--text); gap: 12px; }
.back .ic { width: 15px; height: 15px; }
.ah .cat { font-family: var(--f-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--glow); margin: 0 0 16px; }
.ah h1 { margin: 0; font-family: var(--f-disp); font-weight: 330; letter-spacing: -.035em; font-size: clamp(36px, 4.6vw, 68px); line-height: 1.02; }
.ah .dek { margin: 22px 0 0; max-width: 64ch; font-size: 17px; line-height: 1.55; color: rgba(207, 222, 245, .82); }
.ah .meta { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin: 28px 0 0; padding: 18px 0; border-top: 1px solid var(--line-d); font-size: 13.5px; color: var(--muted); }
.ah .meta b { color: var(--text); font-weight: 450; }
.ah .meta .sp { flex: 1; }
.ah .meta button { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); transition: color .3s; }
.ah .meta button:hover { color: var(--text); }
.ah .meta .ic { width: 15px; height: 15px; }
.ah-hero { position: relative; margin-top: 40px; aspect-ratio: 21/9; overflow: hidden; background: #050D1C; }
.ah-hero img { width: 100%; height: 100%; object-fit: cover; }
.ah-al { padding-bottom: 56px; }
.ah-al .ah-in { grid-column: 2 / -1; max-width: 900px; }
.ab-hero { margin: 0 0 44px; border-radius: 4px; box-shadow: 0 30px 60px -32px rgba(10, 19, 38, .5); }
.ab { padding: 70px 0 120px; }
.ab-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 720px) minmax(0, 1fr); gap: 40px; }
.ab-side { position: sticky; top: 100px; align-self: start; }
.ab-side .toc-t { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted-l); margin: 0 0 12px; }
.ab-side .toc { display: grid; gap: 2px; max-height: calc(100vh - 160px); overflow-y: auto; }
.ab-side .toc a { display: block; padding: 6px 0 6px 12px; border-left: 2px solid var(--line-l); font-size: 13px; line-height: 1.35; color: var(--muted-l); transition: color .3s, border-color .3s; }
.ab-side .toc a:hover { color: var(--ink); }
.ab-side .toc a.is-on { color: var(--ink); border-color: var(--brand); }
.prose { font-size: 17px; line-height: 1.75; color: #1E2A40; }
.prose p { margin: 0 0 22px; }
.prose h2 { margin: 54px 0 16px; font-family: var(--f-disp); font-weight: 380; letter-spacing: -.02em; font-size: 30px; line-height: 1.15; color: var(--ink); scroll-margin-top: 90px; }
.prose h3 { margin: 32px 0 10px; font-size: 17px; font-weight: 600; color: var(--ink); }
.prose ul { margin: 0 0 24px; padding-left: 0; list-style: none; display: grid; gap: 10px; }
.prose li { position: relative; padding-left: 22px; }
.prose li::before { content: ""; position: absolute; left: 2px; top: .7em; width: 7px; height: 7px; background: var(--glow-2); }
.prose li b { color: var(--ink); font-weight: 600; }
.prose figure { margin: 34px 0; }
.prose figure img { width: 100%; height: auto; border-radius: 4px; box-shadow: 0 20px 50px -30px rgba(10, 19, 38, .45); cursor: zoom-in; }
.prose .src { font-size: 13px; line-height: 1.5; color: var(--muted-l); padding-left: 14px; border-left: 2px solid var(--line-l); }
.prose > p:first-child::first-letter { font-family: var(--f-disp); float: left; font-size: 4.1em; line-height: .85; padding: 6px 10px 0 0; color: var(--ink); }
.ab-end { margin-top: 60px; padding: 26px; background: var(--paper-2); display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.ab-end b { font-family: var(--f-disp); font-weight: 380; font-size: 22px; letter-spacing: -.02em; color: var(--ink); }
.ab-end p { margin: 4px 0 0; font-size: 14px; color: var(--muted-l); }
.more { padding: 0 0 130px; }
.more .ngrid, .more .rgrid { margin-top: 30px; }
.more .h-sec { font-size: clamp(28px, 2.6vw, 38px); }
.lightbox { position: fixed; inset: 0; z-index: 160; display: grid; place-items: center; padding: 30px; background: rgba(2, 6, 14, .9); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); cursor: zoom-out; }
.lightbox img { max-width: 100%; max-height: 100%; box-shadow: 0 30px 100px -20px #000; }
/* report viewer (equity research) */
.viewer { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 18px; }
.vthumbs { display: grid; gap: 8px; align-content: start; position: sticky; top: 100px; max-height: calc(100vh - 140px); overflow-y: auto; padding-right: 4px; }
.vthumbs button { position: relative; display: block; background: #fff; box-shadow: 0 0 0 1px var(--line-l); opacity: .55; transition: opacity .3s, box-shadow .3s; }
.vthumbs button img { width: 100%; height: auto; }
.vthumbs button span { position: absolute; left: 6px; bottom: 6px; font-family: var(--f-mono); font-size: 10px; padding: 1px 5px; background: var(--ink); color: var(--paper); }
.vthumbs button.is-on, .vthumbs button:hover { opacity: 1; }
.vthumbs button.is-on { box-shadow: 0 0 0 2px var(--brand); }
.vstage { position: relative; background: var(--paper-2); padding: 28px; display: grid; place-items: center; min-height: 600px; }
.vstage img { width: 100%; max-width: 760px; height: auto; background: #fff; box-shadow: 0 30px 70px -30px rgba(10, 19, 38, .5); }
.vctl { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.vctl .arrows button { background: var(--paper-2); color: var(--ink); }
.vctl .arrows button:hover { background: var(--paper-3); }
.vctl span { font-family: var(--f-mono); font-size: 12px; color: var(--muted-l); }
/* pdf report */
.pdfv { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 50px; align-items: start; }
.pdfv .cov { position: sticky; top: 100px; display: block; background: #fff; box-shadow: 0 40px 90px -40px rgba(10, 19, 38, .55), 0 0 0 1px var(--line-l); transform: perspective(1200px) rotateY(-6deg); transition: transform .8s var(--ease); }
.pdfv .cov:hover { transform: perspective(1200px) rotateY(0deg) translateY(-4px); }
.pdfv .cov img { width: 100%; height: auto; }
.pdfv .fig { display: inline-block; margin: 0 0 28px; padding: 18px 22px; background: var(--ink); color: var(--text); }
.pdfv .fig b { display: block; font-family: var(--f-disp); font-weight: 340; font-size: 46px; letter-spacing: -.03em; line-height: 1; }
.pdfv .fig small { display: block; margin-top: 8px; font-size: 13px; color: var(--muted); }
.pdfv .lead { font-family: var(--f-disp); font-weight: 360; font-size: clamp(22px, 2vw, 27px); letter-spacing: -.015em; line-height: 1.35; color: var(--ink); margin: 0 0 30px; }
.pdfv ol { list-style: none; margin: 0 0 34px; padding: 0; counter-reset: s; border-top: 1px solid var(--line-l); }
.pdfv li { counter-increment: s; display: grid; grid-template-columns: 44px 1fr; gap: 10px; padding: 14px 0; border-bottom: 1px solid var(--line-l); font-size: 15.5px; color: var(--ink); }
.pdfv li::before { content: counter(s, decimal-leading-zero); font-family: var(--f-mono); font-size: 12px; color: var(--brand); padding-top: 3px; }
.pdfv .btns .pill-line { border-color: var(--line-l); color: var(--ink); }
.pdfv .btns .pill-line:hover { background: var(--ink); color: var(--paper); }
.pdfv .fine { margin: 16px 0 0; font-size: 13px; color: var(--muted-l); }
.light .pill-line { border-color: rgba(10, 19, 38, .18); color: var(--ink); }
.light .pill-line:hover { background: var(--ink); color: var(--paper); }

.toast { position: fixed; z-index: 170; left: 50%; bottom: 28px; transform: translateX(-50%); padding: 11px 18px; border-radius: 999px; background: var(--text); color: var(--ink); font-size: 14px; box-shadow: 0 20px 50px -14px rgba(0, 0, 0, .6); }
.empty { padding: 50px 20px; text-align: center; color: var(--muted); grid-column: 1 / -1; }

/* ---------- responsive (K2 additions) ---------- */
@media (max-width: 1180px) {
  .nav-links { gap: 22px; font-size: 14px; }
  .nav-cta { gap: 16px; }
  .rgrid, .ngrid, .vgrid, .pf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-grid > .pfc, .pf-grid > .pfc:nth-child(n+4):nth-last-child(-n+2) { grid-column: auto; }
  .pf-grid > .pfc:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .ab-grid { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); }
  .ab-grid > .ab-r { display: none; }
}
@media (max-width: 1024px) {
  .desk { grid-template-columns: 1fr; }
  .desk-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-feat, .nw-feat, .ae-how-in, .prof-in, .ct-grid, .pdfv { grid-template-columns: 1fr; }
  .prof-ph { position: static; max-width: 420px; }
  .pdfv .cov { position: static; max-width: 360px; }
  .ab-grid { grid-template-columns: 1fr; }
  .ab-side { display: none; }
  .ah-al .ah-gap { display: none; }
  .ah-al .ah-in { grid-column: 1 / -1; }
  .adv-grid { grid-template-columns: 1fr; }
  .hrow { grid-template-columns: 70px minmax(0, 1fr) 40px; }
  .hrow .c { display: none; }
  .hprev { display: none; }
}
@media (max-width: 760px) {
  .brand-logo { height: 23px; }
  .desk-list { grid-template-columns: 1fr; }
  .dk:nth-child(n+4) { display: none; }
  .desk-view { min-height: 460px; }
  .dv { padding: 22px; }
  .dv .fig { top: 18px; right: 18px; left: 18px; text-align: left; }
  .dv .fig b { font-size: 30px; }
  .bar-row { grid-template-columns: 40px 1fr 20px; }
  .bar-row .bt { grid-column: 2 / 3; grid-row: 2; }
  .bar-row .bv { grid-row: 1 / 3; grid-column: 3; }
  .phead { min-height: 70svh; padding: 120px 0 50px; }
  .phead-lead { font-size: 15.5px; }
  .pf-grid, .rgrid, .ngrid, .vgrid { grid-template-columns: 1fr; }
  .pf-grid > .pfc:last-child:nth-child(odd) { grid-column: auto; }
  .pfc { min-height: 440px; }
  .rs-bar { margin-top: 50px; }
  .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--gut)); padding: 0 var(--gut); width: calc(100% + 2 * var(--gut)); }
  .chips::-webkit-scrollbar { display: none; }
  .chips button { flex: none; }
  .rs-search { width: 100%; }
  .ft { min-height: 380px; }
  .fside .fs { grid-template-columns: 96px 1fr; }
  .exp { grid-template-columns: 1fr; }
  .prof { padding-top: 110px; }
  .prof-in { gap: 36px; }
  .ct-form { padding: 22px; }
  .ct-form .row2 { grid-template-columns: 1fr; }
  .ah { padding-top: 110px; }
  .ah-hero { aspect-ratio: 16/10; }
  .prose { font-size: 16px; }
  .viewer { grid-template-columns: 1fr; }
  .vthumbs { position: static; grid-auto-flow: column; grid-auto-columns: 74px; overflow-x: auto; max-height: none; padding-bottom: 4px; }
  .vstage { padding: 12px; min-height: 0; }
  .lt { width: 160px; height: 90px; padding: 18px; }
  .band { padding: 80px 0; }
  .deals { padding: 80px 0 90px; }
  .hrow { grid-template-columns: 50px minmax(0, 1fr) 36px; gap: 12px; padding: 20px 0; }
  .dbox .dimg { height: 230px; }
  .ae-how { padding: 70px 0; }
}
.step > .ic { width: 15px; height: 15px; color: var(--glow); flex: none; }
a.step:hover { background: rgba(14, 33, 66, .92); }
.light-grid .rc { background: var(--paper-2); color: var(--ink); }
.light-grid .rc:hover { background: var(--paper-3); }
.light-grid .rc p, .light-grid .rc .by { color: var(--muted-l); border-color: var(--line-l); }
.light-grid .rc .top { color: var(--brand); }
.light-grid .rc .top span:last-child { color: var(--muted-l); }
.light-grid .nc .top span:last-child { color: var(--muted-l); }
.dv.pdf .dv-img { opacity: .5; }
.dv.pdf .dv-doc { position: absolute; z-index: 1; right: 6%; top: 9%; width: 34%; max-width: 330px; height: auto; background: #fff; transform: perspective(1200px) rotateY(-14deg) rotateZ(2deg); box-shadow: 0 50px 90px -30px rgba(0, 0, 0, .85), 0 0 0 1px rgba(160, 200, 255, .2); }
.dv.pdf::before { background: linear-gradient(90deg, rgba(2, 6, 14, .92) 30%, rgba(2, 6, 14, .4) 70%, rgba(2, 6, 14, .2)), linear-gradient(180deg, transparent 50%, rgba(2, 6, 14, .7)); }
.dv.pdf > :not(img) { max-width: 56%; }
.dv .fig.inl { position: relative; top: auto; right: auto; align-self: flex-start; text-align: left; margin-bottom: 22px; }
@media (max-width: 760px) {
  .dv.pdf .dv-doc { width: 38%; top: 18px; right: 18px; }
  .dv.pdf > :not(img) { max-width: none; }
  .dv .fig.inl { left: auto; }
}
.ft-pdf .ft-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; transition: transform 1.4s var(--ease); }
.ft-pdf .ft-doc { position: absolute; right: 7%; top: 9%; width: 34%; max-width: 280px; height: auto; background: #fff; transform: perspective(1200px) rotateY(-14deg) rotateZ(2deg); box-shadow: 0 50px 90px -30px rgba(0, 0, 0, .85); transition: transform .9s var(--ease); }
.ft-pdf:hover .ft-doc { transform: perspective(1200px) rotateY(-4deg) rotateZ(0deg) translateY(-6px); }
.ft-pdf:hover .ft-bg { transform: scale(1.05); }
.ft-pdf .fin { right: 40%; background: none; }
.ft-pdf::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(2, 6, 14, .9) 35%, rgba(2, 6, 14, .2)); }
.ft-fig { margin: 0 0 14px !important; font-size: 13px !important; color: var(--muted) !important; }
.ft-fig b { font-family: var(--f-disp); font-weight: 340; font-size: 30px; letter-spacing: -.02em; color: var(--text); margin-right: 6px; }
@media (max-width: 760px) { .ft-pdf .fin { right: 0; } .ft-pdf .ft-doc { width: 40%; top: 18px; right: 18px; } .ft-pdf::before { background: linear-gradient(180deg, rgba(2, 6, 14, .2), rgba(2, 6, 14, .92) 55%); } }
/* report covers: a paper thumbnail on navy instead of a duotone photo */
.duo.cover { background: radial-gradient(80% 90% at 50% 100%, rgba(47, 111, 224, .45), transparent 70%), #071226; padding: 22px 26px 0; }
.duo.cover::after { display: none; }
.duo.cover img { mix-blend-mode: normal; filter: none; opacity: 1; object-position: top; border-radius: 2px 2px 0 0; box-shadow: 0 20px 40px -18px rgba(0, 0, 0, .8); transform: none; }
a:hover .duo.cover img { transform: translateY(-5px); }
.light-grid .duo.cover { background: radial-gradient(80% 90% at 50% 100%, rgba(47, 111, 224, .25), transparent 70%), var(--paper-3); }
.fside .fs .duo.cover { padding: 8px 10px 0; }
/* artifact page contract: dark-first look, safe-area gutters, nav under the status bar */
:root { color-scheme: dark; }
.light, .ct-form { color-scheme: light; }
.wrap { padding-left: max(var(--gut), env(safe-area-inset-left, 0px)); padding-right: max(var(--gut), env(safe-area-inset-right, 0px)); }
.nav { height: calc(var(--nav-h) + env(safe-area-inset-top, 0px)); padding-top: env(safe-area-inset-top, 0px); }
.sheet { top: calc(var(--nav-h) + env(safe-area-inset-top, 0px)); }
.ready { margin-top: 6px; padding: 20px; background: var(--paper); border: 1px solid var(--line-l); display: grid; gap: 14px; }
.ready .rd-t { margin: 0; display: flex; align-items: center; gap: 8px; font-weight: 500; color: var(--ink); }
.ready .rd-t .ic { width: 16px; height: 16px; color: #0B7A53; }
.ready dl { margin: 0; display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 8px 12px; font-size: 14px; }
.ready dt { color: var(--muted-l); font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; padding-top: 3px; }
.ready dd { margin: 0; color: var(--ink); min-width: 0; overflow-wrap: anywhere; user-select: text; }
.ready dd.msg { white-space: pre-wrap; }
.cc b { user-select: text; }

/* ===== round 2 ===== */
/* quantitative strategies widget */
.w-quant { padding: 12px; }
.w-quant svg { width: 100%; height: 96px; margin: 8px 0 8px; overflow: visible; }
.q-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.q-steps div { border-radius: 8px; padding: 6px 7px; background: rgba(10, 19, 38, .05); font-size: 10.5px; line-height: 1.3; color: var(--muted-l); transition: background .5s, color .5s; }
.q-steps b { display: block; font-family: var(--f-mono); font-weight: 500; font-size: 9.5px; letter-spacing: .08em; color: var(--ink); margin-bottom: 2px; }
.q-steps div.is-on { background: rgba(47, 111, 224, .16); color: var(--ink); }
/* cross border network widget */
.w-net .orbit { transform-origin: 205px 104px; animation: netSpin 40s linear infinite; }
.w-net .halo { transform-box: fill-box; transform-origin: center; transition: fill .4s, transform .6s var(--ease); }
.w-net .nd.is-on .halo { fill: rgba(140, 195, 255, .32); transform: scale(1.5); }
.w-net .net-cap { font-family: var(--f-mono); font-size: 8.5px; letter-spacing: .1em; fill: rgba(160, 190, 230, .6); }
@keyframes netSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .w-net .orbit { animation: none; } }
/* investment banking widget */
.w-ib { padding: 12px; }
.ib-rows { display: grid; gap: 2px; margin: 10px 0 8px; }
.ib-row { display: grid; grid-template-columns: minmax(0, 1fr) 46px 64px; align-items: center; gap: 7px; padding: 7px 8px; border-radius: 8px; transition: background .5s; }
.ib-row.is-on { background: rgba(47, 111, 224, .12); }
.ib-n { font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ib-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px; }
.ib-bar i { height: 6px; border-radius: 2px; background: rgba(10, 19, 38, .1); transform-origin: left center; transition: background .5s; }
.ib-bar i.on { background: #2F6FE0; }
.ib-row.done .ib-bar i.on { background: #0E2142; }
.ib-row em { font-style: normal; font-family: var(--f-mono); font-size: 9px; letter-spacing: .02em; text-transform: uppercase; color: var(--muted-l); text-align: right; white-space: nowrap; }
.ib-row.done em { color: #20509A; }
.ib-stages { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.ib-stages span { text-align: center; padding: 6px 2px; border-radius: 6px; background: rgba(10, 19, 38, .05); font-family: var(--f-mono); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; color: var(--muted-l); transition: background .5s, color .5s; }
.ib-stages span.is-on { background: rgba(47, 111, 224, .16); color: var(--ink); }
/* franchise widget: arcs from Hong Kong */

/* footer: animated K2 CAPITAL mark (sweep of light, pointer spotlight, wipe-in on scroll) */
.foot-mark { padding-bottom: 6px; }
.fm { --mx: -40%; --my: 50%; width: 100%; aspect-ratio: 1694/262; -webkit-mask: var(--m) center / 100% 100% no-repeat; mask: var(--m) center / 100% 100% no-repeat;
  background: radial-gradient(circle min(26vw, 360px) at var(--mx) var(--my), rgba(140, 195, 255, .6), transparent 70%),
              linear-gradient(100deg, transparent 0%, rgba(170, 205, 255, .34) 50%, transparent 100%) -60% 0 / 34% 100% no-repeat,
              linear-gradient(180deg, rgba(160, 190, 255, .13), rgba(160, 190, 255, .05));
  animation: fmSweep 7s cubic-bezier(.5, 0, .3, 1) infinite; }
.fm.lit { transition: none; }
@keyframes fmSweep { 0% { background-position: 0 0, -60% 0, 0 0; } 55%, 100% { background-position: 0 0, 160% 0, 0 0; } }
@media (prefers-reduced-motion: reduce) { .fm { animation: none; } }


/* Aether growth path */
.ae-how-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); }
.ae-path { width: 100%; max-width: 640px; justify-self: end; }
.gp-top { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 14px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.gp-top span:first-child { color: var(--glow); }
.gp-box { position: relative; padding: 18px 14px 6px; background: radial-gradient(70% 80% at 85% 10%, rgba(47, 111, 224, .22), transparent 70%), linear-gradient(180deg, #071226, #050D1C); box-shadow: inset 0 0 0 1px rgba(160, 200, 255, .12); }
.gp-box svg { width: 100%; height: auto; overflow: visible; }
.gp-yr, .gp-ax { font-family: var(--f-mono); font-size: 10px; letter-spacing: .1em; fill: var(--muted); }
.gp-ax { fill: var(--dim); }
.gp-glow { opacity: .3; filter: blur(6px); }
.gp-n { cursor: pointer; outline: none; }
.gp-ring { opacity: 0; transform-box: fill-box; transform-origin: center; }
.gp-n.is-past .gp-dot { fill: #8CC3FF; }
.gp-n.is-on .gp-dot { fill: #EEF3FF; stroke: #EEF3FF; }
.gp-n.is-on .gp-ring { opacity: 1; animation: gpPulse 1.8s ease-out infinite; }
.gp-n:focus-visible .gp-ring { opacity: 1; }
@keyframes gpPulse { from { transform: scale(.6); opacity: .9; } to { transform: scale(2); opacity: 0; } }
.gp-head { filter: drop-shadow(0 0 8px #8CC3FF) drop-shadow(0 0 18px #4D8DFF); pointer-events: none; }
.gp-card { position: absolute; z-index: 2; width: 240px; padding: 14px 16px; border-radius: 12px; background: rgba(236, 242, 252, .94); color: var(--ink); box-shadow: 0 24px 50px -18px rgba(0, 8, 26, .8); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); pointer-events: none; transition: left .9s var(--ease), top .9s var(--ease), transform .9s var(--ease); }
.gp-card small { display: block; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--brand); margin-bottom: 4px; }
.gp-card b { display: block; font-weight: 500; font-size: 15px; line-height: 1.3; }
.gp-card span { display: block; margin-top: 4px; font-size: 12.5px; color: var(--muted-l); }

/* PDF report page: key facts on the left, summary and contents on the right */
.pdfv { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 60px; }
.pdf-side { position: sticky; top: 100px; display: grid; gap: 18px; align-content: start; }
.pdf-side .fig { margin: 0; }
.pdf-side .btns { flex-direction: column; align-items: flex-start; }

@media (max-width: 1024px) {
  .ae-how-in { grid-template-columns: 1fr; gap: 44px; }
  .ae-path { justify-self: stretch; max-width: none; }
  .pdfv { grid-template-columns: 1fr; gap: 30px; }
  .pdf-side { position: static; }
}
@media (max-width: 760px) {
  .gp-card { width: 190px; padding: 11px 12px; }
  .gp-card b { font-size: 13.5px; }
  .gp-box { padding: 12px 6px 4px; }
}
