:root{--paper:oklch(0.95 0.018 80);--paper-2:oklch(0.92 0.022 75);--card:oklch(0.99 0.006 85);--ink:oklch(0.22 0.015 60);--ink-2:oklch(0.42 0.015 60);--ink-3:oklch(0.60 0.015 60);--rule:oklch(0.82 0.02 70);--chip:oklch(0.88 0.02 70);--red:oklch(0.55 0.18 25);--blue:oklch(0.48 0.14 245);--green:oklch(0.50 0.14 150);--purple:oklch(0.48 0.15 300);--mustard:oklch(0.68 0.14 80);--teal:oklch(0.50 0.10 200);--sans:"Inter", ui-sans-serif, system-ui, sans-serif;--body:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--serif:"Fraunces", ui-serif, Georgia, serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--cat:var(--ink-3)}[data-theme=dark]{--paper:oklch(0.20 0.012 60);--paper-2:oklch(0.16 0.012 60);--card:oklch(0.26 0.014 60);--ink:oklch(0.94 0.008 75);--ink-2:oklch(0.78 0.008 65);--ink-3:oklch(0.58 0.01 60);--rule:oklch(0.34 0.012 60);--chip:oklch(0.32 0.014 60)}*,*::before,*::after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);background-image:radial-gradient(1200px 600px at 10% -10%,oklch(1 0 0/.35),transparent 60%),radial-gradient(800px 500px at 90% 110%,oklch(0 0 0/.05),transparent 60%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}[data-theme=dark] body{background-image:radial-gradient(1200px 600px at 10% -10%,oklch(.35 .03 60/.4),transparent 60%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:2px}.bar{display:flex;align-items:center;gap:16px;max-width:1240px;margin:0 auto;padding:20px 28px 0}.brand{font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;color:var(--ink)}.brand a{color:inherit;display:flex;align-items:center;gap:10px}.brand__stamp{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:3px 7px;border:1px solid var(--ink);color:var(--ink);transform:rotate(-2deg)}.nav{margin-left:auto;display:flex;gap:2px;font-family:var(--mono);font-size:12px;letter-spacing:.04em}.nav a{padding:8px 12px;color:var(--ink-2);border-radius:3px;text-transform:uppercase}.nav a:hover,.nav a[aria-current]{background:var(--chip);color:var(--ink)}.iconbtn{appearance:none;border:1px solid var(--rule);background:0 0;color:var(--ink-2);width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.iconbtn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.iconbtn svg{width:14px;height:14px}.hero{max-width:1240px;margin:32px auto 8px;padding:0 28px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end}.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(40px,6vw,82px);line-height:.98;letter-spacing:-.03em;margin:0;color:var(--ink);font-variation-settings:"opsz" 144;text-wrap:balance}.hero h1 em{font-style:italic;color:var(--red);font-weight:500}.hero__tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;text-align:right;line-height:1.6}.hero__tag b{color:var(--ink);font-weight:500}.section-hero{max-width:1240px;margin:32px auto 8px;padding:0 28px}.section-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(32px,5vw,56px);line-height:1.04;letter-spacing:-.02em;margin:0;color:var(--ink);font-variation-settings:"opsz" 120;text-wrap:balance}.section-hero__count{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:8px}.section-hero__content{margin-top:20px;max-width:68ch}.section-hero__content p{color:var(--ink-2);font-size:15px;line-height:1.6;margin:0 0 12px}.legend{max-width:1240px;margin:24px auto 0;padding:0 28px;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--ink-2)}.legend .lbl{color:var(--ink-3);text-transform:uppercase;margin-right:6px;letter-spacing:.1em}.tag{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border:1px solid var(--rule);border-radius:999px;background:var(--card);color:var(--ink-2);cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink-3)}.tag.active{border-color:var(--ink);color:var(--ink)}.tag[data-cat=magic_cap]::before{background:var(--purple)}.tag[data-cat=mechanical_keyboards]::before{background:var(--blue)}.tag[data-cat="3d_printing"]::before{background:var(--green)}.tag[data-cat=software]::before{background:var(--red)}.tag[data-cat=books]::before{background:var(--mustard)}.tag[data-cat=ham_radio]::before{background:var(--teal)}.tag[data-cat=motorcycling]::before{background:var(--teal)}.bench{max-width:1240px;margin:32px auto 72px;padding:0 28px;display:grid;grid-template-columns:repeat(12,1fr);gap:22px}.item{position:relative;background:var(--card);border:1px solid oklch(0 0 0/.08);box-shadow:0 1px oklch(1 0 0/.8)inset,0 1px 2px oklch(0 0 0/.08),0 12px 24px -12px oklch(0 0 0/.18),0 2px 6px -3px oklch(0 0 0/.15);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;color:var(--ink)}[data-theme=dark] .item{border-color:oklch(1 0 0/.06);box-shadow:0 12px 24px -10px oklch(0 0 0/.45)}.item:hover{transform:translateY(-3px);box-shadow:0 1px oklch(1 0 0/.9)inset,0 2px 4px oklch(0 0 0/.08),0 22px 44px -18px oklch(0 0 0/.25),0 6px 14px -6px oklch(0 0 0/.18);z-index:3}.item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--ink-3)}.item--purple::before{background:var(--purple)}.item--blue::before{background:var(--blue)}.item--green::before{background:var(--green)}.item--red::before{background:var(--red)}.item--mustard::before{background:var(--mustard)}.item--teal::before{background:var(--teal)}.item__kind{position:absolute;top:-11px;left:18px;z-index:1;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 10px;background:var(--paper);color:var(--ink);border:1px solid oklch(0 0 0/.1)}[data-theme=dark] .item__kind{background:var(--paper-2);border-color:oklch(1 0 0/.08)}.item--purple .item__kind{color:var(--purple)}.item--blue .item__kind{color:var(--blue)}.item--green .item__kind{color:var(--green)}.item--red .item__kind{color:var(--red)}.item--mustard .item__kind{color:var(--mustard)}.item--teal .item__kind{color:var(--teal)}.item__img{position:relative;aspect-ratio:4/3;overflow:hidden;border-bottom:1px solid oklch(0 0 0/.08);background-size:cover;background-position:50%}.item__img .cap{position:absolute;left:12px;bottom:10px;z-index:2;font-family:var(--mono);font-size:10px;color:oklch(1 0 0/.9);letter-spacing:.04em;background:oklch(0 0 0/.35);padding:2px 6px}.bg-blue{background:linear-gradient(135deg,oklch(.52 .12 250),oklch(.28 .06 250))}.bg-green{background:linear-gradient(135deg,oklch(.6 .14 150),oklch(.32 .07 150))}.bg-mustard{background:linear-gradient(135deg,oklch(.62 .16 45),oklch(.34 .09 30))}.bg-purple{background:linear-gradient(135deg,oklch(.55 .14 320),oklch(.28 .06 310))}.bg-red{background:linear-gradient(135deg,oklch(.58 .16 22),oklch(.3 .08 20))}.bg-teal{background:linear-gradient(135deg,oklch(.5 .1 200),oklch(.28 .05 210))}.item__body{padding:20px 22px 22px}.item__meta{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);display:flex;gap:10px;align-items:center;text-transform:uppercase;margin-bottom:8px}.item__title{font-family:var(--serif);font-weight:400;font-variation-settings:"opsz" 40;font-size:22px;line-height:1.18;letter-spacing:-.01em;color:var(--ink);margin:0 0 8px;text-wrap:balance}.item__title em{color:var(--red);font-style:italic}.item__excerpt{color:var(--ink-2);font-size:14.5px;line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.item__foot{margin-top:14px;display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.04em;padding-top:12px;border-top:1px dashed var(--rule)}.item__foot .chip{color:var(--ink-2);text-transform:uppercase}.item__foot .go{color:var(--ink);font-weight:500;display:inline-flex;gap:6px;align-items:center;text-transform:uppercase;letter-spacing:.1em}.item__foot .go::after{content:"\2192";transition:transform .2s}.item:hover .item__foot .go::after{transform:translateX(3px)}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.page{max-width:1240px;margin:24px auto 0;padding:0 28px 72px;display:grid;grid-template-columns:minmax(0,1fr)300px;gap:28px;align-items:start}.col-main{min-width:0}.col-aside{min-width:0}.back{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 22px;white-space:nowrap}.back a{color:var(--ink-3);display:inline-flex;align-items:center;gap:6px}.back a:hover{color:var(--cat)}.back a::before{content:"\2190 ";color:var(--ink-3)}.article-card{position:relative;background:var(--card);border:1px solid oklch(0 0 0/.08);box-shadow:0 1px oklch(1 0 0/.8)inset,0 1px 2px oklch(0 0 0/.08),0 22px 44px -18px oklch(0 0 0/.18),0 4px 10px -4px oklch(0 0 0/.12)}[data-theme=dark] .article-card{border-color:oklch(1 0 0/.06);box-shadow:0 24px 48px -18px oklch(0 0 0/.5)}.article-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--cat)}.article-card .item__kind{position:absolute;top:-12px;left:22px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:3px 10px;background:var(--paper);color:var(--cat);border:1px solid oklch(0 0 0/.1)}[data-theme=dark] .article-card .item__kind{background:var(--paper-2);border-color:oklch(1 0 0/.08)}.hd{padding:44px 56px 4px}.meta-row{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.meta-row .sep{color:var(--rule)}.meta-row .rt{color:var(--ink-2)}h1.title{font-family:var(--serif);font-weight:400;font-variation-settings:"opsz" 120;font-size:clamp(36px,4.6vw,56px);line-height:1.04;letter-spacing:-.02em;margin:0 0 16px;color:var(--ink);text-wrap:balance}h1.title em{font-style:italic;color:var(--cat);font-weight:500}.sub{font-family:var(--serif);font-size:20px;line-height:1.45;color:var(--ink-2);margin:0 0 8px;max-width:58ch;font-variation-settings:"opsz" 40;font-style:italic}.hero-img{position:relative;margin:28px 0 0;border-top:1px solid oklch(0 0 0/.08);border-bottom:1px solid oklch(0 0 0/.08)}.hero-img img{display:block;width:100%;height:auto}.hero-img .cap{position:absolute;left:14px;bottom:12px;z-index:2;font-family:var(--mono);font-size:11px;color:oklch(1 0 0/.9);letter-spacing:.04em;background:oklch(0 0 0/.35);padding:3px 8px}.prose{padding:36px 56px 32px;max-width:none}.prose>*{max-width:68ch}.prose p{color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.72;margin:0 0 22px;text-wrap:pretty;letter-spacing:-.005em}.prose li{font-family:var(--body)}.prose h2{font-family:var(--serif);font-weight:400;font-variation-settings:"opsz" 80;font-size:30px;line-height:1.15;letter-spacing:-.01em;color:var(--ink);margin:52px 0 14px;scroll-margin-top:96px}.prose h3{font-family:var(--serif);font-weight:500;font-size:22px;margin:36px 0 10px;color:var(--ink)}.prose h4{font-family:var(--serif);font-weight:500;font-size:18px;margin:28px 0 8px;color:var(--ink)}.prose em{font-style:italic}.prose strong{font-weight:600;color:var(--ink)}.prose blockquote{margin:28px 0;padding:10px 0 10px 28px;border-left:3px solid var(--cat);font-family:var(--serif);font-size:17px;line-height:1.4;font-style:italic;color:var(--ink);font-variation-settings:"opsz" 60}.prose blockquote>*:last-child{margin-bottom:0}.prose blockquote cite{display:block;font-style:normal;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:10px}.prose ul{padding-left:1.3em;margin:0 0 22px}.prose ol{padding-left:1.3em;margin:0 0 22px}.prose li{margin-bottom:8px}.prose code{font-family:var(--mono);font-size:.88em;background:var(--chip);padding:2px 6px;border-radius:2px;color:var(--ink)}.prose pre{background:var(--chip);padding:18px 22px;overflow-x:auto;border:1px solid var(--rule);border-radius:2px;margin:0 0 22px;max-width:none}.prose pre code{background:0 0;padding:0;font-size:14px;line-height:1.6}.prose a:not(.btn){color:var(--cat);border-bottom:1px solid color-mix(in oklab,var(--cat) 40%,transparent);padding-bottom:1px}.prose a:not(.btn):hover{border-bottom-color:var(--cat)}.prose img{max-width:100%;height:auto;border:1px solid oklch(0 0 0/.08)}.prose table{border-collapse:collapse;margin:0 0 22px;max-width:100%;overflow-x:auto;display:block}.prose th,.prose td{padding:8px 14px;border:1px solid var(--rule);text-align:left;font-size:15px}.prose th{background:var(--chip);font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.prose figure{margin:32px 0;max-width:72ch}.prose figure img{display:block;width:100%;border:1px solid oklch(0 0 0/.08);box-shadow:0 2px 4px oklch(0 0 0/.06)}.prose figcaption{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--ink-2);margin-top:10px;padding-left:10px;border-left:2px solid var(--cat)}.sig{margin-top:48px;padding-top:28px;border-top:1px dashed var(--rule);display:flex;align-items:center;gap:18px;max-width:68ch}.sig__stamp{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,oklch(.58 .14 45),oklch(.38 .08 30));display:grid;place-items:center;color:#fff;font-family:var(--serif);font-size:28px;letter-spacing:-.02em;flex-shrink:0}.sig h4{font-family:var(--serif);font-weight:500;font-size:19px;margin:0 0 4px}.sig p{margin:0;color:var(--ink-2);font-size:14px;line-height:1.5}.sig p em{font-family:var(--serif);font-style:italic;color:var(--ink)}.tags-row{padding:20px 56px;border-top:1px dashed var(--rule);display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}.tags-row .lbl{color:var(--ink-3);margin-right:4px}.tags-row .tag::before{background:var(--cat)}.panel .tag::before{background:var(--cat)}.side{display:flex;flex-direction:column;gap:20px}.panel{background:var(--card);border:1px solid oklch(0 0 0/.08);box-shadow:0 1px 2px oklch(0 0 0/.05),0 10px 20px -14px oklch(0 0 0/.18);padding:18px 20px;position:relative}[data-theme=dark] .panel{border-color:oklch(1 0 0/.06)}.panel h4{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px;font-weight:500;display:flex;align-items:center;gap:8px}.panel h4::before{content:"";width:10px;height:10px;background:var(--cat);border-radius:2px}.toc ul{list-style:none;padding:0;margin:0}.toc li{padding:6px 0;font-size:14px}.toc a{color:var(--ink-2);display:block;padding:4px 10px;border-left:2px solid transparent;transition:color .15s,border-color .15s,background .15s;line-height:1.35}.toc a:hover{color:var(--ink)}.toc a.is-active{color:var(--cat);border-left-color:var(--cat);background:color-mix(in oklab,var(--cat) 5%,transparent)}.pub{font-family:var(--mono);font-size:12px;color:var(--ink-2);letter-spacing:.02em;margin:0 0 4px}.pub b{color:var(--ink);font-weight:500}.mini{display:grid;grid-template-columns:58px 1fr;gap:12px;padding:10px 0;border-bottom:1px dashed var(--rule);color:var(--ink)}.mini:last-child{border-bottom:0;padding-bottom:0}.mini:hover .mini__title{color:var(--cat)}.mini__img{width:58px;height:44px;position:relative;overflow:hidden;border:1px solid oklch(0 0 0/.08);background-size:cover;background-position:50%}.mini__img::after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,oklch(1 0 0/.06) 0 2px,transparent 2px 10px)}.mini__date{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:.04em}.mini__title{font-family:var(--serif);font-size:14.5px;line-height:1.2;color:var(--ink);margin:2px 0 0;text-wrap:balance}.pin{background:oklch(.96 .04 90);border:1px solid oklch(.72 .08 85);box-shadow:0 2px 4px oklch(0 0 0/.1),0 10px 22px -12px oklch(0 0 0/.22);padding:16px 18px 18px;font-family:var(--serif);font-size:15px;line-height:1.5;color:var(--ink);font-style:italic;position:relative}[data-theme=dark] .pin{background:oklch(.36 .06 85);border-color:oklch(.44 .08 85)}.pin::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,oklch(.78 .18 25),oklch(.45 .16 22));box-shadow:0 2px 3px oklch(0 0 0/.3)}.pin .from{display:block;margin-top:10px;font-family:var(--serif);font-size:22px;color:var(--ink);font-style:normal;letter-spacing:-.01em}.related{max-width:1240px;margin:56px auto 0;padding:0 28px}.related h3{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 18px;display:flex;align-items:center;gap:10px}.related h3::before{content:"";width:28px;height:1px;background:var(--ink-3)}.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.rel-card{position:relative;background:var(--card);border:1px solid oklch(0 0 0/.08);box-shadow:0 1px oklch(1 0 0/.8)inset,0 1px 2px oklch(0 0 0/.08),0 14px 24px -14px oklch(0 0 0/.18);color:var(--ink);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}.rel-card:hover{transform:translateY(-3px)}.rel-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--ink-3)}.rel-card--blue::before{background:var(--blue)}.rel-card--green::before{background:var(--green)}.rel-card--purple::before{background:var(--purple)}.rel-card--red::before{background:var(--red)}.rel-card--mustard::before{background:var(--mustard)}.rel-card--teal::before{background:var(--teal)}.rel-card__img{position:relative;aspect-ratio:4/3;overflow:hidden;border-bottom:1px solid oklch(0 0 0/.08);background-size:cover;background-position:50%}.rel-card__kind{position:absolute;top:-11px;left:18px;z-index:1;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 10px;background:var(--paper);border:1px solid oklch(0 0 0/.1)}[data-theme=dark] .rel-card__kind{background:var(--paper-2);border-color:oklch(1 0 0/.08)}.rel-card--blue .rel-card__kind{color:var(--blue)}.rel-card--green .rel-card__kind{color:var(--green)}.rel-card--purple .rel-card__kind{color:var(--purple)}.rel-card--red .rel-card__kind{color:var(--red)}.rel-card--mustard .rel-card__kind{color:var(--mustard)}.rel-card--teal .rel-card__kind{color:var(--teal)}.rel-card__body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:6px}.rel-card__meta{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}.rel-card__title{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.15;letter-spacing:-.01em;color:var(--ink);margin:2px 0 4px;text-wrap:balance}.rel-card:hover .rel-card__title{color:currentColor}.rel-card--no-img .rel-card__body{padding-top:28px}.rel-card-pair{display:flex;flex-direction:column;gap:22px}.rel-card-pair .rel-card{flex:1}.pn{max-width:1240px;margin:28px auto 0;padding:0 28px;display:grid;grid-template-columns:1fr 1fr;gap:22px}.pn a{background:var(--card);border:1px solid oklch(0 0 0/.08);box-shadow:0 1px 2px oklch(0 0 0/.05),0 10px 20px -14px oklch(0 0 0/.16);padding:16px 20px;color:var(--ink);display:flex;flex-direction:column;gap:4px;position:relative}[data-theme=dark] .pn a{border-color:oklch(1 0 0/.06)}.pn small{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.pn span{font-family:var(--serif);font-size:19px;line-height:1.2;color:var(--ink)}.pn .next{text-align:right;align-items:flex-end}.pn a:hover span{color:var(--cat)}.ft{border-top:1px solid var(--rule);padding:48px 28px 56px;margin-top:72px;background:linear-gradient(to bottom,transparent,oklch(0 0 0/.03))}.ft__inner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;align-items:start}.ft h4{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px}.ft p{color:var(--ink-2);font-size:14px;line-height:1.6;margin:0 0 12px;max-width:42ch}.ft p em{font-family:var(--serif);font-style:italic;color:var(--ink)}.ft ul{list-style:none;padding:0;margin:0}.ft li{padding:4px 0;font-size:14px;color:var(--ink-2)}.ft li a:hover{color:var(--red)}.ft .book{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:12px;border:1px solid var(--rule);border-radius:4px;background:var(--card)}.ft .book__cover{aspect-ratio:3/4;background:linear-gradient(160deg,oklch(.4 .08 250),oklch(.22 .04 250));position:relative;overflow:hidden}.ft .book__cover img{width:100%;height:100%;object-fit:cover}.ft .book h5{font-family:var(--serif);font-weight:500;font-size:15px;margin:0 0 3px;color:var(--ink)}.ft .social{display:flex;gap:6px;margin-top:8px}.ft .social a{width:30px;height:30px;border:1px solid var(--rule);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2)}.ft .social a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.ft .social svg{width:13px;height:13px}.colo{max-width:1240px;margin:28px auto 0;padding-top:18px;border-top:1px dashed var(--rule);display:flex;justify-content:space-between;gap:16px;font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.05em}.prose p.disclaimer{color:var(--red);border-left:4px solid var(--red);background:color-mix(in oklab,var(--red) 8%,var(--card));padding:10px 16px}[data-theme=dark] .prose p.disclaimer{color:oklch(.85 .12 25)}.prose p.tip{font-weight:600}.prose p.readmore{font-weight:600}.prose img[src$='#floatleft']{float:left;margin:0 16px 12px 0}.prose img[src$='#floatright']{float:right;margin:0 0 12px 16px}.four-oh-four{max-width:600px;margin:60px auto;padding:0 28px}.four-oh-four .article-card{padding:40px 56px}.four-oh-four h1{font-family:var(--serif);font-weight:400;font-size:36px;margin:0 0 16px;color:var(--ink)}.four-oh-four p{color:var(--ink-2);font-size:16px;line-height:1.6;margin:0 0 20px}.four-oh-four a.btn{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:10px 20px;border:1px solid var(--rule);color:var(--ink)}.four-oh-four a.btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media(max-width:900px){.bar{padding:14px 18px 0}.nav a:not(:first-child):not(:last-child){display:none}.hero{grid-template-columns:1fr;gap:18px;padding:0 18px;margin-top:20px}.hero__tag{text-align:left}.section-hero{padding:0 18px;margin-top:20px}.legend{padding:0 18px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;padding-bottom:8px}.bench{grid-template-columns:1fr;gap:22px;padding:0 18px;margin-top:24px}.span-7,.span-6,.span-5,.span-4,.span-3{grid-column:1/-1}.page{grid-template-columns:1fr;gap:20px;padding:0 18px 48px}.col-aside{order:2}.side{padding-right:0}.article-card{margin:0}.hd,.prose,.tags-row{padding-left:24px;padding-right:22px}.hd{padding-top:36px}.rel-grid,.pn{grid-template-columns:1fr;gap:14px}.related,.pn{padding:0 18px}.ft__inner{grid-template-columns:1fr;gap:28px}.colo{flex-direction:column;gap:4px}.four-oh-four .article-card{padding:28px 24px}}@media(prefers-reduced-motion:reduce){.item,.rel-card,.panel,.pin{transition:none}}.paginator{display:flex;align-items:center;justify-content:center;gap:16px;padding:32px 0 48px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.paginator__btn{padding:6px 16px;border:1px solid oklch(0 0 0/.12);color:var(--ink);text-decoration:none;transition:border-color .15s}.paginator__btn:hover{border-color:var(--ink)}.paginator__btn--disabled{color:var(--ink-3);pointer-events:none}.paginator__info{color:var(--ink-3)}[data-theme=dark] .paginator__btn{border-color:oklch(1 0 0/.1)}[data-theme=dark] .paginator__btn:hover{border-color:oklch(1 0 0/.4)}.item--no-img .item__body{padding-top:32px}.card-pair{display:flex;flex-direction:column;gap:22px}.card-pair .item{flex:1}