/* ==========================================================================
   Kubair Technologies — art direction: "a house of learning, technology & stories"
   Black & gold, editorial serif display, mono annotations. No build step.
   ========================================================================== */
:root{
  --bg:#000; --bg-2:#07070a; --bg-3:#0d0d12; --panel:#0b0b0f;
  --ink:#f3efe6; --ink-2:#cfc8b8; --muted:#8d877b; --dim:#5d584f;
  --navy-1:#030a1a; --navy-2:#052234; --navy-3:#033045;
  --gold:#f2b506; --gold-hi:#ffd45c; --gold-lo:#a67c00; --gold-glow:rgba(242,181,6,.35);
  --line:rgba(243,239,230,.1); --line-2:rgba(243,239,230,.18);
  --serif:"Instrument Serif","Cormorant Garamond",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --w:1320px; --gut:clamp(1.25rem,4vw,3rem);
  --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.76,0,.24,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
::selection{background:var(--gold);color:#000}
img,svg,video,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration-color:var(--gold-lo);text-underline-offset:4px}
a:hover{color:var(--gold-hi)}
h1,h2,h3,h4{margin:0;font-weight:400;line-height:1.02;letter-spacing:-.01em}
p{margin:0 0 1.1em}
.wrap{width:min(100% - 2*var(--gut),var(--w));margin-inline:auto}
.mono{font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.gold{color:var(--gold)}
.serif{font-family:var(--serif)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:-999px;top:1rem;z-index:999;background:var(--gold);color:#000;padding:.6rem 1rem;font-weight:700}
.skip:focus{left:1rem}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.ph{background:rgba(242,181,6,.14);color:var(--gold-hi);border:1px dashed rgba(242,181,6,.45);padding:0 .35em;border-radius:3px;font-family:var(--mono);font-size:.82em;letter-spacing:0;-webkit-box-decoration-break:clone;box-decoration-break:clone}
/* grain */
body::after{content:"";position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* ---------- Header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:60;transition:background .5s var(--ease),border-color .5s,transform .5s var(--ease);border-bottom:1px solid transparent}
.hdr.scrolled{background:rgba(0,0,0,.72);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border-color:var(--line)}
.hdr.hide{transform:translateY(-100%)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:78px}
.brand{display:flex;align-items:center;gap:.9rem;text-decoration:none}
.brand img{height:34px;width:auto}
.brand small{font-family:var(--mono);font-size:.62rem;letter-spacing:.32em;color:var(--muted);padding-left:.9rem;border-left:1px solid var(--line-2);line-height:1.3}
.nav{display:flex;align-items:center;gap:2rem}
.nav a,.nav button{font:500 .88rem/1 var(--sans);letter-spacing:.02em;color:var(--ink-2);text-decoration:none;background:none;border:0;cursor:pointer;padding:.4rem 0;position:relative}
.nav a::after,.nav button::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav a:hover,.nav button:hover,.nav [aria-current]{color:var(--ink)}
.nav a:hover::after,.nav button:hover::after,.nav [aria-current]::after,.nav button[aria-expanded="true"]::after{transform:scaleX(1);transform-origin:left}
.nav .count{font-family:var(--mono);font-size:.62rem;color:var(--gold);vertical-align:super;margin-left:2px}
.burger{display:none;width:46px;height:46px;border:1px solid var(--line-2);border-radius:50%;background:none;cursor:pointer;position:relative}
.burger i,.burger i::before{position:absolute;left:14px;right:14px;height:1.5px;background:var(--ink);content:"";transition:.4s var(--ease)}
.burger i{top:20px}.burger i::before{top:5px;left:0;right:0}
.menu-open .burger i{transform:translateY(2.5px) rotate(45deg)}.menu-open .burger i::before{transform:translateY(-5px) rotate(-90deg)}

/* mega menu */
.mega{position:fixed;inset:78px 0 auto;z-index:55;background:rgba(3,3,5,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line);clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease-io);visibility:hidden}
.mega.open{clip-path:inset(0 0 0 0);visibility:visible}
.mega .wrap{display:grid;grid-template-columns:1fr 2.2fr;gap:3rem;padding:3rem 0 3.5rem}
.mega h2{font-family:var(--serif);font-size:2.6rem;line-height:1.05}
.mega h2 em{color:var(--gold)}
.mega-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 2.5rem;list-style:none;margin:0;padding:0}
.mega-list a{display:grid;grid-template-columns:3rem 1fr;gap:.2rem 0;padding:1rem 0;border-top:1px solid var(--line);text-decoration:none;transition:padding .4s var(--ease)}
.mega-list a:hover{padding-left:.6rem}
.mega-list b{font:400 1.45rem/1.1 var(--serif);color:var(--ink)}
.mega-list a:hover b{color:var(--gold-hi)}
.mega-list span.mono{grid-row:span 2;padding-top:.35rem;color:var(--gold)}
.mega-list small{color:var(--muted);font-size:.86rem;line-height:1.4}

/* ---------- Intro film (preloader) ---------- */
.intro{position:fixed;inset:0;z-index:200;background:#000;display:grid;place-items:center;transition:opacity 1s var(--ease),visibility 1s}
.intro video{width:min(72vmin,620px);height:auto;aspect-ratio:1;mix-blend-mode:screen}
.intro .skip-intro{position:absolute;right:var(--gut);bottom:2rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);background:none;border:1px solid var(--line-2);border-radius:999px;padding:.7rem 1.1rem;cursor:pointer}
.intro .skip-intro:hover{border-color:var(--gold);color:var(--gold)}
.intro .bar{position:absolute;left:var(--gut);right:var(--gut);bottom:1.2rem;height:1px;background:var(--line)}
.intro .bar i{display:block;height:100%;width:0;background:var(--gold);box-shadow:0 0 12px var(--gold)}
.intro .cap{position:absolute;left:var(--gut);bottom:2.2rem}
.intro.done{opacity:0;visibility:hidden}
html:not(.intro-playing) .intro{display:none}

/* ---------- Page transition curtain ---------- */
.curtain{position:fixed;inset:0;z-index:150;pointer-events:none;display:grid;place-items:center}
.curtain::before,.curtain::after{content:"";position:absolute;inset:0;transform:scaleY(0);transform-origin:bottom}
.curtain::before{background:var(--gold);transition:transform .55s var(--ease-io)}
.curtain::after{background:#000;transition:transform .55s var(--ease-io) .08s}
.curtain img{position:relative;z-index:2;width:64px;opacity:0;transform:translateY(20px) scale(.9);transition:.5s var(--ease) .2s;filter:drop-shadow(0 0 24px var(--gold-glow))}
.curtain.cover::before,.curtain.cover::after{transform:scaleY(1)}
.curtain.cover img{opacity:1;transform:none}
.curtain.reveal::before,.curtain.reveal::after{transform:scaleY(0);transform-origin:top}
.curtain.reveal::before{transition-delay:.12s}.curtain.reveal::after{transition-delay:0s}
.curtain.reveal img{opacity:0;transition-delay:0s}
html.arriving .curtain::before,html.arriving .curtain::after{transform:scaleY(1);transition:none}
html.arriving .curtain img{opacity:1;transform:none;transition:none}

/* ---------- Custom cursor ---------- */
.cursor{position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid rgba(242,181,6,.7);border-radius:50%;pointer-events:none;z-index:120;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s,border-color .35s;mix-blend-mode:difference;display:none}
.cursor.big{width:76px;height:76px;margin:-38px 0 0 -38px;background:rgba(242,181,6,.12);border-color:var(--gold)}
.cursor b{position:absolute;inset:0;display:grid;place-items:center;font:500 .55rem/1 var(--mono);letter-spacing:.14em;color:var(--gold);opacity:0;transition:opacity .3s}
.cursor.big b{opacity:1}
@media (pointer:fine){.cursor{display:block}}

/* ---------- Reveal ---------- */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv-mask{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease-io)}
.js .rv-mask.in{clip-path:inset(0 0 0 0)}
.js .split .w{display:inline-block;overflow:hidden;vertical-align:top}
.js .split .w>span{display:inline-block;transform:translateY(105%);transition:transform 1s var(--ease)}
.js .split.in .w>span{transform:none}

/* ==========================================================================
   HOME — gateway
   ========================================================================== */
.gateway{position:relative;height:100svh;min-height:640px;overflow:hidden;background:radial-gradient(900px 600px at 50% 52%,rgba(242,181,6,.07),transparent 60%),radial-gradient(1400px 900px at 85% -10%,var(--navy-3) 0%,var(--navy-2) 28%,var(--navy-1) 58%,#000 100%)}
.gateway::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22vh;background:linear-gradient(transparent,var(--navy-1));pointer-events:none;z-index:2}
#gateway-stage{position:absolute;inset:0}
#gateway-stage canvas{position:absolute;inset:0}
.gw-fallback{position:absolute;left:50%;top:50%;width:min(30vmin,260px);transform:translate(-50%,-55%);filter:drop-shadow(0 0 40px rgba(242,181,6,.35));animation:float 6s ease-in-out infinite}
.gateway-3d .gw-fallback{display:none}
@keyframes float{50%{transform:translate(-50%,-58%)}}
.gw-top{position:absolute;inset:110px var(--gut) auto;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;z-index:3}
.gw-title{max-width:30rem}
.gw-title h1{font-family:var(--serif);font-size:clamp(2.2rem,4.2vw,3.9rem);line-height:1}
.gw-title h1 em{color:var(--gold);font-style:italic}
.gw-title p{color:var(--ink-2);margin-top:1rem;max-width:26rem;font-size:.98rem}
.gw-meta{text-align:right}
.gw-meta .mono{display:block;line-height:2}
.gw-bottom{position:absolute;inset:auto var(--gut) 1.6rem;display:flex;justify-content:space-between;align-items:flex-end;z-index:3;pointer-events:none}
.gw-bottom>*{pointer-events:auto}
.scroll-cue{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.scroll-cue i{width:1px;height:46px;background:linear-gradient(var(--gold),transparent);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fff;animation:drip 2.2s var(--ease-io) infinite}
@keyframes drip{to{top:110%}}
#gateway-info{position:absolute;right:var(--gut);bottom:6rem;width:min(340px,80vw);z-index:4;border-left:1px solid var(--gold);padding:.4rem 0 .4rem 1.2rem;opacity:0;transform:translateX(20px);transition:.5s var(--ease);pointer-events:none}
#gateway-info.show{opacity:1;transform:none}
#gateway-info b{display:block;font:400 2rem/1.05 var(--serif);margin:.3rem 0 .4rem}
#gateway-info p{color:var(--ink-2);font-size:.92rem;margin:0}
.portal-labels{list-style:none;margin:0;padding:0}
.portal-label{position:absolute;left:0;top:0;z-index:5;text-decoration:none;text-align:center;white-space:nowrap;padding:.35rem .7rem;border-radius:999px;transition:background .3s,color .3s,opacity .4s;will-change:transform}
.portal-label .mono{display:block;font-size:.6rem;color:var(--gold);line-height:1.4}
.portal-label b{font:400 1.08rem/1.15 var(--serif);color:var(--ink);letter-spacing:.01em}
.gateway-3d .portal-label{left:0!important;top:0!important}
.portal-label.is-hot{background:rgba(242,181,6,.12)}
.portal-label.is-hot b{color:var(--gold-hi)}
/* no-3D fallback: portals as a constellation ring */
body:not(.gateway-3d) .portal-labels{position:absolute;left:50%;top:52%;width:min(84vmin,760px);height:min(64vmin,560px);transform:translate(-50%,-50%);z-index:3}
body:not(.gateway-3d) .portal-label{transform:translate(-50%,-50%);border:1px solid var(--line-2);background:rgba(0,0,0,.55)}
body:not(.gateway-3d) .portal-label:hover{border-color:var(--gold)}
.gw-hint{transition:opacity .8s}
body:not(.gateway-ready).gateway-3d .gw-hint{opacity:0}
.gateway-flying .gw-top,.gateway-flying .gw-bottom,.gateway-flying .portal-label{opacity:0!important;transition:opacity .4s}

/* manifesto */
.manifesto{padding:clamp(7rem,16vw,13rem) 0 clamp(5rem,10vw,8rem);position:relative}
.manifesto .mono{display:block;margin-bottom:2.2rem}
.manifesto p.big{font-family:var(--serif);font-size:clamp(2rem,4.6vw,4.4rem);line-height:1.08;max-width:22ch;margin:0}
.manifesto p.big .t{color:rgba(243,239,230,.16);transition:color .5s}
.manifesto p.big .t.on{color:var(--ink)}
.manifesto p.big .t.g.on{color:var(--gold)}
.manifesto .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:5rem;border-top:1px solid var(--line);padding-top:2rem}
.manifesto .cols p{color:var(--ink-2);font-size:.95rem}
.manifesto .cols b{display:block;font:400 1.6rem/1.1 var(--serif);color:var(--ink);margin-bottom:.6rem}

/* films */
.films{padding:clamp(4rem,9vw,8rem) 0;position:relative;overflow:hidden}
.films::before{content:"";position:absolute;inset:10% -10%;background:radial-gradient(600px 380px at 25% 50%,rgba(242,181,6,.12),transparent 70%),radial-gradient(600px 380px at 80% 40%,rgba(40,90,140,.18),transparent 70%);pointer-events:none}
.films-head{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:end;margin-bottom:4rem}
.films-head h2{font-family:var(--serif);font-size:clamp(2.6rem,6vw,5.6rem)}
.films-head h2 em{color:var(--gold)}
.films-head p{color:var(--ink-2);max-width:32rem}
.film-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);perspective:1600px}
.film{position:relative;transform-style:preserve-3d;transition:transform 1.4s var(--ease),opacity 1.4s var(--ease)}
.js .film{opacity:0;transform:rotateX(28deg) rotateY(var(--ry,0deg)) translateY(80px) scale(.92)}
.js .film.in{opacity:1;transform:rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg))}
.film:nth-child(2){margin-top:6rem}
.film-frame{position:relative;border-radius:18px;overflow:hidden;background:#000;aspect-ratio:1;box-shadow:0 50px 120px -30px rgba(0,0,0,.9),0 0 0 1px rgba(242,181,6,.22),0 0 80px -20px rgba(242,181,6,.35)}
.film-frame::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.12),transparent 30%,transparent 70%,rgba(242,181,6,.08));mix-blend-mode:screen}
.film-frame::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px)}
.film video{width:100%;height:100%;object-fit:cover}
.film .corner{position:absolute;width:22px;height:22px;border-color:var(--gold);border-style:solid;z-index:3;opacity:.8}
.film .c1{left:-10px;top:-10px;border-width:1px 0 0 1px}.film .c2{right:-10px;top:-10px;border-width:1px 1px 0 0}
.film .c3{left:-10px;bottom:-10px;border-width:0 0 1px 1px}.film .c4{right:-10px;bottom:-10px;border-width:0 1px 1px 0}
.film-ctrl{position:absolute;z-index:4;left:1rem;bottom:1rem;display:flex;gap:.5rem}
.film-ctrl button{font:500 .66rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:rgba(0,0,0,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line-2);border-radius:999px;padding:.6rem .9rem;cursor:pointer;display:inline-flex;gap:.5rem;align-items:center}
.film-ctrl button:hover,.film-ctrl button[aria-pressed="true"]{border-color:var(--gold);color:var(--gold)}
.film-ctrl svg{width:14px;height:14px}
.film figcaption{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;margin-top:1.4rem}
.film figcaption .mono{color:var(--gold);grid-row:span 2;padding-top:.3rem}
.film figcaption b{font:400 1.6rem/1.1 var(--serif)}
.film figcaption span{color:var(--muted);font-size:.92rem}

/* index of divisions */
.index{padding:clamp(5rem,10vw,9rem) 0;border-top:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:3rem;align-items:end;margin-bottom:3.5rem}
.sec-head h2{font-family:var(--serif);font-size:clamp(2.6rem,6vw,5.4rem)}
.sec-head h2 em{color:var(--gold)}
.sec-head p{color:var(--ink-2);max-width:36rem;margin:0}
.idx{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}
.idx a{display:grid;grid-template-columns:5rem minmax(0,1.3fr) minmax(0,1fr) 3rem;align-items:center;gap:1.5rem;padding:2rem 0;border-top:1px solid var(--line);text-decoration:none;position:relative;transition:padding .6s var(--ease)}
.idx a::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(242,181,6,.08),transparent 60%);opacity:0;transition:opacity .5s}
.idx a:hover{padding-left:1.2rem}
.idx a:hover::before{opacity:1}
.idx .mono{color:var(--gold)}
.idx b{font:400 clamp(1.9rem,3.6vw,3.3rem)/1 var(--serif);transition:color .4s}
.idx a:hover b{color:var(--gold-hi)}
.idx span.d{color:var(--muted);font-size:.95rem;line-height:1.5}
.idx svg{width:28px;height:28px;color:var(--gold);transition:transform .5s var(--ease)}
.idx a:hover svg{transform:translateX(8px) rotate(-45deg)}
.idx-preview{position:fixed;left:0;top:0;width:280px;height:340px;pointer-events:none;z-index:40;border-radius:14px;overflow:hidden;opacity:0;transform:translate(-50%,-50%) scale(.85) rotate(-4deg);transition:opacity .35s,transform .5s var(--ease);box-shadow:0 30px 80px rgba(0,0,0,.7)}
.idx-preview.show{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-2deg)}
.idx-preview>div{position:absolute;inset:0;opacity:0;transition:opacity .4s}
.idx-preview>div.on{opacity:1}

/* generative division art (used in previews, heroes and galleries) */
.art{position:relative;overflow:hidden;background:#0a0806}
.art::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 120%,rgba(0,0,0,.6),transparent 60%)}
.art-schools{background:radial-gradient(circle at 30% 30%,rgba(255,212,92,.55),transparent 40%),repeating-linear-gradient(0deg,rgba(242,181,6,.18) 0 1px,transparent 1px 22px),repeating-linear-gradient(90deg,rgba(242,181,6,.18) 0 1px,transparent 1px 22px),#120d02}
.art-automation{background:conic-gradient(from 120deg at 60% 40%,#000,#3a2a00,#f2b506,#000 60%),#000}
.art-rwa{background:linear-gradient(135deg,transparent 48%,rgba(242,181,6,.6) 49% 51%,transparent 52%) 0 0/40px 40px,linear-gradient(45deg,transparent 48%,rgba(242,181,6,.35) 49% 51%,transparent 52%) 0 0/40px 40px,radial-gradient(circle at 70% 30%,#5a4300,#000 70%)}
.art-cases{background:radial-gradient(circle at 50% 50%,#ffd45c 0 6%,transparent 7%),repeating-radial-gradient(circle at 50% 50%,transparent 0 22px,rgba(242,181,6,.35) 22px 23px),#050505}
.art-nft{background:conic-gradient(from 0deg,#1a1203,#f2b506,#3b2500,#ffe7a0,#1a1203)}
.art-nft::before{content:"";position:absolute;inset:22%;transform:rotate(45deg);border:1px solid rgba(0,0,0,.5);background:rgba(0,0,0,.25);backdrop-filter:blur(6px)}
.art-whiteboard{background:#f3efe6}
.art-whiteboard::before{content:"";position:absolute;inset:18%;border:3px solid #111;border-radius:48% 52% 40% 60%/55% 45% 55% 45%;transform:rotate(-8deg)}
.art-norse{background:repeating-linear-gradient(60deg,transparent 0 22px,rgba(242,181,6,.07) 22px 23px),repeating-linear-gradient(-60deg,transparent 0 22px,rgba(242,181,6,.05) 22px 23px),radial-gradient(120% 90% at 30% 20%,#7fa7b8 0%,#2f4652 38%,#0d161c 75%,#05080b 100%)}
.art-norse::before{content:"ᚠᚢᚦᚬᚱᚴ";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:400 clamp(1.2rem,4vw,2.6rem)/1 "Noto Sans Runic",var(--serif);letter-spacing:.25em;color:rgba(242,181,6,.75);text-shadow:0 0 18px rgba(242,181,6,.45);white-space:nowrap}
.art-about{background:radial-gradient(circle at 50% 40%,rgba(242,181,6,.5),transparent 55%),#000}
.art-contact{background:linear-gradient(180deg,#0b0b0f,#000)}

/* where to begin */
.paths{padding:clamp(5rem,10vw,9rem) 0;background:var(--bg-2);border-block:1px solid var(--line)}
.path-grid{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid var(--line)}
.path{padding:2rem 1.6rem 2.2rem;border-right:1px solid var(--line);position:relative;min-height:22rem;display:flex;flex-direction:column}
.path .mono{color:var(--gold)}
.path h3{font:400 2rem/1.05 var(--serif);margin:1.2rem 0 1rem}
.path p{color:var(--muted);font-size:.93rem}
.path ul{list-style:none;padding:0;margin:auto 0 0;display:grid;gap:.1rem}
.path li a{display:flex;justify-content:space-between;padding:.55rem 0;border-top:1px solid var(--line);text-decoration:none;font-size:.92rem;color:var(--ink-2)}
.path li a:hover{color:var(--gold-hi)}

/* library teaser */
.lib-teaser{padding:clamp(5rem,10vw,9rem) 0}

/* ==========================================================================
   DIVISION PAGES
   ========================================================================== */
.d-hero{position:relative;min-height:100svh;display:grid;align-items:end;padding:130px 0 3rem;overflow:hidden;background:radial-gradient(900px 600px at 75% 40%,rgba(242,181,6,.10),transparent 65%),#000}
.d-hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2rem;align-items:end}
.d-stage{position:absolute;right:-4vw;top:8vh;width:min(58vw,820px);aspect-ratio:1;z-index:1}
.d-stage canvas{position:absolute;inset:0}
.d-stage .fallback-art{position:absolute;inset:18%;border-radius:50%;opacity:.55;filter:blur(1px);-webkit-mask:radial-gradient(circle,#000 40%,transparent 70%);mask:radial-gradient(circle,#000 40%,transparent 70%)}
.d-stage.has-webgl .fallback-art{display:none}
.crumb{display:flex;gap:.6rem;align-items:center;margin-bottom:2rem}
.crumb a{text-decoration:none}
.d-hero h1{font-family:var(--serif);font-size:clamp(3.4rem,9.5vw,9.5rem);line-height:.92;letter-spacing:-.02em}
.d-hero h1 em{color:var(--gold);font-style:italic}
.d-hero .stand{font-size:clamp(1.05rem,1.4vw,1.3rem);color:var(--ink-2);max-width:36rem;margin:2rem 0 0}
.d-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-2);margin-top:3.5rem;position:relative;z-index:2}
.d-meta div{padding:1.1rem 1.2rem 0 0}
.d-meta dt{font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.3rem}
.d-meta dd{margin:0;color:var(--ink-2);font-size:.92rem;line-height:1.5}
.d-num{position:absolute;right:var(--gut);bottom:2.4rem;z-index:2;text-align:right}
.d-num b{display:block;font:400 clamp(4rem,10vw,9rem)/.8 var(--serif);color:transparent;-webkit-text-stroke:1px rgba(242,181,6,.55)}

.d-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(2rem,5vw,5rem);padding:clamp(4rem,8vw,7rem) 0}
.toc{position:sticky;top:110px;align-self:start;max-height:calc(100vh - 140px);overflow:auto}
.toc .mono{display:block;margin-bottom:1rem}
.toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.toc a{display:flex;gap:.8rem;padding:.55rem 0 .55rem 1.1rem;margin-left:-1px;border-left:1px solid transparent;text-decoration:none;color:var(--muted);font-size:.9rem;line-height:1.35;transition:color .3s,border-color .3s}
.toc a span{font-family:var(--mono);font-size:.7rem;color:var(--dim);padding-top:.15rem;min-width:1.6rem}
.toc a:hover,.toc a.on{color:var(--ink);border-color:var(--gold)}
.toc a.on span{color:var(--gold)}
.chapter{padding:0 0 clamp(4.5rem,9vw,8rem);scroll-margin-top:100px}
.ch-head{display:grid;grid-template-columns:4.5rem 1fr;align-items:baseline;border-top:1px solid var(--line-2);padding-top:1.4rem;margin-bottom:2.6rem}
.ch-head .mono{color:var(--gold)}
.ch-head h2{font-family:var(--serif);font-size:clamp(2.3rem,4.6vw,4.2rem)}
.ch-head h2 em{color:var(--gold)}
.ch-body{padding-left:4.5rem}
.prose{max-width:44rem;color:var(--ink-2)}
.prose strong{color:var(--ink);font-weight:600}
.lede{font-size:clamp(1.15rem,1.6vw,1.38rem);line-height:1.6;color:var(--ink)}
.lede::first-letter{float:left;font:400 5.4em/.82 var(--serif);color:var(--gold);padding:.06em .12em 0 0}
.pull{margin:3.5rem 0;padding:0 0 0 2rem;border-left:1px solid var(--gold);font:400 clamp(1.8rem,3.2vw,2.8rem)/1.15 var(--serif);color:var(--ink);max-width:36rem}
.pull cite{display:block;margin-top:1rem;font:400 .7rem/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-style:normal}
.two{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.ledger{border-top:1px solid var(--line)}
.ledger>div{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr) auto;gap:1.5rem;padding:1.3rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.ledger b{font:400 1.5rem/1.15 var(--serif);color:var(--ink)}
.ledger p{margin:0;color:var(--muted);font-size:.95rem}
.ledger .mono{color:var(--gold);white-space:nowrap}
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl::before{content:"";position:absolute;left:7px;top:.6rem;bottom:.6rem;width:1px;background:linear-gradient(var(--gold),var(--line))}
.tl li{position:relative;padding:0 0 2.2rem 2.6rem}
.tl li::before{content:"";position:absolute;left:0;top:.45rem;width:15px;height:15px;border-radius:50%;background:#000;border:1px solid var(--gold);box-shadow:0 0 0 4px #000,0 0 18px var(--gold-glow)}
.tl .mono{color:var(--gold)}
.tl b{display:block;font:400 1.55rem/1.15 var(--serif);margin:.2rem 0 .4rem}
.tl p{color:var(--muted);margin:0;max-width:38rem;font-size:.95rem}
.flow{display:grid;grid-template-columns:repeat(var(--n,4),1fr);counter-reset:f;position:relative;border-top:1px solid var(--line)}
.flow>div{padding:1.6rem 1.2rem 0 0;position:relative}
.flow>div::before{counter-increment:f;content:counter(f,decimal-leading-zero);font-family:var(--mono);font-size:.7rem;color:var(--gold);letter-spacing:.14em}
.flow>div::after{content:"";position:absolute;left:0;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}
.flow b{display:block;font:400 1.45rem/1.15 var(--serif);margin:.5rem 0}
.flow p{color:var(--muted);font-size:.92rem;margin:0}
.tiles{display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.tile{background:#000;padding:1.8rem 1.6rem;position:relative;transition:background .5s;--mx:50%;--my:50%}
.tile::before{content:"";position:absolute;inset:0;background:radial-gradient(320px circle at var(--mx) var(--my),rgba(242,181,6,.10),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none}
.tile:hover::before{opacity:1}
.tile .mono{color:var(--gold)}
.tile h3{font:400 1.7rem/1.1 var(--serif);margin:.9rem 0 .7rem}
.tile p{color:var(--muted);font-size:.93rem;margin:0}
.tile ul{margin:.8rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:.9rem}
.library{border:1px solid var(--line);background:var(--bg-2)}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem;border-bottom:1px solid var(--line);align-items:center}
.filters .mono{margin-right:.6rem}
.filters button{font:500 .7rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);background:none;border:1px solid var(--line-2);border-radius:999px;padding:.55rem .85rem;cursor:pointer;transition:.3s}
.filters button:hover{border-color:var(--gold)}
.filters button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#000}
.lib-row{display:grid;grid-template-columns:7.5rem minmax(0,1fr) 9rem 7.5rem;gap:1rem;align-items:center;padding:1rem;border-bottom:1px solid var(--line);transition:background .3s}
.lib-row:last-child{border-bottom:0}
.lib-row:hover{background:rgba(242,181,6,.05)}
.lib-row[hidden]{display:none}
.lib-row .mono{color:var(--gold);font-size:.66rem}
.lib-row b{font-weight:500;color:var(--ink)}
.lib-row small{display:block;color:var(--muted);font-size:.84rem;line-height:1.4}
.lib-row .lvl{color:var(--muted);font-size:.85rem}
.status{justify-self:end;font:500 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:.4rem .6rem;border-radius:999px;border:1px solid var(--line-2);color:var(--muted)}
.status.soon{border-color:rgba(242,181,6,.4);color:var(--gold)}
.gallery{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:140px;gap:1rem}
.g-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.g-item .art{position:absolute;inset:0;transition:transform 1.2s var(--ease)}
.g-item:hover .art{transform:scale(1.06)}
.g-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:1rem;background:linear-gradient(transparent,rgba(0,0,0,.85));z-index:2}
.g-item figcaption b{display:block;font:400 1.25rem/1.1 var(--serif)}
.g-item figcaption span{font-size:.8rem;color:var(--ink-2)}
.g-a{grid-column:span 3;grid-row:span 3}.g-b{grid-column:span 3;grid-row:span 2}.g-c{grid-column:span 2;grid-row:span 2}.g-d{grid-column:span 1;grid-row:span 1}.g-e{grid-column:span 2;grid-row:span 2}.g-f{grid-column:span 2;grid-row:span 2}
.anatomy{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;margin:1rem 0}
.anatomy>div{padding:1.4rem;border:1px solid var(--line);margin-left:-1px;position:relative;background:#000}
.anatomy>div:not(:last-child)::after{content:"→";position:absolute;right:-.7rem;top:50%;transform:translateY(-50%);z-index:2;background:#000;color:var(--gold);font-family:var(--mono);padding:.2rem 0}
.anatomy .mono{color:var(--gold)}
.anatomy b{display:block;font:400 1.45rem/1.1 var(--serif);margin:.6rem 0 .4rem}
.anatomy p{color:var(--muted);font-size:.88rem;margin:0}
.glossary{display:grid;grid-template-columns:1fr 1fr;gap:0 3rem;margin:0}
.glossary div{padding:1rem 0;border-top:1px solid var(--line)}
.glossary dt{font:400 1.3rem/1.2 var(--serif);color:var(--ink)}
.glossary dd{margin:.3rem 0 0;color:var(--muted);font-size:.92rem}
.syllabus{list-style:none;margin:0;padding:0;counter-reset:m;border-top:1px solid var(--line)}
.syllabus li{counter-increment:m;display:grid;grid-template-columns:4rem minmax(0,1fr) minmax(0,1.3fr);gap:1.5rem;padding:1.4rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.syllabus li::before{content:"M" counter(m,decimal-leading-zero);font-family:var(--mono);font-size:.74rem;color:var(--gold);letter-spacing:.12em}
.syllabus b{font:400 1.45rem/1.15 var(--serif)}
.syllabus p{margin:0;color:var(--muted);font-size:.93rem}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:2rem;padding:1.4rem 0;font:400 1.4rem/1.25 var(--serif);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:300 1.6rem/1 var(--sans);color:var(--gold);transition:transform .4s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--muted);max-width:44rem;margin:-.4rem 0 1.4rem}
.note{border:1px solid rgba(242,181,6,.35);background:rgba(242,181,6,.06);padding:1.1rem 1.3rem;color:var(--ink-2);font-size:.92rem;border-radius:4px}
.note b{color:var(--gold)}
.screen{position:relative;border:1px solid var(--line-2);border-radius:14px;overflow:hidden;background:#000;aspect-ratio:16/9;display:grid;place-items:center}
.screen .art{position:absolute;inset:0;opacity:.35}
.screen .play{position:relative;z-index:2;width:84px;height:84px;border-radius:50%;border:1px solid var(--gold);display:grid;place-items:center;color:var(--gold);background:rgba(0,0,0,.4);backdrop-filter:blur(6px)}
.screen .play svg{width:26px;height:26px;margin-left:4px}
.screen figcaption{position:absolute;left:1.2rem;bottom:1rem;z-index:2}
.playlist{display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:2rem;margin-top:2.5rem}
.playlist h3{font:400 1.6rem/1.1 var(--serif);margin:.6rem 0 1rem}
.playlist ol{list-style:none;margin:0;padding:0;counter-reset:e}
.playlist li{counter-increment:e;display:grid;grid-template-columns:2.4rem 1fr auto;gap:.5rem;padding:.7rem 0;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink-2)}
.playlist li::before{content:counter(e,decimal-leading-zero);font-family:var(--mono);font-size:.7rem;color:var(--gold);padding-top:.2rem}
.playlist li em{font-style:normal;font-family:var(--mono);font-size:.64rem;color:var(--muted);letter-spacing:.1em;padding-top:.25rem}
.stack{display:flex;flex-wrap:wrap;gap:.6rem}
.stack span{font:500 .78rem/1 var(--mono);letter-spacing:.06em;border:1px solid var(--line-2);border-radius:999px;padding:.6rem .9rem;color:var(--ink-2)}
.stack span b{color:var(--gold);font-weight:500;margin-right:.35rem}
.illus{font-size:.82rem;color:var(--muted);font-family:var(--mono);letter-spacing:.04em;margin-bottom:1.5rem}
.contact-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:1rem 2rem;border-top:1px solid var(--line);padding-top:1.4rem}
.contact-line a{font:400 clamp(1.6rem,3vw,2.4rem)/1 var(--serif);text-decoration:none;color:var(--ink);background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size .6s var(--ease)}
.contact-line a:hover{background-size:100% 1px;color:var(--gold-hi)}

/* next chapter */
.next{display:block;position:relative;overflow:hidden;text-decoration:none;border-top:1px solid var(--line);padding:clamp(4rem,9vw,8rem) 0}
.next .art{position:absolute;inset:0;opacity:0;transition:opacity .8s var(--ease)}
.next:hover .art{opacity:.25}
.next .wrap{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem}
.next b{display:block;font:400 clamp(3rem,9vw,8.5rem)/.9 var(--serif);transition:transform .8s var(--ease),color .4s}
.next:hover b{transform:translateX(1.5rem);color:var(--gold-hi)}
.next svg{width:clamp(48px,6vw,90px);height:auto;color:var(--gold);transition:transform .8s var(--ease)}
.next:hover svg{transform:rotate(-45deg)}

/* contact form */
.form{display:grid;gap:1.4rem;max-width:44rem}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.form label{display:grid;gap:.5rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.form input,.form select,.form textarea{font:400 1.05rem/1.4 var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line-2);padding:.7rem 0;border-radius:0;transition:border-color .3s;letter-spacing:0;text-transform:none}
.form select option{background:#000}
.form textarea{min-height:140px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold)}
.btn{display:inline-flex;align-items:center;gap:.8rem;font:500 .78rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#000;background:var(--gold);border:0;border-radius:999px;padding:1.05rem 1.5rem;cursor:pointer;text-decoration:none;transition:transform .4s var(--ease),box-shadow .4s}
.btn:hover{color:#000;box-shadow:0 0 40px -6px var(--gold-glow)}
.btn svg{width:16px;height:16px}
.btn-line{background:none;color:var(--ink);border:1px solid var(--line-2)}
.btn-line:hover{color:var(--gold);border-color:var(--gold)}

/* footer */
.ftr{border-top:1px solid var(--line);padding:5rem 0 2rem;position:relative;overflow:hidden;background:#000}
.ftr-top{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:2.5rem}
.ftr h4{font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem;font-weight:500}
.ftr ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.ftr a{text-decoration:none;color:var(--ink-2);font-size:.93rem}
.ftr a:hover{color:var(--gold-hi)}
.ftr p{color:var(--muted);font-size:.92rem;max-width:22rem}
.ftr-mark{display:flex;align-items:flex-end;gap:2vw;margin:5rem 0 2.5rem}
.ftr-mark img{width:14vw;max-width:190px;height:auto;filter:drop-shadow(0 0 40px rgba(242,181,6,.25))}
.ftr-mark .word{width:100%;height:auto;opacity:.95}
.ftr-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-top:1px solid var(--line);padding-top:1.4rem;color:var(--dim);font-size:.8rem}


/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .path-grid{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(4,1fr)}.g-a,.g-b{grid-column:span 4}.g-c,.g-e,.g-f{grid-column:span 2}.g-d{grid-column:span 2}
}
@media (max-width:900px){
  .nav{position:fixed;inset:0;z-index:58;background:#000;flex-direction:column;align-items:flex-start;justify-content:center;gap:1.2rem;padding:0 var(--gut);clip-path:circle(0 at calc(100% - 46px) 39px);transition:clip-path .8s var(--ease-io)}
  .menu-open .nav{clip-path:circle(150% at calc(100% - 46px) 39px)}
  .nav a,.nav button{font:400 2.4rem/1.1 var(--serif);color:var(--ink)}
  .nav .m-only{display:block}
  .burger{display:block;z-index:61}
  .brand small{display:none}
  .mega{display:none}
  .mega-m{display:grid!important}
  .d-layout{grid-template-columns:1fr}
  .toc{display:none}
  .ch-body{padding-left:0}
  .d-hero .wrap,.films-head,.sec-head,.two,.film-row,.manifesto .cols,.mega .wrap{grid-template-columns:1fr}
  .film:nth-child(2){margin-top:0}
  .d-stage{position:relative;right:auto;top:auto;width:100%;max-width:520px;margin:-2rem auto -4rem;order:-1}
  .d-hero{align-items:start;padding-top:100px}
  .d-hero .wrap{display:flex;flex-direction:column;align-items:stretch}
  .d-num{display:none}
  .idx a{grid-template-columns:3rem 1fr 2rem}.idx span.d{display:none}
  .ledger>div,.syllabus li{grid-template-columns:1fr}
  .flow{--n:2!important;row-gap:2rem}
  .tiles{--n:1!important}
  .anatomy{grid-template-columns:1fr 1fr}.anatomy>div::after{display:none}
  .playlist{--n:1!important}
  .lib-row{grid-template-columns:1fr auto}.lib-row .lvl,.lib-row>.mono{display:none}
  .glossary{grid-template-columns:1fr}
  .ftr-top{grid-template-columns:1fr 1fr}
  .gw-meta{display:none}
  #gateway-info{display:none}
}
.m-only{display:none}
.mega-m{display:none}
@media (max-width:600px){
  body{font-size:16px}
  .form .row,.path-grid,.ftr-top{grid-template-columns:1fr}
  .d-meta{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:120px}.g-a,.g-b,.g-c,.g-d,.g-e,.g-f{grid-column:span 2;grid-row:span 2}
  .portal-label b{font-size:.9rem}
  .gw-top{top:96px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .rv,.js .film,.js .split .w>span{opacity:1!important;transform:none!important}.js .rv-mask{clip-path:none!important}
}

/* ecosystem feature (Film 02) — background matched to the film's final navy frame */
.eco{position:relative;overflow:hidden;padding:clamp(5rem,10vw,9rem) 0;background:radial-gradient(1100px 800px at 18% 45%,var(--navy-2) 0%,var(--navy-1) 55%,#02060f 100%);border-bottom:1px solid var(--line)}
.eco::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 500px at 30% 20%,rgba(3,48,69,.9),transparent 70%);pointer-events:none}
.eco::after{content:"";position:absolute;left:0;right:0;bottom:0;height:18vh;background:linear-gradient(transparent,#000);pointer-events:none}
.eco-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2rem,5vw,5rem);align-items:center;perspective:1800px}
.film-hero .film-frame{background:transparent;box-shadow:none;border-radius:0;-webkit-mask:radial-gradient(closest-side,#000 70%,transparent 100%);mask:radial-gradient(closest-side,#000 70%,transparent 100%)}
.film-hero .film-frame::before,.film-hero .film-frame::after{display:none}
.film-hero .film-ctrl{left:50%;bottom:6%;transform:translateX(-50%)}
.film-hero figcaption{justify-content:center}
.eco-copy h2{font-family:var(--serif);font-size:clamp(2.6rem,5.4vw,5rem);margin:1.2rem 0 1.4rem}
.eco-copy h2 em{color:var(--gold)}
.eco-copy>p{color:var(--ink-2);max-width:32rem}
.eco-list{list-style:none;margin:2rem 0;padding:0;border-top:1px solid rgba(214,230,255,.14)}
.eco-list li{display:grid;grid-template-columns:2.2rem 1fr;gap:.8rem;padding:1rem 0;border-bottom:1px solid rgba(214,230,255,.14);color:var(--ink-2);font-size:.95rem}
.eco-list li::before{content:"";width:12px;height:12px;margin-top:.45rem;border-radius:50%;background:#fff;box-shadow:0 0 14px 3px rgba(214,230,255,.7)}
.eco-list b{color:var(--ink);font-weight:600}
.eco-mini{display:flex;gap:1.2rem;align-items:center;margin-top:2rem}
.eco-mini video{width:120px;height:120px;border-radius:10px;object-fit:cover;box-shadow:0 0 0 1px rgba(242,181,6,.3),0 20px 40px rgba(0,0,0,.5)}
.eco-mini b{display:block;font:400 1.3rem/1.1 var(--serif);margin:.2rem 0 .6rem}
@media (max-width:900px){.eco-grid{grid-template-columns:1fr}}
.film-hero video{mix-blend-mode:screen}
.film-hero .film-frame{isolation:auto}
.ftr-mark{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:3vw}
.ftr-mark img{width:clamp(80px,11vw,170px)}
.ftr-mark .word{width:100%;max-width:none}
.status{white-space:nowrap}
.lib-row{grid-template-columns:7.5rem minmax(0,1fr) 8rem 9.5rem}
@media (max-width:900px){.lib-row{grid-template-columns:1fr auto}}
.d-stage canvas{mix-blend-mode:screen}

.d-stage{-webkit-mask:radial-gradient(closest-side,#000 62%,transparent 100%);mask:radial-gradient(closest-side,#000 62%,transparent 100%)}
@media (max-width:900px){
  .nav [data-mega]{display:none}
  #gateway-stage{top:24svh}
  .gw-top{top:92px}
  .gw-title p{display:none}
  .gw-bottom .gw-hint{max-width:60%}
}
body:not(.gateway-3d) .portal-labels{top:58%;width:min(74vmin,700px)}
@media (max-width:600px){.portal-label .mono{display:none}}
@media (prefers-reduced-motion:reduce){.cursor{display:none!important}}

/* ---------- Norse Studies (division 07) ---------- */
.theme-norse .d-hero{background:radial-gradient(900px 620px at 72% 38%,rgba(127,167,184,.22),transparent 65%),radial-gradient(700px 500px at 15% 90%,rgba(3,48,69,.55),transparent 70%),linear-gradient(180deg,#05090c,#000 85%)}
.theme-norse .d-hero h1 em{color:#bcd3dc}
.runes{display:grid;grid-template-columns:repeat(8,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:2.5rem}
.rune{background:#000;padding:1.2rem .6rem 1rem;text-align:center;transition:background .5s}
.rune:hover{background:#071017}
.rune b{display:block;font:400 2.6rem/1.1 "Noto Sans Runic",var(--serif);color:var(--gold);text-shadow:0 0 22px rgba(242,181,6,.35)}
.rune .mono{display:block;color:#9fc0cc;margin:.5rem 0 .15rem;text-transform:none}
.rune em{display:block;font:italic 400 1.15rem/1.2 var(--serif);color:var(--ink)}
.rune small{display:block;color:var(--muted);font-size:.74rem;line-height:1.3;margin-top:.2rem}
.realms{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:2rem 0 0}
.realms>div{background:linear-gradient(180deg,#000,#04090c);padding:1.5rem 1.4rem}
.realms .mono{color:#9fc0cc}
.realms b{display:block;font:400 1.5rem/1.15 var(--serif);margin:.5rem 0 .4rem}
.realms p{margin:0;color:var(--muted);font-size:.9rem}
.realms>div:nth-child(4){background:radial-gradient(260px circle at 50% 0,rgba(242,181,6,.12),transparent 70%),#000}
.realms + .illus + .tiles{margin-top:2.5rem}
.words{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:2rem}
.words>div{background:#000;padding:1.2rem 1.1rem}
.words b{display:block;font:400 1.55rem/1.1 var(--serif);color:var(--ink)}
.words span{display:block;font-family:var(--mono);font-size:.8rem;color:var(--gold);margin:.35rem 0 .1rem}
.words small{color:var(--muted);font-size:.8rem}
.reading{border-top:1px solid var(--line)}
.reading a{display:grid;grid-template-columns:3rem minmax(0,1fr) minmax(0,1.6fr) 2rem;gap:1.2rem;align-items:baseline;padding:1.2rem 0;border-bottom:1px solid var(--line);text-decoration:none;transition:background .4s,padding .4s var(--ease)}
.reading a:hover{background:linear-gradient(90deg,rgba(127,167,184,.08),transparent);padding-left:.8rem}
.reading .mono{color:var(--gold)}
.reading b{font:400 1.4rem/1.15 var(--serif)}
.reading p{margin:0;color:var(--muted);font-size:.9rem}
.reading i{font-style:normal;color:var(--gold)}
.reading + .illus + .contact-line{margin-top:3rem}
@media (max-width:1100px){.runes{grid-template-columns:repeat(4,1fr)}.words{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.realms{grid-template-columns:1fr 1fr}.reading a{grid-template-columns:2.4rem 1fr 1.4rem}.reading p{grid-column:2}}
@media (max-width:600px){.runes{grid-template-columns:repeat(4,1fr)}.rune b{font-size:2rem}.realms,.words{grid-template-columns:1fr 1fr}}

/* trade mark (UK00004454405) */
.brand-lock{position:relative;display:inline-flex;align-items:flex-start;line-height:0}
.brand-lock .tm{position:absolute;top:.66rem;right:-.5rem;font:600 .56rem/1 var(--sans);color:var(--gold);letter-spacing:0;pointer-events:none}
.word-lock{position:relative;display:block;padding-right:clamp(.9rem,2.2vw,2.2rem);min-width:0}
.word-lock .tm{position:absolute;top:0;right:0;font:600 clamp(.7rem,1.6vw,1.6rem)/1 var(--sans);color:var(--gold);opacity:.95}
.ftr-tm{flex-basis:100%;color:var(--dim)}
/* mobile fixes: keep 3D portal labels under the open menu; don't clip italic descenders in split headings */
.gateway{isolation:isolate}
.menu-open .portal-labels{visibility:hidden}
.js .split .w{padding:0 .08em .14em 0;margin:0 -.08em -.14em 0}
/* ---------- Kubair Labs: Jarl Storm ---------- */
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nav-lab .count{letter-spacing:.06em}
.theme-jarl .d-hero{background:radial-gradient(820px 600px at 74% 40%,rgba(242,181,6,.13),transparent 64%),radial-gradient(600px 420px at 12% 92%,rgba(166,124,0,.12),transparent 70%),linear-gradient(180deg,#050402,#000 80%)}
.art-jarl{background:radial-gradient(70% 60% at 50% 45%,rgba(242,181,6,.28),transparent 70%),repeating-linear-gradient(0deg,transparent 0 26px,rgba(242,181,6,.07) 26px 27px),#060503}
.art-jarl::before{content:"ᛁᛅᚱᛚ";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);letter-spacing:.2em;white-space:nowrap;font:400 clamp(2rem,6vw,4.2rem)/1 "Noto Sans Runic",var(--serif);color:rgba(242,181,6,.85);text-shadow:0 0 30px rgba(242,181,6,.5)}
.js-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}
.js-cta .btn{min-height:48px}
.js-note{font:400 .72rem/1.6 var(--mono);letter-spacing:.03em;color:var(--muted);margin-top:1.1rem;max-width:36rem}
.js-word{display:grid;justify-items:start;gap:.4rem;padding:2rem;border:1px solid var(--line-2);border-radius:18px;background:radial-gradient(120% 120% at 0 0,rgba(242,181,6,.08),transparent 60%)}
.js-word span{font:400 clamp(2.4rem,5vw,3.6rem)/1 "Noto Sans Runic",var(--serif);color:var(--gold);letter-spacing:.2em;text-shadow:0 0 22px rgba(242,181,6,.35)}
.js-word b{font:400 2rem/1 var(--serif);font-style:italic;color:var(--ink)}
.js-word small{font:400 .7rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.js-enter{padding:clamp(1.6rem,4vw,2.6rem);border:1px solid rgba(242,181,6,.35);border-radius:22px;background:radial-gradient(100% 140% at 100% 0,rgba(242,181,6,.12),transparent 60%),#050403}
.js-enter p:first-child{color:var(--ink-2);margin:0 0 1.4rem}
.labs-band{padding:0 0 clamp(3rem,7vw,6rem)}
.labs-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(1.2rem,3vw,2.6rem);padding:clamp(1.4rem,3.4vw,2.6rem);border:1px solid rgba(242,181,6,.3);border-radius:24px;text-decoration:none;color:inherit;overflow:hidden;background:radial-gradient(80% 160% at 0 50%,rgba(242,181,6,.12),transparent 60%),#050403;transition:border-color .5s var(--ease),transform .6s var(--ease)}
.labs-card:hover{border-color:var(--gold);transform:translateY(-3px)}
.labs-card h2{font:400 clamp(2rem,4vw,3.2rem)/1 var(--serif);margin:.5rem 0 .7rem;color:var(--ink)}
.labs-card h2 em{color:var(--gold)}
.labs-card p{color:var(--ink-2);margin:0;max-width:44rem}
.labs-rune{font:400 clamp(2rem,4vw,3rem)/1 "Noto Sans Runic",var(--serif);letter-spacing:.18em;white-space:nowrap;color:var(--gold);text-shadow:0 0 30px rgba(242,181,6,.45);animation:labsGlow 4.5s ease-in-out infinite}
.labs-go{display:inline-flex;align-items:center;gap:.6rem;font:500 .74rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);white-space:nowrap}
.labs-go svg{width:18px;height:18px}
@keyframes labsGlow{0%,100%{text-shadow:0 0 18px rgba(242,181,6,.3)}50%{text-shadow:0 0 42px rgba(242,181,6,.7)}}
@media (prefers-reduced-motion:reduce){.labs-rune{animation:none}}
@media (max-width:700px){.labs-card{grid-template-columns:1fr;gap:.8rem}.labs-rune{font-size:2rem}}
@media (max-width:900px){.nav{overflow-y:auto}}
@media (max-width:900px) and (max-height:760px){.nav{gap:.75rem}.nav a,.nav button{font-size:1.95rem}}
/* Jarl Storm live-platform pill in the homepage hero (works on every size, touch-friendly) */
.js-pill{pointer-events:auto;display:inline-flex;align-items:center;gap:.6rem;margin-top:1.4rem;min-height:44px;padding:.55rem 1.05rem .55rem .85rem;border:1px solid rgba(242,181,6,.55);border-radius:999px;background:rgba(10,8,3,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-decoration:none;color:var(--ink);box-shadow:0 0 28px -8px var(--gold-glow);transition:border-color .4s var(--ease),box-shadow .4s var(--ease),transform .4s var(--ease);position:relative;z-index:6}
.js-pill:hover,.js-pill:focus-visible{border-color:var(--gold);box-shadow:0 0 38px -4px var(--gold-glow);transform:translateY(-1px)}
.js-pill i{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(242,181,6,.6);animation:jsPulse 2.2s ease-out infinite;flex:none}
.js-pill b{font:500 .95rem/1 var(--sans);color:var(--gold-hi)}
.js-pill span:not(.sr){font:400 .66rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);padding-left:.6rem;border-left:1px solid var(--line-2)}
.js-pill em{font-style:normal;color:var(--gold);font-size:.95rem}
@keyframes jsPulse{0%{box-shadow:0 0 0 0 rgba(242,181,6,.55)}80%,100%{box-shadow:0 0 0 9px rgba(242,181,6,0)}}
@media (prefers-reduced-motion:reduce){.js-pill i{animation:none}}
.gateway-flying .js-pill{opacity:0}
@media (max-width:900px){.nav .nav-lab{color:var(--gold-hi)}}
/* hero side column: pill top-right on wide screens (clear of the orbit), under the headline on tablets/phones */
.gw-side{display:flex;flex-direction:column;align-items:flex-end;gap:1.4rem}
.gw-side .js-pill{margin-top:0}
@media (max-width:900px){.gw-top{flex-direction:column;align-items:flex-start;gap:1.3rem}.gw-side{align-items:flex-start}}
/* no-WebGL / reduced-motion gateway on landscape tablets & desktops: keep the portal ring clear of the headline */
@media (min-width:901px){
  body:not(.gateway-3d) .portal-labels{left:60%;top:58%;width:min(66vmin,640px);height:min(54vmin,500px)}
  body:not(.gateway-3d) .gw-fallback{left:60%;top:58%;width:min(24vmin,220px)}
}
/* no-WebGL / reduced-motion gateway on phones & portrait tablets: ring sits below the headline + Jarl Storm pill, inside the screen */
@media (max-width:900px){
  body:not(.gateway-3d) .portal-labels{top:63%;width:min(56vmin,520px);height:min(50vmin,460px)}
  body:not(.gateway-3d) .gw-fallback{top:63%;width:min(22vmin,180px)}
}
@media (max-width:600px){
  body:not(.gateway-3d) .portal-label{padding:.3rem .6rem}
  body:not(.gateway-3d) .portal-label b{font-size:.9rem}
}
@media (max-width:600px){
  body:not(.gateway-3d) .portal-label[href="whiteboard-explainers.html"]{left:20%!important;top:97%!important}
  body:not(.gateway-3d) .portal-label[href="ai-case-studies.html"]{left:82%!important;top:105%!important}
}
@media (max-width:380px){
  body:not(.gateway-3d) .portal-labels{width:min(62vmin,520px);height:min(52vmin,460px)}
  body:not(.gateway-3d) .portal-label{padding:.25rem .5rem}
  body:not(.gateway-3d) .portal-label b{font-size:.8rem}
  body:not(.gateway-3d) .portal-labels{top:68%}
  body:not(.gateway-3d) .gw-fallback{top:68%}
  body:not(.gateway-3d) .portal-label[href="ai-in-schools.html"]{top:8%!important}
  body:not(.gateway-3d) .portal-label[href="ai-automation.html"],body:not(.gateway-3d) .portal-label[href="norse-studies.html"]{top:25%!important}
  body:not(.gateway-3d) .portal-label[href="whiteboard-explainers.html"]{left:18%!important;top:96%!important}
  body:not(.gateway-3d) .portal-label[href="ai-case-studies.html"]{left:84%!important;top:110%!important}
}
/* ---------- mobile intro: 4s mobile film, or the CSS/SVG gold trident-K reveal (never a plain black screen) ---------- */
.intro .ik{display:none}
.h-touch{display:none}
@media (hover:none),(pointer:coarse){.h-fine{display:none}.h-touch{display:inline}.gateway,.d-stage{touch-action:pan-y pinch-zoom}}
.intro-m .intro{transition:opacity .38s var(--ease),visibility .38s}
.intro-m .intro video,.intro-m .intro .ik{width:min(88vmin,620px)}
.intro-m .intro video{opacity:.01;transition:opacity .25s} /* not 0: WebKit may pause 'invisible' autoplay video */
.intro-m .intro.iv-on video{opacity:1}
.intro-m .intro .ik{display:block;position:absolute;left:50%;top:50%;height:auto;aspect-ratio:1;transform:translate(-50%,-50%);transition:opacity .25s;overflow:visible;pointer-events:none}
.intro-m .intro.iv-on .ik{opacity:0}
.ik *{transform-box:fill-box}
.ik-body{transform-origin:50% 100%;animation:ikRise .8s cubic-bezier(.2,.8,.2,1) both}
.ik-word{animation:ikFade .7s .15s both}
.ik-halo{transform-origin:50% 50%;animation:ikPulse 2.6s ease-in-out infinite}
.ik-a,.ik .sp,.ik .nd{opacity:0}
.ik .ln{fill:none;stroke:#f5c518;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:.85}
.ik .ln2{stroke:#d6e6ff;stroke-width:2;opacity:.5}
.ik .nd{fill:#fff;transform-origin:50% 50%}
.ik .sp{fill:#ffe08a}
.intro-anim .ik-a{animation:ikShoot .55s cubic-bezier(.25,1.35,.5,1) both}
.intro-anim .ik-l{--fx:-430px;--fy:-330px;--r:-320deg}
.intro-anim .ik-c{--fx:0px;--fy:-560px;--r:360deg;animation-delay:.14s}
.intro-anim .ik-r{--fx:430px;--fy:-330px;--r:320deg;animation-delay:.28s}
.intro-anim .ik .sp{animation:ikSpark .75s cubic-bezier(.1,.7,.3,1) var(--d) both}
.intro-anim .ik .ln{animation:ikDraw .45s ease-out var(--d) both}
.intro-anim .ik .nd{animation:ikNode .4s cubic-bezier(.3,1.6,.5,1) var(--d) both}
.intro-anim .ik-halo{animation:ikFlash 1.4s ease-out .8s both}
@keyframes ikRise{from{transform:scaleY(.02);opacity:.2}to{transform:none;opacity:1}}
@keyframes ikFade{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes ikPulse{0%,100%{opacity:.75;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}
@keyframes ikShoot{from{opacity:0;transform:translate(var(--fx),var(--fy)) rotate(var(--r)) scale(.6)}25%{opacity:1}to{opacity:1;transform:none}}
@keyframes ikSpark{from{opacity:1;transform:translate(0,0) scale(1.2)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2)}}
@keyframes ikDraw{to{stroke-dashoffset:0}}
@keyframes ikNode{from{opacity:0;transform:scale(0)}to{opacity:1;transform:none}}
@keyframes ikFlash{0%{opacity:.8;transform:scale(1)}25%{opacity:1;transform:scale(1.25)}100%{opacity:.85;transform:scale(1.05)}}
/* ==========================================================================
   UX1 (v20261003u1): obviously-clickable portals, first-visit coach, scroll cue,
   "Explore the seven divisions" grid + Jarl Storm banner. Mobile-first.
   ========================================================================== */
/* portal labels as tappable chips (pill + arrow); scale/position set by home3d.js */
.portal-label{cursor:pointer;-webkit-tap-highlight-color:transparent}
.portal-label::before{content:"";position:absolute;inset:-7px -5px}   /* >=44px touch target without a bigger chip */
.pl-txt{display:block}
.pl-go{display:none}
.gateway-3d .portal-label,body:not(.gateway-3d) .portal-label{display:inline-flex;align-items:center;gap:.55rem;text-align:left;padding:.36rem .38rem .36rem .85rem;border:1px solid rgba(242,181,6,.45);background:rgba(6,5,2,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 0 22px -10px var(--gold-glow);transition:background .3s,border-color .3s,box-shadow .3s,opacity .4s,color .3s}
.gateway-3d .pl-go,body:not(.gateway-3d) .pl-go{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;background:var(--gold);color:#000;transition:transform .35s var(--ease),box-shadow .35s}
.pl-go svg{width:13px;height:13px;stroke-width:2.2}
.portal-label .mono{line-height:1.35}
.portal-label.is-hot,.portal-label:hover,.portal-label:focus-visible{background:rgba(242,181,6,.18);border-color:var(--gold);box-shadow:0 0 30px -4px var(--gold-glow)}
.portal-label.is-hot b,.portal-label:hover b,.portal-label:focus-visible b{color:var(--gold-hi)}
.portal-label.is-hot .pl-go,.portal-label:hover .pl-go,.portal-label:focus-visible .pl-go{transform:translateX(2px);box-shadow:0 0 16px var(--gold-glow)}
.portal-label.is-hint{border-color:var(--gold);box-shadow:0 0 0 0 rgba(242,181,6,.5);animation:plHint 1.6s ease-out infinite}
@keyframes plHint{0%{box-shadow:0 0 0 0 rgba(242,181,6,.5)}80%,100%{box-shadow:0 0 0 12px rgba(242,181,6,0)}}
.portal-label.is-back{pointer-events:none}   /* chips of globes behind the orbit can't steal taps from the front ones */
body:not(.gateway-3d) .portal-label:hover,body:not(.gateway-3d) .portal-label:focus-visible{transform:translate(-50%,-50%) scale(1.06)}
@media (max-width:600px){
  .gateway-3d .portal-label,body:not(.gateway-3d) .portal-label{padding:.3rem .3rem .3rem .68rem;gap:.42rem}
  .gateway-3d .portal-label b{font-size:.88rem}
  .gateway-3d .pl-go,body:not(.gateway-3d) .pl-go{width:21px;height:21px}
  .pl-go svg{width:11px;height:11px}
}
@media (max-width:380px){body:not(.gateway-3d) .pl-go{display:none}}

/* first-visit coach: "Click/Tap a world to enter" */
.gw-coach{position:absolute;left:50%;bottom:calc(5.4rem + env(safe-area-inset-bottom));z-index:7;display:flex;align-items:center;gap:.65rem;padding:.45rem 1rem .45rem .45rem;border-radius:999px;background:rgba(6,5,2,.82);border:1px solid rgba(242,181,6,.65);color:var(--ink);font:500 .86rem/1 var(--sans);letter-spacing:.01em;white-space:nowrap;pointer-events:none;box-shadow:0 0 34px -6px var(--gold-glow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transform:translate(-50%,10px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.gw-coach[hidden]{display:none}
.gw-coach.show{opacity:1;transform:translate(-50%,0)}
.gc-icon{position:relative;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(242,181,6,.14);color:var(--gold-hi)}
.gc-icon svg{width:22px;height:22px;position:relative;z-index:1}
.gc-mouse{display:none}
@media (hover:hover) and (pointer:fine){.gc-hand{display:none}.gc-mouse{display:block;width:18px!important;height:18px!important}}
.gc-hand,.gc-mouse{animation:gcTap 1.5s var(--ease) infinite}
.gc-ring{position:absolute;left:50%;top:38%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:1.5px solid var(--gold);opacity:0;animation:gcRing 1.5s ease-out infinite}
@keyframes gcTap{0%,100%{transform:translate(2px,3px) scale(1)}35%{transform:translate(0,0) scale(.86)}55%{transform:translate(1px,2px) scale(1)}}
@keyframes gcRing{0%,30%{opacity:0;transform:scale(.4)}38%{opacity:1}100%{opacity:0;transform:scale(2.4)}}
.gc-txt b{color:var(--gold-hi);font-weight:600}
.gateway-flying .gw-coach,.menu-open .gw-coach{opacity:0!important}
@media (prefers-reduced-motion:reduce){.gc-hand,.gc-mouse,.gc-ring,.portal-label.is-hint{animation:none}}

/* scroll cue at the bottom of the hero */
.gw-bottom{bottom:calc(1.2rem + env(safe-area-inset-bottom))}
.scroll-cue{flex-direction:column;align-items:center;gap:.15rem;min-height:44px;min-width:44px;justify-content:center;color:var(--ink-2);padding:.3rem .2rem}
.scroll-cue:hover{color:var(--gold-hi)}
.scroll-cue svg{width:20px;height:20px;color:var(--gold);animation:cueBob 1.8s ease-in-out infinite}
@keyframes cueBob{0%,100%{transform:translateY(0);opacity:.75}50%{transform:translateY(5px);opacity:1}}
@media (max-width:600px){.scroll-cue{font-size:.62rem;letter-spacing:.12em}.gw-bottom .gw-hint{max-width:55%;font-size:.62rem;line-height:1.5}}
.gateway-flying .scroll-cue{opacity:0}

/* Explore the seven divisions */
.divs{position:relative;padding:clamp(3.5rem,9vw,7.5rem) 0 clamp(4rem,8vw,7rem);background:linear-gradient(180deg,var(--navy-1) 0%,#000 42%);border-bottom:1px solid var(--line);scroll-margin-top:70px}
.divs-head{max-width:46rem}
.divs-head h2{font-family:var(--serif);font-size:clamp(2.4rem,6vw,4.8rem);margin:.9rem 0 1rem}
.divs-head h2 em{color:var(--gold)}
.divs-head p{color:var(--ink-2);margin:0;max-width:34rem}
.dv-grid{list-style:none;margin:clamp(2rem,4vw,3rem) 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:.85rem}
.dv-grid>li{display:flex;min-width:0}
.js .dv-grid>li.rv{transition-delay:calc(var(--i,0) * 70ms)}
.dv-card{position:relative;display:flex;flex-direction:column;width:100%;min-height:100%;padding:1.25rem 1.2rem 1.1rem;border:1px solid var(--line-2);border-radius:18px;background:radial-gradient(130% 100% at 0 0,rgba(242,181,6,.08),transparent 55%),#060504;color:var(--ink);text-decoration:none;overflow:hidden;-webkit-tap-highlight-color:transparent;transition:border-color .45s var(--ease),transform .55s var(--ease),box-shadow .55s var(--ease),background .45s}
.dv-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(60% 80% at 100% 100%,rgba(242,181,6,.12),transparent 70%);opacity:0;transition:opacity .45s;pointer-events:none}
.dv-card:hover,.dv-card:focus-visible{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 22px 50px -24px var(--gold-glow);color:var(--ink)}
.dv-card:hover::after,.dv-card:focus-visible::after{opacity:1}
.dv-card:active{transform:translateY(-1px) scale(.99)}
.dv-card:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.dv-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.dv-top .mono{color:var(--gold);font-size:.66rem;text-align:right}
.dv-ic{width:46px;height:46px;padding:10px;flex:none;color:var(--gold);border:1px solid rgba(242,181,6,.35);border-radius:13px;background:rgba(242,181,6,.05);transition:background .45s,box-shadow .45s}
.dv-card:hover .dv-ic,.dv-card:focus-visible .dv-ic{background:rgba(242,181,6,.14);box-shadow:0 0 24px -6px var(--gold-glow)}
.dv-card h3{font:400 1.7rem/1.05 var(--serif);margin:1.1rem 0 .45rem;color:var(--ink)}
.dv-card:hover h3,.dv-card:focus-visible h3{color:var(--gold-hi)}
.dv-card p{color:var(--muted);font-size:.93rem;line-height:1.55;margin:0 0 1.1rem}
.dv-go{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;font:500 .74rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);min-height:24px}
.dv-go span{display:inline-block;transition:transform .45s var(--ease)}
.dv-card:hover .dv-go span,.dv-card:focus-visible .dv-go span{transform:translateX(6px)}
@media (min-width:600px){.dv-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.dv-card{padding:1.5rem 1.4rem 1.3rem;min-height:15.5rem}}
@media (min-width:1024px){
  .dv-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
  .dv-grid>li{grid-column:span 3}
  .dv-grid>li:nth-child(n+5){grid-column:span 4}
  .dv-card{min-height:17rem}
}
/* Jarl Storm · Live platform banner */
.js-band{position:relative;margin-top:1rem;border:1px solid rgba(242,181,6,.38);border-radius:22px;background:radial-gradient(80% 160% at 0 50%,rgba(242,181,6,.13),transparent 60%),#050403;transition:border-color .45s var(--ease),box-shadow .45s}
.js-band:hover,.js-band:focus-within{border-color:var(--gold);box-shadow:0 22px 60px -30px var(--gold-glow)}
.js-band-main{display:grid;grid-template-columns:1fr;gap:.9rem;padding:1.4rem 1.3rem 3.4rem;text-decoration:none;color:inherit;border-radius:inherit}
.js-band-main:hover{color:inherit}
.js-band-main:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.js-band .labs-rune{font-size:1.9rem}
.js-band-txt .mono{display:inline-flex;align-items:center;gap:.5rem;color:var(--gold)}
.js-band-txt .mono i{width:8px;height:8px;border-radius:50%;background:var(--gold);animation:jsPulse 2.2s ease-out infinite}
.js-band-txt b{display:block;font:400 clamp(2rem,4vw,3rem)/1 var(--serif);margin:.45rem 0 .5rem}
.js-band-txt b em{color:var(--gold)}
.js-band-d{display:block;color:var(--ink-2);font-size:.95rem;max-width:40rem}
.js-band-go{justify-self:start;display:inline-flex;align-items:center;gap:.5rem;min-height:46px;padding:.8rem 1.2rem;border-radius:999px;background:var(--gold);color:#000;font:500 .74rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transition:box-shadow .4s}
.js-band-main:hover .js-band-go{box-shadow:0 0 34px -4px var(--gold-glow)}
.js-band-about{position:absolute;left:1.3rem;bottom:1.1rem;font:500 .7rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;padding:.4rem 0}
.js-band-about:hover{color:var(--gold-hi)}
@media (min-width:760px){
  .js-band-main{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(1.2rem,3vw,2.4rem);padding:clamp(1.5rem,3vw,2.2rem) clamp(1.5rem,3vw,2.4rem) 3.4rem}
  .js-band .labs-rune{font-size:clamp(2rem,4vw,3rem)}
  .js-band-about{left:auto;right:clamp(1.5rem,3vw,2.4rem)}
}
@media (prefers-reduced-motion:reduce){.js-band-txt .mono i,.scroll-cue svg{animation:none}}
.mega-all{display:inline-block;margin-top:1.6rem;font:500 .72rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);text-decoration:none}
.mega-all:hover{color:var(--gold-hi)}
/* chips of globes behind the orbit stay as faint text (as before), so they never cover the K */
.gateway-3d .portal-label.is-back{background:transparent;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.gateway-3d .portal-label.is-back .pl-go{opacity:0}
/* coach replaces the small hint line while it shows; on phones it sits where that line is */
.gw-hint{transition:opacity .5s}
.coach-on .gw-hint{opacity:0}
@media (max-width:600px){
  .gw-coach{left:var(--gut);bottom:calc(1.25rem + env(safe-area-inset-bottom));transform:translate(0,10px);font-size:.8rem;padding:.38rem .85rem .38rem .38rem;gap:.5rem}
  .gw-coach.show{transform:none}
  .gc-icon{width:30px;height:30px}
}
/* phones: compact cards (icon left, text right) */
@media (max-width:599px){
  .dv-card{display:grid;grid-template-columns:46px minmax(0,1fr);column-gap:1rem;align-items:start;padding:1.1rem 1.1rem 1rem}
  .dv-top{display:contents}
  .dv-ic{grid-row:1 / span 4;grid-column:1}
  .dv-top .mono{grid-column:2;text-align:left;font-size:.62rem;line-height:1.4}
  .dv-card h3{grid-column:2;font-size:1.5rem;margin:.3rem 0 .35rem}
  .dv-card p{grid-column:2;font-size:.9rem;margin:0 0 .7rem}
  .dv-go{grid-column:2}
}
/* phones: the coach is pinned to the bottom of the screen (it only shows at the top of the page), so short phones such as the iPhone SE see it too */
@media (max-width:600px){.gw-coach{position:fixed;z-index:30}}
.scroll-cue span{white-space:nowrap}
@media (max-width:380px){.gw-bottom .gw-hint{max-width:47%}.scroll-cue{font-size:.58rem;letter-spacing:.1em}}
/* mobile menu: centred when it fits, scrollable from the first division when it doesn't (iPhone SE cut off "AI in Schools") */
@media (max-width:900px){
  .nav{justify-content:flex-start;padding-top:calc(84px + env(safe-area-inset-top));padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}
  .nav>a:first-of-type{margin-top:auto}
  .nav>a:last-child{margin-bottom:auto}
}
@media (max-width:900px) and (max-height:700px){.nav{gap:.45rem}.nav a,.nav button{font-size:1.6rem}}
/* keep the rune column wide enough even before the runic web font has loaded (WebKit measured it too narrow) */
@media (min-width:760px){.js-band-main{grid-template-columns:minmax(8.5rem,auto) minmax(0,1fr) auto}}
.js-band .labs-rune{white-space:nowrap}
