/* Avores Defence – prototype v4 "briefing" stylesheet (static, no build step) */
@font-face{font-family:"Inter";src:url("../fonts/inter.woff2") format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Oswald";src:url("../fonts/oswald.woff2") format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrains-mono.woff2") format("woff2");font-weight:400 600;font-display:swap}

:root{
  --bg:#08090a; --bg-1:#0c0e0f; --bg-2:#111315; --bg-3:#171a1c;
  --line:rgba(226,230,224,.08); --line-2:rgba(226,230,224,.14); --line-3:rgba(226,230,224,.26);
  --text:#f1f0ea; --body:#c9cbc5; --dim:#9a9e98; --dim-2:#80857f;
  --gold:#be996b; --gold-hi:#d9bd92; --teal:#8fb0aa; --alert:#e0533f; --ph:#f2c94c;
  --max:1312px; --pad:clamp(20px,4vw,64px); --gut:24px;
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px; --s7:96px; --s8:128px;
  --r:2px;
  --f-disp:"Oswald","Arial Narrow",system-ui,sans-serif; --f-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif; --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html,body{overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--body);font:400 17px/1.65 var(--f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p{margin:0 0 1em;max-width:70ch}
::selection{background:var(--gold);color:#000}
:focus-visible{outline:1px solid var(--gold-hi);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--f-disp);font-weight:500;text-transform:uppercase;letter-spacing:.01em;line-height:1.02;margin:0 0 .5em;color:var(--text);text-wrap:balance}
h1{font-size:clamp(2.75rem,5.4vw,5.25rem);line-height:.98;letter-spacing:0}
h2{font-size:clamp(2rem,3.4vw,3.25rem)}
h3{font-size:clamp(1.4rem,1.7vw,1.7rem);line-height:1.1}
h4{font-size:1.15rem;letter-spacing:.03em;line-height:1.2}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.mono{font-family:var(--f-mono);letter-spacing:.02em}
.lbl,.meta{display:inline-flex;align-items:center;flex-wrap:wrap;gap:10px;font:500 .72rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.lbl b,.meta b{color:var(--gold-hi);font-weight:500}
.lead{font-size:clamp(1.06rem,1.25vw,1.2rem);line-height:1.62;color:#d6d7d1;max-width:62ch;text-wrap:pretty}
.dim{color:var(--dim)} .small{font-size:.875rem}

/* Intro (≤1.2 s, once per session, CSS-driven so it can never block) */
#intro{position:fixed;inset:0;z-index:600;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;animation:introOut .35s ease .85s forwards;cursor:pointer}
#intro img{height:58px;width:auto;opacity:0;animation:introIn .5s ease .05s forwards}
#intro .l{font:500 .7rem/1.4 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);opacity:0;animation:introIn .5s ease .25s forwards;text-align:center;padding:0 24px}
#intro .l b{color:var(--gold-hi);font-weight:500}
#intro .rule{width:120px;height:1px;background:var(--line-3);position:relative;overflow:hidden}
#intro .rule::after{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:left;animation:introRule .7s var(--ease) .15s forwards}
@keyframes introIn{to{opacity:1}} @keyframes introRule{to{transform:none}}
@keyframes introOut{to{opacity:0;visibility:hidden}}
.noboot #intro{display:none}

/* Prototype ribbon */
.proto-ribbon{position:fixed;z-index:210;left:0;bottom:0;display:flex;align-items:center;gap:10px;background:rgba(8,9,10,.94);backdrop-filter:blur(8px);border:1px solid var(--line-2);border-left:0;border-bottom:0;padding:8px 12px 8px 14px;font:500 .64rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#f3d27a}
.proto-ribbon .dot{width:6px;height:6px;border-radius:50%;background:var(--ph)}
.proto-ribbon a,.proto-ribbon button{font:inherit;color:#b9bdb6;background:none;border:0;padding:0 0 0 10px;border-left:1px solid var(--line-2);cursor:pointer;letter-spacing:.1em;text-transform:uppercase}
.proto-ribbon a:hover,.proto-ribbon button:hover{color:var(--text)}

/* Placeholders + legal flags */
.ph{background:rgba(242,201,76,.13);color:inherit;border-bottom:1px dashed var(--ph);padding:0 4px;border-radius:var(--r)}
body.hide-ph .ph{background:none;border-bottom:0;padding:0}
.legal-flag{display:flex;gap:14px;align-items:flex-start;border:1px solid rgba(224,83,63,.45);background:rgba(224,83,63,.06);color:#f3d4ce;padding:16px 18px;font-size:.9rem;line-height:1.55;margin:0 0 32px;border-radius:var(--r)}
.legal-flag strong{color:#ff9a89;letter-spacing:.12em;text-transform:uppercase;font:500 .68rem/1.4 var(--f-mono);display:block;margin-bottom:4px}
.legal-flag svg{flex:none;margin-top:2px}
body.hide-ph .legal-flag{display:none}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .4s var(--ease),border-color .4s;border-bottom:1px solid transparent;background:linear-gradient(180deg,rgba(8,9,10,.85),rgba(8,9,10,0))}
.site-header.solid{background:rgba(8,9,10,.9);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:80px;transition:height .4s var(--ease)}
.site-header.solid .nav{height:64px}
.brand{display:flex;align-items:center;gap:16px}
.brand img{height:40px;width:auto;transition:height .4s var(--ease)}
.site-header.solid .brand img{height:34px}
.brand-txt{display:flex;flex-direction:column;border-left:1px solid var(--line-2);padding-left:16px;font:500 .64rem/1.5 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.brand-txt b{color:var(--text);font-weight:500}
.menu{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.menu a{font:500 .74rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#c6c9c2;padding:12px 14px;position:relative;transition:color .2s}
.menu a::before{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.menu a:hover,.menu a.active{color:#fff}
.menu a:hover::before,.menu a.active::before{transform:scaleX(1)}
.menu .btn{margin-left:14px}
.menu .btn::before{display:none}
.burger{display:none;background:none;border:1px solid var(--line-2);border-radius:var(--r);color:var(--text);width:44px;height:44px;cursor:pointer;align-items:center;justify-content:center}

/* Buttons – one system */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:52px;padding:0 24px;font:500 .74rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid transparent;border-radius:var(--r);cursor:pointer;white-space:nowrap;transition:background .25s,border-color .25s,color .25s}
.btn svg{transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-gold{background:var(--gold);color:#0b0b0a;border-color:var(--gold)}
.btn-gold:hover{background:var(--gold-hi);border-color:var(--gold-hi)}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--line-3)}
.btn-ghost:hover{border-color:var(--gold);background:rgba(190,153,107,.06)}
.menu .btn{height:42px;padding:0 16px}
.btns{display:flex;gap:12px;flex-wrap:wrap}

/* Badges (replace stamps) */
.badge{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border:1px solid rgba(190,153,107,.42);background:rgba(190,153,107,.07);color:var(--gold-hi);border-radius:var(--r);font:500 .68rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.badge svg{width:14px;height:14px;flex:none}
.badge.teal{border-color:rgba(143,176,170,.42);background:rgba(143,176,170,.07);color:#b9d1cc}
.badges{display:flex;gap:10px;flex-wrap:wrap}

/* corner brackets (thin, subtle) */
.brk{position:relative}
.brk::before,.brk::after{content:"";position:absolute;width:10px;height:10px;border:1px solid rgba(190,153,107,.7);pointer-events:none;z-index:3}
.brk::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.brk::after{bottom:-1px;right:-1px;border-left:0;border-top:0}

/* HERO – image right, text on solid dark left; no text over busy imagery */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;background:var(--bg);padding:140px 0 var(--s7)}
.hero-media{position:absolute;top:0;bottom:0;right:0;left:34%;z-index:-2;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%)}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:.85;animation:kb 40s linear forwards;transform-origin:60% 50%}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.07)}}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,var(--bg) 0,rgba(8,9,10,0) 28%),linear-gradient(180deg,rgba(8,9,10,.75) 0,rgba(8,9,10,0) 22%)}
.hero .gridlines{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/calc(100%/12) 100%;opacity:.5;-webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent)}
.hero-inner{position:relative;width:100%}
.hero-copy{max-width:min(660px,52%)}
.hero .meta{margin-bottom:var(--s4)}
.hero h1{margin-bottom:var(--s3)}
.hero h1 .acc{color:var(--gold-hi)}
.hero .lead{margin:0 0 var(--s5)}
.hero .caption{position:absolute;right:var(--pad);bottom:var(--s7);text-align:right;font:500 .64rem/1.6 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#b4b8b1;background:rgba(8,9,10,.78);border:1px solid var(--line);padding:8px 12px;border-radius:var(--r)}
.hero .caption b{color:var(--gold-hi);font-weight:500}
.hero .frame{position:absolute;inset:104px var(--pad) 40px;pointer-events:none;z-index:0}
.frame i{position:absolute;width:16px;height:16px;border:1px solid rgba(226,230,224,.28)}
.frame i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0}.frame i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0}
.frame i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0}.frame i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0}

/* Licence strip */
.licence{background:var(--bg-1);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line)}
.licence .wrap{display:grid;grid-template-columns:repeat(4,1fr) auto;align-items:stretch}
.licence .c{padding:var(--s4) var(--s3) var(--s4) 0}
.licence .c+.c{padding-left:var(--s3);border-left:1px solid var(--line)}
.licence .k{font:500 .66rem/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:12px}
.licence .v{font:500 clamp(1rem,1.35vw,1.3rem)/1.2 var(--f-mono);color:#fff;white-space:nowrap}
.licence .v.txt{font:500 clamp(.98rem,1.15vw,1.1rem)/1.3 var(--f-body);white-space:normal}
.licence .sub{font:400 .75rem/1.4 var(--f-body);color:var(--dim);margin-top:8px}
.licence .c.st{display:flex;align-items:center;justify-content:flex-end}

/* Sections */
section{position:relative}
.sec{padding:var(--s8) 0}
.sec-tight{padding:var(--s7) 0}
.alt{background:var(--bg-1)}
.bt{border-top:1px solid var(--line)}
.sec+.sec,.licence+.sec{border-top:1px solid var(--line)}
.idx{display:flex;align-items:center;gap:16px;font:500 .72rem/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:var(--s5)}
.idx b{color:var(--gold-hi);font-weight:500}
.idx::after{content:"";flex:1;height:1px;background:var(--line-2)}
.shead{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gut);align-items:end;margin-bottom:var(--s6)}
.shead h2{grid-column:1/8;margin:0}
.shead .lead{grid-column:8/13;margin:0}
.split2{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gut);align-items:start}
.split2>*{min-width:0}
.split2 .a{grid-column:1/6} .split2 .b{grid-column:7/13} .split2.mid{align-items:center}
.split2 .a h2{margin-bottom:var(--s3)}
.statement p{font-size:1.04rem;color:var(--body)}
.statement p:first-child{font-size:clamp(1.12rem,1.4vw,1.3rem);line-height:1.6;color:var(--text)}
.statement strong{color:var(--gold-hi);font-weight:600}
.panel{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:clamp(28px,3.4vw,48px)}

/* Capability cards – equal heights */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gut)}
.card{display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .3s,background .3s}
.card:hover{border-color:rgba(190,153,107,.45);background:#131618}
.card .media{aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--line);background:#000}
.card .media img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) brightness(.9);transition:transform 1.2s var(--ease)}
.card:hover .media img{transform:scale(1.03)}
.card .body{padding:var(--s4);display:flex;flex-direction:column;flex:1}
.card .k{font:500 .68rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:var(--s2);display:flex;justify-content:space-between}
.card .k span{color:var(--dim)}
.card h3{margin-bottom:12px}
.card p{font-size:.97rem;color:var(--body)}
.card ul{list-style:none;padding:0;margin:var(--s1) 0 var(--s4);display:flex;flex-wrap:wrap;gap:8px}
.card li{font:500 .66rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#c4c7c0;border:1px solid var(--line-2);padding:8px 10px;border-radius:var(--r)}
.card .go{margin-top:auto;display:inline-flex;gap:10px;align-items:center;font:500 .72rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi);padding-top:var(--s3);border-top:1px solid var(--line)}
.card .go svg{transition:transform .3s var(--ease)} .card:hover .go svg{transform:translateX(4px)}

/* Process */
.process{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line-2);position:relative}
.process::before{content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:var(--gold);transition:width 1.8s var(--ease)}
.process.in::before{width:100%}
.step{padding:var(--s4) var(--s3) var(--s1) 0;position:relative}
.step+.step{padding-left:var(--s3);border-left:1px solid var(--line)}
.step .n{font:500 .68rem/1 var(--f-mono);letter-spacing:.14em;color:var(--gold-hi);margin-bottom:var(--s4);text-transform:uppercase;display:flex;gap:10px}
.step .big{display:none}
.step h4{font-size:1.2rem;margin-bottom:10px}
.step p{font-size:.94rem;color:var(--body);margin:0}

/* Pillars / compliance */
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut)}
.pillar{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4);transition:border-color .3s}
.pillar:hover{border-color:rgba(190,153,107,.45)}
.pillar .pk{font:500 .66rem/1 var(--f-mono);letter-spacing:.14em;color:var(--dim);margin-bottom:var(--s3);display:flex;justify-content:space-between;align-items:center}
.pillar .pk svg{color:var(--gold-hi)}
.pillar h4{margin-bottom:10px}
.pillar p{font-size:.94rem;color:var(--body);margin:0}

/* Map */
.mapbox{position:relative;border:1px solid var(--line-2);border-radius:var(--r);background:radial-gradient(60% 70% at 52% 48%,rgba(143,176,170,.06),transparent 70%),#0a0c0d;overflow:hidden}
.mapbox .dots{display:block;width:100%;height:auto;opacity:.8}
.mapbox .routes{position:absolute;inset:0;width:100%;height:100%}
.routes .grat{stroke:rgba(226,230,224,.05);stroke-width:1}
.routes .route{fill:none;stroke:var(--gold-hi);stroke-width:1.6;stroke-dasharray:1;stroke-dashoffset:1;opacity:.85}
.mapbox.in .route{animation:draw 2.4s var(--ease) forwards;animation-delay:calc(.3s + var(--i) * .25s)}
@keyframes draw{to{stroke-dashoffset:0}}
.routes .node{opacity:0}
.mapbox.in .node{animation:fade .8s forwards;animation-delay:calc(1.6s + var(--i) * .25s)}
@keyframes fade{to{opacity:1}}
.routes .node circle{fill:#a9c6c0}
.routes .node .ring{fill:none;stroke:#a9c6c0;stroke-opacity:.35}
.routes text{font:500 19px var(--f-mono);letter-spacing:.14em;fill:#e6e8e1}
.routes text.code{font-size:14px;fill:var(--gold-hi);letter-spacing:.16em}
.routes .origin circle{fill:var(--gold-hi)}
.routes .origin .pulse{fill:none;stroke:var(--gold-hi);stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:pulse 4s ease-out infinite}
.routes .origin .p2{display:none}
@keyframes pulse{0%{transform:scale(.3);opacity:.8}100%{transform:scale(1.8);opacity:0}}
.routes .xh{stroke:var(--gold-hi);stroke-width:1.2}
.routes .olbl{font-size:21px;fill:#fff;font-weight:600}
.mapcap{display:flex;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s2);font:500 .68rem/1.6 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.mapcap b{color:var(--gold-hi);font-weight:500}

/* figures – caption below the image, never over it */
.figure{margin:0}
.figure .im{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:#000}
.figure.tall .im{aspect-ratio:4/5}
.figure img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.figure figcaption{display:flex;justify-content:space-between;gap:16px;padding-top:12px;font:500 .66rem/1.5 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.figure figcaption b{color:var(--gold-hi);font-weight:500}

/* tables */
.kv{width:100%;border-collapse:collapse;font-size:.97rem}
.kv th,.kv td{text-align:left;padding:16px 0;border-bottom:1px solid var(--line);vertical-align:top}
.kv tr:first-child th,.kv tr:first-child td{border-top:1px solid var(--line-2)}
.kv th{width:40%;font:500 .66rem/1.6 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding-right:24px;padding-top:18px}
.kv td{color:#fff;font-weight:500}
.kv td.mono{color:var(--gold-hi)}

/* Org chart */
.org{display:flex;flex-direction:column;align-items:center}
.node{border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2);padding:var(--s3);text-align:center;min-width:300px;position:relative}
.node .t{font:500 .64rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:12px}
.node .n{font:500 1.35rem/1.1 var(--f-disp);text-transform:uppercase;color:var(--text);letter-spacing:.02em}
.node .d{font-size:.86rem;color:var(--body);margin-top:10px}
.node.main{border-color:rgba(190,153,107,.6);background:linear-gradient(180deg,rgba(190,153,107,.1),rgba(190,153,107,.02))}
.org .vl{width:1px;height:48px;background:var(--line-3)}
.org .row{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut);position:relative;padding-top:48px;width:100%;max-width:880px}
.org .row::before{content:"";position:absolute;top:0;left:25%;right:25%;height:1px;background:var(--line-3)}
.org .row>div{position:relative;display:flex}
.org .row>div::before{content:"";position:absolute;top:-48px;left:50%;width:1px;height:48px;background:var(--line-3)}
.org .row .node{width:100%}

/* cells */
.cells{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gut)}
.cells.c2{grid-template-columns:repeat(2,1fr)}
.cell{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-2);padding:var(--s4);transition:border-color .3s}
.cell:hover{border-color:rgba(190,153,107,.4)}
.cell .k{font:500 .66rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:var(--s4);display:flex;justify-content:space-between}
.cell .k span{color:var(--dim)}
.cell h4{font-size:1.3rem;margin-bottom:12px}
.cell p{font-size:.95rem;color:var(--body);margin:0}
.ticks{list-style:none;padding:0;margin:0;border-top:1px solid var(--line-2)}
.ticks li{display:grid;grid-template-columns:48px 1fr;gap:8px;padding:18px 0;border-bottom:1px solid var(--line);font-size:1rem;color:#dcddd6;align-items:baseline}
.ticks li .i{font:500 .68rem/1 var(--f-mono);color:var(--gold-hi);letter-spacing:.1em}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.chips li{border:1px solid var(--line-2);border-radius:var(--r);padding:13px 16px;font:500 .74rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#d8dad3}
.notice{border-left:1px solid var(--gold);padding:4px 0 4px 20px;color:var(--body);font-size:.95rem;margin:var(--s4) 0 0}
.notice.strong{color:var(--text);font-weight:500}

/* Page hero – same rule as home: image right, faded; text on dark */
.page-hero{position:relative;min-height:68vh;display:flex;align-items:flex-end;padding:180px 0 var(--s7);overflow:hidden;isolation:isolate;background:var(--bg);border-bottom:1px solid var(--line)}
.page-hero .bg{position:absolute;top:0;bottom:0;right:0;left:40%;z-index:-2;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 45%);mask-image:linear-gradient(90deg,transparent 0,#000 45%)}
.page-hero .bg img{width:100%;height:100%;object-fit:cover;opacity:.6;filter:saturate(.8);animation:kb 40s linear forwards}
.page-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,var(--bg) 0,rgba(8,9,10,0) 40%),linear-gradient(180deg,rgba(8,9,10,.8) 0,rgba(8,9,10,0) 30%)}
.page-hero.noimg::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(800px 460px at 82% 20%,rgba(143,176,170,.08),transparent 60%),var(--bg)}
.page-hero .wrap>*{max-width:min(760px,58%)}
.page-hero h1{font-size:clamp(2.5rem,4.8vw,4.5rem)}
.page-hero .lead{margin:0}
.crumbs{font:500 .68rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:var(--s4)}
.crumbs a:hover{color:var(--text)} .crumbs span{margin:0 10px;color:var(--gold)}
.page-hero .lbl{margin-bottom:var(--s3)}
.page-hero .fileid{display:none}
.ph-idx{position:absolute;right:var(--pad);bottom:40px;font:500 clamp(6rem,16vw,14rem)/.8 var(--f-disp);color:transparent;-webkit-text-stroke:1px var(--line-2);z-index:-1}

/* Products */
.products{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut)}
.product{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;overflow:hidden;transition:border-color .3s}
.product:hover{border-color:rgba(190,153,107,.45)}
.product .hdr{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px var(--s3);border-bottom:1px solid var(--line);font:500 .64rem/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.product .hdr b{color:var(--gold-hi);font-weight:500}
.product .art{height:clamp(240px,23vw,300px);display:flex;align-items:center;justify-content:center;color:#cdd8d3;border-bottom:1px solid var(--line);background:linear-gradient(rgba(226,230,224,.035) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,rgba(226,230,224,.035) 1px,transparent 1px) 0 0/24px 24px,#0b0d0e}
.product .art svg{width:72%;max-width:400px;height:auto}
.product .body{padding:var(--s4);display:flex;flex-direction:column;flex:1}
.product .role{font:500 .68rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:var(--s2);display:flex;justify-content:space-between;align-items:center;gap:12px}
.product h3{font-size:clamp(1.8rem,2.6vw,2.4rem)}
.product p{color:var(--body);font-size:.97rem}
.spec{margin-top:auto;padding-top:var(--s1)}
.spec table{width:100%;border-collapse:collapse;font-size:.88rem}
.spec td{padding:12px 0;border-top:1px solid var(--line);vertical-align:baseline}
.spec td:first-child{color:var(--dim);font:500 .66rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;width:48%}
.spec td:last-child{color:#fff;text-align:right;font-family:var(--f-mono);font-size:.84rem}
.spec .ind{font:400 .7rem/1.5 var(--f-body);color:var(--dim);border-top:1px solid var(--line);padding-top:12px}

/* Compliance doc – sober */
.doc-wrap{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(40px,7vw,96px)}
.toc{position:sticky;top:96px;align-self:start}
.toc .t{font:500 .66rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:16px}
.toc a{display:flex;gap:14px;padding:11px 0;border-top:1px solid var(--line);color:var(--body);font-size:.9rem}
.toc a span{font-family:var(--f-mono);font-size:.72rem;color:var(--dim);padding-top:2px}
.toc a:hover{color:#fff}
.doc{max-width:760px}
.doc .docbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-top:1px solid var(--gold);border-bottom:1px solid var(--line);padding:12px 0;margin-bottom:var(--s4);font:500 .66rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.doc .docbar b{color:var(--text);font-weight:500}
.doc .intro{font:400 clamp(1.12rem,1.5vw,1.3rem)/1.6 var(--f-body);color:#fff;margin-bottom:var(--s4)}
.doc h3{margin:var(--s5) 0 14px;font-size:clamp(1.25rem,1.6vw,1.5rem);display:flex;gap:16px;align-items:baseline;padding-top:var(--s3);border-top:1px solid var(--line);text-transform:none;font-family:var(--f-body);font-weight:600;letter-spacing:-.01em}
.doc h3 .n{font:500 .72rem/1 var(--f-mono);color:var(--gold-hi);letter-spacing:.12em;min-width:28px}
.doc p{color:#d9dad3;font-size:1.03rem;line-height:1.72}

/* Contact */
.office{border:1px solid var(--line);border-radius:var(--r);padding:var(--s4);background:var(--bg-2);margin-bottom:var(--gut)}
.office .k{font:500 .66rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:16px}
.office h3{font-size:1.55rem;margin-bottom:6px}
.office dl{margin:20px 0 0;display:grid;grid-template-columns:110px minmax(0,1fr);font-size:.95rem}
.office dt,.office dd{padding:12px 0;border-top:1px solid var(--line);margin:0}
.office dd{overflow-wrap:anywhere}
.office dt{font:500 .64rem/1.9 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
form.enquiry{border:1px solid var(--line-2);border-radius:var(--r);padding:clamp(24px,3.4vw,48px);background:var(--bg-2)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-top:var(--s4)}
.fgrid>*{min-width:0}
.field{display:flex;flex-direction:column;gap:10px}
.field.full{grid-column:1/-1}
.field label{font:500 .66rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;color:var(--text);background:rgba(255,255,255,.02);border:1px solid var(--line-2);border-radius:var(--r);padding:12px 14px}
.field input::placeholder,.field textarea::placeholder{color:#7d827c}
.field select{appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23be996b' fill='none' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 14px center,rgba(255,255,255,.02)}
.field select option{background:#111315}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--gold)}
.check{display:flex;gap:14px;align-items:flex-start;font-size:.9rem;color:var(--body);grid-column:1/-1}
.check input{margin-top:3px;accent-color:var(--gold);width:16px;height:16px;flex:none}
.form-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:var(--s4);flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);opacity:0;background:var(--text);color:#111;padding:16px 22px;border-radius:var(--r);font:500 .8rem/1.3 var(--f-mono);z-index:300;pointer-events:none;transition:all .4s var(--ease)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* CTA – text panel + separate image column */
.cta{display:grid;grid-template-columns:repeat(12,1fr);border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--bg-2)}
.cta .txt{grid-column:1/7;padding:clamp(36px,5vw,72px)}
.cta .media{grid-column:7/13;position:relative;min-height:360px;border-left:1px solid var(--line)}
.cta .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}
.cta h2{margin-bottom:var(--s3)}
.cta .btns{margin-top:var(--s5)}

/* Footer */
.site-footer{background:#050606;border-top:1px solid var(--line);padding:var(--s7) 0 0;font-size:.93rem;color:var(--dim);overflow:hidden}
.fcols{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:clamp(28px,4vw,56px);padding-bottom:var(--s6)}
.fcols h5{font:500 .66rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:0 0 22px}
.fcols ul{list-style:none;padding:0;margin:0}
.fcols li{padding:6px 0;color:#c9cbc4;overflow-wrap:anywhere}
.fcols a:hover{color:var(--gold-hi)}
.f-intro{font:500 clamp(1.25rem,1.7vw,1.6rem)/1.2 var(--f-disp);text-transform:uppercase;letter-spacing:.02em;color:var(--text);max-width:24ch;margin-bottom:var(--s3)}
.wordmark{font:600 clamp(4rem,18vw,17rem)/.8 var(--f-disp);letter-spacing:.04em;color:transparent;-webkit-text-stroke:1px rgba(236,235,228,.08);white-space:nowrap;margin:0 0 -.04em;user-select:none;text-align:center}
.legal-block{border-top:1px solid var(--line);padding:var(--s3) 0 var(--s5);display:grid;grid-template-columns:1fr auto;gap:30px;font-size:.82rem;line-height:1.75;color:var(--dim);overflow-wrap:anywhere}
.legal-block .mono{color:#b8bbb4}
.legal-block a{color:#b8bbb4;text-decoration:underline;text-decoration-color:var(--line-3);text-underline-offset:3px}

/* Notes page */
.fixlist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--gut)}
.fixlist li{border:1px solid var(--line);border-radius:var(--r);padding:var(--s3);background:var(--bg-2);font-size:.94rem;color:#cfd1ca}
.fixlist li b{display:block;color:#fff;margin-bottom:6px;font:500 1.1rem/1.2 var(--f-disp);text-transform:uppercase;letter-spacing:.03em}
.fixlist li .was{display:block;color:var(--dim);font-size:.8rem;margin-top:10px;font-family:var(--f-mono)}
table.ph-table{width:100%;border-collapse:collapse;font-size:.92rem}
table.ph-table th,table.ph-table td{text-align:left;padding:13px 16px 13px 0;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
table.ph-table th{font:500 .64rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}

/* Reveal – calm fade/slide */
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.d1{transition-delay:.08s!important}.d2{transition-delay:.16s!important}.d3{transition-delay:.24s!important}.d4{transition-delay:.32s!important}.d5{transition-delay:.4s!important}
@media (prefers-reduced-motion:reduce){
  .js .rv{opacity:1!important;transform:none!important;transition:none!important}
  .hero-media img,.page-hero .bg img,.routes .pulse{animation:none!important}
  .mapbox .route{stroke-dashoffset:0!important;animation:none!important}.mapbox .node{opacity:1!important;animation:none!important}
  .process::before{width:100%;transition:none}
  #intro{display:none}
  html{scroll-behavior:auto}
}

/* Responsive: 1180 / 1024 / 900 / 700 / 560 */
@media (max-width:1180px){
  .brand-txt{display:none} .menu a{padding:12px 10px}
  .fcols{grid-template-columns:1fr 1fr}
  .doc-wrap{grid-template-columns:1fr}.toc{display:none}
  .licence .wrap{grid-template-columns:repeat(4,1fr)}
  .licence .c.st{grid-column:1/-1;justify-content:flex-start;border-left:0;padding:0 0 var(--s3);margin-top:-8px}
  .process{grid-template-columns:repeat(3,1fr)}
  .process .step:nth-child(4){padding-left:0;border-left:0}
  .process .step:nth-child(n+4){border-top:1px solid var(--line)}
}
@media (max-width:1024px){
  .hero-copy{max-width:60%}
  .hero-media{left:36%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 50%);mask-image:linear-gradient(90deg,transparent 0,#000 50%)}
  .hero-media img{opacity:.7}
  .cards3{grid-template-columns:1fr 1fr}
  .cards3 .card:first-child{grid-column:1/-1;flex-direction:row}
  .cards3 .card:first-child .media{aspect-ratio:auto;width:50%;flex:none;border-bottom:0;border-right:1px solid var(--line)}
  .shead h2{grid-column:1/-1}.shead .lead{grid-column:1/-1}
  .shead{gap:var(--s3)}
  .pillars{grid-template-columns:1fr 1fr}
  .split2 .a{grid-column:1/-1}.split2 .b{grid-column:1/-1}
  .split2{gap:var(--s5)}
  .cells{grid-template-columns:1fr 1fr}
  .cta .txt{grid-column:1/8}.cta .media{grid-column:8/13}
}
@media (max-width:900px){
  .burger{display:inline-flex}
  .menu{position:fixed;left:0;right:0;top:64px;flex-direction:column;align-items:stretch;gap:0;background:rgba(8,9,10,.98);border-bottom:1px solid var(--line);padding:8px var(--pad) 24px;transform:translateY(-10px);opacity:0;pointer-events:none;transition:all .35s var(--ease)}
  .menu.open{opacity:1;transform:none;pointer-events:auto}
  .menu li a{display:block;padding:18px 0;border-bottom:1px solid var(--line);font-size:.8rem}
  .menu a::before{display:none}
  .menu .btn{margin:20px 0 0;width:100%}
  .nav,.site-header.solid .nav{height:64px}
  .brand img,.site-header.solid .brand img{height:32px}
  .site-header{background:rgba(8,9,10,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--line)}
  .sec{padding:var(--s7) 0}
  .hero{display:block;padding:0 0 var(--s6);min-height:0}
  .hero-media{position:relative;left:auto;right:auto;height:min(52vh,420px);-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}
  .hero-media img{opacity:.8}
  .hero::after,.hero .gridlines,.hero .frame{display:none}
  .hero-copy{max-width:none;margin-top:-40px;position:relative}
  .hero .caption{position:absolute;top:76px;right:var(--pad);bottom:auto;font-size:.58rem}
  .page-hero{display:block;min-height:0;padding:0 0 var(--s6)}
  .page-hero .bg{position:relative;left:auto;height:260px;-webkit-mask-image:linear-gradient(180deg,#000 45%,transparent);mask-image:linear-gradient(180deg,#000 45%,transparent)}
  .page-hero.noimg{padding-top:140px}
  .page-hero::after{display:none}
  .page-hero .wrap>*{max-width:none}
  .page-hero .crumbs{margin-top:-24px;position:relative}
  .pillars,.products,.fixlist,.cells,.cells.c2,.cards3{grid-template-columns:1fr}
  .cards3 .card:first-child{flex-direction:column}
  .cards3 .card:first-child .media{width:100%;aspect-ratio:16/10;border-right:0;border-bottom:1px solid var(--line)}
  .process{grid-template-columns:1fr 1fr}
  .process .step:nth-child(odd){padding-left:0;border-left:0}
  .process .step:nth-child(even){padding-left:var(--s3);border-left:1px solid var(--line)}
  .process .step:nth-child(n+3){border-top:1px solid var(--line)}
  .org .row{grid-template-columns:1fr;padding-top:0;gap:var(--s2)}
  .org .row::before,.org .row>div::before{display:none}
  .org .vl{height:24px}
  .node{min-width:0;width:100%}
  .fgrid{grid-template-columns:1fr}
  .legal-block{grid-template-columns:1fr}
  .licence .wrap{grid-template-columns:1fr 1fr}
  .licence .c{padding:var(--s3) var(--s2) var(--s3) 0}
  .licence .c+.c{padding-left:var(--s2)}
  .licence .c:nth-child(odd){padding-left:0;border-left:0}
  .licence .c:nth-child(n+3){border-top:1px solid var(--line)}
  .licence .c.st{padding:var(--s3) 0;margin:0;border-top:1px solid var(--line)}
  .cta{grid-template-columns:1fr}
  .cta .txt,.cta .media{grid-column:1/-1}
  .cta .media{order:-1;min-height:220px;border-left:0;border-bottom:1px solid var(--line)}
  .proto-ribbon{padding:7px 10px;gap:8px;font-size:.56rem;letter-spacing:.08em}
  .proto-ribbon a{display:none}
  .mapbox{aspect-ratio:4/3}
  .mapbox .dots{position:absolute;top:4%;left:-19%;width:138%;max-width:none}
  .mapbox .routes{inset:auto;top:4%;left:-19%;width:138%;height:auto}
}
@media (max-width:560px){
  body{font-size:16px}
  h1{font-size:clamp(2.4rem,11.5vw,3.4rem)}
  .page-hero h1{font-size:clamp(2.1rem,10vw,3rem)}
  h2{font-size:clamp(1.9rem,8.6vw,2.5rem)}
  .fcols{grid-template-columns:1fr}
  .process{grid-template-columns:1fr}
  .process .step,.process .step:nth-child(even){padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .process .step:first-child{border-top:0}
  .step .n{margin-bottom:var(--s2)}
  .btns .btn{flex:1 1 100%;justify-content:space-between}
  .licence .v{font-size:.95rem;white-space:normal}
  .licence .k{font-size:.6rem;letter-spacing:.1em}
  .office dl{grid-template-columns:96px minmax(0,1fr)}
  .routes text{font-size:28px}.routes text.code{font-size:19px}.routes .olbl{font-size:26px}
  .product .hdr{flex-direction:column;align-items:flex-start;gap:6px}
  .mapcap{flex-direction:column;gap:4px}
}
.split2.fig .a{grid-column:1/7}.split2.fig .b{grid-column:8/13}
.figure figcaption span:first-child{white-space:nowrap}
.figure figcaption span:last-child{text-align:right}
@media (max-width:1024px){.split2.fig .a,.split2.fig .b{grid-column:1/-1}}
.menu a.btn-gold,.menu a.btn-gold:hover{color:#0b0b0a}
@media (max-width:1024px){
  .split2,.shead{grid-template-columns:minmax(0,1fr)}
  .split2 .a,.split2 .b,.split2.fig .a,.split2.fig .b,.shead h2,.shead .lead{grid-column:1/-1}
}
@media (max-width:900px){.cta{grid-template-columns:minmax(0,1fr)}}
