@font-face{font-family:Medeo Sans;src:url(/fonts/medeo/MedeoSansVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Medeo Sans;src:url(/fonts/medeo/MedeoSansVariable-Italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Medeo Mono;src:url(/fonts/medeo/MedeoMonoVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Medeo Mono;src:url(/fonts/medeo/MedeoMonoVariable-Italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}:root,[data-theme=light]{--bg:#ffffff;--bg-subtle:#f5f7fa;--surface:#ffffff;--border:#e3e8ef;--text:#0b0f14;--text-muted:#5b6b7c;--link:#0066cc;--fill:#0066cc;--fill-hover:#00529f;--on-fill:#ffffff;--projects:#b5f23d;--success:#157a52;--warning:#f5a623;--danger:#e5484d;--stripe:#e9eef4;--ink:#0b0f14;--paper:#f2f5f8;--sans:"Medeo Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"Medeo Mono",ui-monospace,"JetBrains Mono",Menlo,monospace;color-scheme:light}[data-theme=dark]{--bg:#0b0f14;--bg-subtle:#121820;--surface:#161d26;--border:#243040;--text:#f2f5f8;--text-muted:#9aa8b8;--link:#4da3ff;--fill:#4da3ff;--fill-hover:#7bbbff;--on-fill:#0b0f14;--projects:#c8ff4d;--success:#3dd68c;--warning:#ffb84d;--danger:#ff6369;--stripe:#1b2430;color-scheme:dark}*{box-sizing:border-box}html{text-size-adjust:100%}body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--link)}a,a:hover{text-decoration:none}a:not(:has(*)):hover{text-decoration:underline}.prose a:hover{text-decoration:underline}a :is(h2,h3,h4,.hl,.t){transition:color .15s ease}a:hover :is(h2,h3,h4,.hl,.t){color:var(--link)}button{cursor:pointer}button,input,select,textarea{font:inherit;color:inherit}img,svg{display:block}h1,h2,h3,h4,p{margin:0}:focus-visible{outline:2px solid var(--link);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.75}@keyframes ti-bounce{0%{transform:scale(1)}35%{transform:scale(1.18) translateY(-3px)}65%{transform:scale(.94)}to{transform:scale(1)}}@keyframes ti-shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}@keyframes ti-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.container{padding:0 24px}.container,.page{max-width:1280px;margin:0 auto}.page,.page-narrow{padding:40px 24px 64px}.page-narrow{max-width:1080px;margin:0 auto}.page-doc{max-width:728px;margin:0 auto;padding:48px 24px 64px}.cols{display:flex;flex-wrap:wrap;gap:48px}.col-main{flex:3 1 520px;min-width:0}.col-side{flex:1 1 280px;min-width:0;gap:32px}.col-side,.stack{display:flex;flex-direction:column}.stack{gap:24px}.show-m{display:none!important}@media (max-width:767px){.hide-m{display:none!important}.show-m{display:flex!important}.bento{grid-template-columns:minmax(0,1fr)!important}.bento>*{grid-column:auto!important;grid-row:auto!important}}@media (min-width:768px) and (max-width:1023px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))!important}}.kicker{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em}.mono{font:400 12px var(--mono)}.mono,.muted{color:var(--text-muted)}.h1{font:700 clamp(28px,4.4vw,52px) /1.1 var(--sans);text-wrap:balance}.h1,.h1-sm{letter-spacing:-.02em}.h1-sm{font:700 clamp(26px,3.2vw,40px) /1.1 var(--sans)}.h2{font:700 22px/1.2 var(--sans)}.h3{font:600 20px/1.3 var(--sans);text-wrap:pretty}.section-head{display:flex;align-items:center;gap:16px;margin-bottom:24px}.section-head .line{flex:1 1;height:1px;background:var(--border)}.section-head a,.section-head button{font-size:14px;font-weight:500;background:none;border:0;padding:0;color:var(--link)}.rule-head{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;padding-bottom:8px;border-bottom:1px solid var(--border)}.rule-head.strong{border-bottom-color:var(--text);padding-bottom:12px}.chip{display:inline-flex;align-items:center;gap:6px;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;padding:3px 10px;border-radius:999px}.chip .dot{width:8px;height:8px;border-radius:50%}.chip-lime{background:var(--projects);color:#0b0f14}.chip-outline{border:1px solid var(--border)}.tag{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border);display:inline-flex;align-items:center;font-size:14px;color:var(--text);background:none}.tag:hover{background:var(--bg-subtle);text-decoration:none}.filter{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:14px;font-weight:500}.filter.on{background:var(--text);color:var(--bg);border-color:var(--text)}.filter.sm{height:32px;padding:0 12px;font-weight:400}.btn{height:40px;padding:0 16px;border-radius:8px;border:1px solid transparent;font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:background .15s,filter .15s}.btn,.btn:hover{text-decoration:none}.btn-primary{background:var(--fill);color:var(--on-fill)}.btn-primary:hover{background:var(--fill-hover)}.btn-outline{background:none;border-color:var(--border);color:var(--text);font-weight:500}.btn-outline:hover{background:var(--bg-subtle)}.btn-ghost{background:none;border:0;padding:0;color:var(--link);font-weight:500;height:auto}.btn-lime{background:var(--projects);color:#0b0f14;border-color:#0b0f14}.btn-lime:hover{filter:brightness(.94)}.btn-ink{background:#0b0f14;color:#fff}.btn-danger{background:none;border-color:var(--danger);color:var(--text);font-weight:500}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-lg{height:48px;padding:0 20px;font-size:16px}.btn-icon{width:40px;padding:0}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-full{width:100%}.label{display:flex;flex-direction:column;gap:6px;font-weight:500;font-size:14px}.label .hint{font-weight:400;color:var(--text-muted)}.label .between{display:flex;justify-content:space-between}.input,.select,.textarea{width:100%;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:400 16px var(--sans)}.input,.select{height:48px}.textarea{padding:10px 12px;line-height:1.5;resize:vertical}.input.err,.textarea.err{border-color:var(--danger)}.err-msg{font-weight:500;color:var(--danger);font-size:13px}.radio-card{text-align:left;padding:14px;border-radius:8px;border:1px solid var(--border);background:var(--surface)}.radio-card.on{border-color:var(--text);background:var(--bg-subtle);box-shadow:inset 0 0 0 1px var(--text)}.radio-card .sub{font-size:13px;color:var(--text-muted);font-weight:400}.card{border:1px solid var(--border);border-radius:12px;background:var(--surface)}.card-hover:hover{background:var(--bg-subtle)}.row{display:flex;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--border)}.row-link{cursor:pointer;color:inherit}.row-link,.row-link:hover{text-decoration:none}.list-item{display:block;color:inherit;padding:12px 0;border-bottom:1px solid var(--border)}.list-item:hover{text-decoration:none}.list-item .t{font-weight:500;font-size:15px;line-height:1.4}.stripe{background:repeating-linear-gradient(135deg,var(--bg-subtle) 0 12px,var(--stripe) 12px 24px);display:flex;align-items:center;justify-content:center;font:400 12px var(--mono);color:var(--text-muted)}.stripe-sm{background:repeating-linear-gradient(135deg,var(--bg-subtle) 0 10px,var(--stripe) 10px 20px)}.thumb{flex:none;width:160px;max-width:35%;aspect-ratio:160/106;border-radius:8px}.avatar{border-radius:50%;border:1px solid var(--border);font-weight:600}.avatar,.logo-box{background:var(--bg-subtle);display:flex;align-items:center;justify-content:center;flex:none}.logo-box{border-radius:12px;border:1px solid var(--border);font-weight:700;font-family:var(--sans)}.ad{border:1px dashed var(--border);border-radius:8px;background:var(--bg-subtle);align-items:center;justify-content:center;font:400 12px var(--mono);color:var(--text-muted)}.ad,.tabs{display:flex}.tabs{gap:4px;border-bottom:1px solid var(--border);overflow-x:auto;margin-bottom:8px}.tab{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:12px 14px;font-weight:500;color:var(--text-muted);white-space:nowrap}.tab.on{border-bottom-color:var(--text);color:var(--text);font-weight:600}.tab .count{font:400 12px var(--mono);color:var(--text-muted)}.seg{display:flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:8px}.seg button{height:36px;padding:0 14px;border-radius:6px;border:0;background:transparent;color:var(--text);font-weight:500;font-size:14px}.seg button.on{background:var(--text);color:var(--bg)}.upvote{flex:none;width:56px;padding:8px 0;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:2px;font:500 14px var(--mono);transition:background .15s}.upvote .arrow{font-size:11px}.upvote.sm{width:48px;padding:6px 0;font-size:13px}.upvote.sm .arrow{font-size:10px}.upvote.on{background:var(--projects);color:#0b0f14;border-color:#0b0f14}.upvote.bump{animation:ti-bounce .25s ease-out}.upvote:active{transform:scale(.9)}.upvote-wide{height:56px;padding:0 20px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text);display:inline-flex;align-items:center;gap:10px;font:500 16px var(--mono)}.upvote-wide.on{background:var(--projects);color:#0b0f14;border-color:#0b0f14}.upvote-wide.bump{animation:ti-bounce .25s ease-out}.prose{font-size:18px;line-height:1.65}.prose p{margin:0 0 24px}.prose h2{margin:40px 0 16px;font:700 26px/1.2 var(--sans);scroll-margin-top:88px}.prose blockquote{margin:32px 0;padding:4px 0 4px 24px;border-left:3px solid var(--text);font:600 22px/1.4 var(--sans);text-wrap:pretty}.prose blockquote footer{font:400 14px var(--sans);color:var(--text-muted);margin-top:10px}.prose pre{margin:0 0 32px;padding:16px 20px;border-radius:8px;background:#0b0f14;color:#f2f5f8;font:400 14px/1.6 var(--mono);overflow-x:auto}.prose table{width:100%;border-collapse:collapse;font-size:16px}.prose th{text-align:left;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:10px 12px;border-bottom:1px solid var(--text)}.prose td{padding:12px;border-bottom:1px solid var(--border)}.prose td.num,.prose th.num{text-align:right;font-family:var(--mono);font-size:15px}.switch{flex:none;width:48px;height:28px;border-radius:999px;border:1px solid var(--border);background:var(--bg-subtle);padding:2px;display:flex;justify-content:flex-start}.switch span{width:22px;height:22px;border-radius:50%;background:var(--text-muted)}.switch.on{background:var(--projects);border-color:#0b0f14;justify-content:flex-end}.switch.on span{background:#0b0f14}.toast{left:50%;bottom:88px;transform:translateX(-50%);z-index:60;gap:12px;padding:12px 16px;border-radius:8px;background:var(--text);color:var(--bg);font-size:15px;font-weight:500;box-shadow:0 8px 24px rgba(0,0,0,.2);animation:ti-in .2s}.modal-bg,.toast{position:fixed;display:flex;align-items:center}.modal-bg{inset:0;z-index:50;background:rgba(11,15,20,.55);justify-content:center;padding:24px}.modal{width:100%;max-width:440px;padding:28px;border-radius:12px;background:var(--surface);color:var(--text);display:flex;flex-direction:column;gap:14px;animation:ti-in .2s}.empty{padding:64px 24px;text-align:center;border:1px dashed var(--border);border-radius:12px;margin-top:24px}.skeleton{background:linear-gradient(90deg,var(--bg-subtle) 0,var(--stripe) 50%,var(--bg-subtle) 100%);background-size:400px 100%;animation:ti-shimmer 1.2s linear infinite;border-radius:8px}.sticky-side{position:-webkit-sticky;position:sticky;top:88px}.scroll-x{display:flex;gap:16px;overflow-x:auto;padding-bottom:4px}.band-lime{background:var(--projects);color:#0b0f14;border-bottom:1px solid #0b0f14}.band-dark{background:#0b0f14;color:#f2f5f8;border-bottom:1px solid #243040}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:24px;gap:24px}.grid-fill{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:24px}.grid-fill,.lead-row{display:grid;gap:24px}.lead-row{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:24px;padding-top:24px;border-top:1px solid var(--border)}.lead-card{display:flex;flex-direction:column;gap:14px;min-width:0;color:inherit}.lead-card-img{aspect-ratio:16/9;border-radius:10px}.lead-card-body{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}@media (max-width:767px){.lead-row{grid-template-columns:minmax(0,1fr);gap:0;padding-top:0;border-top:0}.lead-card{flex-direction:row;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid var(--border)}.lead-card-img{flex:none;width:112px;aspect-ratio:4/3;border-radius:8px}.lead-card-body{gap:6px}.lead-card .h3{font-size:16px;line-height:1.35}}.cat-thumb{display:block;flex:none;width:88px;aspect-ratio:4/3;border-radius:8px}