@font-face{font-family:Literata;src:url(/fonts/Literata.woff2)format("woff2");font-weight:200 900;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--navy:#0b2545;--crimson:#d7263d;--flame:#ffb13b;--paper:#f5f6f8;--card:#fff;--line:#e1e4ea;--ink-2:color-mix(in oklab, var(--navy) 75%, white);--muted:color-mix(in oklab, var(--navy) 55%, white);--on-navy:color-mix(in oklab, #fff 78%, var(--navy))}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{background:var(--paper);color:var(--navy);flex-direction:column;min-height:100dvh;margin:0;font:17px/1.6 Inter,system-ui,sans-serif;display:flex}body>main{flex:1 0 auto;width:100%}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}h1,h2,h3,h4,.brand{letter-spacing:-.02em;font-family:Literata,Georgia,serif;font-weight:700}::selection{background:var(--crimson);color:#fff}:focus-visible{outline:2px solid var(--crimson);outline-offset:3px;border-radius:4px}.wrap{max-width:1160px;margin:0 auto;padding:0 32px}.skip{position:absolute;left:-999px}.skip:focus{z-index:10;background:#fff;padding:8px 12px;top:16px;left:16px}.brand{align-items:center;gap:10px;font-size:24px;display:inline-flex}.brand .mark{width:42px;height:42px}.site-head{justify-content:space-between;align-items:center;height:80px;display:flex}.site-head nav{gap:28px;font-size:15px;font-weight:500;display:flex}.band{background:var(--navy);color:#fff;position:relative;overflow:hidden}.band:before{content:"";pointer-events:none;opacity:.35;background-image:radial-gradient(#ffffff8c 1px,#0000 1.5px),radial-gradient(#ffffff4d 1px,#0000 1.5px);background-position:20px 30px,60px 70px;background-size:140px 140px,90px 90px;position:absolute;inset:0}.band .wrap{position:relative}.band nav a{color:var(--on-navy)}.band nav a:hover,.band nav a[aria-current]{color:#fff}.band.home{padding-bottom:300px}.band.slim{padding-bottom:8px}.hero{grid-template-columns:1.2fr .8fr;align-items:center;gap:40px;padding-top:40px;display:grid}.hero h1{max-width:640px;margin:0 0 18px;font-size:60px;line-height:1.04}.hero p{color:var(--on-navy);max-width:540px;margin:0 0 30px;font-size:19px}.hero .hero-tag{letter-spacing:-.015em;color:#fff;margin:0 0 14px;font-family:Literata,Georgia,serif;font-size:30px;font-weight:600;line-height:1.2}.btn{background:var(--crimson);color:#fff;border-radius:8px;margin:0 10px 10px 0;padding:13px 22px;font-weight:600;display:inline-block}.btn:hover{background:color-mix(in oklab, var(--crimson) 85%, black)}.btn.line{background:0 0;box-shadow:inset 0 0 0 1.5px #fff9}.btn.line:hover{box-shadow:inset 0 0 0 1.5px #fff}.orbit{width:100%;height:auto;display:block;overflow:visible}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:13.5px;display:flex}.meta>*{white-space:nowrap}.st{letter-spacing:.08em;text-transform:uppercase;color:var(--navy);align-items:center;gap:7px;font-size:11.5px;font-weight:600;display:inline-flex}.st:before{content:"";background:var(--crimson);width:9px;height:9px}.st.calm:before{background:var(--muted)}.latest{background:var(--card);border-radius:18px;grid-template-columns:1.4fr 1fr;margin-top:-190px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 60px #0b25452e}.latest img{object-fit:cover;width:100%;height:100%;min-height:360px;display:block}.latest .b{flex-direction:column;justify-content:center;gap:12px;padding:38px;display:flex}.latest h2{margin:0;font-size:32px;line-height:1.14}.latest p{color:var(--ink-2);margin:0}.latest .go{color:var(--crimson);font-weight:600}.latest:hover h2{color:var(--crimson)}.bar{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:20px;margin:64px 0 22px;display:flex}.bar h2{margin:0;font-size:30px}.topics{color:var(--muted);flex-wrap:wrap;gap:18px;font-size:14.5px;display:flex}.topics a:hover{color:var(--navy)}.topics a[aria-current]{color:var(--navy);box-shadow:inset 0 -2px 0 var(--crimson);font-weight:600}.grid{grid-template-columns:repeat(3,1fr);gap:34px 26px;display:grid}.card{flex-direction:column;gap:12px;display:flex}.card .thumb{aspect-ratio:16/10;object-fit:cover;background:var(--line);border-radius:12px;width:100%;transition:transform .2s;display:block}.card:hover .thumb{transform:translateY(-3px)}.card h3{margin:0;font-size:21px;line-height:1.22}.card:hover h3{color:var(--crimson)}.card p{color:var(--ink-2);margin:0;font-size:15.5px}.article{max-width:760px;margin:0 auto;padding:56px 0 0}.article .crumbs{color:var(--muted);margin-bottom:18px;font-size:14px}.article .crumbs a:hover{color:var(--crimson)}.article h1{margin:12px 0 18px;font-size:46px;line-height:1.1}.article .lead{color:var(--ink-2);margin:0 0 24px;font-size:20px}.article .heroimg{border-radius:16px;width:100%;margin:10px 0 30px;display:block}.article .tags{border-top:1px solid var(--line);flex-wrap:wrap;gap:10px;margin:40px 0 0;padding-top:22px;font-size:14px;display:flex}.article .tags a{background:var(--card);border:1px solid var(--line);color:var(--ink-2);border-radius:6px;padding:4px 10px}.article .tags a:hover{border-color:var(--crimson);color:var(--crimson)}.prose{font-size:18px;line-height:1.7}.prose h2{margin:46px 0 14px;font-size:30px;line-height:1.2}.prose h3{margin:34px 0 10px;font-size:23px;line-height:1.25}.prose p,.prose ul,.prose ol{margin:0 0 18px}.prose a{color:var(--crimson);text-underline-offset:3px;text-decoration:underline 1px}.prose a:hover{text-decoration-thickness:2px}.prose img{border-radius:10px;margin:26px auto;display:block}.prose .caption{text-align:center;color:var(--muted);margin-top:-14px;font-size:14.5px}.prose blockquote{border-left:4px solid var(--crimson);background:var(--card);color:var(--ink-2);border-radius:0 10px 10px 0;margin:24px 0;padding:14px 20px}.prose blockquote p:last-child{margin:0}.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}.prose code{background:#e9ecf2;border-radius:5px;padding:2px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88em}.prose pre{color:#e6eaf2;background:#0f1b2d;border-radius:12px;margin:0 0 22px;padding:18px 20px;font-size:14.5px;line-height:1.55;overflow-x:auto}.prose pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.prose .tscroll{margin:0 0 24px;overflow-x:auto}.prose table{border-collapse:collapse;background:var(--card);border-radius:10px;width:100%;font-size:15px;overflow:hidden}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 12px}.prose th{background:var(--navy);color:#fff;font-weight:600}.prose iframe{border:0;border-radius:10px;max-width:100%}.next{margin-top:70px}.prose .bookmark{background:var(--card);border:1px solid var(--line);color:var(--navy);border-radius:12px;align-items:stretch;min-height:130px;margin:26px 0;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.prose .bookmark:hover{border-color:color-mix(in oklab, var(--crimson) 40%, var(--line));box-shadow:0 10px 24px #0b254514}.prose .bookmark .bm-text{flex-direction:column;flex:1;gap:6px;min-width:0;padding:18px 20px;display:flex}.prose .bookmark strong{font-family:Literata,Georgia,serif;font-size:17px;line-height:1.3}.prose .bookmark:hover strong{color:var(--crimson)}.prose .bookmark .bm-desc{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.prose .bookmark .bm-meta{color:var(--muted);align-items:center;gap:8px;margin-top:auto;font-size:13.5px;display:flex}.prose .bookmark .bm-meta img{border-radius:4px;width:20px;height:20px;margin:0}.prose .bookmark .bm-thumb{object-fit:cover;background:#0f1b2d;border-radius:0;width:33%;max-width:240px;margin:0}.prose .bookmark .bm-thumb[src$=\.svg]{object-fit:contain;padding:14px}@media (width<=640px){.prose .bookmark .bm-thumb{display:none}}.repo-group{margin:40px 0 0}.repo-group h2{margin:0 0 16px;font-size:26px}.repos{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px;display:grid}.repo{background:var(--card);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:10px;padding:0 24px 20px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;overflow:hidden}.repo:hover{border-color:color-mix(in oklab, var(--crimson) 40%, var(--line));transform:translateY(-3px);box-shadow:0 14px 30px #0b25451a}.repo .thumb{border-bottom:1px solid var(--line);margin:0 -24px 8px;display:block}.repo .thumb img{aspect-ratio:2;object-fit:cover;width:100%;height:auto;display:block}.repo .name{letter-spacing:-.01em;overflow-wrap:anywhere;align-items:center;gap:10px;font-family:Literata,Georgia,serif;font-size:21px;font-weight:700;display:flex}.repo .name svg{width:22px;height:22px;fill:var(--navy);flex:none}.repo:hover .name{color:var(--crimson)}.repo p{color:var(--ink-2);flex:1;margin:0;font-size:15.5px}.repo .facts{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:13.5px;display:flex}.repo .lang{align-items:center;gap:6px;display:inline-flex}.repo .lang:before{content:"";background:var(--lang);border-radius:50%;width:10px;height:10px}.repo .also{border-top:1px solid var(--line);margin-top:2px;padding-top:10px;font-size:14px}.repo .also a{color:var(--crimson);font-weight:600}.repo-note{color:var(--muted);margin-top:44px;font-size:15px}.repo-note a{color:var(--crimson)}.site-foot{background:var(--navy);color:var(--on-navy);margin-top:100px;padding:44px 0 40px}.site-foot .wrap{flex-wrap:wrap;justify-content:space-between;gap:40px;display:flex}.site-foot .brand{color:#fff}.site-foot nav{flex-wrap:wrap;align-items:center;gap:22px;font-size:15px;display:flex}.site-foot nav a:hover{color:#fff}.site-foot .fine{color:color-mix(in oklab, #fff 55%, var(--navy));margin-top:14px;font-size:13px}.staging{background:var(--flame);color:var(--navy);text-align:center;padding:6px;font-size:13px;font-weight:600}@media (width<=960px){.hero{grid-template-columns:1fr}.hero .orbit{max-width:360px;margin:0 auto}.hero h1{font-size:42px}.latest{grid-template-columns:1fr}.latest img{min-height:220px}.grid{grid-template-columns:1fr 1fr}}@media (width<=640px){.wrap{padding:0 20px}.site-head{flex-wrap:wrap;row-gap:8px;height:auto;padding:14px 0 6px}.site-head nav{gap:18px;width:100%;font-size:14px}.brand{font-size:21px}.brand .mark{width:34px;height:34px}.hero h1{font-size:34px}.hero .hero-tag{font-size:23px}.band.home{padding-bottom:220px}.latest{margin-top:-170px}.latest .b{padding:24px}.latest h2{font-size:26px}.grid{grid-template-columns:1fr}.article h1{font-size:34px}.prose{font-size:17px}}
