/* Fonts, hosted locally (Sora for headings, DM Sans for body) */
@font-face{font-family:'Sora';font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/fonts/sora-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Sora';font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/fonts/sora-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/fonts/dm-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Sans';font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/fonts/dm-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Concept: one living particle field behind every page. On the home page it tells the transformation story as you scroll
   (scattered → connected → structured → global → recognised → rising → lasting). Type stays in HFC cream and gold. */
:root{
  --void:#050A16; --panel:rgba(9,16,36,.80); --panel-2:rgba(16,28,56,.72); --line:rgba(245,241,232,.11); --line-2:rgba(245,241,232,.2);
  --cream:#F5F1E8; --text:#CDD3E0; --mist:#9EA8BE; --gold:#D6A942; --gold-2:#EBC56A; --on-gold:#1A1303;
  --gt:#EBC56A; --chip:rgba(245,241,232,.07); --field:rgba(5,10,22,.7);
  --display:"Sora","Helvetica Neue",Arial,sans-serif; --font:"DM Sans","Helvetica Neue",Arial,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--void);color:var(--text);font-family:var(--font);font-size:17.5px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
#scene{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block}
.fallback{position:fixed;inset:0;z-index:0;background:radial-gradient(60% 50% at 70% 40%,rgba(139,108,255,.22),transparent 70%),radial-gradient(50% 50% at 20% 80%,rgba(214,169,66,.14),transparent 70%),var(--void)}
.scrim{position:fixed;inset:0;z-index:1;pointer-events:none;transition:background .6s}
body.home .scrim{background:linear-gradient(90deg,rgba(5,10,22,.90) 0%,rgba(5,10,22,.72) 34%,rgba(5,10,22,.15) 62%,rgba(5,10,22,0) 78%)}
body:not(.home) .scrim{background:linear-gradient(180deg,rgba(5,10,22,.35),rgba(5,10,22,.6))}
@media (max-width:900px){body.home .scrim{background:linear-gradient(180deg,rgba(5,10,22,0) 0%,rgba(5,10,22,.05) 38%,rgba(5,10,22,.82) 62%,rgba(5,10,22,.92) 100%)}}
header,main,footer{position:relative;z-index:2}
a{color:inherit}
p{margin:0}
h1,h2,h3,h4{margin:0;color:var(--cream);font-family:var(--display);font-weight:700;letter-spacing:-.025em;line-height:1.08;text-wrap:balance}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(16px,4vw,44px)}
section{padding-block:clamp(48px,7vw,88px)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--gt)}
.eyebrow:before{content:"";width:22px;height:1.5px;background:var(--gold)}
.h1{font-size:clamp(38px,5.4vw,70px);font-weight:800;letter-spacing:-.035em;line-height:1.03;text-shadow:0 2px 30px rgba(5,10,22,.8)}
.hx{font-size:clamp(42px,8.4vw,118px);font-weight:800;letter-spacing:-.04em;line-height:1.01;text-shadow:0 2px 30px rgba(5,10,22,.8)}
.h2{font-size:clamp(30px,3.8vw,48px);text-shadow:0 2px 24px rgba(5,10,22,.8)}
.g{background:linear-gradient(100deg,var(--gold) 10%,var(--gold-2) 50%,var(--gold) 90%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.lede{font-size:clamp(17px,1.5vw,19.5px);max-width:58ch;color:var(--text);text-shadow:0 1px 16px rgba(5,10,22,.9)}
.shead{display:flex;flex-direction:column;gap:12px;margin-bottom:32px;max-width:780px}
.btn{display:inline-flex;align-items:center;gap:10px;font:700 16px/1 var(--font);padding:15px 22px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;text-decoration:none;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:var(--on-gold)}.btn-gold:hover{background:var(--gold-2);box-shadow:0 10px 36px -10px rgba(214,169,66,.7)}
.btn-line{border-color:var(--line-2);color:var(--cream);background:rgba(5,10,22,.45);backdrop-filter:blur(6px)}.btn-line:hover{border-color:var(--gt)}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.link{font-weight:700;color:var(--cream);text-decoration:none;border-bottom:1.5px solid var(--gold);padding-bottom:2px;cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.chip{display:inline-flex;align-items:center;font:700 12.5px var(--font);letter-spacing:.12em;text-transform:uppercase;padding:5px 11px;border-radius:999px;white-space:nowrap}
.inv{background:var(--gold);color:var(--on-gold)}
.onus{border:1.5px solid var(--gold);color:var(--gt)}
.tag{display:inline-block;font-weight:600;font-size:14.5px;padding:6px 12px;border-radius:999px;background:var(--chip);border:1px solid var(--line);color:var(--cream)}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);min-width:0}
.fine{font-size:14.5px;color:var(--mist);margin-top:12px}

/* header */
header.nav{position:sticky;top:0;padding-top:env(safe-area-inset-top,0px);z-index:50;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
header.nav.solid{background:rgba(5,10,22,.86);backdrop-filter:blur(12px);border-bottom-color:var(--line)}
body.home header.nav{position:fixed;left:0;right:0}
.nav-in{display:flex;align-items:center;gap:18px;height:72px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--cream);font-weight:600;font-size:16px;white-space:nowrap}
.brand img{width:38px;height:38px;border-radius:50%}
.menu{display:flex;gap:2px;margin-left:auto;align-items:center}
.menu>a,.dd>button{font:500 15.5px var(--font);color:var(--text);text-decoration:none;padding:8px 11px;border-radius:999px;background:none;border:0;cursor:pointer;white-space:nowrap}
.menu>a:hover,.menu>a.on,.dd>button:hover,.dd.on>button{color:var(--cream);background:rgba(245,241,232,.08)}
.dd{position:relative}
.dd-p{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;background:rgba(9,16,36,.97);border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:0 18px 40px -20px #000;display:none}
.dd:hover .dd-p,.dd.open .dd-p{display:block}
.dd-p a{display:block;padding:9px 12px;border-radius:8px;text-decoration:none;color:var(--cream);font-size:16px}
.dd-p a:hover{background:rgba(245,241,232,.07)}
.util{display:flex;gap:14px;align-items:center;font-size:15px}
.util a{text-decoration:none;color:var(--text);white-space:nowrap;display:inline-flex;gap:6px;align-items:center}.util a:hover{color:var(--cream)}
.util svg{width:14px;height:14px}
.nav .btn{padding:11px 17px;font-size:15px}
.burger{display:none;margin-left:auto;background:rgba(5,10,22,.5);border:1px solid var(--line-2);border-radius:10px;padding:8px 12px;font:500 15px var(--font);color:var(--cream)}
.drawer{display:none}
@media (max-width:1440px){.brand span{display:none}}
@media (max-width:1180px){.menu,.util,.nav-cta{display:none}.burger{display:block}
 .drawer.open{display:flex;flex-direction:column;padding-block:8px 18px;background:rgba(5,10,22,.96);border-top:1px solid var(--line)}
 .drawer a{text-decoration:none;padding:11px 2px;font-size:17px;color:var(--cream);border-bottom:1px solid var(--line)}}


/* six-phase journey diagram */
.jd{position:relative;display:grid;grid-template-columns:1.12fr 1fr 1fr 1fr 1fr;column-gap:52px;row-gap:50px;padding-top:30px}
.jd .js{z-index:1}
.jd .j1{grid-column:1;grid-row:1/3;border:1.5px solid var(--gold)}
.jd .j2{grid-column:2;grid-row:1}.jd .j3{grid-column:3;grid-row:1}
.jd .j4{grid-column:3;grid-row:2}.jd .j5{grid-column:4;grid-row:2}.jd .j6{grid-column:5;grid-row:2}
.jd .olab{position:absolute;top:0;font-weight:700;font-size:14.5px;color:var(--mist);letter-spacing:.02em}
.jd .jnote{grid-column:2;grid-row:2;align-self:center;margin:0 0 70px;font-size:15.5px;color:var(--gt);font-weight:600;line-height:1.35}
.jd .js h4 span{color:var(--gt)}
.jd .j1 ul{list-style:none;margin:6px 0 0;padding:0 0 0 14px;border-left:2px solid var(--line-2);display:flex;flex-direction:column;gap:6px;font-size:15px}
.jd .j1 ul b{color:var(--cream)}
.jd .get{font-weight:700;color:var(--cream);font-size:16px;margin-top:8px}
.jd svg.arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}
.jd .arrows path{fill:none;stroke-width:2}
.jd .arrows .dash{stroke:#8E9AB5;stroke-dasharray:5 5;stroke-width:1.6}
.jd .arrows .solid{stroke:var(--gold)}
@media (max-width:980px){.jd{grid-template-columns:1fr;row-gap:28px;padding-top:0}.jd>*{grid-column:1!important;grid-row:auto!important}.jd .olab{position:static}.jd .jnote{margin:0}.jd svg.arrows{display:none}
 .jd .js:not(.j6):after{content:"↓";position:absolute;left:50%;bottom:-26px;transform:translateX(-50%);color:var(--gold);font-weight:700}.jd .js{position:relative}}

/* blog */
.feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px;text-decoration:none;align-items:center;padding-bottom:40px;border-bottom:1px solid var(--line)}
.fimg{aspect-ratio:4/3;border-radius:18px;background:#0F766E;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:22px;max-width:100%}
.fimg::before{content:"";position:absolute;right:-40px;top:-40px;width:240px;height:240px;border-radius:50%;border:28px solid rgba(255,255,255,.12)}
.fimg span{position:absolute;top:18px;left:22px;font:600 13.5px var(--font);letter-spacing:.12em;text-transform:uppercase;color:#D7F5EF}
.fimg b{font:800 clamp(40px,5.6vw,80px)/1 var(--display);color:#F2FFFC;letter-spacing:-.04em;position:relative}
.ftxt{display:flex;flex-direction:column;gap:14px;min-width:0}
.ftxt .k{font:600 14px var(--font)}
.ftxt h2{font-size:clamp(30px,3.8vw,50px);font-weight:800}
.ftxt p{font-size:18px;max-width:52ch}
.feature:hover h2,.post:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
@media (max-width:800px){.feature{grid-template-columns:1fr}}
.mfilters{display:flex;flex-wrap:wrap;gap:8px;margin-block:32px 28px}
.mfilters button{font:500 15px var(--font);padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);background:#FFFDF8;color:#0B1730;cursor:pointer;display:flex;align-items:center;gap:8px}
.mfilters button i{width:9px;height:9px;border-radius:50%;background:var(--c)}
.mfilters button.on{background:#0B1730;color:#fff;border-color:#0B1730}
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px}
@media (max-width:900px){.posts{grid-template-columns:1fr}}
.post{border-top:3px solid var(--c);padding-top:16px;text-decoration:none;display:flex;flex-direction:column;gap:10px;min-width:0}
.post[hidden]{display:none}
.post .k{font:600 14px var(--font);color:var(--mist)}.post .k b{color:var(--cd)}
.post h3{font-size:22px;font-weight:800;line-height:1.15}
.post p{font-size:16px}
.news{margin-top:56px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;max-width:620px;align-items:end}
@media (max-width:520px){.news{grid-template-columns:1fr}}
/* home story */
.story{min-height:94vh;display:flex;align-items:center;padding-block:120px 80px}
.story.c{justify-content:center;text-align:center}
.story>.wrap{width:100%}
.story .lede{margin-top:22px}
.story .row{margin-top:32px}
.story.c .lede{margin-inline:auto}.story.c .row{justify-content:center}
.copy{max-width:640px}
.scrollcue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);font-size:13.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist);display:flex;flex-direction:column;align-items:center;gap:10px}
.scrollcue i{width:1px;height:42px;background:linear-gradient(var(--gold),transparent);animation:cue 2s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.chapter{position:fixed;left:clamp(16px,3vw,44px);bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:6;display:none;align-items:center;gap:14px;padding:10px 16px 10px 12px;border-radius:14px;background:rgba(9,16,36,.78);border:1px solid var(--line);backdrop-filter:blur(10px);max-width:min(440px,calc(100vw - 32px))}
body.home .chapter{display:flex}
.chapter b{font:800 22px var(--display);color:var(--gt);letter-spacing:-.03em;min-width:34px}
.chapter strong{display:block;color:var(--cream);font-size:15.5px}
.chapter span{display:block;font-size:14px;color:var(--mist);line-height:1.35}
.chapter .bar{position:absolute;left:12px;right:12px;bottom:5px;height:2px;border-radius:2px;background:rgba(245,241,232,.08);overflow:hidden}
.chapter .bar i{display:block;height:100%;width:0;background:var(--gold);transition:width .3s}
.rail{position:fixed;right:clamp(10px,2vw,26px);top:50%;transform:translateY(-50%);z-index:5;display:none;flex-direction:column;gap:12px}
body.home .rail{display:flex}
.rail a{width:8px;height:8px;border-radius:50%;background:rgba(245,241,232,.25);display:block;transition:background .3s,transform .3s}
.rail a.on{background:var(--gold);transform:scale(1.6)}
@media (max-width:700px){body.home .rail{display:none}.chapter{left:12px;right:12px;bottom:12px}}
.mini-j{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:30px;max-width:640px}
.mini-j div{padding:14px 14px 12px;display:flex;flex-direction:column;gap:6px}
.mini-j b{font:800 18px var(--display);color:var(--gt)}
.mini-j span{font-size:15px;color:var(--cream);font-weight:600;line-height:1.25}
@media (max-width:520px){.mini-j{grid-template-columns:repeat(2,minmax(0,1fr))}}
.flagrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;max-width:620px}
.fl i{width:7px;height:7px;border-radius:50%;background:var(--gold)}
.fl{display:inline-flex;align-items:center;gap:7px;font-size:14px;padding:5px 12px 5px 10px;border-radius:999px;background:rgba(9,16,36,.75);border:1px solid var(--line);color:var(--cream)}
.flag{flex:none;width:24px;height:16px;border-radius:3px;overflow:hidden;display:block;box-shadow:0 0 0 1px rgba(255,255,255,.18)}
.flag.tbc{width:24px;height:16px;border:1.3px dashed rgba(255,255,255,.4);box-shadow:none}
.kpi{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:22px;font-size:16px}
.kpi b{font:800 26px var(--display);letter-spacing:-.03em;margin-right:6px;color:var(--gt)}
.medals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.medal{padding:18px 16px;display:flex;align-items:center;gap:14px;text-align:left}
.ring{flex:none;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;text-align:center;font:700 10.5px/1.15 var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--gt);border:1.5px solid var(--gold);box-shadow:0 0 0 5px rgba(214,169,66,.08),0 0 30px -6px rgba(214,169,66,.6) inset}
.medal b{display:block;font:700 18px var(--display);color:var(--cream)}
.medal span{font-size:14px;color:var(--mist);line-height:1.35}
@media (max-width:900px){.medals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.medals{grid-template-columns:1fr}}
.doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:40px}
.door{padding:26px;text-decoration:none;display:flex;flex-direction:column;gap:12px;min-height:230px;transition:transform .3s,border-color .3s;cursor:pointer;text-align:left}
.door:hover{transform:translateY(-4px);border-color:rgba(214,169,66,.45)}
.door .k{font:700 13.5px var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--gt)}
.door h3{font-size:25px}
.door p{font-size:16px}
.door .go{margin-top:auto;font-weight:700;color:var(--cream)}
@media (max-width:860px){.doors{grid-template-columns:1fr}.door{min-height:0}}
.endgrid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-top:40px;text-align:left}
.endcard{padding:26px}
.endcard h3{font-size:22px}
.endcard p{font-size:16px;margin-top:8px}
.endcard .row{margin-top:20px}
.contact-lines{margin-top:18px;display:grid;gap:5px;font-size:16px;color:var(--cream)}
.contact-lines small{color:var(--mist);font-size:14.5px}
@media (max-width:860px){.endgrid{grid-template-columns:1fr}}

/* video card */
.video{position:relative;min-height:280px;border-radius:18px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;justify-content:flex-end;padding:22px;background:radial-gradient(80% 90% at 70% 20%,rgba(183,62,160,.6),transparent 60%),radial-gradient(70% 80% at 20% 90%,rgba(92,64,220,.65),transparent 60%),#120A2E;border:1px solid var(--line);text-align:left}
.video .play{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:var(--cream);display:grid;place-items:center;box-shadow:0 0 0 12px rgba(245,241,232,.12);transition:transform .3s}
.video:hover .play{transform:translate(-50%,-50%) scale(1.08)}
.video .play i{width:0;height:0;border-left:22px solid #120A2E;border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:6px}
.video b{font:700 19px var(--display);color:var(--cream);position:relative}
.video span{font-size:14.5px;color:var(--text);position:relative}
.awhome{display:grid;grid-template-columns:1.1fr 1fr;gap:14px;margin-top:38px;max-width:1080px;margin-inline:auto}
.awhome .medals{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.awhome{grid-template-columns:1fr}}
@media (max-width:420px){.awhome .medals{grid-template-columns:1fr}}

/* inner pages */
.phead{padding-block:clamp(56px,8vw,96px) clamp(26px,4vw,40px)}
.phead .lede{margin-top:16px}
.phead .row{margin-top:26px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;min-width:0;display:flex;flex-direction:column;gap:8px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.card h3{font-size:19px}
.card p{font-size:16px}
.card .meta{font-size:14px;color:var(--gt);font-weight:600}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
@media (max-width:820px){.two{grid-template-columns:1fr}}
.box{border-radius:18px;padding:26px;min-width:0;background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.box h3{font-size:20px;color:var(--gt);margin-bottom:14px}
.box p{font-size:16px;margin-top:10px}.box p:first-of-type{margin-top:0}
.box b{color:var(--cream)}
.box.gold{border-color:rgba(214,169,66,.4)}
.sj{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:stretch}
.js{border-radius:16px;padding:18px 16px;min-width:0;display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(14px)}
.js.opt{border-style:dashed;background:rgba(9,16,36,.6)}
.js .n{font:800 24px var(--display);color:var(--gt)}
.js h4{font-size:17px;line-height:1.2}
.js p{font-size:14.5px;line-height:1.4}
.js .chip{align-self:flex-start}
.sj .first{grid-row:span 2;border-color:rgba(214,169,66,.55)}
.sj .optrow{grid-column:2/4;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sj .optlabel{grid-column:2/6;font-size:14px;font-weight:700;color:var(--mist);letter-spacing:.06em}
.sj .main{grid-column:2/6;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sj ul{margin:4px 0 0;padding-left:16px;font-size:14.5px}
.sj .get{font-weight:700;color:var(--cream);font-size:15px;margin-top:auto}
@media (max-width:900px){.sj{grid-template-columns:1fr}.sj .first{grid-row:auto}.sj .optrow,.sj .main,.sj .optlabel{grid-column:auto}.sj .main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.sj .optrow,.sj .main{grid-template-columns:1fr}}
.foot-note{margin-top:18px;font-size:15px;color:var(--mist)}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.plan{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;min-width:0;backdrop-filter:blur(14px)}
.plan .plh{padding:16px 20px;color:#fff}
.plan .plh b{display:block;font-size:18px}.plan .plh span{font-size:14.5px;opacity:.85}
.plan ul{list-style:none;margin:0;padding:6px 20px 14px}
.plan li{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.plan li:last-child{border-bottom:0}
.plan li b{color:var(--cream)}.plan li em{font-style:normal;color:var(--gt);font-weight:700;white-space:nowrap}
@media (max-width:900px){.plans{grid-template-columns:1fr}}
.apps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.app{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;gap:10px;align-items:center;min-width:0;text-decoration:none}
.app i{flex:none;width:26px;height:26px;border-radius:7px}
.app b{font-size:15.5px;color:var(--cream);font-weight:600}
.app.wide{grid-column:span 2;justify-content:space-between}
.app.wide span{font-size:14px;color:var(--mist)}
.app.wide.gold{border-color:rgba(214,169,66,.5)}
@media (max-width:900px){.apps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.apps{grid-template-columns:repeat(2,minmax(0,1fr))}.app.wide{grid-column:1/-1}}
.cfg{display:flex;gap:22px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:26px 28px}
.cfg>div{flex:1 1 360px;min-width:0}
.cfg small{font-weight:700;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gt)}
.cfg h3{font-size:24px;margin-top:6px}
.cfg p{font-size:16px;margin-top:8px}
.ptgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:16px}
.pt{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;font-family:var(--font);display:flex;flex-direction:column;gap:6px;transition:border-color .2s;color:var(--text)}
.pt:hover{border-color:var(--gt)}
.pt b{font-size:16px;color:var(--cream);line-height:1.2}.pt span{font-size:14.5px}.pt em{font-style:normal;font-weight:700;color:var(--gt);margin-top:auto;padding-top:6px;font-size:15px}
@media (max-width:980px){.ptgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.clip{background:rgba(9,16,36,.9);border:1px solid var(--line);border-radius:14px;overflow:hidden;color:#DCE2EE;min-height:280px;display:flex;flex-direction:column}
.clip .bar{display:flex;gap:6px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--mist)}
.clip .bar i{width:8px;height:8px;border-radius:50%;background:#2A3B5E;display:inline-block}
.clip .bar span{margin-left:8px}
.clip .main{padding:14px;display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}
.stages{display:flex;gap:4px;flex-wrap:wrap}
.stages span{font-size:12.5px;padding:4px 8px;border-radius:5px;background:#1B2D4F;color:var(--mist);transition:background .4s,color .4s}
.stages span.done{background:#243A35;color:#9FD8BF}.stages span.now{background:var(--gold);color:var(--on-gold)}
.doc{background:#13233F;border:1px solid #2A3B5E;border-radius:10px;padding:12px;font-size:14px}
.doc .row2{display:grid;grid-template-columns:minmax(0,1fr) 34px 78px;gap:8px;padding:6px 0;border-bottom:1px dashed #2A3B5E;opacity:0;transition:opacity .4s}
.doc .row2.in{opacity:1}.doc .row2 span:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}
.doc .tot{display:flex;justify-content:space-between;margin-top:10px;font-weight:600;color:var(--cream);font-variant-numeric:tabular-nums}
.kan{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:1}
.kcol{background:#13233F;border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:6px;min-width:0}
.kcol h6{margin:0;font-size:12.5px;font-weight:600;color:var(--mist);display:flex;justify-content:space-between}
.kcard{background:#1B2D4F;border-radius:6px;padding:7px 8px;font-size:13px;border-left:3px solid var(--gold);transition:opacity .35s,transform .35s}
.kcard b{display:block;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kcard span{color:var(--mist);font-size:12px}
.kcard.move{opacity:0;transform:translateX(14px)}
@media (max-width:520px){.kan{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* blueprint */
.bpsec{position:relative}
.bpg{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,48px);align-items:center}
@media (max-width:920px){.bpg{grid-template-columns:1fr}}
.bp{background:rgba(9,16,36,.86);border:1px solid var(--line);border-radius:20px;padding:16px 16px 12px;min-width:0;position:relative;backdrop-filter:blur(14px)}
.ind{display:flex;gap:6px;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}
.ind button{flex:none;font:500 14px var(--font);padding:6px 11px;border-radius:999px;border:1px solid #2A3B5E;background:transparent;color:var(--mist);cursor:pointer;white-space:nowrap}
.ind button.on{background:var(--gold);border-color:var(--gt);color:var(--on-gold)}
.bp-top{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--mist);margin-top:4px}
.bp-top b{color:var(--cream);font-weight:600}
.bp svg{display:block;width:100%;height:auto;margin-top:8px;overflow:visible}
.slot rect{fill:transparent;stroke:#3A4C70;stroke-width:1.3;stroke-dasharray:4 4;transition:fill .45s,stroke .45s}
.slot text{font:500 13px var(--font);fill:#6E7C9C;text-anchor:middle;dominant-baseline:central;transition:fill .45s}
.slot.on rect{stroke-dasharray:none}
.slot{transform-box:fill-box;transform-origin:center}
.slot.pop{animation:pop .4s ease}
@keyframes pop{40%{transform:scale(1.07)}}
.edge{fill:none;stroke:#2A3B5E;stroke-width:1.4;stroke-dasharray:3 6;transition:stroke .5s}
.edge.on{stroke:var(--gold);stroke-dasharray:5 6;animation:flow 1s linear infinite}
@keyframes flow{to{stroke-dashoffset:-11}}
.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:14px;color:var(--mist)}
.legend span{display:flex;gap:6px;align-items:center}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.bp-msg{margin-top:6px;font-size:14px;color:var(--gt);min-height:20px}
.hint{margin-top:22px;font-size:14.5px;color:var(--mist);display:flex;gap:10px;align-items:center}
.hint i{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
.flytag{position:absolute;z-index:40;pointer-events:none;font:600 14px var(--font);padding:7px 12px;border-radius:9px;white-space:nowrap;transform:translate(-50%,-50%);box-shadow:0 8px 22px rgba(0,0,0,.35);transition:left .85s cubic-bezier(.6,0,.2,1),top .85s cubic-bezier(.6,0,.2,1),transform .85s cubic-bezier(.6,0,.2,1)}

/* map + projects */
.map{padding:16px;position:relative}
.map svg{display:block;width:100%;height:auto}
.map .land{fill:rgba(245,241,232,.10);stroke:rgba(245,241,232,.05);stroke-width:.5}
.map .arc{fill:none;stroke:var(--gold);stroke-width:1;stroke-dasharray:3 4;opacity:.55}
.map .pin{fill:var(--gold);stroke:#050A16;stroke-width:1.5}
.map .pin.hq{fill:#fff;stroke:var(--gold);stroke-width:3}
.map .halo{fill:var(--gold);opacity:.18}
.map .lbl{font:600 12.5px var(--font);fill:var(--cream);paint-order:stroke;stroke:#050A16;stroke-width:3px}
.maplegend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;justify-content:center}
.filters{display:flex;gap:12px 24px;flex-wrap:wrap;align-items:flex-end;margin-block:30px 20px}
.filters label{display:block;font-size:13.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--mist);margin-bottom:8px}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{font:600 15px var(--font);padding:9px 15px;border-radius:999px;border:1px solid var(--line-2);background:var(--field);color:var(--cream);cursor:pointer}
.seg button.on{background:var(--gold);border-color:var(--gt);color:var(--on-gold)}
.filters select{font:500 16px var(--font);color:var(--cream);background:var(--field);border:1px solid var(--line-2);border-radius:999px;padding:9px 16px;min-width:220px}
.plist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.proj{padding:20px;display:flex;flex-direction:column;gap:10px}
.proj[hidden]{display:none}
.proj .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.proj .top .flag{width:28px;height:19px}
.proj h3{font-size:18px;letter-spacing:-.015em}
.proj .sec{font-size:14.5px;color:var(--gt);font-weight:600;margin-top:-4px}
.proj .tg{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.proj .tg span{font-size:13.5px;padding:4px 9px;border-radius:999px;background:var(--chip);border:1px solid var(--line);color:var(--cream)}
.sys{font:700 12px var(--font);letter-spacing:.12em;text-transform:uppercase;padding:4px 8px;border-radius:6px;margin-left:auto;color:#fff}
.sys.odoo{background:#714B67}.sys.ns{background:#1F5AA6}
.plogo{height:56px;padding:8px 12px;border-radius:10px;background:#fff;border:1px solid var(--line);display:flex;align-items:center}.plogo img{height:38px;width:auto;max-width:170px;object-fit:contain;display:block}
.more-flags{font-size:13.5px;color:var(--mist)}
@media (max-width:980px){.plist{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.plist{grid-template-columns:1fr}}
.featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:26px;max-width:760px}
.featured .proj{padding:16px}
.featured .proj h3{font-size:16px}
@media (max-width:760px){.featured{grid-template-columns:1fr}}

/* awards, about, misc */
.awards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.aw{padding:24px;display:grid;grid-template-columns:88px minmax(0,1fr);gap:18px;align-items:center}
.aw .ring{width:84px;height:84px;font-size:12.5px}
.aw b{font-size:14px;font-weight:700;letter-spacing:.14em;color:var(--gt)}
.aw h3{font-size:20px;margin-top:4px}.aw p{font-size:15.5px;margin-top:6px}
@media (max-width:760px){.awards{grid-template-columns:1fr}}
.quote{padding:28px;border-left:3px solid var(--gold)}
.quote p{font-size:17px;color:var(--cream);font-style:italic}
.quote small{display:block;margin-top:12px;color:var(--mist);font-size:15px}
.prose{max-width:68ch}
.prose p{font-size:16.5px;margin-top:14px}
.prose p:first-child{margin-top:0}
.team{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:14px}
.team .lead{grid-row:span 2;padding:26px;border-color:rgba(214,169,66,.45)}
.team .lead h3{font-size:22px}.team .lead .r{color:var(--gt);font-size:15.5px;margin-top:4px}
.team .lead ul{margin:16px 0 0;padding-left:18px;font-size:15.5px;display:flex;flex-direction:column;gap:6px}
.team .card .r{color:var(--gt);font-weight:600;font-size:15px}
@media (max-width:900px){.team{grid-template-columns:1fr}.team .lead{grid-row:auto}}
.tl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.tl>div{padding:18px}
.tl b{font:800 24px var(--display);color:var(--gt)}.tl h4{font-size:16px;margin-top:6px}.tl p{font-size:15.5px;margin-top:4px}
@media (max-width:760px){.tl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.tl{grid-template-columns:1fr}}
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gal div{aspect-ratio:4/3;border-radius:12px;background:rgba(245,241,232,.06);border:1px dashed var(--line-2);display:grid;place-items:center;font-size:14px;color:var(--mist);text-align:center;padding:8px}
@media (max-width:600px){.gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
details{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;backdrop-filter:blur(14px)}
details+details{margin-top:8px}
summary{cursor:pointer;font-weight:700;color:var(--cream);font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";color:var(--gt);font-size:22px;line-height:1;transition:transform .25s}
details[open] summary:after{transform:rotate(45deg)}
details p{margin-top:10px;font-size:16px}
.faqg{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(24px,4vw,48px)}
@media (max-width:820px){.faqg{grid-template-columns:1fr}}
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:600px){.form{grid-template-columns:1fr}}
.f{display:flex;flex-direction:column;gap:6px;min-width:0}.f.full{grid-column:1/-1}
.f label{font-size:15px;font-weight:600;color:var(--cream)}
.f input,.f select,.f textarea{font:400 16px var(--font);color:var(--cream);background:var(--field);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px;width:100%}
.f textarea{min-height:110px;resize:vertical}
.f .err{font-size:14px;color:#FF8A80}
.f.bad input,.f.bad select,.f.bad textarea{border-color:#FF8A80}
.formwrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(24px,4vw,48px);align-items:start}
@media (max-width:900px){.formwrap{grid-template-columns:1fr}}
.steps{padding:24px}
.steps ol{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:16px}
.steps li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px}
.steps .i{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gt);display:grid;place-items:center;font-weight:700;font-size:14px}
.steps li .i{border:0;color:#0B1730}
.steps li:nth-child(1) .i{background:#D4A847}.steps li:nth-child(2) .i{background:#C7AB4A}.steps li:nth-child(3) .i{background:#B4AD4F}.steps li:nth-child(4) .i{background:#9AAC55}.steps li:nth-child(5) .i{background:#6FA85F}.steps li:nth-child(6) .i{background:#3FA66B}
.steps b{display:block;color:var(--cream);font-size:16px}
.steps span{font-size:15px}
.desks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.desk{padding:18px;display:flex;flex-direction:column;gap:8px}
.desk b{color:var(--cream);font-size:16px}
.desk .st{display:flex;gap:14px;font-size:14px;color:var(--mist)}
.desk .st em{font-style:normal;color:var(--gt);font-weight:700}
.cover{aspect-ratio:2/3;width:100%;max-width:300px;margin-inline:auto;background:linear-gradient(160deg,#13233F,#0B1730);border:1px solid var(--line);border-radius:5px 14px 14px 5px;padding:26px 22px;display:flex;flex-direction:column;box-shadow:18px 22px 44px rgba(0,0,0,.45)}
.cover small{color:var(--mist);font-size:12.5px}
.cover h3{margin-top:auto;font-size:38px;font-weight:800;letter-spacing:-.03em}.cover h3 span{color:var(--gt)}
.cover p{font-size:14px;margin-top:8px}.cover em{font-style:normal;color:var(--gt);font-size:12.5px;font-weight:700;letter-spacing:.14em;margin-top:18px}
.book{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(28px,5vw,64px);align-items:center}
@media (max-width:820px){.book{grid-template-columns:1fr}}
.parts{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.price{font:800 40px var(--display);color:var(--cream);letter-spacing:-.02em}
.price small{font:500 15px var(--font);color:var(--mist);margin-left:8px;letter-spacing:0}
.reader{background:rgba(245,241,232,.08);border-radius:16px;padding:14px;user-select:none;-webkit-user-select:none}
.rpage{position:relative;max-width:520px;margin-inline:auto;aspect-ratio:2/3;background:#fff;border-radius:6px;padding:36px;display:flex;flex-direction:column;gap:11px;overflow:hidden;color:#0B1730}
.rpage i{display:block;height:7px;border-radius:4px;background:#ECE6D8}
.wm{position:absolute;inset:auto 0 46% 0;text-align:center;transform:rotate(-24deg);font-size:15px;color:rgba(11,23,48,.12);white-space:nowrap;pointer-events:none}
@media print{.rpage{display:none}}
footer{background:rgba(5,10,22,.92);border-top:1px solid var(--line);padding-block:48px 28px;color:var(--mist)}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px}
.fg>div{min-width:0}
.fg h5{margin:0 0 12px;font-size:13.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gt)}
.fg a{display:block;text-decoration:none;padding:4px 0;font-size:16px}.fg a:hover{color:var(--cream)}
.fbot{margin-top:36px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}
@media (max-width:820px){.fg{grid-template-columns:1fr 1fr}.fg>div:first-child{grid-column:1/-1}}
.ph{display:none;margin-left:6px;font-size:11.5px;font-weight:700;padding:2px 6px;border-radius:5px;background:var(--gold);color:var(--on-gold);vertical-align:2px}
body.phases .ph{display:inline-block}
.proto{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;display:flex;gap:8px;align-items:center;background:rgba(9,16,36,.9);border:1px solid var(--line);border-radius:12px;padding:6px 6px 6px 12px;font-size:13.5px;color:var(--mist)}
.proto button{font:600 13.5px var(--font);border:0;border-radius:8px;padding:7px 10px;background:var(--gold);color:var(--on-gold);cursor:pointer}
@media (max-width:700px){body.home .proto{display:none}.proto span{display:none}.proto{padding:4px}}

/* ---------- inner pages: light and colourful (no 3D) ---------- */
body.lt{background:#FBF7EF;--panel:#FFFFFF;--line:#E3D9C4;--line-2:#D3C7AE;--cream:#0B1730;--text:#3B4566;--mist:#5E6782;--gt:#8A5A00;--chip:#F1EADB;--field:#FFFFFF;color:var(--text)}
body:not(.home) #scene,body:not(.home) .scrim,body:not(.home) .fallback{display:none}
body.lt h1,body.lt h2,body.lt .h1,body.lt .h2,body.lt .lede{text-shadow:none}
body.lt .g{background:linear-gradient(100deg,#B8862A 10%,#8A5A00 60%,#B8862A 100%);-webkit-background-clip:text;background-clip:text}
body.lt header.nav,body.lt header.nav.solid{background:rgba(251,247,239,.94);border-bottom-color:var(--line)}
body.lt .dd-p,body.lt .drawer.open{background:#fff}
body.lt .burger{background:#fff}
body.lt .btn-line{background:transparent;backdrop-filter:none}
body.lt .card,body.lt .box,body.lt .panel,body.lt .plan,body.lt details,body.lt .app,body.lt .pt{backdrop-filter:none;box-shadow:0 1px 0 rgba(11,23,48,.03)}
body.lt .js.opt{background:rgba(255,255,255,.55)}
body.lt .dark .js.opt{background:transparent;border-color:rgba(245,241,232,.35)}
body.lt .gal div{background:#F1EADB}
.dark,body:not(.home) .dark,footer{--cream:#F5F1E8;--text:#CDD3E0;--mist:#9EA8BE;--panel:#13233F;--line:rgba(245,241,232,.12);--line-2:rgba(245,241,232,.22);--gt:#EBC56A;--chip:rgba(245,241,232,.07);--field:rgba(5,10,22,.6);color:var(--text)}
body.lt .dark{background:#0B1730}
body.lt .dark .g{background:linear-gradient(100deg,#D6A942 10%,#EBC56A 50%,#D6A942 90%);-webkit-background-clip:text;background-clip:text}
body.lt .dark .btn-line{border-color:var(--line-2)}
footer{background:#0B1730}
.b-sky{background:#E3F4FD}.b-violet{background:#EEE8FF}.b-coral{background:#FFE9DF}.b-teal{background:#DCF4EF}.b-gold{background:#F7E4A6}
body.lt .map{background:#0B1730}
body.lt .fl{background:#fff;border-color:var(--line)}
body.home.cream .scrim{background:linear-gradient(90deg,rgba(245,241,232,.94) 0%,rgba(245,241,232,.78) 34%,rgba(245,241,232,.15) 62%,rgba(245,241,232,0) 78%)}
@media (max-width:900px){body.home.cream .scrim{background:rgba(245,241,232,.6)}}
body.home.cream{background:#F5F1E8}
body.lt .chapter{background:rgba(255,255,255,.92)}
body.home.cream header.nav:not(.solid){background:transparent;border-bottom-color:transparent}
.badge{display:inline-flex;align-items:center;gap:8px;font:700 13.5px var(--font);letter-spacing:.14em;text-transform:uppercase;padding:7px 13px;border-radius:999px;background:var(--gold);color:var(--on-gold)}
.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--on-gold);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
.door .badge{align-self:flex-start;font-size:12px;padding:5px 10px}
.wl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;max-width:520px;margin-top:22px;align-items:end}
@media (max-width:520px){.wl{grid-template-columns:1fr}}
.hposts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:34px;max-width:900px}
.hposts .post{padding:18px;border-top:3px solid var(--c);border-radius:4px 4px 16px 16px}
.hposts .post h3{font-size:18px}
@media (max-width:820px){.hposts{grid-template-columns:1fr}}
/* ---------- cinematic home ---------- */
html.lenis,html.lenis body{height:auto}
html.lenis{scroll-behavior:auto!important}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body.home{background:#050A16}
#scene{transition:opacity .5s}
.grain{position:fixed;inset:-50%;z-index:3;pointer-events:none;opacity:.07;display:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1s steps(6) infinite}
body.home .grain{display:block}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.cur,.cur2{position:fixed;left:0;top:0;z-index:90;pointer-events:none;border-radius:50%;display:none;transform:translate(-50%,-50%)}
.cur{width:6px;height:6px;background:var(--gold)}
.cur2{width:38px;height:38px;border:1px solid rgba(214,169,66,.55);transition:width .25s,height .25s,background .25s,border-color .25s}
.cur2.big{width:74px;height:74px;background:rgba(214,169,66,.12);border-color:rgba(214,169,66,.9)}
@media (pointer:fine){body.home .cur,body.home .cur2{display:block}}
#intro{position:fixed;inset:0;z-index:100;background:#050A16;display:grid;place-items:center;transition:opacity .7s .1s,visibility .7s .1s}
#intro.done{opacity:0;visibility:hidden}
#intro .in{display:flex;flex-direction:column;align-items:center;gap:18px}
#intro img{width:64px;height:64px;border-radius:50%}
#intro b{font:800 14px var(--font);letter-spacing:.3em;color:var(--gold);font-variant-numeric:tabular-nums}
#intro i{display:block;width:180px;height:1px;background:rgba(245,241,232,.15);position:relative;overflow:hidden}
#intro i:after{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleX(var(--p,0));transform-origin:left}

.rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.rv.in{opacity:1;transform:none}
.ln{display:block;overflow:hidden;padding-bottom:.06em}
.ln>span{display:inline-block;transform:translateY(110%);transition:transform 1.1s cubic-bezier(.2,.75,.15,1)}
.ln:nth-child(2)>span{transition-delay:.12s}
.in .ln>span,.ln.in>span{transform:none}
.splitw .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}
.splitw .w>span{display:inline-block;transform:translateY(105%);transition:transform 1s cubic-bezier(.2,.75,.15,1) calc(var(--i)*.06s)}
.splitw.in .w>span{transform:none}

.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding-block:110px 40px;z-index:4;background:#050A16}
#heroGL{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-in{position:relative;width:100%}
.mega{font:800 clamp(38px,10.2vw,160px)/.94 var(--display);letter-spacing:-.05em;margin-top:22px;color:var(--cream)}
.mega em{font-style:normal}
.hero .lede{margin-top:28px;font-size:clamp(17px,1.5vw,20px)}
.hero .row{margin-top:34px}
.hero-foot{position:relative;width:100%;display:flex;gap:10px 28px;flex-wrap:wrap;margin-top:auto;padding-top:48px;font-size:14px;letter-spacing:.06em;color:var(--mist)}
.hero-foot span:before{content:"✦ ";color:var(--gold)}
.hero-foot .cue{margin-left:auto;display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.22em}
.hero-foot .cue:before{content:none}
.hero-foot .cue i{width:1px;height:30px;background:linear-gradient(var(--gold),transparent);animation:cue 2s ease-in-out infinite}
@media (max-width:700px){.hero-foot .cue{display:none}}

.ticker{position:relative;z-index:4;background:#050A16;padding-block:26px;border-block:1px solid var(--line);overflow:hidden}
.trk{display:flex;gap:34px;white-space:nowrap;width:max-content;will-change:transform;align-items:center}
.trk span{font:800 clamp(34px,5.4vw,78px)/1.1 var(--display);letter-spacing:-.035em;color:var(--cream)}
.trk b{color:var(--gold);font-size:clamp(20px,2.4vw,34px)}
.trk.ol span{color:transparent;-webkit-text-stroke:1.2px rgba(245,241,232,.4)}

.story{position:relative;z-index:2}
.pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.st-in{position:relative;height:100%;display:flex;align-items:center}
.st-count{position:absolute;top:104px;left:clamp(16px,4vw,44px);display:flex;align-items:baseline;gap:10px;color:var(--mist);font-size:15px}
.st-count b{font:800 44px var(--display);color:var(--gold);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.st-count em{font-style:normal;margin-left:14px;letter-spacing:.2em;text-transform:uppercase;font-size:13.5px;color:var(--cream)}
.ch{position:absolute;left:clamp(16px,4vw,44px);top:50%;translate:0 -50%;width:min(620px,calc(100% - 32px));opacity:0;transform:translateY(40px);transition:opacity .6s,transform .8s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.ch.on{opacity:1;transform:none;pointer-events:auto}
.ch.past{transform:translateY(-40px)}
.h1x{font:800 clamp(44px,7.2vw,112px)/.98 var(--display);letter-spacing:-.045em;margin-top:16px;color:var(--cream);text-shadow:0 2px 30px rgba(5,10,22,.7)}
.ch .lede{margin-top:22px}
.kpi{display:flex;flex-wrap:wrap;gap:10px 30px;margin-top:26px;font-size:16px}
.kpi b{font:800 34px var(--display);letter-spacing:-.03em;color:var(--gold);font-variant-numeric:tabular-nums}
.kpi i{font:800 24px var(--display);font-style:normal;color:var(--gold);margin-right:6px}
.st-bar{position:absolute;left:clamp(16px,4vw,44px);right:clamp(16px,4vw,44px);bottom:30px;height:2px;background:rgba(245,241,232,.1);border-radius:2px;overflow:hidden}
.st-bar i{display:block;height:100%;width:0;background:var(--gold)}
@media (max-width:900px){.ch{top:auto;bottom:70px;translate:none}.st-count{top:88px}}

.hj{position:relative;z-index:4;background:#060C1C}
.htrack{display:flex;gap:18px;height:100%;align-items:center;padding-inline:clamp(16px,6vw,90px);width:max-content;will-change:transform}
.hintro{width:min(560px,80vw);flex:none;padding-right:40px}
.hintro .lede{margin-top:20px}
.phase{flex:none;width:clamp(280px,26vw,360px);height:min(440px,62vh);border-radius:22px;padding:28px;background:linear-gradient(160deg,rgba(27,45,79,.9),rgba(11,23,48,.9));border:1px solid var(--line);display:flex;flex-direction:column;gap:14px;position:relative;text-decoration:none}
.phase:after{content:"";position:absolute;top:50%;right:-18px;width:18px;height:2px;background:var(--gold)}
.phase.opt{border-style:dashed;background:rgba(11,23,48,.55)}
.phase.opt:after,.phase:nth-last-child(2):after{background:repeating-linear-gradient(90deg,var(--gold) 0 4px,transparent 4px 8px)}
.phase.end:after{content:none}
.phase .big{font:800 clamp(90px,9vw,140px)/.8 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px rgba(214,169,66,.7)}
.phase h3{font-size:26px;margin-top:auto}
.phase .chip{align-self:flex-start}
.phase p{font-size:16px}
.phase.end{background:var(--gold);border-color:var(--gold);justify-content:flex-end}
.phase.end h3,.phase.end p,.phase.end .go{color:var(--on-gold)}
.phase.end .go{font-weight:800;font-size:18px}
@media (max-width:900px){.hj .pin{position:relative;height:auto}.htrack{flex-direction:column;align-items:stretch;width:auto;padding-block:80px;transform:none!important}.hintro,.phase{width:auto}.phase{height:auto;min-height:0}.phase .big{font-size:84px}.phase:after{top:auto;bottom:-18px;left:40px;right:auto;width:2px;height:18px}.phase.opt:after,.phase:nth-last-child(2):after{background:repeating-linear-gradient(180deg,var(--gold) 0 4px,transparent 4px 8px)}}

.awc,.clients,.doorsc,.magc,.ctac{position:relative;z-index:2;padding-block:clamp(80px,12vw,160px)}
.awc{text-align:center}
.awgrid{display:grid;grid-template-columns:1.15fr 1fr;gap:14px;margin-top:48px;text-align:left}
.awgrid .medals{grid-template-columns:repeat(2,minmax(0,1fr))}
.awgrid .medal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}
.awgrid.in .medal{opacity:1;transform:none}
.awgrid.in .medal:nth-child(2){transition-delay:.1s}.awgrid.in .medal:nth-child(3){transition-delay:.2s}.awgrid.in .medal:nth-child(4){transition-delay:.3s}
.awc .video{min-height:330px}
.aquote{margin-top:44px;font:600 clamp(20px,2.2vw,28px)/1.3 var(--display);color:var(--cream);letter-spacing:-.02em}
.aquote small{display:block;font:500 15px var(--font);color:var(--mist);margin-top:10px}
@media (max-width:860px){.awgrid{grid-template-columns:1fr}}
@media (max-width:420px){.awgrid .medals{grid-template-columns:1fr}}
.clients{padding-block:60px 80px;overflow:hidden;background:rgba(5,10,22,.6)}
.clients .trk{margin-top:26px}
.trk.cl{gap:16px}.lg{flex:none;height:92px;min-width:150px;padding:16px 26px;border-radius:16px;background:#FFFFFF;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px -16px rgba(0,0,0,.6)}.lg img{display:block;height:56px;width:auto;max-width:260px;object-fit:contain}@media (max-width:700px){.lg{height:72px;min-width:120px;padding:12px 18px}.lg img{height:42px;max-width:200px}}
.trk.cl b{color:var(--gold)}
.spot{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:20px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.spot:before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--x,50%) var(--y,50%),rgba(214,169,66,.16),transparent 45%);opacity:0;transition:opacity .3s;pointer-events:none}
.spot:hover:before{opacity:1}
.door.spot{padding:30px;min-height:300px}
.door h3{font-size:30px}
.mhead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.magc .hposts{max-width:none;margin-top:44px}
.magc .hposts .post{padding:24px;min-height:200px;justify-content:space-between}
.magc .hposts .post h3{font-size:22px}
.giant{font:800 clamp(60px,13vw,210px)/.9 var(--display);letter-spacing:-.055em;margin-top:18px;color:var(--cream)}
.ctac{text-align:center}
.ctac .endgrid{text-align:left;margin-top:56px}
.ctac .endcard{padding:30px}
.btn.mag{will-change:transform}
@media (prefers-reduced-motion:reduce){.rv,.ln>span,.splitw .w>span,.ch,.awgrid .medal{transition:none!important;opacity:1!important;transform:none!important}.grain{display:none!important}}
.story{height:265vh;display:block;min-height:0;padding:0}



.cbx{position:relative}
.cbx ul{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;margin:0;padding:6px;list-style:none;max-height:264px;overflow-y:auto;background:#fff;border:1px solid var(--line-2);border-radius:12px;box-shadow:0 18px 40px -18px rgba(11,23,48,.45)}
.cbx li{padding:9px 12px;border-radius:8px;font-size:16px;color:#0B1730;cursor:pointer}
.cbx li.on,.cbx li:hover{background:#F1EADB}
.cbx li:first-child:not(.none){font-weight:600}
.cbx li.none{color:#5E6782;cursor:default}

.gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px;gap:10px}
.gal .gph{margin:0;position:relative;border-radius:14px;overflow:hidden;background:#0B1730}
.gal .gph.big{grid-column:span 2;grid-row:span 2}.gal .gph.wide{grid-column:span 2}
.gal .gph img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;transition:transform .6s}
.gal .gph:hover img{transform:scale(1.04)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 14px 12px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(transparent,rgba(5,10,22,.8))}
@media (max-width:760px){.gal{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:170px}}
/* v17.3 */
.mimg{flex:none;width:72px;height:72px;object-fit:contain;display:block;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))}
.aw .mimg{width:96px;height:96px}
.clients .trk+.trk{margin-top:14px}
.magc .hposts .post{background:color-mix(in srgb,var(--c) 16%,#FFFFFF);border-color:#E3D9C4;backdrop-filter:none;--cream:#0B1730;--text:#3B4566;--mist:#5E6782}
.magc .hposts .post h3{color:#0B1730}.magc .hposts .post .k{color:#5E6782}
.magc .hposts .post.spot:before{background:radial-gradient(420px circle at var(--x,50%) var(--y,50%),rgba(214,169,66,.22),transparent 45%)}
.g .w>span{background:inherit;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.g{-webkit-text-fill-color:transparent}
@media (max-width:900px),(hover:none){.g,.g .w>span,body.lt .g,body.lt .dark .g{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:currentColor!important;color:var(--gold)!important}body.lt .g{color:#9C6A12!important}body.lt .dark .g{color:var(--gold)!important}}
@media (max-width:700px){
 .hero{padding-block:96px 28px}.mega{margin-top:16px}.hero .lede{font-size:16.5px;margin-top:20px}.hero .row{margin-top:26px}.hero .row .btn{flex:1 1 auto;justify-content:center}
 .hero-foot{font-size:13.5px;gap:6px 16px;padding-top:32px}
 .ticker{padding-block:18px}.trk span{font-size:30px}.trk b{font-size:18px}
 .st-count{top:80px}.st-count b{font-size:34px}.h1x{font-size:clamp(40px,12vw,64px)}.ch .lede{font-size:16px;margin-top:16px}.kpi b{font-size:28px}
 .awc,.doorsc,.magc,.ctac{padding-block:72px}.clients{padding-block:40px 56px}
 .awc .video{min-height:220px}.medal{padding:14px}.mimg{width:60px;height:60px}.aquote{font-size:19px}
 .door.spot{min-height:0;padding:24px}.door h3{font-size:24px}
 .giant{font-size:clamp(52px,16vw,90px)}.ctac .endcard{padding:24px}.ctac .endcard .row .btn{flex:1 1 auto;justify-content:center}
 .mhead .btn{width:100%;justify-content:center}
 .phase{padding:22px}.phase h3{font-size:22px}
 .grain{opacity:.05}
}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.doc .row2{opacity:1}}

/* v17.5 type balance: calmer headlines, larger small text */
.mega{font-size:clamp(40px,7.4vw,112px);letter-spacing:-.04em;line-height:.98}
.h1x{font-size:clamp(38px,5.6vw,84px);letter-spacing:-.04em;line-height:1.02}
.giant{font-size:clamp(52px,9vw,140px)}
.hx{font-size:clamp(40px,6.4vw,96px)}
.h1{font-size:clamp(36px,4.6vw,62px)}
.h2{font-size:clamp(30px,3.4vw,44px)}
.trk span{font-size:clamp(30px,4vw,56px)}.trk b{font-size:clamp(18px,1.8vw,26px)}
.eyebrow{font-size:15px;letter-spacing:.16em}
.lede,.hero .lede{font-size:clamp(18px,1.45vw,21px);line-height:1.6}
.hero-foot{font-size:16px;letter-spacing:.02em}
.st-count{font-size:16px}.st-count em{font-size:15px;letter-spacing:.16em}
.medal b{font-size:20px}.medal span{font-size:15.5px}
.card p,.door p,.box p,.phase p,.endcard p,.feat span,.proj .bd p{font-size:16.5px}
.js p,.sj ul,.jd .j1 ul{font-size:15.5px}
.tag{font-size:15px}.chip{font-size:12.5px}
.kpi{font-size:17px}.fine{font-size:15px}.foot-note{font-size:15.5px}
.post .k,.ftxt .k{font-size:14px}.post p{font-size:16px}
.plan li{font-size:16px}.steps span{font-size:15.5px}.contact-lines{font-size:16.5px}.contact-lines small{font-size:15px}
.fg a{font-size:16.5px}.fbot{font-size:14.5px}.fg p{font-size:15.5px!important}
.video span{font-size:15px}.aquote small{font-size:15px}
.proj .tg span{font-size:13.5px}.proj .sec{font-size:15px}
summary{font-size:17px}details p{font-size:16.5px}
.f label{font-size:15.5px}
.magc .hposts .post:nth-child(1){background:#FFF1D2}
.magc .hposts .post:nth-child(2){background:#DDF4EE}
.magc .hposts .post:nth-child(3){background:#E2EEFC}
.magc .hposts .post h3{font-size:23px}
@media (max-width:700px){
 .mega{font-size:clamp(38px,10.6vw,52px)}.h1x{font-size:clamp(36px,10.6vw,52px)}.giant{font-size:clamp(48px,15vw,72px)}
 .trk span{font-size:28px}.trk b{font-size:17px}
 .eyebrow{font-size:13.5px;letter-spacing:.14em}.lede,.hero .lede{font-size:17px}.hero-foot{font-size:14.5px}
 .st-count b{font-size:32px}
}

/* v17.6 calmer motion */
.trk span{font-size:clamp(18px,1.9vw,28px);letter-spacing:-.02em}.trk b{font-size:clamp(12px,1.1vw,16px)}.trk{gap:26px}
.ticker{padding-block:20px}
.trk.ol span{-webkit-text-stroke:1px rgba(245,241,232,.45)}
.lg{height:72px;min-width:120px;padding:12px 20px;border-radius:14px}.lg img{height:40px;max-width:190px}
.trk.cl{gap:12px}
.harrow{display:flex;align-items:center;gap:14px;margin-top:34px;color:var(--gold);font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.harrow i{position:relative;display:block;width:120px;height:2px;background:var(--gold);animation:nudge 1.8s ease-in-out infinite}
.harrow i:after{content:"";position:absolute;right:-1px;top:50%;width:12px;height:12px;border-top:2px solid var(--gold);border-right:2px solid var(--gold);transform:translateY(-50%) rotate(45deg)}
@keyframes nudge{50%{transform:translateX(12px)}}
.htrack{padding-right:clamp(80px,14vw,220px)}
@media (max-width:900px){.harrow{display:none}}
@media (max-width:700px){.trk span{font-size:18px}.trk b{font-size:12px}.lg{height:60px;min-width:100px;padding:10px 14px}.lg img{height:32px;max-width:150px}}

/* v17.7 mobile story + ticker */
@media (max-width:900px){.story{height:450vh}}
@media (max-width:700px){.trk span{font-size:24px}.trk b{font-size:15px}.ticker{padding-block:18px}}

/* v17.8 mobile polish */
@media (max-width:700px){.story.c .eyebrow:before,.awc .eyebrow:before,.ctac .eyebrow:before{display:none}.awc .eyebrow,.ctac .eyebrow{justify-content:center;text-align:center}}

/* v17.9 continents */
.mapkpi{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:18px}
.mapkpi div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 22px;display:flex;align-items:baseline;gap:10px}
.mapkpi b{font:800 30px var(--display);color:var(--gt);letter-spacing:-.03em}
.mapkpi span{font-size:16px;color:var(--text)}
.maplegend .fl{font-size:15px;padding:7px 14px 7px 12px}

/* v17.10 no clipped glyphs: give the reveal masks room for italics, apostrophes and descenders */
.splitw .w{padding:.04em .12em .16em;margin:-.04em -.12em -.16em}
.ln{padding:.04em .12em .14em;margin:-.04em -.12em -.14em}
.mega em,.h1x em,.giant em,.hx em,.h1 em,.h2 em{font-style:normal}

@media (max-width:700px){.mega{font-size:clamp(34px,9.6vw,48px)}.giant{font-size:clamp(44px,13.4vw,66px)}.h1x{font-size:clamp(34px,10vw,50px)}}
.kcard b{white-space:normal;overflow:visible;text-overflow:clip}

/* v17.11 header: brand name never collides with the menu */
.nav-in .brand{flex:none}
.nav-in .menu{min-width:0}
header.nav .brand span{display:none}

/* v17.13 blog cards on home + large screens */
.magc .hposts{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.magc .hposts .post.hcard{background:#FFFFFF;border:1px solid #E3D9C4;border-top:5px solid var(--c);border-radius:16px;padding:22px 22px 20px;min-height:0;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;box-shadow:0 18px 40px -26px rgba(0,0,0,.6);transition:transform .3s,box-shadow .3s}
.magc .hposts .post.hcard:hover{transform:translateY(-4px);box-shadow:0 24px 50px -24px rgba(0,0,0,.7)}
.magc .hposts .post.hcard .k{font-size:14px;color:#5E6782}.magc .hposts .post.hcard .k b{color:var(--cd)}
.magc .hposts .post.hcard h3{font-size:21px;color:#0B1730;line-height:1.2}
.magc .hposts .post.hcard p{font-size:16px;color:#3B4566}
.magc .hposts .post.hcard .more{margin-top:auto;padding-top:6px;font-weight:700;font-size:15px;color:var(--cd)}
@media (max-width:900px){.magc .hposts{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.magc .hposts{grid-template-columns:1fr}}
/* scale the whole layout up on big monitors */
@media (min-width:1700px){.wrap{zoom:1.12}.hero{padding-top:150px}}
@media (min-width:2300px){.hero{padding-top:190px}}
@media (min-width:1950px){.wrap{zoom:1.25}.phase{width:400px}.lg{height:84px}.lg img{height:48px;max-width:220px}.trk span{font-size:32px}}
@media (min-width:2300px){.wrap{zoom:1.42}.phase{width:460px;height:min(500px,60vh)}.lg{height:96px;min-width:150px}.lg img{height:56px;max-width:250px}.trk span{font-size:38px}}

/* v17.14 single ticker row, even spacing; awards order */
.ticker{padding-block:40px}
.ticker .trk span{font-size:clamp(22px,2.4vw,34px)}
.ticker .trk b{font-size:clamp(14px,1.3vw,18px)}
@media (max-width:700px){.ticker{padding-block:28px}.ticker .trk span{font-size:24px}}
@media (min-width:2300px){.ticker .trk span{font-size:42px}}
.awc .aw-eyebrow{margin-top:26px}
.awc .awgrid{margin-top:26px}
.clients{padding-block:72px}
.clients .trk{margin-top:28px}
.clients .trk+.trk{margin-top:14px}

/* v17.17 three ways in: gold borders and number banners */
.doorsc .door.spot{border:1.5px solid rgba(214,169,66,.75);padding:0 0 28px;overflow:hidden}
.doorsc .door.spot:hover{border-color:var(--gold);box-shadow:0 18px 50px -24px rgba(214,169,66,.55)}
.doorsc .door>*:not(.dban){margin-inline:28px}
.dban{display:flex;align-items:center;gap:14px;background:var(--gold);color:var(--on-gold);padding:14px 28px;margin:0 0 10px}
.dban b{font:800 30px/1 var(--display);letter-spacing:-.03em}
.dban span{font:700 14px var(--font);letter-spacing:.16em;text-transform:uppercase}
.doorsc .door .badge{background:rgba(214,169,66,.14);color:var(--gold-2);border:1px solid rgba(214,169,66,.6)}
.doorsc .door .badge:before{background:var(--gold-2)}

/* v17.18 leadership lines */
.pace{margin-top:30px;font:700 clamp(20px,2vw,28px)/1.3 var(--display);color:var(--cream);letter-spacing:-.02em}
.paceband{position:relative;z-index:2;padding-block:clamp(70px,10vw,130px);text-align:center;border-block:1px solid var(--line);background:linear-gradient(180deg,rgba(214,169,66,.06),rgba(5,10,22,.0))}
.pbig{font:800 clamp(34px,4.4vw,64px)/1.05 var(--display);text-wrap:balance;letter-spacing:-.04em;color:var(--cream);margin:0}
.pbig em{font-style:normal}
.ctac .lead-line{margin:18px auto 0;font-size:clamp(18px,1.6vw,22px);color:var(--gold-2);font-weight:600;letter-spacing:.02em}
@media (max-width:700px){.pbig{font-size:clamp(30px,9vw,42px)}.pace{font-size:20px}}

/* v17.19 statement bands as section breaks */
body.lt .paceband.dark{background:#0B1730;border:0;padding-block:clamp(64px,9vw,120px)}
body.lt .paceband.dark .pbig{color:#F5F1E8}
body.lt .paceband.dark .pbig .g{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--gold)!important}
/* v17.20 */
.clients{padding-block:56px 28px}.clients+.doorsc{padding-top:clamp(48px,6vw,80px)}
.lg{height:100px;min-width:170px;padding:16px 28px}.lg img{height:64px;max-width:280px}
@media (max-width:700px){.clients{padding-block:40px 20px}.clients+.doorsc{padding-top:44px}.lg{height:76px;min-width:120px;padding:12px 18px}.lg img{height:46px;max-width:200px}}
/* v17.21 hero cue in button row */
.hero-in .row{display:flex;flex-wrap:wrap;align-items:center;width:100%}
.hcue{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:14px;text-transform:uppercase;letter-spacing:.22em;color:var(--mist)}
.hcue i{width:1px;height:30px;background:linear-gradient(var(--gold),transparent);animation:cue 2s ease-in-out infinite}
@media (max-width:700px){.hcue{display:none}}
/* v17.22 journey end card: border + shine */
.phase.end{overflow:hidden;border:2px solid #F5E3B0;box-shadow:0 0 0 1px rgba(214,169,66,.55),0 18px 50px -18px rgba(214,169,66,.65);transition:transform .3s,box-shadow .3s}
.phase.end:before{content:"";position:absolute;inset:-40% auto -40% -60%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);animation:pshine 4.5s ease-in-out infinite;pointer-events:none}
.phase.end:hover{transform:translateY(-6px);box-shadow:0 0 0 1px rgba(214,169,66,.8),0 26px 60px -18px rgba(214,169,66,.85)}
.phase.end .go{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:10px 18px;border-radius:999px;background:#0B1730;color:#F5F1E8!important}
@keyframes pshine{0%,55%{left:-60%}85%,100%{left:120%}}
@media (prefers-reduced-motion:reduce){.phase.end:before{animation:none;display:none}}
/* v17.23 blog article pages */
.art{padding-block:clamp(110px,14vw,150px) clamp(60px,8vw,100px)}
.art-in{max-width:760px}
.art-back{display:block;width:max-content;margin-bottom:22px;font:600 15px var(--font);color:#5E6782;text-decoration:none}.art-back:hover{color:#0B1730}
.art-h{font:800 clamp(34px,4.6vw,56px)/1.06 var(--display);letter-spacing:-.025em;color:#0B1730;margin-top:14px;text-wrap:balance}
.art-lede{font-size:clamp(19px,1.6vw,22px);line-height:1.55;color:#3B4566;margin-top:18px}
.art-by{display:flex;flex-direction:column;gap:2px;margin-top:26px;padding:16px 0;border-block:1px solid #E3D9C4;font-size:15px;color:#5E6782}.art-by b{color:#0B1730;font-size:16px}
.art-body{margin-top:34px;font-size:18px;line-height:1.75;color:#2A3352}
.art-body p{margin:0 0 20px}
.art-body h2{font:800 clamp(24px,2.4vw,30px)/1.2 var(--display);color:#0B1730;margin:42px 0 14px}
.art-body ul{margin:0 0 22px;padding-left:22px}.art-body li{margin-bottom:10px}.art-body li::marker{color:var(--c)}
.art-body b{color:#0B1730}
.art-body blockquote{margin:34px 0;padding:6px 0 6px 22px;border-left:4px solid var(--c);font:700 clamp(21px,2vw,26px)/1.4 var(--display);color:#0B1730}
.art-note{font-size:15px!important;color:#5E6782;font-style:italic}
.art-cta{margin-top:48px;padding:clamp(24px,4vw,36px);border-radius:20px;background:#0B1730;color:#F5F1E8}
.art-cta h3{font-size:clamp(22px,2.2vw,28px);color:#F5F1E8}.art-cta p{margin:10px 0 20px;color:#C9CFDD;font-size:17px}
.art-cta .btn-line{color:#F5F1E8;border-color:rgba(245,241,232,.45)}
.art-more{margin-top:56px}.art-more .posts{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}
@media (max-width:700px){.art-body{font-size:17px}.art-more .posts{grid-template-columns:1fr}}
.magc .hposts{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:900px){.magc .hposts{grid-template-columns:1fr}}
/* v17.24 About: our name / Fibonacci */
.fibsec{padding-block:clamp(56px,8vw,110px);background:#FBF7EE}
.fibh{margin-top:12px;text-wrap:balance}
.fibl{max-width:62ch;margin-top:16px}
.fibeq{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;margin-top:30px}
.fibeq>div{flex:1 1 180px;padding:18px 20px;border-radius:16px;background:#fff;border:1px solid #E3D9C4;display:flex;flex-direction:column;gap:6px}
.fibeq b{font:800 clamp(20px,1.8vw,24px)/1.1 var(--display);color:#0B1730}
.fibeq span{font-size:15px;color:#3B4566;line-height:1.45}
.fibeq i{align-self:center;font:800 28px var(--display);font-style:normal;color:#9C6A12}
.fibeq .hfc{background:#0B1730;border-color:#0B1730}.fibeq .hfc b{color:var(--gold)}.fibeq .hfc span{color:#C9CFDD}
.fibgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(24px,4vw,48px);margin-top:42px;align-items:start}
.fibfig{margin:0;padding:22px;border-radius:20px;background:#fff;border:1px solid #E3D9C4;position:sticky;top:96px}
.fibsvg{display:block;width:100%;height:auto}
.fibsvg .fibn{font-family:var(--display);font-weight:800}
.fibp{stroke-dasharray:2600;stroke-dashoffset:2600;transition:stroke-dashoffset 3.2s ease}
.fibfig.in .fibp,.fibfig.drawn .fibp{stroke-dashoffset:0}
.fibfig figcaption{margin-top:16px;font-size:15px;line-height:1.55;color:#3B4566}.fibfig figcaption b{color:#0B1730}
.fibcards{display:flex;flex-direction:column;gap:14px}
.fibc{padding:22px 24px;border-radius:18px;background:#fff;border:1px solid #E3D9C4;border-left:4px solid var(--gold)}
.fibc .k{font:700 13.5px var(--font);letter-spacing:.08em;text-transform:uppercase;color:#9C6A12}
.fibc h3{margin-top:8px;font-size:clamp(20px,1.7vw,23px);color:#0B1730;line-height:1.2}
.fibc p{margin-top:10px;font-size:16.5px;line-height:1.65;color:#3B4566}
.fibyr{margin-top:28px;padding:24px 28px;border-radius:18px;background:#0B1730;display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center}
.fibyr b{font:800 clamp(22px,2.2vw,30px) var(--display);color:var(--gold);white-space:nowrap}.fibyr p{color:#E6E9F0;font-size:17px;line-height:1.6;margin:0}
@media (max-width:900px){.fibgrid{grid-template-columns:1fr}.fibfig{position:static}.fibeq i{display:none}.fibyr{grid-template-columns:1fr;gap:8px}}
@media (prefers-reduced-motion:reduce){.fibp{transition:none;stroke-dashoffset:0}}
/* v17.25 bigger eyebrow sub-headings site-wide */
.eyebrow{font-size:clamp(16px,1.25vw,18px);letter-spacing:.14em;line-height:1.35}
.eyebrow:before{width:28px;height:2px}
.fibc .k{font-size:15px}
@media (max-width:700px){.eyebrow{font-size:15px;letter-spacing:.1em}}
/* v17.26 try-Odoo partner link in posts */
.art-try{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 20px;margin-top:44px;padding:22px 26px;border-radius:18px;background:#FFF8E6;border:2px solid var(--gold);text-decoration:none;transition:transform .25s,box-shadow .25s}
.art-try:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(156,106,18,.6)}
.art-try .k{grid-column:1;font:700 13.5px var(--font);letter-spacing:.1em;text-transform:uppercase;color:#9C6A12}
.art-try b{grid-column:1;font:700 clamp(18px,1.6vw,21px)/1.35 var(--display);color:#0B1730}
.art-try .go{grid-column:2;grid-row:1/3;padding:12px 20px;border-radius:999px;background:var(--gold);color:#0B1730;font-weight:800;white-space:nowrap}
.art-try+.art-cta{margin-top:16px}
@media (max-width:600px){.art-try{grid-template-columns:1fr}.art-try .go{grid-column:1;grid-row:auto;justify-self:start;margin-top:8px}}
/* v17.27 band sub-line */
.paceband .psub{margin:18px auto 0;max-width:46ch;font-size:clamp(17px,1.5vw,20px);line-height:1.5;color:#C9CFDD}
/* v17.28 founders plan + contact trial links */
.plans.p4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.plans.p4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.plans.p4{grid-template-columns:1fr}}
.trylinks{margin-bottom:6px}
.tl3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.tl3 a{display:flex;flex-direction:column;gap:6px;padding:20px 22px;border-radius:18px;background:#FFF8E6;border:2px solid var(--gold);text-decoration:none;transition:transform .25s,box-shadow .25s}
.tl3 a:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(156,106,18,.6)}
.tl3 b{font:800 20px var(--display);color:#0B1730}.tl3 span{font-size:15.5px;color:#3B4566;line-height:1.45}
.tl3 em{margin-top:auto;padding-top:8px;font-style:normal;font-weight:800;color:#7A5600}
@media (max-width:800px){.tl3{grid-template-columns:1fr}}
.plans.p4 .plh{min-height:104px}
/* v17.29 phase-2-only sections */
.p2only{display:none}body.phases .p2only{display:block}
/* v17.30 official Odoo app icons */
.app .aico{flex:none;width:30px;height:30px;display:block}
/* v17.31 clickable journey cards */
a.phase:not(.end){color:inherit;cursor:pointer;transition:transform .25s,border-color .25s,box-shadow .25s}
a.phase:not(.end):hover{transform:translateY(-4px);border-color:rgba(214,169,66,.6);box-shadow:0 18px 40px -24px rgba(0,0,0,.7)}
a.phase:not(.end) .more{margin-top:auto;font-weight:700;font-size:15px;color:var(--gold)}
.js,#svc-plans{scroll-margin-top:120px}
.js.flash{animation:jflash 1.8s ease}
@keyframes jflash{0%,40%{box-shadow:0 0 0 3px var(--gold)}100%{box-shadow:0 0 0 0 transparent}}
/* v17.36 presentation alignment */
.gstart{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:34px;font-size:15.5px}
.gstart b{font-size:13.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gt);margin-right:4px}
.gstart span{padding:6px 14px;border-radius:999px;border:1.5px solid var(--line-2);color:var(--cream);font-weight:600}
.gstart i{font-style:normal;color:var(--gold);font-weight:700}.gstart em{font-style:normal;color:var(--mist)}
.jd .j1 .after{font-size:14.5px;color:var(--mist);line-height:1.4}
.chsec{background:#FBF7EF}
.chgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.chc{border:1px solid;border-radius:16px;padding:20px 20px 22px;display:flex;flex-direction:column;gap:8px;min-width:0}
.chc h3{font-size:19px;color:#0B1730}.chc p{font-size:16px;line-height:1.45;color:#3B4566}
.chfix{margin-top:18px;padding:20px 26px;border-radius:16px;background:#0B1730;color:#E6E9F0;font-size:clamp(17px,1.5vw,20px);line-height:1.5}
.chfix b{color:var(--gold)}
@media (max-width:980px){.chgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.chgrid{grid-template-columns:1fr}}
.plan .pdesc{padding:18px 20px 22px;font-size:16.5px;line-height:1.5;color:var(--cream)}
.pincl{margin-top:16px;padding:18px 24px;border-radius:16px;background:#0B1730;color:#D5DBE7;font-size:16px;line-height:1.55}
.pincl b{color:var(--gold)}
/* v17.38 gold outline on Book an appointment buttons */
a.btn-line[data-go="appointment"]{border-color:rgba(214,169,66,.8);border-width:1.5px}
a.btn-line[data-go="appointment"]:hover{border-color:var(--gold);box-shadow:0 0 0 1px rgba(214,169,66,.35)}
body.lt a.btn-line[data-go="appointment"]{border-color:#B8862A}
body.lt .dark a.btn-line[data-go="appointment"],.dark a.btn-line[data-go="appointment"]{border-color:rgba(214,169,66,.8)}
/* v17.39 footer contact, equal CTA cards */
.fcontact{display:flex;flex-direction:column;gap:2px;margin-top:12px;font-size:15px}
.fcontact a{padding:2px 0!important;font-size:15px!important;color:var(--cream)}
.fcontact span{color:var(--mist)}
.endgrid{grid-template-columns:1fr 1fr}
@media (max-width:860px){.endgrid{grid-template-columns:1fr}}
.flegal a{display:inline!important;padding:0!important;font-size:14px!important;text-decoration:none}.flegal a:hover{color:var(--cream);text-decoration:underline}
/* v17.40 plan sizes */
.plan .plh .pusers{display:inline-block;margin:6px 0 6px;padding:2px 10px;border-radius:999px;background:rgba(255,255,255,.18);font-style:normal;font-size:13.5px;font-weight:700;letter-spacing:.02em}
.plan .plh span{display:block}
/* v17.41 journey clarity */
.jkey{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:-14px 0 30px;font-size:15px;color:var(--mist)}
.jkey .chip{margin:0}.jkey .sep{color:var(--line-2);margin:0 4px}
@media (max-width:980px){
 .gstart{flex-direction:column;align-items:flex-start;gap:8px;counter-reset:gs}
 .gstart b{margin:0 0 4px}
 .gstart span{counter-increment:gs;display:flex;align-items:center;gap:10px;width:100%;border-radius:12px;padding:10px 14px}
 .gstart span:before{content:counter(gs);display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--gold);color:#0B1730;font-size:13px;font-weight:800}
 .gstart i{transform:rotate(90deg);margin-left:18px;line-height:1}
 .gstart em{color:var(--gold-2);font-weight:600}
 .jd .j1{order:1}.jd .olab{order:2;margin-top:6px}.jd .j2{order:3}.jd .j3{order:4}.jd .jnote{order:5}.jd .j4{order:6}.jd .j5{order:7}.jd .j6{order:8}
 .jd .olab{font-size:13.5px}
}
/* v17.41b */
.chips2{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 4px}.chips2 .chip{margin:0}
.chip.optc{background:none;border:1.5px dashed #8E9AB5;color:#C9CFDD}
@media (min-width:981px){.jd .jnote{margin:0 0 128px;font-size:15px}}
@media (max-width:900px){.desk-only{display:none!important}}
