@font-face{font-family:Newsreader;font-style:italic;font-weight:300;font-display:swap;src:url(/_next/static/media/eb251072d3b5478c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:italic;font-weight:300;font-display:swap;src:url(/_next/static/media/e92f802bb57ccffe-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:italic;font-weight:300;font-display:swap;src:url(/_next/static/media/4b9bb515ce6d026f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/eb251072d3b5478c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/e92f802bb57ccffe-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/4b9bb515ce6d026f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/eb251072d3b5478c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/e92f802bb57ccffe-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/4b9bb515ce6d026f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/eb251072d3b5478c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/e92f802bb57ccffe-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/4b9bb515ce6d026f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:italic;font-weight:700;font-display:swap;src:url(/_next/static/media/eb251072d3b5478c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:italic;font-weight:700;font-display:swap;src:url(/_next/static/media/e92f802bb57ccffe-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:italic;font-weight:700;font-display:swap;src:url(/_next/static/media/4b9bb515ce6d026f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/7088c2b12ccac062-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/665e920483964785-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/5611c55482296524-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7088c2b12ccac062-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/665e920483964785-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/5611c55482296524-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7088c2b12ccac062-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/665e920483964785-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/5611c55482296524-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7088c2b12ccac062-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/665e920483964785-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5611c55482296524-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/7088c2b12ccac062-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/665e920483964785-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/5611c55482296524-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Newsreader Fallback;src:local("Times New Roman");ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.00%;size-adjust:105.48%}.__className_8cd99f{font-family:Newsreader,Newsreader Fallback}.__variable_8cd99f{--font-newsreader:"Newsreader","Newsreader Fallback"}@font-face{font-family:inter;src:url(/_next/static/media/0336a89fb4e7fc1d-s.p.woff2) format("woff2");font-display:swap;font-style:normal}@font-face{font-family:inter;src:url(/_next/static/media/c91adde9f78caceb-s.p.woff2) format("woff2");font-display:swap;font-style:italic}@font-face{font-family:inter Fallback;src:local("Arial");ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.00%;size-adjust:107.89%}.__className_35c9d2{font-family:inter,inter Fallback}.__variable_35c9d2{--font-inter:"inter","inter Fallback"}@font-face{font-family:jetbrainsMono;src:url(/_next/static/media/b8c97ebabd0473a4-s.p.woff2) format("woff2");font-display:swap}@font-face{font-family:jetbrainsMono Fallback;src:local("Arial");ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.00%;size-adjust:131.49%}.__className_0b387b{font-family:jetbrainsMono,jetbrainsMono Fallback}.__variable_0b387b{--font-jetbrains-mono:"jetbrainsMono","jetbrainsMono Fallback"}:root{--paper:oklch(0.985 0.001 250);--paper-2:oklch(0.965 0.002 250);--rule:oklch(0.88 0.002 250);--rule-soft:oklch(0.93 0.002 250);--ink:oklch(0.2 0.003 250);--ink-2:oklch(0.38 0.003 250);--ink-3:oklch(0.58 0.003 250);--vermillion:oklch(0.42 0.14 255);--vermillion-ink:oklch(0.32 0.12 255);--moss:oklch(0.48 0.06 140);--indigo:oklch(0.42 0.09 260);--serif:var(--font-newsreader),"Newsreader",ui-serif,Georgia,"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans CJK SC","Noto Sans SC",serif;--sans:var(--font-inter),"Inter",ui-sans-serif,system-ui,"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans CJK SC","Noto Sans SC",sans-serif;--mono:var(--font-jetbrains-mono),"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--cjk-sans:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans CJK SC","Noto Sans SC",sans-serif;--cjk-track-body:0.03em;--cjk-track-display:0.01em;--cjk-track-eyebrow:0.08em;--cjk-gap:0.15em;--cjk-em-color:oklch(0.75 0.003 250);--cjk-em-line:dotted;--cjk-em-thickness:1.5px;--cjk-em-offset:0.33em;--gutter:36px;--gutter-narrow:20px;--maxw:1240px;--info-ink:var(--vermillion-ink);--info-bg:color-mix(in oklch,var(--vermillion) 8%,var(--paper));--info-rule:color-mix(in oklch,var(--vermillion) 30%,var(--rule));--warn-ink:oklch(0.46 0.12 75);--warn-bg:oklch(0.97 0.02 75);--warn-rule:oklch(0.82 0.05 75);--ok-ink:oklch(0.42 0.1 155);--ok-bg:oklch(0.97 0.02 155);--ok-rule:oklch(0.82 0.05 155);--err-ink:oklch(0.46 0.14 25);--err-bg:oklch(0.97 0.02 25);--err-rule:oklch(0.82 0.08 25)}.cjk,.cjk-spacing,:lang(zh){letter-spacing:var(--cjk-track-body)}.cjk-pangu,.cjk-spacing{margin-inline:var(--cjk-gap)}.cjk.cjk.cjk em,:lang(zh):lang(zh):lang(zh) em,[data-lang=zh][data-lang=zh][data-lang=zh] em{font-style:normal;color:inherit;text-decoration:underline;-webkit-text-decoration-style:var(--cjk-em-line);text-decoration-style:var(--cjk-em-line);-webkit-text-decoration-color:var(--cjk-em-color);text-decoration-color:var(--cjk-em-color);text-decoration-thickness:var(--cjk-em-thickness);text-underline-offset:var(--cjk-em-offset)}.cjk.cjk.cjk cite,.cjk.cjk.cjk i,:lang(zh):lang(zh):lang(zh) cite,:lang(zh):lang(zh):lang(zh) i,[data-lang=zh][data-lang=zh][data-lang=zh] cite,[data-lang=zh][data-lang=zh][data-lang=zh] i{font-style:normal}.cjk cite:before,:lang(zh) cite:before,[data-lang=zh] cite:before{content:"《"}.cjk cite:after,:lang(zh) cite:after,[data-lang=zh] cite:after{content:"》"}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}::selection{background:var(--ink);color:var(--paper)}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(rgba(20,22,28,.03) 1px,transparent 0);background-size:3px 3px;mix-blend-mode:multiply;z-index:0}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);position:relative;z-index:1}@media (max-width:720px){.wrap{padding:0 var(--gutter-narrow)}}header.masthead{border-bottom:1px solid var(--rule);padding:16px 0 14px;position:-webkit-sticky;position:sticky;top:0;background:color-mix(in oklch,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.masthead-row{display:flex;justify-content:space-between;gap:24px}.mark,.masthead-row{align-items:baseline}.mark{font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:-.01em;display:inline-flex;gap:10px}.mark .ampersand{color:var(--vermillion);font-style:italic;font-weight:400}.mark .handle{font-family:var(--mono);font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;padding-left:12px;border-left:1px solid var(--rule);margin-left:6px;align-self:center;transform:translateY(-1px)}nav.primary ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-family:var(--sans);font-size:14px;font-weight:500}nav.primary a{color:var(--ink-2);position:relative;padding:2px 0}nav.primary a.active,nav.primary a:hover{color:var(--ink)}nav.primary a.active:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:var(--vermillion);border-radius:2px}.utility{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:12px;color:var(--ink-3)}.utility .dot{width:6px;height:6px;border-radius:50%;background:var(--moss);display:inline-block;margin-right:6px;box-shadow:0 0 0 3px color-mix(in oklch,var(--moss) 25%,transparent)}.btn-pill{border:1px solid var(--rule);border-radius:999px;padding:6px 12px;background:transparent;color:var(--ink);cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:500}.btn-pill:hover{border-color:var(--ink)}@media (max-width:900px){nav.primary ul{gap:16px;font-size:13px}.mark .handle,.utility span:first-child{display:none}}@media (max-width:640px){nav.primary{display:none}}.hamburger{display:none;background:transparent;border:1px solid var(--rule);border-radius:999px;padding:8px 10px;cursor:pointer;flex-direction:column;gap:4px;align-items:center;justify-content:center;width:36px;height:36px}.hamburger span{display:block;width:16px;height:1.5px;background:var(--ink);border-radius:1px;transition:background .15s}.hamburger:hover span{background:var(--vermillion-ink)}.hamburger:focus-visible{outline:2px solid var(--vermillion);outline-offset:2px}@media (max-width:640px){.hamburger{display:inline-flex}.mobile-nav{display:flex}.mobile-nav-backdrop{display:block}}.mobile-nav-backdrop{display:none;position:fixed;inset:0;background:color-mix(in oklch,var(--ink) 30%,transparent);z-index:40;animation:mobile-nav-fade .15s ease-out}@keyframes mobile-nav-fade{0%{opacity:0}to{opacity:1}}.mobile-nav{display:none;position:fixed;top:0;right:0;bottom:0;width:min(340px,88vw);background:var(--paper);border-left:1px solid var(--rule);box-shadow:-12px 0 32px -10px rgba(20,22,28,.2);transform:translateX(100%);transition:transform .22s ease-out;z-index:50;flex-direction:column;padding:20px 24px 24px}.mobile-nav[data-open=true]{transform:translateX(0)}.mobile-nav-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--rule);margin-bottom:20px}.mobile-nav-head .mark{font-family:var(--serif);font-weight:500;font-size:20px;letter-spacing:-.01em}.mobile-nav-head .mark .ampersand{color:var(--vermillion);font-style:italic;font-weight:400;margin-left:6px}.mobile-nav-close{background:transparent;border:0;font-family:var(--serif);font-size:28px;line-height:1;color:var(--ink-2);cursor:pointer;padding:0 8px;border-radius:999px}.mobile-nav-close:hover{color:var(--vermillion-ink)}.mobile-nav-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px}.mobile-nav-list a{display:flex;align-items:baseline;gap:12px;padding:12px 6px;font-family:var(--sans);font-size:16px;font-weight:500;color:var(--ink-2);border-bottom:1px solid var(--rule-soft)}.mobile-nav-list a.active,.mobile-nav-list a:hover{color:var(--ink)}.mobile-nav-list a.active .ch{color:var(--vermillion)}.mobile-nav-list a .ch{font-family:var(--mono);font-size:10px;color:var(--ink-3);letter-spacing:.08em;min-width:24px}.mobile-nav-foot{margin-top:auto;padding-top:20px;border-top:1px solid var(--rule);justify-content:space-between;gap:12px}.hero-rubric,.mobile-nav-foot{display:flex;align-items:center}.hero-rubric{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);gap:18px;margin-bottom:28px;flex-wrap:wrap}.hero-rubric .sep{width:30px;height:1px;background:var(--rule)}section.chapter{padding:72px 0;border-bottom:1px solid var(--rule)}.chapter-head{display:grid;grid-template-columns:120px 1fr auto;grid-gap:32px;gap:32px;align-items:baseline;margin-bottom:36px}@media (max-width:720px){.chapter-head{grid-template-columns:80px 1fr}.chapter-head .all-link{grid-column:1/-1}}.chapter-num{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--vermillion);display:flex;align-items:center;gap:10px}.chapter-num .bar{width:40px;height:1px;background:var(--vermillion)}.chapter-title{font-family:var(--serif);font-weight:400;font-size:38px;letter-spacing:-.015em;margin:0;line-height:1.05}.chapter-title em{font-style:italic;font-weight:300;color:var(--ink-2)}.all-link{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid transparent;padding-bottom:2px}.all-link:hover{color:var(--ink);border-bottom-color:var(--vermillion)}.almanac{display:grid;grid-template-columns:1fr}.almanac .row{display:grid;grid-template-columns:120px 56px 1fr 220px 80px;grid-gap:24px;gap:24px;padding:22px 0;border-top:1px solid var(--rule-soft);align-items:baseline;position:relative;transition:background .15s}.almanac .row:last-child{border-bottom:1px solid var(--rule-soft)}@media (max-width:900px){.almanac .row{grid-template-columns:80px 40px 1fr;grid-auto-rows:auto}.almanac .row .arrow,.almanac .row .tags{display:none}}.almanac .row:hover{background:var(--paper-2)}.almanac .row:hover .article-title{color:var(--vermillion-ink)}.almanac .row:hover .arrow{transform:translateX(4px);color:var(--vermillion)}.almanac .date{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.06em}.almanac .lang-badge,.almanac .lang:not(.code){width:48px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;justify-self:start;font-family:var(--mono);font-size:10px;letter-spacing:.1em;line-height:1;box-sizing:border-box;text-align:center;transition:border-color .15s,background .15s}.almanac .lang-badge.zh,.almanac .lang.zh{background:var(--vermillion-ink);border:1px solid var(--vermillion-ink);color:var(--paper);font-family:var(--cjk-sans);font-size:12px;letter-spacing:0;font-weight:500}.almanac .lang-badge.zh:before{content:"中"}.almanac .lang-badge.zh:after{content:none}.almanac .lang-badge.en,.almanac .lang.en{background:var(--paper-2);border:1px solid var(--rule);color:var(--ink);font-weight:600}.almanac .lang-badge.en:before{content:"EN"}.almanac .lang-badge.en:after{content:none}.almanac .lang-badge.both,.almanac .lang.both{background:var(--paper-2);border:1px solid var(--rule);width:48px;padding:0;gap:0;font-size:0;color:transparent;overflow:hidden}.almanac .lang-badge.both:before,.almanac .lang.both:before{content:"中";display:inline-flex;align-items:center;justify-content:center;width:22px;height:100%;background:var(--vermillion-ink);color:var(--paper);font-family:var(--cjk-sans);font-size:12px;font-weight:500;line-height:1}.almanac .lang-badge.both:after,.almanac .lang.both:after{content:"EN";display:inline-flex;align-items:center;justify-content:center;flex:1 1;height:100%;background:transparent;color:var(--ink);font-family:var(--mono);font-size:9px;letter-spacing:.06em;font-weight:600;line-height:1}.almanac .row:hover .lang-badge.zh,.almanac .row:hover .lang.zh{border-color:var(--vermillion);background:var(--vermillion)}.almanac .row:hover .lang-badge.en,.almanac .row:hover .lang.en{border-color:var(--ink)}.almanac .row:hover .lang-badge.both,.almanac .row:hover .lang.both{border-color:var(--vermillion)}.almanac .row:hover .lang-badge.both:before,.almanac .row:hover .lang.both:before{background:var(--vermillion)}.article-title{font-family:var(--serif);font-size:24px;line-height:1.25;color:var(--ink);font-weight:400;letter-spacing:-.005em;transition:color .15s}.article-title .kicker{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-weight:400}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-family:var(--mono);font-size:10px;border:1px solid var(--rule);padding:3px 7px;border-radius:999px;letter-spacing:.04em}.arrow,.tag{color:var(--ink-3)}.arrow{font-family:var(--serif);font-size:22px;text-align:right;transition:transform .2s,color .2s}.community-strip{padding:72px 0;border-bottom:1px solid var(--rule)}.community-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:1px;gap:1px;background:var(--rule);border:1px solid var(--rule)}@media (max-width:720px){.community-grid{grid-template-columns:1fr}}.metric{background:var(--paper);padding:36px 32px}.metric .num{font-family:var(--serif);font-size:64px;font-weight:300;letter-spacing:-.03em;line-height:1;font-variation-settings:"opsz" 72}.metric .num .unit{font-size:18px;color:var(--ink-3);font-style:italic;margin-left:6px}.metric .label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);margin-top:12px}.metric .desc{font-family:var(--sans);font-size:13px;color:var(--ink-2);margin-top:14px;line-height:1.5;max-width:34ch}footer.footer{padding:60px 0 40px;background:var(--paper-2);position:relative;z-index:1}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;grid-gap:48px;gap:48px;align-items:start}@media (max-width:720px){.footer-grid{grid-template-columns:1fr 1fr}}.footer-grid h4{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px}.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.footer-grid a{color:var(--ink-2);font-size:14px}.footer-grid a:hover{color:var(--vermillion-ink)}.footer-bottom{margin-top:56px;padding-top:24px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:24px;font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.04em;flex-wrap:wrap}.footer-mark{font-family:var(--serif);font-size:22px;color:var(--ink);font-weight:500;letter-spacing:-.01em}.footer-mark em{font-style:italic;font-weight:300;color:var(--vermillion)}.footer-blurb{font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--ink-2);max-width:38ch;margin-top:10px}.breadcrumb{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.breadcrumb a{color:var(--ink-2);border-bottom:1px solid transparent;padding-bottom:1px}.breadcrumb a:hover{color:var(--vermillion-ink);border-bottom-color:var(--vermillion)}.breadcrumb .sep{color:var(--ink-3);opacity:.6}.skip-link{position:absolute;left:50%;top:12px;transform:translate(-50%,-120%);padding:8px 18px;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;z-index:100;transition:transform .15s ease-out}.skip-link:focus,.skip-link:focus-visible{transform:translate(-50%);outline:2px solid var(--vermillion);outline-offset:2px}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--vermillion);outline-offset:2px;border-radius:1px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{body{background:#fff;color:#000}body:before{display:none}.article-foot,.audio-probe,.audio-rail,.filter-bar,.hamburger,.heatmap,.lang-tabs,.mobile-nav,.mobile-nav-backdrop,.skip-link,.ticker,.toc,.toc-lang-switch,.toc.toc-r,.utility,footer.footer,header.masthead,nav.primary{display:none!important}.article-body-wrap.toc-right{display:block}.prose.bilingual{max-width:none;font-size:12pt;line-height:1.5}.prose.bilingual a{color:inherit;border-bottom-color:#999}.prose.bilingual a[href^=http]:after{content:" (" attr(href) ")";font-size:.85em;color:#555}.prose.bilingual .code-fence,.prose.bilingual blockquote,.prose.bilingual figure,.prose.bilingual pre,figure.fig{page-break-inside:avoid;break-inside:avoid}.prose.bilingual h2,.prose.bilingual h3,.prose.bilingual h4{page-break-after:avoid;break-after:avoid}}@media (forced-colors:active){.hamburger span,.mention-row .unread-dot,.utility .dot{background:CanvasText}.almanac .lang,.btn-ink,.btn-outline,.btn-pill,.forum-pending-badge,.forum-vote-pill,.lang-badge,.status-pill,.tag{border:1px solid CanvasText;forced-color-adjust:none;color:CanvasText;background:Canvas}.chapter-num .bar,.hero-rubric .sep,nav.primary a.active:after{background:CanvasText}}.page-head{padding:72px 0 48px;border-bottom:1px solid var(--rule)}.page-head h1{font-family:var(--serif);font-weight:400;font-size:clamp(42px,6vw,76px);line-height:1.02;letter-spacing:-.02em;margin:18px 0;font-variation-settings:"opsz" 72}.page-head h1 em{font-style:italic;font-weight:300;color:var(--vermillion-ink)}.page-head .lede{font-family:var(--serif);font-size:20px;line-height:1.55;color:var(--ink-2);max-width:62ch;margin:0;font-weight:300}.page-head .breadcrumb{margin-bottom:22px}.tab-row{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin:0 -4px}.tab-row button{background:transparent;border:0;padding:10px 14px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;letter-spacing:.02em}.tab-row button:hover{color:var(--ink)}.tab-row button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--vermillion)}.filter-bar{display:flex;align-items:center;gap:8px;padding:14px 0 20px;flex-wrap:wrap;border-bottom:1px solid var(--rule-soft);margin-bottom:8px}.filter-bar .label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-right:6px}.filter-bar .chip{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--ink-2);background:transparent;border:1px solid var(--rule);padding:5px 11px;border-radius:999px;cursor:pointer;letter-spacing:.02em}.filter-bar .chip:hover{color:var(--ink);border-color:var(--ink-3)}.filter-bar .chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.filter-bar .count{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3)}@media (max-width:720px){.filter-bar .count{width:100%;margin-left:0}}.archive .year-head{display:flex;align-items:baseline;gap:24px;padding:48px 0 6px;border-bottom:2px solid var(--ink)}.archive .year-head .y{font-family:var(--serif);font-size:64px;font-weight:300;line-height:1;letter-spacing:-.03em;font-variation-settings:"opsz" 72;color:var(--ink)}.archive .year-head .yr-meta{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink-3);padding-bottom:8px}.archive .almanac{margin-bottom:8px}.archive a.row{color:inherit}.shelf-wrap{position:relative;padding-bottom:10px}.shelf{display:flex;gap:10px;align-items:flex-end;padding:30px 4px 24px;overflow-x:auto;scrollbar-width:thin;border-bottom:2px solid var(--ink);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 32px,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 32px,#000 calc(100% - 32px),transparent)}.spine{flex:0 0 auto;width:52px;border-radius:2px 2px 0 0;padding:18px 10px 14px;color:var(--paper);font-family:var(--serif);font-size:13px;font-weight:500;line-height:1.15;writing-mode:vertical-rl;-webkit-text-orientation:mixed;text-orientation:mixed;transform:rotate(180deg);box-shadow:inset 2px 0 0 rgba(255,255,255,.15),inset -2px 0 0 rgba(0,0,0,.2),0 6px 0 -2px rgba(0,0,0,.08);cursor:pointer;transition:transform .25s ease,margin .25s ease,box-shadow .25s ease;position:relative;border-top:8px solid rgba(0,0,0,.2);display:flex;flex-direction:column;align-items:center;gap:4px}.spine:hover{transform:rotate(180deg) translateY(-14px);box-shadow:inset 2px 0 0 rgba(255,255,255,.2),inset -2px 0 0 rgba(0,0,0,.25),0 18px 24px -10px rgba(50,20,5,.35)}.spine.spine.cjk{writing-mode:vertical-rl;-webkit-text-orientation:upright;text-orientation:upright;transform:none;font-family:var(--cjk-sans);font-size:15px;letter-spacing:var(--cjk-track-eyebrow);padding:16px 10px 14px}.spine.spine.cjk:hover{transform:translateY(-14px);box-shadow:inset 2px 0 0 rgba(255,255,255,.2),inset -2px 0 0 rgba(0,0,0,.25),0 18px 24px -10px rgba(50,20,5,.35)}.spine .num{writing-mode:horizontal-tb;font-family:var(--mono);font-size:9px;letter-spacing:.1em;opacity:.65;text-align:center;flex:0 0 auto}.spine .num,.spine.cjk .num{-webkit-text-orientation:mixed;text-orientation:mixed;transform:rotate(180deg);margin-top:auto}.spine.cjk .num{writing-mode:vertical-rl;margin-bottom:0;padding-top:6px}.spine.tall{height:300px}.spine.mid{height:272px}.spine.short{height:248px}.spine.wide{width:64px}.shelf-rubric{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;padding-top:12px;gap:16px;flex-wrap:wrap}.two-col{display:grid;grid-template-columns:1.5fr 1fr;grid-gap:64px;gap:64px}@media (max-width:900px){.two-col{grid-template-columns:1fr;gap:48px}}.course-list{display:grid;grid-gap:0;gap:0}.course{display:grid;grid-template-columns:60px 1fr auto;grid-gap:20px;gap:20px;padding:22px 0;border-top:1px solid var(--rule-soft);align-items:center;transition:background .15s}.course-list .course:last-child{border-bottom:1px solid var(--rule-soft)}.course:hover{background:var(--paper-2)}.course:hover .title{color:var(--vermillion-ink)}.course .idx{font-family:var(--serif);font-size:40px;font-weight:300;color:var(--ink-3);font-style:italic;line-height:1;font-variation-settings:"opsz" 72;text-align:center}.course .title{font-family:var(--serif);font-size:20px;line-height:1.3;color:var(--ink);font-weight:500;transition:color .15s}.course .sub{font-family:var(--sans);font-size:12px;color:var(--ink-3);margin-top:3px}.course .state{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--rule);padding:4px 9px;border-radius:999px;white-space:nowrap}.course .state.on{color:var(--moss);border-color:color-mix(in oklch,var(--moss) 40%,var(--rule))}.course .state.soon{color:var(--indigo);border-color:color-mix(in oklch,var(--indigo) 40%,var(--rule))}.course .state.gated{color:var(--vermillion);border-color:color-mix(in oklch,var(--vermillion) 40%,var(--rule))}.course-table .course{grid-template-columns:60px 1fr auto auto;gap:20px 28px}.course-table .course .cadence{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);text-align:right;white-space:nowrap}@media (max-width:720px){.course-table .course{grid-template-columns:40px 1fr;row-gap:10px}.course-table .course .cadence,.course-table .course .state{grid-column:2;justify-self:start}}.notes{border:1px solid var(--rule);background:var(--paper-2);padding:28px 28px 10px;position:relative}.notes h3{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--rule)}.note{padding:14px 0;border-bottom:1px dashed var(--rule)}.note:last-child{border-bottom:none}.note .stamp{font-family:var(--mono);font-size:10px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;display:flex;gap:10px;align-items:center}.note .stamp .pill{background:var(--ink);color:var(--paper);padding:1px 6px;border-radius:2px;font-size:9px;letter-spacing:.12em}.note p{font-family:var(--serif);font-size:16px;line-height:1.5;margin:0;color:var(--ink);font-style:italic;font-weight:400}.note cite{display:block;font-family:var(--sans);font-size:11px;color:var(--ink-3);font-style:normal;margin-top:6px}section.hero{padding:90px 0 70px;border-bottom:1px solid var(--rule);position:relative}.hero-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:64px;gap:64px;align-items:end}@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:48px}}h1.hero-title{font-family:var(--serif);font-weight:400;font-size:clamp(48px,7vw,96px);line-height:.95;letter-spacing:-.025em;margin:0 0 28px;color:var(--ink);font-variation-settings:"opsz" 72}h1.hero-title em{font-style:italic;font-weight:300;color:var(--vermillion-ink)}.hero-sub{font-family:var(--serif);font-size:22px;line-height:1.45;color:var(--ink-2);max-width:28ch;margin:0 0 32px;font-weight:300}.hero-meta{font-family:var(--mono);font-size:12px;color:var(--ink-3);display:grid;grid-template-columns:auto 1fr;grid-gap:6px 18px;gap:6px 18px;max-width:420px}.hero-meta dt{text-transform:uppercase;letter-spacing:.08em}.hero-meta dd{margin:0;color:var(--ink-2);font-family:var(--sans);font-size:13px}.colophon-card{border:1px solid var(--rule);background:var(--paper-2);padding:36px 32px 26px;font-family:var(--mono);color:var(--ink);position:relative;display:grid;grid-gap:20px;gap:20px;align-self:stretch;min-height:100%}.colophon-card:before{content:"§ DISPATCH · COLOPHON";position:absolute;top:-9px;left:22px;background:var(--paper);padding:0 10px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--vermillion)}.colophon-card .co-head{display:grid;grid-template-columns:auto 1fr;grid-gap:18px;gap:18px;align-items:center;padding-bottom:4px}.colophon-card .co-poster{display:block;position:relative;color:var(--ink-2)}.colophon-card .co-poster-cover,.colophon-card .co-poster-ident{width:60px;height:84px;overflow:hidden;background:var(--paper-2)}.colophon-card .co-poster-img{position:absolute;inset:0;background-size:cover;background-repeat:no-repeat;background-position:50% 50%}.colophon-card .co-poster-ident .co-poster-img{background-size:70% 70%;background-position:50% 50%;filter:contrast(1.05)}.colophon-card .co-poster-map{width:200px;aspect-ratio:784/459;display:block}.colophon-card .co-poster-map svg{display:block;width:100%;height:100%}.colophon-card a.co-poster-cover{transition:transform .2s ease}.colophon-card a.co-poster-cover:hover{transform:translateY(-1px)}.colophon-card .co-dl{text-align:right;align-self:center;line-height:1.4}.colophon-card .co-dl-k{font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:var(--ink-3);margin-bottom:6px}.colophon-card .co-dl-v{font-family:var(--serif);font-size:14px;font-style:italic;font-weight:300;color:var(--ink-2);line-height:1.35}.colophon-card .co-rule{position:relative;height:1px;background:var(--rule);margin:0}.colophon-card .co-rule span{position:absolute;left:50%;top:-10px;transform:translateX(-50%);background:var(--paper-2);padding:0 12px;font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-3)}.colophon-card .co-body{display:grid;grid-gap:10px;gap:10px;padding:4px 0}.colophon-card .co-line{display:grid;grid-template-columns:20px 72px 1fr;grid-gap:12px;gap:12px;align-items:baseline;padding:4px 0;border-bottom:1px dashed var(--rule-soft)}.colophon-card .co-line:last-child{border-bottom:none}.colophon-card .co-line .k{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--vermillion);font-weight:500}.colophon-card .co-line .l{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.colophon-card .co-line .v{font-family:var(--serif);font-size:16px;font-weight:400;line-height:1.35;color:var(--ink);letter-spacing:-.005em}.colophon-card .co-line .v em{font-style:italic;font-weight:300;color:var(--ink-2)}.colophon-card .co-line .v.accent{color:var(--vermillion-ink)}.colophon-card .co-line .v.accent em{color:var(--vermillion-ink);opacity:.78}.colophon-card .co-line .v a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}.colophon-card .co-line .v a:hover{border-bottom-color:var(--vermillion)}.colophon-card .co-line .v.dispatch-pulse{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.colophon-card .dispatch-spark{display:inline-flex;align-items:flex-end;gap:2px;height:16px;padding:0 2px;border-left:1px solid var(--rule-soft);border-right:1px solid var(--rule-soft)}.colophon-card .dispatch-spark .spark-bar{display:block;width:3px;background:var(--vermillion);border-radius:1px;transition:opacity .2s ease}.colophon-card .co-foot{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase}.colophon-card .co-foot em{font-family:var(--serif);font-style:italic;font-size:12px;color:var(--ink-2);text-transform:none;letter-spacing:0;font-weight:400}.colophon-card .co-stamp{padding:3px 8px;border:1px solid var(--vermillion);color:var(--vermillion);letter-spacing:.16em}.ticker{margin-top:18px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);overflow:hidden;font-family:var(--mono);font-size:12px;color:var(--ink-2);padding:10px 0;position:relative}.ticker .track{display:flex;gap:40px;white-space:nowrap;animation:ticker 60s linear infinite;width:max-content}.ticker .track span{display:inline-flex;gap:10px;align-items:center}.ticker .track b{font-family:var(--mono);font-weight:500;color:var(--vermillion-ink)}@keyframes ticker{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.catalogue{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1px;gap:1px;background:var(--rule);border:1px solid var(--rule)}@media (min-width:1100px){.catalogue{grid-template-columns:repeat(4,1fr)}}@media (max-width:900px){.catalogue{grid-template-columns:1fr 1fr}}@media (max-width:640px){.catalogue{grid-template-columns:1fr}}.book{background:var(--paper);padding:24px 26px 22px;display:grid;grid-template-rows:auto 1fr auto;grid-gap:14px;gap:14px;transition:background .15s;min-height:180px;color:inherit}.book:hover{background:var(--paper-2)}.book:hover .book-title{color:var(--vermillion-ink)}.book-rubric{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase}.book-rubric .no{color:var(--vermillion)}.book-title{font-size:21px;font-weight:500;line-height:1.25;letter-spacing:-.005em;color:var(--ink);margin:0;transition:color .15s}.book-sub,.book-title{font-family:var(--serif)}.book-sub{font-size:14px;font-style:italic;color:var(--ink-2);line-height:1.5;margin-top:6px}.book-foot{display:flex;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;padding-top:10px;border-top:1px solid var(--rule-soft)}.book-foot .lang{color:var(--vermillion-ink);border:0;padding:0;border-radius:0}.about-grid{display:grid;grid-template-columns:240px 1fr;grid-gap:64px;gap:64px}@media (max-width:900px){.about-grid{grid-template-columns:1fr;gap:40px}}.about-aside{position:-webkit-sticky;position:sticky;top:80px;align-self:start;font-family:var(--mono);font-size:12px}.about-aside h4{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--vermillion);margin:0 0 12px}.about-aside h4+ul{margin-bottom:28px}.about-aside ul{list-style:none;padding:0;margin:0;display:grid;grid-gap:6px;gap:6px}.about-aside a{color:var(--ink-2);display:block;border-left:2px solid transparent;padding:3px 0 3px 8px;margin-left:-10px}.about-aside a:hover{color:var(--ink);border-left-color:var(--vermillion)}.longform section{padding:0 0 40px;border-bottom:1px solid var(--rule-soft);margin-bottom:40px}.longform section:last-child{border-bottom:0}.longform h2{font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:-.01em;margin:0 0 18px}.longform h2 em{font-style:italic;font-weight:300;color:var(--ink-2)}.longform p{font-family:var(--serif);font-size:17px;line-height:1.7;color:var(--ink);max-width:62ch}.longform p.muted{color:var(--ink-3);font-size:15px;font-style:italic}.longform ul{font-family:var(--serif);font-size:17px;line-height:1.75;padding-left:20px;max-width:62ch}.longform ul li{margin-bottom:4px}.longform ul li a{color:var(--ink);border-bottom:1px solid var(--rule);padding-bottom:1px}.longform ul li a:hover{color:var(--vermillion-ink);border-bottom-color:var(--vermillion)}.longform .pullquote{position:relative;font-family:var(--cjk-sans);font-style:normal;font-size:.9em;letter-spacing:var(--cjk-track-body);line-height:1.85;color:var(--ink-2);border-left:0;padding:6px 0 6px 22px;margin:1.8em 0;font-weight:300}.longform .pullquote:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--vermillion);border-radius:999px}.longform .pullquote .en{display:block;margin-top:.4em;font-family:var(--serif);font-style:italic;letter-spacing:normal;line-height:1.55;color:var(--ink-3)}.invest-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin-top:14px}@media (max-width:720px){.invest-grid{grid-template-columns:1fr 1fr}}.inv{border:1px solid var(--rule);padding:12px 14px;display:grid;grid-gap:4px;gap:4px;background:var(--paper);transition:background .15s}.inv:hover{background:var(--paper-2)}.inv a,.inv>span:first-child{font-family:var(--serif);font-size:16px;font-weight:500;color:var(--ink)}.inv a:hover{color:var(--vermillion-ink)}.inv .url{font-family:var(--mono);font-size:10px;color:var(--ink-3);letter-spacing:.04em}.inv.closed{opacity:.55}.inv.closed>span:first-child{text-decoration:line-through;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}.heatmap{display:grid;grid-template-columns:repeat(52,1fr);grid-template-rows:repeat(7,auto);grid-auto-flow:column;grid-gap:3px;gap:3px;padding:18px 0 12px}.heatmap .cell{background:var(--rule-soft);border-radius:2px;width:100%;aspect-ratio:1/1}.heatmap .cell.l1{background:color-mix(in oklch,var(--vermillion) 20%,var(--rule-soft))}.heatmap .cell.l2{background:color-mix(in oklch,var(--vermillion) 40%,var(--rule-soft))}.heatmap .cell.l3{background:color-mix(in oklch,var(--vermillion) 65%,var(--rule-soft))}.heatmap .cell.l4{background:var(--vermillion)}.heatmap-legend{display:flex;gap:6px;align-items:center;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--ink-3);padding-bottom:8px;border-bottom:1px solid var(--rule-soft)}.heatmap-legend .sw{display:inline-block;width:10px;height:10px;border-radius:2px}.heatmap-legend>span:last-child{margin-left:auto;text-transform:uppercase}.news-group{padding:32px 0 8px}.news-group h3{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin:0 0 12px}.news-group h3 .c{color:var(--ink-3);font-weight:400}.news-list{display:grid;grid-gap:0;gap:0}.news-item{display:grid;grid-template-columns:80px 1fr;grid-gap:16px;gap:16px;padding:14px 0;border-top:1px solid var(--rule-soft);color:inherit;transition:background .15s}.news-item:last-child{border-bottom:1px solid var(--rule-soft)}.news-item:hover{background:var(--paper-2)}.news-item:hover .t{color:var(--vermillion-ink)}.news-item .src{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);align-self:center;padding:3px 8px;border:1px solid var(--rule);border-radius:999px;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content}.news-item .src.gh{color:var(--ink-2);border-color:var(--rule)}.news-item .src.gist{color:var(--vermillion);border-color:color-mix(in oklch,var(--vermillion) 40%,var(--rule))}.news-item>div:last-child{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.news-item .t{font-family:var(--serif);font-size:17px;font-weight:400;line-height:1.4;color:var(--ink);transition:color .15s;flex:1 1}.news-item time{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.04em;white-space:nowrap}.news-rollup{display:grid;grid-gap:28px;gap:28px}@media (min-width:1100px){.news-rollup{grid-template-columns:1fr 1fr;gap:28px 40px}}.news-repo{page-break-inside:avoid;break-inside:avoid}.news-repo-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--rule)}.news-repo-name{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ink);text-decoration:none;border-bottom:1px dashed transparent}a.news-repo-name:hover{color:var(--vermillion-ink);border-bottom-color:var(--vermillion)}.news-repo-chips{display:flex;gap:6px;flex-wrap:wrap}.news-chip{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:var(--paper-2);border:1px solid var(--rule-soft);border-radius:999px;padding:2px 8px;white-space:nowrap}.news-item.compact{grid-template-columns:56px 1fr;gap:12px;padding:8px 0}.news-item.compact .src{font-size:9px;padding:2px 6px;letter-spacing:.06em}.news-item.compact .t{font-size:14.5px;line-height:1.35}.news-item.compact time{font-size:10px}.news-chip.k-pr,.news-chip.k-push,.news-chip.k-release,.news-item .src.k-pr,.news-item .src.k-push,.news-item .src.k-release{color:var(--vermillion);border-color:color-mix(in oklch,var(--vermillion) 35%,var(--rule))}.news-chip.k-comment,.news-chip.k-issue,.news-chip.k-review,.news-item .src.k-comment,.news-item .src.k-issue,.news-item .src.k-review{color:var(--ink-2);border-color:var(--rule)}.news-chip.k-star,.news-item .src.k-star{color:color-mix(in oklch,var(--vermillion) 70%,var(--ink-2));border-color:color-mix(in oklch,var(--vermillion) 25%,var(--rule))}.news-chip.k-create,.news-chip.k-delete,.news-chip.k-fork,.news-chip.k-other,.news-chip.k-public,.news-item .src.k-create,.news-item .src.k-delete,.news-item .src.k-fork,.news-item .src.k-other,.news-item .src.k-public{color:var(--ink-3);border-color:var(--rule-soft)}.news-empty{font-family:var(--serif);font-size:15px;font-style:italic;color:var(--ink-3);padding:14px 0 6px;margin:0}.news-empty a{color:var(--vermillion-ink);border-bottom:1px dashed var(--vermillion);text-decoration:none}.news-group-fold{padding:24px 0 8px}.news-group-fold>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:4px 0;border-top:1px solid var(--rule-soft)}.news-group-fold>summary::-webkit-details-marker{display:none}.news-group-fold>summary:before{content:"▸";font-family:var(--mono);font-size:10px;color:var(--ink-3);width:12px;display:inline-block;transition:transform .15s}.news-group-fold[open]>summary:before{transform:rotate(90deg)}.news-group-fold>summary h3{margin:0;display:inline}.news-group-fold>summary:hover h3{color:var(--vermillion-ink)}.auth-wrap{min-height:calc(100vh - 260px);display:grid;place-items:center;padding:60px 20px}.auth-card{width:100%;max-width:440px;border:1px solid var(--rule);background:var(--paper);padding:44px 48px;position:relative}.auth-card h1{font-family:var(--serif);font-size:40px;font-weight:400;line-height:1.05;letter-spacing:-.015em;margin:0 0 14px}.auth-card h1 em{font-style:italic;font-weight:300;color:var(--vermillion-ink)}.auth-card .hint{font-family:var(--serif);font-size:15px;color:var(--ink-2);line-height:1.55;margin:0 0 24px;font-style:italic}.auth-card .field{display:grid;grid-gap:6px;gap:6px;margin-bottom:16px}.auth-card .field label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.auth-card .field input{width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--rule);background:transparent;color:var(--ink);font-family:var(--serif);font-size:17px}.auth-card .field input:focus:not(:focus-visible){outline:none}.auth-card .field input:focus{border-bottom-color:var(--vermillion)}.auth-card .submit{display:block;width:100%;margin-top:10px;background:var(--ink);color:var(--paper);border:0;padding:13px 20px;font-family:var(--sans);font-weight:500;font-size:14px;letter-spacing:.04em;cursor:pointer;border-radius:999px}.auth-card .submit:hover{background:var(--vermillion-ink)}.auth-card .alt{margin-top:22px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);text-align:center}.auth-card .alt a{color:var(--vermillion-ink);border-bottom:1px solid var(--vermillion)}.auth-stage{min-height:calc(100vh - 120px);display:grid;grid-template-columns:1fr 1fr;align-items:stretch}@media (max-width:900px){.auth-stage{grid-template-columns:1fr}.auth-stage .auth-aside{display:none}}.auth-aside{border-right:1px solid var(--rule);padding:72px 56px;background:var(--paper-2);position:relative}.auth-aside h2{font-family:var(--serif);font-weight:300;font-size:44px;line-height:1.1;letter-spacing:-.02em;margin:0 0 18px}.auth-aside h2 em{color:var(--vermillion-ink);font-style:italic}.auth-aside p{font-size:17px;color:var(--ink-2);line-height:1.55}.auth-aside .quote,.auth-aside p{font-family:var(--serif);max-width:36ch}.auth-aside .quote{font-style:italic;font-weight:300;font-size:22px;line-height:1.4;color:var(--ink);border-left:2px solid var(--vermillion);padding-left:18px;margin:40px 0 0}.auth-aside .quote cite{display:block;font-size:12px;font-style:normal;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:12px}.auth-stage .auth-card-wrap{display:flex;align-items:center;justify-content:center;padding:40px 20px}.auth-stage .auth-card{padding:44px 48px;max-width:440px;width:100%;border:0;background:transparent}.auth-card .kicker,.auth-stage .auth-card .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--vermillion);margin-bottom:12px}.auth-card .field-note{float:right;text-transform:none;letter-spacing:0;color:var(--ink-3);font-size:10px}.auth-card .row-links{display:flex;justify-content:space-between;margin-top:18px;font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.06em}.auth-card .row-links a{color:var(--ink-2);border-bottom:1px solid var(--rule)}.auth-card .row-links a:hover{color:var(--vermillion-ink);border-bottom-color:var(--vermillion)}.auth-card .divider{text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--ink-3);margin:28px 0 16px;text-transform:uppercase;position:relative}.auth-card .divider:after,.auth-card .divider:before{content:"";position:absolute;top:50%;width:calc(50% - 24px);height:1px;background:var(--rule)}.auth-card .divider:before{left:0}.auth-card .divider:after{right:0}.auth-card .oauth-row{margin-top:0;display:grid;grid-gap:10px;gap:10px}.auth-card .oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--rule);background:var(--paper);padding:11px 14px;border-radius:999px;font-family:var(--sans);font-size:13px;color:var(--ink);text-decoration:none;cursor:pointer;transition:border-color .15s,color .15s}.auth-card .oauth-btn:hover{border-color:var(--ink-3);color:var(--vermillion-ink)}.auth-card .oauth-btn svg{flex:0 0 auto;width:16px;height:16px}.auth-card .alert{margin:14px 0 0;padding:10px 14px;border-left:2px solid var(--vermillion);background:var(--paper-2);font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--ink-2)}.auth-card .alert[data-tone=error]{border-left-color:var(--vermillion);color:var(--ink)}.auth-card .alert[data-tone=success]{border-left-color:var(--ink-3)}.auth-card .alert .alert-action{display:inline-block;margin-top:6px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--vermillion-ink);background:none;border:0;border-bottom:1px solid var(--vermillion);padding:0;cursor:pointer}.auth-card .alert .alert-action:disabled{opacity:.5;cursor:not-allowed}.auth-card .checkbox-row{display:flex;gap:10px;align-items:flex-start;margin:20px 0;font-family:var(--serif);font-size:14px;color:var(--ink-2);line-height:1.5}.auth-card .checkbox-row input[type=checkbox]{margin-top:4px;flex:0 0 auto;accent-color:var(--vermillion)}.auth-card .checkbox-row a{color:var(--vermillion-ink);border-bottom:1px solid var(--vermillion)}.auth-card .submit:disabled{opacity:.5;cursor:not-allowed}.auth-card .submit:disabled:hover{background:var(--ink)}.auth-card .phone-row{display:flex;gap:8px;align-items:stretch;border-bottom:1px solid var(--rule)}.auth-card .phone-row:focus-within{border-bottom-color:var(--vermillion)}.auth-card .phone-row .dial-code{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:10px 22px 10px 0;font-family:var(--mono);font-size:13px;color:var(--ink);cursor:pointer;flex:0 0 auto;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 12px) 50%,calc(100% - 6px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}.auth-card .field .phone-row input,.auth-card .phone-row input{border:0;flex:1 1;padding:10px 0;background:transparent;font-family:var(--mono);font-size:16px;color:var(--ink)}.auth-card .phone-row input:focus:not(:focus-visible){outline:none}.auth-card .field-hint{margin:6px 0 0;font-family:var(--sans);font-size:12px;color:var(--ink-3);line-height:1.5}.meta-pair{margin:18px 0 0;padding:0;border-top:1px solid var(--rule)}.meta-pair>div{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--rule-soft)}.meta-pair dt{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0}.meta-pair dd{font-family:var(--serif);font-size:16px;color:var(--ink);margin:0;text-align:right}.meta-pair .muted{color:var(--ink-3);font-style:italic}.dash-head{padding:60px 0 32px;border-bottom:1px solid var(--rule)}.dash-head .wrap>.hero-rubric{margin-bottom:8px}.dash-head h1{font-family:var(--serif);font-size:52px;font-weight:400;letter-spacing:-.02em;margin:12px 0 0;line-height:1.05}.dash-head h1 em{color:var(--vermillion-ink);font-weight:300;font-style:italic}.dash-head .hello{font-family:var(--serif);font-size:20px;color:var(--ink-2);font-style:italic}.dash-grid{display:grid;grid-template-columns:260px minmax(0,1fr);grid-gap:56px;gap:56px;padding:40px 0}@media (max-width:900px){.dash-grid{grid-template-columns:minmax(0,1fr)}}.dash-side{font-family:var(--mono);font-size:12px;color:var(--ink-3)}.dash-side .who{display:flex;gap:14px;align-items:center;margin-bottom:28px}.dash-side .avatar{width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:var(--serif);font-size:24px;font-weight:500;overflow:hidden;flex:0 0 auto}.dash-side .avatar img{width:100%;height:100%;object-fit:cover}.dash-side .who .n{font-family:var(--serif);font-size:18px;color:var(--ink);font-weight:500}.dash-side .who .h{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.dash-side h4{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--vermillion);margin:24px 0 8px}.dash-side ul{list-style:none;padding:0;margin:0;display:grid;grid-gap:6px;gap:6px}.dash-side a{color:var(--ink-2);padding:4px 0;display:block;font-family:var(--mono);font-size:12px}.dash-side a:hover{color:var(--ink)}.dash-side a.active{color:var(--ink);border-left:2px solid var(--vermillion);padding-left:10px;margin-left:-12px}.dash-side form{margin:0}.dash-side button.signout-link{background:none;border:0;padding:4px 0;font-family:var(--mono);font-size:12px;color:var(--ink-2);cursor:pointer;text-align:left}.dash-side button.signout-link:hover{color:var(--vermillion-ink)}.card{border:1px solid var(--rule);background:var(--paper);padding:24px;margin-bottom:16px}.card>h3{font-family:var(--serif);font-size:20px;font-weight:500;margin:0 0 4px;letter-spacing:-.005em}.card>.sub{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px}.card .row-k{display:grid;grid-template-columns:130px minmax(0,1fr) auto;grid-gap:12px;gap:12px;padding:10px 0;border-top:1px dashed var(--rule-soft);font-family:var(--serif);font-size:16px;align-items:baseline}.card .row-k:first-of-type{border-top:0}.card .row-k .k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.card .row-k .v{color:var(--ink);overflow-wrap:anywhere;min-width:0}.card .row-k a,.card .row-k button.linklike{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--vermillion-ink);border-bottom:1px solid var(--vermillion);background:none;padding:0;cursor:pointer}.card .row-k a:hover,.card .row-k button.linklike:hover{color:var(--ink);border-bottom-color:var(--ink)}@media (max-width:560px){.card .row-k{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.card .row-k .k{grid-column:1/-1}}.course-badge{display:inline-flex;gap:8px;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid var(--rule);font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-2);white-space:nowrap}.course-badge.on{color:var(--vermillion-ink);border-color:color-mix(in oklch,var(--vermillion) 40%,var(--rule))}.card .inline-form{display:grid;grid-gap:12px;gap:12px;padding:16px 0 0;border-top:1px dashed var(--rule-soft)}.card .inline-form .field{display:grid;grid-gap:6px;gap:6px}.card .inline-form .field label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.card .inline-form .field input,.card .inline-form .field textarea{width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--rule);background:transparent;color:var(--ink);font-family:var(--serif);font-size:16px}.card .inline-form .field input:focus:not(:focus-visible),.card .inline-form .field textarea:focus:not(:focus-visible){outline:none}.card .inline-form .field input.mono{font-family:var(--mono);font-size:14px;letter-spacing:.04em}.card .inline-form .field input:focus,.card .inline-form .field input[aria-invalid=true]{border-bottom-color:var(--vermillion)}.card .inline-form .field-hint{margin:4px 0 0;font-family:var(--sans);font-size:12px;color:var(--ink-3);line-height:1.5}.card .inline-form .actions{display:flex;gap:12px;align-items:center;margin-top:6px}.card .inline-form .saved-hint{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--vermillion-ink)}.avatar-upload{display:flex;align-items:center;gap:16px;margin-bottom:12px}.avatar-upload .picker{position:relative;width:64px;height:64px;border-radius:50%;overflow:hidden;border:1px solid var(--rule);background:var(--paper-2);cursor:pointer;display:grid;place-items:center;flex:0 0 auto}.avatar-upload .picker img{width:100%;height:100%;object-fit:cover}.avatar-upload .picker .initials{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink)}.avatar-upload .picker:hover:after{content:"edit";position:absolute;inset:0;background:color-mix(in oklch,var(--ink),transparent 30%);color:var(--paper);font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;display:grid;place-items:center}.avatar-upload .hint{font-family:var(--sans);font-size:12px;color:var(--ink-3);line-height:1.5}.btn-ink{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:0;border-radius:999px;background:var(--ink);color:var(--paper);font-family:var(--sans);font-weight:500;font-size:13px;letter-spacing:.04em;cursor:pointer;text-decoration:none;transition:background .15s}.btn-ink:hover{background:var(--vermillion-ink)}.btn-ink:disabled{opacity:.5;cursor:not-allowed}.btn-ink:disabled:hover{background:var(--ink)}.btn-ink.sm{padding:6px 12px;font-size:12px}.btn-outline{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--rule);border-radius:999px;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:500;font-size:13px;letter-spacing:.04em;cursor:pointer;text-decoration:none;transition:border-color .15s,color .15s}.btn-outline:hover{border-color:var(--ink-3);color:var(--vermillion-ink)}.btn-outline:disabled{opacity:.5;cursor:not-allowed}.btn-outline.sm{padding:6px 12px;font-size:12px}.btn-ghost{background:transparent;border:0;padding:6px 10px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);cursor:pointer;text-decoration:none}.btn-ghost:hover{color:var(--vermillion-ink)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--rule);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.status-pill.on{color:var(--vermillion-ink);border-color:color-mix(in oklch,var(--vermillion) 40%,var(--rule))}.method-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px dashed var(--rule-soft)}.method-row:first-of-type{border-top:0}.method-row .label{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:16px;color:var(--ink)}.method-row .label svg{width:18px;height:18px;color:var(--ink-3);flex:0 0 auto}.method-row .actions{display:flex;align-items:center;gap:10px}.mention-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 0;border-top:1px dashed var(--rule-soft)}.mention-row:first-of-type{border-top:0}.mention-row .body{flex:1 1;min-width:0}.mention-row .body a.title{display:block;font-family:var(--serif);font-size:18px;font-weight:500;color:var(--ink);letter-spacing:-.005em;margin-bottom:4px}.mention-row .body a.title:hover{color:var(--vermillion-ink)}.mention-row .body .meta{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-3)}.mention-row .actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}.mention-row .unread-dot{width:8px;height:8px;border-radius:50%;background:var(--vermillion);display:inline-block}.reborn-tablist{display:flex;gap:18px;align-items:center;border-bottom:1px solid var(--rule);padding:0;margin:0 0 18px}.reborn-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;padding:10px 0;margin-bottom:-1px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);cursor:pointer;transition:color .15s,border-color .15s}.reborn-tab:hover{color:var(--ink)}.reborn-tab[data-state=active]{color:var(--vermillion-ink);border-bottom-color:var(--vermillion)}.reborn-tabpanel:focus:not(:focus-visible){outline:none}.reborn-tabpanel[data-state=inactive]{display:none}.cta-block{margin:32px 0;padding:28px 32px;border:1px solid var(--rule);background:var(--paper-2);text-align:center}.cta-block h3{font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:-.005em;margin:0 0 6px;color:var(--ink)}.cta-block p{margin:0 0 18px;font-family:var(--serif);font-size:16px;color:var(--ink-2);line-height:1.55}.code-tabs{margin:24px 0;border:1px solid var(--rule);background:var(--paper-2)}.code-tabs .reborn-tablist{padding:0 18px;margin:0;background:var(--paper)}.code-tab-pane{position:relative}.code-tab-pane .code-tab-copy{position:absolute;top:12px;right:12px;z-index:1;opacity:0;transition:opacity .15s}.code-tab-pane:hover .code-tab-copy{opacity:1}.code-tabs .shiki-wrapper{overflow-x:auto;font-size:14px}.code-tabs .shiki-wrapper pre{margin:0;padding:18px 22px;overflow-x:auto}.block-tabs{margin:24px 0}.thread-form,.thread-form-body{display:grid;grid-gap:20px;gap:20px}.thread-form .field,.thread-form-body .field{display:grid;grid-gap:6px;gap:6px}.thread-form .field label,.thread-form-body .field label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.thread-form .field input,.thread-form-body .field input{width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--rule);background:transparent;font-family:var(--serif);font-size:16px;color:var(--ink)}.thread-form .field input:focus:not(:focus-visible),.thread-form-body .field input:focus:not(:focus-visible){outline:none}.thread-form .field input:focus,.thread-form-body .field input:focus{border-bottom-color:var(--vermillion)}.thread-form .field-hint,.thread-form-body .field-hint{margin:4px 0 0;font-family:var(--sans);font-size:12px;color:var(--ink-3);line-height:1.5}.reborn-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:10px 22px 10px 0;font-family:var(--mono);font-size:13px;color:var(--ink);cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 12px) 50%,calc(100% - 6px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}.reborn-select:focus{border-bottom-color:var(--vermillion)}.reborn-select:focus:not(:focus-visible){outline:none}.reply-form{display:grid;grid-gap:14px;gap:14px}.reply-form-actions{display:flex;align-items:center;gap:12px}.reply-form-counter{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3)}.sync-import-row{display:flex;align-items:center;gap:12px}.sync-import-status{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-3)}.gh-pre-check{margin:0;padding:18px 22px;border:1px solid var(--rule);background:var(--paper-2);display:grid;grid-gap:10px;gap:10px;justify-items:start}.gh-pre-check p{margin:0;font-family:var(--serif);font-size:15px;color:var(--ink);line-height:1.5}.gh-pre-check p.hint{font-size:13px;color:var(--ink-3)}.github-status{margin:0;font-family:var(--serif);font-size:14px;color:var(--ink-3);font-style:italic}.gh-repos{margin-top:6px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-3)}.gh-repos summary{cursor:pointer;padding:4px 0}.gh-repos ul{list-style:none;padding:6px 0 0;margin:0;display:grid;grid-gap:2px;gap:2px}.link-summary{margin:24px 0;padding:20px 24px;border:1px solid var(--rule);background:var(--paper)}.link-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.link-summary-head h2{font-family:var(--serif);font-size:18px;font-weight:500;margin:0;letter-spacing:-.005em;color:var(--ink)}.link-summary-head h2 a{color:var(--ink)}.link-summary-head h2 a:hover{color:var(--vermillion-ink)}.link-summary-head h2 .ext-icon{display:inline-block;width:14px;height:14px;margin-left:6px;vertical-align:text-bottom}.link-summary-host{margin:4px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-3)}.link-summary-body{margin-top:14px}.link-summary-disclaimer{display:inline-block;margin-top:14px;padding:4px 10px;border:1px solid var(--rule);border-radius:999px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.link-summary-shimmer{display:grid;grid-gap:8px;gap:8px}.link-summary-shimmer span{display:block;height:14px;background:var(--paper-2);animation:link-shimmer 1.4s ease-in-out infinite}.link-summary-shimmer p{margin:6px 0 0;font-family:var(--serif);font-size:14px;color:var(--ink-3);font-style:italic}@keyframes link-shimmer{0%,to{opacity:.6}50%{opacity:1}}.link-summary-status{display:grid;grid-gap:10px;gap:10px;align-items:start}.link-summary-status p{margin:0;font-family:var(--serif);font-size:14px;color:var(--ink-2);line-height:1.55}.link-summary-status .diagnostic{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-3);word-break:break-all}