:root{color-scheme:dark;--bg: #060606;--bg-2: #0e0e0e;--bg-3: #161616;--ink: #ffffff;--fg: #e9e9e9;--body: #cfcfcf;--muted: #9a9a9a;--faint: #666666;--line: #d6d6d6;--line-2: #3d3d3d;--line-3: #232323;--font-mono: ui-monospace, "SF Mono", Menlo, "JetBrains Mono", Consolas, "Liberation Mono", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", monospace;--font-text: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--frame: 0 0 0 3px var(--bg), 0 0 0 4px var(--line-2);--navy: var(--fg);--navy-solid: var(--bg-3);--coral: var(--fg);--coral-text: var(--fg);--peach: var(--line-2);--paper: var(--bg);--surface: var(--bg-2);--card: var(--bg-2);--mint: var(--fg);--mint-bg: var(--bg-3);--logo-bg: var(--bg-2);--shadow: rgba(0, 0, 0, .6);--font-sans: var(--font-mono);--font-serif: var(--font-mono)}*{box-sizing:border-box}html{background:var(--bg);font-family:var(--font-mono);scroll-behavior:smooth}body{margin:0;padding:12px;color:var(--body);background:var(--bg);font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}::selection{background:var(--fg);color:var(--bg)}a{color:var(--fg);text-decoration:none}a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}a:focus-visible{outline:1px dashed var(--fg);outline-offset:3px}.frame{display:flex;flex-direction:column;min-height:calc(100vh - 24px);margin:4px;border:1px solid var(--line);box-shadow:var(--frame);background:var(--bg)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 18px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:baseline;gap:10px;color:var(--ink)}.brand:hover{text-decoration:none}.brand strong{font-size:20px;font-weight:700;letter-spacing:1px}.status{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--fg);letter-spacing:.5px}.status .sep{color:var(--faint)}.status .dot{font-weight:400;animation:blink 2.4s steps(1) infinite}.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 18px;border-bottom:1px solid var(--line);font-size:13.5px}.nav-links{display:flex;flex-wrap:wrap;gap:4px 18px}.nav a{padding:2px 8px;color:var(--fg);letter-spacing:.5px}.nav a:hover{text-decoration:none;background:var(--bg-3);color:var(--ink)}.nav a[aria-current=page]{background:var(--fg);color:var(--bg)}.nav-tag{font-size:12.5px;color:var(--fg);letter-spacing:1px;white-space:nowrap}.main{flex:1;padding:16px 18px 22px}.foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--fg);letter-spacing:1px}.panel{border:1px solid var(--line);box-shadow:var(--frame);background:var(--bg)}.panel-h{margin:0;display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line);color:var(--ink);font-size:17px;font-weight:600;letter-spacing:.5px}.panel-h .n{padding:0 5px;background:var(--fg);color:var(--bg);font-size:13px;font-weight:700;line-height:1.5}.panel-h .en{color:var(--muted);font-weight:400}.panel-h .en:before{content:"/ "}.panel-b{padding:14px 14px 10px;font-size:13px}.panel-f{display:flex;justify-content:space-between;gap:10px;padding:6px 14px 9px;margin-top:auto;color:var(--muted);font-size:12px;letter-spacing:.3px}.panel-f:after{content:"///";color:var(--faint)}.hero{position:relative;display:grid;grid-template-columns:220px minmax(0,1fr) minmax(0,1.25fr) 180px;gap:18px;min-height:440px;padding:22px 24px 40px;overflow:hidden;background:radial-gradient(circle,#1a1a1a .7px,transparent 1px) 0 0 / 14px 14px,var(--bg)}.hero-corner{position:absolute;bottom:12px;color:var(--fg);font-size:12px;letter-spacing:.5px}.hero-corner.l{left:24px}.hero-corner.r{right:24px}.deco{position:absolute;color:var(--fg);font-size:14px;line-height:1;pointer-events:none;user-select:none}.hero-term{position:relative;z-index:1;font-size:14px;color:var(--fg)}.hero-term .user{color:var(--fg);letter-spacing:.5px}.hero-term .fn{color:var(--fg)}.hero-term .fn-list{margin:22px 0 0;line-height:1.75}.hero-term .quote{margin:26px 0 0;padding-top:14px;border-top:1px solid var(--fg);width:30px;white-space:nowrap;color:var(--body)}.hero-term .quote p{margin:0;line-height:1.85}.cursor:after{content:"_";animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.hero-grid{position:absolute;left:0;bottom:0;width:320px;height:130px;pointer-events:none}.portrait{position:relative;z-index:1;align-self:end;justify-self:center;width:min(100%,330px);height:auto;margin-bottom:-58px;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 0 10px rgba(255,255,255,.12));user-select:none;-webkit-user-drag:none}.hero-copy{position:relative;z-index:1;align-self:center}.hero-hi{margin:0;color:var(--ink);font-size:24px;font-weight:700;letter-spacing:2px}.hero-title{margin:4px 0 14px;color:var(--ink);font-size:clamp(34px,3.6vw,52px);font-weight:900;letter-spacing:2px;line-height:1.15}@supports (-webkit-background-clip: text) or (background-clip: text){.hero-title{color:transparent;background:radial-gradient(circle at 1px 1px,#fff .8px,transparent 1.2px) 0 0 / 3px 3px,#ffffff9e;-webkit-background-clip:text;background-clip:text}}.hero-rule{width:30px;height:1px;background:var(--fg);margin:0 0 14px}.hero-copy p{margin:0;font-size:14px;line-height:1.85;color:var(--fg)}.hero-boot{margin:16px 0 0;padding:0;list-style:none;font-size:13.5px;color:var(--fg);line-height:1.8}.hero-boot li:before{content:"> "}.hero-boot .ok{color:var(--body)}.hero-side{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;font-size:11px;letter-spacing:1px;color:var(--fg);text-align:right}.hero-side .motto{line-height:1.7}.hero-side .motto:after{content:"—";display:block;margin-top:4px}.globe{width:180px;height:auto;display:block;margin-right:-6px}.globe text{font-family:var(--font-mono);font-size:9.5px;letter-spacing:1px;fill:var(--fg)}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:18px}.card{display:flex;flex-direction:column;min-height:280px}.card .lead{margin:0 0 6px;color:var(--ink);font-size:15px;line-height:1.6}.card .dim{margin:0 0 12px;color:var(--muted);font-size:12.5px;line-height:1.75}.card .kv{margin:0;padding:0;list-style:none;font-size:13px;line-height:1.9}.card .kv span{display:inline-block;min-width:4.5em;color:var(--muted)}.card .kv b{font-weight:400;color:var(--fg)}.entries{margin:0;padding:0;list-style:none}.entries li{margin:0 0 10px;line-height:1.55}.entries li a{display:block;color:var(--ink);font-size:14px}.entries li a:before{content:"> ";color:var(--fg)}.entries li a:hover{text-decoration:none;background:var(--bg-3)}.entries li small{display:block;padding-left:2ch;color:var(--muted);font-size:12px;line-height:1.7}.card .stamp{margin:0 0 12px;color:var(--muted);font-size:12.5px}.card .stamp b{color:var(--ink);font-weight:600}.cta{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:4px 0 10px;padding:26px 14px;border:1px solid var(--line);box-shadow:var(--frame);color:var(--ink);text-align:center}.cta:hover{text-decoration:none;background:var(--bg-2)}.cta .prompt{padding:4px 22px;border:1px solid var(--fg);font-size:13px;color:var(--fg)}.cta .big{font-size:20px;letter-spacing:3px;margin-top:10px}.cta .sub{font-size:12.5px;color:var(--muted)}.log-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:30px 0 4px;padding-bottom:6px;border-bottom:1px solid var(--line);color:var(--ink);font-size:15px;letter-spacing:1px}.log-head span{color:var(--muted);font-size:12px}.log{list-style:none;margin:0;padding:0}.log li{display:grid;grid-template-columns:11ch minmax(0,1fr);gap:4px 20px;padding:13px 8px;margin:0 -8px;border-bottom:1px dashed var(--line-3)}.log li:hover{background:var(--bg-2)}.log .date{padding-top:2px;color:var(--muted);font-size:12px}.log h2{margin:0;font-size:15px;font-weight:600;line-height:1.6}.log h2 a{color:var(--ink)}.log h2 a:before{content:"> ";color:var(--fg);font-weight:400}.log p{grid-column:2;margin:0;max-width:78ch;color:var(--muted);font-size:12.5px;line-height:1.75}.arch{margin:0 0 6px;border:1px solid var(--line-3)}.arch summary{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 14px;cursor:pointer;list-style:none;color:var(--ink);font-size:14px}.arch summary::-webkit-details-marker{display:none}.arch summary:before{content:"[+] ";color:var(--fg)}.arch[open] summary:before{content:"[-] "}.arch summary:hover{background:var(--bg-2)}.arch summary span{color:var(--muted);font-size:12px}.arch .log{padding:0 14px 6px}.arch .log li{margin:0;padding:10px 0}.arch .log li:hover{background:none}.log-head a{color:var(--fg)}.post-header{max-width:700px;margin:10px auto 0;padding:16px 18px}.post-header .path{margin:0 0 10px;color:var(--muted);font-size:12.5px}.post-header .path:before{content:"> cat "}.post-header h1{margin:0 0 12px;color:var(--ink);font-size:24px;font-weight:700;line-height:1.5}.post-header .meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px}.post-header .meta .sep{width:18px;height:1px;background:var(--line-2)}.prose{max-width:700px;margin:26px auto 40px;padding:0 18px;font-family:var(--font-text);font-size:16.5px;line-height:1.95;letter-spacing:.01em;color:#d6d6d6}.prose p{margin:1.5em 0}.prose strong{color:var(--ink)}.prose a{color:var(--ink);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}.prose a:hover{text-decoration-style:solid}.prose img{display:block;max-width:100%;height:auto;margin:2em auto;border:1px solid var(--line-2);padding:3px;background:var(--bg-2)}.prose blockquote{margin:2em 0;padding:2px 0 2px 16px;border-left:2px solid var(--fg);color:var(--muted)}.prose blockquote p{margin:.4em 0}.prose code{padding:1px 6px;background:var(--bg-3);border:1px solid var(--line-3);color:var(--ink);font-family:var(--font-mono);font-size:.9em}.prose pre{font-family:var(--font-mono);font-size:13.5px;padding:16px 18px;overflow-x:auto;background:var(--bg-2);border:1px solid var(--line-2);line-height:1.7}.prose pre code{padding:0;border:0;background:none;color:var(--fg)}.prose h2,.prose h3{margin-top:2.4em;color:var(--ink);line-height:1.5}.prose h2{font-size:22px;font-weight:700}.prose h2:before{content:"## ";color:var(--faint);font-family:var(--font-mono);font-weight:400}.prose h3{font-size:18px;font-weight:700}.prose h3:before{content:"### ";color:var(--faint);font-family:var(--font-mono);font-weight:400}.prose ul,.prose ol{padding-left:2ch}.prose li{margin:.35em 0}.prose hr{margin:2.5em auto;border:0;text-align:center}.prose hr:after{content:"- - -";color:var(--faint);letter-spacing:6px}.prose table{border-collapse:collapse;width:100%;font-size:14px;font-family:var(--font-mono)}.prose th,.prose td{padding:6px 10px;border:1px solid var(--line-2);text-align:left}.follow-card{max-width:700px;margin:0 auto 50px;padding:14px 18px}.follow-card .title{margin:0 0 6px;color:var(--ink);font-size:14px}.follow-card .title:before{content:"// ";color:var(--faint)}.follow-card p{margin:0;font-size:13px;color:var(--muted)}.np-masthead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 18px;margin:6px 0 0}.np-masthead .np-title{margin:0;color:var(--ink);font-size:24px;font-weight:700;letter-spacing:3px}.np-masthead .np-title .np-dot{color:var(--ink)}.np-masthead .np-sub{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;color:var(--muted);font-size:12.5px}.np-masthead .np-sub .np-issue{color:var(--ink)}.np-dateline{display:flex;justify-content:space-between;gap:10px;padding:8px 2px;margin-top:6px;border-bottom:1px solid var(--line-2);color:var(--muted);font-size:11.5px;letter-spacing:2px}.np-lead{padding:22px 0 20px;border-bottom:1px solid var(--line-2)}.np-lead .np-kicker{margin-bottom:8px;color:var(--muted);font-size:12px;letter-spacing:2px}.np-lead .np-kicker:before{content:"> "}.np-lead h2{margin:0 0 12px;color:var(--ink);font-size:20px;line-height:1.5}.np-lead .np-standfirst{margin:0 0 10px;max-width:80ch;color:var(--body);font-size:14px;line-height:1.9}.np-lead .np-more{color:var(--ink);font-size:13px}.np-second{padding:12px 0 4px;border-bottom:1px solid var(--line-2)}.np-second h3{margin:8px 0 4px;font-size:15px;line-height:1.5}.np-second h3 a{color:var(--ink)}.np-second h3 a:before{content:"> ";color:var(--fg)}.np-second p{margin:0 0 12px;color:var(--muted);font-size:13px}.np-section-head{display:flex;align-items:center;gap:12px;margin:26px 0 2px}.np-section-head .t{color:var(--ink);font-size:14px;letter-spacing:3px}.np-section-head .t:before{content:"── ";color:var(--line-2)}.np-section-head .rule{flex:1;height:1px;background:var(--line-2)}.np-section-head .en{color:var(--muted);font-size:10.5px;letter-spacing:3px}.np-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.np-item{padding:14px 0 12px;border-bottom:1px dashed var(--line-3)}.np-item .np-cat{display:none}.np-item h4{margin:0 0 6px;font-size:14.5px;line-height:1.6;font-weight:600}.np-item h4 a{color:var(--ink)}.np-item h4 a:before{content:"> ";color:var(--fg);font-weight:400}.np-item .np-note{margin:0 0 6px;padding-left:12px;border-left:1px solid var(--fg);color:var(--body);font-size:13px;line-height:1.75}.np-item .np-meta{color:var(--muted);font-size:11.5px}.np-item .np-meta .np-written{margin-left:8px;color:var(--ink)}.np-foot{padding:22px 0 4px;text-align:center;color:var(--muted);font-size:11px;letter-spacing:3px}.np-archive{list-style:none;margin:18px 0 40px;padding:0}.np-archive li{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;padding:12px 8px;margin:0 -8px;border-bottom:1px dashed var(--line-3)}.np-archive li:hover{background:var(--bg-2)}.np-archive .no{flex-shrink:0;min-width:10ch;color:var(--ink);font-size:13.5px}.np-archive .d{color:var(--muted);font-size:12.5px}.np-archive a{color:var(--ink)}.np-archive a:before{content:"> ";color:var(--fg)}.np-archive .n{color:var(--muted);font-size:12px}.about-grid{align-items:start;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin-top:6px}.about-grid .stack{display:grid;gap:16px;align-content:start}.about-grid .panel-b p{margin:0 0 1em;font-size:14px;line-height:1.9;color:var(--body)}.about-grid .panel-b p:last-child{margin-bottom:.4em}.whoami{margin:4px 0 14px;color:var(--muted);font-size:13px}.whoami:before{content:"> "}.whoami b{color:var(--ink);font-weight:400}@media(max-width:1120px){.hero{grid-template-columns:200px minmax(0,1fr) minmax(0,1.25fr)}.hero-side{grid-column:1 / -1;flex-direction:row;align-items:flex-end}.hero-side .motto{text-align:left}.globe{width:150px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-bottom:46px}.hero-copy{grid-column:1 / -1}.portrait{width:min(100%,280px);margin-bottom:-50px}.hero-grid{display:none}.np-grid,.about-grid{grid-template-columns:1fr}}@media(max-width:600px){body{padding:8px;font-size:13.5px}.frame{margin:4px;min-height:calc(100vh - 16px)}.topbar,.nav,.main,.foot{padding-left:12px;padding-right:12px}.topbar{flex-wrap:wrap;gap:4px 12px}.status{font-size:11.5px}.nav-tag{display:none}.nav-links{gap:2px 8px;font-size:12.5px}.nav .key{display:none}.nav-links{gap:2px 14px}.hero{grid-template-columns:150px minmax(0,1fr);gap:10px 16px;padding:18px 14px;min-height:0}.hero-copy{grid-column:1 / -1;order:1}.portrait{order:2}.hero-term{order:3;align-self:end;font-size:12.5px}.hero-term .fn-list{margin-top:10px;line-height:1.6}.hero-term .quote,.hero-side,.hero-corner{display:none}.hero-title{color:var(--ink);background:none;-webkit-background-clip:initial;background-clip:initial}.portrait{width:150px;margin:0;justify-self:start;filter:none;-webkit-mask-image:linear-gradient(#000 78%,transparent 98%);mask-image:linear-gradient(#000 78%,transparent 98%)}.hero-title{font-size:32px;letter-spacing:1px}.hero-side{flex-direction:column;align-items:flex-start}.hero-side .motto,.deco{display:none}.globe{width:130px;margin:0}.hero-corner.r{display:none}.cards{grid-template-columns:1fr}.card{min-height:0}.log li{grid-template-columns:1fr;gap:2px;padding:12px 6px;margin:0 -6px}.log p{grid-column:1}.post-header,.prose,.follow-card{padding-left:12px;padding-right:12px}.post-header h1{font-size:20px}.prose{font-size:14px}.np-masthead .np-title{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cursor:after,.status .dot{animation:none}}
