:root{--ink:#101923;--navy:#0b2239;--red:#e33b2e;--cream:#f4f0e7;--paper:#fffdf8;--muted:#62707c;--line:#ced3d5;--yellow:#f2c14e;--green:#2e765e}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,system-ui,sans-serif}
.masthead{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,72px);border-bottom:1px solid #ffffff2a;background:var(--navy);color:white;position:relative;z-index:2}
.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;font-weight:800;letter-spacing:.04em}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:var(--red);font-family:"Archivo Black",sans-serif}
.masthead nav{display:flex;gap:28px}
.masthead nav a{color:#d8e0e8;text-decoration:none;font-size:.86rem;font-weight:600}
.hero{background:var(--navy);color:white;padding:clamp(55px,8vw,112px) clamp(20px,7vw,110px) 70px;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;width:540px;height:540px;right:-270px;top:-250px;border:100px solid #ffffff0b;border-radius:50%}
.eyebrow,.kicker{font:600 .77rem "IBM Plex Mono",monospace;letter-spacing:.16em;color:var(--red)}
h1{font:400 clamp(3.3rem,8vw,8.6rem)/.84 "Archivo Black",sans-serif;letter-spacing:-.055em;margin:22px 0 28px;max-width:1100px}
h1 span{color:var(--red)}
.dek{max-width:790px;color:#cdd7e0;font-size:clamp(1.06rem,1.6vw,1.32rem);line-height:1.65;margin:0 0 45px}
.clock-panel{position:relative;z-index:1;border:1px solid #ffffff2e;background:#07192b;padding:24px 28px;box-shadow:0 18px 45px #0003}
.clock-label{font:600 .72rem "IBM Plex Mono",monospace;letter-spacing:.12em;color:#aebdca}
.clock-value{font:600 clamp(2.2rem,6vw,6rem)/1.1 "IBM Plex Mono",monospace;letter-spacing:-.06em;color:#fff;margin:12px 0;text-shadow:0 0 25px #e33b2e55}
.clock-rate{color:#aebdca}
.clock-rate span{color:var(--yellow);font-family:"IBM Plex Mono",monospace;font-weight:600}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#ffffff22;margin-top:34px;border:1px solid #ffffff22}
.stat-grid article{background:var(--navy);padding:26px}
.stat-grid strong{display:block;font:600 clamp(1.8rem,3vw,3rem) "IBM Plex Mono",monospace;color:white}
.stat-grid span{display:block;margin-top:8px;color:#aebdca;font-size:.83rem;line-height:1.4}
.income-tax-context{position:relative;z-index:1;margin-top:18px;border:1px solid #ffffff35;background:#102b45;padding:24px 28px;box-shadow:0 16px 35px #0002}
.income-tax-context-head{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(230px,.65fr);gap:34px;align-items:center}
.context-flag{display:block;font:700 .66rem "IBM Plex Mono",monospace;letter-spacing:.1em;color:var(--yellow);margin-bottom:10px}
.income-tax-context h2{font:400 clamp(1.45rem,2.8vw,2.65rem)/1.05 "Archivo Black",sans-serif;letter-spacing:-.035em;margin:0 0 12px}
.income-tax-context p{color:#c9d4de;line-height:1.58;margin:0;font-size:.9rem}
.income-tax-context a{color:#fff;text-underline-offset:3px;text-decoration-color:var(--red)}
.income-tax-total{border-left:3px solid var(--red);padding-left:22px}
.income-tax-total strong{display:block;max-width:100%;font:700 clamp(1.2rem,2.55vw,2.35rem)/1 "IBM Plex Mono",monospace;color:#fff;letter-spacing:-.075em;white-space:nowrap;font-variant-numeric:tabular-nums}
.income-tax-total span{display:block;color:#bac8d3;font-size:.76rem;line-height:1.45;margin-top:9px}
.income-tax-split{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:20px;background:#ffffff24;border:1px solid #ffffff24}
.income-tax-split div{background:#0b2239;padding:14px 18px;display:flex;align-items:baseline;gap:12px}
.income-tax-split strong{font:700 clamp(.92rem,1.35vw,1.1rem) "IBM Plex Mono",monospace;color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums}
.income-tax-split span{font-size:.75rem;color:#aebdca;text-transform:uppercase;letter-spacing:.04em}
.income-tax-details{margin-top:16px;border-top:1px solid #ffffff2a}
.income-tax-details summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0 0;cursor:pointer;list-style:none;font:700 .74rem "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.income-tax-details summary::-webkit-details-marker{display:none}
.income-tax-details summary span{font-size:1.25rem;transition:transform .2s}
.income-tax-details[open] summary span{transform:rotate(45deg)}
.income-tax-detail-grid{display:grid;grid-template-columns:minmax(440px,1.25fr) minmax(280px,.75fr);gap:30px;padding-top:20px}
.income-tax-table-wrap{overflow-x:auto}
.income-tax-context table{width:100%;border-collapse:collapse;font:500 .74rem "IBM Plex Mono",monospace;white-space:nowrap}
.income-tax-context th,.income-tax-context td{text-align:right;padding:8px 10px;border-bottom:1px solid #ffffff20}
.income-tax-context th:first-child,.income-tax-context td:first-child{text-align:left}
.income-tax-context thead th{color:#aebdca;font-size:.64rem;white-space:normal;vertical-align:bottom}
.income-tax-context tfoot th{color:#fff;border-top:2px solid #ffffff55;border-bottom:0}
.income-tax-method h3{margin:0 0 10px;font-size:.95rem}
.income-tax-method p{font-size:.78rem;margin:0 0 10px;color:#b8c6d1}
.income-tax-method>a{font:700 .7rem "IBM Plex Mono",monospace}
.asof{font-size:.78rem;color:#8394a4;margin:18px 0 0}
.trend,.ledger,.methodology,.sources,.scope-note{padding:85px clamp(20px,7vw,110px)}
.trend{background:var(--cream)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px}
.section-heading h2,.scope-note h2{font:400 clamp(2rem,4vw,4.2rem)/1 "Archivo Black",sans-serif;letter-spacing:-.04em;margin:10px 0 0}
.section-heading>p{max-width:470px;color:var(--muted);line-height:1.6}
.bar-chart{height:320px;display:flex;align-items:end;gap:clamp(8px,2vw,28px);border-bottom:2px solid var(--ink);padding:20px 8px 0}
.bar-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;min-width:0}
.bar-value{font:600 clamp(.65rem,1.2vw,.9rem) "IBM Plex Mono",monospace;margin-bottom:9px}
.bar{width:100%;max-width:92px;background:var(--navy);position:relative;min-height:3px}
.bar:last-child{background:var(--red)}
.bar-year{font:600 .76rem "IBM Plex Mono",monospace;margin:10px 0 -29px}
.estimated-bar .bar-stack{outline:2px dashed #6f7375;outline-offset:2px}.estimated-bar .bar-year{font-weight:800}
.ledger{background:var(--paper)}
.filters{display:grid;grid-template-columns:minmax(220px,2fr) 1fr 1fr auto;gap:10px;margin-bottom:15px}
.filters input,.filters select,.filters button{width:100%;height:48px;border:1px solid var(--line);background:#fff;padding:0 14px;font:500 .9rem Inter;color:var(--ink);border-radius:0}
.filters button{width:auto;cursor:pointer;background:var(--ink);color:#fff;border-color:var(--ink)}
.ledger-meta{display:flex;justify-content:space-between;font:500 .74rem "IBM Plex Mono",monospace;color:var(--muted);padding:14px 0}
.ledger-list{border-top:2px solid var(--ink)}
.tax-row{border-bottom:1px solid var(--line)}
.tax-row summary{display:grid;grid-template-columns:56px 70px minmax(160px,1.1fr) minmax(220px,2fr) 130px 22px;gap:16px;align-items:center;padding:20px 8px;cursor:pointer;list-style:none}
.tax-row summary::-webkit-details-marker{display:none}
.tax-num{font:500 .73rem "IBM Plex Mono",monospace;color:#8a959e}
.tax-year{font:600 .78rem "IBM Plex Mono",monospace}
.tax-name{font-weight:750}
.tax-change{color:var(--muted);font-size:.88rem;line-height:1.45}
.tax-impact{text-align:right;font:600 .76rem "IBM Plex Mono",monospace;color:var(--red)}
.tax-impact small{display:block;margin-bottom:3px;font:700 .62rem "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tax-impact strong{display:block;font:700 .83rem "IBM Plex Mono",monospace;color:var(--red);white-space:nowrap}
.chev{font-size:1.2rem;transition:transform .2s}
.tax-row[open] .chev{transform:rotate(45deg)}
.tax-detail{background:var(--cream);padding:18px 24px 22px 160px;display:grid;grid-template-columns:1fr auto;gap:25px;color:#48535c;font-size:.87rem;line-height:1.55}
.badge{display:inline-block;padding:4px 7px;border:1px solid #aeb7bc;font:600 .65rem "IBM Plex Mono",monospace;text-transform:uppercase;margin-right:8px;color:#52606a}
.scope-note{background:var(--red);color:white}
.scope-note .kicker{color:var(--navy)}
.scope-note>p{max-width:900px;font-size:1.05rem;line-height:1.7;color:#ffe7e2}
.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:36px}
.related-grid article{background:#b91f19;padding:26px}
.related-grid article>span{font:600 .7rem "IBM Plex Mono",monospace;text-transform:uppercase;color:#ffbbb5}
.related-grid strong{display:block;font:600 2.3rem "IBM Plex Mono",monospace;margin:12px 0}
.related-grid h3{font-size:1.08rem}
.related-grid p{color:#ffd3ce;line-height:1.5}
.methodology{background:var(--navy);color:white}
.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#ffffff22}
.method-grid article{background:var(--navy);padding:28px}
.method-grid article>span{font:600 .82rem "IBM Plex Mono",monospace;color:var(--red)}
.method-grid h3{margin:22px 0 10px}
.method-grid p{color:#aebdca;font-size:.88rem;line-height:1.6}
.sources{background:var(--cream)}
.source-list{border-top:2px solid var(--ink)}
.source-list a{display:grid;grid-template-columns:150px 1fr auto;gap:24px;padding:22px 6px;border-bottom:1px solid #bbc2c4;text-decoration:none;color:var(--ink);align-items:center}
.source-list span,.source-list em{font:500 .72rem "IBM Plex Mono",monospace;color:var(--muted);font-style:normal}
.source-list strong{font-size:.93rem}
.source-list a:hover strong{color:var(--red)}
footer{display:flex;justify-content:space-between;align-items:center;background:#07192b;color:#aebdca;padding:28px clamp(20px,7vw,110px);font-size:.75rem}
footer span{font-weight:800;color:white}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.stat-grid,.method-grid{grid-template-columns:1fr 1fr}
.income-tax-context-head,.income-tax-detail-grid{grid-template-columns:1fr}
.income-tax-total{border-left:0;border-top:3px solid var(--red);padding:18px 0 0}
.tax-row summary{grid-template-columns:42px 55px 1fr 22px}
.tax-change,.tax-impact{grid-column:3/4}
.tax-impact{text-align:left}
.chev{grid-column:4;grid-row:1/3}
.tax-detail{padding-left:115px}
.section-heading{display:block}
.filters{grid-template-columns:1fr 1fr}
.search-wrap{grid-column:1/-1}
.masthead nav{display:none}
}
@media(max-width:600px){.hero{padding-top:60px}
.stat-grid,.method-grid,.related-grid{grid-template-columns:1fr}
.income-tax-context{padding:20px 16px}.income-tax-total strong{font-size:clamp(1rem,5.15vw,1.75rem);letter-spacing:-.09em}.income-tax-split{grid-template-columns:1fr}.income-tax-split div{align-items:flex-start;flex-direction:column;gap:4px}.income-tax-split strong{font-size:1rem}.income-tax-detail-grid{display:block}.income-tax-method{margin-top:22px}
.clock-panel{padding:20px 15px}
.clock-value{font-size:clamp(1.75rem,9vw,3rem)}
.trend,.ledger,.methodology,.sources,.scope-note{padding:60px 18px}
.bar-chart{height:250px;gap:5px}
.bar-value{writing-mode:vertical-rl;transform:rotate(180deg);margin-bottom:6px}
.tax-row summary{grid-template-columns:34px 45px 1fr 20px;gap:8px;padding:16px 2px}
.tax-change{font-size:.8rem}
.tax-detail{padding:16px;display:block}
.source-list a{grid-template-columns:1fr;gap:6px}
footer{display:block}
.masthead{padding:0 18px}
}

/* Live hike-rate grid and stacked state/property chart */
.clock-rate-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:16px;background:#ffffff1d;border:1px solid #ffffff1d}.clock-rate-grid span{display:flex;flex-direction:column;gap:5px;padding:12px 14px;background:#07192b;color:#aebdca;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.clock-rate-grid b{color:var(--yellow);font:600 clamp(.85rem,1.5vw,1.1rem) "IBM Plex Mono",monospace;letter-spacing:-.03em;text-transform:none}
.chart-legend{display:flex;justify-content:flex-end;gap:22px;margin:-18px 0 15px;font:600 .69rem "IBM Plex Mono",monospace;text-transform:uppercase;color:var(--muted)}.chart-legend span{display:flex;align-items:center;gap:7px}.chart-legend i{width:12px;height:12px;display:inline-block}.legend-property,.bar-property{background:var(--red)}.legend-state,.bar-state{background:var(--navy)}.legend-income,.bar-income{background:#c58a00}.bar-stack{width:100%;max-width:92px;display:flex;flex-direction:column;justify-content:stretch;min-height:3px}.bar-property,.bar-state,.bar-income{width:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:visible}.bar-part-value{position:relative;z-index:1;color:#fff;font:700 clamp(.55rem,.85vw,.7rem)/1 "IBM Plex Mono",monospace;letter-spacing:-.06em;text-shadow:0 1px 2px #0009;white-space:nowrap}.chart-note{margin:42px 0 0;color:var(--muted);font-size:.78rem;line-height:1.5}
@media(max-width:600px){.clock-rate-grid{grid-template-columns:1fr 1fr}.chart-legend{justify-content:flex-start;flex-wrap:wrap;margin:0 0 10px}}
.bill-citation{margin:14px 0 10px;padding:11px 13px;border-left:3px solid var(--red);background:#fff;display:grid;gap:5px}
.bill-citation>span{font:700 .64rem "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bill-citation>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.bill-citation a{color:var(--navy);font:700 .8rem "IBM Plex Mono",monospace;text-decoration-thickness:1px;text-underline-offset:3px}
.bill-citation small{color:#65727b;font-size:.75rem;line-height:1.45}
.evidence-citation{border-left-color:#3c7890;margin-top:-4px}
.bill-sep{color:#aab1b5}
.gas-steps .bill-citation{margin:10px 0 0;padding:9px 11px}
