/* B4.3 — B4.2 visual identity (Inter Tight + Michroma; black / gray / ivory) on the full V1.3 site */
@font-face{font-family:"Inter Tight";src:url(/assets/fonts/inter-tight.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Michroma";src:url(/assets/fonts/michroma.woff2) format("woff2");font-weight:400;font-display:swap}
:root{--c0:#0A0A0A;--c1:#121212;--c2:#1B1B1B;--tx:#F2F0EB;--mu:#B3B0A9;--dim:#8A8883;--g:#7E7C77;--ln:#3C3C3A;--rule:#2A2A28;
 --m:clamp(20px,calc(40px + (100vw - 1024px)*.077),72px);--p:0;--q:1}
*{box-sizing:border-box;margin:0;padding:0}html{background:var(--c0);scroll-behavior:auto}
body{background:var(--c0);color:var(--tx);font-family:"Inter Tight",system-ui,sans-serif;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--tx);outline-offset:4px}
img,svg{max-width:100%}
.lab{font-family:"Michroma","Inter Tight",sans-serif;font-weight:400;font-size:11px;line-height:16px;letter-spacing:.08em;text-transform:uppercase}
.dim{color:var(--dim)}.g{color:var(--g)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:var(--m);top:-80px;z-index:20;background:var(--tx);color:var(--c0);padding:12px 16px}.skip:focus{top:12px}
.wrap{max-width:1440px;margin:0 auto;padding:0 var(--m)}
h2{font-weight:700;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(30px,calc(30px + (100vw - 390px)*.0171),48px);line-height:1.08}
h3{font-weight:600}
.note{color:var(--mu);font-size:15px;line-height:22px}
.text-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;border-bottom:1px solid transparent}.text-link:hover{border-color:var(--tx)}
.btn{display:inline-flex;align-items:center;height:56px;padding:0 32px;background:var(--tx);color:var(--c0);font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;transition:background .2s}.btn:hover{background:#fff}
.btn.ghost{background:none;color:var(--tx);box-shadow:inset 0 0 0 1px rgba(242,240,235,.55)}.btn.ghost:hover{box-shadow:inset 0 0 0 1px var(--tx);background:#161615}
.lnk{display:inline-flex;align-items:center;height:56px;font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid transparent}.lnk:hover{border-color:var(--tx)}
.plus{margin-left:auto;font-size:18px;line-height:1;color:var(--mu);transition:transform .25s}details[open]>summary .plus{transform:rotate(45deg)}
summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}
/* header */
.site-header{position:relative;z-index:10}
.nav{display:flex;justify-content:space-between;align-items:center;height:72px}
.identity{font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;min-height:44px;display:inline-flex;align-items:center}
.nav-links{display:flex;gap:32px}.nav-links a{font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;min-height:44px;display:inline-flex;align-items:center;border-bottom:1px solid transparent}.nav-links a:hover{border-color:var(--tx)}
.mobile-menu{display:none;position:relative}
.mobile-menu summary{font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;min-height:44px;display:flex;align-items:center;padding:0 4px}
.mobile-menu-links{position:absolute;right:0;top:48px;background:var(--c1);box-shadow:inset 0 0 0 1px var(--rule);display:grid;min-width:220px;padding:8px}
.mobile-menu-links a{min-height:44px;display:flex;align-items:center;padding:0 12px;font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase}
/* ================= HERO (signature moment A) ================= */
.hero{position:relative;max-width:1440px;margin:0 auto;padding:0 var(--m);height:clamp(720px,calc(100svh - 72px),828px)}
.hero-grid{display:grid;grid-template-columns:min(528px,calc(340px + (100vw - 1024px)*.45)) 1fr;column-gap:24px;height:100%}
.hero-copy{display:flex;flex-direction:column;padding:40px 0 72px;position:relative;z-index:3}
.kick{display:none}
.h1{font-weight:700;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(44px,calc(44px + (100vw - 1024px)*.048),64px);line-height:1.0625}
.h1 span{display:block}
.spine{margin-top:40px}.spine .dim{margin-bottom:16px}
.spine ul{list-style:none;display:grid;row-gap:12px}.spine li{display:flex;align-items:center}.spine li:before{content:"";width:6px;height:6px;background:var(--tx);margin-right:14px;flex:none}
.cta{margin-top:auto;max-width:440px}.val{font-size:16px;line-height:24px;color:var(--mu)}
.acts{margin-top:28px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.um{position:absolute;right:var(--m);bottom:72px;text-align:right;color:var(--dim);z-index:3;font-size:12px}.um b{display:block;color:var(--tx);font-weight:400;margin-bottom:8px;font-size:12px}
/* console */
.subject{position:relative;margin-right:calc(-1*var(--m));perspective:1600px;perspective-origin:30% 45%;
 background:radial-gradient(64% 56% at 56% 46%,#1C1C1B 0%,#0E0E0E 52%,#0A0A0A 76%)}
.floor{position:absolute;left:80px;bottom:40px;width:min(680px,80%);height:80px;background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.85),transparent 70%);filter:blur(8px)}
.rig{position:absolute;left:24px;top:32px;width:min(800px,calc(100% - 24px));height:680px;transform-style:preserve-3d;
 transform:rotateY(calc(-18deg + 14deg*var(--p))) rotateX(calc(7deg - 6deg*var(--p))) translate3d(0,calc(-40px*var(--p)),calc(-60px*var(--p)));
 -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 90%,transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 90%,transparent 100%)}
.pn{position:absolute}
.back{left:12%;top:-96px;width:80%;height:520px;transform:translateZ(-180px);background:linear-gradient(180deg,#161615,#111110);box-shadow:inset 0 1px 0 rgba(242,240,235,.10);opacity:calc(1 - .6*var(--p))}
.bk{position:absolute;left:24px;top:20px;color:var(--dim)}.bkl{list-style:none;position:absolute;left:24px;top:52px;display:flex;gap:20px;font-size:12px;color:#77756F;font-weight:600}
.front{left:0;top:32px;width:88%;height:640px;background:linear-gradient(180deg,#1E1E1D 0%,#191918 100%);
 box-shadow:inset 0 1px 0 rgba(242,240,235,.16),inset 0 0 0 1px rgba(242,240,235,.05),0 56px 112px rgba(0,0,0,.7),0 12px 24px rgba(0,0,0,.5)}
.phd{position:absolute;left:24px;right:24px;top:20px;height:28px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #2C2C2A}
.phd #wfh{color:var(--mu);white-space:nowrap;letter-spacing:.06em}
.leg{display:flex;gap:12px;white-space:nowrap;font-size:12px;line-height:16px;color:var(--mu);font-weight:500}.leg span{display:flex;align-items:center;gap:6px}
.stage{position:absolute;inset:0;--cw:calc((100% - 120px)/4)}
.lines{position:absolute;inset:0}
.ln{position:absolute;background:var(--ln);height:1px;transform-origin:left center;transition:background .3s}
.ln.h{top:136px;left:calc(24px + (var(--i) + 1)*var(--cw) + var(--i)*24px);width:24px}
.ln.v{width:1px;height:auto;transform-origin:center top}
.ln.b1{left:calc(48px + 1.5*var(--cw));top:200px;height:24px}
.ln.b2{left:calc(48px + 1.5*var(--cw));top:224px;height:24px}
.ln.b3{left:calc(48px + 1.5*var(--cw));top:224px;width:calc(var(--cw) + 24px)}
.ln.b4{left:calc(72px + 2.5*var(--cw));top:224px;height:24px}
.ln.on{background:var(--tx)}.ln.h.on,.ln.b3.on{height:2px;margin-top:-1px}.ln.v.on{width:2px;margin-left:-1px}
.pulse{position:absolute;left:calc(48px + 2*var(--cw));top:132px;width:8px;height:8px;margin-left:-4px;background:var(--tx);box-shadow:0 0 0 4px rgba(242,240,235,.12);animation:run 2.4s cubic-bezier(.65,0,.35,1) infinite}
@keyframes run{0%{transform:translateX(0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateX(24px);opacity:0}}
.playing .pulse{opacity:0;animation:none}
.nodes{list-style:none}
.nd{position:absolute;left:calc(24px + var(--c)*(var(--cw) + 24px));top:calc(72px + var(--r)*176px);width:var(--cw);height:128px}
.ndb{all:unset;box-sizing:border-box;cursor:pointer;width:100%;height:100%;padding:12px;display:flex;flex-direction:column;background:#131312;
 box-shadow:inset 0 1px 0 rgba(242,240,235,.08),inset 0 0 0 1px #2A2A28;transition:background .35s,box-shadow .35s,color .35s}
.ndb:hover{box-shadow:inset 0 0 0 1px rgba(242,240,235,.45)}.ndb:focus-visible{outline:2px solid var(--tx);outline-offset:3px}
.nid{font-family:"Michroma";font-size:10px;letter-spacing:.08em;color:var(--mu)}
.nd b{margin-top:6px;font-size:15px;line-height:20px;font-weight:600;color:var(--tx)}
.nst{margin-top:auto;display:flex;align-items:center;gap:8px;font-size:11px;line-height:16px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mu)}
.nd.vis .ndb{background:#262624;box-shadow:inset 0 0 0 1px rgba(242,240,235,.62)}
.nd.cur .ndb{background:var(--tx);box-shadow:0 0 0 6px rgba(242,240,235,.08)}.nd.cur b,.nd.cur .nst{color:#0A0A0A}.nd.cur .nid{color:#4A4946}
.shp{width:8px;height:8px;display:inline-block;flex:none}.shp.sq{background:currentColor}.shp.ring{box-shadow:inset 0 0 0 1.5px currentColor}
.shp.half{box-shadow:inset 0 0 0 1.5px currentColor;background:linear-gradient(90deg,currentColor 50%,transparent 50%)}
.det{position:absolute;left:24px;right:24px;top:396px;display:flex;flex-direction:column;gap:3px;padding-top:12px;border-top:1px solid #2C2C2A}
.det .lab{color:var(--mu)}.dk{color:var(--tx)!important}.dd,.dq{font-size:15px;line-height:22px;color:var(--tx)}.do,.dj{font-size:14px;line-height:20px;color:var(--mu)}.do b{font-weight:600;color:var(--tx)}
.dq{margin-bottom:8px}
.bar2{position:absolute;left:24px;right:24px;bottom:12px;height:48px;display:flex;align-items:center;gap:14px;color:var(--mu)}
.rp,.rs{background:none;border:0;cursor:pointer;height:44px;padding:0 4px;display:flex;align-items:center;color:var(--tx)}.rs{color:var(--mu)}.rs:hover{color:var(--tx)}
.paths{list-style:none;display:flex;gap:6px;margin-left:auto}
.paths li{padding:6px 9px;color:#8F8D87;box-shadow:inset 0 0 0 1px #2E2E2C;font-size:12px;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.paths li.on{color:var(--tx);box-shadow:inset 0 0 0 1px rgba(242,240,235,.6)}
.open{min-height:44px;display:inline-flex;align-items:center;color:var(--tx);border-bottom:1px solid transparent;white-space:nowrap}.open:hover{border-color:var(--tx)}
.decision{display:none}
.wfwrap{display:none}html:not(.js) .wfwrap{display:block}
html:not(.js) .bar2 .rp,html:not(.js) .bar2 .rs,html:not(.js) .paths{display:none}html:not(.js) .ndb{cursor:default}
.wfwrap{max-width:1440px;margin:0 auto;padding:0 var(--m)}
.wfmore{border-top:1px solid #2C2C2A}.wfmore summary{min-height:48px;display:flex;align-items:center;color:var(--tx)}
.wfmore summary:after{content:"+";margin-left:auto;font-size:16px}.wfmore[open] summary:after{content:"−"}
.wftext{list-style:none;display:grid;gap:12px;font-size:15px;line-height:22px;color:var(--mu);padding:4px 0 12px}.wftext b{color:var(--tx);font-weight:600}
.wfmore .leg{flex-wrap:wrap;white-space:normal;padding-bottom:12px}
/* entrance (autonomous, ≤1s, CSS-only once html.js is set) */
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes enter{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:none}}
@keyframes drawx{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes drawy{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes lightc{from{background:#131312;box-shadow:inset 0 0 0 1px #2A2A28}to{background:var(--tx)}}
@keyframes lightv{from{background:#131312;box-shadow:inset 0 0 0 1px #2A2A28}}
.js .h1 span{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.js .h1 .l2{animation-delay:.08s}.js .h1 .l3{animation-delay:.16s}.js .h1 .l4{animation-delay:.24s}
.js .hero .subject{animation:enter .9s .15s cubic-bezier(.2,.7,.2,1) both}
.js .hero .ln.h{animation:drawx .45s both;animation-delay:calc(.55s + var(--i)*.12s)}
.js .hero .ln.v{animation:drawy .35s .85s both}.js .hero .ln.b3{animation:drawx .35s .9s both}
.js .hero .nd.vis .ndb{animation:lightv .4s .6s both}.js .hero .nd.cur .ndb{animation:lightc .45s .9s both}.js .hero .nd.cur b,.js .hero .nd.cur .nst{animation:rise .3s .95s both}
/* ================= PROOF (signature moment B) ================= */
.proof{position:relative;padding:112px 0 72px}
.handoff{position:absolute;left:calc(50% + 40px);top:0;width:1px;height:112px;background:linear-gradient(var(--tx),rgba(242,240,235,.15));transform-origin:top;transform:scaleY(var(--q))}
.pr{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;margin-top:32px}
.pc{position:relative;padding-top:28px}
.pline{position:absolute;left:0;right:0;top:0;height:1px;background:#3A3A38}
.pline:after{content:"";position:absolute;inset:0;background:var(--tx);transform-origin:left;transform:scaleX(var(--w,1))}
.pv{font-weight:700;font-size:clamp(36px,calc(36px + (100vw - 390px)*.0114),48px);line-height:1.08;text-transform:uppercase;letter-spacing:-.01em;
 clip-path:inset(0 calc((1 - var(--w,1))*100%) 0 0)}
.pl{margin-top:16px}.pd{margin-top:12px;font-size:16px;line-height:24px;color:var(--mu);max-width:460px}
.psrc{margin-top:16px;font-size:15px;line-height:22px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.psrc a{border-bottom:1px solid rgba(242,240,235,.35);padding:3px 0}.psrc a:hover{border-color:var(--tx)}
/* capabilities */
.caps{padding:72px 0 24px}
.bridge{font-size:clamp(30px,calc(30px + (100vw - 390px)*.0171),48px);line-height:1.08}
.cols{list-style:none;margin-top:56px;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:auto auto;column-gap:24px;row-gap:48px}
.col{display:grid;grid-template-rows:subgrid;grid-row:span 2;row-gap:0;border-top:1px solid #3A3A38;padding-top:24px}.col:hover{border-color:var(--tx)}
.cl{display:flex;flex-direction:column;gap:8px}.ci{color:var(--dim)}
.cs{margin-top:20px;display:flex;flex-direction:column;gap:8px;min-height:44px}
.cs b{font-size:17px;line-height:24px;font-weight:600}.cs span{font-size:15px;line-height:22px;color:var(--mu)}
.cs .go{margin-top:auto;padding-top:12px;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mu)}
.cs:hover .go,.cs:focus-visible .go{color:var(--tx)}.cs:hover b{text-decoration:underline;text-underline-offset:4px}
/* ================= PORTFOLIO + FEATURED (signature moment C) ================= */
.section{padding:112px 0}
.work{background:linear-gradient(180deg,var(--c0),#0F0F0E 240px,#0F0F0E)}
.shead{display:grid;grid-template-columns:5fr 7fr;gap:24px;align-items:end;margin-bottom:56px}.shead h2{margin-top:12px}.shead p{color:var(--mu);max-width:640px}.shead .note{margin-top:8px}
.feature{background:#151514;box-shadow:inset 0 1px 0 rgba(242,240,235,.12),inset 0 0 0 1px #242423;padding:clamp(20px,3.3vw,48px)}
.fhead{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
.fhead h3{margin-top:12px;font-size:clamp(26px,calc(26px + (100vw - 390px)*.0105),37px);line-height:1.1;font-weight:700;letter-spacing:-.01em;max-width:780px}
.role{margin-top:12px;color:var(--mu);font-size:16px;line-height:24px;max-width:720px}.role b{color:var(--tx);font-weight:600}
.fstat{margin-top:12px;color:var(--tx)}
.spec{margin-top:40px;padding-top:24px;border-top:1px solid #2C2C2A}
.spec-tag{margin-bottom:28px}
.fline{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);column-gap:16px;position:relative}
.fline:before{content:"";position:absolute;left:6px;right:calc(20% - 6px);top:6px;height:1px;background:#4A4A47;transform-origin:left;transform:scaleX(var(--f,1))}
.fd{position:relative;display:flex;flex-direction:column;gap:6px}
.dm{display:block;width:13px;height:13px;transform:rotate(45deg);background:var(--c0);box-shadow:inset 0 0 0 1px var(--tx);margin-bottom:14px}
.fd:last-child .dm{background:var(--tx)}
.fid{color:var(--dim)}.fd b{font-size:16px;line-height:22px;font-weight:600}
.fst{display:flex;align-items:center;gap:8px;font-size:11px;line-height:16px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mu)}
.fmore{margin-top:32px;border-top:1px solid #2C2C2A}
.fmore>summary{min-height:56px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 0}
.fmore>summary .lab:first-child{color:var(--tx);display:inline-flex;align-items:center;gap:12px}
.fmore>summary .lab:first-child:before{content:"+";font-family:"Inter Tight";font-size:18px;line-height:1}
.fmore[open]>summary .lab:first-child:before{content:"−"}
.fbody{padding:16px 0 8px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 24px}
.fx .lab{color:var(--dim);margin-bottom:8px}.fx p+p{font-size:15px;line-height:23px;color:var(--tx)}
.fsteps{list-style:none;margin-top:40px;display:grid;gap:0;border-top:1px solid #2C2C2A}
.fsteps li{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid #222221}
.fsteps b{font-size:16px;font-weight:600}.fsteps p{font-size:15px;line-height:22px;color:var(--mu)}.fsteps .own{margin-top:4px;font-size:14px}.fsteps .own span{color:var(--tx);font-weight:600}
.quals{margin-top:20px;padding-left:18px;color:var(--mu);font-size:14px;line-height:21px;display:grid;gap:4px}.fcap{margin-top:12px;color:var(--dim);font-size:14px}
.dir{margin-top:24px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.card{border-top:1px solid #3A3A38;padding-top:22px;display:flex;flex-direction:column}.card:hover{border-color:var(--tx)}
.card h3{margin-top:12px;font-size:19px;line-height:26px}.card h3 a{min-height:44px;display:inline}.card h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.card .role{font-size:15px;line-height:22px}.cst{margin-top:10px;font-size:14px;line-height:20px;color:var(--tx)}
.quicklook{margin-top:auto;padding-top:14px}.quicklook summary{min-height:44px;display:flex;align-items:center;gap:8px;font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mu)}
.quicklook summary:hover{color:var(--tx)}.qbody{padding-bottom:8px;font-size:15px;line-height:22px;color:var(--mu)}.qbody .lab{margin-top:10px}.qbody p:not(.lab){color:var(--tx)}
.disc{margin-top:48px;color:var(--dim);font-size:14px}
/* ================= METHOD + CAREER (chapter contrast: charcoal) ================= */
.method{background:#141413;box-shadow:inset 0 1px 0 #2A2A28}
.mlayout,.jlayout{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:start}
.mintro h2,.jintro h2{margin-top:12px}.mintro p:not(.lab),.jintro p:not(.lab){margin-top:16px;color:var(--mu)}.mintro{position:sticky;top:32px}
.mstep{border-top:1px solid #33332F}.mstep:last-child{border-bottom:1px solid #33332F}
.mstep summary{display:grid;grid-template-columns:56px 1fr 24px;gap:12px;align-items:center;min-height:72px;padding:16px 0}
.mnum{font-family:"Michroma";font-size:13px;color:var(--mu)}.mlab h3{font-size:20px;line-height:26px}.mq{display:block;color:var(--mu);font-size:15px;line-height:22px;margin-top:2px}
.mbody{padding:0 0 24px 68px;color:var(--mu);font-size:16px;line-height:25px}.minputs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.minputs span{font-size:13px;padding:5px 10px;box-shadow:inset 0 0 0 1px #3A3A38;color:var(--tx)}.mout{margin-top:14px;color:var(--tx)}
.career .jlist{position:relative;padding-left:28px}
.jtrack{position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:#3A3A38}
.jtrack:after{content:"";position:absolute;inset:0;background:var(--tx);transform-origin:top;transform:scaleY(var(--t,1))}
.jstage{position:relative;border-top:1px solid #2A2A28}.jstage summary{display:grid;grid-template-columns:132px 1fr 24px;gap:16px;align-items:center;min-height:76px;padding:16px 0}
.jd{position:absolute;left:-27px;top:30px;width:11px;height:11px;transform:rotate(45deg);background:var(--c0);box-shadow:inset 0 0 0 1px var(--tx)}
#journey-5 .jd{background:var(--tx)}
.jdate{color:var(--mu)}.jch h3{font-size:20px;line-height:26px}.jt{display:block;color:var(--mu);font-size:15px;line-height:22px;margin-top:2px}
.jbody{padding:0 0 22px 148px;color:var(--mu);font-size:16px;line-height:25px}.jrole{color:var(--tx);margin-bottom:8px}
.adv .jd{background:none;box-shadow:inset 0 0 0 1px var(--dim)}
.recog{margin-top:28px;color:var(--mu)}
/* contact + footer */
.contact{background:var(--tx);color:var(--c0)}
.contact-grid{display:grid;grid-template-columns:5fr 7fr;gap:24px;align-items:end}
.contact .dim{color:#55534F}.contact h2{margin-top:12px}.contact-copy p{font-size:18px;line-height:28px;color:#2A2A28;max-width:620px}
.contact-links{margin-top:24px;display:flex;gap:12px 32px;flex-wrap:wrap}.contact .text-link:hover{border-color:var(--c0)}
.contact :focus-visible{outline-color:var(--c0)}
.site-footer{padding:32px 0 40px}.footer-row{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--dim);font-size:14px}.footer-row a{min-height:44px;display:inline-flex;align-items:center;color:var(--tx)}
/* reveals (down-page; reversible; JS adds .in) */
.js .rv{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*60ms)}
.js .rv.in{opacity:1;transform:none}
.js .cols .col.rv:nth-child(2){--i:1}.js .cols .col.rv:nth-child(3){--i:2}.js .cols .col.rv:nth-child(4){--i:3}.js .cols .col.rv:nth-child(5){--i:4}.js .cols .col.rv:nth-child(6){--i:5}
.fmore.anim .fx,.fmore.anim .fsteps li{animation:rise .5s both;animation-delay:calc(var(--i,0)*70ms)}
.fmore.anim .fsteps li:nth-child(2){--i:1}.fmore.anim .fsteps li:nth-child(3){--i:2}.fmore.anim .fsteps li:nth-child(4){--i:3}.fmore.anim .fsteps li:nth-child(5){--i:4}
/* ================= CASE PAGES ================= */
.case-hero{padding:56px 0 64px;border-bottom:1px solid #2A2A28}
.back-link{min-height:44px;display:inline-flex;align-items:center;color:var(--mu)}.back-link:hover{color:var(--tx)}
.case-hero-grid{margin-top:24px;display:grid;grid-template-columns:7fr 5fr;gap:clamp(24px,5vw,80px);align-items:end}
.case-hero .eyebrow{font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.case-hero h1{margin-top:14px;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(34px,calc(34px + (100vw - 390px)*.0229),58px);line-height:1.05}
.lead{margin-top:18px;color:var(--mu);font-size:19px;line-height:29px;max-width:720px}
.case-status{padding:22px;background:#151514;box-shadow:inset 0 0 0 1px #2A2A28}.status{display:inline-block;font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx);margin-bottom:10px}
.case-status p{color:var(--mu)}
.case-decision{padding:56px 0 8px;max-width:980px}.case-decision h2.eyebrow{font-family:"Michroma";font-size:11px;font-weight:400;letter-spacing:.08em;color:var(--dim);line-height:16px}
.case-decision p{margin-top:12px;font-size:clamp(22px,2.4vw,30px);line-height:1.3;font-weight:600}
.case-body{display:grid;grid-template-columns:7fr 5fr;gap:clamp(24px,5vw,80px);padding:48px 0 32px;align-items:start}
.case-copy section{padding:28px 0;border-top:1px solid #2A2A28}.case-copy h2,.case-aside h2{font-size:20px;line-height:26px;text-transform:none;letter-spacing:0;font-weight:700;margin-bottom:10px}
.case-copy p{color:#D8D5CE;font-size:17px;line-height:27px}.case-copy p+p{margin-top:12px}
.ownership-inline{color:var(--mu)!important}.ownership-inline strong{color:var(--tx)}.scope-note{color:var(--mu)!important;font-size:15px!important}
.case-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:14px}
.case-results strong{display:block;font-size:34px;line-height:1.1;font-weight:700}.case-results p{color:var(--mu)!important;font-size:15px!important}
.case-disclosure{border-top:1px solid #2A2A28}.case-disclosure>summary{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.case-disclosure>summary h2{margin:0}.case-disclosure>summary>span{font-size:18px;color:var(--mu)}
.case-disclosure[open]>summary>span{transform:rotate(45deg)}
.module-list{display:grid;gap:16px;padding-bottom:20px}.module-list dt{font-weight:600}.module-list dd{color:var(--mu)}
.workflow{padding:0 0 20px 22px;display:grid;gap:10px;color:#D8D5CE}
.case-aside{position:sticky;top:24px;display:grid;gap:16px}
.ownership-card{padding:22px;background:#151514;box-shadow:inset 0 0 0 1px #2A2A28}.ownership-card .eyebrow{font-family:"Michroma";font-size:11px!important;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.ownership-card p{color:var(--tx);margin-top:8px}
.overview-toggle{padding:0 22px;background:#151514;box-shadow:inset 0 0 0 1px #2A2A28;border:0}
.work-overview{padding-bottom:20px}.work-overview .eyebrow{font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.overview-row{padding:12px 0;border-top:1px solid #2A2A28}.overview-row strong{display:block;font-size:14px}.overview-row p{color:var(--mu);font-size:15px}
.overview-disclosure{margin-top:12px;color:var(--dim);font-size:14px}
.guidance-specimen{margin:24px 0 32px;padding:clamp(20px,3vw,40px);background:#151514;box-shadow:inset 0 0 0 1px #2A2A28}
.guidance-heading .eyebrow{font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.guidance-heading h2{margin-top:10px;font-size:clamp(24px,3vw,34px)}.guidance-heading p{margin-top:12px;color:var(--mu);max-width:720px}
.guidance-panels{margin-top:24px}.guide-step{border-top:1px solid #2A2A28}.guide-step>summary{min-height:56px;display:flex;justify-content:space-between;align-items:center;font-weight:600}
.guide-content{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:20px}.guide-content h3{font-family:"Michroma";font-size:11px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}.guide-content p{color:#D8D5CE;font-size:15px}
.case-next{padding:40px 0 72px;border-top:1px solid #2A2A28;display:flex;flex-direction:column;gap:6px}.case-next .eyebrow{font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.case-next .text-link{font-size:clamp(20px,2.4vw,28px);font-weight:700}
/* ================= RESPONSIVE ================= */
@media (min-width:1024px) and (max-width:1239px){
 .front{width:100%}.back{left:6%;width:88%}.bkl{display:none}
 .leg span:nth-child(2){display:none}
 .paths li{font-size:11px;padding:5px 7px}
 .spine ul{row-gap:10px}.spine{margin-top:32px}
}
@media (max-width:1180px){.cols{grid-template-columns:repeat(3,1fr)}.dir{grid-template-columns:repeat(2,1fr)}}
@media (max-width:1023px){
 .nav-links{display:none}.mobile-menu{display:block}
 .hero{height:auto;padding-bottom:40px}
 .hero-grid{display:flex;flex-direction:column}
 .hero-copy{padding:24px 0 0;display:flex;flex-direction:column}
 .kick{display:block;order:-1;margin-bottom:16px;color:var(--tx)}
 .h1{font-size:clamp(38px,calc(38px + (100vw - 390px)*.0476),56px)}
 .cta{margin-top:32px}.um{display:none}
 .subject{margin:40px 0 0;width:100%;max-width:720px;height:auto;perspective:none;background:none}
 .floor,.back{display:none}
 .rig{position:relative;left:0;top:0;width:100%;height:640px;transform:none;-webkit-mask-image:none;mask-image:none}
 .front{position:relative;top:0;width:100%}
 .wfwrap{display:block;margin-top:8px}
 .handoff{display:none}.proof{padding-top:64px}
 .shead,.mlayout,.jlayout,.contact-grid,.case-hero-grid,.case-body{grid-template-columns:1fr}.mintro,.case-aside{position:static}
 .facts{grid-template-columns:1fr 1fr}
 .js .hero .subject{animation:none}
}
@media (max-width:899px){.cols{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){
 body{font-size:16px}
 .rig{height:auto}.front{height:auto;padding:64px 16px 16px}
 .phd{left:16px;right:16px;top:16px;height:auto;min-height:28px}.phd #wfh{white-space:normal}.phd .leg{display:none}
 .stage{position:static}.lines{display:none}.nodes{display:grid;gap:8px}
 .nd{position:relative;left:auto;top:auto;width:auto;height:auto}
 .nd[data-k=E],.nd[data-k=F]{display:none}
 .ndb{display:grid;grid-template-columns:28px 1fr;column-gap:8px;padding:12px;min-height:56px;height:auto}
 .nd .nid{grid-row:1/3;padding-top:3px}.nd b{margin-top:0;font-size:16px}.nst{margin-top:6px}
 .det{position:static;margin-top:16px}.bar2{position:static;margin-top:8px;height:auto;flex-wrap:wrap}.bar2 .rp,.bar2 .rs,.paths{display:none!important}
 .pr{grid-template-columns:1fr;row-gap:40px;margin-top:16px}
 .cols{grid-template-columns:1fr;row-gap:32px;margin-top:40px}.col{grid-row:auto;display:block}
 .dir{grid-template-columns:1fr}.facts{grid-template-columns:1fr}.fline{grid-template-columns:1fr;row-gap:18px;padding-left:28px}
 .fline:before{left:6px;right:auto;top:8px;bottom:8px;width:1px;height:auto;transform-origin:top;transform:scaleY(var(--f,1))}
 .fd .dm{position:absolute;left:-28px;top:4px;margin:0}
 .section{padding:72px 0}.caps{padding-top:56px}
 .mstep summary{grid-template-columns:40px 1fr 20px}.mbody{padding-left:52px}
 .jstage summary{grid-template-columns:1fr 20px;gap:4px 12px}.jdate{grid-column:1}.jch{grid-column:1}.jstage summary .plus{grid-row:1/3;grid-column:2}.mstep summary>.mlab{grid-column:2;grid-row:1}.mstep summary>.plus{grid-column:3;grid-row:1}.jbody{padding-left:0}
 .guide-content{grid-template-columns:1fr}
 .acts{gap:16px}
}
@media (max-width:360px){.btn{padding:0 18px}.acts{gap:8px 16px}}
/* mobile in-view console lighting (reversible) */
@media (max-width:1023px){
 .js .stage:not(.in) .nd.vis .ndb,.js .stage:not(.in) .nd.cur .ndb{background:#131312;box-shadow:inset 0 1px 0 rgba(242,240,235,.08),inset 0 0 0 1px #2A2A28}
 .js .stage:not(.in) .nd.cur b,.js .stage:not(.in) .nd.cur .nst{color:var(--tx)}.js .stage:not(.in) .nd.cur .nid{color:var(--mu)}
 .js .stage .nd[data-k=B] .ndb{transition-delay:.25s}.js .stage .nd[data-k=C] .ndb{transition-delay:.5s}
}
@media (prefers-reduced-motion:reduce){
 .pc,.pc *{transform:none!important;opacity:1!important}
 *,*:before,*:after{animation:none!important;transition:none!important}
 .rig{transform:rotateY(-18deg) rotateX(7deg)!important}.back{opacity:1!important}
 .js .rv{opacity:1;transform:none}.pv{clip-path:none}.pline:after{transform:none}.handoff{transform:none}.jtrack:after{transform:none}.fline:before{transform:none}
}
@media (prefers-reduced-motion:reduce) and (max-width:1023px){.rig{transform:none!important}}
@media (prefers-reduced-motion:reduce){.js .stage:not(.in) .nd.cur .ndb{background:var(--tx)}}
/* draw-in lines for featured specimen and career track (JS adds .in; static without JS) */
.js .spec .fline:before{transform:scaleX(0);transition:transform 1.1s cubic-bezier(.65,0,.35,1) .1s}
.js .spec.in .fline:before{transform:scaleX(1)}
.js .spec .fd{opacity:.35;transition:opacity .4s;transition-delay:calc(.2s + var(--i)*.2s)}.js .spec.in .fd{opacity:1}
.js .jlist .jtrack:after{transform:scaleY(0);transition:transform 1.4s cubic-bezier(.65,0,.35,1)}.js .jlist.in .jtrack:after{transform:scaleY(1)}
@media (max-width:760px){.js .spec .fline:before{transform:scaleY(0)}.js .spec.in .fline:before{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){.js .spec .fline:before,.js .jlist .jtrack:after{transform:none!important}.js .spec .fd{opacity:1}}
/* fixes after first render */
[hidden]{display:none!important}
.hero{overflow-x:clip}
.mlab,.jch,.mstep summary>*,.jstage summary>*{min-width:0}.mlab h3,.jch h3,.mq,.jt{overflow-wrap:anywhere}
.rp{white-space:nowrap}
.paths li{padding:6px 8px}
@media (min-width:1024px) and (max-width:1239px){
 .hero-grid{grid-template-columns:320px 1fr}
 .kick{display:block;margin-bottom:14px;color:var(--tx)}.um{display:none}
 .hero-copy{padding-top:28px;padding-bottom:40px}.h1{font-size:44px}.spine{margin-top:24px}.spine ul{row-gap:8px}
 .acts{gap:8px 24px}.btn{padding:0 24px}
 .rig{width:calc(100% - 40px);transform:rotateY(calc(-10deg + 8deg*var(--p))) rotateX(calc(5deg - 4deg*var(--p))) translate3d(0,calc(-30px*var(--p)),0);-webkit-mask-image:none;mask-image:none}
 .nd b{font-size:14px;line-height:18px}.nst{font-size:10px;line-height:14px}
}
@media (max-width:760px){.btn{padding:0 20px}.acts{gap:16px}}

.phd .open{min-height:36px;color:var(--tx)}
@media (min-width:1024px) and (max-width:1239px){.rig{width:calc(100% - 64px)}.bkl{display:flex}}
.cta{padding-top:24px}
@media (max-width:760px){.phd{flex-wrap:wrap;row-gap:4px}}
@media (min-width:1240px) and (max-height:899px){.um{display:none}.kick{display:block;margin-bottom:14px;color:var(--tx)}.hero-copy{padding-top:24px}}
@media (max-width:760px){
 .cols{row-gap:0;margin-top:32px}.col{padding:16px 0}.col .cl{flex-direction:row;gap:10px;align-items:baseline}
 .cs{margin-top:8px;min-height:44px;flex-direction:row;align-items:center;justify-content:space-between;gap:12px}
 .cs span:not(.go){display:none}.cs .go{margin:0;padding:0;font-size:0}.cs .go span{font-size:16px}
 .acts{row-gap:4px}
}
@media (max-width:760px){.front{padding-top:16px}.phd{position:static;margin-bottom:12px;padding-bottom:8px}}
/* QA fixes */
.case-hero-grid>*{min-width:0}.case-hero h1{overflow-wrap:anywhere;hyphens:auto}
.bkl{color:var(--mu)}
.phd #wfh{color:var(--tx)}.paths li{color:var(--mu)}
.card h3 a{display:inline-block;padding:2px 0}
.nid{font-size:11px;color:#D8D5CE}.nd.vis .nid{color:var(--tx)}

/* ===== review fixes (B4.3 r2) ===== */
/* proof: figures never clipped; the transition is the drawn rule + handoff + staged rise */
.pv{clip-path:none!important}
.pc{transform:translate3d(0,calc((1 - var(--w,1))*28px),0)}
.pc .pv,.pc .pl,.pc .pd,.pc .psrc{opacity:1}
.proof{padding-top:72px}.handoff{height:72px;width:2px;background:linear-gradient(var(--tx),rgba(242,240,235,.25))}
.pline{height:2px}
/* pulse: finite, and only while the default B→C path is shown */
.pulse{animation-iteration-count:3}.front.touched .pulse{display:none}
/* back panel labels readable and clear of the nav */
.back{top:-64px}.bk{color:var(--mu)}.bkl{color:var(--tx)}
.phd #wfh{overflow:hidden;text-overflow:ellipsis}
.br{display:none}
@media (max-width:760px){.nd[data-k=E],.nd[data-k=F]{display:block;margin-left:24px}.br{display:block;grid-column:2;font-size:10px;line-height:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mu);margin-bottom:2px}}
@media print{.js .rv{opacity:1!important;transform:none!important}.pc,.pc *{transform:none!important;opacity:1!important}.rig{transform:none!important}.site-header,.bar2,.floor{display:none}}
@media (max-width:760px){.ndb>.nst{grid-column:2}.ndb>b{grid-column:2}.ndb>.nid{grid-row:1/4}}

/* r3: back layer is a deliberate depth plane only (its labels could not render legibly behind the tilted front panel) */
.bk,.bkl{display:none!important}
@media print{*{transition:none!important;animation:none!important}}
/* ================= B4.5 FEATURED FILM — AI Competitive Intelligence & Sales Activation ================= */
.film{position:relative;height:440vh;margin-top:32px;background:radial-gradient(90% 60% at 60% 40%,#161615 0%,#0B0B0B 60%,#080808 100%)}
.film .stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;overflow:clip;perspective:1400px;perspective-origin:50% 45%}
.film .stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 80% at 50% 50%,transparent 55%,rgba(0,0,0,.6) 100%)}
.film .el{position:absolute;left:50%;top:50%;margin:0;will-change:transform,opacity;transform-style:preserve-3d}
.film .la{left:var(--m);transform-origin:0 50%}
.film .frags{list-style:none}
.ghost{font-weight:800;font-size:clamp(160px,24vw,360px);line-height:.8;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px #2A2A28;white-space:nowrap}
.ghost span{color:transparent;-webkit-text-stroke:1px #3A3A38;margin:0 .06em}
.fk{color:var(--mu);white-space:nowrap}
.fnav{position:absolute;right:var(--m);top:calc(12vh - 22px);z-index:20;display:flex;gap:22px}
.fnav a{min-height:44px;display:inline-flex;align-items:center;color:var(--mu);border-bottom:1px solid transparent}.fnav a:hover,.fnav a:focus-visible{color:var(--tx);border-color:var(--tx)}
.h-a{width:min(980px,72vw);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(44px,6.4vw,96px);line-height:.98;color:var(--tx)}
.sa,.sb{width:min(460px,80vw);font-size:clamp(16px,1.25vw,18px);line-height:1.5;color:var(--mu)}
.h-b{width:min(1100px,82vw);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(40px,min(5.6vw,10vh),84px);line-height:1;color:var(--tx)}
.h-b span{color:var(--g)}
.fr{width:clamp(200px,17vw,260px);padding:14px 16px 16px;background:#181817;box-shadow:inset 0 1px 0 rgba(242,240,235,.12),inset 0 0 0 1px #2C2C2A,0 24px 48px rgba(0,0,0,.45);display:flex;flex-direction:column;gap:8px}
.fr .lab{font-size:10px;color:var(--mu)}.fr .ft{font-size:16px;line-height:1.3;font-weight:600;color:var(--tx)}
.fr[data-c=x] .ft{color:var(--mu);font-weight:500}
/* B4.6 pivot: what a demo shows above the line, what the buyer would have to run below it */
.wline{width:64vw;height:1px}
.wline i{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(242,240,235,.6) 8%,rgba(242,240,235,.6) 90%,transparent)}
.wline i:after{content:"";position:absolute;left:0;right:0;top:-18px;height:36px;background:linear-gradient(180deg,transparent,rgba(242,240,235,.05) 50%,transparent)}
.wline .lab{position:absolute;left:0;font-size:11px;color:var(--dim);white-space:nowrap}
.wl-a{bottom:12px}.wl-b{top:12px}
.film .strata{list-style:none}
.sl[data-el=s0]{z-index:4}.sl[data-el=s1]{z-index:3}.sl[data-el=s2]{z-index:2}.sl[data-el=s3]{z-index:1}
.sl{width:var(--w);height:var(--h)}
.sl[data-el=s0]{--w:480px;--h:116px}.sl[data-el=s1]{--w:564px;--h:129px}.sl[data-el=s2]{--w:648px;--h:142px}.sl[data-el=s3]{--w:732px;--h:153px}
.sv-w,.sv{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}
.sv .sm{fill:#E9E6DF;opacity:var(--mat,0)}.sl-t{opacity:var(--lt,1)}.film .card-g{z-index:5}
.sv .st{fill:#2E2E2A}.sv .sf{fill:#171716}.sv .ss{fill:#0C0C0B}
.sv .e1{fill:none;stroke:rgba(242,240,235,.6);stroke-width:1;vector-effect:non-scaling-stroke}
.sv .e2{fill:none;stroke:rgba(242,240,235,.2);stroke-width:1;vector-effect:non-scaling-stroke}
.sl-g .sv .e1{stroke:rgba(242,240,235,.3)}
.sl-t{position:absolute;left:0;top:calc(var(--fy) * 100%);bottom:0;width:83.3%;display:flex;flex-direction:column;justify-content:center;padding:0 20px;gap:4px}
.sl-n{font-size:10px;line-height:12px;color:var(--dim)}
.sl-t b{font-weight:700;text-transform:uppercase;font-size:20px;line-height:1.1;letter-spacing:-.01em;color:var(--tx)}
.sl-d{font-size:15px;line-height:1.3;color:var(--mu)}
.film .fr[data-el=f0]{z-index:3}
.prov{width:min(560px,80vw);font-size:12px;line-height:1.4;color:var(--dim)}
/* the artifact */
.card-g{width:min(580px,86vw);background:var(--tx);color:#0A0A0A;padding:26px 28px 18px;overflow:hidden;
 box-shadow:0 2px 0 #D9D6CE,0 70px 140px rgba(0,0,0,.7),0 10px 28px rgba(0,0,0,.45)}
.card-g:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#0A0A0A}
.sheen{position:absolute;inset:-20% -60%;pointer-events:none;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.55) 50%,transparent 60%);transform:translateX(calc((var(--sh,1) * 140% ) - 70%));opacity:calc(1 - var(--sh,1))}
.gh{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:14px;border-bottom:2px solid #0A0A0A}
.gl{display:block;font-weight:800;font-size:28px;line-height:1;letter-spacing:-.015em;text-transform:uppercase}
.gm{display:block;margin-top:8px;font-size:13px;color:#3F3E3B}
.gs{font-family:"Michroma";font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#4A4946;white-space:nowrap}
.tabs{display:flex;gap:6px;margin:16px 0 6px;flex-wrap:wrap}
.tab{all:unset;cursor:pointer;font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:0 12px;min-height:36px;display:inline-flex;align-items:center;color:#3A3936;box-shadow:inset 0 0 0 1px #B8B5AD}
.tab[aria-selected=true]{background:#0A0A0A;color:var(--tx);box-shadow:none}.tab:focus-visible{outline:2px solid #0A0A0A;outline-offset:2px}
.gr{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid #CFCCC4}
.gk{font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#4A4946;padding-top:4px}
.gr p:not(.gk){font-size:15px;line-height:1.45;color:#1A1A19}.ga{font-weight:700;font-size:17px!important}
.gfoot{margin-top:12px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:#55534F}
.gfoot span:first-child{font-weight:600;color:#2A2A28}
.card-g :focus-visible{outline-color:#0A0A0A}
.out{width:min(440px,80vw)}.out p{font-size:16px;line-height:1.55;color:var(--mu)}.out p.lab{font-size:11px;line-height:16px;margin-bottom:10px}.out .role{margin-top:12px}.out .role b{color:var(--tx);font-weight:600}.out .btn{margin-top:24px}
.gpt{display:none}html:not(.js) .tabs{display:none}html:not(.js) .gpt{display:block;font-family:"Michroma";font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-top:18px;color:#0A0A0A}

/* static composition: no JS, reduced motion, tablets, short phones, print */
html:not(.js) .film,.film.static{height:auto;padding:96px 0}
html:not(.js) .film .stage,.film.static .stage{position:relative;height:auto;overflow:visible;perspective:none;max-width:1440px;margin:0 auto;padding:0 var(--m);display:grid;grid-template-columns:7fr 5fr;column-gap:48px;row-gap:28px}
html:not(.js) .film .stage:after,.film.static .stage:after{display:none}
html:not(.js) .film .el,.film.static .el{position:relative;left:auto;top:auto;transform:none!important;opacity:1!important;filter:none!important;width:auto;visibility:visible!important}
html:not(.js) .ghost,.film.static .ghost,html:not(.js) .wline,.film.static .wline,html:not(.js) .sl-g,.film.static .sl-g{display:none}
html:not(.js) .fnav,.film.static .fnav{position:static;grid-column:1/-1;order:-1;flex-wrap:wrap;column-gap:22px;row-gap:0;min-width:0}
html:not(.js) .film .stage>*,.film.static .stage>*{grid-column:1/-1}
html:not(.js) .frags,.film.static .frags{display:flex;flex-wrap:wrap;gap:12px}
html:not(.js) .fr[data-c=x],.film.static .fr[data-c=x]{display:none}
html:not(.js) .strata,.film.static .strata{display:flex;flex-direction:column;align-items:flex-start;gap:0}
html:not(.js) .film .sl,.film.static .sl{width:min(100%,var(--w));margin-top:calc(var(--h) * -.28)}
html:not(.js) .film .sl[data-el=s0],.film.static .sl[data-el=s0]{margin-top:0}
html:not(.js) .film .sl:nth-child(2),.film.static .sl:nth-child(2){margin-left:0}
html:not(.js) .h-b,.film.static .h-b{margin-top:40px}
html:not(.js) .film .card-g,.film.static .card-g{grid-column:1;max-width:620px}html:not(.js) .film .out,.film.static .out{grid-column:2;align-self:end}
@media (max-width:900px){html:not(.js) .film .stage,.film.static .stage{grid-template-columns:1fr}html:not(.js) .film .card-g,.film.static .card-g,html:not(.js) .film .out,.film.static .out{grid-column:1}}
@media (max-width:760px){
 .film{height:500vh}.fk-t{display:none}
 .fnav{top:40px;left:20px;right:auto;gap:22px}
 .h-a{font-size:40px;line-height:42px;width:calc(100vw - 40px)}.h-b{font-size:38px;line-height:40px;width:calc(100vw - 40px)}
 .sa,.sb{font-size:15px;line-height:22px;width:calc(100vw - 40px)}.fr{width:72vw;padding:12px 14px}.fr .ft{font-size:15px}
 .wline{width:100vw}.fr[data-el=f0] .lab{font-size:11px}.wline .lab{font-size:11px;left:auto;right:20px}.sl[data-el=s0]{--w:302px;--h:84px}.sl[data-el=s1]{--w:329px;--h:88px}.sl[data-el=s2]{--w:356px;--h:92px}.sl[data-el=s3]{--w:383px;--h:96px}.sl-n{display:none}.sl-t{padding:0 14px;gap:2px}.sl-t b{font-size:16px}.sl-d{font-size:13px}.prov{width:calc(100vw - 40px);font-size:11px}
 .card-g{width:calc(100vw - 40px);padding:20px 18px 14px}.gl{font-size:22px}.gm{font-size:12px}.gs{display:none}
 .gr{grid-template-columns:1fr;gap:4px;padding:10px 0}.gr p:not(.gk){font-size:14px}.ga{font-size:15px!important}
 .tab{font-size:12px;line-height:14px;min-height:44px;padding:0 12px;letter-spacing:.06em}.gk{font-size:12px}
 .js .film .tabs{gap:6px;margin:12px 0 4px}
 .js .film:not(.static) .gh{padding-bottom:10px}.js .film:not(.static) .gr{padding:8px 0}.js .film:not(.static) .gfoot{margin-top:8px}
 .js .film:not(.static) .gn-2,.js .film:not(.static) .o-del{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
 .js .film:not(.static) .out .o-long{margin:0}.js .film:not(.static) .o-pmm{color:var(--tx)}.out p{font-size:15px;line-height:22px}.out{width:calc(100vw - 40px)}.out .btn{margin-top:14px}
 html:not(.js) .film .stage,.film.static .stage{padding:0 20px}
}
@media (max-width:360px){.fnav{gap:14px}.fnav a{letter-spacing:.05em}}
.fnav a{white-space:nowrap}
@media (max-width:760px){.film.mid .fnav{opacity:0;pointer-events:none;visibility:hidden}}
@media (max-width:340px){.js .film:not(.static) .fk{visibility:hidden!important}.js .film:not(.static) .fnav{top:4px;left:20px;right:auto;flex-direction:column;align-items:flex-start;gap:0}}
@media (max-width:360px){html:not(.js) .film .sl-t,.film.static .sl-t{padding:0 10px}html:not(.js) .film .sl-d,.film.static .sl-d{font-size:12px;letter-spacing:-.01em}}
@media print{.film{height:auto!important}}
.film.end .fnav{opacity:0;pointer-events:none;visibility:hidden}.fnav{transition:opacity .3s}

/* B4.5 review fixes */
.card-g{overflow:clip}#ci-guide{scroll-margin-top:24px}
.film .card-g .tab{transition:box-shadow .25s,background-color .25s}
.film.land .card-g .tab{box-shadow:0 0 0 2px #0A0A0A,0 0 0 5px rgba(10,10,10,.18)}

/* ===== B4.6.2 hotfix: console responsiveness, console detail rhythm, proof source links ===== */
/* 1 · After the first tap the opening choreography is over. Selection must answer on the next paint:
      no restarted entrance animations, no delays, and no frame where the card's text and background fight
      (background and text swap together; only the halo eases, 150ms). Initial load is untouched. */
.js .hero .front.touched .nd .ndb,
.js .hero .front.touched .nd b,
.js .hero .front.touched .nd .nst{animation:none!important;transition-delay:0ms!important}
.js .hero .front.touched .nd .ndb{transition:box-shadow 150ms ease-out}
.front .ndb{-webkit-tap-highlight-color:transparent}   /* the card's own state change is the feedback; no UA overlay tinting it */
.js .hero .front.touched .nd.cur .ndb{box-shadow:0 0 0 4px rgba(242,240,235,.1)}
@media(max-width:1023px){
  /* a tapped card stays lit even when the console scrolls partly out of view */
  .js .hero .front.touched .stage:not(.in) .nd.cur .ndb{background:var(--tx);box-shadow:0 0 0 3px rgba(242,240,235,.1)}
  .js .hero .front.touched .stage:not(.in) .nd.cur b,
  .js .hero .front.touched .stage:not(.in) .nd.cur .nst{color:var(--c0)}
  .js .hero .front.touched .stage:not(.in) .nd.cur .nid{color:#4A4946}
}
@media(max-width:760px){
  .js .hero .front.touched .nd.cur .ndb{box-shadow:0 0 0 3px rgba(242,240,235,.1)}
  /* 2 · detail area: same overall height as before, regrouped: heading, description, then Owner/Status as a tight pair */
  .front .det{margin-top:14px;padding-top:12px;gap:1px}
  .front .det .dk{margin-bottom:4px}
  .front .det .dd{margin-bottom:4px}
}
/* 3 · proof sources: label + grouped links, no loose punctuation */
.psrc{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px}
.psrc-links{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:20px;row-gap:0}
.psrc a{border-bottom:0;padding:5px 0;text-decoration:underline;text-decoration-color:rgba(242,240,235,.35);text-decoration-thickness:1px;text-underline-offset:5px}
.psrc a:hover,.psrc a:focus-visible{text-decoration-color:var(--tx)}
@media(pointer:coarse){.psrc-links{align-items:center}.psrc a{display:inline-flex;align-items:center;min-height:44px;padding:0}}
@media(max-width:760px){
  .psrc{flex-direction:column;align-items:flex-start;gap:0;margin-top:18px}
  .psrc-links{flex-direction:column;align-items:flex-start;row-gap:0}
  .psrc a{display:flex;align-items:center;min-height:44px;padding:0;max-width:100%}
}
