/* opticmm.com public pages. A sibling of pravegcs.com: same navy system, typefaces and motion language,
   with its own layout built around one motif, the five-sided lens. */
body.site{background:var(--ink);color:#fff;overflow-x:hidden}
.site a{text-underline-offset:3px}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.band{padding-block:clamp(4rem,8vw,7rem);position:relative}
.band.light{background:var(--paper);color:var(--slate-2)}
.band.cloud{background:var(--cloud);color:var(--slate-2)}
.band.deep{background:var(--ink-3)}
.band.tight{padding-block:clamp(2.6rem,5vw,4rem)}
.band h2{font-size:clamp(1.9rem,4.2vw,3rem);letter-spacing:-.03em;max-width:22ch}
.band.light h2,.band.cloud h2,.band.light h3,.band.cloud h3,.band.light h4,.band.cloud h4{color:var(--ink)}
.band h3{font-size:1.2rem;letter-spacing:-.01em}
.lead{font-family:var(--display);font-weight:400;font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.5;letter-spacing:-.01em;max-width:60ch;color:var(--mist-2)}
.light .lead,.cloud .lead{color:var(--slate-2)}
.prose{max-width:68ch;display:grid;gap:1rem}
.prose p{color:var(--mist-2)} .light .prose p,.cloud .prose p{color:var(--slate-2)}
.prose a,.light a.inline,.cloud a.inline{color:var(--royal-d);font-weight:500}
.band:not(.light):not(.cloud) .prose a,a.inline{color:var(--swoosh)}
.head{display:grid;gap:1rem;margin-bottom:clamp(2rem,4vw,3.2rem)}
.tm{font-size:.55em;vertical-align:super;font-weight:400;letter-spacing:0}
.muted{color:var(--mist)} .light .muted,.cloud .muted{color:var(--slate)}
.small{font-size:.86rem}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem var(--pad);transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s}
.nav.scrolled,.nav.open{background:rgba(9,19,32,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-block:.65rem;box-shadow:0 1px 0 var(--line-d)}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:#fff;z-index:2}
.brand img{width:36px;height:36px}
.brand img.lockup{width:auto;height:56px}
.brand-foot img{width:auto;height:30px}
@media (max-width:600px){.brand img.lockup{height:28px}}
.brand .name{font-family:var(--display);font-weight:700;font-size:1.12rem;letter-spacing:.14em;line-height:1}
.brand .name b{color:var(--swoosh);font-weight:700}
.brand .by{display:block;font-family:var(--body);font-weight:400;font-size:.66rem;letter-spacing:.02em;color:var(--mist);margin-top:.28rem}
.nav-links{display:flex;align-items:center;gap:clamp(.9rem,2vw,1.8rem)}
.nav-links a:not(.btn){font-size:.92rem;color:var(--mist-2);text-decoration:none;position:relative;padding:.3rem 0}
.nav-links a:not(.btn):hover,.nav-links a[aria-current]{color:#fff}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--swoosh);transition:width .3s var(--ease)}
.nav-links a:not(.btn):hover::after,.nav-links a[aria-current]::after{width:100%}
.nav-toggle{display:none;background:none;border:0;color:#fff;cursor:pointer;padding:.3rem;z-index:2}
.nav-toggle svg{width:28px;height:28px}
@media (max-width:980px){
  .nav-toggle{display:block}
  .nav-links{position:fixed;inset:0;background:var(--ink-3);flex-direction:column;justify-content:center;gap:1.4rem;transform:translateY(-100%);transition:transform .45s var(--ease);visibility:hidden}
  .nav.open .nav-links{transform:none;visibility:visible}
  .nav-links a:not(.btn){font-family:var(--display);font-size:1.5rem;color:#fff}
}

/* hero with the lens */
.hero{position:relative;min-height:min(100svh,920px);display:flex;align-items:center;overflow:hidden;padding-block:7.5rem 3rem}
#sky{position:absolute;inset:0;width:100%;height:100%;opacity:.75}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 70% at 78% 45%,rgba(0,162,223,.16),transparent 62%),radial-gradient(60% 60% at 10% 100%,rgba(44,114,201,.14),transparent 70%)}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:30%;background:linear-gradient(180deg,transparent,var(--ink))}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(1.5rem,4vw,4rem);align-items:center}
.hero-kicker{font-size:.95rem;color:var(--swoosh);font-weight:500;margin-bottom:1.1rem}
.hero h1{font-size:clamp(2.9rem,7.6vw,6.1rem);font-weight:600;letter-spacing:-.04em;line-height:.98}
.hero h1 .l2{display:block;background:linear-gradient(95deg,#fff 20%,var(--swoosh));-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.08em}
.hero .lead{margin-top:1.6rem;max-width:54ch}
.hero .lead strong{color:#fff;font-weight:500}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.focus-in{animation:focusIn .9s var(--ease) both}
.focus-in.d2{animation-delay:.15s}
@keyframes focusIn{from{filter:blur(10px);opacity:0;transform:scale(1.02)}to{filter:blur(0);opacity:1;transform:none}}
.lens{position:relative;display:grid;justify-items:center;gap:.4rem}
.lens svg{width:min(100%,560px);height:auto;overflow:visible}
.lens-cap{min-height:4.6em;text-align:center;max-width:42ch;font-size:.92rem;color:var(--mist-2)}
.lens-cap b{display:block;font-family:var(--display);font-weight:600;color:#fff;font-size:1.05rem;margin-bottom:.15rem}
.lens-key{display:flex;gap:1.2rem;justify-content:center;font-size:.78rem;color:var(--mist)}
.lens-key span{display:flex;align-items:center;gap:.45rem}
.lens-key i{width:20px;height:0;border-top:3px solid var(--swoosh);display:inline-block}
.lens-key i.t{border-top:2px dashed rgba(255,255,255,.85)}
.ln-ring{fill:none;stroke:rgba(255,255,255,.1);stroke-width:1} .ln-ring.outer{stroke:rgba(255,255,255,.22)}
.ln-spoke{stroke:rgba(255,255,255,.1);stroke-width:1}
.ln-glass{fill:url(#glass);stroke:rgba(0,162,223,.35);stroke-width:1.5}
.ln-arc{fill:none;stroke:rgba(0,162,223,.5);stroke-width:1.5;stroke-dasharray:3 9;transform-origin:280px 270px;animation:spin 90s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ln-target{fill:none;stroke:rgba(255,255,255,.85);stroke-width:2;stroke-dasharray:8 6;stroke-linejoin:round}
.ln-cur{fill:rgba(0,162,223,.22);stroke:var(--swoosh);stroke-width:3;stroke-linejoin:round;filter:drop-shadow(0 0 14px rgba(0,162,223,.55))}
.ln-dot{fill:var(--swoosh);stroke:var(--ink);stroke-width:2.5}
.ln-letter{font-family:var(--display);font-weight:700;font-size:30px;fill:#fff;text-anchor:middle}
.ln-name{font-family:var(--body);font-size:11.5px;fill:var(--mist);text-anchor:middle}
.ln-tick{font-family:var(--mono);font-size:10px;fill:rgba(255,255,255,.4)}
@media (max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr)}.hero{padding-top:6.5rem}.lens{margin-top:1rem}}

/* page hero (inner pages) */
.phero{position:relative;padding:clamp(8rem,16vw,11rem) 0 clamp(3rem,6vw,5rem);overflow:hidden}
.phero::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 90% at 85% 20%,rgba(0,162,223,.15),transparent 60%)}
.phero .penta{position:absolute;right:-6%;top:8%;width:min(52vw,560px);opacity:.5;pointer-events:none}
.phero .wrap{position:relative}
.phero h1{font-size:clamp(2.4rem,6vw,4.4rem);letter-spacing:-.035em;max-width:17ch}
.phero .lead{margin-top:1.3rem}
.crumbs{font-size:.84rem;color:var(--mist);margin-bottom:1.2rem;display:flex;gap:.5rem;flex-wrap:wrap}
.crumbs a{color:var(--mist-2);text-decoration:none} .crumbs a:hover{color:#fff}
.jump{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}
.jump a{font-size:.86rem;text-decoration:none;color:var(--mist-2);border:1px solid var(--line-d);border-radius:999px;padding:.4rem .9rem;transition:border-color .2s,color .2s}
.jump a:hover{border-color:var(--swoosh);color:#fff}

/* facts strip */
.facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line-d);margin-top:clamp(2.5rem,5vw,4rem);position:relative;z-index:2}
.facts div{padding:1.2rem 1rem 0 0;display:grid;gap:.15rem}
.facts dt{font-family:var(--display);font-weight:600;font-size:clamp(1.6rem,3.4vw,2.4rem);letter-spacing:-.03em;line-height:1}
.facts dd{font-size:.84rem;color:var(--mist)}
@media (max-width:720px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* generic grids */
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3.5rem)}
.cols2.mid{align-items:center}
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.2rem,2.5vw,2rem)}
@media (max-width:860px){.cols2,.cols3{grid-template-columns:minmax(0,1fr)}}
.adds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line-l)}
.adds>div{padding:1.6rem 1.6rem 1.6rem 0;border-bottom:1px solid var(--line-l);display:grid;gap:.5rem;align-content:start}
.adds>div:nth-child(odd){border-right:1px solid var(--line-l)} .adds>div:nth-child(even){padding-left:1.6rem}
.adds p{font-size:.97rem}
@media (max-width:760px){.adds{grid-template-columns:1fr}.adds>div,.adds>div:nth-child(even){padding:1.4rem 0;border-right:0}}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line-d);border-radius:var(--r-l);overflow:hidden;background:rgba(255,255,255,.02)}
.pillar-col{padding:1.5rem 1.2rem 1.6rem;border-right:1px solid var(--line-d);display:grid;gap:.5rem;align-content:start;transition:background .3s}
.pillar-col:last-child{border-right:0}
.pillar-col:hover{background:rgba(0,162,223,.07)}
.pillar-col .L{font-family:var(--display);font-weight:700;font-size:clamp(3.2rem,6vw,4.8rem);line-height:.85;color:var(--swoosh);letter-spacing:-.04em}
.pillar-col h3{font-size:1.08rem;margin-top:.5rem}
.pillar-col .tag{font-size:.84rem;color:var(--mist)}
.pillar-col ul{display:grid;gap:.4rem;margin-top:.7rem;font-size:.86rem;color:var(--mist-2)}
.pillar-col li{display:grid;grid-template-columns:2.1em 1fr}
.pillar-col li b{font-family:var(--display);font-weight:600;color:#fff;font-size:.82rem}
@media (max-width:1000px){.pillars{grid-template-columns:1fr}.pillar-col{border-right:0;border-bottom:1px solid var(--line-d);grid-template-columns:auto 1fr;column-gap:1.2rem}.pillar-col .L{grid-row:span 3}.pillar-col ul{grid-column:2}.pillar-col:last-child{border-bottom:0}}
.pblock{display:grid;grid-template-columns:minmax(90px,150px) minmax(0,1fr);gap:clamp(1rem,3vw,2.5rem);padding-block:clamp(2rem,4vw,3rem);border-top:1px solid var(--line-l)}
.pblock .L{font-family:var(--display);font-weight:700;font-size:clamp(4.5rem,11vw,8.5rem);line-height:.8;color:var(--royal);letter-spacing:-.05em}
.pblock h3{font-size:clamp(1.4rem,3vw,1.9rem)}
.pblock .tag{color:var(--slate);margin:.2rem 0 .8rem}
.dlist{display:grid;gap:.9rem;margin-top:1.2rem}
.dlist div{display:grid;gap:.2rem;padding-left:3.4rem;position:relative}
.dlist dt{font-family:var(--display);font-weight:600;color:var(--ink)}
.dlist .c{position:absolute;left:0;top:.05rem;font-weight:700;color:var(--royal-d);font-size:.95rem}
.dlist dd{font-size:.94rem}
@media (max-width:620px){.pblock{grid-template-columns:1fr}}

/* cycle */
.cycle{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;counter-reset:st;position:relative}
.cycle li{padding:1.3rem 1rem 0 0;border-top:3px solid var(--swoosh);position:relative;display:grid;gap:.4rem;align-content:start}
.cycle li.prog{border-top-color:var(--teal)}
.cycle .n{font-family:var(--display);font-weight:700;font-size:2.2rem;line-height:1;color:var(--swoosh)}
.cycle li.prog .n{color:var(--teal)}
.cycle h3{font-size:1.1rem} .cycle p{font-size:.88rem;color:var(--mist-2)}
.light .cycle p,.cloud .cycle p{color:var(--slate-2)}
.cycle-key{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;margin-top:1.4rem;font-size:.84rem;color:var(--mist)}
.light .cycle-key{color:var(--slate)}
.cycle-key span::before{content:"";display:inline-block;width:18px;height:3px;background:var(--swoosh);vertical-align:middle;margin-right:.5rem}
.cycle-key span.prog::before{background:var(--teal)}
@media (max-width:900px){.cycle{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem 0}}

/* tables */
.t-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.t{width:100%;border-collapse:collapse;font-size:.94rem;min-width:520px}
table.t th,table.t td{text-align:left;padding:.8rem .9rem .8rem 0;border-bottom:1px solid var(--line-l);vertical-align:top}
table.t thead th{font-size:.8rem;font-weight:600;color:var(--slate);border-bottom:2px solid var(--ink)}
table.t tbody th{font-family:var(--display);font-weight:600;color:var(--ink)}
.band:not(.light):not(.cloud) table.t th,.band:not(.light):not(.cloud) table.t td{border-bottom-color:var(--line-d)}
.band:not(.light):not(.cloud) table.t thead th{color:var(--mist);border-bottom-color:var(--swoosh)}
.band:not(.light):not(.cloud) table.t tbody th{color:#fff}
.band:not(.light):not(.cloud) table.t td{color:var(--mist-2)}
table.t .num{font-family:var(--mono);text-align:right;padding-right:1.2rem}
table.t tr.hl th,table.t tr.hl td{background:rgba(0,162,223,.1)}
.lvl{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:7px;font-family:var(--display);font-weight:700;color:#fff;margin-right:.7rem}
.lvl.l1{background:var(--seq-1);color:#0B2A52}.lvl.l2{background:var(--seq-2);color:#0B2A52}.lvl.l3{background:var(--seq-3)}.lvl.l4{background:var(--seq-4)}.lvl.l5{background:var(--seq-5)}

/* depths */
.depths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}
.depth{background:#fff;border:1px solid var(--line-l);border-radius:var(--r-l);padding:clamp(1.3rem,3vw,2rem);display:grid;gap:.8rem;align-content:start}
.depth.deep{background:var(--ink);color:#fff;border-color:var(--ink)}
.depth.deep h3{color:#fff!important}
.depth h3{font-size:1.5rem}
.depth .for{font-size:.92rem;color:var(--slate)} .depth.deep .for{color:var(--mist)}
.depth dl{display:grid;grid-template-columns:max-content 1fr;gap:.45rem 1.1rem;font-size:.93rem;margin-top:.4rem}
.depth dt{color:var(--slate)} .depth.deep dt{color:var(--mist)}
.depth dd{color:var(--ink);font-weight:500} .depth.deep dd{color:#fff}
.depth .warn{font-size:.86rem;border-top:1px solid var(--line-l);padding-top:.8rem;color:var(--slate)}
@media (max-width:760px){.depths{grid-template-columns:1fr}}

/* calibration widget */
.calib{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);gap:clamp(1.5rem,4vw,3rem);align-items:center;background:#fff;border:1px solid var(--line-l);border-radius:var(--r-l);padding:clamp(1.2rem,3vw,2.2rem)}
.calib .fields{display:grid;gap:1rem}
.calib-out{display:grid;gap:.6rem;justify-items:center}
.calib-out svg{width:100%;max-width:400px;height:auto;overflow:visible}
.cal-ring{fill:none;stroke:#DCE5F0} .cal-ring.outer{stroke:#C3D0E0} .cal-spoke{stroke:#DCE5F0}
.cal-now{fill:rgba(44,114,201,.12);stroke:var(--royal);stroke-width:2.5;stroke-linejoin:round;transition:all .5s var(--ease)}
.cal-next{fill:none;stroke:var(--teal-d);stroke-width:2;stroke-dasharray:3 6;stroke-linecap:round;stroke-linejoin:round}
.cal-base{fill:none;stroke:#9AAABD;stroke-width:1.5;stroke-dasharray:6 5}
.cal-letter{font-family:var(--display);font-weight:700;font-size:22px;fill:var(--ink);text-anchor:middle}
.cal-tick{font-family:var(--mono);font-size:10px;fill:#8FA0B6}
.calib-read{font-family:var(--display);font-weight:600;font-size:1.25rem;color:var(--ink);text-align:center}
.calib-read span{display:inline-block;margin:0 .3rem}
.calib-read b{color:var(--royal-d)}
.calib-note{font-size:.88rem;color:var(--slate);text-align:center;max-width:40ch}
.calib-key{display:flex;flex-wrap:wrap;gap:.3rem 1rem;justify-content:center;font-size:.78rem;color:var(--slate)}
.calib-key i{display:inline-block;width:18px;height:0;border-top:2.5px solid var(--royal);vertical-align:middle;margin-right:.4rem}
.calib-key i.b{border-top:1.5px dashed #9AAABD} .calib-key i.n{border-top:2px dotted var(--teal-d)}
@media (max-width:820px){.calib{grid-template-columns:1fr}}

/* static figures */
.fig{display:grid;gap:.6rem;justify-items:center}
.fig svg{width:100%;height:auto;overflow:visible}
.fig figcaption{font-size:.84rem;color:var(--slate);text-align:center;max-width:44ch}
.band:not(.light):not(.cloud) .fig figcaption{color:var(--mist)}
.shapes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
.shape{background:#fff;border:1px solid var(--line-l);border-radius:var(--r-m);padding:1.1rem;display:grid;gap:.5rem;align-content:start}
.shape h3{font-size:1.05rem} .shape p{font-size:.88rem}
.shape .seq{font-size:.84rem;color:var(--slate);border-top:1px solid var(--line-l);padding-top:.5rem}
@media (max-width:980px){.shapes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:540px){.shapes{grid-template-columns:1fr}}
.sr-ring{fill:none;stroke:#DCE5F0} .sr-ring.outer{stroke:#C3D0E0} .sr-spoke{stroke:#DCE5F0}
.sr-cur{fill:rgba(42,120,214,.16);stroke:var(--viz-level);stroke-width:2.5;stroke-linejoin:round}
.sr-tgt{fill:none;stroke:var(--viz-target);stroke-width:2;stroke-dasharray:7 5;stroke-linejoin:round}
.sr-dot{fill:var(--viz-level);stroke:#fff;stroke-width:2}
.sr-letter{font-family:var(--display);font-weight:700;font-size:20px;fill:var(--ink);text-anchor:middle}
.dark-fig .sr-ring,.dark-fig .sr-spoke{stroke:rgba(255,255,255,.12)} .dark-fig .sr-ring.outer{stroke:rgba(255,255,255,.25)}
.dark-fig .sr-cur{fill:rgba(0,162,223,.2);stroke:var(--swoosh)} .dark-fig .sr-tgt{stroke:rgba(255,255,255,.85)} .dark-fig .sr-dot{fill:var(--swoosh);stroke:var(--ink-2)} .dark-fig .sr-letter{fill:#fff}

/* interdependency loop */
.loop svg{width:100%;max-width:560px;height:auto}
.lp-node{fill:var(--ink);stroke:var(--swoosh);stroke-width:2}
.lp-c{fill:var(--paper);stroke:var(--royal-d);stroke-width:2;stroke-dasharray:5 4}
.lp-l{font-family:var(--display);font-weight:700;font-size:26px;fill:#fff;text-anchor:middle}
.lp-lc{fill:var(--royal-d)}
.lp-arrow{fill:none;stroke:var(--royal);stroke-width:2.5;stroke-dasharray:7 7;animation:flow 1.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-28}}
.lp-ray{stroke:#9AAABD;stroke-width:1.5;stroke-dasharray:2 5}
.lp-t{font-family:var(--body);font-size:12px;fill:var(--slate);text-anchor:middle}

/* formula and roles */
.formula{font-family:var(--display);font-weight:600;font-size:clamp(1.4rem,3.6vw,2.4rem);letter-spacing:-.02em;padding:1.4rem 0;border-block:1px solid var(--line-d);margin-block:1.6rem;color:#fff}
.formula em{font-style:normal;color:var(--swoosh)}
.light .formula{color:var(--ink);border-color:var(--line-l)} .light .formula em{color:var(--royal-d)}
.roles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line-d)}
.roles div{padding:1.1rem 1rem 0 0;display:grid;gap:.3rem}
.roles dt{font-family:var(--display);font-weight:600;font-size:1.1rem}
.roles dd{font-size:.9rem;color:var(--mist-2)}
.light .roles{border-color:var(--line-l)} .light .roles dd{color:var(--slate-2)}
@media (max-width:760px){.roles{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* platform preview */
.dash{background:var(--paper);border-radius:var(--r-l);padding:clamp(.9rem,2vw,1.4rem);color:var(--slate-2);box-shadow:var(--shadow-2);display:grid;gap:.9rem;position:relative}
.dash-bar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;font-size:.78rem}
.dash-bar .pill{border:1px solid #B9C8DB;background:#fff;border-radius:999px;padding:.25rem .7rem}
.dash-bar .pill.on{background:#EDF4FD;border-color:var(--royal);color:var(--royal-d);font-weight:600}
.dash-bar .tag{margin-left:auto;font-family:var(--mono);font-size:.7rem;color:var(--slate)}
.dash-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:.9rem}
.dash-card.span{grid-column:1/-1}
.mini-trends{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem}
.dash-note{font-size:.7rem;color:var(--slate)}
.dash-card{background:#fff;border:1px solid var(--line-l);border-radius:var(--r-m);padding:.9rem;display:grid;gap:.5rem;align-content:start;min-width:0}
.dash-card h3{font-size:.86rem;color:var(--ink);letter-spacing:0}
.dash-card svg{width:100%;height:auto;overflow:visible}
.mini-heat{width:100%;border-collapse:separate;border-spacing:2px;font-size:.72rem;table-layout:fixed}
.mini-heat th{font-weight:500;color:var(--slate);text-align:center;padding:.15rem 0;white-space:nowrap;overflow:hidden}
.mini-heat tbody th{width:1.4rem;font-family:var(--display);font-weight:700;color:var(--ink)}
.mini-heat thead th:first-child{width:1.4rem}
.mini-heat td{text-align:center;font-family:var(--mono);border-radius:4px;padding:.3rem 0}
.mini-heat .dn2{background:var(--gap-n2);color:#fff}.mini-heat .dn1{background:var(--gap-n1);color:#5A1C0C}.mini-heat .dz{background:#EEF2F6}.mini-heat .dp1{background:var(--gap-p1);color:#0B2A52}.mini-heat .dp2{background:var(--gap-p2);color:#fff}
.mt-grid{stroke:#E4EBF3}.mt-line{fill:none;stroke:var(--viz-level);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:400;stroke-dashoffset:400}
.in .mt-line{animation:draw 1.6s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.mt-dot{fill:#fff;stroke:var(--viz-level);stroke-width:2.2}.mt-tgt{stroke:var(--viz-target);stroke-width:1.3;stroke-dasharray:5 4}.mt-lab{font-family:var(--mono);font-size:9px;fill:var(--slate)}.mt-k{font-family:var(--display);font-weight:700;font-size:12px;fill:var(--ink)}
@media (max-width:520px){.dash-grid{grid-template-columns:1fr}.mini-trends{grid-template-columns:repeat(3,minmax(0,1fr))}}
.feat{display:grid;gap:1.3rem}
.feat li{display:grid;gap:.25rem;padding-left:1.1rem;border-left:2px solid var(--swoosh)}
.feat h3{font-size:1.08rem} .feat p{font-size:.94rem;color:var(--mist-2)}
.light .feat p,.cloud .feat p{color:var(--slate-2)} .light .feat li,.cloud .feat li{border-left-color:var(--royal)}

/* field vignettes */
.vigs{display:grid;gap:1.4rem;grid-template-columns:repeat(3,minmax(0,1fr))}
.vig{display:grid;gap:.7rem;align-content:start;border-top:3px solid var(--royal);padding-top:1.1rem}
.vig .sector{font-size:.8rem;color:var(--slate);font-weight:500}
.vig h3{font-size:1.15rem;line-height:1.25}
.vig p{font-size:.93rem}
.vig cite{font-size:.8rem;color:var(--slate);font-style:normal}
@media (max-width:900px){.vigs{grid-template-columns:1fr}}
.disclaimer{font-size:.82rem;color:var(--slate);margin-top:1.6rem;max-width:90ch}
.band:not(.light):not(.cloud) .disclaimer{color:var(--mist)}

/* book */
.cover{aspect-ratio:2/3;width:min(100%,300px);border-radius:6px 14px 14px 6px;background:linear-gradient(160deg,#14304E,#081320 70%);box-shadow:var(--shadow-2),inset 6px 0 0 rgba(255,255,255,.06);padding:1.6rem 1.4rem;display:grid;align-content:space-between;position:relative;overflow:hidden;color:#fff}
.cover::after{content:"";position:absolute;right:-30%;bottom:-18%;width:110%;aspect-ratio:1;background:conic-gradient(from 198deg at 50% 50%,rgba(0,162,223,.5),transparent 20%,rgba(0,162,223,.25) 40%,transparent 60%,rgba(0,162,223,.4) 80%,transparent);clip-path:polygon(50% 0,100% 38%,81% 100%,19% 100%,0 38%);opacity:.55}
.cover .ct{font-family:var(--display);font-weight:700;font-size:1.55rem;line-height:1.05;letter-spacing:-.02em;position:relative;z-index:1}
.cover .cs{font-size:.74rem;color:var(--mist-2);margin-top:.6rem;position:relative;z-index:1;line-height:1.4}
.cover .ca{font-family:var(--display);font-weight:600;font-size:.86rem;position:relative;z-index:1}
.cover .ca small{display:block;font-family:var(--body);font-weight:400;color:var(--mist);font-size:.7rem;margin-top:.2rem}
.toc{display:grid;gap:0;border-top:1px solid var(--line-l)}
.toc>div{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:.4rem 2rem;padding:1.2rem 0;border-bottom:1px solid var(--line-l)}
.toc h3{font-size:1.02rem} .toc ol{display:grid;gap:.3rem;font-size:.94rem;list-style:none}
@media (max-width:700px){.toc>div{grid-template-columns:1fr}}
.pull{font-family:var(--display);font-weight:500;font-size:clamp(1.25rem,2.6vw,1.8rem);line-height:1.35;letter-spacing:-.015em;max-width:30ch}
.pull+cite{display:block;margin-top:.8rem;font-size:.84rem;font-style:normal;color:var(--mist)}
.light .pull+cite{color:var(--slate)}
.pulls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
@media (max-width:860px){.pulls{grid-template-columns:1fr}}
.portrait{aspect-ratio:4/5;width:min(100%,340px);border-radius:var(--r-l);background:linear-gradient(160deg,var(--ink-card),var(--ink-3));border:1px dashed var(--line-d);display:grid;place-items:center;color:var(--mist);font-size:.8rem;position:relative;overflow:hidden}
.portrait::before{content:"";position:absolute;inset:18% 18% auto;aspect-ratio:1;border:1px solid rgba(0,162,223,.3);clip-path:polygon(50% 0,100% 38%,81% 100%,19% 100%,0 38%);background:rgba(0,162,223,.08)}
.portrait img{width:100%;height:100%;object-fit:cover;display:block}
.portrait.has-photo{border:1px solid var(--line-d);box-shadow:var(--shadow-2)}
.portrait.has-photo::before{display:none}
.creds{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.2rem}
.creds li{font-size:.82rem;border:1px solid var(--line-d);border-radius:999px;padding:.3rem .8rem;color:var(--mist-2)}
.light .creds li{border-color:#B9C8DB;color:var(--slate-2)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-d);margin-top:2rem}
.stats div{padding:1.1rem 1rem 0 0}
.stats dt{font-family:var(--display);font-weight:600;font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.03em;line-height:1}
.stats dt b{color:var(--swoosh);font-weight:600}
.stats dd{font-size:.84rem;color:var(--mist)}
.light .stats{border-color:var(--line-l)} .light .stats dd{color:var(--slate)} .light .stats dt b{color:var(--royal)}
@media (max-width:640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* forms on the public site */
.formcard{background:#fff;color:var(--slate-2);border-radius:var(--r-l);padding:clamp(1.2rem,3vw,2rem);display:grid;gap:1rem;border:1px solid var(--line-l)}
.formcard h3{color:var(--ink);font-size:1.3rem}
.formcard .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
@media (max-width:560px){.formcard .row{grid-template-columns:1fr}}
.formcard .msg{font-size:.92rem;font-weight:500}
.formcard .msg.ok{color:var(--ok)} .formcard .msg.bad{color:var(--bad)}
.formcard .hp{position:absolute;left:-5000px}
.formcard a{color:var(--royal-d)}
.codebox-pub{display:grid;gap:.9rem;background:var(--ink-card);border:1px solid var(--line-d);border-radius:var(--r-l);padding:clamp(1.2rem,3vw,1.8rem)}
.codebox-pub h2{font-size:1.25rem;letter-spacing:-.01em;max-width:none}
.codebox-pub form{display:flex;gap:.6rem;flex-wrap:wrap}
.codebox-pub input{flex:1 1 200px;background:rgba(255,255,255,.06);border:1px solid var(--line-d);border-radius:999px;padding:.75rem 1.2rem;color:#fff;font-family:var(--mono);font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase}
.codebox-pub input::placeholder{color:var(--mist);opacity:.7}
.codebox-pub input:focus{outline:none;border-color:var(--swoosh);box-shadow:0 0 0 3px rgba(0,162,223,.25)}
.codebox-pub p{font-size:.86rem;color:var(--mist)}

/* ladder illustration */
.ladder-demo{display:grid;gap:.35rem}
.ladder-demo li{display:grid;grid-template-columns:2.2rem 1fr auto;gap:.8rem;align-items:center;padding:.6rem .8rem;border-radius:10px;border:1px solid var(--line-d);font-size:.9rem}
.ladder-demo .n{font-family:var(--display);font-weight:700;font-size:1.1rem}
.ladder-demo b{display:block;font-family:var(--display)} .ladder-demo span.d{color:var(--mist);font-size:.84rem}
.ladder-demo em{font-style:normal;font-size:.76rem;color:var(--mist)}
.ladder-demo li.ev{background:rgba(0,162,223,.12);border-color:rgba(0,162,223,.5)} .ladder-demo li.ev em{color:var(--swoosh)}
.ladder-demo li.at{box-shadow:inset 4px 0 0 var(--swoosh)}

/* faq */
.faq{display:grid;gap:0;border-top:1px solid var(--line-l);max-width:860px}
.faq details{border-bottom:1px solid var(--line-l);padding:1.05rem 0}
.faq summary{cursor:pointer;font-family:var(--display);font-weight:600;font-size:1.08rem;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:1.4rem;line-height:1;color:var(--royal);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin-top:.7rem;max-width:70ch}
.band:not(.light):not(.cloud) .faq,.band:not(.light):not(.cloud) .faq details{border-color:var(--line-d)}
.band:not(.light):not(.cloud) .faq summary{color:#fff}

/* glossary */
.gloss{display:grid;gap:0;border-top:1px solid var(--line-l)}
.gloss div{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:.3rem 2rem;padding:1.1rem 0;border-bottom:1px solid var(--line-l)}
.gloss dt{font-family:var(--display);font-weight:600;color:var(--ink);font-size:1.05rem}
@media (max-width:700px){.gloss div{grid-template-columns:1fr}}

/* timeline */
.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
.timeline li{border-top:3px solid var(--royal);padding-top:1rem;display:grid;gap:.35rem;align-content:start}
.timeline .w{font-family:var(--mono);font-size:.78rem;color:var(--royal-d)}
.timeline h3{font-size:1.08rem} .timeline p{font-size:.9rem}
.band:not(.light):not(.cloud) .timeline li{border-top-color:var(--swoosh)} .band:not(.light):not(.cloud) .timeline .w{color:var(--swoosh)} .band:not(.light):not(.cloud) .timeline p{color:var(--mist-2)}
@media (max-width:860px){.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.timeline{grid-template-columns:1fr}}
.pledge{display:grid;gap:.9rem;counter-reset:pl;max-width:760px}
.pledge li{font-family:var(--display);font-size:clamp(1.05rem,2.2vw,1.35rem);line-height:1.4;padding-left:1.4rem;border-left:2px solid var(--swoosh)}
.pledge li span{display:block;font-family:var(--body);font-size:.93rem;color:var(--mist-2);margin-top:.15rem}
.notelist{display:grid;gap:.8rem}
.notelist li{padding-left:1.1rem;border-left:2px solid var(--line-l)}
.notelist b{color:var(--ink);font-family:var(--display)}
.band:not(.light):not(.cloud) .notelist li{border-left-color:var(--line-d)} .band:not(.light):not(.cloud) .notelist b{color:#fff}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.2rem}
.kpis>div{display:grid;gap:.5rem;align-content:start}
.kpis .L{font-family:var(--display);font-weight:700;font-size:2rem;color:var(--royal);line-height:1}
.kpis h3{font-size:1rem} .kpis ul{display:grid;gap:.6rem;font-size:.86rem}
.kpis li b{display:block;color:var(--ink);font-weight:600}
@media (max-width:1000px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.kpis{grid-template-columns:1fr}}

/* closing call and footer */
.cta{padding-block:clamp(4rem,9vw,7rem);background:radial-gradient(70% 120% at 80% 0%,rgba(0,162,223,.2),transparent 60%),var(--ink-3);border-top:1px solid var(--line-d)}
.cta h2{font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.03em;max-width:18ch}
.cta .lead{margin-top:1rem}
footer.sitefoot{background:var(--ink-3);border-top:1px solid var(--line-d);padding:2.6rem 0 2rem;font-size:.86rem;color:var(--mist)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:2rem}
.foot-grid .fh{font-family:var(--body);font-weight:600;font-size:.82rem;color:#fff;margin-bottom:.7rem;letter-spacing:0}
.foot-grid ul{display:grid;gap:.45rem}
.foot-grid a{color:var(--mist-2);text-decoration:none} .foot-grid a:hover{color:var(--swoosh)}
.foot-legal{border-top:1px solid var(--line-d);margin-top:2rem;padding-top:1.2rem;display:grid;gap:.4rem;font-size:.78rem}
.social{display:flex;gap:.6rem;margin-top:1rem}
.social a{width:36px;height:36px;border:1px solid var(--line-d);border-radius:50%;display:grid;place-items:center;color:var(--mist-2)}
.social a:hover{border-color:var(--swoosh);color:var(--swoosh)}
.social svg{width:16px;height:16px}
@media (max-width:820px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.nav,.cta,footer.sitefoot,#sky{display:none}body.site{background:#fff;color:#000}}
.band,.phero,.cta{overflow-x:clip}
