:root{--bg: #0a0a0a;--bg2: #111111;--bg3: #171717;--fg: #ededed;--fg2: #a1a1a1;--muted: #6b6b6b;--rule: #222222;--rule2: #2e2e2e;--accent: #ededed;--cell0: #1a1a1a;--cell1: #2a2a2a;--cell2: #4a4a4a;--cell3: #8a8a8a;--glow: rgba(255,255,255,.06);--navbg: rgba(10,10,10,.75);--sel: #333;color-scheme:dark;--sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--w: 68rem}html[data-theme=light]{--bg: #fafafa;--bg2: #ffffff;--bg3: #f0f0f0;--fg: #111111;--fg2: #555555;--muted: #8a8a8a;--rule: #e6e6e6;--rule2: #d4d4d4;--accent: #111111;--cell0: #ebebeb;--cell1: #cfcfcf;--cell2: #9a9a9a;--cell3: #4a4a4a;--glow: rgba(0,0,0,.04);--navbg: rgba(250,250,250,.8);--sel: #ddd;color-scheme:light}html{transition:background .3s ease}body{transition:background .3s ease,color .3s ease}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg2);font-family:var(--sans);font-size:15.5px;line-height:1.7;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}a{color:inherit;text-decoration:none;transition:color .15s ease}h1,h2,h3{color:var(--fg);font-weight:500;letter-spacing:-.02em;line-height:1.2;margin:0}::selection{background:var(--sel);color:var(--fg)}.nav{position:sticky;top:0;z-index:10;backdrop-filter:blur(12px);background:var(--navbg);border-bottom:1px solid var(--rule)}.nav .in{max-width:var(--w);margin:0 auto;padding:0 2rem;height:3.25rem;display:flex;align-items:center;gap:1rem}.nav .brand{color:var(--fg);font-weight:500;letter-spacing:-.01em;font-size:.95rem}.nav ul{list-style:none;display:flex;gap:.25rem;margin:0;padding:0}.nav li a{display:block;padding:.35rem .6rem;border-radius:6px;font-size:.85rem;color:var(--fg2)}.nav li a:hover,.nav li a.on{color:var(--fg);background:var(--bg3)}.nav .right{display:flex;align-items:center;gap:.5rem;margin-left:auto}.nav ul{margin-left:auto}.theme{background:none;border:1px solid var(--rule);color:var(--fg2);border-radius:8px;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.theme:hover{color:var(--fg);border-color:var(--rule2);transform:rotate(15deg)}.theme svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}html[data-theme=light] .theme .sun{display:none}html:not([data-theme=light]) .theme .moon{display:none}.nav .burger{display:none;background:none;border:1px solid var(--rule2);color:var(--fg);border-radius:6px;padding:.3rem .5rem;font:inherit;font-size:.8rem}@media(max-width:40rem){.nav ul{display:none;position:absolute;top:3.25rem;left:0;right:0;flex-direction:column;background:var(--bg2);border-bottom:1px solid var(--rule);padding:.5rem 1rem .75rem}.nav.open ul{display:flex}.nav .burger{display:block}}main{max-width:var(--w);margin:0 auto;padding:4.5rem 2rem 6rem}.detail{max-width:46rem}section{margin-bottom:5.5rem;scroll-margin-top:5rem}section{display:grid;grid-template-columns:1fr;gap:1rem 3rem;padding-top:2rem;border-top:1px solid var(--rule)}@media(min-width:56rem){section{grid-template-columns:11rem 1fr}}section>h2{font-size:.85rem;font-weight:500;color:var(--fg);letter-spacing:.01em;margin:0}section>h2 small{display:block;color:var(--muted);font-weight:400;margin-top:.3rem;line-height:1.5}section>.body{min-width:0}.hero{margin-bottom:5rem}.hero h1{font-size:2.6rem;font-weight:500;margin-bottom:.4rem}.hero .sub{font-size:1.15rem;color:var(--fg);font-weight:400;margin-bottom:1.25rem}.hero p{max-width:64ch;font-size:1.05rem;margin:0 0 1rem}.icons{display:flex;gap:.35rem;margin-top:1.5rem}.icons a{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:8px;border:1px solid var(--rule);color:var(--fg2);transition:all .15s ease}.icons a:hover{color:var(--fg);border-color:var(--rule2);background:var(--bg3);transform:translateY(-1px)}.icons svg{width:17px;height:17px;fill:currentColor}.prose p{margin:0 0 1rem;max-width:70ch}.prose a{color:var(--fg);border-bottom:1px solid var(--rule2)}.prose a:hover{border-color:var(--fg)}.prose h2,.prose h3{margin:2.25rem 0 .75rem;font-size:1.1rem}.prose ul{padding-left:1.1rem}.prose li{margin-bottom:.4rem}.prose blockquote{margin:1.25rem 0;padding-left:1rem;border-left:1px solid var(--rule2);color:var(--fg)}.prose code{font-family:var(--mono);font-size:.82em;background:var(--bg3);border:1px solid var(--rule);padding:.1em .35em;border-radius:4px}.prose pre{overflow-x:auto;padding:1rem;background:var(--bg2);border:1px solid var(--rule);border-radius:8px}.prose pre code{background:none;border:0;padding:0}.prose table{border-collapse:collapse;width:100%;font-size:.92rem}.prose td,.prose th{text-align:left;padding:.5rem .75rem .5rem 0;border-bottom:1px solid var(--rule);vertical-align:top}.prose strong{color:var(--fg);font-weight:500}.featured{border:1px solid var(--rule);background:linear-gradient(180deg,var(--bg2),var(--bg));border-radius:12px;padding:1.75rem 2rem;margin-bottom:1.25rem;transition:border-color .2s}.featured:hover{border-color:var(--rule2)}.featured h3{font-size:1.3rem;margin-bottom:.5rem}.featured p{margin:0 0 1rem;max-width:70ch}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem;margin:1.25rem 0}.stat b{display:block;color:var(--fg);font-size:1.35rem;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat span{font-size:.78rem;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{font-size:.72rem;padding:.15rem .55rem;border-radius:999px;border:1px solid var(--rule2);color:var(--fg2)}.more{display:inline-flex;gap:.4rem;color:var(--fg);font-size:.9rem;margin-top:.5rem;border-bottom:1px solid var(--rule2)}.more:hover{border-color:var(--fg)}.grid2{display:grid;grid-template-columns:1fr;gap:.9rem;margin-top:1rem}@media(min-width:48rem){.grid2{grid-template-columns:1fr 1fr}}.pcard{display:flex;flex-direction:column;gap:.4rem;padding:1.25rem;border:1px solid var(--rule);border-radius:12px;background:var(--bg2);transition:border-color .15s,transform .15s}.pcard:hover{border-color:var(--rule2);transform:translateY(-1px)}.pcard .when{font-size:.72rem;color:var(--muted)}.pcard h3{font-size:1.05rem;display:flex;justify-content:space-between;align-items:center}.pcard h3 .arr{color:var(--muted);opacity:0;transition:all .15s}.pcard:hover h3 .arr{opacity:1}.pcard p{margin:0 0 .5rem;font-size:.92rem;flex:1}.row{display:grid;grid-template-columns:1fr;gap:.15rem 1.25rem;padding:1rem .9rem;margin:0 -.9rem;border-radius:10px;transition:background .15s ease}@media(min-width:40rem){.row{grid-template-columns:7rem 1fr}}.row:hover{background:var(--bg2)}.row .when{font-size:.75rem;color:var(--muted);padding-top:.25rem;font-variant-numeric:tabular-nums}.row h3{font-size:1rem;display:flex;align-items:center;gap:.4rem}.row h3 .arr{opacity:0;transform:translate(-4px);transition:all .15s ease;color:var(--muted)}.row:hover h3 .arr{opacity:1;transform:none}.row p{margin:.25rem 0 .5rem;font-size:.93rem;max-width:60ch}ol.timeline{list-style:none;padding:0;margin:0}ol.timeline li{display:grid;grid-template-columns:1fr;gap:.2rem 1.25rem;padding:1.4rem 0;border-top:1px solid var(--rule)}@media(min-width:40rem){ol.timeline li{grid-template-columns:8rem 1fr}}ol.timeline li:first-child{border-top:0;padding-top:0}ol.timeline .when{font-size:.75rem;color:var(--muted);padding-top:.25rem;line-height:1.5}ol.timeline h3{font-size:1rem}ol.timeline p{margin:.35rem 0 0;font-size:.95rem;max-width:70ch}.lesson{color:var(--fg)}.heat{border:1px solid var(--rule);border-radius:12px;padding:1.1rem 1.25rem 1rem;background:var(--bg2)}.heat .top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.heat .title{font-size:.8rem;color:var(--muted)}.heat .status{font-size:.75rem;color:var(--muted);display:inline-flex;align-items:center;gap:.4rem}.heat .dot{width:6px;height:6px;border-radius:50%;background:var(--muted)}.heat .dot.live{background:#3ddc84;box-shadow:0 0 0 3px #3ddc8426}.heat .body{display:grid;grid-template-columns:1fr;gap:1.25rem;align-items:center}@media(min-width:40rem){.heat .body{grid-template-columns:12rem 1fr;gap:2.5rem}}.heat .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}@media(min-width:40rem){.heat .kpis{grid-template-columns:1fr;gap:.9rem}}.heat .kpi b{display:block;color:var(--fg);font-size:1.35rem;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.heat .kpi span{font-size:.75rem;color:var(--muted)}.heat .gridwrap{display:flex;flex-direction:column;gap:.8rem}.heat .grid{--c: 30px;display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,var(--c));grid-auto-columns:var(--c);gap:5px;width:max-content;margin:0 auto}.heat .d,.heat .pad{width:var(--c);height:var(--c);border-radius:5px}.heat .d{background:var(--cell0);transition:transform .1s,outline .1s;cursor:default}.heat .d:hover{transform:scale(1.12);outline:1px solid var(--fg)}.heat .d.sel{outline:1px solid var(--fg)}.heat .l1{background:var(--cell1)}.heat .l2{background:var(--cell2)}.heat .l3{background:var(--cell3)}.heat .l4{background:var(--fg)}.heat .bottom{display:flex;justify-content:space-between;align-items:center;font-size:.76rem;color:var(--muted);gap:1rem;flex-wrap:wrap}.heat .bottom .sw{display:inline-flex;gap:3px;align-items:center;margin:0 .35rem}.heat .bottom .sw i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--cell0)}.heat .detail{color:var(--fg);min-height:1.3em}.back{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--muted);margin-bottom:2rem}.back:hover{color:var(--fg)}.detail h1{font-size:1.9rem;margin-bottom:.5rem}.detail .meta{font-size:.85rem;color:var(--muted);margin-bottom:1.25rem}footer.site{max-width:var(--w);margin:0 auto;padding:0 1.25rem 3rem;font-size:.8rem;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}@keyframes rise{0%{opacity:0;transform:translateY(14px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}@keyframes pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}.hero>*{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.hero>:nth-child(1){animation-delay:.05s}.hero>:nth-child(2){animation-delay:.15s}.hero>:nth-child(3){animation-delay:.25s}.hero>:nth-child(4){animation-delay:.35s}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}.heat .d{animation:pop .35s cubic-bezier(.2,.7,.2,1) both}.spot{position:relative;overflow:hidden}.spot:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),var(--glow),transparent 45%);opacity:0;transition:opacity .3s;pointer-events:none}.spot:hover:before{opacity:1}.icons a{transition:transform .25s cubic-bezier(.2,.7,.2,1),background .2s,border-color .2s,color .2s}.nav li a{position:relative}.nav li a:after{content:"";position:absolute;left:.6rem;right:.6rem;bottom:.15rem;height:1px;background:var(--fg);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav li a.on:after{transform:scaleX(1)}.hero .sub{position:relative;display:inline-block}.hero .sub:after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:linear-gradient(90deg,var(--fg),transparent);transform:scaleX(0);transform-origin:left;animation:draw .9s .7s cubic-bezier(.2,.7,.2,1) forwards}@keyframes draw{to{transform:scaleX(1)}}.pcard,.featured,.heat{transform-style:preserve-3d}@media(prefers-reduced-motion:reduce){.hero>*,.heat .d,.hero .sub:after{animation:none!important}.reveal{opacity:1;transform:none;transition:none}*{transition-duration:0s!important}}
