:root{
  --indigo:#1F3883; --blue:#3175B1; --cyan:#47C8E3; --sage:#83B895; --peri:#8B8ECF;
  --ink:#1B2233; --bg:#F4F7FB; --border:#D8E0EC; --muted:#4A5568; --white:#FFFFFF;
  --warn:#B7791F;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--white);color:var(--ink);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto;}
a{color:var(--blue);}
a:hover{color:var(--indigo);}
.wrap{max-width:900px;margin:0 auto;padding:0 32px;}
p{margin:0 0 16px;}
strong{color:var(--indigo);}

/* citations and tags */
.cite{font-size:0.78em;color:var(--muted);}
.cite sup{font-size:0.82em;line-height:0;}
.cite sup a{text-decoration:none;font-weight:700;color:var(--blue);padding:0 1px;}
.tag{display:inline-block;font-size:0.68em;font-weight:700;letter-spacing:0.06em;padding:1px 6px;border-radius:4px;vertical-align:1px;white-space:nowrap;line-height:1.5;}
.tag.unc{background:#FFF3DC;color:#8A5A0B;border:1px solid #EACB8E;}
.tag.est{background:#EEF0FB;color:#3E4296;border:1px solid #C9CCEE;}
.tag.gv{background:#E9F5EE;color:#2F6B45;border:1px solid #BFDFCB;}
.tag.wd{background:#F0F2F6;color:#4A5568;border:1px solid #D8E0EC;}
q{font-style:italic;}

/* cover (no caption, no figure number) */
.cv{
  --cv-deep:#0E1A3D; --cv-indigo:#1F3883; --cv-soil:#08090F; --cv-cyan:#47C8E3; --cv-soft:#C9D6EE;
  --cv-pad:clamp(16px,6vw,88px);
  position:relative;margin:0;color:#fff;overflow:hidden;background:var(--cv-soil);
}
.cv *{box-sizing:border-box;}
.cv-media{position:relative;margin:0;width:100%;aspect-ratio:16/9;max-height:880px;overflow:hidden;}
.cv-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--cv-x,50%) var(--cv-y,100%);max-width:none;}
.cv-ph{width:100%;height:100%;
  background:
    radial-gradient(60% 50% at 70% 70%, rgba(71,200,227,.22), transparent 70%),
    radial-gradient(40% 35% at 25% 80%, rgba(131,184,149,.18), transparent 70%),
    linear-gradient(180deg,#0E1A3D 0%,#1F3883 55%,#08090F 100%);
  display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55);font-size:14px;letter-spacing:.12em;text-transform:uppercase;}
.cv-media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(8,9,15,.55) 0%, rgba(8,9,15,.18) 26%, rgba(8,9,15,0) 38%),
    linear-gradient(180deg, rgba(8,9,15,0) 58%, rgba(8,9,15,.72) 86%, var(--cv-soil) 99%);}
.cv-logo{position:absolute;z-index:2;top:clamp(20px,3vw,44px);left:var(--cv-pad);width:clamp(160px,18vw,250px);height:auto;display:block;max-width:none;}
.cv-body{--cv-ov:clamp(36px,5vw,72px);position:relative;z-index:2;margin-top:calc(-1 * var(--cv-ov));padding:0 var(--cv-pad) clamp(30px,3.8vw,56px);}
.cv-body::before{content:"";position:absolute;left:0;right:0;top:var(--cv-ov);bottom:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(900px 420px at 88% 100%, rgba(71,200,227,.10), transparent 65%),
    linear-gradient(180deg,var(--cv-soil) 0%,var(--cv-deep) 55%,#172C6C 100%);}
.cv-kicker{margin:0 0 clamp(14px,1.5vw,22px);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--cv-cyan);}
.cv-title{position:absolute;z-index:2;left:var(--cv-pad);top:calc(clamp(20px,3vw,44px) + clamp(160px,18vw,250px) * 0.113 + clamp(14px,1.8vw,26px));margin:0;font-weight:700;color:#fff;font-size:clamp(30px,4.4vw,62px);line-height:1.03;letter-spacing:-.028em;max-width:min(13.5em,calc(100% - 2 * var(--cv-pad)));text-wrap:balance;text-shadow:0 2px 18px rgba(8,9,15,.45);}
.cv-row:first-child{margin-top:0;}
.cv figure.cv-media{margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;}
.cv-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:start;margin-top:clamp(22px,2.6vw,36px);max-width:1000px;}
.cv-sub{margin:0;font-size:clamp(17px,1.5vw,21px);line-height:1.35;font-weight:500;color:#fff;text-wrap:balance;}
.cv-meta span{display:block;text-wrap:balance;}
.cv-meta{margin:0;font-size:14px;line-height:1.55;color:rgba(255,255,255,.66);border-left:1px solid rgba(255,255,255,.24);padding-left:clamp(16px,1.6vw,24px);text-wrap:balance;}
.cv-date{margin:clamp(18px,2vw,28px) 0 0;font-size:14px;font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,.80);}
@media screen and (max-width:640px){
  .cv-media{aspect-ratio:4/3;}
  .cv-photo{object-position:var(--cv-xm,70%) var(--cv-y,100%);}
  .cv-body{--cv-ov:28px;}
  .cv-title{font-size:26px;line-height:1.08;max-width:calc(100% - 2 * var(--cv-pad));}
  .cv-row{grid-template-columns:1fr;gap:14px;margin-top:20px;}
  .cv-meta{border-left:none;padding-left:0;border-top:1px solid rgba(255,255,255,.24);padding-top:12px;}
}

/* sections */
section.sec{padding:64px 0 40px;}
section.sec.alt{background:var(--bg);}
.kicker{display:block;font-size:0.74rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--blue);font-weight:700;margin:0 0 8px;}
h2{font-size:clamp(1.6rem,3.6vw,2.2rem);line-height:1.12;letter-spacing:-0.022em;color:var(--indigo);margin:0 0 12px;font-weight:800;}
.gradrule{height:4px;width:120px;border-radius:4px;background:linear-gradient(90deg,var(--cyan),var(--sage));margin:0 0 20px;}
h3{font-size:1.2rem;line-height:1.3;color:var(--indigo);margin:34px 0 10px;font-weight:700;letter-spacing:-0.01em;}
.basis{background:#fff;border:1px solid var(--border);border-left:4px solid var(--peri);border-radius:10px;padding:12px 16px;margin:0 0 24px;font-size:0.92rem;color:var(--muted);}
.basis b{color:var(--indigo);}
.answer{background:linear-gradient(135deg,#1F3883 0%,#142759 100%);color:#fff;border-radius:14px;padding:18px 22px;margin:0 0 26px;font-size:1.06rem;line-height:1.55;box-shadow:0 6px 22px rgba(31,56,131,.14);}
.answer b{color:var(--cyan);}
.answer .ah{display:block;font-size:0.72rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;color:#B8C7E6;margin:0 0 6px;}
.answer .cite{color:#B8C7E6;}
.answer .cite sup a{color:var(--cyan);}
ul,ol{margin:0 0 18px;padding-left:24px;}
li{margin:0 0 8px;}

/* goal */
.goal{background:var(--bg);border-bottom:1px solid var(--border);padding:44px 0;}
.goal p.big{font-size:clamp(1.12rem,2.3vw,1.32rem);line-height:1.55;color:var(--ink);margin:0;}
.goal p.big strong{color:var(--indigo);}

/* takeaways */
.tk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:8px 0 10px;}
.tk{background:#fff;border:1px solid var(--border);border-left:4px solid var(--cyan);border-radius:12px;padding:16px 18px 14px;box-shadow:0 3px 14px rgba(31,56,131,.05);}
.tk:nth-child(3n+2){border-left-color:var(--sage);}
.tk:nth-child(3n){border-left-color:var(--indigo);}
.tk .n{font-size:0.72rem;font-weight:800;letter-spacing:0.14em;color:var(--blue);margin:0 0 4px;}
.tk .h{font-size:1.18rem;font-weight:800;line-height:1.25;color:var(--indigo);margin:0 0 8px;}
.tk ul{list-style:none;margin:0;padding:0;}
.tk li{position:relative;padding:3px 0 3px 16px;font-size:1rem;line-height:1.35;color:var(--ink);margin:0;}
.tk li::before{content:"";position:absolute;left:0;top:0.72em;width:7px;height:7px;border-radius:50%;background:var(--cyan);}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:26px 0 8px;}
.stat{background:linear-gradient(135deg,#1F3883 0%,#142759 100%);border-radius:12px;padding:16px 16px 12px;color:#fff;}
.stat .big{font-size:1.9rem;font-weight:800;letter-spacing:-0.03em;line-height:1.05;color:var(--cyan);}
.stat .lbl{font-size:0.84rem;line-height:1.4;margin-top:6px;color:#E6EEF8;}
.stat .cite{color:#B8C7E6;}
.stat .cite sup a{color:var(--cyan);}
.stats.light .stat{background:#fff;border:1px solid var(--border);border-top:4px solid var(--c,var(--blue));color:var(--ink);}
.stats.light .stat .big{color:var(--c,var(--indigo));}
.stats.light .stat .lbl{color:var(--ink);}
.stats.light .stat .cite{color:var(--muted);}
.stats.light .stat .cite sup a{color:var(--blue);}

/* contents */
.toc{columns:2;column-gap:36px;padding:0;list-style:none;margin:0;}
.toc li{break-inside:avoid;margin:0 0 8px;font-size:0.98rem;}
.toc a{text-decoration:none;color:var(--indigo);font-weight:600;}
.toc span{color:var(--blue);font-weight:800;margin-right:8px;}

/* callouts */
.view{background:#F1F8F3;border:1px solid #CFE6D7;border-left:4px solid var(--sage);border-radius:10px;padding:14px 18px;margin:22px 0;}
.view .vh{font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:800;color:#2F6B45;margin:0 0 6px;}
.view p:last-child,.view ul:last-child{margin-bottom:0;}
.lesson{background:#EEF7FB;border:1px solid #C8E9F3;border-left:4px solid var(--cyan);border-radius:10px;padding:14px 18px;margin:22px 0;}
.lesson .vh{font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:800;color:#1B7891;margin:0 0 6px;}
.lesson p:last-child,.lesson ul:last-child{margin:0;}
.caution{background:#FFF8F1;border:1px solid #F0D9B5;border-left:4px solid var(--warn);border-radius:10px;padding:14px 18px;margin:22px 0;}
.caution .vh{font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:800;color:#8A5A0B;margin:0 0 6px;}
.caution p:last-child,.caution ul:last-child{margin:0;}

.card .top>div{min-width:0;}
.card .row2>*{min-width:0;overflow-wrap:break-word;}
.nw{white-space:nowrap;}
.legend + p{break-after:avoid;page-break-after:avoid;}
.legend{break-after:avoid;page-break-after:avoid;}
/* figures */
figure{margin:30px 0;background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 16px 12px;box-shadow:0 6px 24px rgba(31,56,131,.07);}
figure .img{border-radius:10px;overflow:hidden;background:var(--bg);}
figure .img img{width:100%;height:auto;}
a.figlink{display:block;cursor:zoom-in;}
figcaption{font-size:0.88rem;line-height:1.5;color:var(--muted);margin-top:10px;border-top:1px solid var(--border);padding-top:10px;}
figcaption .fn{font-weight:800;color:var(--indigo);margin-right:4px;}
/* figure placeholder until the art arrives */
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:240px;padding:26px;border:2px dashed #9AA6B8;border-radius:10px;
  background:repeating-linear-gradient(135deg,#F4F7FB 0 14px,#EEF3FA 14px 28px);color:var(--muted);text-align:center;font-size:0.9rem;line-height:1.45;}
.ph b{color:var(--indigo);font-size:1.02rem;letter-spacing:0.04em;}
.ph.tall{min-height:380px;}

/* tables */
.tablewrap{overflow-x:auto;margin:22px 0;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 3px 14px rgba(31,56,131,.05);-webkit-overflow-scrolling:touch;}
table{border-collapse:collapse;width:100%;font-size:0.9rem;line-height:1.45;}
th,td{text-align:center;vertical-align:middle;padding:11px 12px;border-bottom:1px solid var(--border);}
thead th{background:var(--indigo);color:#fff;font-size:0.76rem;letter-spacing:0.06em;text-transform:uppercase;border-bottom:none;}
tbody tr:nth-child(even){background:#F8FAFD;}
tbody tr:last-child td{border-bottom:none;}
td.l,th.l{text-align:left;}
td b{color:var(--indigo);}
table.mid{min-width:600px;}

/* acronyms */
.acr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.acr-grid .tablewrap{margin:0;}
.acr-grid table{font-size:0.86rem;}
.acr-grid td,.acr-grid th{padding:6px 10px;}
.acr-grid td:first-child{font-weight:800;color:var(--indigo);white-space:nowrap;}

/* picture cards (shared by every section) */
.cards{--cols:3;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:14px;margin:22px 0 28px;}
.cards.wide{width:min(1160px,calc(100vw - 32px));position:relative;left:50%;transform:translateX(-50%);}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-top:5px solid var(--c,var(--indigo));border-radius:14px;padding:12px 14px 14px;box-shadow:0 6px 22px rgba(31,56,131,.08);break-inside:avoid;}
.card .top{display:flex;align-items:center;gap:10px;margin:0 0 8px;}
.card .ic{flex:0 0 44px;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--c,#1F3883) 12%,#fff);display:flex;align-items:center;justify-content:center;color:var(--c,var(--indigo));}
.card .ic svg{width:26px;height:26px;}
.card .num{display:block;margin:0 0 4px;font-size:0.72rem;font-weight:800;letter-spacing:0.08em;color:var(--c,var(--indigo));}
.card h4{overflow-wrap:break-word;hyphens:auto;margin:0;font-size:1.02rem;line-height:1.22;font-weight:800;color:var(--indigo);letter-spacing:-0.01em;}
.card .sub{display:block;font-size:0.76rem;font-weight:600;color:var(--muted);margin-top:2px;}
.card .lbl{display:block;font-size:0.64rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin:6px 0 4px;}
.card ul{list-style:none;margin:0;padding:0;}
.card li{position:relative;margin:0 0 5px;padding-left:14px;font-size:0.86rem;line-height:1.36;color:var(--ink);}
.card li::before{content:"";position:absolute;left:1px;top:0.52em;width:6px;height:6px;border-radius:50%;background:var(--c,var(--cyan));}
.card p{margin:0 0 6px;font-size:0.86rem;line-height:1.38;}
.card .chip{display:inline-block;align-self:flex-start;margin:0 0 8px;background:var(--c,var(--indigo));color:#fff;border-radius:8px;padding:4px 10px;font-size:0.86rem;line-height:1.2;font-weight:800;}
.card .chip .cite{color:rgba(255,255,255,.85);font-weight:500;}
.card .chip .cite sup a{color:#fff;}
.card .foot{margin-top:auto;padding-top:8px;border-top:1px dashed var(--border);font-size:0.8rem;line-height:1.35;color:var(--muted);}
.card .foot b{color:var(--indigo);}
.card.fail{background:#FFFBF6;}
.card .row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;}
.card .box{background:#F4F7FB;border:1px solid var(--border);border-radius:9px;padding:7px 9px;font-size:0.8rem;line-height:1.33;}
.card .box.bad{background:#FFF4EC;border-color:#F0D9B5;}
.card .box.good{background:#EFF8F2;border-color:#CFE6D7;}
.card .box b{display:block;font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;margin:0 0 3px;color:var(--muted);}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 6px;}
.chips span{font-size:0.68rem;font-weight:800;letter-spacing:0.04em;border-radius:99px;padding:2px 8px;border:1px solid var(--border);background:#F4F7FB;color:var(--muted);}
.chips span.on{background:var(--c,var(--indigo));border-color:var(--c,var(--indigo));color:#fff;}
.chips span.st{background:#1FA9C7;border-color:#1FA9C7;color:#fff;}
.chips span.dm{background:#3175B1;border-color:#3175B1;color:#fff;}
.chips span.rv{background:#5E9B72;border-color:#5E9B72;color:#fff;}
.grp-h{display:flex;align-items:center;gap:10px;margin:26px 0 10px;}
.grp-h i{flex:0 0 26px;height:12px;border-radius:3px;background:var(--c,var(--indigo));}
.grp-h h4{margin:0;font-size:0.82rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;color:var(--indigo);}
.grp-h span{font-size:0.8rem;font-weight:600;color:var(--muted);}
.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:4px 0 0;font-size:0.8rem;color:var(--muted);}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.legend i{width:14px;height:14px;border-radius:4px;display:inline-block;}

/* two halves */
.halves{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:24px 0 28px;border-radius:16px;overflow:hidden;box-shadow:0 8px 28px rgba(31,56,131,.10);}
.half{padding:18px 20px 16px;}
.half.a{background:#fff;border:1px solid var(--border);border-right:none;border-radius:16px 0 0 16px;}
.half.b{background:linear-gradient(135deg,#1F3883 0%,#142759 100%);color:#fff;}
.half .hh{display:flex;align-items:center;gap:10px;margin:0 0 10px;}
.half .hh svg{width:34px;height:34px;flex:0 0 34px;}
.half h4{margin:0;font-size:1.12rem;font-weight:800;line-height:1.2;}
.half.a h4{color:var(--indigo);} .half.b h4{color:#fff;}
.half .hs{display:block;font-size:0.78rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;}
.half.a .hs{color:var(--blue);} .half.b .hs{color:var(--cyan);}
.half ul{list-style:none;margin:0;padding:0;}
.half li{position:relative;padding:4px 0 4px 18px;font-size:0.92rem;line-height:1.35;margin:0;}
.half li::before{content:"";position:absolute;left:0;top:0.78em;width:8px;height:8px;border-radius:50%;}
.half.a li::before{background:var(--blue);} .half.b li::before{background:var(--cyan);}

/* numbered step path */
.steps{list-style:none;padding:0;margin:18px 0 22px;counter-reset:st;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.steps li{counter-increment:st;position:relative;background:#fff;border:1px solid var(--border);border-top:4px solid var(--c,var(--indigo));border-radius:12px;padding:14px 14px 12px 50px;margin:0;font-size:0.9rem;line-height:1.42;break-inside:avoid;}
.steps li::before{content:counter(st);position:absolute;left:13px;top:13px;width:26px;height:26px;border-radius:50%;background:var(--c,var(--indigo));color:#fff;font-weight:800;font-size:0.8rem;line-height:26px;text-align:center;}
.steps li b{display:block;color:var(--indigo);margin-bottom:2px;}

/* sample site frames */
.sample{border:1px solid var(--border);border-radius:16px;overflow:hidden;margin:26px 0 30px;box-shadow:0 6px 24px rgba(31,56,131,.08);}
.sample-h{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,#1F3883 0%,#142759 100%);color:#fff;}
.sample-h svg{width:36px;height:36px;flex:0 0 36px;color:var(--cyan);}
.sample-h h3{margin:0;color:#fff;font-size:1.12rem;}
.sample-h span{display:block;font-size:0.8rem;color:#B8C7E6;font-weight:600;}
.sample-b{padding:14px 18px 6px;background:#fff;}
.sample-ph{border:2px dashed #9AA6B8;border-radius:10px;padding:18px;margin:10px 0 14px;background:#F8FAFD;color:var(--muted);font-size:0.9rem;}
.sample-ph b{color:var(--indigo);}

/* sources */
ol.sources{font-size:0.84rem;line-height:1.55;padding-left:32px;}
ol.sources li{margin:0 0 9px;word-break:break-word;}
ol.sources li:target{background:#EAF7FB;border-radius:6px;}
ol.sources a{word-break:break-all;}

footer{border-top:1px solid var(--border);padding:34px 0 46px;background:#fff;}
footer .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;}
footer img{width:220px;height:auto;}
footer p{margin:0;font-size:0.86rem;color:var(--muted);}

@media screen and (max-width:1000px){
  .cards{--cols:2 !important;}
}
@media screen and (max-width:760px){
  body{font-size:16px;}
  .wrap{padding:0 16px;}
  section.sec{padding:46px 0 28px;}
  .tk-grid,.acr-grid{grid-template-columns:1fr;}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .toc{columns:1;}
  figure{padding:10px 10px 8px;}
  .cards{--cols:1 !important;}
  .cards.wide{width:auto;left:auto;transform:none;}
  .halves{grid-template-columns:1fr;}
  .half.a{border-right:1px solid var(--border);border-radius:16px 16px 0 0;}
  .steps{grid-template-columns:1fr;}
  .card .row2{grid-template-columns:1fr;}
}

@media print{
  @page{size:Letter;margin:0.55in 0.5in;
        @bottom-right{content:counter(page);font:600 8pt Inter,-apple-system,Helvetica,Arial,sans-serif;color:#1F3883;}
        @bottom-left{content:"Gaiergy Corp | Energy Contracts to Finance Public Batteries";font:8pt Inter,-apple-system,Helvetica,Arial,sans-serif;color:#4A5568;}}
  @page :first{margin:0;@bottom-right{content:none;}@bottom-left{content:none;}}
  body{font-size:10.5pt;line-height:1.5;}
  .wrap{max-width:none;padding:0;}
  .cv{-webkit-print-color-adjust:exact;print-color-adjust:exact;height:11in;display:flex;flex-direction:column;break-after:page;page-break-after:always;}
  .cv-media{aspect-ratio:auto;height:6.4in;max-height:none;flex:0 0 auto;}
  .cv-logo{top:.5in;left:.6in;width:2.3in;}
  .cv-body{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-start;--cv-ov:.35in;padding:.3in .6in .55in;}
  .cv-row{margin-top:auto !important;margin-bottom:auto !important;}
  .cv-date{margin-top:0;}
  .cv-title{top:.95in;left:.6in;font-size:38pt;line-height:1.02;max-width:7.2in;}
  .cv-row{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:.3in;margin-top:0;max-width:none;}
  .cv-sub{font-size:14pt;} .cv-meta{font-size:10pt;padding-left:.2in;} .cv-date{font-size:11pt;}
  .cv figure.cv-media{margin:0;padding:0;border:0;border-radius:0;box-shadow:none;}
  section.sec{padding:0 0 10px;background:#fff !important;}
  section.sec.pb{break-before:page;page-break-before:always;}
  .goal{padding:6px 0 10px;background:#fff;}
  figure{padding:8px 8px 6px;box-shadow:none;}
  figure,.tk,.stat,.view,.lesson,.caution,.basis,.answer,tr,.toc,.card,.steps li,.half{break-inside:avoid;page-break-inside:avoid;}
  figure .img img{max-height:8.2in;width:100%;max-width:100%;margin:0 auto;object-fit:contain;}
  .answer,.view,.lesson,.caution,.tablewrap,.sample,.halves,.tk,.stat,.card,.steps li,figure{box-shadow:none !important;}
  .cards[style*="--cols:4"]{--cols:3 !important;}
  .gx-big,.gx-kpi,.sx-big,.sx-kpi,.gx-row,.sx-row,.legend{break-inside:avoid;page-break-inside:avoid;}
  p:has(+ .cards),p:has(+ .tablewrap),p:has(+ .stats),p:has(+ ol.steps),p:has(+ figure),h3:has(+ p){break-after:avoid;page-break-after:avoid;}
  .view,.lesson,.caution{break-before:avoid;page-break-before:avoid;}
  #contents{break-after:page;page-break-after:always;}
  .gx figure,.sx figure{break-before:auto !important;}
  .gx figure .img img,.sx figure .img img{max-height:7.2in;}
  .gx figure img,.sx figure img{max-height:7.2in;width:auto;max-width:100%;}
  section.sec{padding-bottom:0 !important;}
  section.sec .wrap > :last-child,section.sec .wrap > :last-child > :last-child{margin-bottom:0 !important;}
  h2,h3,.kicker,.gradrule,.grp-h{break-after:avoid;page-break-after:avoid;}
  .tablewrap{overflow:visible;box-shadow:none;}
  table,table.mid{min-width:0 !important;}
  thead th,.stat,.gradrule,.answer,.half.b,.card,.chips span,.sample-h,.grp-h i{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  thead{display:table-header-group;}
  a{color:var(--blue);text-decoration:none;}
  .tk-grid,.acr-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .stats{grid-template-columns:repeat(4,minmax(0,1fr));}
  .cards.wide{width:auto;left:auto;transform:none;}
  .card{box-shadow:none;padding:7px 9px 9px;}
  .card li,.card p{font-size:0.76rem;}
  .screen-only{display:none;}
  #acronyms .acr-grid table{font-size:8.4pt;line-height:1.18;}
  #acronyms .acr-grid td,#acronyms .acr-grid th{padding:1.6px 6px;}
  footer{break-inside:avoid;padding:18px 0 0;}
}
.sx{margin:18px 0 34px;}
.sx *{box-sizing:border-box;}
.sx-card{background:#fff;border:1px solid var(--border,#D8E0EC);border-radius:16px;overflow:hidden;box-shadow:0 6px 24px rgba(31,56,131,.08);margin:0 0 14px;}
.sx figure.sx-hero{position:relative;margin:0;background:#fff;border:none;border-radius:0;padding:12px 12px 0;box-shadow:none;}
.sx-hero img{width:100%;height:auto;display:block;}
.sx-hero h3{display:inline-block;margin:0 0 8px;background:rgba(31,56,131,.95);color:#fff;font-size:1.05rem;line-height:1.2;font-weight:800;padding:6px 12px;border-radius:9px;letter-spacing:0.02em;}
.sx-cap{margin:0;padding:8px 16px 0;font-size:0.8rem;line-height:1.45;color:var(--muted,#4A5568);}
.sx-cap b{color:var(--indigo,#1F3883);margin-right:4px;}
.sx-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 16px 4px;}
.sx-kpi{border-radius:12px;padding:10px 12px;background:#F4F7FB;border:1px solid var(--border,#D8E0EC);}
.sx-kpi .v{font-size:1.25rem;font-weight:800;color:var(--indigo,#1F3883);line-height:1.2;}
.sx-kpi.neg .v{color:#B7791F;}
.sx-kpi .l{font-size:0.74rem;color:var(--muted,#4A5568);line-height:1.35;margin-top:2px;}
.sx-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px;padding:10px 16px 14px;}
.sx-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed var(--border,#D8E0EC);break-inside:avoid;}
.sx-ic{flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#EEF3FA;display:flex;align-items:center;justify-content:center;}
.sx-ic svg{width:24px;height:24px;}
.sx-row h5{margin:1px 0 3px;font-size:0.72rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--indigo,#1F3883);}
.sx-row ul{list-style:none;margin:0;padding:0;}
.sx-row li{position:relative;margin:0 0 3px;padding-left:13px;font-size:0.85rem;line-height:1.36;color:var(--ink,#1B2233);}
.sx-row li::before{content:"";position:absolute;left:0;top:0.52em;width:6px;height:6px;border-radius:50%;background:#47C8E3;}
@media (max-width:760px){
  .sx-rows{grid-template-columns:1fr;padding:6px 12px 10px;}
  .sx-big{grid-template-columns:1fr;padding:10px 12px 4px;}
  .sx-cap{padding:6px 12px 0;}
}
@media print{
  .sx-card{box-shadow:none;break-inside:auto;}
  .sx-hero h3,.sx-ic,.sx-kpi{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .sx-row li{font-size:0.78rem;}
}
.sx{margin:18px 0 34px;}
.sx *{box-sizing:border-box;}
.sx-card{background:#fff;border:1px solid var(--border,#D8E0EC);border-radius:16px;overflow:hidden;box-shadow:0 6px 24px rgba(31,56,131,.08);margin:0 0 14px;}
.sx figure.sx-hero{position:relative;margin:0;background:#fff;border:none;border-radius:0;padding:12px 12px 0;box-shadow:none;}
.sx-hero img{width:100%;height:auto;display:block;}
.sx-hero h3{display:inline-block;margin:0 0 8px;background:rgba(31,56,131,.95);color:#fff;font-size:1.05rem;line-height:1.2;font-weight:800;padding:6px 12px;border-radius:9px;letter-spacing:0.02em;}
.sx-cap{margin:0;padding:8px 16px 0;font-size:0.8rem;line-height:1.45;color:var(--muted,#4A5568);}
.sx-cap b{color:var(--indigo,#1F3883);margin-right:4px;}
.sx-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 16px 4px;}
.sx-kpi{border-radius:12px;padding:10px 12px;background:#F4F7FB;border:1px solid var(--border,#D8E0EC);}
.sx-kpi .v{font-size:1.25rem;font-weight:800;color:var(--indigo,#1F3883);line-height:1.2;}
.sx-kpi.neg .v{color:#B7791F;}
.sx-kpi .l{font-size:0.74rem;color:var(--muted,#4A5568);line-height:1.35;margin-top:2px;}
.sx-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px;padding:10px 16px 14px;}
.sx-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed var(--border,#D8E0EC);break-inside:avoid;}
.sx-ic{flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#EEF3FA;display:flex;align-items:center;justify-content:center;}
.sx-ic svg{width:24px;height:24px;}
.sx-row h5{margin:1px 0 3px;font-size:0.72rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--indigo,#1F3883);}
.sx-row ul{list-style:none;margin:0;padding:0;}
.sx-row li{position:relative;margin:0 0 3px;padding-left:13px;font-size:0.85rem;line-height:1.36;color:var(--ink,#1B2233);}
.sx-row li::before{content:"";position:absolute;left:0;top:0.52em;width:6px;height:6px;border-radius:50%;background:#47C8E3;}
@media (max-width:760px){
  .sx-rows{grid-template-columns:1fr;padding:6px 12px 10px;}
  .sx-big{grid-template-columns:1fr;padding:10px 12px 4px;}
  .sx-cap{padding:6px 12px 0;}
}
@media print{
  .sx-card{box-shadow:none;break-inside:auto;}
  .sx-hero h3,.sx-ic,.sx-kpi{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .sx-row li{font-size:0.78rem;}
}
.gx{margin:18px 0 34px;}
.gx *{box-sizing:border-box;}
.gx-lead{background:#F4F7FB;border:1px solid var(--border,#D8E0EC);border-radius:14px;padding:12px 16px;margin:0 0 14px;font-size:0.85rem;line-height:1.45;color:var(--ink,#1B2233);}
.gx-card{background:#fff;border:1px solid var(--border,#D8E0EC);border-radius:16px;overflow:hidden;box-shadow:0 6px 24px rgba(31,56,131,.08);margin:0 0 14px;}
.gx-card h3{margin:12px 16px 0;display:inline-block;background:rgba(31,56,131,.95);color:#fff;font-size:1.02rem;line-height:1.2;font-weight:800;padding:6px 12px;border-radius:9px;}
.gx-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 16px 4px;}
.gx-kpi{border-radius:12px;padding:10px 12px;background:#F4F7FB;border:1px solid var(--border,#D8E0EC);}
.gx-kpi .v{font-size:1.2rem;font-weight:800;color:var(--indigo,#1F3883);line-height:1.2;}
.gx-kpi.warn .v{color:#B7791F;}
.gx-kpi .l{font-size:0.74rem;color:var(--muted,#4A5568);line-height:1.35;margin-top:2px;}
.gx-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px;padding:10px 16px 14px;}
.gx-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed var(--border,#D8E0EC);break-inside:avoid;}
.gx-ic{flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#EEF3FA;display:flex;align-items:center;justify-content:center;}
.gx-ic svg{width:24px;height:24px;}
.gx-row h5{margin:1px 0 3px;font-size:0.72rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--indigo,#1F3883);}
.gx-row ul{list-style:none;margin:0;padding:0;}
.gx-row li{position:relative;margin:0 0 3px;padding-left:13px;font-size:0.85rem;line-height:1.36;color:var(--ink,#1B2233);}
.gx-row li::before{content:"";position:absolute;left:0;top:0.52em;width:6px;height:6px;border-radius:50%;background:#47C8E3;}
@media (max-width:760px){.gx-rows{grid-template-columns:1fr;padding:6px 12px 10px;}.gx-big{grid-template-columns:1fr;padding:10px 12px 4px;}}
@media print{.gx-card{box-shadow:none;break-inside:auto;}.gx-card h3,.gx-ic,.gx-kpi{-webkit-print-color-adjust:exact;print-color-adjust:exact;}.gx-row li{font-size:0.78rem;}}
.gx-sec{margin:22px 0 10px;font-size:1.05rem;font-weight:800;color:var(--indigo,#1F3883);}.gx-fig{margin:10px 0 18px;}.gx-fig img{width:100%;height:auto;display:block;}.gx-fig figcaption{font-size:0.8rem;color:var(--muted,#4A5568);padding:6px 4px 0;}

/* web copy: PDF download link */
.cv-dl{margin:clamp(18px,2vw,28px) 0 0;}
.cv-dl a{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border-radius:999px;
  border:1px solid rgba(71,200,227,.55);color:#fff;text-decoration:none;font-size:14px;font-weight:600;
  letter-spacing:.02em;background:rgba(71,200,227,.10);}
.cv-dl a:hover{background:rgba(71,200,227,.22);color:#fff;}
.cv-dl a svg{width:16px;height:16px;flex:0 0 16px;}
.cv-dl small{font-weight:400;color:rgba(255,255,255,.66);font-size:13px;}
.ft-dl{margin-top:8px;}
@media print{.cv-dl,.ft-dl{display:none !important;}}
