@font-face{font-family:'source serif 4';src:url(/fonts/SourceSerif4-subset.woff2)format('woff2-variations');font-weight:400 600;font-style:normal;font-display:swap}@font-face{font-family:'source serif 4 repli';src:local('Georgia'),local('Times New Roman'),local('Liberation Serif');size-adjust:96%;ascent-override:95%;descent-override:27%;line-gap-override:0%}:root{--paper:#fcfcfa;--paper-sunken:#f4f4f1;--paper-raised:#ffffff;--ink:#14161a;--ink-muted:#565a5e;--ink-faint:#74787c;--rule:#e3e4e0;--rule-strong:#c9cbc6;--accent:#1f5f8b;--accent-strong:#17475f;--accent-contrast:#ffffff;--production:#d98324;--consumption:#2f6b57;--alert:#a33a2a;--self-consumed-fill:rgb(31 95 139 / 26%);--measure:38rem;--margin-col:15rem;--gutter:3rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--font-read:'Source Serif 4', 'Source Serif 4 repli', Georgia, 'Times New Roman', serif;--font-ui:system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--weight-normal:400;--weight-strong:600;--size-xs:0.75rem;--size-sm:0.8125rem;--size-md:0.9375rem;--size-body:1.125rem;--size-lg:1.375rem;--size-xl:1.75rem;--size-2xl:2.25rem;--size-3xl:2.75rem;--leading-tight:1.2;--leading-snug:1.35;--leading-read:1.65;--radius-sm:3px;--radius-md:4px;--border:1px}*,*::before,*::after{box-sizing:border-box}html{font-variant-numeric:tabular-nums;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-read);font-size:var(--size-body);font-weight:var(--weight-normal);line-height:var(--leading-read);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.skip{position:absolute;left:-9999px;top:var(--space-2);padding:var(--space-2)var(--space-4);background:var(--accent);color:var(--accent-contrast);font-family:var(--font-ui);font-size:var(--size-sm);text-decoration:none}.skip:focus{left:var(--space-4);z-index:2}.site-header{border-bottom:var(--border)solid var(--rule);background:var(--paper)}.bar{display:flex;gap:var(--space-5);align-items:baseline;max-width:calc(var(--measure) + var(--margin-col) + var(--gutter));margin:0 auto;padding:var(--space-4)var(--space-5)}.wordmark{--logo-sun:var(--production);--logo-ink:var(--ink);display:inline-flex;gap:var(--space-2);align-items:center;color:var(--ink);font-family:var(--font-ui);font-size:var(--size-md);font-weight:var(--weight-strong);letter-spacing:-.01em;text-decoration:none;white-space:nowrap}.wordmark svg{flex-shrink:0;width:1.8em;height:1.8em}.wordmark-text{display:flex;flex-direction:column;line-height:var(--leading-tight)}.wordmark-tagline{color:var(--ink-muted);font-size:var(--size-xs);font-weight:var(--weight-normal);letter-spacing:0}.site-nav{flex:1}.site-nav ul{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:0;padding:0;list-style:none}.site-nav a{padding-bottom:2px;border-bottom:2px solid transparent;color:var(--ink-muted);font-family:var(--font-ui);font-size:var(--size-md);text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-nav a[aria-current=page]{border-bottom-color:var(--ink);color:var(--ink)}.action{padding:var(--space-2)var(--space-4);border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-contrast);font-family:var(--font-ui);font-size:var(--size-md);text-decoration:none;white-space:nowrap}.action:hover{background:var(--accent-strong)}.prose{max-width:var(--measure);margin:0 auto;padding:var(--space-7)var(--space-5)var(--space-8)}.prose-body{max-width:var(--measure)}.todo{display:inline;padding:.15em var(--space-2);border-left:2px solid var(--alert);background:var(--paper-sunken);color:var(--ink-muted);font-family:var(--font-ui);font-size:var(--size-md);-webkit-box-decoration-break:clone;box-decoration-break:clone}@media(min-width:62rem){.prose--with-toc{max-width:calc(var(--measure) + var(--margin-col) + var(--gutter));display:grid;grid-template-columns:var(--measure)var(--margin-col);gap:0 var(--gutter);align-items:start}.prose--with-toc .page-title{grid-column:1/-1;grid-row:1}.prose--with-toc .prose-body{grid-column:1;grid-row:2}.prose--with-toc .toc{grid-column:2;grid-row:2;position:sticky;top:var(--space-5);margin-bottom:0}}.toc{margin-bottom:var(--space-6);padding-left:var(--space-4);border-left:var(--border)solid var(--rule);font-family:var(--font-ui)}.toc-title{margin:0 0 var(--space-2);color:var(--ink-faint);font-size:var(--size-xs)}.toc ol{margin:0;padding:0;list-style:none}.toc li+li{margin-top:var(--space-2)}.toc a{color:var(--ink-muted);font-size:var(--size-sm);line-height:var(--leading-snug);text-decoration:none}.toc a:hover{color:var(--accent)}.page-title,.prose h1{max-width:var(--measure);margin:0 0 var(--space-5);font-size:var(--size-2xl);font-weight:var(--weight-strong);line-height:var(--leading-tight);letter-spacing:-.015em}.prose-body h2{margin:var(--space-8)0 var(--space-4);padding-top:var(--space-4);border-top:var(--border)solid var(--rule);font-size:var(--size-lg);font-weight:var(--weight-strong);line-height:var(--leading-snug)}.prose-body h3{margin:var(--space-6)0 var(--space-3);font-size:var(--size-body);font-weight:var(--weight-strong);line-height:var(--leading-snug)}.prose-body p{margin:0 0 var(--space-4)}.prose-body a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}.prose-body a:hover{color:var(--accent-strong)}.prose-body ul,.prose-body ol{margin:0 0 var(--space-4);padding-left:var(--space-5)}.prose-body li{margin-bottom:var(--space-2)}.prose-body strong{font-weight:var(--weight-strong)}.prose-body blockquote{margin:var(--space-5)0;padding:var(--space-1)0 var(--space-1)var(--space-4);border-left:2px solid var(--rule-strong);color:var(--ink-muted);font-family:var(--font-ui);font-size:var(--size-md);line-height:var(--leading-snug)}.prose-body blockquote p:last-child{margin-bottom:0}.prose-body code{font-family:var(--font-mono);font-size:.875em}.prose-body pre{margin:var(--space-4)0;padding:var(--space-4);overflow-x:auto;border:var(--border)solid var(--rule);border-radius:var(--radius-sm);background:var(--paper-sunken);font-size:var(--size-sm);line-height:var(--leading-snug)}.prose-body pre code{font-size:inherit}.prose-body table{width:100%;margin:var(--space-5)0;border-collapse:collapse;font-family:var(--font-ui);font-size:var(--size-md);line-height:var(--leading-snug)}.prose-body thead th{padding:var(--space-2)var(--space-3)var(--space-2)0;border-bottom:var(--border)solid var(--rule-strong);color:var(--ink-muted);font-size:var(--size-sm);font-weight:var(--weight-strong);text-align:left;vertical-align:bottom}.prose-body tbody td{padding:var(--space-2)var(--space-3)var(--space-2)0;border-bottom:var(--border)solid var(--rule);vertical-align:top}.prose-body tbody tr:last-child td{border-bottom:none}.prose-body .table-scroll{overflow-x:auto}.daychart{max-width:var(--measure);margin:var(--space-6)0}.daychart-svg{display:block;width:100%;height:auto}.daychart-grid{stroke:var(--rule);stroke-width:1}.daychart-tick{fill:var(--ink-faint);font-family:var(--font-ui);font-size:11px}.daychart-consumption-area{fill:rgb(47 107 87/14%)}.daychart-production-area{fill:rgb(217 131 36/16%)}.daychart-self-area{fill:rgb(31 95 139/.3)}.daychart-production-line{fill:none;stroke:var(--production);stroke-width:2;stroke-linejoin:round}.daychart-consumption-line{fill:none;stroke:var(--consumption);stroke-width:2;stroke-linejoin:round}.daychart-caption{display:flex;flex-wrap:wrap;gap:var(--space-2)var(--space-4);justify-content:space-between;margin-top:var(--space-2);color:var(--ink-muted);font-family:var(--font-ui);font-size:var(--size-sm);line-height:var(--leading-snug)}.daychart-key{display:flex;flex-wrap:wrap;gap:var(--space-1)var(--space-3);align-items:center}.daychart-swatch{width:.6em;height:.6em;margin-right:-.4rem;border-radius:1px}.daychart-swatch--production{background:var(--production)}.daychart-swatch--consumption{background:var(--consumption)}.daychart-swatch--self{background:rgb(31 95 139/55%)}.daychart-source{color:var(--ink-faint)}.crumb{margin:0 0 var(--space-4);font-family:var(--font-ui);font-size:var(--size-sm)}.crumb a{color:var(--ink-muted)}.excerpt{margin:0 0 var(--space-5);padding-left:var(--space-4);border-left:2px solid var(--production);font-size:var(--size-lg);line-height:var(--leading-snug)}.terms{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:baseline;margin:0 0 var(--space-6);color:var(--ink-muted);font-family:var(--font-ui);font-size:var(--size-sm)}.term{padding:0 var(--space-2);border:var(--border)solid var(--rule);border-radius:var(--radius-sm);background:var(--paper-sunken);color:var(--ink)}.next{margin-top:var(--space-7);padding-top:var(--space-4);border-top:var(--border)solid var(--rule);font-family:var(--font-ui);font-size:var(--size-md)}.badge{display:inline-block;margin:0 0 var(--space-3);padding:var(--space-1)var(--space-2);border:var(--border)solid var(--rule-strong);border-radius:var(--radius-sm);color:var(--ink-muted);font-family:var(--font-ui);font-size:var(--size-xs)}.dateline{margin:0 0 var(--space-6);color:var(--ink-muted);font-family:var(--font-ui);font-size:var(--size-sm)}.entries{max-width:var(--measure);margin:var(--space-6)0 0;padding:0;list-style:none}.entry{padding:var(--space-5)0;border-top:var(--border)solid var(--rule)}.entry-meta{display:flex;gap:var(--space-3);align-items:baseline;margin:0 0 var(--space-2);color:var(--ink-faint);font-family:var(--font-ui);font-size:var(--size-sm)}.entry-tag{padding:0 var(--space-2);border:var(--border)solid var(--rule-strong);border-radius:var(--radius-sm);color:var(--ink-muted);font-size:var(--size-xs)}.entry-title{margin:0 0 var(--space-2);font-size:var(--size-lg);font-weight:var(--weight-strong);line-height:var(--leading-snug)}.entry-title a{color:var(--ink);text-decoration:none}.entry-title a:hover{color:var(--accent);text-decoration:underline}.entry-summary{margin:0;color:var(--ink-muted);font-size:var(--size-md)}.entry--empty{color:var(--ink-faint);font-family:var(--font-ui);font-size:var(--size-md)}.prose--home h1{max-width:var(--measure);font-size:var(--size-3xl)}.home-news{max-width:var(--measure);margin-top:var(--space-8);padding-top:var(--space-4);border-top:var(--border)solid var(--rule);font-family:var(--font-ui)}.home-news h2{margin:0 0 var(--space-3);font-size:var(--size-md);font-weight:var(--weight-strong)}.home-news ul{margin:0;padding:0;list-style:none}.home-news li{display:flex;gap:var(--space-3);align-items:baseline;margin-bottom:var(--space-2);font-size:var(--size-md)}.home-news time{flex:none;color:var(--ink-faint);font-size:var(--size-sm)}.site-footer{border-top:var(--border)solid var(--rule);background:var(--paper-sunken)}.footer-inner{max-width:calc(var(--measure) + var(--margin-col) + var(--gutter));margin:0 auto;padding:var(--space-6)var(--space-5);color:var(--ink-muted);font-family:var(--font-ui);font-size:var(--size-sm);line-height:var(--leading-snug)}.footer-inner p{margin:0 0 var(--space-3)}.footer-method strong{color:var(--ink);font-weight:var(--weight-strong)}.footer-links{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:0}.footer-links a,.footer-sources a{color:var(--ink-muted)}@media(max-width:48rem){:root{--size-body:1.0625rem;--size-3xl:2rem;--size-2xl:1.625rem;--size-xl:1.375rem;--size-lg:1.1875rem}.bar{flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3)var(--space-4)}.site-nav{order:3;flex-basis:100%}.site-nav ul{gap:var(--space-3)}.prose{padding:var(--space-5)var(--space-4)var(--space-7)}.toc{margin-bottom:var(--space-5);padding:var(--space-3)0 var(--space-4);border-top:var(--border)solid var(--rule);border-bottom:var(--border)solid var(--rule);border-left:none}.toc ol{display:flex;flex-wrap:wrap;gap:var(--space-1)var(--space-3)}.toc li+li{margin-top:0}.toc li:not(:last-child)::after{margin-left:var(--space-3);color:var(--rule-strong);content:'·'}.prose-body table{display:block;overflow-x:auto}.prose-body table thead,.prose-body table tbody{display:table;width:100%;min-width:30rem}.prose-body pre{padding:var(--space-3)}}