html:has(.td){background:#f4f5f7}html:has(.td) body{background:#f4f5f7}[data-theme=dark]:has(.td){background:#0b0c10}[data-theme=dark]:has(.td) body{background:#0b0c10}.td{--bg:#f4f5f7;--surface:#fff;--ink:#0a0c12;--muted:#565d6d;--line:#e1e3e9;--line-2:#cdd1da;--accent:#ff2d2d;--accent-ink:#d41a1a;--on-accent:#fff;--accent-soft:#ff2d2d1a;--dotc:#0a0c1214;--term:#0e1016;--paper:#fff;--grid:#eef0f3;--art-ink:#0a0c12;--art-muted:#6b7280;--tone:#dde0e6;--tone-2:#9aa1ae;--card:#fff;--shadow:0 1px 2px #0a0c120d, 0 18px 40px -18px #0a0c1238;--t-violet:#f0eaff;--t-amber:#fff3dc;--t-emerald:#e3f7ef;--t-orange:#ffebdd;--t-cyan:#e0f6fa;background-color:var(--bg);background-image:radial-gradient(var(--dotc) 1px, transparent 1.3px);color:var(--ink);-webkit-font-smoothing:antialiased;background-size:24px 24px;min-height:100vh;font-family:Be Vietnam Pro,system-ui,sans-serif;transition:background-color .3s,color .3s;overflow-x:clip}[data-theme=dark] .td{--bg:#0b0c10;--surface:#14161c;--ink:#edeef2;--muted:#9ba2b3;--line:#23262f;--line-2:#323644;--accent:#ff4a44;--accent-ink:#ff6b63;--on-accent:#fff;--accent-soft:#ff4a4424;--dotc:#ffffff0f;--term:#050608;--paper:#14161c;--grid:#1d2028;--art-ink:#edeef2;--art-muted:#8a90a0;--tone:#2c303b;--tone-2:#5b6273;--card:#1b1e25;--shadow:0 1px 2px #0006, 0 18px 44px -18px #000c;--t-violet:#1e1a33;--t-amber:#2a2214;--t-emerald:#11261f;--t-orange:#2b1b12;--t-cyan:#0f2429}.td ::selection{background:var(--accent);color:var(--on-accent)}.td a{color:inherit;text-decoration:none}.td a:focus-visible,.td button:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:10px}.td .x{letter-spacing:-.05em;font-weight:800;line-height:1}.td .cx{letter-spacing:-.035em;font-weight:700;line-height:1.18}.td .mono{letter-spacing:0;font-family:JetBrains Mono,ui-monospace,monospace}.td .m{font-size:12.5px}.td .num{font-variant-numeric:tabular-nums}.td .wrap{box-sizing:border-box;max-width:1360px;margin:0 auto;padding:0 40px}.td .grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:64px 28px;display:grid}.td .tile{flex-direction:column;gap:18px;display:flex}.td .art{--tick:var(--tone-2);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);border-radius:22px;transition:box-shadow .5s,transform .6s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.td .art svg{width:100%;height:100%;transition:transform .9s cubic-bezier(.16,1,.3,1);display:block}.td .art:after{content:"";pointer-events:none;opacity:0;background:linear-gradient(var(--tick), var(--tick)) top left/16px 1.5px no-repeat, linear-gradient(var(--tick), var(--tick)) top left/1.5px 16px no-repeat, linear-gradient(var(--tick), var(--tick)) top right/16px 1.5px no-repeat, linear-gradient(var(--tick), var(--tick)) top right/1.5px 16px no-repeat, linear-gradient(var(--tick), var(--tick)) bottom left/16px 1.5px no-repeat, linear-gradient(var(--tick), var(--tick)) bottom left/1.5px 16px no-repeat, linear-gradient(var(--tick), var(--tick)) bottom right/16px 1.5px no-repeat, linear-gradient(var(--tick), var(--tick)) bottom right/1.5px 16px no-repeat;transition:opacity .4s,inset .6s cubic-bezier(.16,1,.3,1);position:absolute;inset:10px}.td .tile:hover .art{box-shadow:var(--shadow);transform:translateY(-4px)}.td .tile:hover .art svg{transform:scale(1.04)}.td .tile:hover .art:after{opacity:1;inset:16px}.td .fig{z-index:2;background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line);border-radius:6px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:500;position:absolute;top:16px;left:16px}.td .fig b{color:var(--accent-ink);font-weight:600}.td .tile .t{transition:color .2s}.td .tile:hover .t{color:var(--accent)}.td .meta{color:var(--muted);align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.td .sep{opacity:.5}.td .dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.td .navlink{color:var(--muted);border-radius:10px;padding:10px 14px;font-size:15px;font-weight:500}.td .navlink:hover{color:var(--ink);background:var(--accent-soft)}.td .navlink[aria-current=page]{color:var(--ink)}.td .iconbtn{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink);cursor:pointer;border-radius:12px;place-items:center;display:grid}.td .iconbtn:hover{border-color:var(--line-2)}.td .cmd{border:1px solid var(--line-2);background:var(--surface);border-radius:12px;align-items:center;gap:8px;min-height:44px;padding:0 16px;font-family:JetBrains Mono,monospace;font-size:13.5px;font-weight:500;display:inline-flex}.td .cmd:hover{border-color:var(--accent);color:var(--accent-ink)}.td .spin{transform-box:fill-box;transform-origin:50%;animation:30s linear infinite spin}.td .tile:hover .spin{animation-duration:6s}.td .floaty{transform-box:fill-box;transform-origin:50%;animation:5s ease-in-out infinite floaty}.td .pulse{transform-box:fill-box;transform-origin:50%;animation:3.6s cubic-bezier(.16,1,.3,1) infinite pulse}.td .draw{stroke-dasharray:1200;stroke-dashoffset:0}.td .tile:hover .draw{animation:1.6s cubic-bezier(.16,1,.3,1) forwards redraw}.td .caret{vertical-align:-.2em;background:#ff5a52;width:.6em;height:1.15em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes floaty{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-10px)rotate(8deg)}}@keyframes pulse{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.5)}}@keyframes redraw{0%{stroke-dashoffset:1200px}to{stroke-dashoffset:0}}@keyframes marq{to{transform:translate(-50%)}}.td .marq{width:max-content;animation:52s linear infinite marq;display:flex}.td .marq-box:hover .marq,.td .marq-box:focus-within .marq{animation-play-state:paused}.td .mq{white-space:nowrap;cursor:pointer;align-items:center;gap:14px;margin-right:40px;padding:6px 0;display:inline-flex}.td .mq-t{letter-spacing:-.035em;text-underline-offset:6px;font-size:28px;font-weight:700;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:2px;transition:color .2s,text-decoration-color .2s}.td .mq:hover .mq-t,.td .mq:focus-visible .mq-t{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.td .sgrid{grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;display:grid}.td .sc{background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);box-shadow:inset 0 0 0 1px var(--line);background-position:-1px -1px;background-size:40px 40px;border-radius:22px;flex-direction:column;gap:28px;padding:28px;transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s;display:flex;position:relative}.td .sc:hover{box-shadow:inset 0 0 0 1.5px var(--accent), var(--shadow);transform:translateY(-4px)}.td .sc.draft{box-shadow:none;outline:1.5px dashed var(--line-2);outline-offset:-1.5px;background-image:none}.td .sc.draft:hover{outline-color:var(--accent);box-shadow:var(--shadow)}.td .sc-top{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-family:JetBrains Mono,monospace;font-size:12.5px;display:flex}.td .chip{background:var(--surface);box-shadow:0 0 0 1px var(--line);color:var(--ink);border-radius:6px;align-items:center;gap:7px;padding:4px 9px;font-weight:500;display:inline-flex}.td .glyph{flex:none;transition:transform .7s cubic-bezier(.16,1,.3,1)}.td .sc:hover .glyph{transform:rotate(-6deg)scale(1.05)}.td .sc:hover .sname{color:var(--accent)}.td .sname{transition:color .2s}.td .ls{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.td .ls li{border-bottom:1px solid var(--line);letter-spacing:-.01em;grid-template-columns:96px minmax(0,1fr);align-items:baseline;gap:14px;padding:11px 0;font-size:15.5px;font-weight:600;display:grid}.td .ls .mono{color:var(--muted);font-size:12px;font-weight:400}.td .dist{border-radius:5px;gap:3px;height:10px;display:flex;overflow:hidden}.td .prog{background:var(--tone);border-radius:3px;height:6px;overflow:hidden}.td .prog span{background:var(--accent);border-radius:3px;height:100%;display:block}.td .pano{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.td .pano svg{width:100%;height:auto;min-height:340px;max-height:640px;display:block}.td .train{animation:42s linear infinite train}@keyframes train{0%{transform:translate(-460px)}to{transform:translate(1480px)}}.td .pill{vertical-align:middle;border-radius:999px;height:.74em;margin:0 .1em;display:inline-block}.td .arch{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px;display:grid}.td .arow{grid-template-columns:84px minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:18px 0 18px 34px;display:grid;position:relative}.td .arow:before{content:"";background:var(--line-2);width:2px;position:absolute;top:0;bottom:0;left:6px}.td .arow:after{content:"";background:var(--bg);border:2.5px solid var(--c);border-radius:50%;width:10px;height:10px;position:absolute;top:23px;left:0}.td .arow:hover:after{background:var(--c)}.td .arow:hover .t2{color:var(--accent-ink)}.td .circ{background:var(--accent);width:56px;height:56px;color:var(--on-accent);border-radius:50%;flex:none;place-items:center;transition:transform .5s cubic-bezier(.16,1,.3,1);display:grid}.td .tile:hover .circ{transform:translate(6px)}.td .span-8{grid-column:span 8}.td .span-4{grid-column:span 4}.td .span-7{grid-column:span 7}.td .span-5{grid-column:span 5}@media (max-width:900px){.td .wrap{padding:0 16px}.td .grid{gap:44px 16px}.td .span-8,.td .span-4,.td .span-7,.td .span-5{grid-column:1/-1}.td .sgrid{gap:14px}.td .sc{padding:22px}.td .ls li{grid-template-columns:84px minmax(0,1fr)}.td .arch{grid-template-columns:1fr}.td .hide-sm{display:none}.td .pad-top{padding-top:0!important}}@media (prefers-reduced-motion:reduce){.td .spin,.td .floaty,.td .pulse,.td .marq,.td .caret{animation:none}.td .train{animation:none;transform:translate(120px)}.td .art,.td .art svg,.td .sc,.td .glyph,.td .circ{transition:none}}.td .ic-sun{display:none}[data-theme=dark] .td .ic-sun{display:block}[data-theme=dark] .td .ic-moon{display:none}.td .accent{color:var(--accent)}.td .accent-ink{color:var(--accent-ink)}.td .muted{color:var(--muted)}.td .dot-sm{width:7px;height:7px}.td .sec-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.td .sec-title{margin:0;font-size:clamp(44px,5.4vw,80px);line-height:1.08}.td .sec-lead{flex-direction:column;flex:1;gap:12px;display:flex}.td .sec-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.td .sec-row .sec-title{white-space:nowrap}.td .sec-row .cmd{flex:none}@media (max-width:480px){.td .sec-row .sec-title{font-size:clamp(30px,9.4vw,44px)}.td .sec-row .cmd{gap:6px;padding:0 12px;font-size:12.5px}}.td .sec-note{color:var(--muted);max-width:28em;margin:0;font-size:16px}.td .sec-note-mono{color:var(--muted);margin:0;font-size:13px}.td .tags{flex-wrap:wrap;gap:8px;display:flex}.td .tag{background:var(--accent-soft);color:var(--accent-ink);border-radius:6px;padding:4px 9px;font-size:12px}.td .crumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:13px;display:flex}.td .crumb a{padding:6px 0}.td .crumb a:hover{color:var(--accent-ink)}.td .crumb-here{color:var(--ink);overflow-wrap:anywhere}@media (max-width:560px){.td section:is(.art-head,.ser-head,.ov-head,.ar-head,.ab-head,.nf-head){padding-top:24px}.td nav.crumb+*{margin-top:24px}}.td .site-head{z-index:10;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0}.td .site-head-in{justify-content:space-between;align-items:center;gap:16px;height:68px;display:flex}.td .brand{align-items:center;gap:10px;padding:8px 0;display:inline-flex}.td .brand-name{letter-spacing:-.03em;font-size:19px;font-weight:800}.td .brand-path{color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:3px 8px;font-size:12.5px}.td .site-nav{align-items:center;gap:4px;display:flex}.td .site-nav .iconbtn:first-of-type{margin-right:8px}.td .nav-rule{background:var(--line);width:1px;height:24px;margin:0 10px}.td .navmenu-btn{all:unset;box-sizing:border-box;border:1px solid var(--line);background:var(--surface);height:44px;color:var(--ink);cursor:pointer;border-radius:12px;align-items:center;gap:6px;margin-right:8px;padding:0 14px;font-size:14px;font-weight:600;display:none}@media (max-width:900px){.td .navmenu-btn{display:inline-flex}}.td .navmenu-btn:hover{border-color:var(--line-2)}.td .navmenu-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.td .navmenu{border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--shadow);box-sizing:border-box;border-radius:16px;min-width:220px;margin:0;padding:8px;font-family:Be Vietnam Pro,system-ui,sans-serif}.td .navmenu:popover-open{inset:auto;top:calc(env(safe-area-inset-top,0px) + 76px);right:max(16px, env(safe-area-inset-right,0px));flex-direction:column;display:flex;position:fixed}.td .navmenu::backdrop{background:#0a0c1240}.td .navmenu-cmd{color:var(--muted);margin:0;padding:8px 12px 6px;font-size:12.5px}.td .navmenu a{min-height:44px;color:var(--muted);border-radius:10px;align-items:center;padding:0 12px;font-size:16px;font-weight:500;display:flex}.td .navmenu a:hover,.td .navmenu a[aria-current=page]{color:var(--ink);background:var(--accent-soft)}.td .navmenu .navmenu-rss{border-top:1px solid var(--line);border-radius:0 0 10px 10px;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:14px}.td .site-foot{color:#0a0c12;background:#ff2d2d}.td .foot-in{padding-top:96px;padding-bottom:32px}.td .foot-cta{align-items:center;gap:.25em;font-size:clamp(56px,9vw,150px);line-height:1.05;display:inline-flex}.td .foot-row{border-top:1px solid #0a0c1240;flex-wrap:wrap;justify-content:space-between;gap:24px;margin-top:72px;padding-top:22px;font-size:15px;font-weight:500;display:flex}.td .foot-nav{flex-wrap:wrap;gap:28px;display:flex}.td .foot-nav a{padding:8px 0}.td .site-foot a:focus-visible{outline-color:#0a0c12}.td .status-bar{color:#ffffffc7;background:#0a0c12;font-size:12px}.td .status-in{flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:9px;padding-bottom:9px;display:flex}.td .status-grp{flex-wrap:wrap;gap:18px;display:inline-flex}.td .status-branch{align-items:center;gap:6px;display:inline-flex}.td .status-branch .dot{background:#34d399;width:7px;height:7px}
