@font-face{font-family:"Bricolage";src:url(fonts/bricolage.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Plex";src:url(fonts/plex-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex";src:url(fonts/plex-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Plex";src:url(fonts/plex-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"PlexMono";src:url(fonts/plexmono-500.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  /* Brand colours sampled from the logo: royal blue through sky to cyan, with the navy of the wordmark as ink. */
  --ink:#0b1a3d; --ink-2:#3b4868; --ink-3:#5f6c88;
  --night:#050d26; --navy:#061242;
  --paper:#ffffff; --wash:#edf4ff; --line:#cfdcf3;
  --blue:#0a3cc2; --blue-deep:#072c94; --azure:#0a6fe0; --sky:#0b93f6; --cyan:#12cdfb; --ice:#bdeeff;
  --brand:linear-gradient(90deg,#0a3cc2 0%,#0b93f6 55%,#12cdfb 100%);
  --btn:linear-gradient(100deg,#0a3cc2 0%,#0a6fe0 100%);
  --deep:radial-gradient(52rem 34rem at 88% -10%,rgba(18,205,251,.42),transparent 62%),radial-gradient(46rem 34rem at -8% 110%,rgba(11,147,246,.45),transparent 60%),linear-gradient(135deg,#050d26 0%,#061a63 48%,#0a3cc2 100%);
  --high:#b93425; --mid:#a86f08; --low:#1b7d53;
  --display:"Bricolage","Plex",system-ui,sans-serif;
  --body:"Plex",system-ui,-apple-system,"Segoe UI",sans-serif;
  --num:"PlexMono",ui-monospace,Menlo,monospace;
  --wrap:74rem; --gut:clamp(1.25rem,4vw,3rem);
  --r:1.1rem;
  --lift:0 1.6rem 3rem -1.4rem rgba(10,60,194,.45);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body)}
img,svg{max-width:100%;display:block}
a{color:var(--blue);text-underline-offset:.2em}
a:hover{color:var(--blue-deep)}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.05;letter-spacing:-.025em;margin:0;text-wrap:balance}
h1{font-size:clamp(2.5rem,6.4vw,4.75rem);font-variation-settings:"wdth" 86}
h2{font-size:clamp(1.9rem,4vw,3rem)}
h3{font-size:1.3rem;line-height:1.2;letter-spacing:-.01em;font-weight:600}
p{margin:0 0 1em;max-width:62ch}
ul{padding-left:1.1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);position:relative}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:50}
.lede{font-size:clamp(1.12rem,1.6vw,1.32rem);line-height:1.5;color:var(--ink-2);max-width:54ch}
.small{font-size:.9rem;color:var(--ink-3)}
.num{font-family:var(--num);font-variant-numeric:tabular-nums}
.hl{background:linear-gradient(90deg,#5fdcff,#12cdfb 40%,#7fb6ff);-webkit-background-clip:text;background-clip:text;color:transparent}

/* header */
.top{background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(12px);position:sticky;top:0;z-index:20;box-shadow:0 1px 0 var(--line)}
.top::before{content:"";display:block;height:4px;background:var(--brand)}
.top .wrap{display:flex;align-items:center;gap:1.5rem;min-height:4.4rem}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--ink);text-decoration:none;font:700 1.15rem/1 var(--display)}
.brand img{height:2.4rem;width:auto}
.brand>span{color:var(--blue)}.brand span span{color:var(--ink)}
.nav{margin-left:auto;display:flex;gap:1.5rem;align-items:center}
.nav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:.98rem;padding:.4rem 0;background:linear-gradient(var(--sky),var(--sky)) 0 100%/0 2px no-repeat;transition:background-size .2s ease,color .2s ease}
.nav a:hover,.nav a[aria-current]{color:var(--blue);background-size:100% 2px}
.navbtn{display:none;margin-left:auto;background:none;border:1.5px solid var(--line);border-radius:.6rem;padding:.55rem .85rem;font:600 .95rem var(--body);color:var(--ink)}
@media(max-width:62rem){
  .navbtn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);box-shadow:0 1rem 2rem -1rem rgba(5,13,38,.35);flex-direction:column;align-items:stretch;gap:0;padding:.5rem var(--gut) 1.25rem}
  .nav.open{display:flex}
  .nav a{padding:.85rem 0;border-bottom:1px solid var(--line);background:none}
  .nav .btn{margin-top:1rem;text-align:center;border-bottom:0}
}

/* buttons */
.btn{display:inline-block;background:var(--btn);color:#fff;text-decoration:none;font:600 1rem/1.2 var(--body);padding:.95rem 1.45rem;border-radius:.7rem;border:0;cursor:pointer;box-shadow:0 .7rem 1.4rem -.7rem rgba(10,60,194,.7);transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}
.btn:hover{color:#fff;transform:translateY(-2px);box-shadow:0 1.1rem 1.8rem -.8rem rgba(10,60,194,.8);filter:saturate(1.15) brightness(1.06)}
.btn:active{transform:translateY(0)}
.nav a.btn{color:#fff;padding:.7rem 1.05rem;background:var(--btn)}
.btn.bright{background:var(--cyan);color:var(--night);box-shadow:0 .8rem 1.8rem -.7rem rgba(18,205,251,.75)}
.btn.bright:hover{color:var(--night);box-shadow:0 1.1rem 2.2rem -.7rem rgba(18,205,251,.9)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff;filter:none}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}

/* sections */
.sec{padding:clamp(4rem,9vw,7rem) 0;position:relative}
.sec.wash{background:linear-gradient(180deg,var(--wash),#f7faff)}
.sec.dark{background:var(--deep);color:#fff;overflow:hidden}
.sec.night{background:var(--night);color:#fff;overflow:hidden}
.sec.dark .lede,.sec.dark p,.sec.night .lede,.sec.night p{color:#cfdcf7}
.sec.dark a:not(.btn),.sec.night a:not(.btn){color:var(--ice)}
.sec h2+.lede,.sec h2+p{margin-top:1.1rem}
.sec.dark .btn.ghost,.sec.night .btn.ghost{color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.8)}
.sec.dark .btn.ghost:hover,.sec.night .btn.ghost:hover{background:#fff;color:var(--ink)}
.sec.dark .row,.hero .row,.page-hero .row,.founder .row,.result .row{margin-top:1.8rem}

/* pixel field: the logo's dissolving grid, drawn by src/components/PixelField.astro */
.pixels{position:absolute;right:-2rem;top:0;height:100%;width:min(46rem,70%);pointer-events:none;opacity:.9}
.pixels g{animation:px .9s cubic-bezier(.2,.7,.2,1) both}
.pixels .d1{animation-delay:.05s}.pixels .d2{animation-delay:.18s}.pixels .d3{animation-delay:.31s}.pixels .d4{animation-delay:.44s}.pixels .d5{animation-delay:.57s}.pixels .d6{animation-delay:.7s}
@keyframes px{from{opacity:0;transform:translate(1.5rem,-1rem)}to{opacity:1;transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:none}}

/* home hero */
.hero{padding:clamp(3rem,7vw,5.5rem) 0 clamp(3.5rem,8vw,6rem);background:var(--deep);color:#fff;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero h1{animation:rise .7s .05s both}
.hero .lede{margin:1.5rem 0 0;color:#d6e2fb;animation:rise .7s .15s both}
.hero .tag{margin:1.4rem 0 0;font:700 1rem var(--display);letter-spacing:.01em;color:var(--cyan);animation:rise .7s .25s both}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;margin:1.8rem 0 0;padding:0;animation:rise .7s .35s both}
.chips li{display:flex;align-items:baseline;gap:.45rem;padding:.55rem .95rem;border-radius:2rem;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(189,238,255,.35);font-size:.95rem;color:#e6efff}
.chips b{font:700 1.15rem var(--display);color:#fff}
@media(max-width:62rem){.hero .wrap{grid-template-columns:1fr}.pixels{width:100%;opacity:.45}}

/* inner page hero */
.page-hero{padding:clamp(3rem,7vw,5rem) 0;background:var(--deep);color:#fff;position:relative;overflow:hidden}
.page-hero h1{font-size:clamp(2.1rem,5.2vw,3.6rem);max-width:19ch}
.page-hero .lede{margin-top:1.2rem;color:#d6e2fb}
.page-hero .small{color:#b9c9ec}
.page-hero .btn.ghost{color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.8)}
.page-hero .btn.ghost:hover{background:#fff;color:var(--ink)}
.crumb{font-size:.92rem;margin-bottom:1.2rem;color:#b9c9ec}
.crumb a{color:var(--ice)}

/* hero question card: the first scorecard question, live */
.qcard{background:var(--paper);color:var(--ink);border-radius:1.3rem;padding:1.6rem;box-shadow:0 2.5rem 5rem -2rem rgba(0,8,40,.75),0 0 0 1px rgba(189,238,255,.5),0 0 4rem -1rem rgba(18,205,251,.55);position:relative;animation:rise .8s .3s both}
.qcard::before{content:"";position:absolute;left:1.6rem;right:1.6rem;top:0;height:5px;border-radius:0 0 5px 5px;background:var(--brand)}
.qcard .meta{display:flex;justify-content:space-between;font-size:.88rem;color:var(--ink-3);margin:.3rem 0 .9rem}
.qcard .meta span:first-child{color:var(--blue);font-weight:600}
.qcard h2{font-size:1.45rem;line-height:1.2;letter-spacing:-.01em;font-weight:600}
.qcard .small{margin:1rem 0 0}
.opts{display:grid;gap:.6rem;margin:1.2rem 0 0;padding:0;list-style:none}
.opt{display:block;width:100%;text-align:left;background:var(--paper);border:0;box-shadow:inset 0 0 0 1.5px var(--line);border-radius:.75rem;padding:.9rem 1.05rem;font:500 1rem/1.35 var(--body);color:var(--ink);cursor:pointer;text-decoration:none;transition:box-shadow .15s ease,background .15s ease,transform .15s ease}
.opt:hover{box-shadow:inset 0 0 0 2px var(--sky);background:var(--wash);color:var(--ink);transform:translateX(3px)}
.opt[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--blue),inset 5px 0 0 var(--blue);background:var(--wash)}

/* two-column prose and row lists */
.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.5rem,5vw,4.5rem)}
@media(max-width:52rem){.split{grid-template-columns:1fr}}
.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.rows>li{padding:1.35rem 0;border-bottom:1px solid var(--line)}
.rows h3{margin-bottom:.35rem}
.rows p{margin:0;color:var(--ink-2)}

/* what we are called in to fix */
.pains{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.pains li{position:relative;padding:1.25rem 1.4rem 1.25rem 3.6rem;border-radius:var(--r);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);transition:transform .18s ease,box-shadow .18s ease}
.pains li::before{content:"";position:absolute;left:1.3rem;top:1.45rem;width:1.15rem;height:1.15rem;border-radius:.3rem;background:var(--brand);box-shadow:.55rem .55rem 0 -.25rem rgba(18,205,251,.55)}
.pains li:hover{transform:translateX(4px);box-shadow:inset 0 0 0 1.5px var(--sky),var(--lift)}
.pains h3{margin-bottom:.3rem}
.pains p{margin:0;color:var(--ink-2)}

/* scorecard panel */
.flag{display:grid;grid-template-columns:1.2fr .8fr;gap:2.2rem;align-items:center;background:var(--deep);color:#fff;border-radius:1.5rem;padding:clamp(1.6rem,4vw,3rem);margin:2.4rem 0 0;box-shadow:0 2.5rem 4rem -2.2rem rgba(10,60,194,.7);position:relative;overflow:hidden}
.flag h3{font-size:1.7rem;font-weight:700}
.flag p{color:#cfdcf7}
.flag .small{color:#b9c9ec}
.flag .domains{list-style:none;margin:0;padding:1.2rem 1.3rem;display:grid;gap:.7rem;background:rgba(5,13,38,.45);border-radius:1rem;box-shadow:inset 0 0 0 1px rgba(189,238,255,.25)}
.flag .domains li{display:grid;grid-template-columns:9.5rem 1fr;gap:.8rem;align-items:center;font-size:.92rem;color:#dbe6fb}
@media(max-width:52rem){.flag{grid-template-columns:1fr}}

/* card grids */
.ledger{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
.ledger li{border-radius:var(--r);padding:1.5rem;background:var(--paper);display:flex;flex-direction:column;gap:.55rem;box-shadow:inset 0 0 0 1px var(--line);position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.ledger li::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--brand);transform:scaleX(.18);transform-origin:left;transition:transform .25s ease}
.ledger li:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px var(--sky),var(--lift)}
.ledger li:hover::before{transform:scaleX(1)}
.ledger p{color:var(--ink-2);margin:0;flex:1}
.ledger a{font-weight:600}
@media(max-width:44rem){.ledger{grid-template-columns:1fr}}

.tiles{list-style:none;margin:2.2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.tiles li{border-radius:var(--r);padding:1.6rem;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;gap:.6rem;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.tiles li:hover{transform:translateY(-5px);box-shadow:inset 0 0 0 1.5px var(--sky),var(--lift)}
.tiles .ico{width:3.1rem;height:3.1rem;border-radius:.9rem;display:grid;place-items:center;color:#fff;background:var(--btn);box-shadow:0 .8rem 1.4rem -.7rem rgba(10,60,194,.8);margin-bottom:.4rem}
.tiles li:nth-child(3n+2) .ico{background:linear-gradient(135deg,#0a6fe0,#0b93f6)}
.tiles li:nth-child(3n) .ico{background:linear-gradient(135deg,#0b93f6,#12cdfb);color:var(--night)}
.tiles .ico svg{width:1.6rem;height:1.6rem}
.tiles p{margin:0;color:var(--ink-2);flex:1}
.tiles a{font-weight:600;text-decoration:none}
.tiles a:hover{text-decoration:underline}
.tiles a::after{content:"";position:absolute;inset:0}
.tiles li{position:relative}
@media(max-width:60rem){.tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:38rem){.tiles{grid-template-columns:1fr}}

/* selected work, on the night background */
.works{margin-top:2.2rem;grid-template-columns:repeat(3,1fr)}
.sec.night .works li{background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(189,238,255,.2);color:#fff}
.sec.night .works li:hover{background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 1px var(--cyan),0 1.6rem 3rem -1.4rem rgba(18,205,251,.5)}
.sec.night .works p{color:#cfdcf7}
.work .who{font-size:.88rem;font-weight:600;color:var(--blue);margin:0;max-width:none}
.sec.night .work .who{color:var(--cyan)}
.works+.small{margin-top:1.5rem}
.sec.night .small{color:#b9c9ec}
@media(max-width:60rem){.works{grid-template-columns:repeat(2,1fr)}}
@media(max-width:38rem){.works{grid-template-columns:1fr}}
.prose .work .who{margin-bottom:.2rem}

/* why us */
.facts{list-style:none;padding:0;margin:2.2rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}
.facts li{padding:1.4rem;border-radius:var(--r);background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(189,238,255,.25);backdrop-filter:blur(6px)}
.facts b{display:block;font:700 1.12rem/1.25 var(--display);margin-bottom:.45rem;color:#fff}
.facts span{color:#d6e2fb;font-size:.97rem}

/* founder */
.founder{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(1.8rem,5vw,4.5rem);align-items:center}
.founder blockquote{margin:0;padding:clamp(1.6rem,3.5vw,2.6rem);border-radius:1.5rem;background:var(--deep);color:#fff;box-shadow:var(--lift);position:relative;overflow:hidden}
.founder blockquote p{font:600 clamp(1.25rem,2.3vw,1.65rem)/1.35 var(--display);letter-spacing:-.01em;color:#fff;max-width:none;margin:0}
.founder blockquote footer{margin-top:1.2rem;color:var(--cyan);font-weight:600}
@media(max-width:52rem){.founder{grid-template-columns:1fr}}

/* bars (width set from JS; no inline styles in markup) */
.bar{height:.6rem;border-radius:1rem;background:#dbe6f7;overflow:hidden}
.sec.dark .bar,.flag .bar{background:rgba(189,238,255,.18)}
.bar i{display:block;height:100%;width:0;background:var(--brand);border-radius:1rem;transition:width .7s cubic-bezier(.2,.7,.2,1)}
.bar i.high{background:var(--high)}.bar i.mid{background:var(--mid)}.bar i.low{background:var(--low)}
.flag .bar i{background:linear-gradient(90deg,#0b93f6,#12cdfb)}

/* assessment runner */
.assess{max-width:44rem}
.progress{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.9rem;color:var(--ink-3);margin-bottom:.6rem}
.assess fieldset{border:0;margin:1.75rem 0 0;padding:0}
.assess legend{font:700 clamp(1.4rem,3vw,1.85rem)/1.2 var(--display);letter-spacing:-.015em;padding:0;margin-bottom:.3rem}
.assess .area{color:var(--blue);font-weight:600;font-size:.95rem}
.assess .back{background:none;border:0;color:var(--ink-2);font:500 .95rem var(--body);text-decoration:underline;cursor:pointer;margin-top:1.2rem;padding:.4rem 0}
.result{display:none}
.result.on{display:block;animation:rise .5s both}
.result h3{margin-top:2rem}
.score{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin:.5rem 0 1rem}
.score b{font:500 clamp(4rem,11vw,6rem)/1 var(--num);letter-spacing:-.04em;background:linear-gradient(100deg,#0a3cc2,#0b93f6);-webkit-background-clip:text;background-clip:text;color:transparent}
.band{font-weight:600;padding:.35rem .8rem;border-radius:2rem;color:#fff;background:var(--ink)}
.band.high{background:var(--high)}.band.mid{background:var(--mid)}.band.low{background:var(--low)}
.areas{list-style:none;margin:1.5rem 0;padding:0;display:grid;gap:.85rem}
.areas li{display:grid;grid-template-columns:13rem 1fr 2.5rem;gap:.9rem;align-items:center;font-size:.95rem}
@media(max-width:36rem){.areas li{grid-template-columns:1fr 2.5rem}.areas .bar{grid-column:1/-1;order:3}}
.gaps{margin:0;padding:0;list-style:none;counter-reset:g;display:grid;gap:.8rem}
.gaps li{counter-increment:g;padding:1.1rem 1.2rem 1.1rem 3.6rem;border-radius:var(--r);background:var(--wash);position:relative}
.gaps li::before{content:counter(g);position:absolute;left:1.1rem;top:1.05rem;width:1.8rem;height:1.8rem;border-radius:.5rem;display:grid;place-items:center;font:600 .95rem var(--num);color:#fff;background:var(--btn)}
.gaps strong{display:block}
.gaps span{color:var(--ink-2)}

/* forms */
.form{display:grid;gap:.9rem;max-width:32rem}
.form label{display:grid;gap:.3rem;font-weight:500;font-size:.95rem}
.form input,.form textarea,.form select{font:400 1rem/1.4 var(--body);padding:.8rem .9rem;border:1.5px solid #b3c2dc;border-radius:.65rem;background:#fff;color:var(--ink);width:100%;transition:border-color .15s ease,box-shadow .15s ease}
.form input:focus,.form textarea:focus{border-color:var(--sky);outline:0;box-shadow:0 0 0 4px rgba(11,147,246,.22)}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .msg{min-height:1.4em;font-weight:500;margin:0}
.form .msg.ok{color:var(--low)}.form .msg.err{color:var(--high)}
.inline{display:flex;gap:.6rem;flex-wrap:wrap;max-width:34rem}
.inline input{flex:1 1 14rem}
.panel{border-radius:1.3rem;padding:clamp(1.3rem,3vw,2rem);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line),0 2rem 3rem -2.4rem rgba(10,60,194,.5)}
.panel h3{margin-bottom:.6rem}
.panel .btn{margin-top:.4rem}
.panel h3:not(:first-child){margin-top:1.4rem}
.brief-panel{background:var(--paper);border-radius:1.5rem;padding:clamp(1.4rem,3.5vw,2.4rem);box-shadow:inset 0 0 0 1px var(--line),var(--lift)}
.brief-panel ul{margin:0 0 1.4rem;padding:0;list-style:none;display:grid;gap:.7rem}
.brief-panel ul li{padding-left:1.7rem;position:relative}
.brief-panel ul li::before{content:"";position:absolute;left:0;top:.45em;width:.8rem;height:.8rem;border-radius:.2rem;background:var(--brand)}

/* prose pages */
.prose h2{font-size:1.7rem;margin:2.5rem 0 .7rem}
.prose h2:first-child{margin-top:0}
.prose li{margin-bottom:.4rem;max-width:60ch}
.aside{position:sticky;top:6.5rem;align-self:start}
.cols{display:grid;grid-template-columns:1.5fr .9fr;gap:clamp(2rem,5vw,4rem)}
@media(max-width:56rem){.cols{grid-template-columns:1fr}.aside{position:static}}
.sub{margin:3.2rem 0 0}
.how{margin-top:3.5rem}
.review{margin-top:2.5rem}
.review .form{margin-top:1.2rem}
.sectors{margin:1.2rem 0 0}

/* footer */
.foot{background:var(--night);color:#d5dcec;padding:0 0 2rem;font-size:.95rem;position:relative}
.foot::before{content:"";display:block;height:4px;background:var(--brand);margin-bottom:3.5rem}
.foot a{color:#fff}
.foot .social{text-align:center;padding-bottom:2.5rem;border-bottom:1px solid #1a2850}
.foot .social p{max-width:none;margin:0 0 1.1rem;font-size:1.05rem}
.foot .icons{display:flex;justify-content:center;gap:.8rem;list-style:none;margin:0;padding:0}
.foot .icons a{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:#fff;color:var(--night);transition:transform .15s ease,background .15s ease}
.foot .icons a:hover{background:var(--cyan);color:var(--night);transform:translateY(-3px)}
.foot .icons svg{width:1.35rem;height:1.35rem}
.foot .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem;padding:2.5rem 0}
.foot h2{font:600 1rem var(--body);letter-spacing:0;margin-bottom:.7rem;color:var(--cyan)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.foot ul a{text-decoration:none;color:#d5dcec}.foot ul a:hover{color:#fff;text-decoration:underline}
.foot .brand{color:#fff;margin-bottom:.8rem}
.foot .brand>span,.foot .brand span span{color:#fff}
.foot p{color:#d5dcec}
.foot .legal{border-top:1px solid #1a2850;padding-top:1.5rem;color:#a3aec6;display:grid;gap:.5rem}
.foot .legal p{max-width:none;margin:0;color:#a3aec6}
@media(max-width:52rem){.foot .grid{grid-template-columns:1fr 1fr}}

/* chat */
.chat-btn{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:30;background:var(--btn);color:#fff;border:0;border-radius:2rem;padding:.85rem 1.25rem;font:600 .95rem var(--body);cursor:pointer;box-shadow:0 .8rem 1.8rem -.5rem rgba(10,60,194,.75);transition:transform .15s ease}
.chat-btn:hover{transform:translateY(-2px)}
.chat{position:fixed;right:1rem;bottom:calc(4.7rem + env(safe-area-inset-bottom,0px));z-index:30;width:min(23rem,calc(100vw - 2rem));max-height:min(32rem,70vh);background:#fff;border-radius:1.2rem;box-shadow:0 1.5rem 4rem rgba(5,13,38,.4),0 0 0 1px var(--line);display:none;flex-direction:column;overflow:hidden}
.chat.open{display:flex;animation:rise .25s both}
.chat header{padding:1rem 1.1rem;background:var(--deep);color:#fff;font-weight:600}
.chat header small{display:block;font-weight:400;color:#cfdcf7}
.chat .log{flex:1;overflow-y:auto;padding:1rem;display:grid;gap:.6rem;align-content:start}
.chat .log p{margin:0;padding:.65rem .85rem;border-radius:.9rem;max-width:88%;font-size:.95rem;white-space:pre-wrap;overflow-wrap:anywhere}
.chat .log .u{background:var(--btn);color:#fff;justify-self:end}
.chat .log .a{background:var(--wash)}
.chat form{display:flex;gap:.5rem;padding:.75rem;border-top:1px solid var(--line)}
.chat input{flex:1;min-width:0;font:400 1rem var(--body);padding:.6rem .7rem;border:1.5px solid #b3c2dc;border-radius:.6rem}
.chat form button{background:var(--btn);color:#fff;border:0;border-radius:.6rem;padding:0 .95rem;font:600 .95rem var(--body);cursor:pointer}
.ts{min-height:65px}
.ts:empty{min-height:0}
.chat .ts{padding:.5rem .75rem 0}

/* anchors land below the sticky header */
[id]{scroll-margin-top:6rem}

/* insights */
.article{max-width:42rem}
.article p,.article li{font-size:1.09rem;line-height:1.7;max-width:none}
.article ol,.article ul{padding-left:1.3em;margin:0 0 1.2em}
.article a[href^="#ref"]{text-decoration:none;font-size:.8em;vertical-align:super;line-height:0;padding:0 .1em}
.article .callout{background:var(--wash);border-left:5px solid var(--sky);border-radius:0 1rem 1rem 0;padding:1.1rem 1.3rem .2rem;margin:0 0 1.4em}
.article blockquote{margin:0 0 1.4em;padding:1rem 1.3rem;border-radius:1rem;background:var(--deep);color:#fff}
.article blockquote p{margin:0;color:#fff;font-weight:500}
.article .disclaimer{font-size:.92rem;color:var(--ink-3);border-top:1px solid var(--line);padding-top:1.2rem;margin-top:2rem}
.sources{margin-top:2.5rem;padding-top:.5rem;border-top:1px solid var(--line)}
.sources li{font-size:.92rem;line-height:1.55;color:var(--ink-2);overflow-wrap:anywhere}
.sources li:target{background:var(--wash)}
.next{margin-top:2.5rem}
.next .row{margin-top:.2rem}
.share{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:2rem 0 0;padding:0;list-style:none;font-size:.95rem}
.share a{display:inline-block;padding:.5rem .95rem;border-radius:2rem;box-shadow:inset 0 0 0 1.5px var(--line);text-decoration:none;font-weight:600;transition:box-shadow .15s ease,background .15s ease}
.share a:hover{box-shadow:inset 0 0 0 1.5px var(--sky);background:var(--wash)}
.posts h3 a{color:var(--ink);text-decoration:none}
.posts h3 a:hover{color:var(--blue);text-decoration:underline}
.posts .who{font-size:.88rem;font-weight:600;color:var(--blue);margin:0 0 .3rem}
.nl h2{font-size:1.3rem;margin-bottom:.6rem}
.nl .form{margin-top:1rem}
.more-h{margin:2rem 0 .8rem}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.top,.foot,.chat-btn,.chat,.noprint,.pixels{display:none!important}.result{display:block}body{font-size:11pt}.page-hero,.hero{background:none;color:#000}.page-hero .lede,.page-hero .small,.crumb,.crumb a{color:#333}.score b{color:#000;background:none}}

/* refinements */
.pixels{-webkit-mask-image:linear-gradient(to left,#000 35%,transparent 92%);mask-image:linear-gradient(to left,#000 35%,transparent 92%)}
@media(max-width:62rem){.pixels{width:85%;opacity:.38}}
@media(min-width:60rem){.facts{grid-template-columns:repeat(3,1fr)}}
