@font-face{font-family:"Besley";font-style:normal;font-weight:400 900;font-display:swap;src:url(fonts/besley-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:"Schibsted Grotesk";font-style:normal;font-weight:400 900;font-display:swap;src:url(fonts/schibsted-grotesk-latin-wght-normal.woff2) format("woff2")}
:root{--night:#0b1426;--dusk:#1c3560;--paper:#f5f7fa;--rule:rgba(11,20,38,.16);--lamp:#ffd08a;--blue:#1f5bff;--ink:#0b1426;--mute:#46506a;--ease:cubic-bezier(.2,.8,.2,1);--pad:clamp(20px,5vw,72px);--gut:max(var(--pad),calc((100vw - 1296px)/2))}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:17px;line-height:1.6;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:12px;top:-80px;z-index:100;background:#fff;color:#000;padding:10px 14px;border-radius:8px}.skip:focus{top:12px}
h1,h2,h3{font-family:"Besley","Schibsted Grotesk",system-ui,sans-serif;font-weight:600;letter-spacing:-.03em;text-wrap:balance}
h1{font-size:clamp(44px,6.6vw,100px);line-height:1}
h2{font-size:clamp(34px,4.4vw,64px);line-height:1.04}
h3{font-size:clamp(26px,2.6vw,36px);line-height:1.1}
p{max-width:62ch}
.lead{font-size:clamp(18px,1.6vw,22px);line-height:1.55;color:var(--mute);max-width:52ch}
/* header */
.hdr{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:22px var(--gut);color:var(--ink)}
.hdr.light{color:#f4f7fc}
.logo{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:.04em;text-decoration:none}
.logo svg{width:22px;height:22px}
.hdr nav{display:flex;gap:clamp(14px,2.6vw,34px);align-items:center;font-size:15px}
.hdr nav a{text-decoration:none;padding:6px 2px;border-bottom:1px solid transparent}
.hdr nav a:hover,.hdr nav a[aria-current=page]{border-bottom-color:currentColor}
.hdr nav a.cta{border:1px solid currentColor;border-radius:99px;padding:9px 18px}
.hdr nav a.cta:hover{background:currentColor}.hdr nav a.cta:hover span{color:var(--paper)}
/* hero */
.hero{position:relative;min-height:100svh;overflow:hidden;color:var(--ink);--scrim:245,247,250;background:var(--night)}
.hero.on-dark{color:#f4f7fc;--scrim:11,20,38}
#sky{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(var(--scrim),.3) 0%,rgba(var(--scrim),.12) 45%,rgba(var(--scrim),0) 70%)}
.hero .inner{position:relative;z-index:2;padding:clamp(120px,22vh,220px) var(--gut) 0;}
.where{display:inline-flex;gap:10px;align-items:center;font-size:14px;border:1px solid currentColor;border-radius:99px;padding:7px 14px;opacity:.85;margin-bottom:26px}
.where i{width:7px;height:7px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 3px rgba(61,220,132,.25)}
.hero h1{max-width:15ch}
.hero .lead{margin-top:26px;color:inherit;opacity:.84}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.btn{display:inline-block;padding:15px 26px;border-radius:99px;font-weight:500;font-size:16px;text-decoration:none;border:1px solid currentColor;line-height:1.2;cursor:pointer;font-family:inherit;background:none;color:inherit}
.btn.solid{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.on-dark .btn.solid,.dark .btn.solid{background:#f4f7fc;color:var(--night);border-color:#f4f7fc}
.btn:hover{transform:translateY(-1px)}
/* page head */
.phead{padding:clamp(130px,20vh,200px) var(--gut) clamp(40px,7vw,90px);}
.phead h1{font-size:clamp(40px,5.6vw,84px);max-width:16ch}
.phead .lead{margin-top:24px}
/* sections */
.sec{padding:clamp(56px,9vw,120px) var(--gut)}
.sec.dark{background:var(--night);color:#eef3fb}
.sec.dark .lead,.sec.dark p{color:rgba(238,243,251,.78)}
.wrap{max-width:none;margin:0}
.cols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px);align-items:start}
.rows{border-top:1px solid var(--rule)}
.dark .rows{border-color:rgba(238,243,251,.2)}
.row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,5vw,80px);padding:clamp(26px,3.6vw,44px) 0;border-bottom:1px solid var(--rule)}
.dark .row{border-color:rgba(238,243,251,.2)}
.row p{color:var(--mute)}.dark .row p{color:rgba(238,243,251,.76)}
.row ul{list-style:none;margin-top:14px;display:grid;gap:6px}
.row li:before{content:"";display:inline-block;width:14px;height:1px;background:currentColor;opacity:.5;margin-right:10px;vertical-align:middle}
.row a.more{display:inline-block;margin-top:14px;color:var(--blue);text-underline-offset:4px}
.dark .row a.more{color:#8db4ff}
.steps{counter-reset:s;list-style:none;border-top:1px solid var(--rule)}
.steps li{counter-increment:s;display:grid;grid-template-columns:64px minmax(0,4fr) minmax(0,7fr);gap:20px;padding:26px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.steps li:before{content:counter(s);font-family:"Besley",sans-serif;font-weight:600;font-size:36px;color:var(--blue)}
.steps p{color:var(--mute)}
.principles{display:grid;gap:18px;list-style:none}
.principles li{padding-left:20px;border-left:3px solid var(--blue);max-width:46ch}
/* sky strip (home) */
.strip{position:relative;height:clamp(120px,18vw,220px);background:var(--night)}
/* portal demo */
.demo{background:#fff;border:1px solid var(--rule);border-radius:18px;padding:clamp(18px,2.4vw,30px);box-shadow:0 30px 60px -36px rgba(11,20,38,.4)}
.demo .bar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:14px;color:var(--mute);margin-bottom:16px}
.demo .rng{display:flex;gap:6px}
.demo .rng button{font:inherit;font-size:13px;padding:6px 12px;border-radius:99px;border:1px solid var(--rule);background:none;cursor:pointer}
.demo .rng button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.kpi{font:inherit;text-align:left;cursor:pointer;border:1px solid var(--rule);border-radius:12px;padding:12px 16px;background:none;color:inherit}
.kpi small{display:block;font-size:13px;color:var(--mute)}
.kpi strong{font-family:"Besley",sans-serif;font-weight:600;font-size:clamp(28px,2.8vw,40px);line-height:1.1}
.kpi[aria-pressed=true]{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.spark{margin-top:16px;border-top:1px solid var(--rule);padding-top:12px}
.spark svg{width:100%;height:110px;display:block}
.spark .a{fill:rgba(31,91,255,.1)}.spark .l{fill:none;stroke:var(--blue);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.note{font-size:14px;color:var(--mute);margin-top:12px}
/* form */
form.contact{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;max-width:760px}
.f{display:flex;flex-direction:column;gap:6px}.f.w2{grid-column:1/-1}
label{font-size:15px;font-weight:500}
input,select,textarea{font:inherit;font-size:17px;padding:12px 14px;border:1px solid rgba(11,20,38,.4);border-radius:10px;background:#fff;color:var(--ink);width:100%}
textarea{min-height:130px;resize:vertical}
.err{font-size:14px;color:#b3261e;min-height:1.2em}
input[aria-invalid=true]{border-color:#b3261e}
.formnote{grid-column:1/-1;display:none;padding:16px 18px;border-radius:12px;background:#e8f1ff;max-width:60ch}
.formnote.show{display:block}
.formnote.bad{background:#fdecea}
.send{grid-column:1/-1;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.meta{margin-top:30px;color:var(--mute)}
/* footer */
.ftr{background:var(--night);color:rgba(238,243,251,.8);padding:clamp(40px,6vw,72px) var(--gut);font-size:15px}
.ftr .wrap{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.ftr a{text-underline-offset:4px}
.ftr nav{display:flex;gap:22px;flex-wrap:wrap}
@media(max-width:860px){.cols,.row{grid-template-columns:1fr}.steps li{grid-template-columns:44px 1fr}.steps li p{grid-column:2}.hdr nav a:not(.cta){display:none}form.contact{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.hero:before{background:linear-gradient(180deg,rgba(var(--scrim),.55),rgba(var(--scrim),.15) 70%,rgba(var(--scrim),0))}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
.rise{animation:rise 1s var(--ease) .5s both}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* living skyline story */
.story{position:relative;height:520vh}
.stage{position:sticky;top:0;height:100svh;min-height:0;overflow:hidden;transition:color .5s}
.stage .inner{transition:none}
.panel{position:absolute;left:var(--gut);top:clamp(120px,24vh,230px);z-index:3;width:min(500px,46vw);opacity:0}
.panel h2{font-size:clamp(34px,4vw,60px);line-height:1.04}
.panel p{margin-top:18px;font-size:clamp(17px,1.5vw,20px);line-height:1.55;opacity:.9}
.panel a{display:inline-block;margin-top:20px;text-underline-offset:4px}
.tw{position:absolute;z-index:4;background:none;border:0;cursor:pointer;color:inherit;font:inherit;padding:0}
.tw span{position:absolute;left:50%;top:32px;transform:translateX(-50%);font-size:14px;white-space:nowrap;padding:3px 11px;border-radius:99px;background:rgba(var(--scrim),.6);border:1px solid transparent}
.tw.on span{border-color:currentColor;font-weight:600}
.tw:focus-visible{outline:3px solid #8db4ff;outline-offset:2px}
.pill{position:absolute;z-index:5;transform:translateX(-50%);font-size:13px;padding:5px 11px;border-radius:99px;background:rgba(244,247,252,.95);color:#0b1426;animation:pill 2.8s ease forwards;pointer-events:none;white-space:nowrap}
@keyframes pill{0%{opacity:0;transform:translate(-50%,8px)}12%{opacity:1;transform:translate(-50%,0)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-10px)}}
.simtime{position:absolute;left:var(--gut);bottom:18px;z-index:4;font-size:13px;opacity:.8}
.hdr2{position:fixed;background:rgba(245,247,250,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);transform:translateY(-100%);visibility:hidden;transition:transform .3s,visibility .3s;padding-top:14px;padding-bottom:14px}
.hdr2.show{transform:none;visibility:visible}
.story.static{height:auto}.story.static .stage{position:relative;min-height:100svh}.story.static .panel,.story.static .pill{display:none}
.story.static .tw{pointer-events:auto}
.stage.hero{color:var(--ink)}.stage.hero.on-dark{color:#f4f7fc}
@media(max-width:860px){.story{height:460vh}.panel{width:calc(100% - 2*var(--gut));top:96px}.tw span{font-size:12px;padding:2px 7px}.simtime{bottom:10px;font-size:12px}}

.stage .lead{max-width:34ch}
@media(max-width:860px){.stage .inner{padding-top:96px}.stage h1{font-size:clamp(36px,10vw,48px)}.stage .lead{font-size:16px;margin-top:16px;max-width:30ch}.stage .btns{margin-top:20px}.stage .btn{padding:12px 18px;font-size:15px}.where{margin-bottom:16px}.simtime{width:70%}}

.orrery{position:absolute;right:var(--gut);top:92px;width:120px;height:120px;z-index:3;opacity:.9;pointer-events:none}
@media(max-width:860px){.orrery{display:none}}
.story.static .orrery{display:block}
.stage h1{font-size:clamp(38px,4.7vw,72px);line-height:1.02;max-width:15ch}
@media(max-width:860px){.stage h1{font-size:clamp(34px,9vw,44px);max-width:none}}
.lapse{position:absolute;right:var(--gut);bottom:16px;z-index:6;font:inherit;font-size:14px;color:inherit;background:rgba(var(--scrim),.55);border:1px solid currentColor;border-radius:99px;padding:8px 16px;cursor:pointer;min-width:150px;backdrop-filter:blur(4px)}
.lapse:hover{background:rgba(var(--scrim),.8)}.lapse[aria-pressed=true]{font-variant-numeric:tabular-nums;text-align:center}
@media(max-width:860px){.lapse{bottom:auto;top:auto;right:var(--gut);bottom:66px;font-size:13px;padding:7px 12px;min-width:0}}
.story.static .lapse{display:none}

/* v2 night system */
:root{--lamp:#ffd08a}
body{background:var(--night);color:#eef3fb}
:focus-visible{outline-color:#8db4ff}
.lead{color:rgba(238,243,251,.8)}
.hdr{color:#f4f7fc}
.hdr2{background:rgba(11,20,38,.92);border-bottom:1px solid rgba(255,255,255,.12)}
.hdr nav a.cta:hover span{color:var(--night)}
.sec{background:var(--night)}
.sec.dark{background:linear-gradient(180deg,#0f1c38,#0b1426)}
.rows,.row,.steps,.steps li,.dark .rows,.dark .row{border-color:rgba(238,243,251,.16)}
.row p,.dark .row p{color:rgba(238,243,251,.78)}
.row a.more,.dark .row a.more{color:var(--lamp)}
.row li:before{width:7px;height:9px;background:var(--lamp);opacity:1;border-radius:1px;margin-right:12px}
.row h3{transition:color .2s}.row:hover h3{color:var(--lamp)}
.steps li:before{color:var(--lamp)}.steps p{color:rgba(238,243,251,.78)}
.principles li{border-left-color:var(--lamp)}
.btn.solid,.on-dark .btn.solid,.dark .btn.solid{background:var(--lamp);color:#0b1426;border-color:var(--lamp)}
.btn.solid:hover{background:#ffe0ad}
.phead{position:relative;overflow:hidden;color:#f4f7fc;background:linear-gradient(180deg,#22407a 0,#172a52 46%,#0b1426 100%);padding-bottom:clamp(130px,15vw,220px)}
.phead:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(1.6px 1.6px at 8% 24%,#fff,transparent),radial-gradient(1.2px 1.2px at 19% 52%,#fff,transparent),radial-gradient(1.8px 1.8px at 33% 18%,#fff,transparent),radial-gradient(1.2px 1.2px at 47% 41%,#fff,transparent),radial-gradient(1.6px 1.6px at 61% 14%,#fff,transparent),radial-gradient(1.2px 1.2px at 72% 47%,#fff,transparent),radial-gradient(1.8px 1.8px at 84% 22%,#fff,transparent),radial-gradient(1.2px 1.2px at 93% 56%,#fff,transparent),radial-gradient(1px 1px at 27% 70%,#fff,transparent),radial-gradient(1px 1px at 78% 72%,#fff,transparent);opacity:.75}
.phead:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:clamp(70px,9vw,120px);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath fill='%230b1426' fill-opacity='.84' d='M0 120V86h40V70h30v16h34V52h26v34h40V74h36V40h24v34h30V90h44V62h28v28h40V46h22V30h6v16h22v44h40V70h34v20h30V56h30v34h46V78h38V44h26v34h36V92h40V66h32v26h38V58h24V38h8v20h24v34h44V80h36V60h28v20h40V90h42V72h30v18h36V54h26v36h38V76h34V120z'/%3E%3C/svg%3E") bottom/100% 100% no-repeat}
.phead>*{position:relative;z-index:1}
.phead h1{font-size:clamp(40px,5.4vw,80px);max-width:17ch}
.phead .lead{color:rgba(244,247,252,.85)}
.note,.meta{color:rgba(238,243,251,.66)}
.demo{color:var(--ink)}
.formnote{color:var(--ink)}.formnote.bad{color:#5c1612}
.err{color:#ff9a8f}
.ftr{background:#070d1b}.ftr a:hover{color:var(--lamp)}
/* live strips */
.viz{display:block;width:min(240px,100%);height:64px;margin-top:22px;overflow:visible}
.viz .fr{fill:none;stroke:rgba(238,243,251,.3);stroke-width:1.2}.viz .dt{fill:rgba(238,243,251,.35)}
.viz .ln{fill:rgba(141,180,255,.55);transform-box:fill-box;transform-origin:left;animation:grow 4s ease-in-out infinite}.viz .l2{animation-delay:.5s}
.viz .cta2{fill:var(--lamp);animation:blink 4s ease-in-out infinite}
@keyframes grow{0%,10%{transform:scaleX(.1)}45%,85%{transform:scaleX(1)}100%{transform:scaleX(.1)}}
@keyframes blink{0%,40%{opacity:.25}55%,100%{opacity:1}}
.viz .wire{stroke:rgba(238,243,251,.28);stroke-width:1.4;fill:none}.viz .nd{fill:#0b1426;stroke:rgba(238,243,251,.55);stroke-width:1.4}
.viz .trav{fill:var(--lamp);animation:trav 3.2s linear infinite}
@keyframes trav{0%{transform:translateX(0);opacity:0}8%{opacity:1}92%{opacity:1}100%{transform:translateX(200px);opacity:0}}
.viz .spk{fill:none;stroke:var(--lamp);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 5s ease-in-out infinite}
@keyframes draw{0%{stroke-dashoffset:1}55%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:-1}}
.viz .bar{fill:rgba(141,180,255,.75);animation:wave 2.6s ease-in-out infinite;animation-delay:calc(var(--i)*70ms)}
@keyframes wave{0%,100%{opacity:.35}50%{opacity:1}}
/* path */
.pt{max-width:20ch;margin-bottom:44px}
.path{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}
.path li{position:relative;padding-top:34px;padding-right:18px}
.path li:before{content:"";position:absolute;left:0;right:0;top:8px;height:1px;background:rgba(238,243,251,.22)}
.path li:last-child:before{right:auto;width:0}
.path .dot{position:absolute;left:0;top:0;width:17px;height:17px;border-radius:50%;background:#0b1426;border:1.5px solid rgba(238,243,251,.5);animation:lit 10s ease-in-out infinite;animation-delay:calc(var(--d)*1.6s)}
@keyframes lit{0%,4%{background:#0b1426;box-shadow:none}10%,30%{background:var(--lamp);border-color:var(--lamp);box-shadow:0 0 14px 3px rgba(255,208,138,.55)}40%,100%{background:#0b1426;border-color:rgba(238,243,251,.5);box-shadow:none}}
.path strong{display:block;font-weight:600;font-size:17px}.path small{display:block;margin-top:4px;color:rgba(238,243,251,.7);font-size:14px;line-height:1.45}
@media(max-width:860px){.path{grid-template-columns:1fr;gap:22px}.path li{padding:0 0 0 36px}.path li:before{left:8px;right:auto;width:1px;height:calc(100% + 22px);top:10px}.path li:last-child:before{height:0}.path .dot{top:2px}}
.stage .lead{max-width:40ch}

/* continuous world: the real sky sits behind every inner page */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.3s}
#bgsky{position:fixed;inset:0;width:100%;height:100%;z-index:-1;display:block}
.sec{background:rgba(11,20,38,.84)}
.sec.dark{background:linear-gradient(180deg,rgba(15,28,56,.9),rgba(11,20,38,.88))}
.phead{background:linear-gradient(180deg,rgba(11,20,38,.5) 0%,rgba(11,20,38,.64) 60%,rgba(11,20,38,.84) 100%)}
.phead:before{display:none}
/* 12 column structure */
.cols,.row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:0}
.cols>:first-child,.row>:first-child{grid-column:1/6;padding-right:24px}
.cols>:last-child,.row>:last-child{grid-column:7/13}
@media(max-width:860px){.cols,.row{grid-template-columns:1fr}.cols>:first-child,.cols>:last-child,.row>:first-child,.row>:last-child{grid-column:1/-1;padding-right:0}}
body.showgrid:after{content:"";position:fixed;top:0;bottom:0;left:var(--gut);right:var(--gut);pointer-events:none;z-index:90;background-image:linear-gradient(90deg,rgba(255,208,138,.5) 1px,transparent 1px);background-size:calc(100%/12) 100%;border-right:1px solid rgba(255,208,138,.5)}
/* nav highlight */
.hdr nav{position:relative}.hdr nav a{position:relative;z-index:1}
.navmask{position:absolute;left:0;top:0;z-index:0;border-radius:99px;background:rgba(255,208,138,.18);opacity:0;pointer-events:none;transition:transform .25s var(--ease),width .25s var(--ease),height .25s var(--ease),opacity .2s}
.hdr nav a[aria-current=page]{border-bottom-color:var(--lamp)}
/* continuation to the next page */
.next{padding:clamp(56px,8vw,110px) var(--gut);background:linear-gradient(180deg,rgba(11,20,38,.84),#070d1b)}
.next a{display:block;text-decoration:none;max-width:none}
.next small{display:block;color:rgba(238,243,251,.7);margin-bottom:10px;font-size:15px}
.next strong{font-family:"Besley",sans-serif;font-weight:600;letter-spacing:-.03em;font-size:clamp(44px,8vw,120px);line-height:1;display:inline-block;transition:color .2s,transform .3s var(--ease)}
.next a:hover strong{color:var(--lamp);transform:translateX(8px)}
.next p{margin-top:16px;color:rgba(238,243,251,.78);max-width:46ch}
.ftool{display:inline-block;margin-top:10px;margin-right:14px;font:inherit;font-size:14px;color:rgba(238,243,251,.72);background:none;border:0;padding:0}
button.ftool{cursor:pointer;text-decoration:underline;text-underline-offset:4px}
button.ftool:hover{color:var(--lamp)}
/* plain text view */
body.plain{background:#fff!important;color:#111!important;font-family:ui-monospace,Menlo,Consolas,monospace!important;font-size:16px}
body.plain *{background:none!important;color:inherit!important;font-family:inherit!important;box-shadow:none!important;text-shadow:none!important;animation:none!important;transition:none!important;!important}
body.plain #bgsky,body.plain #sky,body.plain .viz,body.plain .phead:before,body.plain .phead:after,body.plain .orrery,body.plain .lapse,body.plain .where,body.plain .panel,body.plain .tw,body.plain .simtime,body.plain .path .dot,body.plain .navmask,body.plain .hdr2,body.plain .pill{display:none!important}
body.plain .story,body.plain .stage{height:auto!important;min-height:0!important;position:relative!important}
body.plain #copy{opacity:1!important}
body.plain .hdr{position:static!important;padding-top:16px;padding-bottom:16px}
body.plain a{text-decoration:underline;color:#0030c0!important}
body.plain h1{font-size:30px!important;line-height:1.2!important;max-width:none!important}body.plain h2{font-size:22px!important;line-height:1.25!important}body.plain h3{font-size:18px!important}
body.plain .sec,body.plain .phead,body.plain .next,body.plain .ftr{padding-top:22px!important;padding-bottom:22px!important}
body.plain .row,body.plain .rows,body.plain .steps li{border-color:#999!important}
body.plain .btn{border:1px solid #111!important;border-radius:0!important}
body.plain .next strong{font-size:26px!important;transform:none!important}
body.plain .demo{border:1px solid #999!important}
.phead+.sec,.phead+section{padding-top:clamp(48px,6vw,88px)!important}

/* v3 motion: every effect maps to something the business does */
/* headline mask reveal */
.fx .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.fx .w>span{display:inline-block;transform:translateY(112%);transition:transform 1s var(--ease) calc(var(--k)*65ms)}
.fx .go .w>span,.fx h2.in .w>span{transform:none}
/* hairlines draw themselves */
.fx .row,.fx .steps li{position:relative;border-bottom-color:transparent}
.fx .row:after,.fx .steps li:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:rgba(238,243,251,.18);transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease)}
.fx .row.in:after,.fx .steps li.in:after{transform:none}
/* row spotlight follows the pointer */
.row{--mx:50%;--my:50%}
.row:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(255,208,138,.08),transparent 65%)}
.row:hover:before{opacity:1}.row{position:relative}
.row>*{position:relative}
/* illustrations play only when seen */
.fx .row .viz *{animation-play-state:paused}.fx .row.in .viz *{animation-play-state:running}
.row .viz{width:min(340px,100%);height:auto;margin-top:26px}
/* enquiry path scrubbed by scroll */
.fx .path .dot{animation:none;background:#0b1426;transition:background .3s,box-shadow .3s,border-color .3s}
.fx .path li.on .dot{background:var(--lamp);border-color:var(--lamp);box-shadow:0 0 14px 3px rgba(255,208,138,.55)}
.fx .path li:after{content:"";position:absolute;left:0;right:0;top:8px;height:1px;background:var(--lamp);transform:scaleX(var(--f,0));transform-origin:left}
.fx .path li:last-child:after{display:none}
.fx .path li strong,.fx .path li small{transition:opacity .4s,transform .5s var(--ease);opacity:.8}
.fx .path li.on strong,.fx .path li.on small{opacity:1}
.pulse{position:absolute;top:0;left:calc(80% * var(--p,0));width:17px;height:17px;border-radius:50%;background:#fff3d9;box-shadow:0 0 26px 8px rgba(255,208,138,.75);z-index:2;pointer-events:none}
@media(max-width:860px){.pulse{left:0;top:calc(2px + (var(--pe,100px) - 2px) * var(--p,0))}}
/* spine: scroll position and section links */
.spine{position:fixed;left:calc(var(--gut)/2 - 1px);top:24vh;height:52vh;width:2px;z-index:15;pointer-events:none}
.spine .sl{position:absolute;inset:0;background:rgba(238,243,251,.16)}
.spine .sd{position:absolute;left:-4px;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--lamp);box-shadow:0 0 14px 4px rgba(255,208,138,.6);transition:top .15s linear}
.spine .sn{position:absolute;left:-3px;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#0b1426;border:1px solid rgba(238,243,251,.4);transition:background .3s,border-color .3s}
.spine .sn.on{background:var(--lamp);border-color:var(--lamp)}
@media(max-width:1000px){.spine{display:none}}
/* services: four layers */
.svc .stack{display:none}
@media(min-width:1100px){
 .svc{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
 .svc .stack{display:block;grid-column:1/4;position:sticky;top:18vh;align-self:start;height:fit-content;padding-right:20px}
 .svc .rows{grid-column:4/13;display:grid;grid-template-columns:subgrid}
 .svc .row{grid-column:1/-1;display:grid;grid-template-columns:subgrid;column-gap:0}
 .svc .row>:first-child{grid-column:1/5;padding-right:20px}.svc .row>:last-child{grid-column:5/10}
}
.stack{perspective:900px}
.plates{position:relative;width:150px;height:150px;margin:40px 0 90px 14px;transform:rotateX(60deg) rotateZ(-36deg);transform-style:preserve-3d}
.pl{position:absolute;inset:0;border-radius:12px;border:1px solid rgba(238,243,251,.34);background:rgba(15,28,56,.72) radial-gradient(circle,rgba(238,243,251,.28) 1px,transparent 1.5px) 0 0/18px 18px;transform:translateZ(calc(var(--i) * 38px));transition:transform .6s var(--ease),background-color .4s,border-color .4s,box-shadow .4s}
.pl.on{border-color:var(--lamp);background-color:rgba(255,208,138,.2);box-shadow:0 0 34px rgba(255,208,138,.4);transform:translateZ(calc(var(--i) * 38px + 18px))}
.plates:after{content:"";position:absolute;left:50%;top:50%;width:11px;height:11px;margin:-5px;border-radius:50%;background:#fff3d9;box-shadow:0 0 18px 6px rgba(255,208,138,.8);animation:rise3d 4.2s ease-in-out infinite}
@keyframes rise3d{0%{transform:translateZ(0);opacity:0}10%{opacity:1}85%{opacity:1}100%{transform:translateZ(120px);opacity:0}}
.stack ul{list-style:none;display:grid;gap:6px;font-size:15px}
.stack li{color:rgba(238,243,251,.5);transition:color .3s,transform .4s var(--ease)}
.stack li.on{color:var(--lamp);transform:translateX(8px)}
.stack p{margin-top:16px;font-size:14px;color:rgba(238,243,251,.62);max-width:20ch}
/* contact: the tower */
.cform{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.cform form.contact{grid-column:1/9;max-width:none}
.cform .tower{grid-column:10/13;grid-row:1;align-self:start;display:none}
.cform .meta{grid-column:1/-1}
@media(min-width:980px){.cform .tower{display:block}}
.tower{position:sticky;top:18vh}
.tb{display:flex;flex-direction:column;border:1px solid rgba(238,243,251,.32);border-bottom-width:3px;border-radius:6px 6px 0 0;background:rgba(15,28,56,.6);padding:8px}
.fl{display:grid;grid-template-columns:1fr repeat(3,14px);gap:8px;align-items:center;padding:11px 8px;border-bottom:1px dashed rgba(238,243,251,.12);color:rgba(238,243,251,.4);font-size:14px}
.fl:last-child{border:0}
.fl i{height:20px;border-radius:2px;background:rgba(238,243,251,.08);transition:background .4s,box-shadow .4s}
.fl i:nth-of-type(2){transition-delay:.08s}.fl i:nth-of-type(3){transition-delay:.16s}
.fl.on{color:var(--lamp)}.fl.on i{background:var(--lamp);box-shadow:0 0 12px rgba(255,208,138,.55)}
.beacon{width:2px;height:34px;margin:0 auto;background:rgba(238,243,251,.4);position:relative}
.beacon:after{content:"";position:absolute;left:-4px;top:-8px;width:10px;height:10px;border-radius:50%;background:#3a2a1a;transition:background .3s,box-shadow .3s}
.tower.full .beacon:after{background:var(--lamp);box-shadow:0 0 16px 5px rgba(255,208,138,.6)}
.tower.sent .beacon:after{animation:bk 1s ease-in-out 4}
.tower.sent .fl i{animation:flo 1.2s ease-in-out}
.tower.sent .fl:nth-last-child(2) i{animation-delay:.15s}.tower.sent .fl:nth-last-child(3) i{animation-delay:.3s}.tower.sent .fl:nth-last-child(4) i{animation-delay:.45s}.tower.sent .fl:nth-last-child(5) i{animation-delay:.6s}
@keyframes bk{50%{opacity:.2}}@keyframes flo{40%{background:#fff;box-shadow:0 0 22px 6px rgba(255,236,190,.9)}}
.tower p{margin-top:14px;font-size:14px;color:rgba(238,243,251,.62);max-width:22ch}
/* lamp cursor */
.btn,.hdr nav a.cta{transition:transform .25s var(--ease),background .2s}
/* next strip: letters lean on hover */
.next a:hover strong{letter-spacing:-.01em}
.next strong{transition:color .2s,transform .3s var(--ease),letter-spacing .4s var(--ease)}
body.plain .spine,body.plain .stack,body.plain .tower,body.plain .pulse{display:none!important}
body.plain .fx .w>span,body.plain .w>span{transform:none!important}

/* v4: real logo, quiet details, living-site layer */
.logo{gap:0}.logo .cosw{width:auto;height:30px;fill:currentColor}.cosw{fill:currentColor;display:block}.cosw .st{fill:var(--lamp)}
.hdr:not(.hdr2) .logo{color:#eef3fb}.hdr2 .logo{color:#eef3fb}
.ftr .lock{display:flex;flex-direction:column;align-items:center;gap:14px;padding:0 0 clamp(36px,5vw,64px);text-align:center;color:rgba(238,243,251,.5)}
.ftr .lock .cosw{width:min(420px,70vw);height:auto;fill:#9fd2ff;opacity:.9}
.ftr .lock span{font:500 clamp(15px,2vw,19px)/1 "Besley",serif;letter-spacing:.02em}
.ftr .close{margin-top:14px;color:rgba(238,243,251,.6)}
.ftr .age{color:rgba(238,243,251,.72);font-size:14px}
.loop{position:relative;width:min(300px,70vw);aspect-ratio:1;margin:0 auto 28px;border:1px solid rgba(238,243,251,.28);border-radius:50%}
.loop span{position:absolute;font-size:14px;color:rgba(238,243,251,.85)}
.loop .st1{top:-12px;left:50%;transform:translateX(-50%);background:var(--night);padding:0 8px}.loop .st2{right:-14px;top:50%;transform:translateY(-50%);background:var(--night);padding:0 8px}.loop .st3{bottom:-12px;left:50%;transform:translateX(-50%);background:var(--night);padding:0 8px}.loop .st4{left:-14px;top:50%;transform:translateY(-50%);background:var(--night);padding:0 8px}
.loop em{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;font:500 20px/1.2 "Besley",serif;font-style:normal;color:var(--lamp)}
.loop .arm{position:absolute;inset:0;animation:spin 24s linear infinite}.loop .arm b{position:absolute;top:-4px;left:50%;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--lamp)}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.loop .arm{animation:none}}
.principles.lp{margin-top:8px}
.logtbl{border-top:1px solid var(--rule)}.logrow{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--rule)}.logrow time{font-weight:600}.logrow p{max-width:60ch}
.stat{display:flex;gap:40px;flex-wrap:wrap;margin:8px 0 0}.stat div strong{display:block;font:600 clamp(34px,5vw,56px)/1 "Besley",serif}.stat div span{font-size:15px;opacity:.75}
@media (max-width:640px){.logrow{grid-template-columns:1fr;gap:6px}}

/* v4.1 master colours: logo red #8a1400 on cream #fffae0, reversed on night */
.hdr .logo,.hdr2 .logo{color:#fffae0}
.ftr .lock{background:#fffae0;color:#8a1400;margin:calc(-1*clamp(40px,6vw,72px)) calc(-1*var(--gut)) clamp(36px,5vw,60px);padding:clamp(40px,6vw,76px) var(--gut)}
.ftr .lock .cosw{fill:#8a1400;opacity:1;width:min(380px,70vw)}.ftr .lock .cosw .st{fill:#8a1400}
.ftr .lock span{color:#8a1400;opacity:.85}

/* v4.2 inner page heads: a lit skyline fills the space, not empty navy */
.phead{padding-bottom:clamp(150px,17vw,240px)}
.phead:after{height:clamp(110px,15vw,210px);background:url(hz.svg) bottom/100% 100% no-repeat!important}
.ftr .lock .cosw .st{fill:#8a1400!important}

/* v4.3 true brand: blue #0068b9, black tagline. Reversed light blue on night, true colours on white */
.hdr .logo,.hdr2 .logo{color:#5aaaf2}.cosw .st{fill:currentColor!important}
.ftr .lock{background:#f6f8fb;color:#0b1426}
.ftr .lock .cosw,.ftr .lock .cosw .st{fill:#0068b9!important;color:#0068b9}
.ftr .lock span{color:#0b1426!important;opacity:1;font-weight:400}

.faq{border-top:1px solid rgba(238,243,251,.16)}.faq details{border-bottom:1px solid rgba(238,243,251,.16)}
.faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;font:600 clamp(19px,1.7vw,24px)/1.25 "Besley",sans-serif;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"";position:absolute;right:6px;top:50%;width:10px;height:10px;margin-top:-8px;border-right:2px solid var(--lamp);border-bottom:2px solid var(--lamp);transform:rotate(45deg);transition:transform .3s var(--ease)}
.faq details[open] summary:after{transform:rotate(225deg);margin-top:-2px}
.faq summary:hover{color:var(--lamp)}.faq details p{padding:0 40px 22px 0;color:rgba(238,243,251,.8);max-width:56ch}

/* v4.4 footer: structured, no lockup */
.ftr{padding:clamp(48px,6vw,84px) var(--gut) 28px;background:#070d1b}
.ftr .fgrid{display:grid;grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,2fr));gap:clamp(28px,5vw,72px)}
.ftr .fb .logo{display:inline-block;margin-bottom:18px}.ftr .fb .logo .cosw{height:38px;color:#5aaaf2}
.ftr .fb p{color:rgba(238,243,251,.8);max-width:30ch}.ftr .faddr{margin-top:16px;font-size:14px;color:rgba(238,243,251,.6)!important}
.ftr h2,.ftr .fh{display:block;font:600 15px/1 "Schibsted Grotesk",sans-serif;color:rgba(238,243,251,.55);margin-bottom:16px;letter-spacing:.02em}
.ftr nav,.ftr .fr{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.ftr nav a,.ftr .fr a{text-decoration:none;color:rgba(238,243,251,.88)}.ftr nav a:hover,.ftr .fr a:hover{color:var(--lamp)}
.ftr .ftool{margin:0}.ftr .fbase{margin-top:clamp(36px,5vw,64px);padding-top:20px;border-top:1px solid rgba(238,243,251,.12);font-size:14px;color:rgba(238,243,251,.55)}
@media(max-width:860px){.ftr .fgrid{grid-template-columns:1fr 1fr}.ftr .fb{grid-column:1/-1}}

.bgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.bcard{display:flex;flex-direction:column;gap:12px;padding:28px;border:1px solid rgba(238,243,251,.16);border-radius:14px;background:rgba(15,28,56,.5);text-decoration:none;transition:border-color .25s,transform .35s var(--ease),background .25s}
.bcard small{color:var(--lamp);font-size:14px}.bcard h3{font-size:clamp(22px,2vw,28px)}.bcard p{color:rgba(238,243,251,.75);font-size:16px}
.bcard span{margin-top:auto;padding-top:10px;color:var(--lamp);text-underline-offset:4px;text-decoration:underline}
.bcard:hover{border-color:var(--lamp);transform:translateY(-3px);background:rgba(23,42,82,.6)}
.post h2{font-size:clamp(24px,2.4vw,34px);margin:34px 0 10px}.post p{margin-top:10px;color:rgba(238,243,251,.82)}.post .lead{margin-top:0}.post .principles{margin:14px 0}
@media(max-width:980px){.bgrid{grid-template-columns:1fr}}
/* v6 descent */
.descent{position:relative;height:520svh;margin-top:-34svh;z-index:2}
.descent .pin{position:sticky;top:0;height:100svh;overflow:hidden;background:var(--night);--mh:0px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--mh));mask-image:linear-gradient(to bottom,transparent 0,#000 var(--mh))}
#dcv{position:absolute;inset:0;width:100%;height:100%;display:block}
.dcap{position:absolute;left:var(--gut);right:var(--gut);top:clamp(88px,14vh,150px);opacity:0;pointer-events:none;color:#f4f7fc;text-shadow:0 1px 3px rgba(5,10,22,.55),0 2px 26px rgba(5,10,22,.8);isolation:isolate;--sc:.62}
.dcap::before{content:"";position:absolute;z-index:-1;inset:-12svh -14vw -10svh calc(var(--gut) * -1);pointer-events:none;background:radial-gradient(ellipse 62% 78% at 28% 42%,rgba(4,8,20,var(--sc)) 0,rgba(4,8,20,calc(var(--sc) * .62)) 46%,rgba(4,8,20,0) 78%)}
.dcap.dlast::before{inset:-14svh -14vw -12svh calc(var(--gut) * -1)}
.dcap.dstrong{--sc:.88}
.dcap p{font-family:"Besley",system-ui,sans-serif;font-size:clamp(30px,5.4vw,76px);line-height:1.04;letter-spacing:-.02em;margin:0;max-width:16ch}
.dcap.dlast{top:auto;bottom:clamp(96px,16vh,150px);max-width:min(720px,100%);pointer-events:auto}
.dcap.dlast h2{font-size:clamp(28px,4vw,52px);line-height:1.08;margin:0 0 14px;max-width:18ch}
.dcap.dlast .lead{margin:0 0 22px;max-width:46ch;font-size:clamp(16px,1.4vw,19px)}
.dbar{position:absolute;left:var(--gut);right:var(--gut);bottom:14px;display:flex;gap:10px 24px;flex-wrap:wrap;align-items:center;color:rgba(238,243,251,.78);font-size:13px;text-shadow:0 1px 8px rgba(5,10,22,.8)}
.dbar label{display:flex;gap:8px;align-items:center}
.dbar select{font:inherit;color:#eef3fb;background:rgba(11,20,38,.82);border:1px solid rgba(238,243,251,.3);border-radius:6px;padding:6px 10px;min-height:36px;max-width:200px}
.dbar select:focus-visible{outline:2px solid var(--lamp);outline-offset:2px}
.dbar p{margin:0;max-width:78ch;line-height:1.45}
@media(max-width:700px){.dbar p{font-size:12px}.dcap.dlast{bottom:clamp(120px,20vh,170px)}}
body.plain .descent{display:none}
@media (prefers-reduced-motion:reduce){.descent{height:auto}.descent .pin{position:relative;height:88svh}.dcap{opacity:1!important;transform:none!important}.dcap[data-a="0.02"],.dcap[data-a="0.34"]{display:none}}
.fnote p{max-width:60ch;margin:0 0 16px;line-height:1.65}
.fnote .sig{margin-top:26px;line-height:1.5}
.quote{margin:0;border-left:3px solid var(--lamp);padding:4px 0 4px clamp(18px,3vw,32px)}
.quote blockquote{margin:0}
.quote p{font-family:"Besley",system-ui,sans-serif;font-size:clamp(22px,2.6vw,32px);line-height:1.3;letter-spacing:-.01em;margin:0 0 18px;max-width:30ch}
.quote figcaption{font-size:14px;color:rgba(238,243,251,.74);line-height:1.6}
.quote figcaption span{font-size:13px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.dcap .dsub{display:block;margin-top:.7em;font-size:clamp(16px,1.9vw,28px);line-height:1.3;letter-spacing:0;font-weight:400;opacity:.96;max-width:26ch}

/* the world continues under the page after the descent (home) */
#bgsky.hbg,.bgedge{opacity:0;transition:opacity .9s}
body.afterworld #bgsky.hbg,body.afterworld .bgedge{opacity:1}
.bgedge{position:fixed;left:0;right:0;bottom:0;height:24vh;z-index:-1;pointer-events:none;background:url(hz.svg) bottom/100% 100% no-repeat;filter:brightness(.8)}
body.hashbg .sec{background:rgba(11,20,38,.72)}
body.hashbg .sec.dark{background:linear-gradient(180deg,rgba(15,28,56,.8),rgba(11,20,38,.78))}
body.plain #bgsky.hbg,body.plain .bgedge{display:none}

body.plain .descent{margin-top:0}@media (prefers-reduced-motion:reduce){.descent{margin-top:0}.descent .pin{-webkit-mask-image:none;mask-image:none}}
@media(max-width:860px){.fx .path li:after{left:8px;right:auto;width:1px;height:calc(100% + 22px);top:10px;transform:scaleY(var(--f,0));transform-origin:top}.fx .path li:last-child:after{display:none}}
/* problem to solution system */
.eyebrow{display:flex;align-items:center;gap:12px;font:600 13px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--lamp);margin-bottom:24px}
.eyebrow:before{content:"";width:34px;height:1px;background:currentColor}
.phead h1{letter-spacing:-.028em}
.ps{margin:0 0 18px;padding:14px 18px;border-left:2px solid #ff8a6b;background:linear-gradient(90deg,rgba(255,138,107,.09),rgba(255,138,107,0));border-radius:0 10px 10px 0}
.ps .k{display:block;font:600 12px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#ff9d80;margin-bottom:8px}
.ps p,.row .ps p{margin:0;color:rgba(244,247,252,.95);font-size:1.04em}
.sol{display:block;font:600 12px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--lamp);margin:0 0 8px}
.rows.numd{counter-reset:rw}
.rows.numd .row h3:before{counter-increment:rw;content:"0" counter(rw);display:block;font:600 13px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.16em;color:var(--lamp);margin-bottom:14px}
.row:hover .ps{background:linear-gradient(90deg,rgba(255,138,107,.16),rgba(255,138,107,0))}
.ps{transition:background .3s}
body.plain .ps{border-left-color:#999;background:none}
/* case journey and cards */
.cj{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:cj}
.cj li{position:relative;background:rgba(255,255,255,.04);border:1px solid rgba(238,243,251,.13);border-radius:14px;padding:22px 20px 24px;transition:transform .35s var(--ease),border-color .3s,background .3s}
.cj li:hover{transform:translateY(-4px);border-color:rgba(255,208,138,.55);background:rgba(255,255,255,.06)}
.cj li:not(:last-child):after{content:"";position:absolute;top:36px;right:-17px;width:18px;height:1px;background:rgba(255,208,138,.6)}
.cj .chip{display:inline-block;font:600 11px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#0b1426;background:var(--lamp);padding:7px 10px;border-radius:99px;margin-bottom:16px}
.cj .wait .chip{background:transparent;color:var(--lamp);border:1px solid var(--lamp)}
.cj h3{font-size:clamp(18px,1.5vw,22px);line-height:1.2;margin-bottom:10px}
.cj p,.cj li li{color:rgba(238,243,251,.8);font-size:15px;line-height:1.55}
.cj ul{list-style:none;display:grid;gap:9px;margin:0}
.cj ul li{position:static;background:none;border:0;border-radius:0;padding:0 0 0 14px;transform:none}
.cj ul li:before{content:"";position:absolute;margin:8px 0 0 -14px;width:6px;height:1px;background:var(--lamp)}
.cj ul li:after,.cj ul li:hover{display:none;transform:none;background:none}
@media(max-width:1000px){.cj{grid-template-columns:1fr 1fr}.cj li:after{display:none}}
@media(max-width:620px){.cj{grid-template-columns:1fr}}
.principles.cards{grid-template-columns:1fr 1fr;gap:16px}
.principles.cards li{max-width:none;border:1px solid rgba(238,243,251,.13);border-top:2px solid var(--lamp);border-radius:12px;padding:22px 20px;background:rgba(255,255,255,.04);transition:transform .35s var(--ease),background .3s}
.principles.cards li:hover{transform:translateY(-3px);background:rgba(255,255,255,.07)}
.principles.cards li strong{display:block;font-size:1.08em;margin-bottom:6px}
@media(max-width:700px){.principles.cards{grid-template-columns:1fr}}
.fnote .lead{font-size:clamp(22px,2.3vw,32px);line-height:1.3;color:#f4f7fc}
.nx3{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:30px;max-width:900px}
.nx3 li{display:grid;grid-template-columns:34px 1fr;column-gap:12px;padding:16px 18px;border:1px solid rgba(238,243,251,.14);border-radius:12px;background:rgba(255,255,255,.04)}
.nx3 b{grid-row:span 2;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--lamp);color:#0b1426;font:700 14px "Schibsted Grotesk",sans-serif}
.nx3 span{font-weight:600}.nx3 small{color:rgba(238,243,251,.72);font-size:14px;line-height:1.4}
@media(max-width:760px){.nx3{grid-template-columns:1fr}}
/* post end and log rail */
.pcta{border-top:1px solid rgba(238,243,251,.14)}
.pcta .ps{max-width:640px}
.pcta h2{font-size:clamp(26px,3vw,40px);max-width:20ch}
.more3{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin-top:34px;padding-top:20px;border-top:1px solid rgba(238,243,251,.12)}
.more3 small{color:rgba(238,243,251,.6);letter-spacing:.14em;text-transform:uppercase;font-size:12px}
.more3 a{color:var(--lamp);text-underline-offset:4px}
.logtbl{position:relative}
.logrow{position:relative}
.logrow:before{content:"";position:absolute;left:162px;top:30px;width:9px;height:9px;border-radius:50%;background:var(--lamp);box-shadow:0 0 12px 2px rgba(255,208,138,.45)}
.logrow:after{content:"";position:absolute;left:166px;top:46px;bottom:-24px;width:1px;background:rgba(255,208,138,.25)}
.logrow:last-child:after{display:none}
.logrow{grid-template-columns:150px 40px 1fr}
.logrow>div{grid-column:3}
@media(max-width:640px){.logrow:before,.logrow:after{display:none}.logrow{grid-template-columns:1fr}.logrow>div{grid-column:1}}

.dvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:var(--night)}
.descent.clip #dcv{display:none}
.descent.clip .dbar label{display:none}
.dtint{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1.2s}
.dwx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.descent.clip .dcap p,.descent.clip .dcap h2,.descent.clip .dbar p{text-shadow:0 1px 14px rgba(5,10,25,.7),0 0 2px rgba(5,10,25,.45)}
@media(min-width:861px) and (max-height:780px){.simtime{display:none}}
@media(max-width:860px) and (max-height:700px) and (orientation:portrait){.stage .inner{padding-top:78px}.stage h1{font-size:clamp(28px,8.4vw,36px)}.stage .lead{font-size:14px;margin-top:10px;max-width:34ch;line-height:1.4}.stage .btns{margin-top:14px}.stage .btn{padding:10px 16px;font-size:14px}.simtime{display:none}.where{margin-bottom:8px}}
@media(max-height:480px) and (orientation:landscape){.stage .inner{padding-top:64px}.stage h1{font-size:clamp(22px,4.4vw,30px);max-width:19ch}.stage .lead{font-size:13px;margin-top:8px;max-width:40ch;line-height:1.35}.stage .btns{margin-top:10px}.stage .btn{padding:8px 14px;font-size:13px}.simtime{display:none}.where{display:none}}
@media(max-width:860px){.cform form.contact{grid-column:1/-1}}
.tw.pend{visibility:hidden}

.tw span{transition:transform .25s ease,border-color .25s ease,background .25s ease}.tw:hover span,.tw:focus-visible span{border-color:currentColor;font-weight:600;transform:translateX(-50%) translateY(-3px);background:rgba(var(--scrim),.85)}

html.art .phead:after{display:none}

h2.h3{font-size:clamp(26px,2.6vw,36px);line-height:1.1}.row:hover h2.h3{color:var(--lamp)}.row h2.h3{transition:color .2s}.bcard h2.h3{font-size:clamp(22px,2vw,28px)}

/* mobile menu */
.mbtn{display:none;width:44px;height:44px;margin-left:8px;border:1px solid currentColor;border-radius:99px;background:transparent;color:inherit;cursor:pointer;position:relative;padding:0}
.mbtn i{position:absolute;left:13px;right:13px;height:1.6px;background:currentColor;border-radius:2px;transition:transform .3s var(--ease),top .3s var(--ease)}
.mbtn i:first-child{top:18px}.mbtn i:last-child{top:25px}
.hdr.open .mbtn i:first-child{top:21.5px;transform:rotate(45deg)}.hdr.open .mbtn i:last-child{top:21.5px;transform:rotate(-45deg)}
.mbtn:focus-visible{outline:2px solid var(--lamp);outline-offset:3px}
.mpanel{position:absolute;left:0;right:0;top:100%;display:none;flex-direction:column;padding:6px var(--gut) 22px;background:rgba(11,20,38,.97);color:#f4f7fc;border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);opacity:0;transform:translateY(-8px);visibility:hidden;transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s}
.mpanel a{font-size:24px;font-family:var(--display,inherit);text-decoration:none;padding:15px 2px;border-bottom:1px solid rgba(255,255,255,.1);opacity:0;transform:translateY(6px);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.mpanel a[aria-current=page]{color:var(--lamp)}
.hdr.open .mpanel{opacity:1;transform:none;visibility:visible}
.hdr.open .mpanel a{opacity:1;transform:none}
.hdr.open .mpanel a:nth-child(2){transition-delay:.04s}.hdr.open .mpanel a:nth-child(3){transition-delay:.08s}.hdr.open .mpanel a:nth-child(4){transition-delay:.12s}.hdr.open .mpanel a:nth-child(5){transition-delay:.16s}
@media(max-width:860px){.mbtn{display:inline-block}.mpanel{display:flex}.hdr.hdr2:not(.show) .mpanel{display:none}}
@media(min-width:861px){.mpanel{display:none!important}}
@media(prefers-reduced-motion:reduce){.mpanel,.mpanel a,.mbtn i{transition:none}}
html.art .bgedge{display:none}

/* hero scroll panels: same weight as the opening screen */
.panel .pk{display:inline-flex;align-items:center;gap:12px;font:600 14px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.06em;padding:10px 14px 10px 16px;background:#0f5c4f;color:#f4f7fc;border:2px solid #f4f7fc;border-radius:4px;box-shadow:0 0 0 2px #0f5c4f,0 8px 22px rgba(0,0,0,.35);margin-bottom:20px}
.panel .pk:after{content:"\2192";font-size:17px;line-height:1}
.panel .pf{margin-top:18px;padding-left:14px;border-left:2px solid var(--lamp,#ffd08a);font-size:clamp(15px,1.3vw,17px);line-height:1.5;opacity:.82}
.panel .pf b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-bottom:3px;opacity:.8}
.panel .btn{margin-top:22px;padding:12px 22px;font-size:15px;text-underline-offset:0;text-decoration:none}
@media(max-width:860px){.panel{top:100px}.panel h2{font-size:clamp(32px,9vw,44px)}}
/* transitions: header holds still between pages, anchors clear the header, reduced motion covers page changes too */
.hdr:not(.hdr2){view-transition-name:site-hdr}
::view-transition-group(site-hdr){animation-duration:.3s}
.row[id],section[id],[id].sec{scroll-margin-top:84px}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* storefront: the descent ends at a shop door that is the enquiry button */
.dcap.dlast .shopfront{position:relative;padding:calc(44px + 18px) clamp(18px,2.4vw,30px) clamp(18px,2.4vw,26px);border-radius:6px 6px 14px 14px;background:linear-gradient(180deg,rgba(10,18,36,.72),rgba(10,18,36,.86));border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 50px rgba(3,8,20,.5),inset 0 0 40px rgba(255,214,140,.06);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.shopfront .awn{position:absolute;left:-6px;right:-6px;top:-14px;height:34px;border-radius:6px 6px 0 0;background:repeating-linear-gradient(90deg,#e9eef7 0 26px,#2f6df6 26px 52px);box-shadow:0 8px 14px rgba(3,8,20,.45);clip-path:polygon(0 0,100% 0,100% 70%,96% 100%,92% 70%,88% 100%,84% 70%,80% 100%,76% 70%,72% 100%,68% 70%,64% 100%,60% 70%,56% 100%,52% 70%,48% 100%,44% 70%,40% 100%,36% 70%,32% 100%,28% 70%,24% 100%,20% 70%,16% 100%,12% 70%,8% 100%,4% 70%,0 100%)}
.shopsign{position:absolute;top:22px;left:clamp(18px,2.4vw,30px);right:clamp(18px,2.4vw,30px);display:flex;align-items:center;gap:8px;font:600 11px/1 "Inter",system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#cfe0ff}
.shopsign i{width:7px;height:7px;border-radius:50%;background:#bfe0ff;box-shadow:0 0 10px #7fc0ff;animation:shopglow 2.8s ease-in-out infinite}
.shopsign span{margin-left:auto;padding:3px 8px;border:1px solid #bfe0ff;border-radius:3px;color:#bfe0ff;box-shadow:0 0 12px rgba(127,192,255,.3)}
.dcap.dlast .shopfront h2{margin-top:6px}
.btn.door{position:relative;padding-left:46px}
.btn.door::before{content:"";position:absolute;left:18px;top:50%;width:11px;height:17px;margin-top:-9px;border:2px solid currentColor;border-radius:2px 2px 0 0;box-sizing:border-box}
.btn.door::after{content:"";position:absolute;left:23px;top:50%;width:2px;height:2px;margin-top:1px;border-radius:50%;background:currentColor}
@keyframes shopglow{50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.shopsign i{animation:none}}
@media(max-width:700px){.dcap.dlast .shopfront{padding-top:58px}}

/* the drawn shop sets the card position: its awning ends at 40 percent of the frame */
.dcap.dlast{top:9%;bottom:auto}
@media(max-width:700px){.dcap.dlast{top:9%;bottom:auto}}
.descent.shopdrawn .shopfront .awn{display:none}
.descent.shopdrawn .dcap.dlast .shopfront{padding-top:calc(30px + 14px);border-radius:0 0 14px 14px;border-top:0;border-color:rgba(190,225,255,.22)}
.descent.shopdrawn .shopsign{top:12px}
/* a11y: comfortable touch targets on touch devices */
@media (pointer:coarse){
.ftr a,.fgrid a{display:inline-block;min-height:44px;line-height:44px;padding-block:0}
.ftr .fb a.logo{line-height:normal;display:inline-flex;align-items:center}
a.more{display:inline-flex;align-items:center;min-height:44px}
.lapse,.dbar select{min-height:44px}
.hdr .logo,.hdr2 .logo{min-height:44px;display:inline-flex;align-items:center}
.ftr a.logo{min-height:44px;display:inline-flex;align-items:center}
}

/* footer v3: three zones, closing skyline, one clear action */
.ftr{position:relative;overflow:hidden;background:#070d1b;padding:clamp(120px,13vw,150px) var(--gut) 26px;border-top:0}
.ftr::before{content:"";position:absolute;left:0;right:0;top:0;height:90px;background:url(footer-skyline.svg) center bottom/auto 90px repeat-x;opacity:.75;-webkit-mask-image:linear-gradient(180deg,transparent,#000 55%);mask-image:linear-gradient(180deg,transparent,#000 55%);pointer-events:none}
.ftr::after{content:"";position:absolute;left:0;right:0;top:89px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,208,138,.35),transparent)}
.ftr .fgrid{position:relative;display:grid;grid-template-columns:minmax(0,4.4fr) minmax(0,3.2fr) minmax(0,3.4fr);gap:clamp(32px,5vw,80px);align-items:start}
.ftr .fb{grid-column:auto}
.ftr .fb .logo .cosw{height:44px;color:#5aaaf2}
.ftr .fb .ftag{font:600 clamp(24px,2.5vw,32px)/1.18 "Besley",sans-serif;letter-spacing:-.02em;color:#f4f7fc;max-width:17ch;margin:22px 0 0;text-wrap:balance}
.ftr .fb .fdesc{margin:14px 0 0;max-width:36ch;font-size:16px;line-height:1.5;color:rgba(238,243,251,.72)}
.ftr .flinks{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,48px)}
.ftr nav{display:flex;flex-direction:column;align-items:flex-start}
.ftr .fh{font:600 12px/1 "Schibsted Grotesk",sans-serif;text-transform:uppercase;letter-spacing:.12em;color:rgba(238,243,251,.55);margin:6px 0 14px;padding-bottom:12px;border-bottom:1px solid rgba(238,243,251,.14);align-self:stretch}
.ftr nav a{display:inline-block;min-height:44px;line-height:44px;font-size:17px;color:#f1f5fc;text-decoration:none;transition:color .2s,transform .25s var(--ease)}
.ftr nav a:hover{color:var(--lamp);transform:translateX(4px)}
.ftr .fstart .fask{font:500 20px/1.3 "Besley",sans-serif;color:#f4f7fc;margin:0 0 20px;max-width:22ch}
.ftr .fbtn{display:inline-flex;align-items:center;min-height:48px;padding:0 26px;border-radius:99px;background:var(--lamp);color:#0b1426;font-weight:600;font-size:16px;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s,background .2s}
.ftr .fbtn:hover{background:#ffe0ab;transform:translateY(-2px);box-shadow:0 8px 28px rgba(255,208,138,.28)}
.ftr .fnote{display:block;margin-top:14px;font-size:14px;line-height:1.4;color:rgba(238,243,251,.62);max-width:30ch}
.ftr .fbase{position:relative;display:flex;justify-content:space-between;align-items:center;gap:6px 28px;flex-wrap:wrap;margin-top:clamp(40px,6vw,72px);padding-top:18px;border-top:1px solid rgba(238,243,251,.12);font-size:13.5px;color:rgba(238,243,251,.58)}
.ftr .fmeta{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.ftr .fmeta a,.ftr .fmeta .ftool{margin:0;min-height:44px;line-height:44px;display:inline-block;font-size:13.5px;color:rgba(238,243,251,.68);text-decoration:none;text-underline-offset:4px}
.ftr .fmeta a:hover,.ftr .fmeta .ftool:hover{color:var(--lamp)}
.ftr .fmeta .ftool{text-decoration:underline}
@media (max-width:960px){
.ftr .fgrid{grid-template-columns:1fr 1fr;gap:34px 24px}
.ftr .fb{grid-column:1/-1}
.ftr .flinks{grid-column:1/2;grid-template-columns:1fr}
.ftr .fstart{grid-column:2/3}
}
@media (max-width:620px){
.ftr .fgrid{grid-template-columns:1fr}
.ftr .flinks,.ftr .fstart{grid-column:1/-1}
.ftr .flinks{grid-template-columns:1fr 1fr}
.ftr .fbase{flex-direction:column;align-items:flex-start;gap:0}
}
@media (prefers-reduced-motion:reduce){.ftr nav a,.ftr .fbtn{transition:none}.ftr nav a:hover,.ftr .fbtn:hover{transform:none}}
/* serif headings: tune what the grotesque used to set */
h1,h2,h3{font-weight:400;letter-spacing:-.012em;line-height:1.08}
.phead h1,.phead h1{letter-spacing:-.012em}
.stage h1{font-size:clamp(34px,3.6vw,56px);line-height:1.08;max-width:19ch}
.phead h1{font-size:clamp(38px,4.8vw,72px);max-width:18ch}
@media(max-width:860px){.stage h1{font-size:clamp(30px,8vw,40px);max-width:none}}
/* footer motion: canvas replaces the still strip once the script runs */
.ftr .fsky{position:absolute;left:0;top:0;width:100%;height:90px;display:block;pointer-events:none;opacity:.8;-webkit-mask-image:linear-gradient(180deg,transparent,#000 55%);mask-image:linear-gradient(180deg,transparent,#000 55%)}
.ftr.fxon::before{display:none}
body.plain .ftr .fsky{display:none}

/* services: editorial chapters instead of problem and solution cards */
.svcp .rows{counter-reset:svc}
.svcp .row{counter-increment:svc;padding-top:clamp(44px,6vw,84px);padding-bottom:clamp(44px,6vw,84px)}
.svcp .row>:first-child::before{content:counter(svc,decimal-leading-zero);display:block;font:400 clamp(84px,10vw,160px)/.85 "Besley",serif;color:transparent;-webkit-text-stroke:1px rgba(255,208,138,.6);margin:0 0 18px -4px;letter-spacing:-.02em}
.svcp .row h2.h3{font-size:clamp(28px,3vw,44px);line-height:1.1;max-width:14ch}
.svcp .row .ps{margin:0 0 22px;padding:0 0 0 20px;border-left:2px solid var(--lamp)}
.svcp .row .ps p{font:400 clamp(19px,1.7vw,24px)/1.4 "Besley",serif;font-style:normal;color:#f4f7fc;max-width:30ch}
.svcp .row>:last-child>p:not(.ps p){max-width:52ch;font-size:17px;line-height:1.6}
.svcp .row ul{margin-top:18px;gap:10px}
.svcp #included .principles{gap:0;border-top:1px solid rgba(238,243,251,.16)}
.svcp #included .principles li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;max-width:none;padding:22px 0;border-left:0;border-bottom:1px solid rgba(238,243,251,.16);align-items:baseline}
.svcp #included .principles li strong{font:400 clamp(19px,1.6vw,23px)/1.25 "Besley",serif}
.svcp .steps li:before{font-weight:400;font-size:44px}
@media(max-width:860px){.svcp #included .principles li{grid-template-columns:1fr;gap:6px}.svcp .row>:first-child::before{font-size:84px}}
.panel h2:after{content:none;display:none;width:min(210px,62%);height:12px;margin-top:10px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 210 12'%3E%3Cpath d='M3 8c26-6 50 3 84-2s70-3 120 2' fill='none' stroke='%23ffd08a' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 0 0/100% 100%}
.eyebrow{text-transform:none;letter-spacing:.02em;font-size:15px;gap:11px}
.eyebrow:before{width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(255,208,138,.18),0 0 14px currentColor}
@media(min-width:861px){
.dcap[data-a="0.24"]{top:auto;bottom:clamp(110px,17vh,170px);text-align:right}
.dcap[data-a="0.24"] p,.dcap[data-a="0.24"] .dsub{margin-left:auto}
.dcap[data-a="0.24"]::before{inset:-12svh calc(var(--gut) * -1) -10svh -14vw;background:radial-gradient(ellipse 62% 78% at 74% 58%,rgba(4,8,20,var(--sc)) 0,rgba(4,8,20,calc(var(--sc) * .62)) 46%,rgba(4,8,20,0) 78%)}
.dcap.dstrong{top:clamp(150px,30vh,300px);text-align:center}
.dcap.dstrong p{margin-left:auto;margin-right:auto;max-width:18ch}
.dcap.dstrong .dsub{margin-left:auto;margin-right:auto}
.dcap.dstrong::before{inset:-12svh -14vw -10svh -14vw;background:radial-gradient(ellipse 52% 70% at 50% 46%,rgba(4,8,20,var(--sc)) 0,rgba(4,8,20,calc(var(--sc) * .62)) 46%,rgba(4,8,20,0) 78%)}
.sec.dark .cols>:first-child{grid-column:8/13;grid-row:1;padding-right:0}
.sec.dark .cols>:last-child{grid-column:1/7;grid-row:1}
}
.sec.ctr .wrap{text-align:center}
.sec.ctr .lead{margin-left:auto;margin-right:auto}
.sec.ctr .btns{justify-content:center}
.slip{display:grid;gap:22px;max-width:620px;margin-top:30px}
.slip label{display:grid;gap:8px;font-size:15px}
.slip input[type=number]{font:inherit;font-size:17px;padding:12px 14px;border-radius:8px;border:1px solid currentColor;background:transparent;color:inherit;width:100%;max-width:240px}
.slip input[type=range]{width:100%;accent-color:var(--lamp)}
.slipout{font-family:"Besley",Georgia,serif;font-size:clamp(22px,2.4vw,30px);line-height:1.25;margin:4px 0 0;max-width:30ch}
.slipnote{font-size:14px;opacity:.7;margin:0}
.slip .btn{justify-self:start}
.checks{list-style:none;margin:26px auto 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;font-size:15px}
.checks li{display:flex;align-items:center;gap:9px}
.checks li:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lamp);box-shadow:0 0 10px rgba(255,208,138,.7)}
.checks a{color:inherit;text-underline-offset:4px}


/* ===== direction A: type-led editorial ===== */
body.x{counter-reset:ed}
body.x .sec[data-ed]{counter-increment:ed;position:relative}
body.x .sec[data-ed]:not([data-ed=end])>.wrap:before{content:"0" counter(ed);display:block;font:600 13px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.2em;color:var(--lamp);margin-bottom:clamp(18px,3vw,36px)}
body.x .sec.paper>.wrap:before{color:var(--ink)!important;opacity:.7}
body.x .sec[data-ed] h2{font-size:clamp(46px,9.4vw,172px);line-height:.88;letter-spacing:-.05em;max-width:none;text-wrap:pretty}
body.x .sec[data-ed=path] h2.pt{font-size:clamp(40px,6.4vw,112px);max-width:12ch;margin-bottom:clamp(40px,7vw,96px)}
body.x .sec[data-ed=slip] h2{font-size:clamp(44px,8vw,140px);max-width:11ch}
body.x .sec[data-ed=parts] h2{font-size:clamp(38px,5.4vw,96px);line-height:.94;max-width:16ch;margin-left:auto;text-align:right}
body.x .sec[data-ed=parts]>.wrap>.lead{margin:clamp(14px,2vw,24px) 0 clamp(40px,6vw,88px) auto;text-align:right}
body.x .sec[data-ed=intro] .cols{display:block}
body.x .sec[data-ed=intro] .cols>:first-child{padding:0}
body.x .sec[data-ed=intro] h2{max-width:11ch}
body.x .sec[data-ed=intro] .cols>:last-child{margin:clamp(28px,5vw,72px) 0 0 auto;max-width:44ch}
body.x .sec[data-ed=intro] .lead{font-size:clamp(18px,1.5vw,22px);color:rgba(238,243,251,.82)}
@media(min-width:861px){
 body.x .sec[data-ed=intro] .cols>:last-child{margin-left:50%}
 body.x .sec[data-ed=intro]{padding-bottom:clamp(40px,6vw,96px)}
 body.x .sec[data-ed=slip] .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:0}
 body.x .sec[data-ed=slip] .wrap:before,body.x .sec[data-ed=slip] h2{grid-column:1/13}
 body.x .sec[data-ed=slip] .wrap>.lead{grid-column:1/6;margin-top:28px}
 body.x .sec[data-ed=slip] .slip{grid-column:1/6;grid-row:4;margin-top:36px}
 body.x .sec[data-ed=slip] .slipout{position:absolute;margin:0}
}
body.x .slipout{font-size:clamp(30px,4.6vw,76px);line-height:1;letter-spacing:-.03em;max-width:15ch}
@media(min-width:861px){
 body.x .sec[data-ed=slip] .slip{display:contents}
 body.x .sec[data-ed=slip] .slip label{grid-column:1/6;margin-top:24px}
 body.x .sec[data-ed=slip] .slip .slipout{position:static;grid-column:7/13;grid-row:3/7;align-self:center;margin:0}
 body.x .sec[data-ed=slip] .slip .slipnote{grid-column:1/6;margin-top:18px}
 body.x .sec[data-ed=slip] .slip .btn{grid-column:1/6;margin-top:18px;justify-self:start}
}
/* enquiry path: numerals on a slope */
body.x .path{counter-reset:pn}
body.x .path li{counter-increment:pn;padding-top:0}
body.x .path li:before{display:none}
body.x .path .dot{display:none}
body.x .path li:after{content:counter(pn);display:block;order:-1;font:600 clamp(64px,9vw,150px)/.8 "Besley",Georgia,serif;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px var(--lamp);margin-bottom:16px}
body.x .path li{display:flex;flex-direction:column}
body.x .path strong{font-size:clamp(19px,1.7vw,26px);letter-spacing:-.01em}
@media(min-width:861px){body.x .path li:nth-child(2),body.x .path li:nth-child(4){margin-top:clamp(28px,5vw,72px)}body.x .path li:nth-child(3){margin-top:clamp(56px,10vw,144px)}}
/* four parts: giant names, alternating sides, on paper */
body.x .sec.paper{background:#f3efe7;color:var(--ink)}
body.x .sec.paper .lead,body.x .sec.paper .row p{color:#46506a}
body.x .sec.paper .rows,body.x .sec.paper .row{border-color:rgba(11,20,38,.22)}
body.x .sec.paper .row h3{font-size:clamp(54px,10.5vw,190px);line-height:.86;letter-spacing:-.055em;color:var(--ink)}
body.x .sec.paper .row:hover h3{color:var(--ink);text-decoration:underline;text-decoration-color:var(--lamp);text-decoration-thickness:.07em;text-underline-offset:.08em}
body.x .sec.paper .row a.more{color:var(--ink);text-decoration-color:var(--lamp);text-decoration-thickness:3px;text-underline-offset:5px}
body.x .sec.paper .row li:before{background:var(--ink)}
body.x .sec.paper .k,body.x .sec.paper .sol{color:rgba(11,20,38,.62)}
body.x .sec.paper .viz .fr{stroke:rgba(11,20,38,.4)}body.x .sec.paper .viz .dt{fill:rgba(11,20,38,.4)}body.x .sec.paper .viz .ln{fill:rgba(11,20,38,.55)}
body.x .sec.paper .viz .wire{stroke:rgba(11,20,38,.4)}body.x .sec.paper .viz .nd{fill:var(--paper);stroke:var(--ink)}body.x .sec.paper .viz .spk{stroke:var(--ink)}body.x .sec.paper .viz .bar{fill:rgba(11,20,38,.6)}
body.x .sec.paper .viz .trav,body.x .sec.paper .viz .cta2{stroke:var(--ink);stroke-width:1}
@media(min-width:861px){
 body.x .sec.paper .row{align-items:end}
 body.x .sec.paper .row>:first-child{grid-column:1/9;padding-right:0;grid-row:1}
 body.x .sec.paper .row>:last-child{grid-column:9/13;grid-row:1}
 body.x .sec.paper .row:nth-child(even)>:first-child{grid-column:5/13;text-align:right;grid-row:1}
 body.x .sec.paper .row:nth-child(even)>:last-child{grid-column:1/5}
}
/* loop and ending */
body.x .sec[data-ed=loop] h2{font-size:clamp(44px,7.6vw,130px);max-width:12ch}
body.x .sec[data-ed=end]{padding-top:clamp(80px,14vw,200px);padding-bottom:clamp(80px,12vw,180px)}
body.x .sec.ctr .wrap{text-align:left}
body.x .sec[data-ed=end] h2{font-size:clamp(46px,9.4vw,172px);max-width:9ch;margin:0}
body.x .sec.ctr .lead{margin:clamp(28px,4vw,56px) 0 0}
body.x .sec.ctr .checks{justify-content:flex-start;margin:28px 0 0}
body.x .sec.ctr .btns{justify-content:flex-start;margin-top:36px}
@media(min-width:861px){body.x .sec[data-ed=end] .lead,body.x .sec[data-ed=end] .checks,body.x .sec[data-ed=end] .btns{margin-left:50%}}
/* index menu */
html.ix .hdr nav a:not(.cta){display:none}
html.ix .mbtn,html.ix .mpanel{display:none!important}
.idx{display:inline-flex;align-items:center;gap:10px;margin-left:12px;height:44px;padding:0 4px;border:0;border-bottom:2px solid var(--lamp);background:transparent;color:inherit;font:600 13px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.idx b{font:600 20px/1 "Besley",Georgia,serif;transition:transform .35s var(--ease)}
.idx:hover b{transform:rotate(90deg)}
.idx:focus-visible,#ixm .xc:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
#ixm{position:fixed;inset:0;z-index:200;background:#f3efe7;color:var(--ink);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-content:center;padding:104px var(--gut) 48px;overflow:auto;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .55s var(--ease),visibility .55s}
body.ix-open #ixm{clip-path:inset(0);visibility:visible}
body.ix-open{overflow:hidden}
#ixm .xc{position:absolute;top:22px;right:var(--gut);height:44px;padding:0 4px;border:0;border-bottom:2px solid var(--ink);background:transparent;color:inherit;font:600 13px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
#ixm ol{grid-column:1/13;list-style:none;counter-reset:x}
#ixm li{counter-increment:x;border-top:1px solid rgba(11,20,38,.22)}
#ixm li:last-child{border-bottom:1px solid rgba(11,20,38,.22)}
#ixm a{display:flex;align-items:baseline;gap:clamp(14px,3vw,40px);font:600 clamp(48px,11vw,176px)/.95 "Besley",Georgia,serif;letter-spacing:-.055em;color:inherit;text-decoration:none;padding:.04em 0 .1em;transition:padding-left .4s var(--ease),color .2s}
#ixm a:before{content:"0" counter(x);font:600 13px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.2em;min-width:2.4em;color:rgba(11,20,38,.55)}
#ixm a:hover,#ixm a:focus-visible{padding-left:clamp(12px,3vw,44px);text-decoration:underline;text-decoration-color:var(--lamp);text-decoration-thickness:.06em;text-underline-offset:.08em}
#ixm a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--lamp);text-decoration-thickness:.06em}
#ixm a:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
#ixm li a{transform:translateY(12px);opacity:0;transition:opacity .4s var(--ease),transform .5s var(--ease),padding-left .4s var(--ease)}
body.ix-open #ixm li a{opacity:1;transform:none;transition-delay:calc(var(--i)*.06s + .15s),calc(var(--i)*.06s + .15s),0s}
#ixm .xn{grid-column:1/13;margin-top:clamp(20px,4vh,40px);font-size:15px;color:#46506a}
@media(prefers-reduced-motion:reduce){#ixm,#ixm li a,.idx b{transition:none}#ixm li a{transform:none;opacity:1}}
.fx body.x .sec[data-ed] h2 .w,body.x.fx .sec[data-ed] h2 .w{padding-bottom:.24em;margin-bottom:-.24em;padding-top:.04em;margin-top:-.04em}
body.x .sec.paper .ps{border-left-color:var(--ink);background:none;padding-left:16px}
body.x .sec.paper .ps .k{color:rgba(11,20,38,.62)}
body.x .sec.paper .ps p,body.x .sec.paper .row .ps p{color:var(--ink)}
body.x .sec.paper .rows.numd .row h3:before{color:rgba(11,20,38,.7)}
#ixm a{font-size:clamp(46px,min(11vw,15vh),176px)}
#ixm{align-content:safe center}
body.x .path li:after{display:none!important;content:none!important}
body.x .path .pulse{display:none!important}
body.x .path strong:before{content:counter(pn);display:block;font:600 clamp(64px,9vw,150px)/.8 "Besley",Georgia,serif;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px var(--lamp);margin-bottom:18px}
body.x .path li{padding-right:clamp(10px,2vw,28px)}
body.x .sec[data-ed=end] h2{max-width:11ch}
/* plain text view resets for the editorial layout */
body.plain.home .sec[data-ed] h2,body.plain.home .sec.paper .row h3{font-size:clamp(28px,3vw,40px)!important;line-height:1.15!important;letter-spacing:-.01em!important;text-align:left!important;margin-left:0!important;max-width:30ch!important}
body.plain.home .sec[data-ed]>.wrap>.lead,body.plain.home .sec.paper>.wrap>.lead{text-align:left!important;margin-left:0!important}
body.plain.home .sec[data-ed]>.wrap:before,body.plain.home .path strong:before{display:none}
body.plain.home .sec.paper .row>*,body.plain.home .sec.paper .row:nth-child(even)>*{grid-column:1/-1!important;text-align:left!important;grid-row:auto!important}
body.plain.home .sec[data-ed=intro] .cols>:last-child,body.plain.home .sec[data-ed=end] .lead,body.plain.home .sec[data-ed=end] .checks,body.plain.home .sec[data-ed=end] .btns{margin-left:0!important}
body.plain.home .path li{margin-top:0!important}

/* final: optional sound toggle in the index, soft halo, anchor offset */
#ixm .xs{grid-column:1/13;justify-self:start;margin-top:18px;height:44px;padding:0 16px;border:1px solid rgba(11,20,38,.4);border-radius:99px;background:transparent;color:inherit;font:600 13px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
#ixm .xs[aria-pressed=true]{background:var(--night);color:#f4f7fc;border-color:var(--night)}
#ixm .xs:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.halo{position:fixed;left:0;top:0;width:240px;height:240px;margin:-120px 0 0 -120px;border-radius:50%;pointer-events:none;z-index:150;background:radial-gradient(circle,rgba(255,208,138,.13),transparent 66%);opacity:0;transition:opacity .4s}
.halo.on{opacity:1}
body.plain .halo,body.ix-open .halo{display:none}
.sec{scroll-margin-top:90px}

@media(max-width:860px){body.x .sec h2,.sec h2.pt{margin-bottom:.4em}}

/* phase 3: inner pages in the new look */
.pg{counter-reset:pe}
.pg .phead h1{font-size:clamp(46px,8.6vw,138px);line-height:.92;letter-spacing:-.05em;max-width:12ch}
.pg .phead .eyebrow{margin-bottom:clamp(14px,2vw,26px)}
.pg .sec>.wrap>h2:not(.h3){font-size:clamp(38px,5.8vw,92px);line-height:.98;letter-spacing:-.045em;max-width:16ch;margin-bottom:.4em}
.pg-services .phead h1{max-width:9ch}
.pg-about .phead h1{max-width:13ch}
.pg-contact .phead h1{font-size:clamp(44px,6.6vw,104px);max-width:10ch}
.pg-contact .nx3{max-width:none;gap:clamp(18px,3vw,48px);margin-top:clamp(24px,4vw,44px)}
.pg-contact .nx3 li{padding:16px 0 0;border:0;border-top:1px solid rgba(244,247,252,.34);border-radius:0;background:none;grid-template-columns:1fr}
.pg-contact .nx3 b{grid-row:auto;width:auto;height:auto;display:block;place-items:unset;border-radius:0;background:none;color:var(--lamp);font:400 clamp(40px,4.6vw,72px)/.9 "Besley",Georgia,serif;letter-spacing:-.04em;margin-bottom:10px}
/* blog index as an editorial list, not cards */
.pg-blog .bgrid{display:block;border-bottom:1px solid rgba(238,243,251,.22)}
.pg-blog .bcard{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:10px;padding:clamp(26px,4vw,52px) 0;border:0;border-top:1px solid rgba(238,243,251,.22);border-radius:0;background:none;transform:none;transition:padding-left .4s var(--ease),color .2s}
.pg-blog .bcard small{grid-column:1/3;align-self:start;padding-top:.9em;letter-spacing:.14em;text-transform:uppercase;font-size:12px}
.pg-blog .bcard h2{grid-column:3/10;font-size:clamp(26px,3vw,46px);line-height:1;letter-spacing:-.04em;margin:0}
.pg-blog .bcard p{grid-column:3/10;max-width:56ch}
.pg-blog .bcard>span{grid-column:11/13;grid-row:1;justify-self:end;align-self:start;margin:0;padding:.9em 0 0;text-decoration:none;font-weight:600}
.pg-blog .bcard>span:after{content:" \2192"}
.pg-blog .bcard:hover,.pg-blog .bcard:focus-visible{padding-left:clamp(8px,2vw,32px);background:none;transform:none}
.pg-blog .bcard:hover h2{text-decoration:underline;text-decoration-color:var(--lamp);text-decoration-thickness:.05em;text-underline-offset:.1em}
@media(min-width:861px){
 .pg-services .phead .lead{margin-left:46%;max-width:44ch}
 .pg-about .phead .lead{margin-left:58%;max-width:38ch}
 .pg-work .phead{text-align:right}
 .pg-work .phead h1{margin-left:auto;max-width:10ch}
 .pg-work .phead .lead{margin-left:auto;max-width:46ch}
 .pg .sec:nth-of-type(odd)>.wrap>h2:not(.h3){margin-left:auto;text-align:right}
 }
@media(max-width:860px){
 .pg-blog .bcard small,.pg-blog .bcard h2,.pg-blog .bcard p{grid-column:1/-1}
 .pg-blog .bcard>span{grid-column:1/-1;grid-row:auto;justify-self:start;padding-top:6px}
 .pg-blog .bcard small{padding-top:0}
 .pg-contact .nx3{grid-template-columns:1fr}
}
body.plain .pg .sec>.wrap>h2:before,body.plain .pg-contact .nx3 b{display:none}
.pg-blog .bcard,.pg-blog .bcard h2{color:#eef3fb;text-decoration:none}
.pg-blog .bcard:hover h2,.pg-blog .bcard:focus-visible h2{color:var(--lamp)}
.pg-blog .bcard h2 span,.pg-blog .bcard p span{color:inherit;text-decoration:none;padding:0;margin:0}
/* no section counters: the order of these sections is not a sequence */
body.x .sec[data-ed]:not([data-ed=end])>.wrap:before,.rows.numd .row h3:before,.svcp .row>:first-child::before{content:none;display:none}
.steps li:before,body.x .path li:after,body.x .path strong:before,#ixm a:before{content:none;display:none}

/* v5 paper: inner pages are daylight. Warm paper, ink type, hairlines, true COS blue. Home keeps the night descent. */
body:is(.pg,.paper){--p5:#f3efe7;--p5b:#e9e2d3;--i5:#0b1426;--m5:#4a5266;--b5:#005a9e;background:var(--p5);color:var(--i5)}
body:is(.pg,.paper) #bgsky,body:is(.pg,.paper) #sky,body:is(.pg,.paper) .spine,body:is(.pg,.paper) .phead:before,body:is(.pg,.paper) .phead:after{display:none}
body:is(.pg,.paper) .hdr{color:var(--i5)}
body:is(.pg,.paper) .hdr .logo,body:is(.pg,.paper) .hdr2 .logo{color:var(--b5)}
body:is(.pg,.paper) .hdr nav a.cta,body:is(.pg,.paper) .hdr .idx{color:var(--i5);border-color:rgba(11,20,38,.5)}
body:is(.pg,.paper) .hdr .idx:after,body:is(.pg,.paper) .hdr .idx{border-bottom-color:var(--b5)}
body:is(.pg,.paper) .phead{background:none;color:var(--i5)}
body:is(.pg,.paper) .phead h1,body:is(.pg,.paper) h1,body:is(.pg,.paper) h2,body:is(.pg,.paper) h3,body:is(.pg,.paper) strong{color:var(--i5)}
body:is(.pg,.paper) .phead .lead,body:is(.pg,.paper) .lead,body:is(.pg,.paper) p,body:is(.pg,.paper) li{color:var(--m5)}
body:is(.pg,.paper) .phead .lead{color:var(--i5)}
body:is(.pg,.paper) .eyebrow{color:var(--b5)}
body:is(.pg,.paper) .eyebrow:before,body:is(.pg,.paper) .eyebrow i{background:var(--b5);box-shadow:none}
body:is(.pg,.paper) a{color:var(--b5)}
body:is(.pg,.paper) .sec.dark{background:var(--p5b);color:var(--i5)}
body:is(.pg,.paper) .sec.dark .lead,body:is(.pg,.paper) .sec.dark p{color:var(--m5)}
body:is(.pg,.paper) .sec.dark a{color:var(--b5)!important}
body:is(.pg,.paper) .principles.cards li{border:0;border-top:1px solid var(--i5);border-radius:0;background:none;padding:18px 0 22px;box-shadow:none}
body:is(.pg,.paper) .principles.cards li:hover{transform:none;background:none}
body:is(.pg,.paper) .principles.cards li strong{color:var(--i5)}
body:is(.pg,.paper) .principles.cards{gap:0 40px}
body:is(.pg,.paper) .ps{border-left:2px solid var(--b5);background:none;border-radius:0}
body:is(.pg,.paper) .ps p,body:is(.pg,.paper) .row .ps p{color:var(--i5)}
body:is(.pg,.paper) .row{border-color:rgba(11,20,38,.28)}
body:is(.pg,.paper) .row:hover .ps{background:none}
body:is(.pg,.paper) .row li:before,body:is(.pg,.paper) ul li:before{background:var(--b5)}
body:is(.pg,.paper) .stack li{color:var(--m5)}body:is(.pg,.paper) .stack li.on{color:var(--i5)}
body:is(.pg,.paper) .btn{color:var(--i5);border-color:var(--i5)}
body:is(.pg,.paper) .btn.solid{background:var(--i5);color:var(--p5)}
body:is(.pg,.paper) .quote,body:is(.pg,.paper) figure.quote blockquote p{color:var(--i5)}
body:is(.pg,.paper) figcaption{color:var(--m5)}
body:is(.pg,.paper) .pg-blog .bcard,body.pg.pg-blog .bcard,body.pg.pg-blog .bcard h2{color:var(--i5)}
body.pg.pg-blog .bgrid{border-bottom-color:rgba(11,20,38,.3)}
body.pg.pg-blog .bcard{border-top-color:rgba(11,20,38,.3)}
body.pg.pg-blog .bcard:hover h2,body.pg.pg-blog .bcard:focus-visible h2{color:var(--b5)}
body.pg.pg-blog .bcard small,body.pg.pg-blog .bcard>span{color:var(--b5)}
body.pg.pg-blog .bcard p{color:var(--m5)}
body:is(.pg,.paper) .sec{background:none}
body:is(.pg,.paper) .sec.dark{background:var(--p5b)}
body:is(.pg,.paper) .svcp .row .ps{border-left-color:var(--b5)}
body:is(.pg,.paper) .viz .fr{stroke:rgba(11,20,38,.45);fill:none}body:is(.pg,.paper) .viz .dt{fill:rgba(11,20,38,.4)}
body:is(.pg,.paper) .viz .wire{stroke:rgba(11,20,38,.35)}
body:is(.pg,.paper) .chip{background:none;border:1px solid var(--b5);color:var(--b5)}
body:is(.pg,.paper) .tower .tb{background:none;border:1px solid rgba(11,20,38,.35)}
body:is(.pg,.paper) .tower .fl b{color:var(--m5)}
body:is(.pg,.paper) .chip,body:is(.pg,.paper) .chip *{color:var(--b5)!important;border-color:var(--b5)!important}
body:is(.pg,.paper) .ftr a{color:rgba(238,243,251,.86)}
body:is(.pg,.paper) .ftr .fbtn,body:is(.pg,.paper) .ftr .fbtn *{color:var(--night)}
body:is(.pg,.paper) .btn.solid,body:is(.pg,.paper) a.btn.solid{color:var(--p5)}
body:is(.pg,.paper) .principles li strong,body:is(.pg,.paper) .principles strong{color:var(--i5)}
body:is(.pg,.paper) .ps .k,body:is(.pg,.paper) .sol,body:is(.pg,.paper) .more3 small{color:var(--b5)}
body:is(.pg,.paper) .sec.dark a{color:var(--b5)!important}
body:is(.pg,.paper) .btns .btn.solid{background:var(--i5);color:var(--p5)!important}
body:is(.pg,.paper).svcp #included .principles li strong,body.svcp #included .principles li strong,.svcp #included .principles li strong{color:var(--i5)}
body:is(.pg,.paper) a.more,body:is(.pg,.paper) .more{color:var(--b5)!important;border-color:var(--b5)}

/* v5.1 bridge: every inner page opens at night over the skyline, then the city turns to paper and you walk in */
body:is(.pg,.paper){--p5:#f1ebdd;background:var(--p5)}
body:is(.pg,.paper) .phead:before{display:block}
body:is(.pg,.paper) .phead:after{display:block;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath fill='%23f1ebdd' d='M0 120V86h40V70h30v16h34V52h26v34h40V74h36V40h24v34h30V90h44V62h28v28h40V46h22V30h6v16h22v44h40V70h34v20h30V56h30v34h46V78h38V44h26v34h36V92h40V66h32v26h38V58h24V38h8v20h24v34h44V80h36V60h28v20h40V90h42V72h30v18h36V54h26v36h38V76h34V120z'/%3E%3C/svg%3E") bottom/100% 100% no-repeat}
body:is(.pg,.paper) .phead{background:linear-gradient(180deg,#22407a 0,#172a52 46%,#0b1426 100%);color:#f4f7fc;padding-bottom:clamp(120px,14vw,200px)}
body:is(.pg,.paper) .phead h1{color:#f4f7fc}
body:is(.pg,.paper) .phead .lead,body:is(.pg,.paper) .phead p{color:rgba(244,247,252,.88)}
body:is(.pg,.paper) .phead .eyebrow{color:var(--lamp)}
body:is(.pg,.paper) .phead .eyebrow:before,body:is(.pg,.paper) .phead .eyebrow i{background:var(--lamp)}
body:is(.pg,.paper) .hdr{color:#f4f7fc}
body:is(.pg,.paper) .hdr .logo,body:is(.pg,.paper) .hdr2 .logo{color:#5aaaf2}
body:is(.pg,.paper) .hdr nav a.cta,body:is(.pg,.paper) .hdr .idx{color:#f4f7fc;border-color:rgba(244,247,252,.55)}
body:is(.pg,.paper) .hdr .idx{border-bottom-color:var(--lamp)}

/* v5.2 time of day: the inner page hero follows the visitor's own clock */
html[data-tod=day] body:is(.pg,.paper) .phead{background:linear-gradient(180deg,#4f9fe6 0,#82bdf0 50%,#b9dcf6 100%);color:#0b1426}
html[data-tod=day] body:is(.pg,.paper) .phead:before{display:none}
html[data-tod=day] body:is(.pg,.paper) .phead h1{color:#0b1426}
html[data-tod=day] body:is(.pg,.paper) .phead .lead,html[data-tod=day] body:is(.pg,.paper) .phead p{color:#0b1426}
html[data-tod=day] body:is(.pg,.paper) .phead .eyebrow{color:#06355e}
html[data-tod=day] body:is(.pg,.paper) .phead .eyebrow:before,html[data-tod=day] body:is(.pg,.paper) .phead .eyebrow i{background:#06355e}
html[data-tod=day] body:is(.pg,.paper) .hdr{color:#0b1426}
html[data-tod=day] body:is(.pg,.paper) .hdr .logo,html[data-tod=day] body:is(.pg,.paper) .hdr2 .logo{color:#06355e}
html[data-tod=day] body:is(.pg,.paper) .hdr nav a.cta,html[data-tod=day] body:is(.pg,.paper) .hdr .idx{color:#0b1426;border-color:rgba(11,20,38,.6)}
html[data-tod=day] body:is(.pg,.paper) .hdr .idx{border-bottom-color:#06355e}
html[data-tod=dusk] body:is(.pg,.paper) .phead{background:linear-gradient(180deg,#1c2f63 0,#4a3f7a 55%,#9a5a6a 100%)}
html[data-tod=dawn] body:is(.pg,.paper) .phead{background:linear-gradient(180deg,#5b6fae 0,#c7a3bf 48%,#f5cfa6 100%);color:#0b1426}
html[data-tod=dawn] body:is(.pg,.paper) .phead:before{opacity:.35}
html[data-tod=dawn] body:is(.pg,.paper) .phead h1,html[data-tod=dawn] body:is(.pg,.paper) .phead .lead,html[data-tod=dawn] body:is(.pg,.paper) .phead p{color:#0b1426}
html[data-tod=dawn] body:is(.pg,.paper) .phead .eyebrow{color:#2b1f47}
html[data-tod=dawn] body:is(.pg,.paper) .phead .eyebrow:before,html[data-tod=dawn] body:is(.pg,.paper) .phead .eyebrow i{background:#2b1f47}
html[data-tod=dawn] body:is(.pg,.paper) .hdr{color:#f4f7fc}
html[data-tod=dawn] body:is(.pg,.paper) .hdr .logo,html[data-tod=dawn] body:is(.pg,.paper) .hdr2 .logo{color:#eaf4ff}

/* v6 type: Besley, a Clarendon revival. Sturdy, a little old-fashioned, like a shop sign or a ledger cover */
h1,h2,h3,.h3,.pg .phead h1,.pg .sec>.wrap>h2:not(.h3),.next strong{font-weight:700;letter-spacing:-.028em}
.pg .phead h1{line-height:.98;letter-spacing:-.035em}
body.x h1,body.x h2{font-weight:700;letter-spacing:-.03em}

/* v6 layout: not every section is heading-left, text-right */
.pg-about main>section:nth-of-type(2) .cols{display:block}
.pg-about main>section:nth-of-type(2) .cols>div{max-width:none;padding:0}
.pg-about main>section:nth-of-type(2) h2{font-size:clamp(15px,1.2vw,18px);letter-spacing:.12em;text-transform:uppercase;font-family:"Schibsted Grotesk",sans-serif;font-weight:600;color:var(--b5);margin-bottom:22px}
.pg-about main>section:nth-of-type(2) .lead{font:700 clamp(26px,3.7vw,54px)/1.16 "Besley",serif;letter-spacing:-.02em;color:var(--i5);max-width:26ch}
.pg-about #review .cols{display:block}
.pg-about #review .cols>div{max-width:none;padding:0}
.pg-about #review h2{font-size:clamp(15px,1.2vw,18px);letter-spacing:.12em;text-transform:uppercase;font-family:"Schibsted Grotesk",sans-serif;font-weight:600;color:var(--b5);margin-bottom:22px}
.pg-about #review blockquote p{font:700 clamp(30px,5vw,72px)/1.08 "Besley",serif;letter-spacing:-.025em;color:var(--i5);max-width:20ch;border:0;padding:0;margin:0 0 22px}

/* own engine figures: real counts only, never zeros, never names or amounts */
.own{margin-top:clamp(28px,4vw,48px);padding-top:22px;border-top:1px solid rgba(11,20,38,.3)}
.own-k{font:600 13px/1.3 "Schibsted Grotesk",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--b5,#005a9e);margin:0 0 14px}
.own .stat{gap:clamp(28px,5vw,64px);margin:0}
.own .stat div strong{font:700 clamp(44px,6vw,84px)/1 "Besley",serif;letter-spacing:-.03em;color:var(--i5,#0b1426)}
.own .stat div span{display:block;max-width:22ch;margin-top:8px;font-size:15px;line-height:1.4;opacity:1;color:var(--m5,#4a5266)}
.own-n{font-size:14px;margin:18px 0 0;color:var(--m5,#4a5266)}

/* v6.1 irregular layouts, hand-set headlines */
br.d{display:none}@media(min-width:900px){br.d{display:inline}}
.stmt{max-width:1296px}
.stmt .big{font:700 clamp(28px,4.4vw,64px)/1.12 "Besley",serif;letter-spacing:-.025em;max-width:24ch;margin:0}
.stmt .small{font-size:clamp(17px,1.4vw,20px);line-height:1.55;max-width:44ch;margin:clamp(24px,3vw,44px) 0 0 auto}
@media(max-width:700px){.stmt .small{margin-left:0}}
/* contact reads like a letter: ruled lines, no boxes */
.pg-contact form input,.pg-contact form select,.pg-contact form textarea{border:0;border-bottom:1px solid var(--i5);border-radius:0;background:transparent;padding:10px 2px}
.pg-contact form textarea{background:repeating-linear-gradient(transparent 0 33px,rgba(11,20,38,.28) 33px 34px);line-height:34px;border:0;padding:0 2px}
.pg-contact form input:focus,.pg-contact form select:focus,.pg-contact form textarea:focus{outline:0;border-bottom-color:var(--b5);box-shadow:0 1px 0 var(--b5)}
.pg-contact form label{font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--m5)}
/* work: the case reads like a ledger */
.pg-work .cj{display:block;border-top:1px solid var(--i5);padding:0;margin:clamp(28px,4vw,52px) 0 0}
.pg-work .cj li{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,3fr);column-gap:clamp(18px,3vw,48px);padding:24px 0;border:0;border-bottom:1px solid rgba(11,20,38,.3);background:none;border-radius:0}
.pg-work .cj li .chip{grid-column:1;grid-row:1/4;align-self:start;justify-self:start}
.pg-work .cj li>*:not(.chip){grid-column:2}
@media(max-width:700px){.pg-work .cj li{display:block}.pg-work .cj li .chip{margin-bottom:10px}}
.own-l{list-style:none;margin:0;padding:0;max-width:44ch}
.own-l li{padding:12px 0;border-top:1px solid rgba(11,20,38,.18);font-size:17px;line-height:1.5;color:var(--i5,#0b1426)}
.own-l li:last-child{border-bottom:1px solid rgba(11,20,38,.18)}
/* v6.2 */
[data-ed=parts]>.wrap>h2{padding-bottom:.35em;margin-bottom:0;line-height:1.08;max-width:18ch;margin-left:auto}
@media(max-width:899px){[data-ed=parts]>.wrap>h2{max-width:none;margin-left:0;text-align:left!important}}
form.contact select{padding-left:0;background-color:transparent}
/* v6.3 labels: no pills, no road-sign tag */
.tw:before{content:"";position:absolute;top:56px;left:50%;width:1px;height:26px;background:currentColor;opacity:.45;transition:opacity .25s,height .25s}
.tw span,.tw.on span,.tw:hover span,.tw:focus-visible span{padding:0 0 3px;border:0;border-radius:0;background:none;font:600 11px/1.2 "Schibsted Grotesk",sans-serif;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.6);top:34px;transform:translateX(-50%);border-bottom:1px solid transparent}
.tw.on span,.tw:hover span,.tw:focus-visible span{border-bottom-color:var(--lamp,#f6c46b);transform:translateX(-50%)}
.tw.on:before,.tw:hover:before{opacity:.95}
@media(max-width:860px){.tw span{font-size:10px;letter-spacing:.06em;padding:0 0 2px}}
.panel .pk{display:inline-block;padding:0 0 8px;background:none;border:0;border-bottom:2px solid var(--lamp,#f6c46b);border-radius:0;box-shadow:none;font:600 12px/1 "Schibsted Grotesk",sans-serif;letter-spacing:.2em;text-transform:uppercase;margin-bottom:22px;color:#f4f7fc}
.panel .pk:after{content:none}
@media(max-width:560px){.tw[data-href*=automation] span,.tw[data-href*=automation].on span{transform:translateX(-32%)!important}}

.stage h1{font-size:clamp(40px,4.6vw,76px);line-height:.98;max-width:15ch}
@media(max-width:860px){.stage h1{font-size:clamp(38px,10.5vw,52px);max-width:none}}

.stage h1{font-size:clamp(40px,4.4vw,72px)}

/* signal map hero */
.sigfade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(9,18,42,0) 0,rgba(9,18,42,0) 24%,rgba(9,18,42,.88) 42%,#091226 100%)}
.sigmap{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.55) 26%,#000 46%);mask-image:linear-gradient(90deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.55) 26%,#000 46%)}
body.map .tw{display:none}
.stage .inner{z-index:3}
.try{position:absolute;z-index:4;right:var(--gut);bottom:clamp(92px,12vh,120px);width:min(660px,48vw);padding:16px 18px 14px;border-radius:14px;background:rgba(10,20,46,.8);border:1px solid rgba(150,185,235,.28);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f4f7fc;display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:10px;align-items:center}
.try .tk{grid-column:1/-1;font:600 15px/1.2 "Schibsted Grotesk",sans-serif;display:flex;gap:12px;align-items:baseline}
.try .tk span{font-weight:400;font-size:12px;opacity:.65;letter-spacing:.02em}
.try form{grid-column:1/-1;display:flex;gap:10px}
.try textarea{flex:1;min-width:0;resize:none;height:46px!important;min-height:0!important;overflow:hidden;font:15px/1.4 "Schibsted Grotesk",sans-serif;color:#f4f7fc;background:rgba(255,255,255,.07);border:1px solid rgba(150,185,235,.3);border-radius:8px;padding:11px 12px}
.try textarea:focus{outline:2px solid #ffd08a;outline-offset:1px}
.try .btn{margin:0;white-space:nowrap;padding:0 22px;height:46px}
.try .btn:disabled{opacity:.7;cursor:default}
.tsteps{grid-column:1/-1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tsteps li{display:flex;flex-direction:column;gap:2px;font-size:14px;opacity:.38;transition:opacity .4s;padding-left:17px;position:relative}
.tsteps li:before{content:"";position:absolute;left:0;top:5px;width:9px;height:9px;border-radius:50%;border:1.5px solid currentColor;transition:background .3s,border-color .3s}
.tsteps li.on{opacity:1}.tsteps li.on:before{background:#5ee0b0;border-color:#5ee0b0}
.tsteps b{font-weight:600}.tsteps span{font-size:12.5px;opacity:.7}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:860px){.sigmap{-webkit-mask-image:none;mask-image:none}.try{left:var(--gut);right:var(--gut);width:auto;bottom:80px;padding:14px;display:block}.try form{margin-top:8px;flex-direction:column}.try textarea{height:46px!important;font-size:14px}.try .btn{height:46px}.tsteps{display:none}}
.story.static .try{display:none}

/* map story */
body.map .dbar{display:none}
body.map .descent .pin{background:#091226;--mh:0px}
body.map .descent{margin-top:0}

/* map on inner pages and footer */
.phmap{position:absolute;left:0;right:0;bottom:0;width:100%;height:clamp(150px,17vw,250px);pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 62%);mask-image:linear-gradient(180deg,transparent 0,#000 62%)}
body.mapp .phead:after,body.mapp:is(.pg,.paper) .phead:after{display:none!important}
.phead>*:not(canvas){position:relative;z-index:1}
.ftr{position:relative}
.fmap{position:absolute;left:0;top:0;width:100%;height:150px;pointer-events:none;opacity:.7;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 70%);mask-image:linear-gradient(180deg,transparent 0,#000 70%)}
body.mapf .ftr .fsky{display:none}
.ftr>*:not(canvas){position:relative;z-index:1}

/* hero composition: copy leads, map is the quiet field, card sits below it */
@media(min-width:861px){
.stage h1{font-size:clamp(34px,3.5vw,54px);max-width:17ch;line-height:1.06}
.stage .lead{max-width:36ch}
.sigmap{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.6) 30%,#000 58%),linear-gradient(180deg,transparent 0,#000 30%);mask-image:linear-gradient(90deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.6) 30%,#000 58%),linear-gradient(180deg,transparent 0,#000 30%);-webkit-mask-composite:source-in;mask-composite:intersect}
.try{right:auto;left:var(--gut);bottom:clamp(30px,5vh,52px);width:min(600px,46vw);padding:12px 14px;row-gap:8px}
.try .tk{font-size:14px}
.try textarea,.try .btn{height:42px!important}
.try textarea{padding:9px 12px}
.tsteps li{font-size:13px}.tsteps span{font-size:12px}
}

@media(min-width:861px){
.stage .simtime{left:auto!important;right:calc(var(--gut) + 168px)!important;bottom:34px!important;max-width:380px;text-align:right}
.sigmap{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0,rgba(0,0,0,.5) 34%,#000 52%),linear-gradient(180deg,transparent 0,#000 24%);mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0,rgba(0,0,0,.5) 34%,#000 52%),linear-gradient(180deg,transparent 0,#000 24%)}
}

.sigfade{background:linear-gradient(180deg,rgba(9,18,42,0) 0,rgba(9,18,42,0) 38%,rgba(9,18,42,.5) 60%,rgba(9,18,42,.92) 100%)}
.maplegend{position:absolute;z-index:2;right:var(--gut);bottom:96px;max-width:300px;margin:0;font-size:12.5px;line-height:1.45;text-align:right;color:rgba(244,247,252,.72)}
@media(max-width:860px){.maplegend{display:none}}
.sigfade{background:linear-gradient(180deg,rgba(9,18,42,0) 0,rgba(9,18,42,0) 36%,rgba(9,18,42,.55) 54%,rgba(9,18,42,.97) 72%,#091226 100%)}

.try .tcta{grid-column:1/-1;justify-self:start;margin-top:2px;height:40px;padding:0 18px;font-size:14px}
.try .tcta[hidden]{display:none}

.try .tk .tcta{margin-left:auto;font:600 13.5px/1 "Schibsted Grotesk",sans-serif;color:#ffd08a;text-decoration:none;border-bottom:1.5px solid #ffd08a;padding-bottom:2px;opacity:1}
.try .tk .tcta:after{content:" \2192"}
.try .tk .tcta[hidden]{display:none}
.try .tk .tcta{display:inline-block;flex:none;align-self:center;height:auto;min-height:0;line-height:1.2;padding:0 0 2px;margin-left:auto;white-space:nowrap}
.sigfade{background:linear-gradient(180deg,rgba(9,18,42,0) 0,rgba(9,18,42,0) 38%,rgba(9,18,42,.6) 54%,rgba(9,18,42,.98) 63%,#091226 100%)}
/* the map hero keeps light text at every time of day, the lower sky is always dark behind it */
body.map .stage h1,body.map .stage .lead,body.map .stage .where,body.map .stage .where span,body.map .stage .simtime,body.map .stage .lapse{color:#f4f7fc!important}
body.map .stage .lead{color:rgba(244,247,252,.9)!important}
body.map .stage .btn:not(.solid),body.map .stage .where,body.map .stage .lapse{color:#f4f7fc!important;border-color:rgba(244,247,252,.6)!important}
body.map .stage h1,body.map .stage .lead{text-shadow:0 1px 18px rgba(9,18,42,.55)}
body.map .orrery,body.map #skyinfo{display:none!important}

/* inner pages and footer: same family as the home page. One dusk sky at every time of day, the dotted map along the foot of the header, light text */
html[data-tod] body:is(.pg,.paper) .phead{background:linear-gradient(180deg,#4d68ad 0,#2e3f78 36%,#141f3d 74%,#0b1426 100%);color:#f4f7fc}
html[data-tod] body:is(.pg,.paper) .phead:before,html[data-tod] body:is(.pg,.paper) .phead:after{display:none!important}
html[data-tod] body:is(.pg,.paper) .phead h1{color:#f4f7fc}
html[data-tod] body:is(.pg,.paper) .phead .lead,html[data-tod] body:is(.pg,.paper) .phead p{color:rgba(244,247,252,.9)}
html[data-tod] body:is(.pg,.paper) .phead .eyebrow{color:#ffd08a}
html[data-tod] body:is(.pg,.paper) .phead .eyebrow:before,html[data-tod] body:is(.pg,.paper) .phead .eyebrow i{background:#ffd08a}
body.mapp .phead h1,body.mapp .phead .lead{text-shadow:0 1px 18px rgba(9,18,42,.5)}
.phmap{height:clamp(190px,24vw,340px);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 45%,#000 80%,rgba(0,0,0,.55) 100%);mask-image:linear-gradient(180deg,transparent 0,#000 45%,#000 80%,rgba(0,0,0,.55) 100%)}
.fmap{height:clamp(200px,22vw,300px);opacity:.85;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 38%,#000 62%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 38%,#000 62%,transparent 100%)}
.ftr{background:linear-gradient(180deg,#0b1426 0,#070d1b 40%)}
body.mapp .hdr:not(.hdr2),body.mapp .hdr:not(.hdr2) nav a{color:#f4f7fc}
body.mapp .hdr:not(.hdr2) .logo{color:#eef3fb}
.phead{padding-bottom:clamp(230px,27vw,380px)!important}
.pg .phead{padding-bottom:clamp(230px,27vw,380px)!important}
.phmap{height:clamp(210px,25vw,350px)}
.ftr{padding-top:clamp(170px,17vw,220px)!important}
.fmap{height:clamp(150px,16vw,210px);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 40%,#000 55%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 40%,#000 55%,transparent 100%)}
html[data-tod] body.mapp:is(.pg,.paper) .hdr:not(.hdr2),html[data-tod] body.mapp:is(.pg,.paper) .hdr:not(.hdr2) nav a,html[data-tod] body.mapp:is(.pg,.paper) .hdr:not(.hdr2) .idx{color:#f4f7fc;border-color:rgba(244,247,252,.6)}
html[data-tod] body.mapp:is(.pg,.paper) .hdr:not(.hdr2) .logo{color:#eef3fb}
html[data-tod] body.mapp:is(.pg,.paper) .hdr:not(.hdr2) .idx{border-bottom-color:#ffd08a}

/* one night for the whole site: inner page bodies use the same deep navy as the home page, light type, amber accents */
body:is(.pg,.paper){--p5:#0b1426;--p5b:#101c36;--i5:#f4f7fc;--m5:rgba(238,243,251,.78);--b5:#ffd08a;--rule:rgba(238,243,251,.16)}
.demo{--i5:#0b1426;--m5:#4a5266;--b5:#005a9e;color:#0b1426}
form.contact input,form.contact textarea,form.contact select{color:#f4f7fc;caret-color:#ffd08a}
form.contact input::placeholder,form.contact textarea::placeholder{color:rgba(238,243,251,.45)}
form.contact input:-webkit-autofill{-webkit-text-fill-color:#f4f7fc;box-shadow:0 0 0 40px #0b1426 inset}

/* home, below the map hero: the same night navy as everywhere else. No skyline, no cream sections. */
body.map #bgsky,body.map #bgsky.hbg,body.map .bgedge{display:none!important}
body.map.hashbg .sec{background:#0b1426}
body.map.hashbg .sec.dark{background:#101c36}
body.x.map .sec.paper{background:#0f1b34;color:#eef3fb}
body.x.map .sec.paper .lead,body.x.map .sec.paper .row p{color:rgba(238,243,251,.8)}
body.x.map .sec.paper .rows,body.x.map .sec.paper .row{border-color:rgba(238,243,251,.2)}
body.x.map .sec.paper .row h3,body.x.map .sec.paper .row:hover h3{color:#f4f7fc}
body.x.map .sec.paper .row a.more{color:#ffd08a}
body.x.map .sec.paper .row li:before{background:#ffd08a}
body.x.map .sec.paper .k,body.x.map .sec.paper .sol{color:rgba(238,243,251,.65)}
body.x.map .sec.paper>.wrap:before{color:#ffd08a!important;opacity:1}
body.x.map .sec.paper,body.x.map .sec.paper h2,body.x.map .sec.paper h3,body.x.map .sec.paper strong,body.x.map .sec.paper a{color:inherit}

/* hero headline in the same voice as the section headings below: big, tight, bold. Sized by width and height so the card still fits. */
@media(min-width:861px){
body.map .stage h1{font-size:clamp(40px,min(4.7vw,7.5vh),74px);line-height:.95;letter-spacing:-.045em;max-width:17ch;font-weight:700}
body.map .stage .lead{font-size:clamp(16px,min(1.45vw,2.5vh),22px);max-width:40ch;margin-top:clamp(12px,2vh,22px)}
body.map .stage .btns{margin-top:clamp(14px,2.2vh,26px)}
body.map .stage .where{margin-bottom:clamp(12px,2vh,26px)}
}
@media(min-width:861px) and (max-height:720px){body.map .stage .lead{display:none}}
@media(max-width:860px){body.map .stage h1{font-size:clamp(40px,11.4vw,56px);line-height:.96;letter-spacing:-.04em}}
body.map .stage h1,body.map .stage .lead{text-shadow:none}
body.map .stage h1{filter:drop-shadow(0 2px 16px rgba(9,18,42,.5))}
body.map .stage h1 .w{padding-bottom:.22em;margin-bottom:-.22em}
body.x.map .sec.paper .viz .fr,body.x.map .sec.paper .viz .wire{stroke:rgba(238,243,251,.5)}
body.x.map .sec.paper .viz .dt{fill:rgba(238,243,251,.5)}
body.x.map .sec.paper .viz .ln{fill:rgba(238,243,251,.65)}
body.x.map .sec.paper .viz .nd{fill:#0f1b34;stroke:#ffd08a}
body.x.map .sec.paper .viz .spk{stroke:#ffd08a}
body.x.map .sec.paper .viz .bar{fill:rgba(255,208,138,.75)}
body.x.map .sec.paper .viz .trav,body.x.map .sec.paper .viz .cta2{stroke:#ffd08a}
/* your day ribbon: the visitor's own 24 hours, with real sunrise and sunset */
.dayline{position:absolute;z-index:2;right:var(--gut);bottom:178px;width:330px;color:rgba(244,247,252,.85);font-size:12.5px;line-height:1.4}
.dayline .dl-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.dayline .dl-h span{letter-spacing:.08em;text-transform:uppercase;font-size:11px;color:rgba(244,247,252,.7)}
.dayline .dl-h b{font-weight:600;color:#ffd08a;font-size:13px}
.dayline .dl-bar{position:relative;height:8px;border-radius:99px;background:#0b1426;box-shadow:0 0 0 1px rgba(244,247,252,.22)}
.dayline .dl-dot{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(255,208,138,.55),0 0 14px 4px rgba(255,208,138,.55)}
.dayline .dl-l{position:relative;height:16px;margin-top:6px;font-size:11px;color:rgba(244,247,252,.62)}
.dayline .dl-l span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.dayline p{margin:4px 0 0;text-align:right;color:rgba(244,247,252,.78)}
@media(max-width:860px){.dayline{left:var(--gut);right:var(--gut);width:auto;bottom:auto;top:calc(var(--dl-top,486px));}.dayline .dl-l,.dayline p{display:none}.dayline .dl-h{margin-bottom:6px}}

/* audit pass: hero legibility, small phones, focus, reduced motion */
.stage.hero #sky{opacity:.5}
.stage.hero .where{background:rgba(11,20,38,.58);opacity:1;color:#f4f7fc}
.stage.hero h1{line-height:1.04}
.lapse{background:rgba(11,20,38,.78);color:#fff;border-color:rgba(255,208,138,.7)}
.try .ts small,.try .tsteps small,.try .tsteps li span{color:#b4c1d6}
.skip,body:is(.pg,.paper) a.skip{color:#0b1426}
.hdr a:focus-visible,.hdr button:focus-visible{outline:3px solid #fff;box-shadow:0 0 0 5px #0b1426}
.hdr .cta{white-space:nowrap}
@media(max-width:860px){
 .stage.hero::before{content:"";position:absolute;inset:0 0 auto 0;height:72%;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(11,20,38,.8),rgba(11,20,38,.8) 55%,rgba(11,20,38,0))}
 .stage.hero .inner{position:relative;z-index:3}
 .dayline{display:none}
 .hdr .cta{padding-inline:14px}
}
@media(max-width:860px){.lapse{display:none}}

@media(max-width:370px){.hdr .cta{display:none}}
@media(prefers-reduced-motion:reduce){.dcap:not(.dlast){display:none}.dcap.dlast{opacity:1!important;transform:none!important}}
.try .tsteps li b{color:#f4f7fc}

/* audit pass 3: tap targets, contrast preferences, short phones */
.ftr a,.ftr .ftool,.demo .rng button{min-height:44px;display:inline-flex;align-items:center}
.ftr nav a{padding-block:6px}
@media(forced-colors:active){.btn,.cta,.idx,.fbtn,.try textarea{border:1px solid ButtonText}}
@media(prefers-contrast:more){body.map,.stage.hero,.sec.dark{--muted:#e6edf8}.dcap,.lead,.fdesc,.fnote{color:#fff}.try .tsteps li span{color:#e6edf8}}
@media(max-width:860px) and (max-height:780px){
 .try{display:block;bottom:14px;padding:10px 12px}
 .try .tk span,.try .tsteps li span{display:none}
 .try .tsteps{margin-top:8px;font-size:12px}
 .try .tk{font-size:14px}
 .stage .lead{display:none}
 .try form{margin-top:6px}
 .try textarea,.try .btn{height:40px!important}
 .try textarea{font-size:14px;padding:8px 12px;line-height:1.3}
}

/* fit steps added by signal-hero.js when the try card would touch the buttons */
body.map.fit1 .stage .lead{display:none}
body.map.fit2 .stage h1{font-size:clamp(32px,min(3.8vw,5.6vh),56px)}
body.map.fit2 .try .tsteps li span{display:none}
body.map.fit3 .stage .where{display:none}
body.map.fit3 .stage h1{font-size:clamp(28px,min(3.2vw,4.8vh),44px)}
body.map.fit4 .try{display:none!important}
body.map.fit5 .maplegend{display:none!important}
body.map.fit6 .dayline,body.map.fit6 .lapse{display:none!important}

/* 320px: no sideways scroll */
.rows>.row>*{min-width:0}.rows .row p,.rows .row h2,.rows .row h3{overflow-wrap:anywhere}

.dayline{padding:10px 12px;border-radius:12px;background:rgba(11,20,38,.62)}

/* right column rhythm: 14px between ribbon, legend and Play the day */
@media(min-width:861px){.lapse{bottom:16px}.maplegend{bottom:72px}.dayline{bottom:124px}}

.stage .for{margin:14px 0 0;font-size:clamp(16px,1.35vw,19px);line-height:1.35;color:#f4f7fc;max-width:34ch}
.stage .for+.lead{margin-top:8px}
body.map.fit3 .stage .for{display:none}
@media(max-width:860px){.stage .for{font-size:16px;margin-top:12px}}

/* Play the day fix: the map hero always uses the dark scheme, and the old live sky and sun disc stay off */
body.map .stage.hero{--scrim:11,20,38;color:#f4f7fc}
body.map .stage.hero #sky{display:none}
body.map .stage .lapse,body.map .stage .lapse[aria-pressed=true]{background:rgba(11,20,38,.78);color:#f4f7fc;border-color:rgba(255,208,138,.7)}

/* story v2: time-lapse, chapters, masked headlines */
.descent .pin{-webkit-mask-image:none;mask-image:none}
.descent .pin:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(9,18,38,.86) 0,rgba(9,18,38,.55) 32%,rgba(9,18,38,0) 60%),linear-gradient(0deg,rgba(9,18,38,.72) 0,rgba(9,18,38,0) 42%)}
.beat{position:absolute;z-index:3;left:var(--gut);bottom:clamp(56px,10vh,110px);width:min(660px,54vw);color:#f4f7fc;pointer-events:none}
.bk{display:flex;align-items:center;gap:12px;margin:0 0 20px;font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.16em;text-transform:uppercase;color:rgba(238,243,251,.8);will-change:transform,opacity}
.bk b{display:inline-grid;place-items:center;min-width:34px;height:24px;padding:0 8px;border:1px solid rgba(255,208,138,.7);border-radius:99px;color:#ffd08a;letter-spacing:.06em;font-weight:600}
.bk:after{content:"";height:1px;width:clamp(28px,6vw,72px);background:linear-gradient(90deg,rgba(255,208,138,.6),transparent)}
.bh{font-family:"Besley","Schibsted Grotesk",system-ui,sans-serif;font-weight:650;font-size:clamp(38px,5.2vw,86px);line-height:.98;letter-spacing:-.035em;margin:0;max-width:13ch;color:#f4f7fc}
.bh .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.07em 0 .13em;margin:-.07em 0 -.13em}
.bh .w>i{display:inline-block;font-style:normal;will-change:transform}
.bh .w>i.em{color:#ffd08a}
.bs{margin:24px 0 0;max-width:34ch;font-size:clamp(16px,1.35vw,20px);line-height:1.5;color:rgba(238,243,251,.86);will-change:transform,opacity}
.bl{list-style:none;margin:28px 0 0;padding:0;max-width:440px;counter-reset:bl;will-change:transform,opacity}
.bl li{display:grid;grid-template-columns:36px 1fr;column-gap:14px;align-items:baseline;padding:13px 0;border-top:1px solid rgba(238,243,251,.18);opacity:.36;transition:opacity .45s}
.bl li:before{counter-increment:bl;content:counter(bl,decimal-leading-zero);font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.1em;color:#ffd08a}
.bl li b{font:600 clamp(19px,1.7vw,24px)/1.2 "Besley","Schibsted Grotesk",system-ui,sans-serif;letter-spacing:-.01em}
.bl li span{grid-column:2;margin-top:4px;font-size:15px;color:rgba(238,243,251,.78)}
.bl li.on{opacity:1}
.dclk{position:absolute;z-index:3;right:var(--gut);top:clamp(88px,13vh,116px);margin:0;text-align:right;font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(238,243,251,.72);pointer-events:none;opacity:0}
.dclk b{display:block;margin-top:8px;font-size:clamp(22px,2.4vw,32px);font-weight:600;letter-spacing:.01em;text-transform:none;color:#ffd08a;font-variant-numeric:tabular-nums}
.dprog{position:absolute;left:0;right:0;bottom:0;z-index:4;height:2px;background:linear-gradient(90deg,#ffd08a,#fff1d0);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
@media(max-width:860px){
.descent .pin:after{background:linear-gradient(0deg,rgba(9,18,38,.96) 0,rgba(9,18,38,.9) 30%,rgba(9,18,38,0) 58%)}
.beat{right:var(--gut);width:auto;bottom:calc(34px + env(safe-area-inset-bottom,0px))}
.bh{font-size:clamp(34px,10.2vw,46px);max-width:12ch}
.bk{margin-bottom:16px}.bs{margin-top:18px;font-size:15.5px}
.bl{margin-top:20px}.bl li{padding:10px 0}.bl li b{font-size:19px}.bl li span{font-size:14px}
.dclk{top:84px}
}
@media(prefers-reduced-motion:reduce){
.descent .pin{position:relative;height:auto;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;gap:48px;padding:120px var(--gut) 64px;-webkit-mask-image:none;mask-image:none}
.beat{position:relative;left:auto;right:auto;bottom:auto;width:auto;visibility:visible!important}
.beat .bk,.beat .bs,.beat .bl,.beat .bh{opacity:1!important;transform:none!important}
.bl li{opacity:1}.dclk,.dprog{display:none}
.dcap.dlast{position:relative;top:auto!important;bottom:auto!important;opacity:1!important}
}

.descent .pin{counter-reset:bt}
.bk b:before{counter-increment:bt;content:counter(bt,decimal-leading-zero)}
.dcap.dlast{z-index:3}
@media(max-width:860px) and (max-height:700px){.bh{font-size:clamp(30px,9vw,38px)}.bl li span{display:none}.bl li{padding:8px 0}.bs{font-size:14.5px;margin-top:14px}.bk{margin-bottom:12px}}

/* free site check */
.chk{max-width:820px}
.chk label{display:block;font-weight:600;margin-bottom:10px}
.ckrow{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}
.ckrow input[type=text]{flex:1 1 280px;min-width:0;font:inherit;font-size:18px;padding:14px 16px;border-radius:10px;border:1px solid currentColor;background:transparent;color:inherit;min-height:52px}
.ckrow .btn{min-height:52px}
.ckerr{margin:12px 0 0;min-height:1.4em;font-size:15px;color:#ff9a92}
.ckres{margin-top:36px}
.ckscore{font-size:clamp(28px,4vw,46px);line-height:1.1;margin:0}
.ckscore:focus{outline:none}
.cksum{margin:12px 0 0;font-size:18px;max-width:52ch}
.cklist{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid rgba(238,243,251,.18)}
.cklist li{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:16px 0;border-bottom:1px solid rgba(238,243,251,.18);align-items:baseline}
.cklist b{font-size:18px}
.cklist p{grid-column:1/-1;margin:0;max-width:62ch;opacity:.86;line-height:1.5}
.cks{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:99px;border:1px solid currentColor;white-space:nowrap}
.ck-ok .cks{color:#7fdcae}.ck-warn .cks{color:#f3c76e}.ck-fail .cks{color:#ff9a92}
.ck-ok .cks:before{content:"\2713 "}.ck-warn .cks:before{content:"! "}.ck-fail .cks:before{content:"\00d7  "}
.cknote{margin:22px 0 0;font-size:14px;opacity:.75;max-width:62ch}
.ckask{margin-top:40px;padding:26px;border:1px solid currentColor;border-radius:14px;max-width:640px}
.ckask p{margin:8px 0 18px;max-width:50ch}
.ckrow2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.ckask input{width:100%;font:inherit;padding:12px 14px;border-radius:8px;border:1px solid currentColor;background:transparent;color:inherit;min-height:48px}
.ckask #ckaerr{margin-top:14px;color:inherit}
@media(max-width:700px){.ckrow2{grid-template-columns:1fr}.ckask{padding:20px}}
.ckq{margin:26px 0 22px;padding:20px 22px 22px;border:1px solid rgba(238,243,251,.22);border-radius:14px}
.ckq legend{padding:0 8px;font-weight:600}
.ckqn{margin:0 0 16px;font-size:14px;opacity:.78;max-width:60ch}
.ckg{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px}
.ckg label{display:grid;gap:8px;font-weight:500;font-size:15px;margin:0;align-content:start}
.ckg input,.ckg select{font:inherit;font-size:16px;padding:12px 14px;border-radius:8px;border:1px solid currentColor;background:transparent;color:inherit;min-height:48px;width:100%}
.ckg select option{color:#0b1426;background:#fff}
.ckgh{margin:34px 0 0;font-size:clamp(20px,2vw,26px)}
.ckgh+.cklist{margin-top:14px}
.ckmoney{margin:22px 0 0;font-family:"Besley",Georgia,serif;font-size:clamp(20px,2.2vw,26px);line-height:1.3;max-width:34ch}
@media(max-width:700px){.ckg{grid-template-columns:1fr}.ckq{padding:16px}}

.ckp{margin:22px 0 0;padding:0;border:0;min-width:0}
.ckp legend{padding:0;margin:0 0 10px;font-weight:500;font-size:15px}
.ckchips{display:flex;flex-wrap:wrap;gap:10px}
.ckchips label{position:relative;display:block;margin:0;font-weight:500}
.ckchips input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.ckchips span{display:inline-block;padding:11px 16px;min-height:44px;line-height:1.2;border:1px solid rgba(238,243,251,.42);border-radius:99px;font-size:15px;transition:background .2s,color .2s,border-color .2s}
.ckchips label:hover span{border-color:#ffd08a}
.ckchips input:checked+span{background:#ffd08a;color:#0b1426;border-color:#ffd08a;font-weight:600}
.ckchips input:focus-visible+span{outline:3px solid #8db4ff;outline-offset:2px}
.chk input:-webkit-autofill,.chk input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 100px #0b1426 inset;-webkit-text-fill-color:#f4f7fc;caret-color:#f4f7fc}
@media(forced-colors:active){.ckchips input:checked+span{outline:2px solid Highlight}}

/* custom pass: no decorative numbering on the story kickers, no hover lift on cards, quiet closing link */
.bk b{display:none}
.bk b:before{content:none;counter-increment:none}
.pg-blog .bcard:hover,.cj li:hover,.principles.cards li:hover{transform:none}
.dmore{margin:22px 0 0}
.dmore a{font:600 14px/1.2 "Schibsted Grotesk",sans-serif;color:#ffd08a;text-decoration:none;border-bottom:1.5px solid #ffd08a;padding-bottom:3px}
.dmore a:hover,.dmore a:focus-visible{color:#fff3d9;border-bottom-color:#fff3d9}

/* palette v1 (home first): paper by day, ink by night, one vermilion accent.
   Paper #F3EEE3, card #EAE3D3, ink #14203A, soft ink #4A5468, vermilion #D4421C (buttons, marks, big type),
   deep vermilion #B0360F (small text on paper), night #0E1730, glow #FF6A3D (the accent on night). */
:root{--x-paper:#F3EEE3;--x-paperrgb:243,238,227;--x-card:#EAE3D3;--x-cardrgb:234,227,211;--x-ink:#14203A;--x-inkrgb:20,32,58;--x-soft:#4A5468;--x-verm:#D4421C;--x-vdeep:#B0360F;--x-night:#0E1730;--x-glow:#FF6A3D;--x-nsoft:#B8C0D2;--x-lt:#F3EEE3;--x-ribn:#14203A;--x-rule:rgba(20,32,58,.16)}
body.x,body.x.map{background:var(--x-paper);color:var(--x-ink);--rule:var(--x-rule);--lamp:var(--x-vdeep);--scrim:var(--x-paperrgb)}
body.x .hdr,body.x .hdr.light,body.x .hdr:not(.hdr2),body.x .hdr:not(.hdr2) nav a,body.x.mapp .hdr:not(.hdr2){color:var(--x-ink)}
body.x .hdr .logo,body.x .hdr2 .logo,body.x .hdr:not(.hdr2) .logo{color:var(--x-ink)}
body.x .hdr2{background:rgba(var(--x-paperrgb),.96);border-bottom:1px solid var(--x-rule);color:var(--x-ink)}
body.x .hdr2 nav a{color:var(--x-ink)}
body.x .hdr nav a.cta:hover{background:var(--x-ink)}body.x .hdr nav a.cta:hover span{color:var(--x-paper)}
body.x .hdr nav a[aria-current=page]{border-bottom-color:var(--x-verm)}
/* day: the hero */
body.x.map .stage.hero,body.x.map .stage.hero.on-dark{background:var(--x-paper);color:var(--x-ink)}
body.x #sky{display:none}
body.x.map .stage h1,body.x.map .stage .lead,body.x.map .stage .where,body.x.map .stage .where span,body.x.map .stage .simtime,body.x.map .stage .lapse,body.x.map .stage .for{color:var(--x-ink)!important}
body.x.map .stage .lead{color:var(--x-soft)!important}
body.x.map .stage h1{filter:none}
body.x.map .stage .btn:not(.solid),body.x.map .stage .where,body.x.map .stage .lapse{color:var(--x-ink)!important;border-color:rgba(var(--x-inkrgb),.5)!important}
body.x .where i{background:var(--x-verm);box-shadow:0 0 0 3px rgba(212,66,28,.2)}
body.x .btn{border-color:rgba(var(--x-inkrgb),.5);color:var(--x-ink)}
body.x .btn:hover{background:rgba(var(--x-inkrgb),.06)}
body.x .btn.solid{background:var(--x-verm);border-color:var(--x-verm);color:#fff}
body.x .btn.solid:hover{background:var(--x-vdeep);border-color:var(--x-vdeep)}
body.x .sigfade,body.x .sigfade{background:linear-gradient(90deg,rgba(var(--x-paperrgb),.9) 0,rgba(var(--x-paperrgb),.62) 30%,rgba(var(--x-paperrgb),0) 54%),linear-gradient(180deg,rgba(var(--x-paperrgb),0) 0,rgba(var(--x-paperrgb),0) 62%,rgba(var(--x-paperrgb),.94) 100%)}
@media(max-width:860px){body.x .sigfade{background:linear-gradient(180deg,rgba(var(--x-paperrgb),.9) 0,rgba(var(--x-paperrgb),.7) 40%,rgba(var(--x-paperrgb),0) 62%),linear-gradient(180deg,rgba(var(--x-paperrgb),0) 70%,rgba(var(--x-paperrgb),.94) 100%)}}
body.x .maplegend{color:var(--x-soft)}
body.x .dayline{color:var(--x-ink);background:rgba(var(--x-cardrgb),.9);border:1px solid var(--x-rule);border-radius:10px;padding:12px 14px}
body.x .dayline .dl-h span,body.x .dayline .dl-l{color:var(--x-soft)}
body.x .dayline .dl-h b{color:var(--x-vdeep)}
body.x .dayline .dl-bar{box-shadow:0 0 0 1px var(--x-rule)}
body.x .dayline .dl-dot{background:var(--x-paper);box-shadow:0 0 0 3px rgba(212,66,28,.5),0 0 10px 3px rgba(212,66,28,.35)}
body.x .try{background:rgba(var(--x-cardrgb),.94);color:var(--x-ink);border:1px solid var(--x-rule)}
body.x .try textarea{background:#FBF8F1;color:var(--x-ink);border:1px solid rgba(var(--x-inkrgb),.28)}
body.x .try textarea:focus{outline:2px solid var(--x-vdeep)}
body.x .try .tk,body.x .try .tk span,body.x .try .tsteps li,body.x .try .tsteps li span{color:var(--x-soft)}
body.x .try .tsteps li b{color:var(--x-ink)}
body.x .try .tsteps li.on b{color:var(--x-vdeep)}
body.x .try .tk .tcta{color:var(--x-vdeep);border-bottom-color:var(--x-vdeep)}
body.x .panel .pk{color:var(--x-ink);border-bottom-color:var(--x-verm)}
body.x .panel .pf{border-left-color:var(--x-verm)}
body.x .panel,body.x .panel h2,body.x .panel p{color:var(--x-ink)}
body.x .panel p{color:var(--x-soft);opacity:1}
body.x .tw span{color:var(--x-ink)}
/* night: the zoom stays dark, with the glow accent */
body.x .descent{--lamp:var(--x-glow)}
body.x .descent .pin{background:var(--x-night)}
body.x .descent .dclk b,body.x .descent .bh .w>i.em,.descent .dmore a{color:var(--x-glow)}
body.x .descent .dmore a{border-bottom-color:var(--x-glow)}
body.x .descent .dmore a:hover,body.x .descent .dmore a:focus-visible{color:#fff3ec;border-bottom-color:#fff3ec}
body.x .descent .dprog{background:linear-gradient(90deg,var(--x-glow),#ffd2c0)}
body.x .descent .btn{color:var(--x-lt);border-color:rgba(243,238,227,.6)}
body.x .descent .btn.solid{background:var(--x-glow);border-color:var(--x-glow);color:var(--x-night)}
/* day again: the reading sections */
body.x.map.hashbg .sec,body.x.map .sec,body.x .sec{background:var(--x-paper);color:var(--x-ink)}
body.x.map .sec.paper{background:var(--x-card);color:var(--x-ink)}
body.x.map .sec .lead,body.x.map .sec p,body.x.map .sec.paper .lead,body.x.map .sec.paper .row p{color:var(--x-soft)}
body.x.map .sec .big{color:var(--x-ink)}
body.x.map .sec h2,body.x.map .sec h3,body.x.map .sec.paper h2,body.x.map .sec.paper h3,body.x.map .sec.paper .row h3,body.x.map .sec.paper .row:hover h3,body.x.map .sec strong{color:var(--x-ink)}
body.x.map .sec.paper .rows,body.x.map .sec.paper .row{border-color:var(--x-rule)}
body.x.map .sec.paper .row a.more,body.x.map .sec a:not(.btn){color:var(--x-vdeep)}
body.x.map .sec.paper .row li:before{background:var(--x-verm)}
body.x.map .sec.paper .k,body.x.map .sec.paper .sol{color:var(--x-soft)}
body.x.map .sec.paper>.wrap:before{color:var(--x-vdeep)!important}
body.x.map .sec.paper .viz .fr,body.x.map .sec.paper .viz .wire{stroke:rgba(var(--x-inkrgb),.45)}
body.x.map .sec.paper .viz .dt{fill:rgba(var(--x-inkrgb),.4)}
body.x.map .sec.paper .viz .ln{fill:rgba(var(--x-inkrgb),.55)}
body.x.map .sec.paper .viz .nd{fill:var(--x-paper);stroke:var(--x-verm)}
body.x.map .sec.paper .viz .spk{stroke:var(--x-verm)}
body.x.map .sec.paper .viz .bar{fill:rgba(212,66,28,.8)}
body.x.map .sec.paper .viz .trav,body.x.map .sec.paper .viz .cta2{stroke:var(--x-verm)}
body.x.map .sec.dark,body.x.map.hashbg .sec.dark{background:var(--x-night);color:var(--x-lt)}
body.x.map .sec.dark .lead,body.x.map .sec.dark p{color:var(--x-nsoft)}
body.x.map .sec.dark h2,body.x.map .sec.dark strong{color:var(--x-lt)}
body.x.map .sec.dark a:not(.btn){color:var(--x-glow)}
body.x.map .sec.dark .btn{color:var(--x-lt);border-color:rgba(243,238,227,.6)}
body.x.map .sec .btn:not(.solid){color:var(--x-ink);border-color:rgba(var(--x-inkrgb),.5)}
body.x.map .sec.dark .btn:not(.solid){color:var(--x-lt);border-color:rgba(243,238,227,.6)}
body.x .ckchips input:checked+span,body.x .ckchips label:hover span{border-color:var(--x-verm)}
body.x .ckchips input:checked+span{background:var(--x-verm);color:#fff}
body.x.map .stage.hero,body.x .hero.on-dark{--scrim:var(--x-paperrgb)}
body.x .stage.hero::before{background:linear-gradient(180deg,rgba(var(--x-paperrgb),.8),rgba(var(--x-paperrgb),.8) 55%,rgba(var(--x-paperrgb),0))}
body.x .hero:before{background:linear-gradient(90deg,rgba(var(--x-paperrgb),.3) 0%,rgba(var(--x-paperrgb),.12) 45%,rgba(var(--x-paperrgb),0) 70%)}
body.x .where{background:rgba(var(--x-cardrgb),.9);border-color:rgba(var(--x-inkrgb),.35);opacity:1}
body.x .lapse{background:rgba(var(--x-cardrgb),.92)}
body.x .lapse:hover{background:var(--x-paper)}
body.x .dayline p,body.x .dayline #dl-say{color:var(--x-soft)}
body.x .try .tsteps li{opacity:1}
body.x .try .tsteps li span{color:var(--x-soft);opacity:1}
body.x .ftr .logo,body.x .ftr .cosw{color:var(--x-lt)}
body.x.map .stage .lapse,body.x.map .stage .lapse[aria-pressed=true]{background:rgba(var(--x-cardrgb),.94);color:var(--x-ink)!important;border-color:rgba(var(--x-inkrgb),.5)!important}
body.x.map .stage .lapse:hover{background:var(--x-paper)}
body.x.map .stage .where{background:rgba(var(--x-cardrgb),.92)}
/* dusk and dawn: paper melts into night at the top of the zoom, and night returns to paper at its end */
body.x .descent:before{content:"";position:absolute;left:0;right:0;top:0;height:min(34svh,300px);z-index:6;pointer-events:none;background:linear-gradient(180deg,var(--x-paper) 0,rgba(var(--x-paperrgb),0) 100%)}
body.x .descent:after{content:"";position:absolute;left:0;right:0;bottom:0;height:min(30svh,260px);z-index:6;pointer-events:none;background:linear-gradient(180deg,rgba(var(--x-paperrgb),0) 0,var(--x-paper) 100%)}
@media (prefers-reduced-motion:reduce){body.x .descent:before,body.x .descent:after{display:none}}
body.x .ftr .fb .logo .cosw{color:var(--x-lt)}
body.x .stage .btn:not(.solid){background:rgba(var(--x-paperrgb),.86)}
body.x .fbtn{background:var(--x-verm);border-color:var(--x-verm);color:#fff}
body.x .fbtn:hover{background:var(--x-vdeep);border-color:var(--x-vdeep)}
body.x.map .stage .lead,body.x.map .stage .for{opacity:1}
/* no collisions on short screens: the story panel and the try-it card share the left column, so size the panel by height too */
@media(min-width:861px){
body.x .panel{top:clamp(92px,15vh,220px)}
body.x .panel h2{font-size:clamp(28px,min(4vw,6.2vh),60px)}
body.x .panel p{margin-top:12px;font-size:clamp(15px,min(1.5vw,2.5vh),20px)}
body.x .panel .pk{margin-bottom:clamp(10px,2.4vh,22px)}
body.x .panel .btn{margin-top:clamp(12px,2.2vh,22px);padding:10px 20px}
}
@media(min-width:861px) and (max-height:700px){body.x .try .tsteps li span{display:none}body.x .try{padding-top:10px;padding-bottom:10px}}

/* inner pages in the same palette: paper by day, ink text, vermilion accent. Dark bands and the footer stay night with the glow accent. */
body.x:is(.pg,.paper){--p5:var(--x-paper);--p5b:var(--x-card);--i5:var(--x-ink);--m5:var(--x-soft);--b5:var(--x-vdeep);--rule:var(--x-rule);--lamp:var(--x-verm);background:var(--x-paper);color:var(--x-ink)}
body.x .ftr,body.x .sec.dark{--lamp:var(--x-glow);--i5:var(--x-lt);--m5:var(--x-nsoft);--b5:var(--x-glow);--rule:rgba(243,238,227,.2)}
html[data-tod] body.x:is(.pg,.paper) .phead{background:var(--x-paper);color:var(--x-ink)}
html[data-tod] body.x:is(.pg,.paper) .phead h1{color:var(--x-ink)}
html[data-tod] body.x:is(.pg,.paper) .phead .lead,html[data-tod] body.x:is(.pg,.paper) .phead p{color:var(--x-soft)}
html[data-tod] body.x:is(.pg,.paper) .phead .eyebrow{color:var(--x-vdeep)}
html[data-tod] body.x:is(.pg,.paper) .phead .eyebrow:before,html[data-tod] body.x:is(.pg,.paper) .phead .eyebrow i{background:var(--x-verm)}
body.x.mapp .phead h1,body.x.mapp .phead .lead{text-shadow:none}
html[data-tod] body.x.mapp:is(.pg,.paper) .hdr:not(.hdr2),html[data-tod] body.x.mapp:is(.pg,.paper) .hdr:not(.hdr2) nav a,html[data-tod] body.x.mapp:is(.pg,.paper) .hdr:not(.hdr2) .idx,body.x.mapp .hdr:not(.hdr2),body.x.mapp .hdr:not(.hdr2) nav a{color:var(--x-ink);border-color:rgba(var(--x-inkrgb),.5)}
html[data-tod] body.x.mapp:is(.pg,.paper) .hdr:not(.hdr2) .logo,body.x.mapp .hdr:not(.hdr2) .logo{color:var(--x-ink)}
html[data-tod] body.x.mapp:is(.pg,.paper) .hdr:not(.hdr2) .idx{border-bottom-color:var(--x-verm)}
body.x .btn.solid,body.x .on-dark .btn.solid,body.x .dark .btn.solid{background:var(--x-verm);color:#fff;border-color:var(--x-verm)}
body.x form.contact input,body.x form.contact textarea,body.x form.contact select{color:var(--x-ink);caret-color:var(--x-verm)}
body.x form.contact input::placeholder,body.x form.contact textarea::placeholder{color:rgba(74,84,104,.7)}
body.x form.contact input:-webkit-autofill{-webkit-text-fill-color:var(--x-ink);box-shadow:0 0 0 40px var(--x-paper) inset}
body.x .ftr{background:var(--x-night)}
body.x .ftr a:hover{color:var(--x-glow)}
body.x .sec.dark,body.x.map .sec.dark,body.x.map.hashbg .sec.dark{background:var(--x-night);color:var(--x-lt)}
body.x .sec.dark :is(h2,h3,strong,.big,.row h3){color:var(--x-lt)}
body.x .sec.dark :is(.lead,p,li,.k,.sol,.row p){color:var(--x-nsoft)}
body.x .sec.dark a:not(.btn){color:var(--x-glow)}
body.x .sec.dark .btn:not(.solid){color:var(--x-lt);border-color:rgba(243,238,227,.6)}
body.x .sec.dark :is(.rows,.row){border-color:rgba(243,238,227,.2)}
body.x .btn.solid,body.x .sec.dark .btn.solid,body.x.map .sec.dark .btn.solid{color:#fff!important}
body.x .ckqn{opacity:1;color:var(--x-soft)}
body.x.paper .btn.solid{background:var(--x-verm);border-color:var(--x-verm)}
.fmeta{display:inline-flex;gap:20px;flex-wrap:wrap;justify-content:flex-end}
