@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-serif-sc-400.woff2) format("woff2")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/noto-serif-sc-600.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2")}:root{color-scheme:dark;--bg: #070b16;--bg-soft: #090e1b;--surface: #0b1222;--surface-2: #101a2e;--ink: #e8eef9;--ink-strong: #f7faff;--muted: #94a2bb;--faint: #6d7c96;--line: #1c2740;--line-strong: #2b3b5a;--hair: rgb(148 162 187 / .16);--hair-soft: rgb(148 162 187 / .08);--accent: #d9a441;--accent-lit: #f5e2b4;--accent-soft: rgb(217 164 65 / .12);--accent-line: rgb(217 164 65 / .42);--signal: #8fd8cc;--flare: #c4553c;--field: radial-gradient(circle at 18% 22%, rgb(255 255 255 / .5) 0 1px, transparent 1.7px), radial-gradient(circle at 71% 64%, rgb(255 255 255 / .36) 0 1.1px, transparent 1.8px), radial-gradient(circle at 43% 87%, rgb(255 255 255 / .28) 0 .9px, transparent 1.6px), radial-gradient(1100px 620px at 78% -8%, rgb(44 70 124 / .38), transparent 62%), radial-gradient(900px 560px at 4% 104%, rgb(60 42 92 / .3), transparent 60%);--field-size: 260px 260px, 340px 340px, 190px 190px, auto, auto;--field-repeat: repeat, repeat, repeat, no-repeat, no-repeat;--paper: var(--surface);--sticky-bg: #16223a;--sticky-ink: #dae3f4;--marker: rgb(217 164 65 / .22);--dot: rgb(232 238 249 / .05);--measure: clamp(34rem, 30vw + 22rem, 44rem);--page: 42rem;--page-wide: 66rem;--header-h: 4.25rem;--astro-code-background: #090f1c;--astro-code-foreground: #dfe6f4;--astro-code-token-comment: #5f708c;--astro-code-token-constant: #d9a441;--astro-code-token-function: #8fd8cc;--astro-code-token-keyword: #e08a6a;--astro-code-token-punctuation: #8796ae;--astro-code-token-string: #a8c98f;--astro-code-token-string-expression: #c9b98f;--display: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--body: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--hand: "IBM Plex Mono", "Noto Serif SC", "Songti SC", monospace;--brush: var(--display);--sketch: 5px;--sketch-sm: 3px;--shadow-rest: 0 24px 60px -42px rgb(0 0 0 / .9);--shadow-lift: 0 34px 80px -46px rgb(0 0 0 / .95);--ease-spring: cubic-bezier(.16, 1, .3, 1);--ease-out: cubic-bezier(.22, .61, .36, 1)}[data-theme=light]{color-scheme:light;--bg: #eef1f7;--bg-soft: #e7ebf3;--surface: #f8fafe;--surface-2: #ffffff;--ink: #101a2c;--ink-strong: #060d1a;--muted: #5a6a83;--faint: #7d8ca3;--line: #cfd8e6;--line-strong: #b4c2d6;--hair: rgb(16 26 44 / .14);--hair-soft: rgb(16 26 44 / .07);--accent: #96661c;--accent-lit: #6f4a10;--accent-soft: rgb(150 102 28 / .1);--accent-line: rgb(150 102 28 / .4);--signal: #1f6f74;--flare: #a8462f;--field: linear-gradient(to right, rgb(16 26 44 / .05) 1px, transparent 1px), linear-gradient(to bottom, rgb(16 26 44 / .05) 1px, transparent 1px), radial-gradient(900px 500px at 82% -10%, rgb(150 102 28 / .08), transparent 60%);--field-size: 52px 52px, 52px 52px, auto;--field-repeat: repeat, repeat, no-repeat;--sticky-bg: #e2e8f3;--sticky-ink: #16223a;--marker: rgb(150 102 28 / .18);--dot: rgb(16 26 44 / .05);--shadow-rest: 0 20px 46px -38px rgb(16 26 44 / .55);--shadow-lift: 0 30px 70px -42px rgb(16 26 44 / .6);--astro-code-background: #e9eff8;--astro-code-foreground: #1a2438;--astro-code-token-comment: #7d8ca3;--astro-code-token-constant: #8a5a12;--astro-code-token-function: #1f6f74;--astro-code-token-keyword: #a8462f;--astro-code-token-punctuation: #64748b;--astro-code-token-string: #3f6b3a;--astro-code-token-string-expression: #7a5a2a}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--bg: #eef1f7;--bg-soft: #e7ebf3;--surface: #f8fafe;--surface-2: #ffffff;--ink: #101a2c;--ink-strong: #060d1a;--muted: #5a6a83;--faint: #7d8ca3;--line: #cfd8e6;--line-strong: #b4c2d6;--hair: rgb(16 26 44 / .14);--hair-soft: rgb(16 26 44 / .07);--accent: #96661c;--accent-lit: #6f4a10;--accent-soft: rgb(150 102 28 / .1);--accent-line: rgb(150 102 28 / .4);--signal: #1f6f74;--flare: #a8462f;--field: linear-gradient(to right, rgb(16 26 44 / .05) 1px, transparent 1px), linear-gradient(to bottom, rgb(16 26 44 / .05) 1px, transparent 1px), radial-gradient(900px 500px at 82% -10%, rgb(150 102 28 / .08), transparent 60%);--field-size: 52px 52px, 52px 52px, auto;--field-repeat: repeat, repeat, no-repeat;--sticky-bg: #e2e8f3;--sticky-ink: #16223a;--marker: rgb(150 102 28 / .18);--dot: rgb(16 26 44 / .05);--shadow-rest: 0 20px 46px -38px rgb(16 26 44 / .55);--shadow-lift: 0 30px 70px -42px rgb(16 26 44 / .6);--astro-code-background: #eef2f9;--astro-code-foreground: #1a2438;--astro-code-token-comment: #7d8ca3;--astro-code-token-constant: #8a5a12;--astro-code-token-function: #1f6f74;--astro-code-token-keyword: #a8462f;--astro-code-token-punctuation: #64748b;--astro-code-token-string: #3f6b3a;--astro-code-token-string-expression: #7a5a2a}}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);color:var(--ink);scroll-behavior:smooth;scroll-padding-top:5.5rem;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}html,body{margin:0;min-height:100%}body{position:relative;display:flex;flex-direction:column;min-height:100dvh;font-family:var(--body);font-size:1.0625rem;line-height:1.88;letter-spacing:.012em;text-rendering:optimizeLegibility;background:var(--bg);transition:background-color .4s ease,color .4s ease}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:var(--field);background-size:var(--field-size);background-repeat:var(--field-repeat)}main{position:relative;z-index:1;flex:1 0 auto}::selection{background:var(--accent);color:#0a0f1c}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration-color:var(--accent-line);text-decoration-thickness:1px;text-underline-offset:.26em;text-decoration-skip-ink:auto;transition:color .25s var(--ease-out)}a:hover{color:var(--accent-lit)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:1px solid var(--accent);outline-offset:3px;border-radius:2px}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}.wrap{width:min(calc(100% - 2.5rem),var(--page));margin-inline:auto}.wrap--wide{width:min(calc(100% - 2.5rem),var(--page-wide));margin-inline:auto}.skip-link{position:fixed;top:.8rem;left:.8rem;z-index:100;padding:.5rem .95rem;font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-decoration:none;color:#0a0f1c;background:var(--accent);border-radius:2px;transform:translateY(-300%);transition:transform .3s var(--ease-out)}.skip-link:focus-visible{transform:none}.site-header{position:sticky;top:0;z-index:50;min-height:var(--header-h);display:flex;align-items:center;background:color-mix(in srgb,var(--bg) 88%,transparent);border-bottom:1px solid var(--hair);-webkit-backdrop-filter:blur(16px) saturate(130%);backdrop-filter:blur(16px) saturate(130%);transition:background-color .4s ease,border-color .4s ease}.site-header .wrap,.site-header .wrap--wide{display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.62rem;font-family:var(--mono);font-size:.92rem;font-weight:500;letter-spacing:.18em;text-decoration:none;color:var(--ink-strong)}.brand:hover{color:var(--ink-strong)}.brand-mark{display:inline-flex;width:1.45rem;height:1.45rem;color:var(--accent)}.brand-mark svg{width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.25}.brand-mark .brand-orbit{transform-origin:12px 12px;transition:transform .7s var(--ease-out)}.brand:hover .brand-mark .brand-orbit{transform:rotate(-24deg)}.brand-name:after{content:"";display:inline-block;width:.32em;height:.32em;margin-left:.34em;border-radius:50%;background:var(--accent);vertical-align:.16em}.brand-sub{font-family:var(--display);font-size:.72rem;font-weight:400;letter-spacing:.3em;color:var(--faint)}.nav{display:flex;align-items:center;gap:.1rem;font-family:var(--mono);font-size:.8rem;letter-spacing:.12em}.nav a{position:relative;padding:.42rem .72rem;text-decoration:none;color:var(--muted);transition:color .25s var(--ease-out)}.nav a:after{content:"";position:absolute;left:.72rem;right:.72rem;bottom:.12rem;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform .4s var(--ease-out)}.nav a:hover{color:var(--ink)}.nav a:hover:after,.nav a[aria-current=page]:after{transform:scaleX(1)}.nav a[aria-current=page]{color:var(--ink-strong)}.nav-no{margin-right:.5em;font-size:.72em;color:var(--faint)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-left:.55rem;color:var(--muted);border:1px solid var(--hair);border-radius:50%;line-height:1;transition:color .25s,border-color .25s,transform .45s var(--ease-spring)}.theme-toggle:hover{color:var(--accent);border-color:var(--accent-line);transform:rotate(18deg)}.theme-toggle .icon-sun{display:block}.theme-toggle .icon-moon,[data-theme=light] .theme-toggle .icon-sun{display:none}[data-theme=light] .theme-toggle .icon-moon{display:block}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .theme-toggle .icon-sun{display:none}:root:not([data-theme=dark]) .theme-toggle .icon-moon{display:block}}.site-footer{position:relative;z-index:1;margin-top:5rem;padding:1.7rem 0 2.6rem;border-top:1px solid var(--hair);color:var(--muted);font-family:var(--mono);font-size:.74rem;letter-spacing:.1em}.site-footer .wrap,.site-footer .wrap--wide{display:flex;justify-content:space-between;align-items:center;gap:1rem 2rem;flex-wrap:wrap}.colophon{display:flex;align-items:center;gap:.7rem;margin:0}.colophon-mark{width:.42rem;height:.42rem;border-radius:50%;background:var(--accent);box-shadow:0 0 .6rem #d9a441b3}.footer-links{display:flex;align-items:center;gap:.15rem;margin:0}.footer-links a{color:var(--muted);text-decoration:none;padding:.1rem .3rem;transition:color .25s}.footer-links a:hover{color:var(--accent-lit)}.footer-links .sep{color:var(--line-strong)}main:has(.galaxy)+.site-footer{margin-top:0}.galaxy{--galaxy-ink: #070b16;--galaxy-gold: #d9a441;--galaxy-gold-lit: #f7e8c8;--galaxy-muted: rgb(214 200 173 / .72);position:relative;isolation:isolate}.galaxy-stage{position:relative;height:calc(100svh - var(--header-h));min-height:32rem;overflow:hidden;touch-action:pan-y;border-bottom:1px solid var(--hair);background:radial-gradient(circle at 46% 48%,rgb(255 196 110 / .13) 0,transparent 30%),radial-gradient(ellipse at 16% 78%,rgb(36 54 95 / .3) 0,transparent 58%),var(--galaxy-ink)}.galaxy-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;transition:opacity 1.4s var(--ease-out)}.galaxy.is-live .galaxy-canvas{opacity:1}.galaxy-caption{position:absolute;top:clamp(2.6rem,9vh,5.6rem);left:max(1.25rem,calc((100% - var(--page-wide)) / 2));z-index:2;max-width:27rem;isolation:isolate;pointer-events:none}.galaxy-caption:before{content:"";position:absolute;inset:-6rem -11rem -5rem;z-index:-1;pointer-events:none;background:radial-gradient(farthest-side at 34% 40%,rgb(7 11 22 / .88) 0%,rgb(7 11 22 / .62) 42%,rgb(7 11 22 / .3) 68%,rgb(7 11 22 / .09) 88%,transparent 100%)}.galaxy-kicker{display:flex;align-items:center;gap:.7em;margin:0 0 1.15rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.26em;color:#e6ba74eb}.galaxy-kicker:before{content:"";width:.4em;height:.4em;border:1px solid currentColor;border-radius:50%;box-shadow:0 0 .5em #ffc87899}.galaxy-title{margin:0;font-family:var(--display);font-weight:600;font-size:clamp(2.5rem,5.4vw,4.15rem);line-height:1.16;letter-spacing:.08em;color:var(--galaxy-gold-lit);text-shadow:0 0 1.6rem rgb(255 200 120 / .42),0 0 4.2rem rgb(255 150 70 / .2)}.galaxy-sub{max-width:17.5rem;margin:1.35rem 0 0;font-size:.92rem;line-height:2;color:#e9e1d0d6;text-shadow:0 1px 10px rgb(7 11 22 / .9)}.galaxy-hint{display:flex;align-items:center;gap:.6em;margin:0;font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;color:#d6c8ad9e;text-shadow:0 1px 8px rgb(7 11 22 / .9)}.galaxy-hint:before{content:"";width:1.6em;height:1px;background:currentColor}.galaxy-readout{position:absolute;top:clamp(2.9rem,9vh,6rem);right:max(1.25rem,calc((100% - var(--page-wide)) / 2));z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;color:#d6c8ad6b;pointer-events:none}.galaxy-labels{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .9s var(--ease-out) .3s}.galaxy.is-live .galaxy-labels{opacity:1}.galaxy-label{position:absolute;top:0;left:0;display:grid;grid-template-columns:auto auto;grid-template-areas:"no name" "no note";gap:.08rem .6rem;padding:.28rem .7rem .28rem .1rem;color:#f6ecd8f0;text-decoration:none;white-space:nowrap;pointer-events:auto;will-change:transform;text-shadow:0 0 1px rgb(7 11 22 / .9),0 1px 6px rgb(7 11 22 / .95),0 0 20px rgb(7 11 22 / .85);transition:color .28s}.galaxy-label-no{grid-area:no;align-self:start;padding:.1em .34em;margin-top:.14em;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;color:#f5d18cf2;border:1px solid rgb(217 164 65 / .35);border-radius:2px;background:#070b1673;transition:color .28s,border-color .28s}.galaxy-label-name{grid-area:name;font-family:var(--display);font-weight:600;font-size:1.02rem;letter-spacing:.12em}.galaxy-label-note{grid-area:note;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:#e4d7beb3}.galaxy-label:before{content:"";position:absolute;top:50%;left:calc(-1 * var(--line-w, 14px));width:var(--line-w, 14px);height:1px;background:linear-gradient(90deg,transparent,currentColor);opacity:.4;transition:opacity .28s}.galaxy-label:after{content:"";position:absolute;top:calc(50% - 1.5px);left:calc(-1 * var(--line-w, 14px) - 3px);width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5;transition:opacity .28s}.galaxy-label-name:after{content:"";display:inline-block;width:.4em;height:.4em;margin-left:.55em;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg) translateY(-.12em);opacity:0;transition:opacity .28s,transform .28s var(--ease-out)}.galaxy-label[data-side=left]:before{right:calc(-1 * var(--line-w, 14px));left:auto;background:linear-gradient(270deg,transparent,currentColor)}.galaxy-label[data-side=left]:after{right:calc(-1 * var(--line-w, 14px) - 3px);left:auto}.galaxy-label[data-side=below]{padding-inline:.4rem;justify-items:center}.galaxy-label[data-side=below]:before{top:auto;bottom:calc(100% + 1px);left:50%;width:1px;height:var(--line-h, 10px);background:linear-gradient(180deg,transparent,currentColor);transform:translate(-50%)}.galaxy-label[data-side=below]:after{top:auto;bottom:calc(100% + var(--line-h, 10px));left:calc(50% - 1.5px)}.galaxy-label:hover,.galaxy-label.is-hot,.galaxy-label:focus-visible{color:#fff3d8}.galaxy-label:hover .galaxy-label-no,.galaxy-label.is-hot .galaxy-label-no,.galaxy-label:focus-visible .galaxy-label-no{color:var(--galaxy-gold-lit);border-color:#d9a441bf}.galaxy-label:hover .galaxy-label-name,.galaxy-label.is-hot .galaxy-label-name{text-shadow:0 0 1.2rem rgb(255 214 150 / .65)}.galaxy-label:hover:before,.galaxy-label.is-hot:before,.galaxy-label:hover:after,.galaxy-label.is-hot:after{opacity:.9}.galaxy-label:hover .galaxy-label-name:after,.galaxy-label.is-hot .galaxy-label-name:after{opacity:.85;transform:rotate(45deg) translate(.1em,-.12em)}.galaxy-label:focus-visible{outline:1px solid rgb(217 164 65 / .75);outline-offset:4px;border-radius:2px}.galaxy-foot{position:absolute;right:max(1.25rem,calc((100% - var(--page-wide)) / 2));bottom:clamp(1.8rem,5%,2.8rem);left:max(1.25rem,calc((100% - var(--page-wide)) / 2));z-index:3;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.45rem 2rem}.galaxy-belt{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem 1.3rem;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;color:#e8ddc7db;text-shadow:0 1px 8px rgb(7 11 22 / .9)}.galaxy-belt-title{display:inline-flex;align-items:center;gap:.55em;font-size:.66rem;letter-spacing:.24em;color:#e6ba74e0}.galaxy-belt-title:before{content:"";width:.4em;height:.4em;border:1px solid currentColor;border-radius:50%}.galaxy-belt a{position:relative;color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}.galaxy-belt a:hover,.galaxy-belt a:focus-visible{color:var(--galaxy-gold-lit);border-bottom-color:#d9a44180}.galaxy-noscript{margin:0;padding:0 clamp(1.25rem,5vw,4.5rem) 1.2rem;font-family:var(--mono);font-size:.72rem;color:var(--galaxy-muted)}.galaxy.is-flat .galaxy-canvas{display:none}.galaxy.is-flat .galaxy-stage{background:radial-gradient(circle at 50% 47%,rgb(255 210 140 / .13) 0,transparent 42%),radial-gradient(ellipse at 16% 76%,rgb(36 54 95 / .48) 0,transparent 58%),radial-gradient(ellipse at 88% 18%,rgb(50 34 68 / .42) 0,transparent 52%),var(--galaxy-ink)}.galaxy-flat{position:absolute;inset:0;pointer-events:none}.galaxy-flat-star{position:absolute;top:47%;left:50%;width:min(17%,11rem);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 36% 34%,rgb(255 244 216 / .9) 0 10%,transparent 38%),radial-gradient(circle at 64% 70%,rgb(176 62 18 / .55) 0 16%,transparent 52%),radial-gradient(circle at 52% 46%,#fff8e6 0 5%,#ffe3b0 15%,#ffc47c 30%,#ef9a4b 46%,#c2621f 64%,#7e3510 76%,transparent 81%),radial-gradient(circle,rgb(255 176 96 / .4) 0,transparent 66%);box-shadow:0 0 2.4rem #ffba648c,0 0 6.5rem #ff8c3c4d}.galaxy-flat-board{position:absolute;top:47%;left:50%;width:min(100%,78rem);aspect-ratio:1;transform:translate(-50%,-50%)}.galaxy-flat-ring{position:absolute;top:50%;left:50%;width:calc(var(--f) * 100%);height:calc(var(--f) * 100% * .46);transform:translate(-50%,-50%);border:1px solid rgb(217 164 65 / .28);border-radius:50%}.galaxy-flat-planet{position:absolute;top:var(--y);left:var(--x);width:.85rem;height:.85rem;margin:-.425rem 0 0 -.425rem;border-radius:50%;background:var(--tone);box-shadow:0 0 .5rem .05rem var(--tone),0 0 1.6rem .16rem #ffffff29}.galaxy-flat-planet[data-tone=work]{--tone: #96e2d6}.galaxy-flat-planet[data-tone=blog]{--tone: #e4946c}.galaxy-flat-planet[data-tone=about]{--tone: #e4dbc8}.galaxy.is-flat .galaxy-labels{display:none}.page-head{position:relative;padding:clamp(3.2rem,7vh,5rem) 0 2.2rem;margin-bottom:2.6rem;border-bottom:1px solid var(--hair)}.page-head:after{content:"";position:absolute;right:0;bottom:-1px;width:42%;height:1px;background:linear-gradient(90deg,transparent,var(--accent-line))}.page-head[data-plate]:before{content:attr(data-plate);position:absolute;top:clamp(3.4rem,7.4vh,5.2rem);right:0;font-family:var(--mono);font-size:.68rem;letter-spacing:.34em;color:var(--faint)}.eyebrow{display:flex;align-items:center;gap:.7em;margin:0 0 1.1rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.24em;color:var(--accent)}.eyebrow:before{content:"";width:.38em;height:.38em;border-radius:50%;background:currentColor;box-shadow:0 0 .55em var(--accent-soft)}.seal{display:inline-flex;align-items:center;gap:.5em;font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.26em;color:var(--faint)}.seal:before{content:"";width:.36em;height:.36em;border-radius:50%;background:var(--accent);opacity:.8}.page-title{margin:0 0 .8rem;font-family:var(--display);font-weight:600;font-size:clamp(2.3rem,5.4vw,3.3rem);line-height:1.2;letter-spacing:.06em;color:var(--ink-strong)}.page-lede{max-width:34rem;margin:0;color:var(--muted);font-size:.98rem}.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:1.4rem}.work-card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.6rem 1.5rem 1.25rem;overflow:hidden;background:linear-gradient(180deg,rgb(255 255 255 / .035),transparent 46%),var(--surface);border:1px solid var(--hair);border-radius:var(--sketch);box-shadow:var(--shadow-rest);text-decoration:none;color:var(--ink);transition:transform .5s var(--ease-spring),border-color .35s,box-shadow .35s}.work-card:before{content:"";position:absolute;top:-58%;right:-26%;width:62%;aspect-ratio:1;border:1px solid var(--hair);border-radius:50%;opacity:.7;transition:transform .7s var(--ease-out),opacity .5s}.work-card:hover{transform:translateY(-4px);border-color:var(--accent-line);box-shadow:var(--shadow-lift),0 0 30px -18px #d9a4418c}.work-card:hover:before{transform:scale(1.08);opacity:1;border-color:var(--accent-line)}.work-card .stamp{position:absolute;top:1.15rem;right:1.2rem;z-index:1;font-family:var(--mono);font-size:.72rem;font-variant-numeric:tabular-nums;letter-spacing:.1em;color:var(--muted);border:1px solid var(--hair);border-radius:2px;padding:.08em .45em}.card-no{font-family:var(--mono);font-size:.68rem;letter-spacing:.24em;color:var(--accent)}.card-title{font-family:var(--display);font-weight:600;font-size:1.32rem;line-height:1.45;letter-spacing:.04em;padding-right:3.2rem}.card-role{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--signal)}.card-summary{flex:1;margin:.2rem 0 .4rem;font-size:.9rem;line-height:1.8;color:var(--muted);text-wrap:pretty}.card-go{align-self:flex-end;font-family:var(--mono);font-size:.9rem;color:var(--accent);transition:transform .35s var(--ease-out)}.work-card:hover .card-go{transform:translate(5px)}.toc{list-style:none;margin:0;padding:0}.toc-year{display:flex;align-items:center;gap:1rem;margin:3rem 0 .2rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.32em;color:var(--faint)}.toc-year:after{content:"";flex:1;height:1px;background:var(--hair)}.toc-year:first-child{margin-top:0}.toc-row{display:grid;grid-template-columns:6.6rem minmax(0,1fr) 1.4rem;align-items:baseline;gap:.4rem 1.1rem;padding:1.05rem .35rem 1.1rem;border-bottom:1px solid var(--hair-soft);text-decoration:none;color:var(--ink);transition:color .25s,border-color .3s,background-color .3s}.toc-row:hover,.toc-row:focus-visible{color:var(--accent-lit);border-bottom-color:var(--accent-line);background:linear-gradient(90deg,var(--accent-soft),transparent 68%)}.toc-date{font-family:var(--mono);font-size:.74rem;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--faint);white-space:nowrap;transition:color .25s}.toc-row:hover .toc-date{color:var(--muted)}.toc-title{font-family:var(--display);font-weight:600;font-size:1.1rem;line-height:1.6;letter-spacing:.03em;transition:transform .4s var(--ease-spring)}.toc-row:hover .toc-title{transform:translate(4px)}.toc-leader{display:none}.toc-arrow{justify-self:end;font-family:var(--mono);font-size:.8rem;color:var(--faint);opacity:0;transform:translate(-4px);transition:opacity .3s,transform .35s var(--ease-out)}.toc-row:hover .toc-arrow,.toc-row:focus-visible .toc-arrow{opacity:1;transform:none;color:var(--accent)}.toc-badge{display:inline-flex;align-items:center;margin-left:.6rem;padding:.12rem .48rem .16rem;border:1px solid var(--accent-line);border-radius:2px;background:var(--accent-soft);color:var(--accent);font-family:var(--mono);font-size:.6rem;font-weight:400;letter-spacing:.14em;line-height:1.3;vertical-align:.18em;white-space:nowrap}.prose{max-width:var(--measure)}.prose--center{margin-inline:auto}.prose h1{margin:0 0 .9rem;font-family:var(--display);font-weight:600;font-size:clamp(2rem,4.6vw,2.7rem);line-height:1.42;letter-spacing:.04em;color:var(--ink-strong);text-wrap:balance}.prose .page-title{font-size:clamp(2.3rem,5.4vw,3.3rem);line-height:1.2}.prose .meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 2.6rem;padding-bottom:1.4rem;border-bottom:1px solid var(--hair);color:var(--faint);font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;font-variant-numeric:tabular-nums}.prose .meta:before{content:"";width:.4em;height:.4em;border-radius:50%;background:var(--accent);box-shadow:0 0 .5em #d9a44199}.prose h2,.prose h3{font-family:var(--display);font-weight:600;line-height:1.5;letter-spacing:.04em;color:var(--ink-strong);text-wrap:balance}.prose h2{position:relative;margin:2.9rem 0 1.1rem;padding:0 0 .7rem 1.15em;font-size:1.5rem;border-bottom:1px solid var(--hair)}.prose h2:before{content:"";position:absolute;top:.66em;left:.12em;width:.4em;height:.4em;border:1px solid var(--accent);border-radius:50%}.prose h3{margin:2.2rem 0 .7rem;font-size:1.18rem}.prose p{margin:0 0 1.2rem;text-wrap:pretty}.prose ul,.prose ol{margin:0 0 1.2rem;padding-left:.2rem}.prose ul{list-style:none}.prose ul>li{position:relative;padding-left:1.35em}.prose ul>li:before{content:"";position:absolute;top:.78em;left:.15em;width:.36em;height:.36em;border-radius:50%;background:var(--accent);opacity:.75}.prose ol{padding-left:1.7rem}.prose ol ::marker{font-family:var(--mono);font-size:.86em;color:var(--accent)}.prose li+li{margin-top:.4rem}.prose a{color:var(--accent-lit);text-decoration-color:var(--accent-line)}.prose a:hover{text-decoration-color:var(--accent)}.prose strong{font-weight:600;color:var(--ink-strong)}.prose em{font-style:normal;-webkit-text-emphasis:filled dot var(--accent);text-emphasis:filled dot var(--accent);-webkit-text-emphasis-position:under;text-emphasis-position:under left}.prose table{display:table;width:100%;border-collapse:collapse;margin:1.8rem 0;font-size:.92em}.prose th,.prose td{padding:.56em .8em;text-align:left;vertical-align:top;border-bottom:1px solid var(--hair-soft)}@media(min-width:720px){.prose th:first-child,.prose td:first-child{min-width:7.2rem}}@media(max-width:719px){.prose table{display:block;width:max-content;min-width:100%;max-width:100%;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}}.prose thead th{font-family:var(--mono);font-size:.84em;font-weight:500;letter-spacing:.08em;color:var(--muted);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.prose tbody tr:last-child td{border-bottom:1px solid var(--line-strong)}.prose blockquote{margin:1.8rem 0;padding:.9rem 1.3rem;background:linear-gradient(90deg,var(--accent-soft),transparent 72%);border-left:1px solid var(--accent-line);color:var(--muted)}.prose blockquote p:last-child{margin-bottom:0}.prose code{font-family:var(--mono);font-size:.85em;color:var(--accent-lit);background:var(--accent-soft);border:1px solid var(--hair-soft);padding:.06em .36em;border-radius:2px}.prose pre{margin:0 0 1.4rem;padding:1.1rem 1.25rem;overflow:auto;background:var(--surface);border:1px solid var(--hair);border-radius:var(--sketch-sm);box-shadow:var(--shadow-rest);line-height:1.7;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.prose pre code{padding:0;background:none;border:0;color:inherit;border-radius:0;font-size:.82rem}.prose hr{position:relative;border:0;height:1px;margin:3rem 0;background:linear-gradient(90deg,transparent,var(--line-strong) 16%,var(--line-strong) 84%,transparent)}.prose hr:after{content:"";position:absolute;top:-2px;left:50%;width:5px;height:5px;border-radius:50%;background:var(--accent);transform:translate(-50%);box-shadow:0 0 .7rem #d9a44199}.prose mark{color:var(--ink-strong);background-color:transparent;background-image:linear-gradient(transparent 64%,var(--marker) 64%,var(--marker) 96%,transparent 96%);padding:0 .1em}.prose u{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--accent-line);text-underline-offset:.24em}.prose u.wavy{text-decoration-style:wavy;text-decoration-color:var(--accent)}.prose .has-ann{position:relative}.prose .ann{position:absolute;z-index:3;left:50%;bottom:calc(100% + .75em);width:max-content;max-width:min(16em,70vw);padding:.42em .72em .46em;font-family:var(--mono);font-size:.74em;line-height:1.6;letter-spacing:.04em;text-align:center;text-wrap:balance;color:var(--accent-lit);background:var(--surface-2);border:1px solid var(--accent-line);border-radius:2px;box-shadow:0 14px 34px -22px #000;transform:translate(-50%,4px);transition:opacity .25s var(--ease-out),transform .3s var(--ease-out)}.prose .ann:after{content:"";position:absolute;top:100%;left:50%;width:1px;height:.75em;background:var(--accent-line)}@media(hover:hover){.prose .ann{opacity:0;pointer-events:none}.prose :is(mark,u,.has-ann):hover .ann,.prose .has-ann:focus .ann{opacity:1;transform:translate(-50%)}}.prose .has-ann:focus-visible{outline:1px solid var(--accent);outline-offset:3px;border-radius:2px}.compact-toc{margin:0 0 2.2rem;padding:.7rem 1rem;background:var(--surface);border:1px solid var(--hair);border-radius:var(--sketch-sm)}.compact-toc summary{color:var(--accent);font-family:var(--mono);font-size:.76rem;letter-spacing:.16em;cursor:pointer}.compact-toc ol{list-style:none;margin:.8rem 0 0;padding:0}.compact-toc li+li{margin-top:.45rem}.compact-toc li a{overflow-wrap:anywhere;color:var(--muted);font-size:.92rem;text-decoration:none;transition:color .25s}.compact-toc a:hover{color:var(--accent-lit)}.compact-toc a[aria-current]{color:var(--accent)}.margin-toc{display:none}.back-link{display:inline-flex;align-items:center;gap:.45em;margin-top:3.4rem;padding-top:1.2rem;border-top:1px solid var(--hair);width:100%;font-family:var(--mono);font-size:.76rem;letter-spacing:.14em;color:var(--muted);text-decoration:none;transition:color .25s,gap .3s var(--ease-out)}.back-link:hover{color:var(--accent);gap:.8em}p.sign-off{display:flex;align-items:center;gap:.7rem;margin-top:3.8rem;font-family:var(--mono);font-size:.84rem;font-weight:500;letter-spacing:.2em;color:var(--faint)}p.sign-off:before{content:"";width:2.2rem;height:1px;background:var(--accent);opacity:.55}.readout{margin:2.6rem 0 0;border-top:1px solid var(--hair)}.readout>div{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--hair-soft)}.readout dt{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;color:var(--faint)}.readout dd{margin:0;color:var(--ink);font-size:.96rem}.btn{display:inline-flex;align-items:center;gap:.5em;padding:.6rem 1.15rem .66rem;font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;line-height:1.2;text-decoration:none;color:var(--ink);background:linear-gradient(180deg,rgb(255 255 255 / .05),transparent);border:1px solid var(--line-strong);border-radius:2px;transition:color .25s,border-color .25s,box-shadow .35s,transform .3s var(--ease-out)}.btn:hover{color:var(--accent-lit);border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-soft),0 0 26px -12px #d9a44199;transform:translateY(-1px)}.btn--ghost{color:var(--muted);background:none;border-color:var(--hair)}.btn .btn-arrow{font-size:.9em;transition:transform .3s var(--ease-out)}.btn:hover .btn-arrow{transform:translate(4px)}.void{--surface: #0a1120;--ink: #e8eef9;--ink-strong: #f7faff;--muted: #94a2bb;--accent: #d9a441;--accent-soft: rgb(217 164 65 / .18);--accent-line: rgb(217 164 65 / .42);--accent-lit: #f5e2b4;--hair: rgb(232 238 249 / .14);--line: #26344f;--line-strong: #35456a;position:relative;overflow:hidden;max-width:36rem;margin:3.4rem auto 1rem;padding:clamp(3rem,9vh,5.4rem) 1.6rem;text-align:center;color:var(--ink);border:1px solid var(--line);border-radius:var(--sketch);background:radial-gradient(72% 54% at 50% 28%,#16213a,#0a1120 58%,#070b16);box-shadow:var(--shadow-rest)}.void:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(1.5px 1.5px at 22% 26%,rgb(232 238 249 / .6),transparent),radial-gradient(1.5px 1.5px at 77% 19%,rgb(232 238 249 / .42),transparent),radial-gradient(1px 1px at 64% 70%,rgb(232 238 249 / .36),transparent),radial-gradient(1px 1px at 30% 77%,rgb(232 238 249 / .3),transparent),radial-gradient(1px 1px at 87% 57%,rgb(232 238 249 / .26),transparent),radial-gradient(62% 46% at 50% 32%,var(--accent-soft) 0,transparent 72%)}.void-field{position:absolute;inset:0;pointer-events:none}.void-field span{position:absolute;top:50%;left:50%;border:1px solid var(--line);border-radius:50%;transform:translate(-50%,-50%)}.void-field span:nth-child(1){width:44%;aspect-ratio:1 / .42;opacity:.9}.void-field span:nth-child(2){width:72%;aspect-ratio:1 / .42;opacity:.55}.void-field span:nth-child(3){width:104%;aspect-ratio:1 / .42;opacity:.28}.void-code{position:relative;margin:0 0 .6rem;font-family:var(--mono);font-size:clamp(3.4rem,9vw,5.2rem);font-weight:500;line-height:1;letter-spacing:.24em;color:var(--accent);text-shadow:0 0 2.4rem rgb(217 164 65 / .45)}.void h1{position:relative;margin:0 0 .7rem;font-family:var(--display);font-weight:600;font-size:clamp(1.35rem,3.4vw,1.8rem);letter-spacing:.08em}.void-desc{position:relative;margin:0 0 1.9rem;color:var(--muted);font-size:.94rem}.void .btn{color:var(--accent);border-color:var(--accent-line)}.void .btn--ghost{color:var(--muted);border-color:var(--line)}.void-actions{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}.empty{color:var(--muted);font-family:var(--mono);font-size:.82rem;letter-spacing:.1em}.volume-end{display:flex;align-items:center;gap:1rem;margin:4.2rem 0 0;font-family:var(--mono);font-size:.68rem;letter-spacing:.34em;color:var(--faint)}.volume-end:before,.volume-end:after{content:"";flex:1;height:1px;background:var(--hair)}@media(prefers-reduced-motion:no-preference){.rise{animation:rise .8s var(--ease-out) both;animation-delay:var(--d, 0ms)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.reveal{animation:drift linear backwards;animation-timeline:view();animation-range:entry 0% entry 42%}}}@keyframes drift{0%{transform:translateY(14px)}to{transform:translateY(0)}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.prose img{animation:plate-develop linear backwards;animation-timeline:view();animation-range:entry 0% entry 90%}}}@keyframes plate-develop{0%{clip-path:inset(0 0 88% 0);opacity:.25}to{clip-path:inset(0 0 0 0);opacity:1}}@media print{.prose img{animation:none}}@media(prefers-reduced-motion:no-preference){::view-transition-old(root){animation:.26s var(--ease-out) both page-out}::view-transition-new(root){animation:.4s var(--ease-out) both page-in}}@keyframes page-out{to{opacity:0;transform:scale(.994)}}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}::view-transition-group(*),::view-transition-image-pair(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@media(min-width:1500px){.post-layout--toc{display:grid;grid-template-columns:9rem minmax(0,1fr);column-gap:2rem}.post-layout--toc .prose--center{grid-column:2;max-width:none;margin-inline:0}.margin-toc{display:block;grid-column:1;grid-row:1;justify-self:end;align-self:start;position:sticky;top:6.4rem;width:auto;margin-right:0;padding:.2rem 0 .4rem .8rem;border-left:1px solid var(--hair)}.margin-toc-label{display:flex;align-items:center;gap:.5em;margin:0 0 .7rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.26em;color:var(--faint)}.margin-toc-label:before{content:"";width:.36em;height:.36em;border-radius:50%;background:var(--accent);opacity:.7}.margin-toc ol{list-style:none;margin:0;padding:0}.margin-toc li+li{margin-top:.6rem}.margin-toc li{line-height:1.5}.margin-toc a{position:relative;display:inline-block;overflow-wrap:anywhere;font-size:.9rem;line-height:1.5;color:var(--muted);text-decoration:none;transition:color .25s}.margin-toc a:hover{color:var(--ink)}.margin-toc a[aria-current]{color:var(--accent-lit)}.margin-toc a:before{content:"";position:absolute;left:-.8rem;top:.62em;width:.36rem;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform .35s var(--ease-out)}.margin-toc a[aria-current]:before{transform:scaleX(1)}.compact-toc{display:none}}@media(max-width:860px){.galaxy-readout{display:none}.galaxy-caption{max-width:20rem}.galaxy-title{font-size:clamp(2.1rem,8.4vw,2.9rem)}.galaxy-sub{margin-top:1rem;font-size:.84rem;line-height:1.85}.galaxy-hint{display:none}.galaxy-label{padding:.4rem .55rem .4rem .1rem}.galaxy-label-note,.galaxy-label-no{display:none}.galaxy-label-name{font-size:.94rem}.galaxy-belt{gap:.3rem .9rem;font-size:.68rem}.galaxy-belt-title{font-size:.62rem}}@media(max-width:767px){:root{--header-h: 3.75rem}.site-header .wrap,.site-header .wrap--wide{flex-wrap:nowrap}.brand-sub{display:none}.nav{font-size:.74rem;letter-spacing:.08em}.nav a{padding:.4rem .5rem}.nav a:after{left:.5rem;right:.5rem}.nav-no{display:none}.theme-toggle{width:1.85rem;height:1.85rem;margin-left:.3rem}.galaxy-stage{height:calc(100svh - var(--header-h));min-height:30rem}.galaxy-caption{top:1.7rem;max-width:15rem}.galaxy-kicker{margin-bottom:.85rem;font-size:.64rem}.galaxy-title{font-size:clamp(1.9rem,8.8vw,2.5rem);letter-spacing:.06em}.galaxy-sub{max-width:13.5rem;font-size:.78rem}.galaxy-foot{bottom:1.4rem}.page-head{padding-top:2.8rem;margin-bottom:2rem}.page-head[data-plate]:before{display:none}.work-grid{grid-template-columns:1fr;gap:1.1rem}.toc-row{grid-template-columns:minmax(0,1fr) 1.2rem;gap:.15rem .8rem;padding:.95rem .25rem 1rem}.toc-date{grid-column:1 / -1;font-size:.68rem}.toc-title{font-size:1.02rem}.readout>div{grid-template-columns:4.4rem minmax(0,1fr);gap:.8rem}}@media(min-width:2560px){html{font-size:1.125rem}:root{--page: 48rem;--page-wide: 76rem}}@media(min-width:3840px){html{font-size:1.3125rem}:root{--page: 52rem;--page-wide: 88rem}}@media(min-width:5120px){html{font-size:1.5rem}:root{--page: 56rem;--page-wide: 96rem}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
