/* Vane site styles. Source of truth: docs/design/readiness-mockup/vane.css
   (light theme only), plus the few extra pieces the real site needs
   (results dropdown, year picker, order form, legal pages, search page). */
:root{--paper:#F4F5F1;--surface:#FFFFFF;--ink:#0F1A2A;--ink-soft:#2B3647;--slate:#5B6472;--rule:#CDD1C8;--cell:#DCDFD7;--signal:#F2A93B;--signal-light:#F5CB8A;--signal-text:#9A5F0E;--btn:#0F1A2A;--on-btn:#F4F5F1;--btn-hover:#24324A;--night:#0F1A2A;--on-night:#F4F5F1;--night-soft:#C9CED6;--night-rule:#2A3A52;--night-cell:#22324A;--focus:#0F1A2A;--shadow:0 1px 2px rgba(15,26,42,.06),0 24px 48px -12px rgba(15,26,42,.18);--ease:cubic-bezier(.22,.61,.36,1)}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
body{background:var(--paper);color:var(--ink);font-family:'Archivo','Helvetica Neue',Arial,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
body>main{flex:1 0 auto}
a{color:var(--ink)}
p{margin:0}
button,input,select{font-family:inherit}
input::placeholder{color:var(--slate)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.night a:focus-visible,.night button:focus-visible,.night input:focus-visible,.foot a:focus-visible{outline-color:var(--signal)}
[hidden]{display:none !important}
.num{font-variant-numeric:tabular-nums}
.skip{position:absolute;left:16px;top:-60px;z-index:10;background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:8px;font-weight:600;text-decoration:none}
.skip:focus{top:12px}
.nowrap{white-space:nowrap}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hp{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}
mark.todo{background:#FFE08A;color:var(--ink);padding:0 4px;border-radius:4px;font-weight:700}

/* Layout */
.wrap{max-width:1200px;margin:0 auto;padding-left:40px;padding-right:40px;width:100%}
@media (max-width:700px){.wrap{padding-left:16px;padding-right:16px}}
.split{display:flex;flex-wrap:wrap;gap:32px 72px}
.split>.side{flex:1 1 300px;min-width:0}
.split>.main{flex:999 1 560px;min-width:0}
.stack{display:flex;flex-direction:column}

/* Type */
.display{margin:0;font-size:clamp(52px,8.2vw,120px);line-height:.92;font-weight:800;letter-spacing:-.04em;font-variation-settings:'wdth' 112;text-wrap:balance}
.h1{margin:0;font-size:clamp(44px,5.6vw,76px);line-height:.95;font-weight:800;letter-spacing:-.035em;font-variation-settings:'wdth' 112;text-wrap:balance}
.h2{margin:0;font-size:clamp(30px,3vw,40px);line-height:1.06;font-weight:800;letter-spacing:-.025em;font-variation-settings:'wdth' 108;text-wrap:balance}
.h3{margin:0;font-size:21px;line-height:1.25;font-weight:700;letter-spacing:-.01em}
.lede{font-size:clamp(19px,1.6vw,22px);line-height:1.45;color:var(--ink-soft);max-width:36em}
.body{font-size:17px;line-height:1.6;color:var(--ink-soft)}
.small{font-size:15px;line-height:1.5;color:var(--ink-soft)}
.cap{font-size:14px;line-height:1.45;color:var(--slate)}
.label{font-size:15px;font-weight:600}
@media (max-width:700px){.display{font-size:clamp(44px,13vw,64px)}.h1{font-size:clamp(36px,10vw,48px)}}

/* Header */
.sitehead{display:flex;align-items:center;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;padding-top:28px;padding-bottom:28px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.logo .word{font-size:32px;line-height:1;font-weight:800;letter-spacing:-.025em;font-variation-settings:'wdth' 100;transform:translateY(-1px)}
.logo .mark{width:42px;height:42px;flex:none;overflow:visible}
.logo .arrow{transform-box:view-box;transform-origin:32px 32px;transform:rotate(-22deg)}
.logo .mark.settle .arrow{animation:vsettle 1.6s var(--ease) .15s both}
.logo:hover .mark .arrow{animation:vsway 1.1s var(--ease)}
@keyframes vsettle{0%{transform:rotate(-110deg)}45%{transform:rotate(4deg)}70%{transform:rotate(-30deg)}88%{transform:rotate(-19deg)}100%{transform:rotate(-22deg)}}
@keyframes vsway{0%{transform:rotate(-22deg)}35%{transform:rotate(-6deg)}70%{transform:rotate(-29deg)}100%{transform:rotate(-22deg)}}
.nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px 32px}
.nav a.link{position:relative;text-decoration:none;font-size:16px;font-weight:600;padding:6px 0}
.nav a.link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a.link:hover::after{transform:scaleX(.5)}
.nav a.link.on::after{transform:scaleX(1)}
.nav .btn{min-height:44px;padding:0 20px}
@media (max-width:700px){.sitehead{padding-top:20px;padding-bottom:20px}.nav{gap:8px 20px}.nav .btn{white-space:normal;text-align:center}}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border:0;border-radius:999px;background:var(--btn);color:var(--on-btn) !important;font:600 15px/1 'Archivo',sans-serif;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color .2s var(--ease),transform .1s var(--ease)}
.btn:hover{background:var(--btn-hover)}
.btn:active{transform:translateY(1px)}
.btn.lg{min-height:56px;padding:0 30px;font-size:16px}
.btn.ghost{background:transparent;color:var(--ink) !important;box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper) !important}
.btn.light{background:var(--on-night);color:var(--night) !important}
.btn.light:hover{background:#DCDFD7}
.tlink{font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px;text-decoration-color:var(--rule);transition:text-decoration-color .2s}
.tlink:hover{text-decoration-color:currentColor}

/* Panels and data */
.panel{background:var(--surface);border:1px solid var(--rule);border-radius:12px}
.window{background:var(--surface);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.rule-t{border-top:1px solid var(--rule)}
.chip{display:inline-flex;align-items:center;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:999px;background:var(--ink);color:var(--paper);letter-spacing:.01em;white-space:nowrap}
.chip.soft{background:var(--cell);color:var(--ink)}
.sq{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}
.track{height:10px;border-radius:999px;background:var(--cell);overflow:hidden}
.fillbar{height:100%;border-radius:999px;transform-origin:left center;background:var(--signal)}
.col{transform-origin:bottom center}
/* Bars grow once on program pages. program.js adds .wait (hidden) and then
   .grow when the chart scrolls into view. With no JS they simply show. */
.wait .fillbar{transform:scaleX(0)}
.wait .col{transform:scaleY(0)}
.grow .fillbar{animation:vgrow .9s var(--ease) both}
.grow .col{animation:vrise .8s var(--ease) both}
@keyframes vgrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes vrise{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:collapse;font-size:16px;font-variant-numeric:tabular-nums}
.tbl th{font-weight:400;font-size:14px;color:var(--slate);text-align:left;padding:14px 20px;border-bottom:1px solid var(--rule)}
.tbl td{padding:16px 20px;border-bottom:1px solid var(--rule)}
.tbl tr:last-child td{border-bottom:0}
.tbl .r{text-align:right}
.tbl .flush-l{padding-left:0}
.tbl .flush-r{padding-right:0}
.rowlink{transition:background-color .15s}
.rowlink:hover{background:var(--paper)}

/* Night band */
.night{background:var(--night);color:var(--on-night)}
.night a{color:var(--on-night)}
.night .body,.night .small{color:var(--night-soft)}
.night .cap{color:#9AA3B0}
.night-input{border:1.5px solid var(--night-rule);border-radius:12px;background:var(--night-cell);font:500 17px 'Archivo',sans-serif;color:var(--on-night);padding:0 16px;min-height:52px;width:100%}
.night-input::placeholder{color:#9AA3B0}

/* Field */
.field{display:flex;align-items:center;gap:12px;background:var(--surface);border:2px solid var(--ink);border-radius:14px;padding:6px 6px 6px 20px}
.field input{flex:1 1 auto;min-width:0;border:0;background:transparent;font:500 20px 'Archivo',sans-serif;color:var(--ink);padding:12px 0;outline:none}
.field:focus-within{box-shadow:0 0 0 4px rgba(242,169,59,.35)}
.field input:focus-visible{outline:none}
@media (max-width:520px){.field{flex-wrap:wrap;padding:6px}.field input{padding:12px 14px;font-size:18px;flex-basis:100%}.field .btn{flex:1 1 100%}}

/* Homepage search results */
.results{overflow:hidden}
.results a{display:flex;align-items:center;gap:14px;padding:14px 18px;text-decoration:none;font-size:16px;border-top:1px solid var(--rule)}
.results a:first-child{border-top:0}
.results a[aria-selected="true"],.results a:hover{background:var(--paper)}
.results .nm{flex:1 1 auto;min-width:0;font-weight:600}
.results .ct{white-space:nowrap}
.results .none{padding:14px 18px}
@media (max-width:520px){.results a{flex-wrap:wrap;gap:6px 12px}.results .ct{flex-basis:100%}}

/* Product window (homepage and Vane Check page) */
.tick{transition:background-color .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease)}
.flip{transition:color .3s var(--ease)}
.cbox{flex:none;width:20px;height:20px;margin-top:1px;border-radius:4px;border:2px solid var(--ink);background:transparent}
.cbox.on{background:var(--ink)}
.side-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:8px;font-size:15px;font-weight:600;color:var(--ink)}
.side-link.on{background:var(--ink);color:var(--paper)}
.checkrow{display:flex;gap:16px;width:100%;padding:18px 0;border-top:1px solid var(--rule)}
.vbox{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;border:2px solid var(--rule);background:var(--surface);color:var(--paper)}
.vbox.on{border-color:var(--ink);background:var(--ink)}
.vc-main{padding:40px 48px 48px}
@media (max-width:700px){.vc-main{padding:28px 20px 32px}.pw-pad{padding-left:20px !important;padding-right:20px !important}}

/* Program page: year picker and figures */
.years{display:flex;flex-wrap:wrap;gap:6px}
.years button{border:0;border-radius:999px;padding:0 14px;min-height:44px;font:600 14px 'Archivo',sans-serif;font-variant-numeric:tabular-nums;cursor:pointer;background:var(--cell);color:var(--ink)}
.years button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:0 48px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.kpi{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:28px 0}
.kpi .v{font-size:48px;line-height:1;font-weight:800;letter-spacing:-.035em;font-variation-settings:'wdth' 112}
.spark{display:flex;align-items:flex-end;gap:3px;height:44px;width:120px;flex:none}
.spark span{flex:1;border-radius:2px 2px 0 0;background:var(--cell);transition:background-color .25s}
.spark span.on{background:var(--signal)}
.spark span.on.part{background:var(--signal-light)}
.reqrow{display:grid;grid-template-columns:minmax(140px,280px) minmax(0,1fr) 52px;gap:20px;align-items:center;font-size:16px}
@media (max-width:600px){.reqrow{grid-template-columns:minmax(0,1fr) 52px;gap:6px 12px}.reqrow .track{grid-column:1 / -1;grid-row:2}}
.reqrow.untested{grid-template-columns:minmax(140px,280px) minmax(0,1fr) auto;color:var(--slate)}
.reqrow.untested .track{opacity:.5}
@media (max-width:600px){.reqrow.untested{grid-template-columns:minmax(0,1fr) auto}}
.trend{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:12px;align-items:end;height:240px;border-bottom:1.5px solid var(--ink)}
.trend-x{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:12px}
@media (max-width:600px){.trend,.trend-x{gap:4px}.trend .v{font-size:11px !important}.trend-x .cap{font-size:11px}}
.grow-row{display:grid;grid-template-columns:minmax(0,1fr) 80px 48px;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--rule);font-size:16px}

/* Org page */
.hist{display:grid;gap:10px}
@media (max-width:600px){.hist{gap:10px 6px;grid-template-columns:repeat(5,minmax(0,1fr)) !important}}
.hsq{display:block;aspect-ratio:1 / 1;border-radius:4px;background:var(--cell)}
.hsq.hit{background:var(--signal)}
.hsq.none{background:transparent;box-shadow:inset 0 0 0 1.5px var(--slate)}

/* Forms (founding signup, report order) */
.fld{display:flex;flex-direction:column;gap:8px}
.fld label{font-size:14px;font-weight:600}
.fld input,.fld select{font:17px 'Archivo',sans-serif;padding:14px 16px;border:1.5px solid var(--rule);border-radius:10px;background:var(--paper);color:var(--ink);min-height:52px}
.fld .help{font-size:13px;color:var(--slate)}
.oform{padding:32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px 24px}
.oform .full{grid-column:1/-1}
@media (max-width:600px){.oform{padding:20px}}
.seg{display:flex;gap:8px;flex-wrap:wrap;border:0;margin:0;padding:0}
.seg legend{font-size:14px;font-weight:600;padding:0;margin-bottom:8px}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg label{display:inline-block;border:1.5px solid var(--rule);background:var(--paper);color:var(--ink);font:600 15px 'Archivo',sans-serif;padding:12px 18px;border-radius:999px;cursor:pointer}
.seg input:checked+label{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.seg input:focus-visible+label{outline:2px solid var(--focus);outline-offset:3px}

/* Long-form text (Terms, Privacy) */
.prose{max-width:760px}
.prose h2{margin:40px 0 12px;font-size:24px;line-height:1.2;font-weight:800;letter-spacing:-.015em}
.prose p,.prose li{font-size:17px;line-height:1.6;color:var(--ink-soft)}
.prose p{margin:0 0 16px}
.prose ul{margin:0 0 16px;padding-left:22px}
.prose li{margin-bottom:8px}

/* Footer */
.foot{background:var(--night);color:var(--on-night);margin-top:auto}
.foot a{color:var(--on-night);text-decoration:none}
.foot a:hover{text-decoration:underline;text-underline-offset:4px}
.foot .logo{color:var(--on-night)}
.foot .logo .mark{width:34px;height:34px}
.foot .logo .word{font-size:26px}
.foot .cap{color:#9AA3B0}

/* Home5 design (docs/design/homepage-v5), shared by the homepage, /report/ and /updates/. */
.hero-h{margin:0;font-size:clamp(46px,6.4vw,94px);line-height:.95;font-weight:800;letter-spacing:-.04em;font-variation-settings:'wdth' 108}
.wbar{display:block;height:100%;border-radius:999px;transition:width .7s cubic-bezier(.22,.61,.36,1)}
.gbar{display:block;height:100%;border-radius:999px;transform-origin:left center;animation:vgrow .8s cubic-bezier(.22,.61,.36,1) both}
.pchip{border:0;border-radius:999px;padding:0 14px;min-height:44px;font:600 13px 'Archivo',sans-serif;cursor:pointer;white-space:nowrap;transition:background-color .2s,color .2s}
.pchip[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.pchip[aria-pressed="false"]{background:var(--cell);color:var(--ink)}
.hrow{display:grid;grid-template-columns:16px minmax(130px,1.1fr) minmax(0,1.5fr) 70px;gap:12px;align-items:center;width:100%;min-height:44px;padding:11px 0;border:0;border-top:1px solid var(--rule);background:transparent;font:inherit;color:inherit;text-align:left}
.hrow.can{cursor:pointer}
.hrow.can:hover .rname{text-decoration:underline;text-underline-offset:3px}
.hrow.untested{opacity:.5}
.hrow[hidden]{display:none}
.chev{transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.subrow{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 40px;gap:12px;align-items:center;padding:6px 0}
@keyframes vfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes vdot{from{transform:scale(0)}to{transform:scale(1)}}
.fade{animation:vfade .45s cubic-bezier(.22,.61,.36,1) both}
.autoline{height:2px;background:var(--cell);border-radius:999px;overflow:hidden;margin-top:10px}
.autoline i{display:block;height:100%;width:0;background:var(--ink)}
.autoline.run i{animation:vfill 6s linear both}
@keyframes vfill{from{width:0}to{width:100%}}
@media (max-width:600px){.hrow{grid-template-columns:16px minmax(0,1fr) 64px;row-gap:6px}.hrow .rbar{grid-column:2 / -1;grid-row:2}.subrow{grid-template-columns:minmax(0,1fr) 40px;row-gap:4px}.subrow>span:first-child{grid-column:1 / -1}}
/* timeline */
.tl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:72px;position:relative}
.tl-line{position:absolute;left:0;right:0;top:9px;height:2px;background:#F4F5F1;transform-origin:left center;animation:vgrow 1.8s cubic-bezier(.22,.61,.36,1) .2s both}
.tl-col{position:relative;padding-right:28px}
.tl-dot{display:block;width:20px;height:20px;border-radius:50%;box-sizing:border-box;position:relative;z-index:1;animation:vdot .4s cubic-bezier(.22,.61,.36,1) both}
.tl-text{animation:vfade .6s cubic-bezier(.22,.61,.36,1) both}
.tl.paused .tl-line,.tl.paused .tl-dot,.tl.paused .tl-text{animation-play-state:paused}
@media (max-width:900px){.tl{grid-template-columns:1fr;gap:28px}.tl-line{display:none}.tl-col{padding-left:34px;padding-right:0}.tl-dot{position:absolute;left:0;top:0}}
/* report anatomy */
.toc{display:flex;flex-direction:column}
.tocbtn{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;width:100%;min-height:44px;text-align:left;border:0;border-left:2px solid var(--rule);background:transparent;font:inherit;color:var(--slate);padding:13px 0 13px 20px;cursor:pointer;transition:color .2s,border-color .2s}
.tocbtn:hover{color:var(--ink)}
.tocbtn[aria-pressed="true"]{border-left-color:var(--ink);color:var(--ink)}
.tocbtn .tdesc{grid-column:1 / -1;color:var(--ink-soft);padding-top:4px}
.tocbtn[aria-pressed="false"] .tdesc{display:none}
.page{background:#FFFFFF;border:1px solid var(--rule);border-radius:10px;box-shadow:0 1px 2px rgba(15,26,42,.05),0 30px 60px -30px rgba(15,26,42,.28);padding:30px 34px;min-height:600px;box-sizing:border-box;color:#0F1A2A;overflow:hidden}
@media (max-width:600px){.page{padding:22px 18px;min-height:0}}
.ph{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#5B6472;padding-bottom:10px;border-bottom:1px solid #DCDFD7}
.pt{display:block;font-size:28px;line-height:1.05;font-weight:800;letter-spacing:-.03em;font-variation-settings:'wdth' 110;margin:18px 0 6px}
.prow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:10px 0;border-top:1px solid #DCDFD7;font-size:14px}
.pbody{position:relative}
.pbody .slide-out{position:absolute;left:0;right:0;top:0;animation:vslideout .3s cubic-bezier(.22,.61,.36,1) both}
.pbody .slide-in{animation:vslidein .3s cubic-bezier(.22,.61,.36,1) both}
@keyframes vslideout{from{opacity:1;transform:none}to{opacity:0;transform:translateX(-40px)}}
@keyframes vslidein{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
/* checklist */
.citem{border-top:1px solid var(--rule)}
.citem.first{border-top:0}
.citem[hidden]{display:none}
.cbtn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-10px -10px -10px -10px;padding:0;border:0;background:transparent;cursor:pointer}
.cbtn .cbox{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;border:2px solid var(--rule);background:var(--surface);color:var(--paper);transition:background-color .2s,border-color .2s}
.cbtn[aria-pressed="true"] .cbox{border-color:var(--ink);background:var(--ink)}
.cbtn .cbox svg{opacity:0;transition:opacity .2s}
.cbtn[aria-pressed="true"] .cbox svg{opacity:1}
.ctitle{font-size:17px;line-height:1.35;font-weight:700;color:var(--ink)}
.citem.done .ctitle{color:var(--slate);text-decoration:line-through;text-decoration-color:var(--rule)}
.xpand{flex:1 1 auto;min-width:0;min-height:44px;display:flex;align-items:flex-start;gap:16px;border:0;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer;padding:0}
.xpand:hover .ctitle{text-decoration:underline;text-underline-offset:3px}
.cpanel{overflow:hidden;height:0;transition:height .25s cubic-bezier(.22,.61,.36,1)}
.cpanel.open{height:auto}
.cpanel>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px 32px;margin:0 0 20px 40px;padding:18px 20px;background:var(--paper);border-radius:10px}
@media (max-width:600px){.cpanel>div{margin-left:0}}
.buy b{color:var(--ink);font-weight:700}
/* what's changed */
.chg{display:grid;grid-template-columns:112px 118px minmax(0,1fr) minmax(120px,auto);gap:8px 20px;align-items:baseline;padding:16px 0;border-top:1px solid var(--rule)}
@media (max-width:760px){.chg{grid-template-columns:1fr auto}.chg .what{grid-column:1 / -1}.chg .where{grid-column:1 / -1;text-align:left !important}}
.ctag{justify-self:start;display:inline-flex;align-items:center;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}
.ctag.new{background:var(--ink);color:var(--paper)}
.ctag.changed{box-shadow:inset 0 0 0 1.5px var(--ink);color:var(--ink)}
.ctag.nottested{background:var(--cell);color:var(--ink)}
.ctag.pulse{animation:vpulse 1.4s cubic-bezier(.22,.61,.36,1) 1}
@keyframes vpulse{0%{box-shadow:0 0 0 0 rgba(242,169,59,.75)}70%{box-shadow:0 0 0 10px rgba(242,169,59,0)}100%{box-shadow:0 0 0 0 rgba(242,169,59,0)}}
.ctag.changed.pulse{animation-name:vpulse2}
@keyframes vpulse2{0%{box-shadow:inset 0 0 0 1.5px var(--ink),0 0 0 0 rgba(242,169,59,.75)}70%{box-shadow:inset 0 0 0 1.5px var(--ink),0 0 0 10px rgba(242,169,59,0)}100%{box-shadow:inset 0 0 0 1.5px var(--ink),0 0 0 0 rgba(242,169,59,0)}}
.nav a.link{min-height:44px;display:inline-flex;align-items:center}
.plink{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 8px;min-height:44px;border-top:1px solid var(--rule);text-decoration:none}
.plink:hover{background:var(--paper)}
@media (max-width:600px){.plink{grid-template-columns:74px minmax(0,1fr)}.plink .ag{display:none}}

/* Stacked headers (Nov 4, 2026 review): page title then intro; section heading at about 60% of the title. */
.phead{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.phead p{margin:0;max-width:60ch}
.shead{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:32px}
.shead p{margin:0;max-width:60ch}
.sec-h{margin:0;font-size:clamp(26px,3.36vw,46px);line-height:1.04;font-weight:800;letter-spacing:-.03em;font-variation-settings:'wdth' 110;text-wrap:balance}

/* Pricing page (Nov 4, 2026 redesign): layout and type only. */
.wrap.pricing{max-width:1184px;padding-left:32px;padding-right:32px}
@media (max-width:700px){.wrap.pricing{padding-left:16px;padding-right:16px}}
.pr-title{margin:0;font-size:clamp(48px,6.2vw,80px);line-height:.96;font-weight:800;letter-spacing:-.035em;font-variation-settings:'wdth' 112}
.pr-intro{margin:20px 0 0;font-size:21px;line-height:1.45;color:var(--ink-soft);max-width:60ch}
.pr-sec{margin-top:112px;scroll-margin-top:24px}
.pr-sec.first{margin-top:64px}
.pr-head{margin-bottom:32px}
.pr-h{margin:0;font-size:clamp(30px,3.6vw,40px);line-height:1.08;font-weight:800;letter-spacing:-.02em;font-variation-settings:'wdth' 108}
.pr-sent{margin:14px 0 0;font-size:17px;line-height:1.6;color:var(--ink-soft);max-width:60ch}
.fcard{background:var(--surface);border:1px solid var(--rule);border-radius:12px;overflow:hidden}
.fc-item{display:flex;flex-direction:column;gap:4px;padding:14px 0;border-top:1px solid var(--rule)}
.fc-line{font-size:17px;font-weight:700;color:var(--ink)}
.fc-desc{font-size:15px;line-height:1.5;color:var(--slate)}
.night-input.pill{border-radius:999px;padding:0 22px}
.sr-list{border-bottom:1px solid var(--rule)}
.sr-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 40px;align-items:start;padding:24px 0;border-top:1px solid var(--rule)}
.sr-name{margin:0;font-size:22px;line-height:1.25;font-weight:700}
.sr-price{font-size:36px;line-height:1;font-weight:800;font-variation-settings:'wdth' 108;font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:600px){.sr-row{grid-template-columns:1fr}.sr-price{grid-row:1}}

/* Motion: only the logo, the homepage tick and flip, and program-page
   bars. Everything off under reduced motion. */
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none !important;transition:none !important}.wait .fillbar,.wait .col{transform:none}}
