:root{--paper:#faf8f4;--warm:#f5f2eb;--ink:#262420;--muted:#6b665d;--border:#d4d0c6;--forest:#324a3b;--damage:#a13232;--emissions:#596b18;--response:#ba5a08;--preference:#7844a2;--rate:#2459a6;--factor:#a83282;--eta:#82651c;--growth:#24763c;--returns:#46515f;--weight:#007c8a}
*{box-sizing:border-box}html{font-size:18px;scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Source Serif 4',Georgia,serif;line-height:1.65}h1,h2,h3,.site-title{font-family:'Cormorant Garamond',Georgia,serif;line-height:1.25}h1{font-size:2.6rem;margin:.6rem 0}h2{font-size:1.75rem;font-weight:600;margin:0 0 1.5rem}h2:after{content:'';display:block;width:40px;height:1px;background:var(--forest);margin-top:.65rem}h3{font-size:1.35rem;margin:.5rem 0 1rem}p{margin:0 0 1rem}a{color:var(--forest);text-decoration-color:#a8b7a9;text-underline-offset:3px}a:hover{color:#1d3826}button,input,select{font:inherit}button,.button{min-height:44px;border:1px solid #b8b3a7;background:transparent;border-radius:3px;padding:.4rem .75rem;color:var(--forest);font-size:.86rem;cursor:pointer;line-height:1.5;text-decoration:none;display:inline-flex;align-items:center}button:hover,.button:hover{background:var(--warm)}button[aria-pressed=true]{background:var(--forest);color:var(--paper);border-color:var(--forest)}button:disabled{opacity:.4;cursor:default}:is(a,button,input,summary):focus-visible{outline:3px solid #b89834;outline-offset:4px}input[type=range]{width:100%;accent-color:var(--forest);min-height:30px;margin:.4rem 0}input[type=number]{max-width:150px;width:100%;padding:.4rem;border:1px solid var(--border);border-radius:2px;color:var(--ink);background:var(--paper);font-variant-numeric:tabular-nums;min-height:44px}
.site-header{text-align:center;padding:1.7rem 1rem 1.1rem;border-bottom:1px solid var(--border)}.site-title{font-size:1.5rem;font-weight:600;text-transform:uppercase;letter-spacing:.22em;text-decoration:none;color:var(--ink)}.header-links{display:flex;justify-content:center;flex-wrap:wrap;gap:1.8rem;font-size:.95rem;margin-top:.8rem}main{max-width:1160px;padding:2.6rem 2rem;margin:auto}.eyebrow{font-size:.85rem;color:var(--muted);margin:0}.lead{font-size:1.25rem;color:var(--muted);margin-bottom:1rem}.contents{display:flex;gap:.65rem 1.5rem;flex-wrap:wrap;margin:1.7rem 0}.contents a{font-size:.9rem}.lesson-section{padding:2.3rem 0;border-bottom:1px solid var(--border)}.small{font-size:.83rem;line-height:1.6;color:var(--muted)}.math{max-width:100%;overflow-x:auto;padding:.7rem .25rem;font-size:1rem}.katex{font-size:1.05em}.katex-display{margin:.6em 0}.katex-display>.katex{white-space:nowrap}.highlighted{background:#f0eee7;border-left:3px solid var(--border);padding:.7rem 1rem;margin:1rem 0}.controls{padding:1.05rem 1.2rem;border:1px solid var(--border);background:var(--warm);margin:1.3rem 0;max-width:820px;display:grid;gap:1.15rem 1.6rem}.controls.two{grid-template-columns:repeat(2,minmax(0,1fr))}.controls.three{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}.controls.four{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none}.control label{display:flex;flex-wrap:wrap;gap:.15rem .35rem;align-items:center;font-size:.87rem}.control output{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.control .small{margin:.2rem 0 0;font-size:.76rem}.eta{--control:var(--eta)}.preference{--control:var(--preference)}.growth{--control:var(--growth)}.returns{--control:var(--returns)}.response{--control:var(--response)}.control input[type=range]{accent-color:var(--control,var(--forest))}.control output{color:var(--control,var(--ink))}.actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.9rem 0}.check{font-size:.82rem;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}.check input{accent-color:var(--forest);height:18px;width:18px}.figure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin:1rem 0}figure{min-width:0;margin:1.2rem 0;border:1px solid var(--border);padding:1rem 1.1rem;background:var(--paper)}.figure-grid figure{margin:0}figcaption{font-size:1.05rem;font-weight:600;margin-bottom:.6rem}figure .small{margin:.4rem 0 0}.plot{width:100%;min-width:0;min-height:310px}.plot svg{display:block;width:100%;height:310px;overflow:visible}.reading{border-left:2px solid var(--border);padding:.7rem 1rem;background:var(--warm);margin:1.2rem 0}details{margin:1rem 0;border:1px solid var(--border);padding:.6rem 1rem}summary{cursor:pointer;font-size:.95rem;color:var(--forest)}details[open]>summary{margin-bottom:1rem}details p:last-child{margin-bottom:.2rem}.color-key{margin-bottom:.5rem}.color-key #color-key{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:1rem 0;font-size:.83rem}.derivation{background:var(--warm);border:1px solid var(--border);padding:1.3rem 1.5rem;margin:1.3rem 0}.derivation .math{min-height:110px}.step-count{font-size:.8rem;color:var(--muted);margin-bottom:.5rem}.derivation h3{margin-top:0}.table-scroll{max-width:100%;overflow-x:auto;margin:1.3rem 0}table{border-collapse:collapse;width:100%;font-size:.85rem;font-variant-numeric:tabular-nums}th,td{padding:.7rem .8rem;text-align:right;vertical-align:middle;border-bottom:1px solid var(--border)}th:first-child,td:first-child{text-align:left}thead{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}thead th{font-weight:600;font-size:.8rem;line-height:1.5}caption{text-align:left;font-size:1rem;margin:0 0 .75rem}tfoot{border-bottom:2px solid var(--ink);font-weight:600}tfoot td,tfoot th{border-bottom:0}.rates td{text-align:left;min-width:210px}.rates th{min-width:130px}.country-inputs input{font-size:.85rem}.country-inputs td:nth-child(4){color:var(--damage)}.country-inputs td:nth-child(4) input{color:var(--damage)}.country-results .weight{color:var(--weight)}.country-results .preference-value{color:var(--preference)}.scc-result{text-align:center;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1.5rem;margin:2rem 0;display:flex;flex-direction:column}.scc-result span{font-size:.9rem;color:var(--muted)}.scc-result strong{font-family:'Cormorant Garamond',Georgia,serif;font-size:3rem;line-height:1.3}.exercises{padding-left:1.5rem}.exercises>li{margin:1.4rem 0 2rem}.exercises p{margin-bottom:.5rem}footer{font-size:.82rem;color:var(--muted);padding:2rem 0 1rem}.empty-state{font-size:.85rem;color:var(--muted)}
@media(max-width:950px){.controls.four{grid-template-columns:repeat(2,minmax(0,1fr))}.controls.three{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){html{font-size:17px}main{padding:2rem 1.15rem}.figure-grid{grid-template-columns:1fr}.controls.three{grid-template-columns:1fr 1fr}.country-results{min-width:650px}.country-inputs{min-width:560px}.rates{min-width:640px}}@media(max-width:450px){h1{font-size:2.2rem}h2{font-size:1.55rem}.site-title{font-size:1.25rem}.header-links{gap:1rem}.controls.two,.controls.three,.controls.four{grid-template-columns:1fr}.controls{padding:1rem}.derivation{padding:1rem}.math{font-size:.85rem}figure{padding:.8rem .7rem}.highlighted{padding:.6rem}.contents{gap:.4rem 1rem}.scc-result strong{font-size:2.6rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.controls,.actions,.contents{display:none}main{max-width:none;padding:0}.lesson-section{break-inside:avoid}figure{break-inside:avoid}}

/* Keep absolutely positioned equation accessibility content inside its scroll area. */
.math,.table-scroll{position:relative}
.utility-comparison{border:1px solid var(--border);padding:1.25rem 1.5rem;margin:1.5rem 0;background:var(--warm)}
.utility-comparison h3{margin-top:0}.comparison-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin:1rem 0}.comparison-pair .small{margin-bottom:.4rem}.comparison-pair .budget{font-size:1.25rem;font-weight:600;margin-bottom:1rem;font-variant-numeric:tabular-nums}.benefit-track{height:18px;background:#e5e1d7;margin:.6rem 0}.benefit-fill{height:100%;background:var(--ink);transition:width .15s ease}.utility-comparison>p{margin:.5rem 0 0}.utility-comparison details{background:var(--paper)}
@media(max-width:700px){.comparison-pair{grid-template-columns:1fr;gap:1rem}.utility-comparison{padding:1rem}.comparison-pair .budget{font-size:1.15rem}}
@media(prefers-reduced-motion:reduce){.benefit-fill{transition:none}}

/* Ruby's budget follows the timing of the two-period model. */
.ruby-timeline{padding:1.3rem;background:var(--warm)}
.ruby-timeline>figcaption{font-size:1.15rem;margin-bottom:1.2rem}
.ruby-periods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem}
.ruby-period{min-width:0;border:1px solid var(--border);background:var(--paper);padding:1.15rem}
.ruby-period h3{font-size:1.23rem;margin:0 0 .8rem}
.period-tag{display:block;font:600 .76rem 'Source Serif 4',Georgia,serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}
.ruby-scene{display:grid;grid-template-columns:44% 1fr;gap:1rem;align-items:center;min-height:235px}
.ruby-scene img{display:block;width:100%;height:235px;object-fit:contain}
.ruby-income{display:flex;flex-direction:column;gap:.25rem;border-left:1px solid var(--border);padding-left:1rem;font-size:.91rem}
.ruby-income strong{font-size:1.55rem;font-weight:400}
.ruby-income small{font-size:.75rem;color:var(--muted);line-height:1.5}
.ruby-flow{font-size:.86rem;margin:1rem 0 .4rem}
.ruby-budget{margin:0}
.ruby-budget>div{border-top:1px solid var(--border);padding:.65rem 0;display:grid;grid-template-columns:38% 1fr;gap:.7rem}
.ruby-budget dt{font-size:.8rem;font-weight:600;line-height:1.5}
.ruby-budget dd{margin:0;min-width:0}
.ruby-budget dd>strong{display:block;overflow-x:auto;position:relative;font-size:.82rem;font-weight:400;margin-bottom:.2rem}
.ruby-budget dd>span{display:block;font-size:.76rem;color:var(--muted);line-height:1.5}
.ruby-emissions dt{color:var(--emissions)}.ruby-damage dt{color:var(--damage)}
.ruby-equation{border-top:1px solid var(--border);margin-top:.3rem;font-size:.85rem}
.ruby-timeline>.small{margin-top:1rem}
.derivation-steps{margin:1.7rem 0}
.derivation-step{padding:1.2rem 1.4rem;border:1px solid var(--border);background:var(--warm);margin:0 0 1rem}
.derivation-step h3{margin:.2rem 0 .5rem}.derivation-step p:last-child{margin:.5rem 0 0}
@media(max-width:800px){.ruby-periods{grid-template-columns:1fr}.ruby-scene{grid-template-columns:40% 1fr}.ruby-scene img{height:215px}.ruby-scene{min-height:215px}}
@media(max-width:450px){.ruby-timeline{padding:.8rem}.ruby-period{padding:.85rem}.ruby-budget>div{grid-template-columns:35% 1fr;gap:.5rem}.ruby-income{padding-left:.7rem}.derivation-step{padding:1rem}.ruby-equation{font-size:.75rem}}
@media print{.ruby-period,.derivation-step{break-inside:avoid}}

/* Exposition is visible in reading order; only optional exercises collapse. */
.definitions{padding-left:1.3rem;margin:1rem 0 1.4rem}.definitions li{margin:.7rem 0}
.actions button{gap:.25rem}
.explanation{border:1px solid var(--border);padding:1.2rem 1.4rem;margin:1.5rem 0;background:var(--warm)}.explanation h3{margin-top:0}
.ruby-function-heading{display:flex;align-items:center;gap:1.4rem}.ruby-function-heading img{width:110px;height:150px;object-fit:contain;flex-shrink:0}.ruby-function-heading p{margin-bottom:0}
.ruby-population{background:var(--warm);text-align:center;padding:1.4rem;margin-bottom:2rem}.ruby-population p{max-width:840px;margin:.8rem auto 0}.ruby-population figcaption{font-size:1.3rem;margin:.9rem 0 .4rem}
.ruby-cloud{max-width:660px;min-height:230px;margin:auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0 1rem;align-items:center}.ruby-cloud img{width:100%;height:120px;object-fit:contain}.ruby-copy-0,.ruby-copy-4,.ruby-copy-7,.ruby-copy-11{transform:rotate(-6deg)}.ruby-copy-2,.ruby-copy-5,.ruby-copy-6,.ruby-copy-9{transform:rotate(6deg)}
#derive>h3,#discounting>h3{margin-top:2rem}
@media(max-width:650px){.ruby-cloud{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 .5rem}.ruby-cloud img{height:100px}.ruby-function-heading{gap:.8rem}.ruby-function-heading img{width:75px;height:115px}.explanation{padding:1rem}.ruby-population{padding:1rem}}

/* Match the same budget categories across periods. */
.ruby-periods{row-gap:0;column-gap:1.3rem}
.ruby-period{display:grid;grid-template-rows:subgrid;grid-row:span 8;row-gap:0}
.ruby-budget{display:contents}
.ruby-budget>div{padding:.8rem 0}
.ruby-equation{align-self:start}
.utility-presets button{font-size:.82rem;white-space:normal;text-align:left}
.eta-example{margin-top:1.2rem}.eta-example:last-child{margin-bottom:0}
h4{font:600 1.23rem/1.35 'Cormorant Garamond',Georgia,serif;margin:2rem 0 1rem}
.foc-set .math{padding:1rem .25rem;margin:.5rem 0}
.planner-problem{padding:1.3rem;background:var(--warm);margin:1.5rem 0}
.problem-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1rem;align-items:center;padding:.8rem 0;border-top:1px solid var(--border)}
.problem-row .math{min-width:0;padding:.5rem .1rem;font-size:.88rem}
.problem-note{display:flex;align-items:flex-start;gap:.6rem;font-size:.82rem;line-height:1.55}
.problem-note p{margin:0}.note-arrow{font-size:1.5rem;line-height:1.2}
.optimization-flow{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.6rem 1rem;border-top:1px solid var(--border);padding-top:1rem;font-size:.78rem}
@media(max-width:800px){.ruby-periods{gap:1.3rem}.ruby-period{display:block;grid-row:auto}.ruby-budget{display:block}.problem-row{grid-template-columns:1fr;gap:.5rem}.problem-note{border-left:2px solid var(--border);padding-left:.7rem}.note-arrow{display:none}}
@media(max-width:450px){.planner-problem{padding:1rem}.problem-row .math{font-size:.78rem}.optimization-flow{justify-content:flex-start}}

/* Readings connect the SCC derivation to estimation and policy applications. */
.reading-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.6rem;margin-top:2rem}
.reading-groups h3{margin:0 0 .6rem}.reading-groups>div>.small{margin-bottom:1rem}
.paper-list{list-style:none;padding:0;margin:0}.paper-list li{border-top:1px solid var(--border);padding:1.05rem 0}
.paper-list h4{font:600 1.02rem/1.45 'Source Serif 4',Georgia,serif;margin:0 0 .4rem}
.paper-list p{font-size:.88rem;line-height:1.6;margin:0}.paper-list .paper-citation{font-size:.76rem;color:var(--muted);margin-bottom:.55rem}
@media(max-width:800px){.reading-groups{grid-template-columns:1fr;gap:2rem}}
@media print{.paper-list li{break-inside:avoid}}

.definition-units{padding-left:1.1rem;margin:.2rem 0 0;font-size:.88rem}.definitions .definition-units li{margin:.2rem 0}
.juno-benefit-intro{display:flex;align-items:center;gap:1.4rem;margin:1rem 0}.juno-benefit-intro>p{margin:0}.juno-portrait{border:0;background:transparent;padding:0;margin:0;width:145px;flex-shrink:0}.juno-portrait img{display:block;width:100%;height:158px;object-fit:contain}.juno-portrait figcaption{text-align:center;font-size:.83rem;margin:.2rem 0 0;font-weight:400}
.planner-optimization{padding:1.4rem .25rem;margin:1.5rem 0}
@media(max-width:650px){.juno-benefit-intro{align-items:flex-start;gap:1rem}.juno-portrait{width:95px}.juno-portrait img{height:105px}}
@media(max-width:400px){.juno-benefit-intro{display:block}.juno-portrait{float:left;margin:0 1rem .4rem 0}.juno-benefit-intro::after{content:'';display:block;clear:both}}

/* Definitions receive a small mark in the right margin. */
.definition,.definitions>li{position:relative}
.definition::after,.definitions>li::after{content:'';position:absolute;right:-.8rem;top:.35rem;width:3px;height:1.4rem;background:var(--forest);opacity:.5}
.lesson-question{max-width:970px;margin:1rem 0 1.6rem}
.section-roadmap{padding-left:1.25rem;font-size:.9rem;margin:1rem 0 1.6rem}.section-roadmap li{margin:.35rem 0}
.welfare-derivation{margin:1.6rem 0}.welfare-derivation>summary{font-size:1.05rem}.welfare-derivation[open]{padding:1rem 1.2rem}
.equation-with-note{display:grid;grid-template-columns:180px minmax(0,1fr);gap:1.4rem;align-items:center;margin:1rem 0}.equation-note{font-size:.8rem;color:var(--muted);line-height:1.6}
.rates thead th:nth-child(2){text-align:center}
.country-comparison .comparison-pair{margin:1.2rem 0}.country-comparison .comparison-pair .budget{font-size:1.4rem}.country-comparison .comparison-pair p{margin-bottom:.35rem}
@media(max-width:800px){.equation-with-note{grid-template-columns:1fr;gap:.25rem}.equation-note{max-width:250px}}

/* Draft layout: keep the goal in view beside the planner roadmap. */
main>h1+section{padding-top:1.1rem}
.curvature-definition{margin:1rem 0 1.5rem}.curvature-definition ul{padding-left:1.25rem}.curvature-definition li{margin:.45rem 0}.curvature-definition p{margin-bottom:.6rem}
.ruby-period h3{font-family:'Source Serif 4',Georgia,serif;font-size:1.08rem;font-weight:600}
.planner-roadmap{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:2rem;align-items:start;margin:1.2rem 0 2rem}
.planner-roadmap .roadmap-copy{min-width:0}.planner-roadmap ol{padding-left:1.4rem;margin:.3rem 0 1rem}.planner-roadmap li{margin:.65rem 0}.roadmap-goal{margin-bottom:0}
.prize-photo{padding:0;margin:0;border:0;background:transparent;position:sticky;top:1rem}.prize-photo img{display:block;width:100%;height:auto;border-radius:2px}.prize-photo figcaption{font-size:.87rem;line-height:1.45;text-align:center;font-weight:400;font-style:italic;margin:.65rem 0 0}
@media(max-width:800px){.planner-roadmap{grid-template-columns:1fr;gap:1.2rem}.prize-photo{position:static;width:min(100%,320px);justify-self:center}.planner-roadmap .prize-photo{grid-row:2}.marginal-utility-derivation{padding:.6rem .7rem}}
@media print{.prize-photo{position:static}.planner-roadmap{grid-template-columns:minmax(0,1fr) 220px}}

/* Show Juno's supplied cutout at its natural aspect ratio. */
.juno-portrait{width:180px}.juno-portrait img{height:auto;border:0}
@media(max-width:650px){.juno-portrait{width:120px}}

/* Match the navigation used by the other lessons on zahrathabet.com. */
.site-header{padding:2rem 1rem 1.75rem}.site-header .site-title{font-size:1.35rem;letter-spacing:.2em;margin:0 0 1rem}
.lesson-back{font-size:.85rem;margin:0 0 1.2rem}.carbon-lesson>h1+section{padding-top:1.1rem}
@media(max-width:760px){.site-nav{gap:.6rem 1.4rem}}

/* Make the four-step roadmap and the two Euler routes easy to follow. */
.planner-roadmap .roadmap-copy{border:1px solid var(--border);background:var(--warm);padding:1.1rem 1.25rem}
.roadmap-decision,.roadmap-solve{display:block;margin-top:.4rem}.roadmap-decision{padding-left:.6rem}.roadmap-solve{margin-top:.65rem}
.scc-baseline{font-size:.88rem;margin-top:1rem;margin-bottom:0}
.mitigation-route{color:var(--euler-mitigation)}.capital-route{color:var(--euler-capital)}
.ruby-cloud img,.ruby-scene img,.ruby-function-heading img,.juno-portrait img,.prize-photo img{border:0;outline:0;box-shadow:none}
.ruby-population{border:0}
@media(max-width:800px){.planner-roadmap .roadmap-copy{padding:1rem}.roadmap-decision{padding-left:0}}

/* Align tomorrow’s damages with today’s emissions; leave the mitigation row empty. */
@media(min-width:801px){.ruby-period:nth-child(2) .ruby-damage{grid-row:6}.ruby-period:nth-child(2) .ruby-budget>div:last-child{grid-row:7}.ruby-period:nth-child(2)>.ruby-equation{grid-row:8}}

/* Distinct, consistent cues for the two Euler routes. */
:root{--euler-capital:#0759b3;--euler-mitigation:#b34700}
.euler-capital{--euler-cue:var(--euler-capital)}.euler-mitigation{--euler-cue:var(--euler-mitigation)}
.math.euler-capital,.math.euler-mitigation{border-left:3px solid var(--euler-cue);padding-left:1rem}
