/* GEOLYTE™ expansion — isolated stylesheet. Every selector is namespaced `gxp-` / `.gxp-page`.
   It is loaded ONLY by the new pages in /expansion and never by the original index.html. */
.gxp-page{--gxp-g:#101820;--gxp-n:#07121D;--gxp-iv:#F5F7F8;--gxp-ice:#8EDCFF;--gxp-tech:#1677B8;--gxp-sil:#DCE4E9;--gxp-ease:cubic-bezier(.22,.61,.36,1);--gxp-nav:68px;
  margin:0;background:#050d15;color:var(--gxp-iv);font-family:'Manrope','Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.gxp-page *,.gxp-page *::before,.gxp-page *::after{box-sizing:border-box}
.gxp-page img,.gxp-page svg{display:block;max-width:100%}
.gxp-page a{color:inherit}
.gxp-page button{font:inherit;color:inherit;cursor:pointer}
.gxp-page h1,.gxp-page h2,.gxp-page h3,.gxp-page p,.gxp-page ul,.gxp-page dl,.gxp-page dd{margin:0;padding:0}
.gxp-page :focus-visible{outline:2px solid var(--gxp-ice);outline-offset:3px;border-radius:2px}
html:has(.gxp-page){scroll-behavior:smooth;scroll-padding-top:calc(var(--gxp-nav) + 8px)}
.gxp-skip{position:absolute;left:12px;top:-60px;z-index:300;background:#8EDCFF;color:#07121D;padding:10px 16px;font-weight:700;text-decoration:none}
.gxp-skip:focus{top:12px}
.gxp-wrap{width:min(1240px,100% - 48px);margin-inline:auto}
.gxp-eyebrow{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--gxp-ice)}
.gxp-serif{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400}
.gxp-h{font-weight:700;letter-spacing:-.035em;line-height:1;text-transform:uppercase}
.gxp-lead{font-size:clamp(1.02rem,1.3vw,1.2rem);color:rgba(245,247,248,.74);max-width:58ch}
.gxp-note{font-size:.74rem;color:rgba(245,247,248,.5);letter-spacing:.04em;line-height:1.5}
.gxp-btn{display:inline-flex;align-items:center;gap:12px;padding:16px 28px;background:var(--gxp-ice);color:var(--gxp-n);border:1px solid var(--gxp-ice);font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:background .35s,color .35s,transform .35s var(--gxp-ease)}
.gxp-btn:hover{background:#fff;border-color:#fff}
/* navy text on the ice button (12.42:1; 18.86:1 on the white hover state). Needs this specificity: `.gxp-page a{color:inherit}` otherwise wins. */
.gxp-page .gxp-btn:not(.gxp-btn--ghost),.gxp-page .gxp-skip{color:var(--gxp-n)}
.gxp-btn span{transition:transform .35s var(--gxp-ease)}.gxp-btn:hover span{transform:translateX(5px)}
.gxp-btn--ghost{background:transparent;color:var(--gxp-iv);border-color:rgba(245,247,248,.35)}
.gxp-btn--ghost:hover{background:var(--gxp-iv);color:var(--gxp-n)}
.gxp-js .gxp-reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--gxp-ease),transform .9s var(--gxp-ease);transition-delay:var(--d,0s)}
.gxp-js .gxp-reveal.gxp-in{opacity:1;transform:none}

/* navigation (additive: separate from the original site's navigation) */
.gxp-nav{position:fixed;inset:0 0 auto 0;z-index:200;height:var(--gxp-nav);border-bottom:1px solid transparent;transition:background .4s,border-color .4s}
.gxp-nav.gxp-solid{background:rgba(5,13,21,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:rgba(142,220,255,.14)}
.gxp-nav-in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;padding-inline:clamp(20px,4vw,56px)}
.gxp-brand img{height:26px;width:auto}
.gxp-menu{display:flex;align-items:center;gap:clamp(14px,2.4vw,36px)}
.gxp-menu a{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;text-decoration:none;opacity:.72;padding:8px 0;position:relative;transition:opacity .3s;white-space:nowrap}
.gxp-menu a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--gxp-ice);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--gxp-ease)}
.gxp-menu a:hover,.gxp-menu a[aria-current],.gxp-menu a:focus-visible{opacity:1}
.gxp-menu a:hover::after,.gxp-menu a[aria-current]::after{transform:scaleX(1)}
.gxp-has-sub{position:relative}
.gxp-sub{position:absolute;left:-16px;top:100%;min-width:210px;padding:10px 16px;background:rgba(5,13,21,.96);border:1px solid rgba(142,220,255,.16);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .3s,transform .3s,visibility 0s .3s;display:grid;gap:2px}
.gxp-has-sub:hover .gxp-sub,.gxp-has-sub:focus-within .gxp-sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.gxp-sub a{padding:8px 0}
.gxp-mainlink{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;text-decoration:none;border:1px solid rgba(245,247,248,.25);padding:9px 14px;border-radius:2px;white-space:nowrap;transition:background .3s,color .3s}
.gxp-mainlink:hover{background:var(--gxp-iv);color:var(--gxp-n)}
.gxp-burger{display:none;background:none;border:1px solid rgba(245,247,248,.25);width:44px;height:44px;border-radius:2px}
@media (max-width:980px){
  .gxp-burger{display:block}.gxp-mainlink{display:none}
  .gxp-menu{position:fixed;inset:var(--gxp-nav) 0 auto 0;background:rgba(5,13,21,.98);flex-direction:column;align-items:flex-start;gap:0;padding:12px 24px 28px;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .35s,transform .35s,visibility 0s .35s;border-bottom:1px solid rgba(142,220,255,.14)}
  .gxp-menu.gxp-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .gxp-menu a{font-size:.95rem;padding:14px 0;width:100%;border-bottom:1px solid rgba(142,220,255,.1)}
  .gxp-has-sub{width:100%}.gxp-sub{position:static;opacity:1;visibility:visible;transform:none;border:0;padding:0 0 0 16px;background:none;min-width:0}
  .gxp-sub a{font-size:.8rem;opacity:.6}
}

/* shared image helpers: one master image is reused for every crop */
.gxp-world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;background:var(--gxp-master) 0 0/100% 100% no-repeat}
.gxp-crop{position:relative;aspect-ratio:var(--ar,1.6);background:var(--gxp-master) var(--bx,0%) var(--by,0%)/var(--bs,100%) auto no-repeat;overflow:hidden;border:1px solid rgba(142,220,255,.16)}
.gxp-crop::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,transparent 55%,rgba(3,8,13,.55));pointer-events:none}

/* pager + footer */
.gxp-pager{border-top:1px solid rgba(142,220,255,.14);padding:clamp(48px,7vw,96px) 0 40px;background:#050d15}
.gxp-pager ol{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin:28px 0 0;padding:0;border-top:1px solid rgba(142,220,255,.14)}
.gxp-pager li a{display:block;padding:18px 16px 18px 0;text-decoration:none;font-size:.82rem;color:rgba(245,247,248,.62);border-right:1px solid rgba(142,220,255,.1);padding-left:16px;transition:color .3s,background .3s;height:100%}
.gxp-pager li:first-child a{padding-left:0}
.gxp-pager li a b{display:block;color:var(--gxp-ice);font-size:.64rem;letter-spacing:.2em;margin-bottom:4px}
/* sub-labels: the inline opacity:.6 gave #5e6469 on #050d15 (3.26:1); .76 gives #767b80 (4.57:1) and keeps them dimmer than the label */
.gxp-pager li a span{opacity:.76!important}
.gxp-pager li a:hover,.gxp-pager li a[aria-current]{color:#fff}
.gxp-pager li a[aria-current] b::after{content:" · you are here"}
.gxp-foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:44px;padding-top:20px;border-top:1px solid rgba(142,220,255,.1)}
@media (max-width:860px){.gxp-pager ol{grid-template-columns:1fr 1fr}.gxp-pager li a{border-bottom:1px solid rgba(142,220,255,.1)}.gxp-pager li:first-child a{padding-left:16px}}

/* ---------- 01 infinite hero ---------- */
.gxp-hero{position:relative;height:100svh;min-height:560px;overflow:hidden;background:#03080d}
.gxp-hero-stage{position:absolute;inset:0}
.gxp-vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 35%,rgba(3,8,13,.62) 100%),linear-gradient(to top,rgba(3,8,13,.94) 6%,rgba(3,8,13,.2) 48%,rgba(3,8,13,.45))}
.gxp-hero-copy{position:absolute;left:clamp(24px,6vw,96px);right:24px;bottom:clamp(44px,10vh,120px);max-width:980px}
.gxp-hero h1{font-size:clamp(2.5rem,7vw,6.6rem);margin:18px 0 26px}
.gxp-hero h1 span{display:block;overflow:hidden;padding-bottom:.05em}
.gxp-hero h1 span i{display:block;font-style:normal;transform:translateY(105%);animation:gxp-rise 1.3s var(--gxp-ease) .3s forwards}
.gxp-hero h1 span:nth-child(2) i{animation-delay:.45s;color:var(--gxp-ice)}
@keyframes gxp-rise{to{transform:none}}
.gxp-hero .gxp-lead{margin-bottom:34px;opacity:0;animation:gxp-fade 1.4s ease .95s forwards}
.gxp-hero .gxp-btn-row{opacity:0;animation:gxp-fade 1.4s ease 1.2s forwards;display:flex;gap:14px;flex-wrap:wrap}
@keyframes gxp-fade{to{opacity:1}}
.gxp-hero-meta{position:absolute;right:clamp(20px,4vw,56px);bottom:clamp(20px,4vh,44px);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(245,247,248,.5);text-align:right}
.gxp-scale{position:absolute;right:clamp(20px,4vw,56px);top:calc(var(--gxp-nav) + 24px);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(245,247,248,.55);display:flex;gap:10px;align-items:center}
.gxp-scale i{width:56px;height:1px;background:linear-gradient(90deg,var(--gxp-ice),transparent)}
.gxp-section{padding:clamp(80px,12vw,170px) 0;position:relative}
.gxp-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,6vw,96px);align-items:start}
.gxp-previews{position:sticky;top:calc(var(--gxp-nav) + 24px);aspect-ratio:4/5;overflow:hidden;border:1px solid rgba(142,220,255,.16);background:#03080d}
.gxp-previews .gxp-crop{position:absolute;inset:0;aspect-ratio:auto;border:0;opacity:0;transition:opacity .8s var(--gxp-ease),transform 1.6s var(--gxp-ease);transform:scale(1.08)}
.gxp-previews .gxp-crop.gxp-on{opacity:1;transform:none}
.gxp-steps{list-style:none;margin:0;padding:0;border-top:1px solid rgba(142,220,255,.14)}
.gxp-steps a{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:16px;padding:30px 0;border-bottom:1px solid rgba(142,220,255,.14);text-decoration:none;transition:padding .45s var(--gxp-ease),color .3s}
.gxp-steps a:hover,.gxp-steps a:focus-visible{padding-left:14px}
.gxp-steps .gxp-n{font-family:'Instrument Serif',serif;font-style:italic;font-size:1.6rem;color:var(--gxp-ice)}
.gxp-steps strong{display:block;font-size:clamp(1.2rem,2.2vw,1.8rem);letter-spacing:-.02em;text-transform:uppercase;line-height:1.1}
.gxp-steps small{display:block;color:rgba(245,247,248,.6);font-size:.85rem;margin-top:6px}
.gxp-steps .gxp-arr{color:var(--gxp-ice);transition:transform .4s var(--gxp-ease)}.gxp-steps a:hover .gxp-arr{transform:translateX(6px)}
@media (max-width:860px){.gxp-split{grid-template-columns:1fr}.gxp-previews{position:relative;top:0;aspect-ratio:16/10;order:-1}}

/* ---------- 02 cell to system ---------- */
.gxp-j-wrap{position:relative;height:560vh}
.gxp-j-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:#03080d}
.gxp-j-block{position:absolute;inset:0;background:var(--gxp-block) center/cover no-repeat;opacity:0;will-change:opacity,transform}
.gxp-j-block::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(3,8,13,.9),rgba(3,8,13,.25) 55%,rgba(3,8,13,.55))}
.gxp-j-cap{position:absolute;left:clamp(24px,6vw,96px);bottom:clamp(44px,10vh,110px);max-width:460px;opacity:0;transform:translateY(18px);transition:opacity .8s var(--gxp-ease),transform .8s var(--gxp-ease);pointer-events:none}
.gxp-j-cap.gxp-on{opacity:1;transform:none}
.gxp-j-cap .gxp-serif{font-size:clamp(3rem,6vw,5rem);line-height:1;color:var(--gxp-ice)}
.gxp-j-cap h2{font-size:clamp(1.7rem,3.4vw,2.8rem);margin:8px 0 12px}
.gxp-j-rail{position:absolute;right:clamp(16px,3vw,40px);top:50%;transform:translateY(-50%);display:grid;gap:14px;z-index:3}
.gxp-j-rail button{background:none;border:0;display:flex;align-items:center;gap:12px;justify-content:flex-end;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,247,248,.5);padding:4px}
.gxp-j-rail button i{width:10px;height:10px;border-radius:50%;border:1px solid var(--gxp-ice);transition:background .3s,transform .3s}
.gxp-j-rail button.gxp-on{color:#fff}.gxp-j-rail button.gxp-on i{background:var(--gxp-ice);transform:scale(1.25)}
.gxp-anno{position:absolute;left:0;top:0;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gxp-ice);display:flex;align-items:center;gap:8px;opacity:0;transition:opacity .6s;pointer-events:none;white-space:nowrap}
.gxp-anno::before{content:"";width:8px;height:8px;border:1px solid var(--gxp-ice);border-radius:50%;background:rgba(142,220,255,.25)}
.gxp-anno::after{content:"";width:30px;height:1px;background:var(--gxp-ice)}
.gxp-anno.gxp-on{opacity:1}
.gxp-close{min-height:100svh;display:grid;place-items:center;text-align:center;background:radial-gradient(900px 500px at 50% 40%,rgba(22,119,184,.18),transparent 70%),#050d15;padding:100px 24px}
.gxp-close h2{font-size:clamp(1.9rem,4.8vw,4.2rem);max-width:18ch;margin:0 auto 34px;text-transform:none;letter-spacing:-.03em;font-weight:600;line-height:1.08}
@media (max-width:700px){.gxp-j-rail{display:none}.gxp-j-cap{right:24px}}

/* ---------- 03 explorer ---------- */
.gxp-ex{position:relative;height:100svh;min-height:520px;overflow:hidden;background:#03080d;touch-action:none;cursor:grab;outline-offset:-4px;user-select:none;-webkit-user-select:none}
.gxp-ex:active{cursor:grabbing}
.gxp-ex::before{content:"";position:absolute;inset:0 0 auto 0;height:clamp(320px,48%,400px);z-index:3;pointer-events:none;background:linear-gradient(to bottom,rgba(3,8,13,.86) 0,rgba(3,8,13,.8) 45%,rgba(3,8,13,.7) 70%,rgba(3,8,13,0))}
.gxp-ex-tilt{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.gxp-ex-open,.gxp-ex-graph{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .6s;pointer-events:none}
.gxp-ex-open{background:var(--gxp-open) 0 0/100% 100% no-repeat}
.gxp-ex[data-layer=openings] .gxp-ex-open,.gxp-ex[data-layer=paths] .gxp-ex-graph{opacity:1}
.gxp-ex[data-layer=openings] .gxp-world,.gxp-ex[data-layer=paths] .gxp-world{filter:brightness(.72) saturate(.8)}
.gxp-ex[data-layer=walls] .gxp-world{filter:grayscale(1) contrast(1.7) brightness(1.2) sepia(.15) hue-rotate(170deg)}
.gxp-ex-graph path{fill:none;stroke:#8EDCFF;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:3 7;opacity:.9;animation:gxp-flow 2.4s linear infinite}
.gxp-ex-graph circle{fill:#d7f3ff}
@keyframes gxp-flow{to{stroke-dashoffset:-20}}
.gxp-hs{position:absolute;width:30px;height:30px;margin:0;border-radius:50%;border:1px solid var(--gxp-ice);background:rgba(7,18,29,.6);display:grid;place-items:center;padding:0;transform:translate(-50%,-50%) scale(var(--inv,1));z-index:4}
.gxp-hs::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gxp-ice)}
.gxp-hs[aria-pressed=true]{background:var(--gxp-ice)}.gxp-hs[aria-pressed=true]::before{background:var(--gxp-n)}
.gxp-ex-hud{position:absolute;left:clamp(16px,3vw,40px);right:clamp(16px,3vw,40px);top:calc(var(--gxp-nav) + 18px);max-width:360px;pointer-events:none;z-index:5}
.gxp-ex-hud h1{font-size:clamp(1.1rem,2vw,1.6rem);margin:8px 0 8px}
.gxp-ex-hud p{font-size:.86rem;color:rgba(245,247,248,.88)}
.gxp-ex-card{position:absolute;left:clamp(16px,3vw,40px);bottom:104px;max-width:340px;padding:16px 18px;background:rgba(5,13,21,.9);border:1px solid rgba(142,220,255,.25);font-size:.88rem;display:none;z-index:6;cursor:default}
.gxp-ex-card.gxp-on{display:block}
.gxp-ex-card b{display:block;color:var(--gxp-ice);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:4px}
.gxp-dock{position:absolute;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:10px;flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100% - 32px);z-index:7;cursor:default}
.gxp-seg{display:flex;background:rgba(5,13,21,.88);border:1px solid rgba(142,220,255,.22)}
.gxp-seg button{background:none;border:0;padding:11px 14px;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:rgba(245,247,248,.72);min-width:40px;min-height:40px;transition:background .3s,color .3s}
.gxp-seg button:hover{background:rgba(142,220,255,.12);color:#fff}
.gxp-seg button[aria-pressed=true]{background:var(--gxp-ice);color:var(--gxp-n)}
.gxp-ex-foot{position:absolute;right:clamp(16px,3vw,40px);top:calc(var(--gxp-nav) + 20px);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,247,248,.72);text-align:right;max-width:260px;pointer-events:none;z-index:5;line-height:1.6}
@media (max-width:700px){.gxp-ex{height:82svh}.gxp-ex-foot{display:none}.gxp-ex-card{bottom:128px;max-width:calc(100% - 32px)}}
@media (max-width:360px){.gxp-seg button{padding-inline:8px;letter-spacing:.12em}}

/* ---------- 04 possibilities ---------- */
.gxp-uni-head{padding:calc(var(--gxp-nav) + clamp(48px,8vw,110px)) 0 24px;text-align:center}
.gxp-uni-head h1{font-size:clamp(2.2rem,5.6vw,5rem);margin:16px 0 18px}
.gxp-uni-head .gxp-lead{margin-inline:auto}
.gxp-legend{display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:center;margin:34px 0 0;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,247,248,.7)}
.gxp-legend span{display:flex;align-items:center;gap:8px}
.gxp-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--gxp-ice);display:inline-block}
.gxp-dot[data-s=prototype]{background:var(--gxp-ice)}
.gxp-dot[data-s=active]{background:linear-gradient(90deg,var(--gxp-ice) 50%,transparent 50%)}
.gxp-dot[data-s=validated]{border-style:dashed;border-color:#c9d6de;opacity:.6}
.gxp-uni{position:relative;width:min(1180px,100% - 32px);margin:30px auto 0;aspect-ratio:1000/640}
.gxp-uni svg.gxp-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.gxp-lines path{fill:none;stroke:rgba(142,220,255,.55);stroke-width:1.2;stroke-dasharray:var(--len,900);stroke-dashoffset:var(--len,900);transition:stroke-dashoffset 2s var(--gxp-ease)}
.gxp-uni.gxp-drawn .gxp-lines path{stroke-dashoffset:0}
.gxp-core{position:absolute;left:50%;top:50%;width:30%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;overflow:hidden;border:1px solid rgba(142,220,255,.4);box-shadow:0 0 0 14px rgba(142,220,255,.05),0 0 0 15px rgba(142,220,255,.16),0 0 90px rgba(22,119,184,.35)}
.gxp-core .gxp-crop{position:absolute;inset:0;aspect-ratio:auto;border:0}
.gxp-core-label{position:absolute;left:50%;top:50%;transform:translate(-50%,calc(var(--r,150px) + 12px));text-align:center;font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(245,247,248,.6);pointer-events:none}
.gxp-node{position:absolute;transform:translate(-50%,-50%);width:clamp(96px,14%,150px);text-align:center;background:none;border:0;padding:0}
.gxp-node .gxp-thumb{position:relative;display:block;width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:1px solid rgba(142,220,255,.4);transition:transform .6s var(--gxp-ease),border-color .3s,box-shadow .4s}
.gxp-node .gxp-thumb img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.gxp-node:hover .gxp-thumb,.gxp-node:focus-visible .gxp-thumb,.gxp-node[aria-expanded=true] .gxp-thumb{transform:scale(1.1);border-color:var(--gxp-ice);box-shadow:0 0 40px rgba(142,220,255,.35)}
.gxp-node strong{display:block;margin-top:12px;font-size:.78rem;line-height:1.25;letter-spacing:.04em}
.gxp-node small{display:flex;gap:6px;justify-content:center;align-items:center;margin-top:5px;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,247,248,.55)}
/* radial layout (>820px): the node is the round thumbnail itself, so every connector ends at its centre. Labels hang below it; the top and bottom nodes (connector arrives vertically through that spot) put the label to the right, so no connector crosses label text. */
@media (min-width:821px){
  .gxp-node{width:clamp(84px,10%,112px);aspect-ratio:1;border-radius:50%}
  .gxp-node:focus-visible{border-radius:50%}
  .gxp-node>span:not(.gxp-thumb){position:absolute;left:50%;top:100%;width:150px;transform:translateX(-50%)}
  .gxp-node[data-app=seating]>span:not(.gxp-thumb),.gxp-node[data-app=arch]>span:not(.gxp-thumb){left:calc(100% + 18px);top:50%;width:max-content;max-width:180px;transform:translateY(-50%);text-align:left}
  .gxp-node[data-app=seating] strong,.gxp-node[data-app=arch] strong{margin-top:0}
  .gxp-node[data-app=seating] small,.gxp-node[data-app=arch] small{justify-content:flex-start}
}
.gxp-panel{position:fixed;right:0;top:0;bottom:0;width:min(520px,100%);background:#07121D;border-left:1px solid rgba(142,220,255,.25);z-index:260;padding:calc(var(--gxp-nav) + 20px) clamp(22px,3vw,40px) 40px;overflow:auto;transform:translateX(102%);transition:transform .7s var(--gxp-ease);visibility:hidden}
.gxp-panel.gxp-open{transform:none;visibility:visible}
.gxp-panel h2{font-size:clamp(1.5rem,2.6vw,2.1rem);margin:12px 0 6px;text-transform:uppercase;letter-spacing:-.025em;line-height:1.05}
.gxp-panel h3{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gxp-ice);margin:26px 0 8px;font-weight:700}
.gxp-panel p,.gxp-panel li{font-size:.92rem;color:rgba(245,247,248,.8)}
.gxp-panel ul{padding-left:18px;display:grid;gap:6px}
.gxp-panel .gxp-close-x{position:absolute;right:18px;top:calc(var(--gxp-nav) + 8px);background:none;border:1px solid rgba(245,247,248,.3);width:40px;height:40px;border-radius:2px;font-size:1.2rem}
.gxp-status{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--gxp-ice);padding:5px 10px;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gxp-ice)}
.gxp-scrim{position:fixed;inset:0;background:rgba(2,6,10,.55);z-index:250;opacity:0;visibility:hidden;transition:opacity .5s}
.gxp-scrim.gxp-on{opacity:1;visibility:visible}
@media (max-width:820px){
  .gxp-uni{aspect-ratio:auto;display:grid;gap:0;padding-left:34px;margin-top:20px}
  .gxp-uni svg.gxp-lines,.gxp-core-label{display:none}
  .gxp-core{position:relative;left:auto;top:auto;transform:none;width:min(260px,70%);margin:0 auto 34px;margin-left:calc(50% - 130px - 34px)}
  .gxp-uni::before{content:"";position:absolute;left:12px;top:150px;bottom:40px;width:1px;background:linear-gradient(var(--gxp-ice),rgba(142,220,255,.1))}
  .gxp-node{position:relative;left:auto!important;top:auto!important;transform:none;width:auto;display:grid;grid-template-columns:72px 1fr;gap:16px;text-align:left;align-items:center;padding:16px 0;border-bottom:1px solid rgba(142,220,255,.12)}
  .gxp-node .gxp-thumb{width:72px}.gxp-node strong{margin-top:0;font-size:.95rem}.gxp-node small{justify-content:flex-start}
  .gxp-node::before{content:"";position:absolute;left:-26px;top:50%;width:8px;height:8px;border-radius:50%;background:var(--gxp-ice)}
}

/* ---------- 05 architecture ---------- */
.gxp-arch{display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(24px,5vw,80px)}
.gxp-index{position:sticky;top:calc(var(--gxp-nav) + 40px);align-self:start;display:grid;gap:4px;border-left:1px solid rgba(142,220,255,.16)}
.gxp-index a{padding:8px 0 8px 16px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:rgba(245,247,248,.5);margin-left:-1px;border-left:1px solid transparent;transition:color .3s,border-color .3s}
.gxp-index a b{color:var(--gxp-ice);margin-right:8px}
.gxp-index a.gxp-on{color:#fff;border-color:var(--gxp-ice)}
.gxp-chap{padding:clamp(50px,8vw,110px) 0;border-top:1px solid rgba(142,220,255,.12)}
.gxp-chap:first-child{border-top:0;padding-top:0}
.gxp-chap h2{font-size:clamp(1.9rem,4.2vw,3.5rem);margin:14px 0 18px}
.gxp-chap-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(24px,4vw,64px);margin-top:36px;align-items:start}
.gxp-cap{margin-top:10px;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(245,247,248,.5)}
.gxp-paths{position:absolute;inset:0;width:100%;height:100%}
.gxp-paths path{fill:none;stroke:#8EDCFF;stroke-width:1.3;stroke-linecap:round;stroke-dasharray:3 7;animation:gxp-flow 2.6s linear infinite}
.gxp-paths circle{fill:#d7f3ff}
.gxp-states{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gxp-states figure{margin:0;border:1px solid rgba(142,220,255,.16);background:#03080d;padding:10px}
.gxp-states figcaption{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(245,247,248,.6);text-align:center;margin-top:6px}
.gxp-q{display:grid;gap:0;border-top:1px solid rgba(142,220,255,.16)}
.gxp-q div{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:20px 0;border-bottom:1px solid rgba(142,220,255,.16)}
.gxp-q dt{font-family:'Instrument Serif',serif;font-style:italic;color:var(--gxp-ice);font-size:1.4rem}
.gxp-q dd{font-size:.98rem;color:rgba(245,247,248,.82)}
@media (max-width:980px){.gxp-arch{grid-template-columns:1fr}.gxp-index{position:relative;top:0;display:flex;flex-wrap:wrap;border:0;gap:6px}.gxp-index a{border:1px solid rgba(142,220,255,.2);padding:8px 12px}.gxp-chap-grid{grid-template-columns:1fr}.gxp-states{grid-template-columns:1fr}}

/* ---------- 06 collaborate ---------- */
.gxp-col-head{padding:calc(var(--gxp-nav) + clamp(48px,8vw,110px)) 0 clamp(40px,6vw,80px);position:relative;overflow:hidden}
.gxp-col-head::before{content:"";position:absolute;inset:0;background:var(--gxp-master) 60% 40%/cover no-repeat;opacity:.22;filter:blur(2px)}
.gxp-col-head::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050d15 18%,rgba(5,13,21,.6) 60%,#050d15)}
.gxp-col-head .gxp-wrap{position:relative;z-index:1}
.gxp-col-head h1{font-size:clamp(2.2rem,5.4vw,4.8rem);margin:16px 0 20px;max-width:15ch}
.gxp-board{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(142,220,255,.2);border-bottom:1px solid rgba(142,220,255,.2)}
.gxp-board section{padding:30px 24px 34px 0}
.gxp-board section+section{padding-left:24px;border-left:1px solid rgba(142,220,255,.14)}
.gxp-board h2{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gxp-ice);margin-bottom:6px;display:flex;gap:10px;align-items:center}
.gxp-board .gxp-t{font-size:1.2rem;font-weight:700;letter-spacing:-.02em;text-transform:uppercase;line-height:1.1;margin-bottom:16px}
.gxp-board ul{list-style:none;display:grid;gap:10px}
.gxp-board li{font-size:.88rem;color:rgba(245,247,248,.78);padding-left:16px;position:relative}
.gxp-board li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:1px;background:var(--gxp-ice)}
.gxp-modes{display:grid;gap:0;border-top:1px solid rgba(142,220,255,.16)}
.gxp-modes div{display:grid;grid-template-columns:60px minmax(0,.8fr) minmax(0,1.2fr);gap:20px;padding:22px 0;border-bottom:1px solid rgba(142,220,255,.16);align-items:baseline}
.gxp-modes dt{font-family:'Instrument Serif',serif;font-style:italic;color:var(--gxp-ice);font-size:1.4rem}
.gxp-modes dd{margin:0}.gxp-modes strong{font-size:1.05rem;letter-spacing:-.01em}.gxp-modes span{color:rgba(245,247,248,.68);font-size:.92rem}
.gxp-final{text-align:center;padding:clamp(90px,14vw,190px) 24px;background:radial-gradient(900px 520px at 50% 50%,rgba(22,119,184,.22),transparent 70%),#050d15}
.gxp-final h2{font-size:clamp(2rem,5.2vw,4.6rem);max-width:18ch;margin:16px auto 36px}
@media (max-width:980px){.gxp-board{grid-template-columns:1fr 1fr}.gxp-board section{padding:26px 16px 26px 0}.gxp-board section+section{border-left:0;padding-left:0}.gxp-modes div{grid-template-columns:44px 1fr;row-gap:6px}.gxp-modes dd+dd{grid-column:2}}
@media (max-width:600px){.gxp-board{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  html:has(.gxp-page){scroll-behavior:auto}
  .gxp-page *,.gxp-page *::before,.gxp-page *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .gxp-js .gxp-reveal{opacity:1;transform:none}
  .gxp-hero h1 span i{transform:none}.gxp-hero .gxp-lead,.gxp-hero .gxp-btn-row{opacity:1}
}
