@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/nunito-sans-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nunito-sans-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/nunito-sans-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nunito-sans-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/outfit-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/outfit-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/outfit-800.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #151a30;--bg-raised: #1d2340;--bg-sunken: #111529;--text: #f3ecdd;--text-muted: #a8a7c2;--accent: #ffb454;--accent-dim: #7a5a2c;--accent-soft: rgb(255 180 84 / .12);--change: #7cc5ff;--change-soft: rgb(124 197 255 / .14);--warn: var(--change);--warn-soft: var(--change-soft);--border: #2c3357;--code-bg: #111529;--measure: 44rem;--font-display: "Outfit", system-ui, sans-serif;--font-body: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Code", Menlo, monospace;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;display:flex;flex-direction:column;line-height:1.7;font-size:1.0625rem}main{flex:1;width:100%;max-width:var(--measure);margin:0 auto;padding:2.5rem 1.25rem 4rem}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.2;letter-spacing:-.02em;margin:2.2em 0 .6em;scroll-margin-top:4.5rem}h1{font-size:clamp(1.7rem,4.5vw,2.2rem);margin-top:0}h2{font-size:1.45rem;padding-bottom:.25rem;border-bottom:1px solid var(--border)}h3{font-size:1.15rem}h2 .anchor,h3 .anchor{margin-left:.4em;font-weight:400;color:var(--text-muted);opacity:0;text-decoration:none}h2:hover .anchor,h3:hover .anchor,h2 .anchor:focus,h3 .anchor:focus{opacity:1}h2 .anchor:hover,h3 .anchor:hover{color:var(--accent)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}p,ul,ol{margin:0 0 1.1em}li+li{margin-top:.3em}hr{border:0;border-top:1px solid var(--border);margin:2.5rem 0}blockquote{margin:1.75rem 0 1.75rem .25rem;padding:.25rem 0 .25rem 1.25rem;border-left:2px solid var(--accent);font-style:italic;color:var(--text)}blockquote p{margin:.5rem 0}blockquote em{font-style:normal}code{font-family:var(--font-mono);font-size:.9em;background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:.1em .35em}pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;overflow-x:auto;font-size:.9rem;line-height:1.55}pre code{background:none;border:0;padding:0}table{display:block;width:fit-content;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}th,td{border:1px solid var(--border);padding:.5rem .85rem;text-align:left;vertical-align:top}th{background:var(--bg-raised)}img{max-width:100%;height:auto}figure{margin:2rem 0}figcaption{font-size:.85rem;color:var(--text-muted);margin-top:.4rem}.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:60;transition:width .1s linear}.site-header{position:sticky;top:0;z-index:50;background:#151a30d9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.site-header .inner,.site-footer .inner{max-width:var(--measure);margin:0 auto;padding:.85rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.site-header .brand{font-family:var(--font-display);font-weight:800;color:var(--text);font-size:1.1rem;letter-spacing:-.01em}.site-header .brand span{color:var(--accent)}.site-header nav{display:flex;gap:.25rem}.site-header nav a{color:var(--text-muted);font-size:.95rem;padding:.35rem .7rem;border-radius:6px}.site-header nav a:hover{color:var(--text);background:var(--bg-raised);text-decoration:none}.site-header nav a[aria-current=page]{color:var(--text);background:var(--accent-soft)}.site-footer{border-top:1px solid var(--border);color:var(--text-muted);font-size:.875rem}.site-footer .inner{padding-top:1.25rem;padding-bottom:1.25rem}.site-footer p{margin:0}.site-footer a{color:var(--text-muted);text-decoration:underline}.hero h1{margin-bottom:.5rem}.hero p{color:var(--text-muted);font-size:1.1rem;max-width:36rem}.intro{color:var(--text-muted);margin:-.5rem 0 1.75rem;max-width:36rem}.post-list{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.post-list li{margin:0}.post-list .card{display:block;padding:1.35rem 1.5rem;border:1px solid var(--border);border-radius:12px;background:var(--bg-raised);color:inherit;transition:border-color .15s ease,transform .15s ease}.post-list .card:has(.card-link:hover){border-color:var(--accent);transform:translateY(-1px)}.post-list .card-link{display:block;color:inherit}.post-list .card-link:hover{text-decoration:none}.post-list .card h3{margin:0 0 .4rem;font-size:1.35rem;font-weight:700;letter-spacing:-.02em;line-height:1.25;color:var(--text)}.post-list .card-link:hover h3{color:var(--accent)}.post-list .card p{margin:.5rem 0 .8rem;color:var(--text);opacity:.85;font-size:.97rem}.post-list .card .post-meta{display:block;margin-top:.15rem}.post-meta{color:var(--text-muted);font-size:.875rem}.post-meta .sep{margin:0 .4rem;opacity:.6}.tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.75rem}.tags a,.tags span{font-size:.76rem;border:1px solid var(--border);border-radius:999px;padding:.05rem .6rem;color:var(--text-muted)}.tags a:hover{text-decoration:none;color:var(--accent);border-color:var(--accent)}article.post header{margin-bottom:2rem}article.post header .post-meta{margin:.6rem 0 0}.crumb{font-size:.85rem;color:var(--text-muted);margin-bottom:1rem;display:inline-block}.crumb:hover{color:var(--text)}.summary{margin:1.75rem 0 0;padding:1rem 1.35rem .5rem;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,var(--accent-soft),transparent 55%),var(--bg-raised)}.summary .label{display:block;font-family:var(--font-display);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:.25rem}.summary ul{list-style:none;margin:0;padding:0;font-size:.97rem}.summary li{position:relative;padding:.6rem 0 .6rem 1.35rem;border-top:1px solid var(--border)}.summary li:first-child{border-top:0}.summary li:before{content:"";position:absolute;left:.15rem;top:1.05rem;width:.5rem;height:.5rem;border-radius:2px;background:var(--accent);transform:rotate(45deg)}.toc-mobile{margin:1.5rem 0 0;border:1px solid var(--border);border-radius:10px;padding:.6rem 1rem;font-size:.92rem}.toc-mobile summary{cursor:pointer;color:var(--text-muted);font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center}.toc-mobile summary::-webkit-details-marker{display:none}.toc-mobile summary:after{content:"+";font-weight:400}.toc-mobile[open] summary:after{content:"−"}.toc-mobile ol{margin:.6rem 0 .3rem;padding-left:1.2rem}.toc-mobile ol ol{margin:.2rem 0 0;padding-left:1rem;list-style:none}.toc-mobile a{color:var(--text)}.toc-mobile ol ol a{color:var(--text-muted)}@media(min-width:1280px){.toc-mobile{display:none}}.note{margin:1.5rem 0;padding:.85rem 1.1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-raised);font-size:.95rem}.note.mine{border-color:var(--warn);background:var(--warn-soft)}.note>:last-child{margin-bottom:0}.note .label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.25rem}.note.mine .label{color:var(--warn)}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;margin:1.75rem 0}.facts div{padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-raised)}.facts strong{display:block;font-family:var(--font-mono);font-size:1.45rem;line-height:1.15;color:var(--change);font-variant-numeric:tabular-nums}.facts span{display:block;font-size:.85rem;color:var(--text-muted);margin-top:.25rem}.widget{margin:2rem 0;border:1px solid var(--border);border-radius:12px;background:var(--bg-raised);overflow:hidden}.w-head{display:flex;align-items:center;gap:.7rem;padding:.7rem 1.1rem;border-bottom:1px solid var(--border);background:var(--bg-sunken);font-size:.95rem}.w-head strong{font-family:var(--font-display);font-weight:700}.w-tag{white-space:nowrap;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--bg);background:var(--accent);padding:.1rem .5rem;border-radius:999px}.w-body{padding:1rem 1.1rem 1.1rem;display:grid;gap:1rem}.w-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem 1rem}.w-field{display:flex;flex-direction:column;gap:.25rem}.w-field label{font-size:.8rem;color:var(--text-muted)}@media(min-width:32rem){.w-field.wide{grid-column:span 2}}.w-field small{font-size:.75rem;color:var(--text-muted)}.w-field input,.w-field select{font:inherit;font-size:.95rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.45rem .65rem;width:100%;min-width:0}.w-field input:focus,.w-field select:focus{outline:none;border-color:var(--accent)}.w-field input.mono{font-family:var(--font-mono)}.w-field input[type=range]{padding:0;border:0;background:transparent;accent-color:var(--accent)}.w-field .range-value{font-size:.95rem;color:var(--text);font-weight:600}.w-out{display:grid;gap:.5rem;font-size:.95rem}.w-row{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dashed var(--border)}.w-row:last-child{border-bottom:0}.w-row span:first-child{color:var(--text-muted)}.w-row .val{font-weight:700;text-align:right;font-variant-numeric:tabular-nums;padding:0 .3rem;margin-right:-.3rem;border-radius:4px}.w-row .val.warn,.w-big.warn strong{color:var(--warn)}.w-row .val.ok{color:var(--accent)}.w-mono{font-family:var(--font-mono);font-size:.85rem;background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;overflow-wrap:anywhere;line-height:1.5}.w-mono .hl{color:var(--accent)}.w-mono .dim{color:var(--text-muted)}.w-big{position:relative;padding:.75rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.w-big strong{display:block;font-family:var(--font-mono);font-size:1.6rem;line-height:1.15;color:var(--accent);font-variant-numeric:tabular-nums;padding:0 .3rem;margin-left:-.3rem;border-radius:4px}.w-big>span{font-size:.85rem;color:var(--text-muted)}.changed{animation:w-flash .7s ease-out}@keyframes w-flash{0%{background:color-mix(in srgb,var(--change) 40%,transparent)}to{background:transparent}}.w-delta{position:absolute;top:-.7rem;right:.7rem;border:1px solid var(--bg-raised);font-family:var(--font-mono);font-size:.78rem;font-weight:600;padding:.1rem .45rem;border-radius:999px;background:var(--change);color:var(--bg);opacity:0;pointer-events:none}.w-delta.neg{background:var(--text-muted)}.w-delta.show{animation:w-pop 1.3s ease-out forwards}@keyframes w-pop{0%{opacity:0;transform:translateY(6px)}15%{opacity:1;transform:translateY(0)}70%{opacity:1}to{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.w-bar-fill{transition:none}.w-delta.show{animation:none;opacity:1}}.w-bigs{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.6rem}.w-note{margin:0;padding:0 1.1rem .9rem;font-size:.82rem;color:var(--text-muted)}.w-bars{display:grid;gap:.35rem;font-size:.85rem}.w-bar-row{display:grid;grid-template-columns:3.2rem 1fr 5.5rem;align-items:center;gap:.6rem}.w-bar-label{color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}.w-bar-track{display:block;height:.9rem;background:var(--bg);border-radius:4px;overflow:hidden}.w-bar-fill{display:block;height:100%;background:var(--accent);transition:width .45s cubic-bezier(.2,.7,.2,1)}.w-bar-fill.muted{background:var(--text-muted);opacity:.5}.w-bar-fill.warn{background:var(--warn)}.w-bar-text{font-variant-numeric:tabular-nums;text-align:right}.w-btn{font:inherit;font-size:.9rem;font-weight:600;color:var(--bg);background:var(--accent);border:1px solid var(--accent);border-radius:8px;padding:.45rem 1rem;cursor:pointer;justify-self:start}.w-btn:hover{opacity:.9}.w-btn.ghost{color:var(--text);background:transparent;border-color:var(--border)}.w-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(3.4rem,1fr));gap:.3rem}.w-chip{font-family:var(--font-mono);font-size:.78rem;text-align:center;padding:.2rem .1rem;border:1px solid var(--border);border-radius:5px;background:var(--bg);color:var(--text-muted)}.w-chip.dup{color:var(--bg);background:var(--warn);border-color:var(--warn);font-weight:700}.read-next{margin-top:3rem}.read-next h2{font-size:1.1rem;border:0;margin:0 0 .75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.comments{margin-top:3rem;border-top:1px solid var(--border)}.comments form{display:flex;flex-direction:column;gap:.6rem;margin-bottom:2rem}.comments input,.comments textarea{font:inherit;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:.55rem .8rem}.comments textarea{resize:vertical}.comments input:focus,.comments textarea:focus{outline:none;border-color:var(--accent)}.comment-actions{display:flex;align-items:center;gap:1rem}.comments button{font:inherit;font-weight:600;color:var(--bg);background:var(--accent);border:1px solid var(--accent);border-radius:8px;padding:.45rem 1.2rem;cursor:pointer}.comments button:hover{opacity:.9}#comment-status{color:var(--text-muted);font-size:.9rem}#comment-list{list-style:none;padding:0;margin:0}#comment-list li{padding:1rem 0;border-bottom:1px solid var(--border)}#comment-list .comment-meta{color:var(--text-muted);font-size:.875rem;margin-bottom:.35rem}#comment-list .comment-meta strong{color:var(--text)}#comment-list p{margin:0;white-space:pre-wrap}#consent-banner{position:fixed;bottom:0;left:0;right:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem 1rem;padding:.5rem 1rem;background:#111529f0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--border);font-size:.85rem;z-index:100}#consent-banner[hidden]{display:none}#consent-banner p{margin:0;color:var(--text-muted)}#consent-banner .actions{display:flex;gap:.4rem}#consent-banner button{font:inherit;font-size:.85rem;border-radius:6px;padding:.25rem .8rem;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text)}#consent-banner button.accept{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.post-list .card,.w-bar-fill,.progress{transition:none}}@media print{:root{--bg: #fff;--bg-raised: #fff;--bg-sunken: #fff;--text: #111;--text-muted: #555;--accent: #7a4d00;--change: #1a5c8a;--border: #bbb;--code-bg: #f3f3f3}html,body{background:#fff;color:#111;font-size:11pt}.site-header,.site-footer,.progress,#consent-banner,.toc,.toc-mobile,.comments,.read-next,.crumb,.anchor{display:none!important}main{max-width:none;padding:0}a{color:inherit;text-decoration:underline}.widget{display:none}pre,pre.astro-code{background:#f3f3f3!important;border-color:#bbb}pre span{color:#111!important}figure,table,.facts,.note,.summary{break-inside:avoid}h2,h3{break-after:avoid}}
