@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:400;font-display:swap;src:url(/GeekMidst/index.php?asset=lf-400&v=12.2.0) format("woff2")}
@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:700;font-display:swap;src:url(/GeekMidst/index.php?asset=lf-700&v=12.2.0) format("woff2")}
/* ===== v5 design tokens: brand blue anchors, green = positive/connected, purple = data & AI accents ===== */
:root{--blue:var(--p);--blue-d:#0d47ad;--blue-t:#e8f0fd;--green:var(--g);--green-d:#2f8a3a;--green-t:#e7f5e9;--purple:var(--v);--purple-t:#eeecfa;
--navy:#0a1633;--navy-2:#101f44;--navy-3:#172a57;--ink:#0d1526;--paper:#f5f7fb;--card:#fff;--line:#e2e8f2;--soft:#4a5670;--fg:var(--ink);--bg:var(--paper);--tone:#eef2f8;--link:#0e4fbf;
--font:"Libre Franklin",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--code:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; /* taste-skill-ignore: --code is used only by <pre>/<code> */
--s-small:clamp(.8125rem,.79rem + .1vw,.875rem);--s-body:clamp(1.0625rem,1rem + .2vw,1.15rem);--s-lead:clamp(1.2rem,1.08rem + .55vw,1.5rem);--s-h3:clamp(1.25rem,1.1rem + .5vw,1.5rem);--s-head:clamp(1.85rem,1.1rem + 2.3vw,3.25rem);--s-display:clamp(2.3rem,1rem + 3.9vw,4.9rem);
--m:clamp(16px,3vw,40px);--r:18px;--ease:cubic-bezier(.2,.8,.2,1);--lift:0 18px 40px -22px rgba(10,22,51,.35);--shade:0 30px 60px -28px rgba(9,14,24,.55);color-scheme:light}
[data-theme=dark]{--paper:#0b111e;--card:#121a2b;--line:#1f2b44;--soft:#b7c1d4;--fg:#e9eef6;--bg:#0b111e;--tone:#162036;--link:#9dbcff;--blue-t:#13254a;--green-t:#12301c;--purple-t:#1f1c3d;color-scheme:dark}
.on-dark{--fg:#eef3fb;--soft:#c3cde2;--tone:#16264d;--line:#22356a;--link:#a9c4ff;--card:#101f44;color:var(--fg)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
html,body{overflow-x:clip}
body{margin:0;font:400 var(--s-body)/1.6 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:var(--bg);color:var(--fg)}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
img{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{font-weight:700;letter-spacing:-.03em;line-height:1.04;margin:0;text-wrap:balance}
h1{font-size:var(--s-display)}h2{font-size:var(--s-head)}h3{font-size:var(--s-h3);letter-spacing:-.015em;line-height:1.2}
p{margin:0;text-wrap:pretty}ul,ol{margin:0;padding:0}
::selection{background:#125bd833}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}
.on-dark :focus-visible{outline-color:#fff}
[hidden]:not([data-p]){display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:8px;z-index:300;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px}.skip:focus{left:8px}
.small{font-size:var(--s-small);line-height:1.45}.lead{font-size:var(--s-lead);line-height:1.45}.soft,.mute{color:var(--soft)}
.wrap{width:min(1360px,100%);margin-inline:auto;padding-inline:var(--m)}
.sec{padding-block:clamp(64px,8vw,128px)}.sec-tight{padding-block:clamp(40px,5vw,72px)}
.sec-white{background:var(--card)}.sec-navy{background:var(--navy)}.sec-tone{background:var(--tone)}
[data-theme=dark] .sec-white{background:#0e1524}
.sec-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px 64px;align-items:end;margin-bottom:clamp(36px,4vw,56px)}
.sec-head p{color:var(--soft);max-width:56ch}
@media(max-width:860px){.sec-head{grid-template-columns:1fr}}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:var(--s-small);font-weight:700;color:var(--purple);margin-bottom:18px}
.on-dark .kicker{color:#c9c2f5}
.kicker img{width:22px;height:auto}
/* icons */
.ic{width:24px;height:24px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ic-box{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--blue-t);color:var(--blue);flex:none}
.ic-box.g{background:var(--green-t);color:var(--green-d)}.ic-box.v{background:var(--purple-t);color:var(--purple)}
[data-theme=dark] .ic-box{color:#9dbcff}[data-theme=dark] .ic-box.g{color:#7fd48a}[data-theme=dark] .ic-box.v{color:#b8b0f2}
.on-dark .ic-box{background:#16295a;color:#a9c4ff}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:12px;border:0;background:var(--blue);color:#fff;font-weight:700;font-size:var(--s-body);text-decoration:none;cursor:pointer;transition:background .2s,color .2s,transform .2s var(--ease),box-shadow .2s}
.btn:hover{background:var(--blue-d);box-shadow:var(--lift)}.btn:active{transform:translateY(1px)}
.btn .ic{width:20px;height:20px;transition:transform .25s var(--ease)}.btn:hover .ic-arrow{transform:translateX(3px)}
.btn-2{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1.5px var(--line)}.btn-2:hover{background:var(--tone);box-shadow:inset 0 0 0 1.5px var(--soft)}
.on-dark .btn-2{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35)}.on-dark .btn-2:hover{background:rgba(255,255,255,.08)}
.btn-light{background:#fff;color:var(--navy)}.btn-light:hover{background:var(--green-t);color:var(--navy)}
.btn-wa{background:#1f9d55}.btn-wa:hover{background:#178246}
.btn[disabled]{opacity:.55;pointer-events:none}
.go{display:inline-flex;gap:8px;align-items:center;font-weight:700;text-decoration:none;color:var(--link)}
.go .ic{width:18px;height:18px;transition:transform .25s var(--ease)}.go:hover .ic,a:hover .go .ic{transform:translateX(4px)}
.go:hover{text-decoration:underline}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:var(--s-small);font-weight:700;padding:4px 10px;border-radius:999px;background:var(--tone);color:var(--soft)}
.pill.ill{background:var(--purple-t);color:var(--purple)}[data-theme=dark] .pill.ill{color:#c9c2f5}
/* ===== header ===== */
.bar{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);box-shadow:0 1px 0 var(--line);transition:transform .35s var(--ease)} /* taste-skill-ignore: sticky bar is an overlay */
.bar.away{transform:translateY(-100%)}
.bar-in{display:flex;align-items:center;gap:12px;min-height:76px;width:min(1360px,100%);margin-inline:auto;padding-inline:var(--m)}
.t-logo{display:flex;align-items:center;margin-right:auto;text-decoration:none}
.t-logo img{height:44px;width:auto}
.logo-dark{display:none}[data-theme=dark] .logo-light{display:none}[data-theme=dark] .logo-dark{display:block}
.logo-fb{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:var(--s-lead);letter-spacing:-.03em}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none}
.nav-links>li>a,.nav-links>li>button{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 13px;border:0;background:none;border-radius:10px;font-weight:700;font-size:.97rem;text-decoration:none;cursor:pointer;color:var(--fg);transition:background .2s,color .2s}
.nav-links>li>a:hover,.nav-links>li>button:hover,.has-mega.open>button{background:var(--tone)}
.nav-links [aria-current=page]{color:var(--blue)}[data-theme=dark] .nav-links [aria-current=page]{color:#9dbcff}
.nav-links svg.chev{transition:transform .25s var(--ease)}.has-mega.open svg.chev{transform:rotate(180deg)}
.has-mega{position:static}
.mega{position:absolute;left:0;right:0;top:100%;background:var(--card);box-shadow:0 1px 0 var(--line),var(--shade);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .25s var(--ease),visibility .2s} /* taste-skill-ignore: overlay */
.has-mega.open .mega{opacity:1;visibility:visible;transform:none}
.mega-in{width:min(1360px,100%);margin-inline:auto;padding:28px var(--m) 32px;display:flex;flex-wrap:wrap;gap:28px}
.mega-col{flex:1 1 220px;max-width:340px}.mega-feat{flex:0 0 330px;margin-left:auto}
.mega-col .mega-h{margin:0 0 10px;font-size:var(--s-small);color:var(--soft);font-weight:700}
.mega-col a{display:flex;gap:12px;align-items:flex-start;padding:10px;margin:0 -10px;border-radius:12px;text-decoration:none;transition:background .15s}
.mega-col a:hover{background:var(--tone)}
.mega-col a .ic-box{width:36px;height:36px;border-radius:10px}.mega-col a .ic-box .ic{width:19px;height:19px}
.mega-col b{display:block;font-size:.97rem}.mega-col span.d{display:block;font-size:var(--s-small);color:var(--soft);line-height:1.4;margin-top:2px}
.mega-feat{display:flex;flex-direction:column;gap:12px;background:var(--navy);color:#fff;border-radius:var(--r);overflow:hidden;text-decoration:none}
.mega-feat img{aspect-ratio:16/9;object-fit:cover;width:100%}
.mega-feat div{padding:0 18px 18px}.mega-feat div:first-child{padding-top:18px}.mega-feat b{display:block;font-size:var(--s-h3);letter-spacing:-.02em;margin-bottom:6px}.mega-feat p{font-size:var(--s-small);color:#c3cde2}
.mega-all{flex:1 0 100%;display:flex;gap:24px;flex-wrap:wrap;padding-top:16px;box-shadow:0 -1px 0 var(--line)}
.ic-btn{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:10px;background:none;cursor:pointer;color:var(--fg);transition:background .2s}
.ic-btn:hover{background:var(--tone)}
.i-moon{display:none}[data-theme=dark] .i-sun{display:none}[data-theme=dark] .i-moon{display:block}
.bar .btn{min-height:46px;padding:0 18px}
.menu-btn{display:none}
.sheet{display:none}
@media(max-width:1140px){.nav-links,.bar .btn-cta{display:none}.menu-btn{display:grid}
.sheet.open{display:block;position:fixed;inset:76px 0 0;background:var(--card);overflow:auto;padding:16px var(--m) 40px;z-index:59}
.sheet details{box-shadow:0 1px 0 var(--line)}.sheet summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:58px;font-weight:700;font-size:var(--s-lead);cursor:pointer}
.sheet summary::-webkit-details-marker{display:none}
.sheet details a,.sheet>a.sl{display:block;padding:10px 0;text-decoration:none}.sheet>a.sl{min-height:58px;display:flex;align-items:center;font-weight:700;font-size:var(--s-lead);box-shadow:0 1px 0 var(--line)}
.sheet .btn{margin-top:24px;width:100%}}
/* ===== hero ===== */
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden;isolation:isolate}
.hero-art{position:absolute;inset:0;z-index:-2}
.hero-art img{width:100%;height:100%;object-fit:cover;object-position:72% 50%}
.hero-live{position:absolute;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}
.hero-veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,22,51,.94) 0%,rgba(10,22,51,.8) 40%,rgba(10,22,51,0) 66%)} /* taste-skill-ignore: legibility scrim over a photograph-like render */
.hero .wrap{min-height:min(calc(100svh - 76px),860px);display:flex;align-items:center;padding-block:72px 96px}
.hero-copy{max-width:790px}
.hero h1{font-size:clamp(2.1rem,1rem + 3vw,3.6rem);letter-spacing:-.035em;line-height:1.03}
.hero h1 em{font-style:normal;color:#8fd49a}
.hero .lead{margin:26px 0 34px;color:#d5def0;max-width:46ch}
.hero-acts{display:flex;flex-wrap:wrap;gap:12px}
.hero-note{margin-top:36px;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:var(--s-small);color:#c3cde2}
.hero-note span{display:inline-flex;align-items:center;gap:8px}.hero-note .ic{width:18px;height:18px;color:#8fd49a}
@media(max-width:900px){.hero-art{position:relative;inset:auto;z-index:0;aspect-ratio:4/3;overflow:hidden}.hero-art img{object-position:74% 50%}.hero-art::after{content:"";position:absolute;inset:auto 0 0;height:35%;background:linear-gradient(transparent,var(--navy))}.hero-live,.hero-veil{display:none}
.hero .wrap{min-height:0;padding-block:8px 56px}}
/* trust strip */
.trust{background:var(--card);box-shadow:0 1px 0 var(--line)}
.trust .wrap{display:flex;align-items:center;gap:16px 40px;flex-wrap:wrap;padding-block:26px}
.trust p{font-size:var(--s-small);font-weight:700;color:var(--soft);flex:none}
.trust ul{display:flex;flex-wrap:wrap;gap:8px 26px;list-style:none}
.trust li{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.98rem}
.trust li .ic{width:20px;height:20px;color:var(--blue)}
.trust .verified{width:100%;display:flex;gap:8px;flex-wrap:wrap}
/* capability cards */
.caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:1000px){.caps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.caps{grid-template-columns:1fr}}
.cap-img{aspect-ratio:16/9;background:var(--navy);overflow:hidden;margin:-28px -28px 0}.cap-img img{width:100%;height:100%;object-fit:cover}.cap-b{display:flex;flex-direction:column;gap:14px;flex:1}.cap-b .ic-box{margin-top:-46px;position:relative;box-shadow:0 0 0 4px var(--card)}
.cap{overflow:hidden;background:var(--card);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;gap:14px;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .25s,transform .25s var(--ease)}
.cap:hover{box-shadow:inset 0 0 0 1px var(--line),var(--lift);transform:translateY(-3px)}
.cap p{color:var(--soft)}
.cap ul{list-style:none;display:grid;gap:4px;margin-top:auto;padding-top:8px}
.cap li a{display:flex;justify-content:space-between;gap:10px;padding:8px 0;text-decoration:none;font-weight:700;font-size:.97rem;box-shadow:0 -1px 0 var(--line)}
.cap li a:hover{color:var(--link)}.cap li a .ic{width:18px;height:18px;color:var(--soft)}
.cap li span.pend{display:block;padding:8px 0;color:var(--soft);font-size:.97rem;box-shadow:0 -1px 0 var(--line)}
/* challenges -> solutions */
.chal{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:48px}
.chal-head{position:sticky;top:110px;align-self:start}
.chal-head p{color:var(--soft);margin-top:18px;max-width:40ch}
.chal-fig{margin-top:32px;border-radius:var(--r);overflow:hidden;background:var(--navy);aspect-ratio:16/11}.chal-fig img{width:100%;height:100%;object-fit:cover}
.chal-list{display:grid;gap:12px}
.chal-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;background:var(--card);border-radius:var(--r);padding:26px 28px;box-shadow:inset 0 0 0 1px var(--line)}
.chal-q{font-weight:700;font-size:var(--s-h3);letter-spacing:-.015em;line-height:1.25;display:flex;gap:12px}
.chal-q .ic{color:var(--purple);margin-top:3px}
.chal-a p{color:var(--soft);margin-bottom:12px}
@media(max-width:960px){.chal,.chal-item{grid-template-columns:1fr}.chal-head{position:static}.chal-item{gap:12px}}
/* art cards (solutions, work, insights) */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.cards{grid-template-columns:1fr}}
.acard{display:flex;flex-direction:column;background:var(--card);border-radius:var(--r);overflow:hidden;text-decoration:none;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .25s,transform .25s var(--ease)}
a.acard:hover{box-shadow:inset 0 0 0 1px var(--line),var(--lift);transform:translateY(-3px)}
.acard-img{aspect-ratio:16/10;overflow:hidden;background:var(--navy)}
.acard-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
a.acard:hover .acard-img img{transform:scale(1.04)}
.acard-b{padding:22px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.acard-b p{color:var(--soft);font-size:.98rem}
.acard-m{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:var(--s-small);color:var(--soft)}
.acard .go{margin-top:auto;padding-top:6px}
.scroller{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(min(100%,300px),1fr);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;scrollbar-width:thin}
.scroller>*{scroll-snap-align:start}
@media(min-width:1200px){.scroller{grid-auto-columns:calc((100% - 40px) / 3)}}
.scroll-ctl{display:flex;gap:8px}.scroll-ctl button{width:48px;height:48px;border-radius:12px;border:0;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;display:grid;place-items:center;color:var(--fg)}
.scroll-ctl button:hover{background:var(--tone)}
/* industries */
.inds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media(max-width:1100px){.inds{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.inds{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ind{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;text-decoration:none;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .25s,transform .25s var(--ease)}
a.ind:hover{box-shadow:inset 0 0 0 1px var(--line),var(--lift);transform:translateY(-3px)}
.ind-img{aspect-ratio:4/3;background:var(--navy);overflow:hidden}.ind-img img{width:100%;height:100%;object-fit:cover}
.ind-b{padding:16px 18px 18px}.ind-b b{display:block;font-size:1.05rem;letter-spacing:-.01em}.ind-b span{display:block;font-size:var(--s-small);color:var(--soft);margin-top:4px;line-height:1.4}
/* approach timeline */
.flow{list-style:none;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px;position:relative;counter-reset:st}
.flow::before{content:"";position:absolute;left:0;right:0;top:23px;height:2px;background:#22356a}
.flow::after{content:"";position:absolute;left:0;top:23px;height:2px;width:calc(var(--prog,0) * 100%);background:var(--green);transition:width 1.6s var(--ease)}
.flow li{position:relative;z-index:1;counter-increment:st}
.flow .dot{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--navy-2);box-shadow:inset 0 0 0 2px #2c4380;color:#fff;font-weight:700;margin-bottom:18px;transition:background .4s,box-shadow .4s}
.flow .dot::before{content:counter(st)}
.flow li.done .dot{background:var(--green);box-shadow:none;color:var(--navy)}
.flow h3{font-size:1.08rem;margin-bottom:6px}.flow p{font-size:var(--s-small);color:#c3cde2;line-height:1.5}
@media(max-width:1100px){.flow{grid-template-columns:1fr;gap:0}.flow::before,.flow::after{left:23px;right:auto;top:0;bottom:0;width:2px;height:auto}.flow::after{height:calc(var(--prog,0) * 100%);width:2px}
.flow li{display:grid;grid-template-columns:48px 1fr;column-gap:18px;padding-bottom:22px}.flow .dot{grid-row:span 2;margin:0}}
/* closing CTA */
.closing{background:var(--blue);color:#fff;border-radius:28px;padding:clamp(28px,5vw,64px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:center}
.closing h2{font-size:var(--s-head);margin-bottom:16px}.closing p{color:#e4ecfb;max-width:52ch}
.closing-opts{display:grid;gap:10px}
.closing-opts a{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.1);text-decoration:none;font-weight:700;transition:background .2s}
.closing-opts a:hover{background:rgba(255,255,255,.18)}.closing-opts small{display:block;font-weight:400;color:#fff}
.closing-opts .ic{color:#fff}
.closing .btn-light{margin-top:24px}
@media(max-width:900px){.closing{grid-template-columns:1fr}}
/* ===== inner pages ===== */
.page-head{background:var(--card);box-shadow:0 1px 0 var(--line)}
[data-theme=dark] .page-head{background:#0e1524}
.page-head .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:center;padding-block:clamp(36px,5vw,72px)}
.page-head.nofig .wrap{grid-template-columns:minmax(0,1fr)}.page-head.nofig .head-copy{max-width:860px}
.head-copy{display:flex;flex-direction:column;gap:20px}
.head-copy h1{font-size:clamp(2.1rem,1.1rem + 3vw,3.9rem);max-width:20ch}
.head-copy .lead{color:var(--soft);max-width:56ch}
.head-meta{display:flex;flex-wrap:wrap;gap:6px 20px;margin:0;font-size:var(--s-small)}
.head-meta div{display:flex;gap:6px}.head-meta dt{color:var(--soft)}.head-meta dd{margin:0;font-weight:700}
.head-acts{display:flex;flex-wrap:wrap;gap:10px}
.head-fig{border-radius:22px;overflow:hidden;background:var(--navy);aspect-ratio:16/10;box-shadow:var(--lift)}
.head-fig img{width:100%;height:100%;object-fit:cover}
.head-fig picture,.acard-img picture,.ind-img picture,.chal-fig picture{display:block;height:100%}
.head-fig .ui{height:100%;border-radius:0}
@media(max-width:900px){.page-head .wrap{grid-template-columns:1fr}.head-fig{order:2}}
.crumbs{display:flex;flex-wrap:wrap;gap:6px;list-style:none;font-size:var(--s-small);color:var(--soft)}
.crumbs li+li::before{content:"/";margin-right:6px;opacity:.6}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline;color:var(--fg)}
.notice{background:var(--purple-t);padding:16px 20px;border-radius:14px;max-width:66ch}
.doc{padding-block:clamp(48px,6vw,96px)}
.doc-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(32px,5vw,80px)}
.doc-grid.no-toc{grid-template-columns:minmax(0,1fr)}.doc-grid.no-toc .doc-body{max-width:820px;margin-inline:auto;width:100%}
.toc{position:sticky;top:100px;align-self:start;font-size:var(--s-small)}
.toc p{font-weight:700;margin-bottom:10px}
.toc a{display:block;padding:7px 0 7px 14px;text-decoration:none;color:var(--soft);box-shadow:inset 2px 0 0 var(--line);transition:color .2s,box-shadow .2s}
.toc a:hover{color:var(--fg)}.toc a.on{color:var(--fg);font-weight:700;box-shadow:inset 2px 0 0 var(--blue)}
.toc-cta{margin-top:24px;padding:18px;border-radius:14px;background:var(--blue-t)}
.toc-cta b{display:block;margin-bottom:8px;font-size:.95rem}
.doc-body{max-width:820px;min-width:0}
.doc-body>*+*{margin-top:32px}
.doc-body>p,.doc-body li{max-width:68ch}
@media(max-width:1000px){.doc-grid{grid-template-columns:1fr}.toc{display:none}}
.prose{line-height:1.7}
.prose>*+*{margin-top:1em}
.prose h2,.block-title{font-size:clamp(1.55rem,1.15rem + 1.2vw,2.2rem);letter-spacing:-.025em;line-height:1.12;margin:56px 0 16px}
.prose>:first-child:not(h2){margin-top:0}
.doc-body>:first-child>h2:first-child,.doc-body>h2.block-title:first-child{margin-top:0}
.prose h3{margin:32px 0 8px}
.prose a,.faq-a a,.card a,.callout a{color:var(--link)}
.prose strong{font-weight:700}
.prose code,.faq-a code,.callout code{font:.88em var(--code);background:var(--tone);padding:2px 6px;border-radius:6px}
.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.4em 0}.prose li::marker{color:var(--blue)}
.prose blockquote{margin:24px 0;padding:18px 22px;background:var(--tone);border-radius:14px;font-size:var(--s-lead);box-shadow:inset 3px 0 0 var(--purple)}
.pending-link{text-decoration:underline dotted;text-underline-offset:.2em}
.code{margin:0;background:#0d1526;color:#e3e9f3;overflow:hidden;border-radius:16px}
.code-h{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 18px;background:#141d30;font-size:var(--s-small);color:#c2cbdc}
.code-h .dots{display:none}.code-h .mono{font-weight:700;font-family:var(--font)}
.copy{margin-left:auto;padding:6px 14px;border:0;border-radius:8px;background:#26324a;color:#e3e9f3;cursor:pointer;font-size:var(--s-small);font-weight:700;transition:background .2s}
.copy:hover{background:var(--blue)}
.code pre{margin:0;padding:20px 22px;overflow:auto;font:14px/1.7 var(--code);tab-size:4}
.code figcaption{padding:12px 18px;background:#141d30;font-size:var(--s-small);color:#c2cbdc}
.tk-k{color:#8fb4ff}.tk-s{color:#a6dfa0}.tk-c{color:#7d8aa3;font-style:italic}.tk-n{color:#f0c27b}.tk-f{color:#b9c9ff}.tk-v{color:#f4a6b8}
.callout{display:flex;gap:14px;padding:18px 20px;background:var(--blue-t);border-radius:14px}
.callout.warn{background:#fbf0d6;color:#2b2210}[data-theme=dark] .callout.warn{background:#3a2f12;color:#f3e6c4}
.callout.success{background:var(--green-t)}
.callout-i{flex:none;width:26px;height:26px;display:grid;place-items:center;font-weight:700;background:var(--blue);color:#fff;border-radius:50%;font-size:var(--s-small)}
.callout.warn .callout-i{background:#8a5a00}.callout.success .callout-i{background:var(--green-d)}
.grid.cards-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
.card{background:var(--card);padding:22px;border-radius:16px;display:flex;flex-direction:column;gap:10px;text-decoration:none;min-height:160px;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .25s,transform .25s var(--ease)}
.card h3{font-size:1.15rem}.card p{color:var(--soft);font-size:.98rem}
a.card:hover{box-shadow:inset 0 0 0 1px var(--blue),var(--lift);transform:translateY(-2px)}
.card .arrow,.card .soon{margin-top:auto;font-size:var(--s-small);font-weight:700;color:var(--link)}.card .soon{color:var(--soft)}
.steps{list-style:none;display:grid;gap:10px;counter-reset:s}
.steps li{display:grid;grid-template-columns:40px 1fr;gap:16px;padding:18px 20px;background:var(--card);border-radius:14px;box-shadow:inset 0 0 0 1px var(--line);counter-increment:s}
.steps .step-n{display:none}
.steps li::before{content:counter(s);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--blue-t);color:var(--blue);font-weight:700}
[data-theme=dark] .steps li::before{color:#9dbcff}
.steps h3{font-size:1.08rem;margin-top:8px}.steps p{color:var(--soft);margin-top:4px}
.faq{display:grid;gap:10px}
.faq details{background:var(--card);border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:700;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.plus{width:14px;height:14px;position:relative;flex:none;margin-top:6px}
.plus::before,.plus::after{content:"";position:absolute;left:0;top:6px;width:14px;height:2px;background:currentColor;transition:transform .3s var(--ease)}
.plus::after{transform:rotate(90deg)}details[open] .plus::after{transform:rotate(0)}
.faq-a{padding:0 22px 20px;max-width:70ch;color:var(--soft)}
.table-wrap{overflow-x:auto;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}
table{width:100%;border-collapse:collapse;background:var(--card)}
th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
thead th{font-weight:700;background:var(--tone);font-size:.95rem}
tbody th{font-weight:700}
tbody tr:last-child>*{border-bottom:0}
@media(max-width:640px){.table-wrap{overflow:visible}table{table-layout:fixed;font-size:var(--s-small)}th,td{padding:10px 8px;overflow-wrap:anywhere}}
.cta-card{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:clamp(24px,3.4vw,40px);background:var(--navy);color:#fff;border-radius:22px}
.cta-card h2{font-size:clamp(1.5rem,1.1rem + 1.2vw,2.1rem);margin:0 0 8px}.cta-card p{color:#c3cde2;max-width:52ch}
.cta-card .btn{background:#fff;color:var(--navy)}.cta-card .btn:hover{background:var(--green-t)}
.acard-img:empty,.ind-img:empty,.chal-fig:empty,.cap-img:empty,.head-fig:empty,.mega-feat-img:empty{display:none}.acard-img:empty,.ind-img:empty,.chal-fig:empty,.cap-img:empty,.head-fig:empty{display:none}.hero-card{position:absolute;right:max(24px,calc((100vw - 1280px)/2));top:50%;transform:translateY(-50%);width:min(46vw,720px);margin:0;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35);z-index:1}.hero-card img{display:block;width:100%;height:auto}.hero-card+.wrap .hero-copy{max-width:min(46vw,620px)}@media(max-width:1100px){.hero:has(.hero-card){display:flex;flex-direction:column;padding-bottom:28px}.hero-card{position:relative;right:auto;top:auto;transform:none;width:auto;margin:0 20px 8px;order:2}.hero-card+.wrap .hero-copy{max-width:none}}.tools{display:grid;gap:28px;max-width:960px}.tool{padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--card)}.tool h2{font-size:var(--s-h3);margin:0 0 6px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.chip{border:1px solid var(--line);background:var(--paper);color:inherit;border-radius:999px;padding:8px 14px;font:inherit;font-size:var(--s-small);cursor:pointer}.chip[aria-pressed=true]{border-color:var(--blue);background:var(--blue);color:#fff}.ex-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px}.ex-list a{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:inherit;background:var(--paper);height:100%}.ex-list a:hover{border-color:var(--blue)}.ex-list span{color:var(--soft);font-size:var(--s-small);line-height:1.5}.gd-form{display:flex;gap:10px;margin:14px 0}.gd-form input{flex:1;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font:inherit;background:var(--paper);color:inherit}.gd-a{margin:12px 0;padding:14px 18px;border-left:3px solid var(--blue);background:var(--paper);border-radius:0 12px 12px 0}.gd-a p{margin:0 0 6px;line-height:1.6}.gd-a footer a{font-weight:700;font-size:var(--s-small)}.calc{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:14px;margin:16px 0}.calc label{display:flex;flex-direction:column;gap:6px;font-size:var(--s-small);font-weight:700}.calc input,.calc select{padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-weight:400;background:var(--paper);color:inherit;min-width:0}.calc .cur{display:flex;gap:6px}.calc .cur select{flex:none;width:96px}.calc .cur input{flex:1}.calc-out{display:flex;flex-wrap:wrap;gap:14px}.calc-r{flex:1;min-width:160px;padding:16px;border-radius:14px;background:var(--paper);border:1px solid var(--line)}.calc-r b{display:block;font-size:1.6rem;letter-spacing:-.02em;color:var(--link)}.calc-r span{font-size:var(--s-small);color:var(--soft)}.tools-note{font-size:var(--s-small)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.next-step{margin:48px 0 0;padding:28px;border-radius:20px;background:var(--card);border:1px solid var(--line)}.next-step h2{font-size:var(--s-h3);margin:0 0 18px}.nx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.nx{display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:inherit;background:var(--paper)}.nx:hover{border-color:var(--blue)}.nx b{font-size:1.05rem}.nx span{color:var(--soft);font-size:var(--s-small);line-height:1.5;flex:1}.nx em{font-style:normal;font-weight:700;color:var(--link);display:flex;align-items:center;gap:6px}.nx-steps{display:flex;gap:18px;margin:20px 0 0;padding:0;list-style:none;counter-reset:nx}.nx-steps li{flex:1;font-size:var(--s-small);color:var(--soft);line-height:1.5}.nx-steps b{display:block;color:var(--fg);margin-bottom:2px}.hsearch{position:relative;display:none;align-items:center;margin-left:auto}.hsearch>.ic{position:absolute;left:12px;width:16px;height:16px;color:var(--soft);pointer-events:none}.hsearch input{width:200px;padding:9px 12px 9px 34px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--fg);font:inherit;font-size:var(--s-small);transition:width .2s}.hsearch input:focus{width:300px;outline:2px solid var(--blue);outline-offset:1px}
.hs-list{position:absolute;top:calc(100% + 8px);right:0;width:min(440px,90vw);max-height:70vh;overflow:auto;list-style:none;margin:0;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.18);z-index:60}.hs-list a{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--fg)}.hs-list b{font-size:.95rem}.hs-list span{font-size:var(--s-small);color:var(--soft);line-height:1.45}.hs-list li[aria-selected=true] a,.hs-list a:hover{background:var(--paper)}.hs-list mark{background:none;color:var(--link);font-weight:700}.hs-none{padding:10px 12px;font-size:var(--s-small);color:var(--soft)}.hs-all a{font-weight:700;color:var(--link);border-top:1px solid var(--line);border-radius:0 0 10px 10px}
@media(min-width:1536px){.hsearch{display:flex}.hs-btn{display:none}}
/* 6.5 motion layer: 3D icons, tilt cards, hover effects (all off with reduced motion) */
.ic-box{position:relative;background:linear-gradient(150deg,#fff 0%,var(--blue-t) 60%,#c9dafb 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -3px 0 rgba(18,91,216,.16),0 10px 18px -10px rgba(18,91,216,.55),0 2px 4px rgba(18,91,216,.12);transform:perspective(320px) rotateX(10deg) rotateY(-8deg);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.ic-box .ic{filter:drop-shadow(0 2px 1px rgba(18,91,216,.28))}
.ic-box.g{background:linear-gradient(150deg,#fff 0%,var(--green-t) 60%,#cdeed1 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -3px 0 rgba(71,180,82,.2),0 10px 18px -10px rgba(47,140,58,.55)}
.ic-box.v{background:linear-gradient(150deg,#fff 0%,var(--purple-t) 60%,#d9d4f5 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -3px 0 rgba(87,71,175,.18),0 10px 18px -10px rgba(87,71,175,.55)}
:where(a,div,li,article):hover>.ic-box,.tilt:hover .ic-box{transform:perspective(320px) rotateX(0) rotateY(0) translateY(-3px) rotate(-4deg)}
[data-theme=dark] .ic-box{background:linear-gradient(150deg,#1d3470 0%,#16295a 60%,#0f1d42 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 10px 18px -10px rgba(0,0,0,.7)}
.tilt{transform-style:preserve-3d;will-change:transform;position:relative}
.tilt::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,0%),rgba(255,255,255,.28),transparent 45%);opacity:0;transition:opacity .3s}
.tilt.tilting::after{opacity:1}
[data-theme=dark] .tilt::after{background:radial-gradient(circle at var(--mx,50%) var(--my,0%),rgba(157,188,255,.14),transparent 45%)}
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-120%);transition:transform .75s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn .ic-arrow{transition:transform .25s var(--ease)}.btn:hover .ic-arrow,.go:hover .ic-arrow,a:hover>.go .ic-arrow{transform:translateX(4px)}
.acard,.card,.nx,.proj,.wu,.ach{transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.sec-head h2,.page-head h1{background-image:linear-gradient(90deg,var(--blue),var(--purple) 55%,var(--green));background-repeat:no-repeat;background-size:0 3px;background-position:0 100%;transition:background-size .9s var(--ease)}
.in .sec-head h2,.sec-head.in h2,.sec-head h2.in{background-size:64px 3px}
@keyframes gmFloat{from{transform:perspective(320px) rotateX(10deg) rotateY(-8deg) translateY(0)}to{transform:perspective(320px) rotateX(4deg) rotateY(-2deg) translateY(-5px)}}
.hero .ic-box,.caps .ic-box,.ach .ic-box{animation:gmFloat 3.6s ease-in-out infinite alternate}
.ach:nth-child(2n) .ic-box{animation-delay:-1.2s}.ach:nth-child(3n) .ic-box{animation-delay:-2.1s}
.hero-card{transition:transform .5s var(--ease)}
/* projects page */
.proj-sec{margin:0 0 72px}.proj-sec .sec-head{margin-bottom:26px;max-width:760px}.proj-sec .sec-head p{margin-top:8px}
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:24px}
.proj{display:flex;flex-direction:column;background:var(--card);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;box-shadow:inset 0 0 0 1px var(--line)}
.proj:hover{box-shadow:inset 0 0 0 1px var(--blue),var(--lift)}
.proj-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:#fff}.proj-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}.proj:hover .proj-img img{transform:scale(1.05)}
.proj-img picture{display:block;height:100%}
.proj-badge{position:absolute;top:14px;left:14px;padding:6px 12px;border-radius:999px;background:var(--purple);color:#fff;font-size:var(--s-small);font-weight:700}.proj-badge.ok{background:var(--blue)}
.proj-b{padding:22px 24px 24px;display:flex;flex-direction:column;gap:12px;flex:1}.proj-b h3{margin:0;font-size:1.2rem}.proj-b p{margin:0;color:var(--soft)}
.proj-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}.proj-steps li{display:flex;gap:8px;align-items:flex-start;font-size:var(--s-small);color:var(--fg)}.proj-steps .ic{width:16px;height:16px;flex:none;margin-top:2px;color:var(--green-d,#2f8c3a)}
.proj-tags{display:flex;flex-wrap:wrap;gap:6px}.proj-tags span{padding:4px 10px;border-radius:999px;border:1px solid var(--line);font-size:12px;color:var(--soft)}
.proj .go{margin-top:auto;font-weight:700;color:var(--link);display:flex;align-items:center;gap:6px}
.wu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:18px}.wu{padding:24px;border-radius:18px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}.wu h3{margin:16px 0 6px;font-size:1.05rem}.wu p{margin:0;color:var(--soft);font-size:var(--s-small);line-height:1.55}
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:18px}.ach{display:flex;flex-direction:column;gap:8px;padding:24px;border-radius:18px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.ach-v{font-size:2.4rem;font-weight:700;letter-spacing:-.03em;color:var(--link);margin-top:10px}.ach-l{color:var(--soft);font-size:var(--s-small)}.ach-src{font-size:12px;font-weight:700}
.glance figcaption b{color:var(--fg)}
@media (prefers-reduced-motion:reduce){.ic-box,.hero .ic-box,.caps .ic-box,.ach .ic-box{animation:none!important;transform:none!important}.btn::after{display:none}.tilt::after{display:none}.proj-img img,.acard-img img{transition:none}}

@media(max-width:760px){.nx-grid{grid-template-columns:1fr}.nx-steps{flex-direction:column;gap:10px}}.topic-nav{margin:44px 0 0;padding:24px 26px;border:1px solid var(--line);border-radius:16px}.topic-nav h2{font-size:var(--s-h3);margin:0 0 12px}.topic-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.topic-nav a{display:inline-block;padding:7px 14px;border:1px solid var(--line);border-radius:999px;font-size:var(--s-small);text-decoration:none}.topic-nav .pillar a{border-color:var(--blue);font-weight:700}.diagram{margin:28px 0 32px}.diagram img{width:100%;height:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.diagram figcaption{font-size:var(--s-small);color:var(--soft);margin-top:10px;line-height:1.5}.diagram figcaption a{font-weight:700;white-space:nowrap}.img img{width:100%;border-radius:14px}.img figcaption{font-size:var(--s-small);color:var(--soft);margin-top:8px}figure.img{margin:0}
/* hub listing */
.hub-tools{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.search-in{position:relative;flex:1 1 320px;max-width:520px}
.search-in svg{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--soft)}
.search-in .input{width:100%;min-height:52px;border:0;border-radius:12px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);color:var(--fg);padding:0 18px 0 48px;font-size:var(--s-body);outline:none}
.search-in .input:focus{box-shadow:inset 0 0 0 2px var(--blue)}
.search-in .input::placeholder{color:var(--soft)}
.cats{display:flex;flex-wrap:wrap;gap:8px}
.cats button{min-height:52px;padding:0 18px;border:0;border-radius:12px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);color:var(--fg);cursor:pointer;font-weight:700;transition:background .2s,color .2s}
.cats button:hover{background:var(--tone)}.cats button[aria-pressed=true]{background:var(--blue);color:#fff;box-shadow:none}
.cats .n{font-weight:400;margin-left:6px;opacity:.8}
.empty{padding:48px 0;color:var(--soft)}
.more{display:flex;justify-content:center;margin-top:32px}
.cards.loading{opacity:.55;transition:opacity .2s}
.preview-bar{position:sticky;top:0;z-index:80;background:#8a5a00;color:#fff;text-align:center;padding:8px;font-size:var(--s-small);font-weight:700}
/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(28px,4vw,64px);align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.c-opts{display:grid;gap:12px}
.c-opt{display:flex;gap:16px;align-items:center;padding:20px;border-radius:16px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;transition:box-shadow .2s}
a.c-opt:hover{box-shadow:inset 0 0 0 1px var(--blue)}
.c-opt b{display:block;font-size:1.08rem}.c-opt small{display:block;color:var(--soft);font-size:var(--s-small)}
.next-steps{display:grid;gap:18px;margin-top:28px}
.next-steps div{display:grid;grid-template-columns:40px 1fr;gap:14px}.next-steps h3{font-size:1.05rem}.next-steps p{color:var(--soft);font-size:.97rem}
.form-panel{background:var(--card);border-radius:22px;padding:clamp(22px,3vw,36px);box-shadow:inset 0 0 0 1px var(--line),var(--lift)}
.form-panel h2{font-size:clamp(1.5rem,1.1rem + 1.2vw,2.1rem);margin-bottom:6px}.form-panel>p{color:var(--soft);margin-bottom:22px}
.cform{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cf{display:flex;flex-direction:column;gap:6px}
.cf label{font-weight:700;font-size:var(--s-small)}
.cf input,.cf select,.cf textarea{width:100%;min-height:50px;border:0;border-radius:10px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);padding:12px 14px;color:var(--fg);outline:none;transition:box-shadow .2s}
.cf textarea{min-height:130px;resize:vertical}
.cf input:focus,.cf select:focus,.cf textarea:focus{box-shadow:inset 0 0 0 2px var(--blue)}
.cf [aria-invalid=true]{box-shadow:inset 0 0 0 2px #c0392b}
.cf-2,.cf-3{grid-column:1/-1}
.cf-go{grid-column:1/-1;justify-self:start}
.cnote{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;font-size:var(--s-small);color:var(--soft)}
.cnote span{max-width:62ch}.cnote a{color:var(--link)}
.form-msg{font-weight:700;color:var(--fg)}.form-msg.err{color:#c0392b}[data-theme=dark] .form-msg.err{color:#ff8a7a}
.form-ok{padding:28px;border-radius:16px;background:var(--green-t)}.form-ok h3{margin-bottom:8px}
.hp{position:absolute;left:-9999px}
@media(max-width:640px){.cform{grid-template-columns:1fr}}
/* footer */
.foot{background:var(--navy);color:#dfe6f3;padding-top:clamp(56px,7vw,96px)}
.foot a{text-decoration:none}.foot a:hover{text-decoration:underline;color:#fff}
.foot-top{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:32px}
.foot-brand img{height:56px;width:auto;margin-bottom:18px}
.foot-brand p{color:#b9c4dc;max-width:34ch;font-size:.98rem}
.foot-contact{display:grid;gap:8px;margin-top:20px}
.foot-social{display:flex;flex-wrap:wrap;gap:8px 16px;list-style:none;margin:16px 0 0;padding:0}.foot-social a{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.foot-contact a{display:inline-flex;align-items:center;gap:10px;font-weight:700}.foot-contact .ic{width:18px;height:18px;color:#8fd49a}
.foot h2{margin:0 0 14px;font-size:var(--s-small);color:#fff}
.foot nav ul{list-style:none;display:grid;gap:9px;font-size:.97rem}
.foot-last{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:56px;padding-block:24px 28px;box-shadow:0 -1px 0 #1f3263;font-size:var(--s-small);color:#aab6d0}
.foot-last p{max-width:70ch}.foot-last nav{display:flex;gap:18px;flex-wrap:wrap}
.foot-last button{background:none;border:0;padding:0;cursor:pointer;color:inherit;font-size:inherit}.foot-last button:hover{text-decoration:underline;color:#fff}
@media(max-width:1000px){.foot-top{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-brand{grid-column:1/-1}}
/* mobile CTA bar */
.mbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:55;display:none;gap:8px;padding:8px;border-radius:16px;background:var(--navy);box-shadow:var(--shade);transform:translateY(140%);transition:transform .35s var(--ease)} /* taste-skill-ignore: overlay */
.mbar.show{transform:none}
.mbar .btn{flex:1;min-height:48px}.mbar .ic-btn{width:48px;height:48px;background:rgba(255,255,255,.1);color:#fff;border-radius:12px}
@media(max-width:760px){.mbar{display:flex}}
/* palette, toast, consent, progress */
.pal{position:fixed;inset:0;z-index:100;display:none;background:rgba(9,14,24,.6);padding:12vh 16px 16px}
.pal.open{display:block;animation:fade .18s}
@keyframes fade{from{opacity:0}}
.pal-box{max-width:680px;margin:0 auto;background:var(--card);color:var(--fg);border-radius:20px;overflow:hidden;box-shadow:var(--shade);animation:pop .25s var(--ease)} /* taste-skill-ignore: overlay */
@keyframes pop{from{transform:translateY(8px);opacity:0}}
.pal-in{display:flex;align-items:center;gap:12px;padding:6px 22px;box-shadow:0 1px 0 var(--line)}
.pal-in input{flex:1;border:0;background:none;padding:18px 0;font-size:var(--s-lead);outline:none}
.pal-list{list-style:none;padding:8px;max-height:min(56vh,460px);overflow:auto}
.pal-list li a{display:flex;gap:14px;align-items:center;padding:12px 14px;border-radius:12px;text-decoration:none}
.pal-list li[aria-selected=true] a{background:var(--blue-t)}
.pal-list .pt{font-size:var(--s-small);font-weight:700;min-width:84px;color:var(--soft)}
.pal-list b{display:block}
.pal-list small{font-size:var(--s-small);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:460px;color:var(--soft)}
.pal-empty{padding:28px;text-align:center}
kbd{font:12px var(--code);padding:2px 6px;border-radius:6px;background:var(--tone)}
mark{background:#125bd833;color:inherit}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:12px 22px;border-radius:12px;font-size:var(--s-small);font-weight:700;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s var(--ease);z-index:120}
.toast.show{opacity:1;transform:translate(-50%,0)}
.consent{position:fixed;left:16px;bottom:16px;z-index:90;max-width:420px;background:var(--card);color:var(--fg);border-radius:18px;box-shadow:var(--shade);padding:22px} /* taste-skill-ignore: overlay */
.consent p{margin-bottom:14px;font-size:.97rem}.consent div{display:flex;gap:8px}
.progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--blue);z-index:70}
/* interface fragments kept from v4 (data-ui) */
.ui{display:flex;flex-direction:column;background:#fbfcfe;color:#1b2333;font:13px/1.45 var(--font);overflow:hidden;border-radius:16px;text-align:left}
[data-theme=dark] .ui{background:#0f1626;color:#d7deea}
.ui-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;border-bottom:1px solid #e3e8f0;flex-wrap:wrap} /* taste-skill-ignore: interface fragment */
[data-theme=dark] .ui-bar{background:#121b2e;border-color:#1e2a42}
.ui-title{font-weight:700}.ui-sp{flex:1}
.ui-chip,.ui-btn{font-size:11.5px;padding:3px 8px;border-radius:6px;border:1px solid #d7deea;white-space:nowrap} /* taste-skill-ignore: interface fragment */
.ui-ok{color:#2f8a3a;border-color:#bfe3c4;background:#f1faf2}.ui-pri{background:var(--blue);color:#fff;border-color:var(--blue)}
.ui-canvas{position:relative;flex:1;min-height:150px;background:#f4f6fa}[data-theme=dark] .ui-canvas{background:#0b111e}
.ui-meta{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;padding:10px 14px;margin:0;border-bottom:1px solid #e3e8f0} /* taste-skill-ignore: interface fragment */
.ui-meta dt{color:#5b6680}.ui-meta dd{margin:0;font-weight:700}
.ui-sub{padding:8px 14px 2px;font-weight:700;color:#5b6680;font-size:12px}
.ui-list{list-style:none;padding:4px 14px 8px;display:grid;gap:4px}.ui-list li{padding:6px 8px;background:#f1f4f9;border-radius:6px}[data-theme=dark] .ui-list li{background:#162036}
.ui-tbl{width:100%;border-collapse:collapse;font-size:12px;background:transparent}.ui-tbl th,.ui-tbl td{padding:6px 10px;border-bottom:1px solid #e9edf3;font-weight:400} /* taste-skill-ignore: interface fragment */
.ui-tbl thead th{font-weight:700;background:#f4f6fa;color:#5b6680}[data-theme=dark] .ui-tbl thead th{background:#121b2e}
.ui-code{margin:0;padding:12px 14px;background:#0d1526;color:#e3e9f3;font:12px/1.6 var(--code);overflow:hidden;white-space:pre}
.ui-split{display:grid;grid-template-columns:1.1fr 1fr;flex:1}.ui-prev{padding:12px}
.ui-mail{border:1px solid #e3e8f0;border-radius:8px;padding:10px;background:#fff} /* taste-skill-ignore: interface fragment */
[data-theme=dark] .ui-mail{background:#121b2e;border-color:#1e2a42}
.ui-token{display:none}
/* assessment */
.quiz{max-width:860px;margin-inline:auto}
.quiz-bar{height:8px;background:var(--tone);border-radius:999px;margin-bottom:28px;overflow:hidden}.quiz-bar i{display:block;height:100%;background:var(--blue);width:0;transition:width .4s var(--ease)}
.quiz .q{font-size:var(--s-lead);font-weight:700;margin:0 0 24px;max-width:40ch;outline:none}
.opts{display:grid;gap:8px}
.opts button{text-align:left;padding:18px 22px;border:0;border-radius:14px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;color:var(--fg);transition:background .2s,color .2s,box-shadow .2s}
.opts button:hover{box-shadow:inset 0 0 0 2px var(--blue)}
.opts button[aria-pressed=true]{background:var(--blue);color:#fff}
.quiz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:22px}
.score{font-size:var(--s-display);font-weight:700;letter-spacing:-.04em;line-height:.9}
.score small{font-size:var(--s-lead);font-weight:400;letter-spacing:0;display:block;margin-top:10px}
.meter{display:grid;gap:8px;margin:28px 0}
.meter div{display:grid;grid-template-columns:170px 1fr 40px;gap:12px;align-items:center}
.meter .b{height:10px;background:var(--tone);border-radius:999px;overflow:hidden}.meter .b i{display:block;height:100%;background:var(--blue)}
.quiz .grid.cards-3 .card{min-height:150px}
.quiz .tag{font-size:var(--s-small)}
.quiz .form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.quiz .field label{display:block;font-weight:700;font-size:var(--s-small);margin-bottom:6px}
.quiz .field input{width:100%;min-height:50px;border:0;border-radius:10px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);color:var(--fg);padding:0 14px;outline:none}
.quiz .field input:focus{box-shadow:inset 0 0 0 2px var(--blue)}
.quiz .form-foot{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:700px){.meter div{grid-template-columns:110px 1fr 34px}.quiz .form{grid-template-columns:1fr}}
.e404{font-size:clamp(4rem,2rem + 8vw,9rem);font-weight:700;letter-spacing:-.05em;line-height:.9;color:#8fb6ff}
/* motion: entrances never hide content without script */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0) * 70ms)}
.js .rv.in{opacity:1;transform:none}.js .hero .rv,.js .page-head .rv,.js .ph .rv{opacity:1}/* above-the-fold text stays visible (it is the LCP element on phones); only the slide-in remains */
.js .shutter{clip-path:inset(0 0 100% 0)}
.js .shutter.in{clip-path:inset(0 0 0 0);transition:clip-path 1.1s cubic-bezier(.7,0,.2,1)}
.hero-art img{transition:transform 1.2s var(--ease)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important}.js .rv{opacity:1;transform:none}.js .shutter{clip-path:none}.hero-live{display:none}}
@media print{.bar,.foot,.toc,.pal,.toast,.consent,.cta-card,.head-fig,.mbar{display:none!important}body{background:#fff;color:#000}}/* ===== 7.0: tools, assistant, recommendations, achievements, locations ===== */
.tool-box{margin:clamp(28px,4vw,48px) 0;padding:clamp(20px,3vw,32px);border:1px solid var(--line);border-radius:var(--r);background:var(--card);box-shadow:var(--lift)}
.tool-box .block-title{margin-top:0}
.tool-box fieldset{border:0;margin:0 0 22px;padding:0}.tool-box legend{font-weight:700;margin-bottom:12px;font-size:1.05rem}
.t-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:14px 18px}
.t-f{display:grid;gap:6px;font-size:var(--s-small);font-weight:700}.t-f small{font-weight:400;color:var(--soft)}.t-wide{grid-column:1/-1}
.t-f input,.t-f textarea,.t-f select,.t-cur select,.t-sc input{font:inherit;font-weight:400;font-size:1rem;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);width:100%;min-height:44px}
.t-cur{display:grid;gap:6px;font-size:var(--s-small);font-weight:700}
.t-f input:focus-visible,.t-f textarea:focus-visible,.t-sc input:focus-visible,.as-o input:focus-visible{outline:3px solid var(--blue);outline-offset:1px}
[aria-invalid=true]{border-color:#b42318!important;box-shadow:0 0 0 1px #b42318}
.t-sc{width:100%;border-collapse:collapse}.t-sc th,.t-sc td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.t-sc th small{display:block;font-weight:400;color:var(--soft)}.t-sc td input{min-width:90px}
.t-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.t-err{color:#b42318;font-weight:700}[data-theme=dark] .t-err{color:#ff9b91}
.roi-out{margin-top:22px}.roi-t td{font-variant-numeric:tabular-nums;white-space:nowrap}.roi-t td.pos{color:#1d6f2a}.roi-t td.neg{color:#b42318}[data-theme=dark] .roi-t td.pos{color:#7fd48a}[data-theme=dark] .roi-t td.neg{color:#ff9b91}
.roi-t caption{text-align:left;font-weight:700;padding-bottom:8px}.t-method{margin-top:18px}.t-method summary{cursor:pointer;font-weight:700}
.bc-out:not(:empty){margin-top:26px;padding:clamp(18px,3vw,30px);border:1px solid var(--line);border-radius:14px;background:var(--bg)}.bc-out h2{font-size:var(--s-h3);margin:.2em 0}.bc-out h3{font-size:1.05rem;margin:1.2em 0 .3em}.bc-out section p{margin:.3em 0}
.as-q{padding:16px 0!important;border-bottom:1px solid var(--line)!important;margin:0!important}.as-q legend{font-weight:700;margin-bottom:10px}.as-q legend .mono{color:var(--blue);margin-right:6px}[data-theme=dark] .as-q legend .mono,[data-theme=dark] .studio .kicker{color:#9dbcff}
.as-o{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;cursor:pointer;min-height:44px}.as-o:hover{background:var(--tone)}.as-o input{margin-top:4px;width:18px;height:18px;flex:none}
.as-out:not(:empty){margin-top:22px}.as-bars{list-style:none;padding:0;display:grid;gap:12px}.as-bars li{display:grid;grid-template-columns:minmax(150px,1.2fr) 2fr 40px auto;gap:12px;align-items:center}
.as-bars .bar{height:10px;border-radius:99px;background:var(--tone);overflow:hidden}.as-bars .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--purple))}.as-bars b{font-variant-numeric:tabular-nums}
.as-sum{display:grid;gap:10px}.as-sum div{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px}.as-sum dt{color:var(--soft)}.as-sum dd{margin:0;font-weight:700}
@media(max-width:640px){.as-bars li{grid-template-columns:1fr 40px}.as-bars .bar{grid-column:1/-1;grid-row:2}.as-sum div{grid-template-columns:1fr}}
.dl-card{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:28px 0;padding:20px 22px;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(135deg,var(--blue-t),var(--purple-t))}.dl-card>svg{width:34px;height:34px;color:var(--blue);flex:none}.dl-card div{flex:1;min-width:220px}.dl-card .dl-t{margin:0 0 4px;font-size:1.1rem;font-weight:700}.dl-card p{margin:0}
.linkish{background:none;border:0;padding:0;color:var(--link);text-decoration:underline;cursor:pointer;font:inherit}
/* recommendations */
.fy{margin-top:8px}.fy-picks{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.fy-picks button{font:inherit;font-size:var(--s-small);font-weight:700;padding:9px 14px;border-radius:99px;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;min-height:40px}
.fy-picks button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}.fy-why{color:var(--soft);font-size:var(--s-small);min-height:1.4em}
.fy-out{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:14px;margin-top:14px}.fy-out:empty{display:none}
.fy-card{display:block;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--fg);text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}.fy-card:hover{transform:translateY(-3px);box-shadow:var(--lift)}.fy-card h3{font-size:1.05rem;margin:8px 0 4px}.fy-card p{margin:0;color:var(--soft);font-size:var(--s-small)}
.fy-rem{display:inline-flex;gap:8px;align-items:center;font-size:var(--s-small);color:var(--soft)}
/* home tools strip */
.tools-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px}.tool-card{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);color:var(--fg);text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.tool-card:hover{transform:translateY(-4px);box-shadow:var(--lift)}.tool-card h3{margin:4px 0 0;font-size:1.15rem}.tool-card p{margin:0;color:var(--soft)}.tool-card .go{margin-top:auto}
.studio{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}.studio-code{font-family:var(--code);font-size:.85rem;line-height:1.7;padding:22px;border-radius:16px;background:#0b1630;color:#d9e4ff;box-shadow:var(--shade);overflow:auto}
.studio-code .k{color:#8fb4ff}.studio-code .s{color:#9de0a6}.studio-code .c{color:#8894b0}.studio ul{padding-left:1.1em}.studio li{margin:.35em 0}
@media(max-width:860px){.studio{grid-template-columns:1fr}}
/* achievements */
.ach-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px}.ach-card{padding:22px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}.ach-card dl{display:grid;gap:8px;margin:12px 0}.ach-card dt{font-size:var(--s-small);color:var(--soft);font-weight:700}.ach-card dd{margin:0}
.ach-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:16px}.ach-facts div{display:grid;gap:4px;padding:20px;border-radius:var(--r);background:var(--card);border:1px solid var(--line)}.ach-facts b{font-size:2.2rem;letter-spacing:-.03em;color:var(--blue)}[data-theme=dark] .ach-facts b{color:#9dbcff}.ach-facts span{color:var(--soft)}
/* locations */
.loc-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:12px;margin:24px 0}.loc-facts div{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.loc-facts dt{font-size:var(--s-small);color:var(--soft);font-weight:700}.loc-facts dd{margin:4px 0 0;font-weight:700}
/* assistant */
.ast-launch{position:fixed;right:18px;bottom:18px;z-index:70;display:inline-flex;align-items:center;gap:8px;padding:12px 18px 12px 14px;border:0;border-radius:99px;background:linear-gradient(135deg,var(--blue),var(--purple));color:#fff;font:700 15px/1 var(--font);box-shadow:0 14px 34px -12px rgba(18,91,216,.65);cursor:pointer;transition:transform .2s var(--ease)}
.ast-launch:hover{transform:translateY(-2px)}.ast-launch:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px var(--blue)}.ast-launch svg{width:22px;height:22px}
.ast-open .ast-launch{display:none}
.ast{position:fixed;right:18px;bottom:18px;z-index:80;width:min(410px,calc(100vw - 36px));height:min(640px,calc(100vh - 36px));display:flex;flex-direction:column;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shade);overflow:hidden}
.ast[hidden]{display:none}
.ast-h{display:flex;gap:6px;align-items:flex-start;padding:16px 14px 12px 18px;background:linear-gradient(135deg,var(--navy),var(--navy-3));color:#fff}.ast-h>div{flex:1}.ast-h h2{font-size:1.05rem;margin:0}.ast-h p{margin:4px 0 0;font-size:12.5px;color:#c9d5f0;line-height:1.4}
.ast-ib{flex:none;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.ast-ib:hover{background:rgba(255,255,255,.18)}.ast-ib svg{width:18px;height:18px}.ast-ib:focus-visible{outline:2px solid #fff}
.ast-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg)}
.ast-m{max-width:92%;align-self:flex-start;padding:12px 14px;border-radius:16px 16px 16px 4px;background:var(--card);border:1px solid var(--line);font-size:14.5px;line-height:1.55}
.ast-m p{margin:0}.ast-m.me{align-self:flex-end;border-radius:16px 16px 4px 16px;background:var(--blue);border-color:var(--blue);color:#fff}
.ast-cite{font-size:12px;font-weight:700;text-decoration:none;vertical-align:super;margin-left:1px}
.ast-src{list-style:none;margin:10px 0 0;padding:8px 0 0;border-top:1px dashed var(--line);font-size:12.5px;display:grid;gap:4px}.ast-src a{color:var(--link)}
.ast-acts,.ast-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ast-btn,.ast-chip{font:700 13px/1.2 var(--font);padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--tone);color:var(--fg);cursor:pointer;text-decoration:none;min-height:38px;display:inline-flex;align-items:center}
.ast-btn.pri{background:var(--blue);border-color:var(--blue);color:#fff}.ast-btn.ghost{background:transparent}.ast-chip{border-radius:99px;background:var(--card)}.ast-btn:hover,.ast-chip:hover{border-color:var(--blue)}
.ast-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px;font-size:12px;color:var(--soft)}.ast-tools button{font:inherit;border:0;background:none;color:var(--soft);cursor:pointer;padding:4px 6px;border-radius:6px;min-height:28px}.ast-tools button:hover,.ast-tools button[aria-pressed=true]{color:var(--blue);background:var(--blue-t)}.ast-mode{margin-left:auto}
.ast-typing{display:flex;gap:4px}.ast-typing i{width:7px;height:7px;border-radius:50%;background:var(--soft);animation:astb 1s infinite}.ast-typing i:nth-child(2){animation-delay:.15s}.ast-typing i:nth-child(3){animation-delay:.3s}
@keyframes astb{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.ast-f{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--card)}.ast-f textarea{flex:1;resize:none;font:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--fg);max-height:120px;min-height:44px}
.ast-f textarea:focus-visible{outline:2px solid var(--blue)}.ast-send{flex:none;width:46px;border:0;border-radius:12px;background:var(--blue);color:#fff;cursor:pointer;display:grid;place-items:center}.ast-send svg{width:20px;height:20px}
.ast-foot{margin:0;padding:6px 12px 10px;font-size:11.5px;color:var(--soft);background:var(--card)}.ast-foot a{color:var(--link)}
.ast-lead{padding:12px;border-top:1px solid var(--line);background:var(--card);max-height:60%;overflow-y:auto}
.ast-card h3{font-size:1rem;margin:0 0 6px}.ast-card p{font-size:13.5px;margin:0 0 8px;line-height:1.5}.ast-step{color:var(--soft);font-size:12px!important;font-weight:700}
.ast-q{display:block;font-weight:700;font-size:14px;margin-bottom:6px}.ast-card input[type=text],.ast-card input[type=email],.ast-card input[type=tel],.ast-card textarea{width:100%;font:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);min-height:44px}
.ast-ch{border:0;margin:0;padding:0;display:grid;gap:4px}.ast-ch legend{font-weight:700;font-size:14px;margin-bottom:6px}.ast-ch label{display:flex;gap:8px;align-items:center;padding:7px 8px;border-radius:8px;font-size:14px;min-height:38px;cursor:pointer}.ast-ch label:hover{background:var(--tone)}
.ast-err{color:#b42318;font-size:13px;font-weight:700;margin:6px 0 0;min-height:0}[data-theme=dark] .ast-err{color:#ff9b91}
.ast-rev{display:grid;gap:6px;margin:0 0 12px;font-size:13.5px}.ast-rev div{display:grid;grid-template-columns:42% 1fr;gap:8px;border-bottom:1px solid var(--line);padding-bottom:6px}.ast-rev dt{color:var(--soft)}.ast-rev dd{margin:0;word-break:break-word}
.ast-cb{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;margin:8px 0;line-height:1.45}.ast-cb input{margin-top:3px;width:18px;height:18px;flex:none}
@media(max-width:640px){.ast{inset:0;width:100%;height:100%;max-height:none;border-radius:0;border:0}.ast-launch{bottom:84px;right:12px;padding:12px}.ast-launch span{display:none}}
@media(prefers-reduced-motion:reduce){.ast-typing i{animation:none}.fy-card,.tool-card,.ast-launch{transition:none}}
@media print{.ast,.ast-launch,.dl-card,.fy,.tool-box .t-acts{display:none!important}body.print-bc *{visibility:hidden!important}body.print-bc .bc-out,body.print-bc .bc-out *{visibility:visible!important}body.print-bc .bc-out{position:absolute;left:0;top:0;width:100%;border:0;background:#fff;color:#000}}
/* ===== 8.0: architecture diagrams, trust centre, booking, MCP ===== */
.arch{margin:clamp(24px,3.5vw,44px) 0;padding:clamp(14px,2.4vw,26px);border:1px solid var(--line);border-radius:var(--r);background:var(--card);box-shadow:var(--lift)}
.arch-badge{display:inline-block;margin:0 0 12px;padding:5px 12px;border-radius:99px;font-size:var(--s-small);font-weight:700;background:var(--tone);color:var(--ink)}
.arch-badge.s-implemented{background:#e6f4e8;color:#1d6f2a}.arch-badge.s-proposed{background:#efedfa;color:#3f3290}
[data-theme=dark] .arch-badge.s-implemented{background:#173a1d;color:#9fe0a8}[data-theme=dark] .arch-badge.s-proposed{background:#2a2552;color:#c9c1ff}
.arch-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;background:var(--bg);outline-offset:2px}
.arch-svg{display:block;min-width:720px;width:100%;height:auto;font-family:inherit}
.arch-svg .az rect{fill:none;stroke:var(--soft);stroke-dasharray:5 5;stroke-width:1.3;opacity:.7}.arch-svg .az text{font-size:12px;font-weight:700;fill:var(--soft);letter-spacing:.02em}
.arch-svg .ar{font-size:11px;font-weight:800;fill:var(--soft);letter-spacing:.08em}
.arch-svg .ae path{fill:none;stroke:#8a94a6;stroke-width:1.7;transition:stroke .2s,opacity .2s,stroke-width .2s}.arch-svg .am{fill:#8a94a6}
.arch-svg .an{cursor:pointer;outline:none}.arch-svg .an rect:first-child{fill:var(--f);stroke:var(--s);stroke-width:1.6;transition:filter .2s,opacity .2s}
.arch-svg .an:hover rect:first-child,.arch-svg .an:focus-visible rect:first-child{stroke-width:3;filter:drop-shadow(0 6px 14px rgba(18,91,216,.22))}
.arch-svg .an:focus-visible rect:first-child{stroke:var(--blue);stroke-width:3.5}
.arch-svg .at{font-size:14px;font-weight:700;fill:#0f172a}.arch-svg .as{font-size:11.5px;fill:#475569}
.arch-svg .al rect{fill:var(--bg);stroke:var(--line)}.arch-svg .al text{font-size:10.5px;fill:var(--ink);font-weight:600}
.arch-svg.focus .dim{opacity:.18}.arch-svg.focus .ae.on path{stroke:var(--blue);stroke-width:2.6}.arch-svg.focus .an.on rect:first-child{stroke-width:2.6}
@media(prefers-reduced-motion:no-preference){.arch-svg.focus .ae.on path{stroke-dasharray:7 6;animation:archflow 1s linear infinite}@keyframes archflow{to{stroke-dashoffset:-26}}}
[data-theme=dark] .arch-svg .at{fill:#0f172a}[data-theme=dark] .arch-svg .ae path{stroke:#9aa6ba}[data-theme=dark] .arch-svg .am{fill:#9aa6ba}
.arch-bar{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;margin-top:14px}
.arch-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 16px;font-size:var(--s-small);color:var(--soft)}
.arch-legend i{display:inline-block;width:16px;height:12px;border-radius:4px;border:2px solid var(--s);background:var(--f);margin-right:6px;vertical-align:-1px}
.arch-legend i.dash{border:0;border-top:2px dashed #8a94a6;border-radius:0;height:0;width:22px;vertical-align:3px;background:none}
.arch-acts{display:flex;gap:8px;flex-wrap:wrap}
.arch-info{margin-top:14px;padding:14px 16px;border-radius:12px;background:var(--tone);min-height:56px}.arch-info h3{margin:.1em 0 .3em;font-size:1.1rem}.arch-info p{margin:.3em 0}
.arch-io{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:4px 24px}.arch-io h4{margin:.6em 0 .2em;font-size:.9rem}.arch-io ul{margin:0;padding-left:18px}.arch-io li span{display:block;color:var(--soft);font-size:var(--s-small)}
.arch figcaption{margin-top:10px;color:var(--soft);font-size:var(--s-small)}
.arch-text{margin-top:10px}.arch-text summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}.arch-text td,.arch-text th{vertical-align:top}.arch-text th small{display:block;font-weight:400;color:var(--soft)}
/* trust centre */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:22px}
.team-card{border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden;display:flex;flex-direction:column}
.team-ph img,.team-ph{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--tone)}.team-ini{display:flex!important;align-items:center;justify-content:center;font-size:3rem;font-weight:800;color:var(--blue)}
.team-b{padding:18px 20px 20px}.team-b h2{margin:0;font-size:1.25rem}.team-b h3{font-size:.95rem;margin:1em 0 .3em}.team-tags{display:flex;flex-wrap:wrap;gap:6px}.team-links{display:flex;gap:16px;flex-wrap:wrap}.cert-mini{margin:0;padding-left:18px}
.team-mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:16px}.tm{display:grid;justify-items:center;text-align:center;gap:6px;padding:18px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);color:inherit;text-decoration:none}
.tm img,.tm .team-ini{width:84px;height:84px;border-radius:50%;object-fit:cover;background:var(--tone)}.tm .team-ini{font-size:1.8rem}.tm span{color:var(--soft);font-size:var(--s-small)}
.rv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:20px}.rv-card{margin:0;padding:22px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);display:flex;flex-direction:column;justify-content:space-between}
.rv-card blockquote{margin:0 0 14px;font-size:1.05rem}.rv-card figcaption{display:grid;gap:2px}.rv-card figcaption span{color:var(--soft);font-size:var(--s-small)}
.logo-row{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:18px 34px;align-items:center}.logo-img{height:40px;width:auto;filter:grayscale(1);opacity:.8}.logo-row li:hover .logo-img{filter:none;opacity:1}
.cert-count{font-size:1.1rem}.ev-t th a{font-weight:700}
/* booking */
.book{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(20px,4vw,48px);align-items:start;margin-bottom:40px}
@media(max-width:900px){.book{grid-template-columns:1fr}}
.book-types{list-style:none;padding:0;display:grid;gap:12px}.book-types li{display:flex;gap:12px;align-items:flex-start}.book-types b{display:block}.book-types span{color:var(--soft)}
.book-embed{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:22px;text-align:center;min-height:200px;display:grid;place-content:center;gap:10px}
/* MCP */
.mc-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px 24px;margin:0 0 18px}.mc-facts div{border-bottom:1px solid var(--line);padding:8px 0}.mc-facts dt{color:var(--soft);font-size:var(--s-small)}.mc-facts dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}
.mcp-cat{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.mcp-e{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--card)}.mcp-e h3{margin:.2em 0;font-size:1.05rem}.mcp-e dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0;font-size:var(--s-small)}.mcp-e dt{color:var(--soft)}.mcp-e dd{margin:0}
.st{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:700;background:var(--tone)}.st-available{background:#e6f4e8;color:#1d6f2a}.st-tested{background:#e8f0fd;color:#0f4bb3}.st-planned{background:#f3f4f6;color:#374151}.st-in_development,.st-implemented{background:#efedfa;color:#3f3290}.st-deprecated{background:#fdecea;color:#912018}
[data-theme=dark] .st-available{background:#173a1d;color:#9fe0a8}[data-theme=dark] .st-tested{background:#13294f;color:#a9c7ff}[data-theme=dark] .st-planned{background:#273041;color:#d6dbe4}[data-theme=dark] .st-in_development,[data-theme=dark] .st-implemented{background:#2a2552;color:#c9c1ff}[data-theme=dark] .st-deprecated{background:#4a1a16;color:#ffb4ab}
@media print{.arch-acts,.arch-info,.book-embed{display:none}.arch-text{display:block}.arch-scroll{overflow:visible}}
.arch-acts .btn{padding:9px 16px;font-size:var(--s-small);min-height:40px}.arch-info .mute{font-size:var(--s-small);margin:0}
.arch-svg .azb circle{fill:#334155}.arch-svg .azb text{fill:#fff;font-size:10.5px;font-weight:800}
.arch-legend .zb{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#334155;color:#fff;font-size:11px;margin-right:6px}
.arch-legend i.zone{border:1.5px dashed #8a94a6;background:none;border-radius:5px}
.arch-text .arch-flows-h{font-size:1rem;margin:1em 0 .4em}
[data-theme=dark] .arch-badge{background:#22304d;color:#e6ecf7}[data-theme=dark] .arch-legend{color:#c3cbd9}
/* ===== 9.0 design system: spacing, radius, elevation, layers, motion ===== */
:root{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-20:80px;--sp-24:96px;
--sec-y:clamp(64px,8vw,120px);--gap:clamp(16px,2vw,24px);
--r-sm:8px;--r-md:12px;--r-lg:18px;--r-xl:24px;--r-pill:999px;
--sh-1:0 1px 2px rgba(10,22,51,.06),0 1px 1px rgba(10,22,51,.04);--sh-2:0 12px 32px -20px rgba(10,22,51,.38),0 2px 6px -2px rgba(10,22,51,.08);--sh-3:0 30px 60px -28px rgba(10,22,51,.5);
--z-sticky:50;--z-drawer:59;--z-header:60;--z-overlay:75;--z-modal:80;--z-toast:90;
--dur-1:.15s;--dur-2:.25s;--dur-3:.45s;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-io:cubic-bezier(.65,0,.35,1);--hdr-h:76px}
[data-theme=dark]{--sh-1:0 1px 2px rgba(0,0,0,.4);--sh-2:0 12px 32px -18px rgba(0,0,0,.7);--sh-3:0 30px 60px -24px rgba(0,0,0,.8)}

/* mobile menu: the sheet now sits outside the blurred header, so it can cover the viewport */
.sheet.open{position:fixed;inset:var(--hdr-h) 0 0;z-index:var(--z-drawer);overscroll-behavior:contain;box-shadow:inset 0 1px 0 var(--line);animation:gm-sheet var(--dur-2) var(--ease-out)}
@keyframes gm-sheet{from{opacity:0;transform:translateY(-6px)}}
.sheet-scrim{position:fixed;inset:0;z-index:calc(var(--z-drawer) - 1);background:rgba(9,14,24,.35)}
body.menu-open header.bar{transform:none!important}body.menu-open .ast-launch{display:none}

/* card photographs: consistent crop and hover */
.cap-img,.acard-img,.proj-img{background:var(--tone)}
.acard{box-shadow:var(--sh-1);transition:box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),border-color var(--dur-2)}
a.acard:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
a.acard:focus-visible{transform:none}
.cap{box-shadow:var(--sh-1)}

/* syntax colours derived from the brand palette (blue, green, purple tints) */
.tk-n{color:#c3b9ff}.tk-v{color:#9ec7ff}

/* consistent focus and tap targets */
.ic-btn{min-width:44px;min-height:44px}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-offset:3px}

/* reduced motion: no transforms, no looping animation */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}a.acard:hover{transform:none}}

/* print: hide chrome */
@media print{header.bar,.sheet,.sheet-scrim{display:none!important}}

/* small-screen overflow fixes found by the responsive audit (320–390px) */
.tools{grid-template-columns:minmax(0,1fr)}.tools-note a,.ach-facts a{overflow-wrap:anywhere}
.ach-facts div>*{min-width:0;overflow-wrap:anywhere}.img-credit{display:block;margin-top:6px;font-size:12px;line-height:1.4;color:var(--soft)}.img-credit a{color:inherit}
.head-fig{position:relative}.head-fig .img-credit{position:absolute;right:10px;bottom:10px;margin:0;max-width:calc(100% - 20px);padding:4px 9px;border-radius:7px;background:rgba(9,14,24,.72);color:#fff;font-size:11.5px;z-index:2}
.head-fig .img-credit a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.cr-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}.cr-i{display:flex;gap:16px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:var(--r-md,12px);background:var(--card)}
.cr-i picture,.cr-i .cr-img{flex:none;width:160px;aspect-ratio:16/10;object-fit:cover;border-radius:8px;display:block}.cr-i picture img{width:100%;height:100%;object-fit:cover;border-radius:8px}.cr-i p{margin:0 0 4px}
@media(max-width:560px){.cr-i{flex-direction:column}.cr-i picture,.cr-i .cr-img{width:100%}}/* ===== 9.2 SVG visual library ===== */
.svg-img{display:block;width:100%;height:auto}
.svg-fig{margin:clamp(24px,3vw,40px) 0;padding:clamp(10px,1.6vw,18px);border:1px solid var(--line);border-radius:var(--r-lg,18px);background:linear-gradient(180deg,var(--card),var(--paper))}
.svg-fig .svg-img{border-radius:12px}
.svg-fig figcaption{margin:10px 4px 0;font-size:var(--s-small);color:var(--soft)}
[data-theme=dark] .svg-fig{background:var(--card)}[data-theme=dark] .svg-fig .svg-img,[data-theme=dark] .fx-scroll{background:#fff;border-radius:12px}
.fx-sec{margin:clamp(32px,4vw,56px) 0}.fx-intro{color:var(--soft);margin:.4em 0 1em}
.fx-fig{margin:0 0 clamp(24px,3vw,36px);border:1px solid var(--line);border-radius:var(--r-lg,18px);background:var(--card);overflow:hidden;box-shadow:var(--sh-1)}
.fx-top{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:16px 18px 12px}
.fx-top h3{margin:0;flex:1 1 260px;font-size:1.15rem}
.fx-kicker{flex-basis:100%;margin:0;display:flex;align-items:center;gap:8px;font-size:var(--s-small);font-weight:700;color:var(--soft);letter-spacing:.02em}
.fx-ico{width:24px;height:24px;border-radius:7px}
.fx-acts{display:flex;gap:12px;align-items:center}.fx-acts .btn{min-height:40px;padding:0 16px;font-size:var(--s-small)}.fx-open{font-size:var(--s-small);font-weight:700;color:var(--link)}
.fx-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.fx-scroll:focus-visible{outline-offset:-3px}
.fx-scroll>svg{display:block;width:100%;height:auto;min-width:860px}
.fx-scroll .fx-head{display:none}
.fx-scroll .fx-n{cursor:pointer;outline:none}
.fx-scroll .fx-n .fx-ring{transition:stroke .15s}
.fx-scroll .fx-n:hover .fx-ring{stroke:#9DB8EA;stroke-width:2}
.fx-scroll .fx-n:focus-visible .fx-ring,.fx-scroll .fx-n.on .fx-ring{stroke:#125BD8;stroke-width:3}
.fx-scroll svg.fx-focus .fx-n:not(.on):not(.near){opacity:.32}
.fx-scroll svg.fx-focus .fx-e:not(.on){opacity:.2}
.fx-scroll svg.fx-focus .fx-e.on .fx-p{stroke:#125BD8;stroke-width:2.6}
.fx-scroll .fx-n,.fx-scroll .fx-e{transition:opacity .2s}
.fx-info{padding:14px 18px;min-height:64px;background:var(--paper)}
.fx-info h4{margin:0 0 4px;font-size:1rem}.fx-info p{margin:.25em 0}.fx-info .fx-meta{font-size:var(--s-small);color:var(--soft)}
.fx-info .fx-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.fx-info .fx-nav button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font:inherit;font-size:var(--s-small);cursor:pointer;color:var(--fg);min-height:36px}
.fx-info .fx-nav button:hover{border-color:var(--blue)}
.fx-steps{padding:4px 18px 14px}.fx-steps summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}
.fx-steps ol{margin:0;padding-left:22px;display:grid;gap:10px}.fx-steps li p{margin:.2em 0}.fx-steps li.on{background:var(--blue-t);border-radius:8px;outline:6px solid var(--blue-t)}
.fx-lane{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--tone);font-size:12px;color:var(--soft)}
.fx-sub{display:block;color:var(--soft);font-size:var(--s-small)}.fx-next{font-size:var(--s-small);color:var(--soft)}
.fx-fig>figcaption{padding:0 18px 16px;font-size:var(--s-small);color:var(--soft)}
@media(max-width:700px){.fx-top{padding:14px}.fx-scroll>svg{min-width:760px}.fx-steps[data-auto]{display:block}}
@media print{.fx-acts,.fx-info{display:none}.fx-scroll{overflow:visible}.fx-scroll>svg{min-width:0}.fx-steps{display:block}}
.svg-spot{max-width:520px;margin:0}.svg-spot .svg-img{border-radius:14px}
.svg-eco{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(24px,4vw,56px);align-items:center}
.svg-eco .svg-img{border-radius:20px;box-shadow:var(--sh-2)}
@media(max-width:900px){.svg-eco{grid-template-columns:1fr}}
.svg-eco ul{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.svg-eco li a{font-weight:700;text-decoration:none}.svg-eco li a:hover{text-decoration:underline}
.svg-empty{max-width:280px;margin:0 auto 8px}
.e404-art{max-width:340px;margin-top:28px}.e404-art .svg-img{border-radius:18px;box-shadow:0 30px 60px -28px rgba(0,0,0,.6)}
@media(max-width:700px){.e404-art{display:none}}
.cards>.empty-art{grid-column:1/-1;text-align:center}.empty-art .svg-empty{margin:8px auto 4px}
.faq-art{margin-top:28px;max-width:420px}@media(max-width:900px){.faq-art{display:none}}
.contact-grid .svg-spot,.book-l .svg-spot{margin:28px 0}
.svg-in-body{max-width:760px}
.next-steps .ns-art{margin:8px 0 20px;max-width:440px}.page-head{background:var(--card) url("/GeekMidst/assets/images/svg/backgrounds/bg-network.svg?v=12.2.0") right center/cover no-repeat}[data-theme=dark] .page-head{background:#0e1524 url("/GeekMidst/assets/images/svg/backgrounds/bg-dark-orbit.svg?v=12.2.0") 70% 50%/cover no-repeat}.closing{background:var(--blue) url("/GeekMidst/assets/images/svg/backgrounds/bg-cta-waves.svg?v=12.2.0") center/cover no-repeat}.svg-eco-sec{background:var(--paper) url("/GeekMidst/assets/images/svg/backgrounds/bg-grid-glow.svg?v=12.2.0") center/cover no-repeat}.home-faq-sec{background:#fff url("/GeekMidst/assets/images/svg/backgrounds/bg-network.svg?v=12.2.0") right center/cover no-repeat}[data-theme=dark] .home-faq-sec{background:var(--bg)}@media print{.page-head,.closing,.svg-eco-sec{background-image:none}}/* ===================== 10.0: brand shield-arc system ===================== */
:root{--arc-b:#125BD8;--arc-g:#47B452;--arc-p:#5747AF;--shield-r:clamp(72px,9vw,150px)}

/* ---- homepage hero: the photograph inside the logo's shield curve, the tagline on its bands ---- */
.hero.h10{background:radial-gradient(60% 80% at 78% 40%,rgba(18,91,216,.32),transparent 70%),radial-gradient(40% 50% at 92% 92%,rgba(87,71,175,.28),transparent 70%),var(--navy)}
.hero.h10 .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(36px,5vw,84px);align-items:center;min-height:min(calc(100svh - 76px),820px);padding-block:clamp(48px,6vw,96px) clamp(80px,8vw,128px)}
.hero.h10 .hero-copy{max-width:600px}
.hero.h10 h1 em{color:#cfe0ff;font-weight:inherit}
.h10-stage{--P:116px;--o1:16px;--o2:30px;--o3:44px;--pl:clamp(34px,3.8vw,56px);position:relative;perspective:1400px;padding:0 0 var(--P) var(--pl)}
.h10-depth{position:relative;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.h10-photo{position:relative;margin:0;aspect-ratio:16/10;border-radius:26px 26px 26px var(--shield-r);overflow:hidden;background:#0d1d42;box-shadow:0 50px 90px -40px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.08);transform:translateZ(0)}
.h10-photo img,.h10-photo picture{display:block;width:100%;height:100%;object-fit:cover}
/* three bands from the logo: blue hugs the photo, green and purple sweep further out */
.h10-arc{position:absolute;pointer-events:none;border-left:var(--bw,7px) solid var(--c);border-bottom:var(--bw,7px) solid var(--c);border-bottom-left-radius:calc(var(--shield-r) + var(--o));
  left:calc(var(--o) * -1);bottom:calc(var(--o) * -1);top:var(--t);right:var(--e)}
.h10-arc.a1{--c:var(--arc-b);--o:var(--o1);--t:6%;--e:28%;transform:translateZ(36px)}
.h10-arc.a2{--c:var(--arc-g);--o:var(--o2);--t:24%;--e:12%;transform:translateZ(58px)}
.h10-arc.a3{--c:var(--arc-p);--o:var(--o3);--t:42%;--e:-1%;transform:translateZ(80px)}
/* tagline nodes: three equal columns under the photo; a dot on each band, a stem down to the label */
.h10-notes{list-style:none;margin:0;padding:0;position:absolute;left:0;right:0;top:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;transform:translateZ(100px)}
.h10-n{position:relative;display:flex;justify-content:center;padding-top:calc(var(--P) - var(--o) - 44px);margin-top:var(--o)}
.h10-n.n1{--o:var(--o1);--c:var(--arc-b)}.h10-n.n2{--o:var(--o2);--c:var(--arc-g)}.h10-n.n3{--o:var(--o3);--c:var(--arc-p)}
.h10-dot{position:absolute;top:-7px;left:50%;width:15px;height:15px;margin-left:-7.5px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px var(--c),0 0 0 9px rgba(255,255,255,.12)}
.h10-n::before{content:"";position:absolute;top:8px;left:50%;width:2px;margin-left:-1px;height:calc(var(--P) - var(--o) - 52px);background:linear-gradient(var(--c),rgba(255,255,255,.25))}
.h10-chip{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px 8px 10px;border-radius:999px;background:#fff;color:#0A1633;font-weight:700;font-size:.92rem;line-height:1.15;text-align:center;box-shadow:0 14px 30px -12px rgba(0,0,0,.55);max-width:100%}
.h10-chip .ic{width:18px;height:18px;color:var(--c);flex:none}
/* the one orchestrated moment: photo settles, bands sweep in from the top of the shield, the promises land in order */
@media (prefers-reduced-motion:no-preference){
  .js .h10-photo{animation:h10Photo .9s cubic-bezier(.2,.7,.2,1) both}
  .js .h10-arc{animation:h10Sweep 1s cubic-bezier(.65,0,.35,1) both}
  .js .h10-arc.a1{animation-delay:.25s}.js .h10-arc.a2{animation-delay:.4s}.js .h10-arc.a3{animation-delay:.55s}
  .js .h10-n{animation:h10Note .55s cubic-bezier(.2,.8,.2,1.2) both}
  .js .h10-n.n1{animation-delay:1.05s}.js .h10-n.n2{animation-delay:1.25s}.js .h10-n.n3{animation-delay:1.45s}
}
@keyframes h10Photo{from{opacity:0;transform:translateZ(0) scale(.96)}to{opacity:1;transform:translateZ(0) scale(1)}}
@keyframes h10Sweep{from{clip-path:inset(0 100% 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes h10Note{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(max-width:999px){
  .hero.h10 .wrap{grid-template-columns:1fr;min-height:0;padding-block:28px 48px;gap:28px}
  .h10-stage{--pl:26px;padding-right:4px}
  :root{--shield-r:84px}
}
@media(max-width:560px){
  .h10-stage{--P:104px;--o1:10px;--o2:20px;--o3:30px;--pl:22px}
  .h10-arc{--bw:5px}
  .h10-chip{font-size:.74rem;padding:6px 8px;gap:5px}.h10-chip .ic{width:14px;height:14px}
}

/* ---- page photos everywhere: the same shield curve, two quiet bands ---- */
.head-frame{position:relative;padding:0 0 14px 14px}
.page-head .head-frame .head-fig{border-radius:22px 22px 22px clamp(60px,7vw,110px)}
.hf-arc{position:absolute;pointer-events:none;border-left:4px solid var(--c);border-bottom:4px solid var(--c);border-bottom-left-radius:calc(clamp(60px,7vw,110px) + var(--o));left:calc(var(--o) * -1 + 14px);bottom:calc(var(--o) * -1 + 14px);top:var(--t);right:var(--e)}
.hf-arc.a1{--c:var(--arc-g);--o:10px;--t:38%;--e:30%}
.hf-arc.a2{--c:var(--arc-p);--o:20px;--t:56%;--e:12%}
@media(max-width:900px){.head-frame{order:2}}
.head-frame:has(.head-fig:empty){display:none}

/* ---- breadcrumbs as a node trail (the logo's connected dots) ---- */
.crumbs{gap:0;row-gap:6px;align-items:center}
.crumbs li{display:inline-flex;align-items:center;min-height:28px}
.crumbs li+li::before{content:"";margin:0;width:22px;height:2px;border-radius:2px;background:currentColor;opacity:.35}
.crumbs li::after{content:"";order:-1;width:7px;height:7px;border-radius:50%;border:2px solid currentColor;opacity:.7;margin-right:8px;flex:none}
.crumbs li+li::after{margin-left:0}
.crumbs li:first-child::after{border-color:var(--arc-b);background:var(--arc-b);opacity:1}
.crumbs li:last-child::after{border-color:var(--arc-g);background:var(--arc-g);opacity:1;box-shadow:0 0 0 3px rgba(71,180,82,.25)}
.crumbs li+li{gap:0}
.crumbs li+li::before{order:-2;margin-right:8px}
.crumbs a,.crumbs span{padding:4px 0}
.crumbs a{text-underline-offset:3px}
.e404-crumbs{margin-bottom:18px;color:#c3cde2}.e404-crumbs a{color:#fff}

/* ---- second photo inside a page ---- */
.photo-fig{margin:clamp(28px,3vw,44px) 0;position:relative}
.photo-fig picture,.photo-fig img{display:block;width:100%;height:auto;border-radius:18px 18px 18px clamp(48px,6vw,90px)}
.photo-fig figcaption{margin:12px 2px 0;font-size:var(--s-small);color:var(--soft);max-width:68ch}

/* ---- the home "Problems" photo and the contact photo use the shield curve too ---- */
.chal-fig{border-radius:22px 22px 22px clamp(56px,6vw,96px)}

/* tilt and motion respect the visitor's settings */
@media (prefers-reduced-motion:reduce){.h10-depth{transform:none!important;transition:none}}
@media print{.h10-arc,.h10-notes,.hf-arc{display:none}}/* ===================== 10.1: solution finder, proof, small UX ===================== */
.finder .fd-steps{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);margin-top:8px}
.fd-step{border:0;margin:0;padding:0;min-width:0}
.fd-step legend{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;color:var(--fg);margin-bottom:14px;padding:0}
.fd-n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--arc-b,#125BD8);color:#fff;font-size:.85rem;flex:none}
.fd-step+.fd-step .fd-n{background:var(--arc-g,#47B452)}
.fd-stages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
/* same type size as the step 1 choices */
.fd-stage{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--card);color:var(--fg);font:inherit;font-size:.95rem;line-height:1.3;font-weight:600;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.fd-stage .ic{width:20px;height:20px;color:var(--arc-p,#5747AF);flex:none}
.fd-stage:hover{border-color:var(--arc-b,#125BD8)}
.fd-stage[aria-pressed=true]{border-color:var(--arc-b,#125BD8);background:color-mix(in srgb,var(--arc-b,#125BD8) 8%,var(--card));box-shadow:inset 0 0 0 1px var(--arc-b,#125BD8)}
.fd-stage:focus-visible{outline:3px solid var(--arc-b,#125BD8);outline-offset:2px}
.fd-result:empty{display:none}
.fd-result{margin-top:28px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start}
.fd-hint{grid-column:1/-1;margin:0;color:var(--soft)}
.fd-main{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--arc-b,#125BD8);border-radius:16px;padding:22px 24px;box-shadow:var(--sh-2,0 12px 32px -20px rgba(10,22,51,.38))}
.fd-for{margin:0 0 6px;font-size:var(--s-small);color:var(--soft)}
.fd-main h3{margin:0 0 8px;font-size:1.35rem}.fd-main h3 a{text-decoration:none;color:inherit}.fd-main h3 a:hover{text-decoration:underline}
.fd-main p{margin:0 0 14px}
.fd-acts{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center}
.fd-more{display:grid;gap:8px;padding:18px 20px;border-radius:16px;background:var(--paper);border:1px solid var(--line)}
.fd-more p{margin:0 0 2px;font-size:var(--s-small);color:var(--soft);font-weight:700}
.fd-more a{font-weight:600}
.fd-ask{margin-top:24px;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:clamp(18px,3vw,40px);padding:clamp(20px,3vw,32px);border-radius:20px;background:var(--paper);border:1px solid var(--line)}
.fd-ask[hidden]{display:none}
.fd-ask h3{margin:0 0 6px}.fd-ask p{margin:0;color:var(--soft)}
.fd-form{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:860px){.finder .fd-steps,.fd-result,.fd-ask{grid-template-columns:1fr}.fd-form{grid-template-columns:1fr}}
@media(max-width:420px){.fd-stages{grid-template-columns:1fr}}

/* proof you can check */
.proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.proof-i{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:inherit;transition:border-color .15s}
.proof-i:hover{border-color:var(--arc-b,#125BD8)}
.proof-i b{display:block;margin-bottom:4px}.proof-i span span{display:block;color:var(--soft);font-size:var(--s-small);line-height:1.5}
@media(max-width:900px){.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.proof-grid{grid-template-columns:1fr}}

.finder .fd-ask+.fy-why{margin-top:32px}/* ===================== 11.0: motion system (Emil Kowalski / Jakub Krehel rules, applied with native CSS) =====================
   Tokens are extended, not forked: the existing --ease/--ease-out/--ease-io names now carry the strong curves.
   Durations: press 160ms · small UI 150–250ms · overlays ≤ 300ms · explanatory (diagrams, reveals) may run longer. */
:root{--ease:cubic-bezier(.23,1,.32,1);--ease-out:cubic-bezier(.23,1,.32,1);--ease-io:cubic-bezier(.77,0,.175,1);--ease-drawer:cubic-bezier(.32,.72,0,1);
--dur-press:160ms;--dur-1:150ms;--dur-2:220ms;--dur-3:400ms}

/* press feedback: the interface heard you (individual `scale`, so hover transforms keep working) */
.btn{transition:background .2s,color .2s,transform .2s var(--ease),box-shadow .2s,scale var(--dur-press) var(--ease)}
.fd-stage{transition:border-color .15s,background .15s,scale var(--dur-press) var(--ease)}
.fy-picks button{transition:background-color .15s,border-color .15s,color .15s,scale var(--dur-press) var(--ease)}
.cats button{transition:background .2s,color .2s,scale var(--dur-press) var(--ease)}
.opts button{transition:background .2s,color .2s,box-shadow .2s,scale var(--dur-press) var(--ease)}
.ic-btn,.copy{transition:background .2s,scale var(--dur-press) var(--ease)}
:is(.btn,.fd-stage,.fy-picks button,.cats button,.opts button,.ic-btn,.copy):active:not(:disabled){scale:.97}
.btn:active{transform:none}

/* keyboard-opened, high-frequency: the search palette opens instantly */
.pal.open,.pal-box{animation:none}

/* no perpetual motion on content: the floating icon boxes stand still */
.hero .ic-box,.caps .ic-box,.ach .ic-box{animation:none}

/* the approach line grows with transform, not width (no layout per frame) */
.flow::after{width:100%;transform:scaleX(var(--prog,0));transform-origin:0 50%;transition:transform 1.2s var(--ease-io)}

/* reveals: shorter, smaller, and a capped stagger so long lists never wait */
.js .rv{transform:translateY(16px);transition:opacity .5s var(--ease),transform .6s var(--ease);transition-delay:calc(min(var(--i,0),6) * 60ms)}
.js .shutter.in{transition:clip-path .8s var(--ease-io)}
.acard-img img,.proj-img img{transition:transform .6s var(--ease)}

/* toast: enters from below the edge and leaves the same way */
.toast{transform:translate(-50%,calc(100% + 24px));transition:opacity .4s ease,transform .4s ease}
.toast.show{transform:translate(-50%,0)}

/* touch screens fire hover on tap: no lifts, zooms or shimmer there */
@media (hover:none),(pointer:coarse){
.cap:hover,a.acard:hover,a.ind:hover,a.card:hover,.fy-card:hover,.tool-card:hover,.ast-launch:hover,.proof-i:hover{transform:none}
a.acard:hover .acard-img img,.proj:hover .proj-img img{transform:none}
:where(a,div,li,article):hover>.ic-box,.tilt:hover .ic-box{transform:none}
.btn:hover::after{transform:translateX(-120%)}
.btn:hover .ic-arrow,.go:hover .ic,a:hover .go .ic,.go:hover .ic-arrow,a:hover>.go .ic-arrow{transform:none}
}

/* FAQ answers open with height (the one sanctioned layout animation), where the browser supports it */
.faq details{interpolate-size:allow-keywords}
.faq details::details-content{block-size:0;overflow-y:clip;transition:block-size .22s var(--ease),content-visibility .22s allow-discrete}
.faq details[open]::details-content{block-size:auto}

/* solution finder: the recommendation arrives, it does not teleport */
.fd-main{transition:opacity .3s var(--ease),transform .3s var(--ease),filter .3s var(--ease)}
.fd-more{transition:opacity .3s var(--ease) 60ms,transform .3s var(--ease) 60ms}
.fd-ask{transition:opacity .3s var(--ease),transform .3s var(--ease)}
.fd-stage[aria-pressed=true] .ic{transition:color .15s}
@starting-style{
.fd-main{opacity:0;transform:translateY(12px);filter:blur(4px)}
.fd-more{opacity:0;transform:translateY(12px)}
.fd-ask:not([hidden]){opacity:0;transform:translateY(12px)}
}

/* success: a rare moment, so it gets a little more */
.form-ok{transition:opacity .35s var(--ease),scale .35s var(--ease)}
.form-ok h3{display:flex;align-items:center;gap:10px}
.form-ok h3::before{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/16px no-repeat;transition:scale .4s var(--ease) .1s,opacity .25s ease .1s}
@starting-style{
.form-ok{opacity:0;scale:.97}
.form-ok h3::before{scale:.6;opacity:0}
}

/* theme switch: every colour changes at once, nothing smears */
.gm-notr,.gm-notr *,.gm-notr *::before,.gm-notr *::after{transition:none!important}

/* page to page: a short crossfade, the header stays put (browsers without cross-document view transitions ignore this) */
@view-transition{navigation:auto}
.bar{view-transition-name:gm-bar}
::view-transition-old(root),::view-transition-new(root){animation-duration:180ms;animation-timing-function:ease}
::view-transition-group(gm-bar){animation-duration:0s}

/* diagrams draw themselves once, step by step (JS adds .fx-drawn when done) */
.fx-fig .fx-p{will-change:auto}

/* reduced motion: fewer and gentler, not zero. Fades and colour changes stay; movement, scale and page transitions go. */
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation:none!important;transition-property:opacity,color,background-color,border-color,box-shadow,visibility!important;scroll-behavior:auto!important}
.fd-main{filter:none}
@view-transition{navigation:none}
}/* ===== 12.0: status after a form is sent without JavaScript ===== */
.form-status{width:min(1200px,calc(100% - 2*var(--m,24px)));margin:20px auto 0;padding:14px 18px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--fg)}
.form-status.ok{border-color:var(--green);background:var(--green-t)}
.form-status.err{border-color:#b42318;background:color-mix(in srgb,#b42318 8%,var(--card))}
/* topic cluster links */
.cluster{margin-top:clamp(40px,6vw,64px);padding-top:28px;border-top:1px solid var(--line)}
.cluster h2{margin:0 0 16px}
.cluster-l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.cluster-l li{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.cluster-l a{font-weight:700;text-decoration:none}.cluster-l a:hover{text-decoration:underline}
.cluster-l span{font-size:var(--s-small);color:var(--soft)}
.cluster-up{margin-top:32px;padding:12px 16px;border-left:3px solid var(--blue);background:var(--tone);border-radius:0 10px 10px 0}