@font-face{font-family:"Instrument Sans";src:url("assets/instrument-sans-regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("assets/instrument-sans-medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("assets/instrument-sans-semibold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}

:root{
  --paper:#f4f3ed;
  --paper-2:#e9ebe4;
  --panel:#e4e7de;
  --ink:#1b2326;
  --muted:#596366;
  --orange:#ec582c;
  --orange-ink:#b9401f;
  --line:#d7d9d2;
  --line-strong:#c4c9c0;
  --dark:#152126;
  --dark-muted:#b6c3c1;
  --gutter:clamp(20px,5vw,72px);
  --max:1360px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Instrument Sans",Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
a,button,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
::selection{background:#fcb99d;color:#142026}
h1,h2,h3,p,figure,dl,dd{margin:0}
p{line-height:1.6}
h1,h2,h3{font-weight:500;text-wrap:balance}
h2{font-size:clamp(36px,4vw,58px);line-height:1.06;letter-spacing:-.045em}
h3{font-size:23px;letter-spacing:-.025em;line-height:1.25}
em{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.02em}
[hidden]{display:none!important}

.skip{position:fixed;left:20px;top:-80px;z-index:20;background:#fff;padding:14px 18px;font-size:14px}
.skip:focus{top:12px}

/* Shared */
.eyebrow,.fact-label{font-size:13px;font-weight:500;line-height:1.5}
.eyebrow{display:flex;align-items:center}
.status-dot{display:inline-block;flex:none;width:7px;height:7px;background:var(--orange);border-radius:50%;margin-right:9px}
.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;padding:17px 20px;font-size:13px;line-height:1.4;border:1px solid transparent;transition:background-color .2s,transform .25s var(--ease)}
.button:hover{transform:translateY(-2px)}
.button span{transition:transform .25s var(--ease)}
.button:hover span{transform:translate(2px,-2px)}
.button.dark{background:var(--ink);color:#fff}
.button.dark:hover{background:#2d3d40}
.text-link{position:relative;display:inline-flex;align-items:center;gap:10px;font-size:13px;line-height:1.5;padding:7px 0}
.text-link::before{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform-origin:left;transition:transform .35s var(--ease)}
.text-link::after{content:"→";transition:transform .25s var(--ease)}
.text-link:hover{color:var(--orange-ink)}
.text-link:hover::after{transform:translateX(3px)}
.hero-actions .text-link::after{content:"↓"}
.hero-actions .text-link:hover::after{transform:translateY(2px)}

/* Header */
.header{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);background:var(--paper);border-bottom:1px solid transparent;transition:border-color .25s,height .25s var(--ease)}
.header.scrolled{border-bottom-color:var(--line);height:68px}
.brand{display:flex;align-items:center;gap:10px;font-size:26px;letter-spacing:-.05em;font-weight:600}
.brand img{mix-blend-mode:multiply}
.brand-ai{font-weight:400}
.header nav{display:flex;align-items:center;gap:30px;font-size:13px}
.header nav>a:not(.nav-cta){position:relative;padding:10px 0;color:var(--muted);transition:color .2s}
.header nav>a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.header nav>a:not(.nav-cta):hover,.header nav>a[aria-current="true"]{color:var(--ink)}
.header nav>a[aria-current="true"]::after{transform:scaleX(1)}
.header nav .nav-cta{border:1px solid #aeb6b0;padding:11px 17px;margin-left:10px;transition:background-color .2s,border-color .2s,color .2s}
.header nav .nav-cta:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.menu{display:none}

/* Hero */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;min-height:min(720px,calc(100svh - 80px));padding:52px var(--gutter) 56px;max-width:calc(var(--max) + 2*var(--gutter));margin:0 auto}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding-bottom:20px}
.hero h1{font-size:clamp(52px,5.8vw,92px);letter-spacing:-.048em;line-height:1.02;margin-top:30px;white-space:nowrap}
.hero h1 em{color:#c74523}
.hero-intro{font-size:23px;line-height:1.34;letter-spacing:-.02em;margin:28px 0 16px}
.hero-description{font-size:15px;color:var(--muted);max-width:380px}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 28px;margin-top:34px}
.hero-art{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:520px;margin-right:calc(-1 * min(var(--gutter),40px))}
.foundation{display:block;width:100%;height:auto;max-height:calc(100svh - 150px);overflow:visible;--px:0;--py:0}
.foundation .stack,.foundation .routes,.foundation .nodes{transition:transform .9s var(--ease)}
.foundation .stack{transform:translate(calc(var(--px) * 10px),calc(var(--py) * 8px))}
.foundation .routes,.foundation .nodes{transform:translate(calc(var(--px) * 16px),calc(var(--py) * 12px))}
.foundation .grid{transform:translate(calc(var(--px) * -6px),calc(var(--py) * -4px));transition:transform .9s var(--ease)}
.foundation .ticks{fill:none}
.route{fill:none;stroke:var(--orange);stroke-width:2;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:route-draw 1.1s var(--ease) calc(1.25s + var(--p,0) * .18s) forwards}
.pulse{fill:none;stroke:#ffd2b8;stroke-width:3.2;stroke-linecap:round;stroke-dasharray:7 93;stroke-dashoffset:100;opacity:0;animation:pulse-run 3.6s linear calc(2.6s + var(--p,0) * 1.1s) infinite}
.nodes circle{fill:var(--orange)}
.nodes .node-ring{fill:none;stroke:var(--orange);stroke-width:1;opacity:.5}
.node{opacity:0;transform-box:fill-box;transform-origin:center;animation:node-in .6s var(--ease) calc(2s + var(--p,0) * .18s) forwards}
.node-ring{transform-box:fill-box;transform-origin:center;animation:ring 3.6s ease-out calc(3.3s + var(--p,0) * 1.1s) infinite}
.slab{animation:breathe 7s ease-in-out 2.2s infinite}
.slab-in{animation:slab-in .9s var(--ease) calc(.15s + var(--i) * .08s) both}
.slab-warm .slab-in{animation-name:slab-in-warm}
.shadow{transform-box:fill-box;transform-origin:center;animation:shadow-in 1.4s var(--ease) both,shadow-breathe 7s ease-in-out 2.2s infinite}
@keyframes slab-in{from{opacity:0;transform:translateY(-46px)}to{opacity:1;transform:none}}
@keyframes slab-in-warm{0%{opacity:0;transform:translate(60px,-46px)}100%{opacity:1;transform:none}}
@keyframes breathe{0%,100%{transform:none}50%{transform:translateY(var(--d))}}
@keyframes shadow-in{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}
@keyframes shadow-breathe{0%,100%{transform:none}50%{transform:scale(1.04)}}
@keyframes route-draw{to{stroke-dashoffset:0}}
@keyframes pulse-run{0%{stroke-dashoffset:100;opacity:0}8%{opacity:1}85%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes node-in{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@keyframes ring{0%{transform:scale(.6);opacity:.7}70%,100%{transform:scale(1.8);opacity:0}}
.labels text{font-family:"Instrument Sans",Arial,sans-serif;font-size:24px;font-weight:500;letter-spacing:-.02em;fill:var(--ink)}
.labels .label-sub{font-size:17px;font-weight:400;letter-spacing:0;fill:var(--muted)}
.label{opacity:0;animation:label-in .7s var(--ease) calc(2.15s + var(--p,0) * .18s) forwards}
@keyframes label-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* Hero labels link to their sections; a small preview card opens on hover or focus */
.label-link{cursor:pointer;outline:none}
.label-hit{fill:transparent;stroke:none;transition:fill .2s}
.label-arrow{fill:var(--orange);font-weight:400}
.label-link:hover .label text:not(.label-sub),.label-link:focus-visible .label text:not(.label-sub),.label-link.is-active .label text:not(.label-sub){text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:1.5px;text-underline-offset:6px}
.label-link:focus-visible .label-hit{fill:rgba(236,88,44,.07);stroke:var(--orange);stroke-width:1.5}
.peek{position:absolute;z-index:3;top:0;left:0;width:300px;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);box-shadow:0 0 0 1px var(--line-strong),0 22px 48px -18px rgba(21,33,38,.4);
  /* Closed: shrunk into the label it belongs to (--ox/--oy point at the label) */
  visibility:hidden;opacity:0;transform:scale(.4);transform-origin:var(--ox,50%) var(--oy,0);
  transition:opacity .22s ease .06s,transform .34s cubic-bezier(.4,0,.6,1),visibility 0s linear .34s;pointer-events:none}
.peek.is-open{visibility:visible;opacity:1;transform:none;pointer-events:auto;
  transition:opacity .24s ease,transform .62s cubic-bezier(.16,1,.3,1),visibility 0s}
/* Contents settle in just after the card opens */
.peek .peek-thumb img{opacity:0;transform:scale(1.08);transition:opacity .3s ease,transform .7s cubic-bezier(.16,1,.3,1)}
.peek.is-open .peek-thumb img{opacity:1;transform:none;transition-delay:.12s}
.peek .peek-body>*{opacity:0;transform:translateY(6px);transition:opacity .25s ease,transform .45s cubic-bezier(.16,1,.3,1)}
.peek.is-open .peek-body>*{opacity:1;transform:none}
.peek.is-open .peek-body>:nth-child(1){transition-delay:.16s}
.peek.is-open .peek-body>:nth-child(2){transition-delay:.21s}
.peek.is-open .peek-body>:nth-child(3){transition-delay:.26s}
.peek-thumb{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--panel);border-bottom:1px solid var(--line)}
.peek-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 0;transition:transform .6s var(--ease)}
.peek.is-open:hover .peek-thumb img{transform:scale(1.04);transition-delay:0s}
.peek-body{display:flex;flex-direction:column;gap:3px;padding:12px 14px 13px}
.peek-eyebrow{font-size:10px;color:var(--orange-ink)}
.peek-title{font-size:14px;font-weight:500;line-height:1.3}
.peek-cta{font-size:12px;margin-top:4px;color:var(--muted);transition:color .2s}
.peek-cta::after{content:" →";color:var(--orange)}
.peek:hover .peek-cta{color:var(--ink)}
/* During the automatic cycle a thin bar shows how long this preview stays open */
.peek::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;opacity:0}
.peek.is-auto::after{opacity:1;animation:peek-timer var(--dwell,3600ms) linear forwards}
@keyframes peek-timer{to{transform:scaleX(1)}}
/* Smaller preview card on phones so it leaves most of the illustration visible */
@media (max-width:760px){
  .peek{width:min(232px,70%)}
  .peek-body{padding:9px 11px 10px;gap:2px}
  .peek-eyebrow{font-size:9px}
  .peek-title{font-size:12px}
  .peek-cta{font-size:11px;margin-top:2px}
}
.hero-art figcaption{display:flex;justify-content:space-between;gap:15px;padding:14px 0 0;margin-right:min(var(--gutter),40px);border-top:1px solid var(--line);color:var(--muted);font-size:11px}

/* Facts strip */
.facts{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;border-block:1px solid var(--line);padding:0 var(--gutter)}
.fact{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:30px 0 30px 32px;border-left:1px solid var(--line)}
.fact-title{padding-left:0;border-left:0}
.fact strong{font-size:18px;font-weight:500;letter-spacing:-.01em}
.fact-title strong span{color:var(--muted);font-size:15px}
.fact-title .fact-label{order:-1}
.fact-label{color:var(--muted);font-size:12px}
.fact-title .fact-label{color:var(--ink);font-size:13px}
.fact .fact-figure{font-size:40px;letter-spacing:-.05em;line-height:1}
.fact-figure small{font-size:17px;letter-spacing:-.02em;margin-left:6px}

/* Sections */
.section{padding:104px var(--gutter)}
.section>*{max-width:var(--max);margin-inline:auto}
.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:30px;margin-bottom:52px}
.section-heading .eyebrow{align-self:start;padding-top:10px}
.section-heading>div>p{max-width:520px;color:var(--muted);font-size:16px;margin-top:20px}

/* Layer explorer */
.layer-explorer{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.layer-controls{border-top:1px solid var(--line);align-self:start}
.layer-controls button{position:relative;display:flex;width:100%;align-items:center;text-align:left;padding:28px 56px 28px 22px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--muted);transition:background-color .2s,color .2s}
.layer-controls button::before{content:"";position:absolute;left:0;top:-1px;bottom:-1px;width:3px;background:var(--orange);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease)}
.layer-controls button::after{content:"→";position:absolute;right:16px;top:50%;font-size:22px;transform:translate(-6px,-50%);opacity:0;color:var(--orange);transition:opacity .25s,transform .3s var(--ease)}
.layer-name{font-size:27px;letter-spacing:-.035em}
.layer-name small{display:block;font-size:13px;letter-spacing:0;margin-top:8px}
.layer-controls button:hover{background:#ebebe3;color:var(--ink)}
.layer-controls button[aria-selected="true"]{color:var(--ink)}
.layer-controls button[aria-selected="true"]::before{transform:scaleY(1)}
.layer-controls button::before{background:linear-gradient(var(--orange),var(--orange)) top/100% calc(var(--fill,1) * 100%) no-repeat,#f2c3b2}
.layer-scroller.is-sticky .layer-explorer{position:sticky;top:var(--sticky-top,104px)}
.layer-controls button[aria-selected="true"]::after{opacity:1;transform:translate(0,-50%)}
.layer-stage{min-width:0;background:var(--panel);padding:34px 36px 36px;min-height:450px}
.layer-panel h3{margin-top:10px}
.layer-panel p:not(.eyebrow){font-size:14px;line-height:1.7;color:var(--muted);max-width:430px;margin:12px 0 14px}
.js .layer-panel:not([hidden]){animation:panel-in .45s var(--ease) both}
@keyframes panel-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.diagram{position:relative;height:164px;width:100%;max-width:260px;margin:0 auto 26px}
.diagram-layer{position:absolute;width:calc(100% - 20px);height:50px;padding:16px 24px;border:1px solid #9ba79e;background:#dfe4da;color:#5c6a65;font-size:12px;transform:skewY(-11deg);box-shadow:10px 10px 0 #ced6c9;transition:background-color .35s,color .35s,border-color .35s,box-shadow .35s,translate .45s var(--ease)}
.diagram-layer[data-layer="software"]{top:7px;left:16px;z-index:3}
.diagram-layer[data-layer="compute"]{top:48px;left:8px;z-index:2}
.diagram-layer[data-layer="infrastructure"]{top:89px;left:0;z-index:1}
.diagram[data-active="software"] [data-layer="software"],
.diagram[data-active="compute"] [data-layer="compute"],
.diagram[data-active="infrastructure"] [data-layer="infrastructure"]{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:10px 10px 0 var(--orange);translate:-4px -4px;z-index:4}

/* Infrastructure */
.infrastructure{overflow-x:clip;background:var(--paper-2);border-top:1px solid var(--line)}
.project-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:64px}
.project-card{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:420px;padding:30px 32px 26px;background:radial-gradient(90% 70% at 85% 0%,#24393d 0%,transparent 60%),linear-gradient(160deg,#1a282d 0%,var(--dark) 55%,#121c20 100%);color:var(--paper);overflow:hidden;box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 0 0 1px rgba(21,33,38,.06),0 2px 6px rgba(21,33,38,.06),0 18px 40px -12px rgba(21,33,38,.28),0 40px 80px -30px rgba(21,33,38,.22)}
.project-card::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:repeating-linear-gradient(115deg,transparent 0 34px,rgba(120,149,138,.13) 34px 35px);-webkit-mask-image:linear-gradient(200deg,#000 10%,transparent 60%);mask-image:linear-gradient(200deg,#000 10%,transparent 60%)}
.project-card>*{position:relative;z-index:1}
.project-card-top,.project-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px}
.project-card-top .status-dot{margin:0;box-shadow:0 0 0 0 rgba(236,88,44,.55);animation:pulse 2.6s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(236,88,44,.55)}70%,100%{box-shadow:0 0 0 9px rgba(236,88,44,0)}}
.big-capacity{font-size:clamp(92px,11vw,160px);letter-spacing:-.065em;line-height:1.05;margin-top:24px}
.big-capacity span{font-size:35px;letter-spacing:-.05em;margin-left:12px}
.project-card-label{font-size:13px;color:var(--dark-muted)}
.count{font-weight:inherit;font-variant-numeric:tabular-nums}

/* Scroll animation: the card rises in, its contents arrive in sequence,
   and the line texture and glow drift with scroll position (--p, 0 → 1) */
.project-card::before{content:"";position:absolute;z-index:0;pointer-events:none;width:70%;aspect-ratio:1;top:-35%;right:-20%;border-radius:50%;background:radial-gradient(closest-side,rgba(236,88,44,.16),rgba(54,90,92,.18) 45%,transparent 100%);transform:translate(calc(var(--p,.5) * -45%),calc(var(--p,.5) * 30%))}
.project-card::after{background-position:calc(var(--p,.5) * -140px) 0}
.load-bar{margin-top:34px}
.load-track{display:flex;height:10px;background:#20343a;border:1px solid #39524f;overflow:hidden}
.load-it{flex:200;background:var(--orange)}
.load-overhead{flex:40;background:repeating-linear-gradient(135deg,#5c7672 0 2px,transparent 2px 5px)}
.load-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-size:11px;color:var(--dark-muted)}
.load-legend span{display:inline-flex;align-items:center;gap:7px}
.load-total{margin-left:auto}
.key{width:9px;height:9px;display:inline-block}
.key-it{background:var(--orange)}
.key-overhead{background:repeating-linear-gradient(135deg,#7b9590 0 2px,transparent 2px 4px);outline:1px solid #5c7672}
.project-card-bottom{margin-top:auto;padding-top:56px;color:#c7d1cb;font-size:11px}
.spec{border-top:1px solid var(--line-strong);padding:26px 0}
.spec:first-child{padding-top:6px;border-top:0}
.spec h3{font-size:22px}
.spec p{font-size:14px;color:var(--muted);margin-top:10px;max-width:400px}

/* Site map */
.site-map{margin-top:56px;padding-top:26px;border-top:1px solid var(--line-strong);display:grid;grid-template-columns:1fr 2fr;gap:30px}
.site-map-copy p{font-size:14px;color:var(--muted);max-width:300px;margin-top:12px}
.site-map-copy .map-note{font-size:11px;margin-top:22px}
.map-key{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:12px;font-size:13px}
.map-key li{display:flex;align-items:center;gap:12px}
.mk{display:inline-block;flex:none;width:11px;height:11px}
.mk-site{background:var(--orange);border-radius:50%;box-shadow:0 0 0 4px rgba(236,88,44,.18)}
.mk-place{background:var(--ink);width:9px;height:9px;margin-inline:1px}
.mk-grid{width:0;height:0;border:6px solid transparent;border-bottom:10px solid #5d6f68;border-top:0}
.site-map-figure{margin:0;background:var(--paper);box-shadow:0 0 0 1px var(--line)}
.site-map-art{display:block;width:100%;height:auto}
.site-map-art text{font-family:"Instrument Sans",Arial,sans-serif;font-size:19px;fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:7px;stroke-linejoin:round}
.m-sea{opacity:.55}
.m-coast{fill:none;stroke:#5d6f68;stroke-width:1.6;stroke-linejoin:round}
.m-road{fill:none;stroke:#b5bdb4;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.m-sea-label{font-family:Georgia,"Times New Roman",serif!important;font-style:italic;font-size:24px!important;fill:#6f8079!important}
.m-marker rect{fill:var(--ink)}
.m-marker path{fill:#5d6f68}
.m-marker text{fill:#3d4749}
.m-tirana text{fill:var(--muted)}
.m-tirana path{fill:none;stroke:var(--muted);stroke-width:1.5}
.m-dot{fill:var(--orange);stroke:var(--paper);stroke-width:3}
.m-ring{fill:none;stroke:var(--orange);stroke-width:1.5}
.m-site-name{font-weight:500;font-size:22px!important}
.m-site-sub{fill:var(--muted)!important;font-size:17px!important}
.m-north path{fill:var(--ink)}
.m-north text{font-size:14px!important;fill:var(--muted)!important}
.site-map-figure{position:relative}
.m-zoom{fill:none;stroke:var(--orange);stroke-width:1.4;stroke-dasharray:3 2.2}
/* Campus view card, docked in the map's empty lower-right corner */
.campus-card{position:absolute;right:12px;bottom:12px;width:34%;padding:10px 12px 8px;background:var(--paper);box-shadow:0 0 0 1px var(--line-strong),0 14px 30px -14px rgba(21,33,38,.3)}
.campus-head{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:500;line-height:1.4}
.campus-head .mk-site{width:8px;height:8px;box-shadow:0 0 0 3px rgba(236,88,44,.18)}
.campus-tag{margin-left:auto;font-size:10px;font-weight:400;color:var(--muted);border:1px solid #c3cac1;border-radius:20px;padding:2px 8px}
.campus-art{display:block;width:100%;height:auto;margin:4px 0 0}
.site-map-figure .campus-note{display:none}
.campus-note{font-size:10px;color:var(--muted)}
.c-plate{fill:#e3e7de;stroke:#cfd5cb}
.c-edge{fill:none;stroke:var(--orange);stroke-width:1.3;stroke-dasharray:4 3}
.c-road{fill:#cdd3ca}
.c-pond{fill:#b9c8c4}
.c-tree{fill:#9fb09f}
.hall .f-t{fill:#fbfbf7}.hall .f-l{fill:#c8d0c6}.hall .f-r{fill:#a9b6ad}
.hall-big .f-t{fill:#f3f4ee}
.unit .f-t{fill:#d9ddd5}.unit .f-l{fill:#9eaaa2}.unit .f-r{fill:#87958c}
.hall polygon,.unit polygon{stroke:#7d8c84;stroke-width:.35;stroke-linejoin:round}
/* Map animation: drawn in when it scrolls into view */
.m-ring{transform-box:fill-box;transform-origin:center;animation:ring 3s ease-out 2.2s infinite}
.m-ring-2{animation-delay:3.7s}
.js .site-map:not(.in) .m-ring{animation:none}
@keyframes fade-to{to{opacity:var(--to,1)}}
@keyframes zoom-spin{to{stroke-dashoffset:-100}}
.hall,.unit{transform-box:fill-box;transform-origin:50% 100%}
@keyframes rise-up{to{opacity:1;transform:none}}
@keyframes map-pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes halo{0%,100%{opacity:1}50%{opacity:.55}}
.m-marker,.m-tirana,.m-site{transform-box:fill-box;transform-origin:center}

.ledger{margin-top:56px;padding-top:26px;border-top:1px solid var(--line-strong);display:grid;grid-template-columns:1fr 2fr;gap:30px}
.ledger-title{font-size:13px;font-weight:500;letter-spacing:0;padding-top:6px}
.ledger dl{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.ledger dl>div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-strong)}
.ledger dt{font-size:14px}
.tag{display:inline-block;white-space:nowrap;font-size:11px;padding:5px 10px;border:1px solid #b5bdb4;border-radius:20px;color:#3d4749}
.tag-open{border-style:dashed;color:var(--orange-ink);border-color:#d99a83}

/* Software */
.software{padding-block:96px 100px}
.software-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;margin-top:36px}
.software h2{font-size:clamp(40px,4.4vw,64px)}
.software h2 em{color:var(--orange-ink)}
.software-layout>div{padding-top:8px}
.large-copy{font-size:24px;letter-spacing:-.02em;line-height:1.4;max-width:430px}
.software-layout>div>p:not(.large-copy){font-size:14px;color:var(--muted);max-width:440px;margin-top:18px}
.software .text-link{margin-top:22px}
.software-layout>div>p.software-status{display:flex;align-items:center;gap:10px;font-size:12px;margin-top:26px;color:var(--ink)}
.status-ring{width:9px;height:9px;border:1.5px solid var(--orange);border-radius:50%;flex:none}

/* Platform: the reference-architecture stack, on a dark band */
.platform{background:var(--dark);color:var(--paper)}
.platform .section-heading>div>p{color:var(--dark-muted)}
.platform .eyebrow{color:#cfbba9}
.platform-stack{list-style:none;margin:0;padding:0;border-top:1px solid rgba(214,222,216,.14)}
.stack-layer{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1.5fr) auto;align-items:center;gap:12px 32px;padding:24px 0;border-bottom:1px solid rgba(214,222,216,.14);transition:background-color .25s}
.stack-layer:hover{background:rgba(255,255,255,.025)}
.stack-layer h3{font-size:22px}
.stack-layer p{font-size:14px;color:var(--dark-muted);max-width:440px}
.stack-layer .tag{color:#d8dfda;border-color:rgba(214,222,216,.3)}
.stack-slab{justify-self:start;display:block;width:var(--w);height:22px;background:#2b3f43;border:1px solid #476260;transform:skewY(-11deg);box-shadow:8px 8px 0 #1d2e32}
.stack-layer.is-top .stack-slab{background:var(--orange);border-color:var(--orange);box-shadow:8px 8px 0 #7a3a24}
.stack-layer.is-base .stack-slab{background:#40585a;border-color:#5f7b77}
.stack-note{font-size:12px;color:var(--dark-muted);margin-top:18px}
/* The stack builds from the base up when it scrolls into view */
.js .platform-stack.in>li{animation:reveal-in .7s var(--ease) backwards}
.js .platform-stack.in>li:nth-child(5){animation-delay:.05s}
.js .platform-stack.in>li:nth-child(4){animation-delay:.18s}
.js .platform-stack.in>li:nth-child(3){animation-delay:.31s}
.js .platform-stack.in>li:nth-child(2){animation-delay:.44s}
.js .platform-stack.in>li:nth-child(1){animation-delay:.57s}
.js .platform-stack.reveal.in{animation:none}

/* NCP path: four real steps on a track */
.path{background:var(--paper-2);border-top:1px solid var(--line)}
.path-steps{position:relative;list-style:none;margin:0;padding:34px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.path-steps::before,.path-steps::after{content:"";position:absolute;top:7px;left:7px;right:0;height:2px;background:var(--line-strong)}
.path-steps::after{right:auto;width:calc(25% + 8px);background:var(--orange);transform-origin:left}
.path-step{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.path-node{position:absolute;top:-34px;left:0;width:16px;height:16px;border-radius:50%;background:var(--paper-2);border:2px solid #8d9a93}
.path-step.is-current .path-node{background:var(--orange);border-color:var(--orange);box-shadow:0 0 0 0 rgba(236,88,44,.5);animation:pulse 2.6s ease-out infinite}
.path-step.is-tba .path-node{border-style:dashed}
.path-step h3{font-size:20px}
.path-step p{font-size:14px;color:var(--muted)}
.path-step .tag{margin-top:4px}
.path-step.is-current .tag{border-color:var(--orange);color:var(--orange-ink)}
.path-note{font-size:12px;color:var(--muted);margin-top:40px;padding-top:18px;border-top:1px solid var(--line-strong)}
.js .path-steps.in::after{animation:bar-grow 1.2s var(--ease) .2s backwards}
.js .path-steps.in>li{animation:reveal-in .7s var(--ease) backwards}
.js .path-steps.in>li:nth-child(2){animation-delay:.12s}
.js .path-steps.in>li:nth-child(3){animation-delay:.24s}
.js .path-steps.in>li:nth-child(4){animation-delay:.36s}
.js .path-steps.reveal.in{animation:none}

.fact-status{display:inline-flex;align-items:center}
.fact .fact-figure .fact-prefix{font-size:13px;letter-spacing:0;margin:0 8px 0 0;color:var(--muted)}
.apollyon{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.capacity-prefix{font-size:13px;color:var(--dark-muted);margin-top:28px}
.apollyon .big-capacity{margin-top:0}
.development-note{display:flex;gap:14px;max-width:1000px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line-strong);font-size:12px;color:var(--muted)}
.development-note span{color:var(--orange-ink);font-size:20px;line-height:1}
.footer-legal{flex-wrap:wrap}
.footer-tm{width:100%;color:var(--muted)}

/* Agentic software demo */
.demo{margin-top:72px;padding-top:32px;border-top:1px solid var(--line)}
.demo-head{display:grid;grid-template-columns:1fr 2fr;gap:8px 30px;align-items:end}
.demo-head .eyebrow{grid-row:span 2;align-self:start;padding-top:6px}
.demo-head h3{font-size:clamp(24px,2.4vw,32px);letter-spacing:-.035em}
.demo-head p:not(.eyebrow){font-size:14px;color:var(--muted)}
.demo-head .demo-powered{grid-column:2;justify-self:start;display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:6px 12px 6px 10px;border:1px solid var(--line-strong);border-radius:20px;background:var(--paper);font-size:12px;color:var(--ink)}
.demo-powered strong{font-weight:600;color:var(--ink)}
.demo-powered .powered-harness{color:var(--muted)}
.powered-dot{width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 3px rgba(236,88,44,.16)}
.demo-player{position:relative;margin:30px 0 0;background:#f4f0e6;box-shadow:0 0 0 1px var(--line-strong),0 24px 60px -28px rgba(21,33,38,.35)}
.demo-player video{display:block;width:100%;height:auto;aspect-ratio:3/2;background:#f4f0e6}
.demo-toggle{position:absolute;right:16px;bottom:20px;display:inline-flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid #cfd3cb;background:rgba(250,248,242,.94);color:var(--ink);font-size:12px;transition:background-color .2s,border-color .2s}
.demo-toggle:hover{background:#fff;border-color:#aeb6b0}
.demo-icon{position:relative;width:9px;height:10px}
.demo-icon::before{content:"";position:absolute;inset:0;background:var(--ink);clip-path:polygon(0 0,100% 50%,0 100%)}
.demo-player.is-playing .demo-icon::before{clip-path:none;right:auto;width:3px;box-shadow:6px 0 0 var(--ink)}
.demo-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(27,35,38,.08)}
.demo-bar{display:block;height:100%;width:100%;background:var(--orange);transform:scaleX(var(--t,0));transform-origin:left}
.demo-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}
.demo-steps button{position:relative;width:100%;height:100%;display:flex;flex-direction:column;gap:6px;text-align:left;padding:16px 14px 16px 0;border:0;background:none;color:var(--muted);font-size:13px;line-height:1.35;transition:color .2s}
.demo-steps button::before{content:"";position:absolute;left:0;right:14px;top:0;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.demo-steps button:hover,.demo-steps button[aria-current="step"]{color:var(--ink)}
.demo-steps button[aria-current="step"]::before{transform:scaleX(1)}
.demo-step-n{font-size:11px;color:var(--orange-ink)}
.demo-note{font-size:12px;color:var(--muted);margin-top:14px}
/* Keep the whole video on screen: the 3:2 player is never taller than the viewport below the header */
.demo-player,.demo-steps,.demo-note{max-width:min(100%,calc((100svh - 136px) * 1.5));margin-left:auto;margin-right:auto}
.demo-player{scroll-margin-top:84px}

/* Questions */
.questions{display:grid;grid-template-columns:1fr 1.5fr;gap:75px;padding-block:88px;border-top:1px solid var(--line)}
.questions>*{max-width:none;margin:0}
.questions h2{font-size:42px;margin-top:22px}
.faq-list{border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line)}
summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 0;font-size:15px;line-height:1.5;cursor:pointer;list-style:none;transition:color .2s}
summary:hover{color:var(--orange-ink)}
summary::-webkit-details-marker{display:none}
.faq-icon{position:relative;flex:none;width:14px;height:14px}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;margin-top:-.75px;background:currentColor;transition:transform .3s var(--ease)}
.faq-icon::after{transform:rotate(90deg)}
details[open] .faq-icon::after{transform:rotate(0)}
details p{font-size:14px;color:var(--muted);padding-bottom:26px;max-width:560px}
details[open] p{animation:panel-in .35s var(--ease) both}

/* Contact */
.contact{display:grid;grid-template-columns:1fr auto;align-items:center;gap:45px;padding-block:88px;background:var(--dark);color:var(--paper)}
.contact>*{max-width:none;margin:0}
.contact .eyebrow{color:#cfbba9}
.contact h2{font-size:clamp(36px,4.2vw,60px);margin-top:24px}
.contact p:not(.eyebrow){font-size:15px;color:var(--dark-muted);margin-top:22px}
.contact-action{display:flex;flex-direction:column;align-items:flex-start}
.contact-action .button{min-width:260px}
.button.light{background:#f3f1e6;color:var(--ink)}
.button.light:hover{background:#f7c3a5}

/* Footer */
footer{padding:30px var(--gutter) 26px;font-size:12px;color:var(--muted)}
.footer-top{display:flex;align-items:center;gap:36px}
.footer-top .brand{font-size:22px;color:var(--ink)}
.footer-top-link{margin-left:auto;color:var(--ink)}
.footer-top-link:hover{color:var(--orange-ink)}
.footer-legal{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font-size:11px;line-height:1.6}
.footer-legal address{font-style:normal;text-align:right}

/* Scroll reveals: everything is visible at rest; when an element scrolls into
   view it gets .in and plays an entrance that starts from hidden (backwards fill) */
@keyframes reveal-in{from{opacity:0;transform:translateY(16px)}}
@keyframes card-in{from{opacity:0;transform:translateY(28px) scale(.97)}}
@keyframes fade-in{from{opacity:0}}
@keyframes draw{from{stroke-dasharray:100;stroke-dashoffset:100}to{stroke-dasharray:100;stroke-dashoffset:0}}
@keyframes bar-grow{from{transform:scaleX(0)}}
@keyframes build-up{from{opacity:0;transform:scaleY(0)}}
.js .reveal.in{animation:reveal-in .7s var(--ease) backwards}
.js .project-card.reveal.in{animation:card-in 1s var(--ease) backwards;transform-origin:50% 100%}
.js .project-card.in>*{animation:reveal-in .7s var(--ease) backwards}
.js .project-card.in>:nth-child(1){animation-delay:.15s}
.js .project-card.in>:nth-child(2){animation-delay:.25s}
.js .project-card.in>:nth-child(3){animation-delay:.4s}
.js .project-card.in>:nth-child(4){animation-delay:.55s}
.js .project-card.in>:nth-child(5){animation-delay:.8s}
.js .specs .spec.in:nth-child(2){animation-delay:.15s}
.js .specs .spec.in:nth-child(3){animation-delay:.3s}
.load-it,.load-overhead{transform-origin:left}
.js .load-bar.in .load-it{animation:bar-grow 1.1s var(--ease) .7s backwards}
.js .load-bar.in .load-overhead{animation:bar-grow 1.1s var(--ease) 1.15s backwards}
.site-map.in .m-land{animation:fade-in .8s var(--ease) .1s backwards}
.site-map.in .m-sea{animation:fade-in 1s var(--ease) .2s backwards}
.site-map.in .m-coast{animation:draw 1.6s var(--ease) .2s backwards}
.site-map.in .m-road{animation:draw 1.4s var(--ease) .7s backwards}
.site-map.in .m-sea-label,.site-map.in .m-north{animation:fade-in .8s var(--ease) 1s backwards}
.site-map.in .m-marker,.site-map.in .m-tirana{animation:map-pop .6s var(--ease) calc(.9s + var(--m) * .15s) backwards}
.site-map.in .m-site{animation:map-pop .7s var(--ease) 1.7s backwards}
.site-map.in .m-halo{animation:fade-in 1.2s var(--ease) 1.8s backwards,halo 4s ease-in-out 3s infinite}
.site-map.in .m-zoom{animation:fade-in .6s var(--ease) 2s backwards,zoom-spin 18s linear 2s infinite}
.site-map.in .campus-card{animation:map-pop .8s var(--ease) 2.1s backwards}
.site-map.in .c-plate,.site-map.in .c-road{animation:fade-in .6s var(--ease) 2.3s backwards}
.site-map.in .c-pond,.site-map.in .c-tree{animation:fade-in .8s var(--ease) 3.4s backwards}
.site-map.in .c-edge{animation:draw 1.4s var(--ease) 2.4s backwards}
.site-map.in .hall{animation:build-up .7s var(--ease) calc(2.6s + var(--b) * .07s) backwards}
.site-map.in .unit{animation:build-up .4s var(--ease) calc(2.9s + var(--b) * .07s) backwards}
.hero-copy>*{animation:rise .8s var(--ease) both}
.hero-copy>:nth-child(2){animation-delay:.06s}
.hero-copy>:nth-child(3){animation-delay:.12s}
.hero-copy>:nth-child(4){animation-delay:.18s}
.hero-copy>:nth-child(5){animation-delay:.24s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* Align full-bleed rows with the centred content column */
.header,.facts,footer{padding-inline:max(var(--gutter),calc((100% - var(--max))/2))}

/* Wide */
@media(min-width:1600px){
  .hero h1{font-size:98px}
  .hero-intro{font-size:26px}
  .hero-description{font-size:17px}
}

/* Tablet */
@media(max-width:1050px){
  .header nav{gap:20px}
  .header nav>a[href="#questions"]{display:none}
  .header nav .nav-cta{margin-left:0}
  .hero h1{font-size:60px}
  .hero-intro{font-size:21px}
  .hero-description{max-width:330px}
  .facts{grid-template-columns:1fr 1fr}
  .fact:nth-child(3){padding-left:0;border-left:0}
  .fact:nth-child(n+3){border-top:1px solid var(--line)}
  .section{padding-block:80px}
  .section-heading{grid-template-columns:.7fr 1.4fr}
  .layer-explorer,.project-grid{gap:32px}
  .layer-name{font-size:24px}
  .project-card{padding:26px}
  .ledger{grid-template-columns:1fr}
  .stack-layer{grid-template-columns:110px minmax(0,1fr) auto;gap:8px 24px}
  .stack-layer p{grid-column:2/3}
  .stack-layer .tag{grid-row:1;grid-column:3}
  .path-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
  .path-steps::before,.path-steps::after{display:none}
  .path-node{top:-26px}
  .site-map{grid-template-columns:1fr;gap:20px}
  .site-map-copy p{max-width:520px}
  .software-layout{gap:40px}
  .questions{gap:40px}
}

/* Mobile */
@media(max-width:760px){
  html{scroll-padding-top:76px}
  .header,.header.scrolled{height:68px}
  .brand{font-size:24px}
  .brand img{width:31px;height:31px}
  .menu{display:flex;align-items:center;gap:12px;border:0;background:transparent;font-size:13px;padding:12px 0 12px 16px}
  .menu-icon{position:relative;width:18px;height:10px}
  .menu-icon i{position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .3s var(--ease),top .3s var(--ease)}
  .menu-icon i:first-child{top:0}
  .menu-icon i:last-child{top:8.5px}
  .menu[aria-expanded="true"] .menu-icon i:first-child{top:4.25px;transform:rotate(45deg)}
  .menu[aria-expanded="true"] .menu-icon i:last-child{top:4.25px;transform:rotate(-45deg)}
  .header nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;padding:10px var(--gutter) 24px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 22px 28px rgba(21,33,38,.08)}
  .header nav.open{display:flex;animation:panel-in .3s var(--ease) both}
  .header nav>a:not(.nav-cta){padding:15px 0;font-size:16px;color:var(--ink);border-bottom:1px solid var(--line)}
  .header nav>a:not(.nav-cta)::after{display:none}
  .header nav>a[href="#questions"]{display:block}
  .header nav .nav-cta{margin-top:16px;padding:15px;text-align:center;font-size:14px}

  .hero{grid-template-columns:1fr;gap:32px;min-height:0;padding:34px var(--gutter) 40px}
  .hero-copy{padding-bottom:0}
  .hero h1{font-size:clamp(42px,10vw,64px);letter-spacing:-.045em;margin-top:24px;white-space:normal}
  .hero-intro{font-size:21px;margin-top:22px}
  .hero-description{font-size:14px;max-width:380px}
  .hero-actions{gap:14px 22px;margin-top:26px}
  .hero-actions .button{gap:18px;font-size:12px}
  .hero-actions .text-link{font-size:12px}
  .hero-art{min-height:0;margin-right:0}
  .foundation{max-height:none;width:calc(100% + 24px);margin:-10px -12px 0}
  .hero-art figcaption{margin-right:0;font-size:10px}
  .labels text{font-size:26px}
  .labels .label-sub{display:none}

  .facts{grid-template-columns:1fr 1fr}
  .fact{padding:22px 0 22px 18px}
  .fact-title{grid-column:1/-1;padding-left:0;border-bottom:1px solid var(--line)}
  .fact:nth-child(3){padding-left:18px;border-left:1px solid var(--line);border-top:0}
  .fact:nth-child(2){padding-left:0;border-left:0}
  .fact:nth-child(4){grid-column:1/-1;padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .fact strong{font-size:15px}
  .fact .fact-figure{font-size:34px}
  .fact-label{font-size:11px}

  .section{padding-block:60px}
  .section-heading{display:block;margin-bottom:32px}
  .section-heading .eyebrow{padding-top:0;margin-bottom:20px}
  h2{font-size:38px;letter-spacing:-.045em}
  .section-heading h2 br{display:none}
  .section-heading>div>p{font-size:14px;margin-top:16px}

  .layer-explorer{grid-template-columns:1fr;gap:22px}
  .layer-explorer{gap:14px}
  .layer-controls button{padding:14px 44px 14px 16px}
  .layer-name{font-size:21px}
  .layer-name small{font-size:11px;margin-top:3px}
  .layer-controls button::after{font-size:18px;right:12px}
  .layer-stage{padding:20px 22px 22px;min-height:0}
  .diagram{max-width:230px;transform:scale(.72);transform-origin:top center;margin-bottom:-28px}
  .layer-panel h3{font-size:21px;margin-top:6px}
  .layer-panel p:not(.eyebrow){font-size:13px;line-height:1.6;margin:8px 0 10px}

  .project-grid{grid-template-columns:1fr;gap:28px}
  .project-card{min-height:0;padding:24px}
  .big-capacity{font-size:118px}
  .big-capacity span{font-size:30px}
  .load-total{margin-left:0;width:100%}
  .project-card-bottom{padding-top:44px;font-size:10px}
  .spec{padding:22px 0}
  .spec h3{font-size:20px}
  .spec p{font-size:13px}
  .ledger{margin-top:36px;gap:12px}
  .stack-layer{grid-template-columns:76px minmax(0,1fr);gap:6px 18px;padding:20px 0}
  .stack-layer h3{font-size:19px}
  .stack-layer p,.stack-layer .tag{grid-column:2;grid-row:auto}
  .stack-layer .tag{justify-self:start}
  .stack-slab{grid-row:1/4;align-self:center;height:16px;box-shadow:6px 6px 0 #1d2e32}
  .stack-layer.is-top .stack-slab{box-shadow:6px 6px 0 #7a3a24}
  .path-steps{grid-template-columns:1fr;row-gap:30px;padding:0 0 0 34px}
  .path-steps::before{display:block;top:6px;bottom:6px;left:7px;right:auto;width:2px;height:auto}
  .path-steps::after{display:none}
  .path-node{top:4px;left:-34px}
  .path-step h3{font-size:19px}
  .path-note{margin-top:30px}
  .site-map{margin-top:36px}
  .site-map-figure .campus-note{display:block}
  .campus-card{position:static;width:auto;box-shadow:none;border-top:1px solid var(--line);padding:14px 16px 12px}
  .campus-art{max-width:420px;margin-inline:auto}
  .site-map-art text{font-size:30px}
  .m-site-name{font-size:32px!important}
  .m-site-sub{display:none}
  .m-sea-label{font-size:32px!important}
  .m-north text{font-size:22px!important}
  .ledger dl{grid-template-columns:1fr}
  .ledger dt{font-size:13px}

  .software-layout{grid-template-columns:1fr;gap:24px;margin-top:24px}
  .software h2{font-size:42px}
  .large-copy{font-size:22px}
  .demo{margin-top:48px;padding-top:24px}
  .demo-head{display:block}
  .demo-head h3{margin-top:14px;font-size:24px}
  .demo-head p:not(.eyebrow){margin-top:8px}
  .demo-head .demo-powered{display:inline-flex;margin-top:12px}
  .demo-player{margin-top:22px}
  .demo-toggle{right:10px;bottom:12px;padding:7px 11px}
  .demo-steps{display:flex;overflow-x:auto;scrollbar-width:none}
  .demo-steps li{flex:0 0 44%}
  .demo-steps button{font-size:12px}

  .questions{grid-template-columns:1fr;gap:28px}
  .questions h2{font-size:36px}
  .questions h2 br{display:none}
  summary{font-size:14px;padding:22px 0}
  details p{font-size:13px}

  .contact{grid-template-columns:1fr;gap:34px}
  .contact h2{font-size:40px}
  .contact p:not(.eyebrow){font-size:14px}
  .contact p br{display:none}
  .contact-action{min-width:0}

  footer{flex-wrap:wrap;gap:14px 24px;padding:28px var(--gutter);font-size:11px}
  .footer-top{flex-wrap:wrap;gap:14px 24px}
  .footer-top .brand{width:100%}
  .footer-legal{flex-direction:column;gap:6px}
  .footer-legal address{text-align:left}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .js .reveal{opacity:1;transform:none}
  .js .load-it,.js .load-overhead{transform:none}
  .route{stroke-dashoffset:0}
  .node,.label{opacity:1}
  .peek{transition:none}
  .path-step.is-current .path-node{animation:none}
  .js .site-map *{opacity:1!important;stroke-dashoffset:0!important}
  .js .site-map .hall,.js .site-map .unit,.js .site-map .campus-card{transform:none!important}
  .m-sea{opacity:.55!important}
  .pulse{display:none}
}
