@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/3724a2679eb55e3d-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:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/dec24892df1f6098-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:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/6448e9c529f1ef4a-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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/287637279c44650d-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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b387097da7407747-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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/cb9f64d62d112b41-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:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_56bdf6{font-family:Fraunces,Fraunces Fallback}.__variable_56bdf6{--font-fraunces:"Fraunces","Fraunces Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-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:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-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:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-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:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-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:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-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:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_b20d9a{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_b20d9a{--font-jetbrains:"JetBrains Mono","JetBrains Mono Fallback"}.page-head{position:relative;padding-top:128px;padding-bottom:56px;overflow:hidden}.page-head-inner{position:relative;z-index:1}.ph-index{grid-column:1/-1;display:flex;align-items:center;gap:16px}.ph-num{font-size:12px;letter-spacing:.16em;line-height:1;color:var(--phosphor);border:1px solid var(--phosphor-dim);padding:6px 9px;flex:none}.ph-num,.ph-seg{font-family:var(--font-mono)}.ph-seg{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone)}.ph-index .rule{flex:1;height:1px;background:var(--grid)}.ph-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);text-align:right}.ph-title-wrap{grid-column:1/span 8;margin-top:26px}.ph-h1{font-size:clamp(56px,9vw,132px)}.ph-h1 .l1{display:block;color:var(--bone)}.ph-h1 .l2{display:block;font-style:italic;color:var(--phosphor)}.ph-h1 .l2 .amber{color:var(--amber);font-style:normal}.ph-lede{grid-column:9/span 4;align-self:end;border-left:1px solid var(--phosphor-dim);padding-left:16px;font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--bone);margin-top:26px}@media (max-width:1100px){.ph-lede,.ph-title-wrap{grid-column:1/-1}.ph-lede{border-left:none;padding-left:0}}.ghost-word-r{position:absolute;bottom:-64px;right:-40px;z-index:0;font-family:var(--font-display);font-weight:300;font-size:20vw;line-height:1;letter-spacing:-.05em;color:var(--bone);opacity:.05;pointer-events:none;user-select:none;text-transform:uppercase}.ph-legend{grid-column:1/-1;margin-top:44px;padding-top:22px;border-top:1px solid var(--grid);display:flex;flex-wrap:wrap;gap:12px 30px}.ph-legend .lg-item{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--muted)}.ph-legend .lg-sw{width:8px;height:8px;flex:none;background:var(--muted)}.ph-legend .lg-sw.core{background:var(--phosphor);box-shadow:0 0 8px var(--phosphor)}.ph-legend .lg-item b{font-weight:400;letter-spacing:.18em;color:var(--bone)}.ph-legend .lg-item.is-core b{color:var(--phosphor)}.ph-ledger{grid-column:1/-1;margin-top:44px;padding-top:8px;border-top:1px solid var(--grid);display:flex;flex-wrap:wrap;gap:0 40px}.ph-ledger .ld{display:flex;align-items:baseline;gap:9px;padding-top:18px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.ph-ledger .ld b{font-family:var(--font-display);font-feature-settings:"ss01","ss02","ss03";font-style:italic;font-weight:400;font-size:28px;line-height:1;color:var(--bone)}.ph-ledger .ld.live,.ph-ledger .ld.live b{color:var(--phosphor)}.ph--interests .ph-num{color:var(--amber);border-color:oklch(.62 .14 70)}.ph--interests .ph-h1 .l2{color:var(--amber)}.ph--interests .ph-h1 .l2 .amber{color:var(--phosphor)}.ph-channels{grid-column:1/-1;margin-top:44px;padding-top:22px;border-top:1px solid var(--grid);display:flex;flex-wrap:wrap;gap:14px 36px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ph-channels span b{font-weight:400;color:var(--amber);margin-right:8px}.ph-transmission{grid-column:1/-1;margin-top:40px;display:inline-flex;align-items:center;gap:11px;width:fit-content;border:1px solid var(--grid);padding:10px 14px;font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;color:var(--muted)}.ph-transmission .tx-dot{width:7px;height:7px;border-radius:999px;background:var(--phosphor);box-shadow:0 0 8px var(--phosphor);flex:none;animation:pulse-dot 3s ease-in-out infinite}.ph-transmission b{font-weight:400;color:var(--phosphor)}.ph-transmission .tx-loc{color:var(--bone)}.block-head{display:flex;align-items:center;gap:16px;font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.block-head .rule{flex:1;height:1px;background:var(--grid)}.page-head-inner>*{animation:boot-rise .5s var(--ease-out-quint) both}.page-head-inner>.ph-index{animation-delay:.04s}.page-head-inner>.ph-title-wrap{animation-delay:.12s}.page-head-inner>.ph-lede{animation-delay:.22s}.page-head-inner>.ph-channels,.page-head-inner>.ph-ledger,.page-head-inner>.ph-legend,.page-head-inner>.ph-transmission{animation-delay:.32s}:root{--ease-out-quart:cubic-bezier(0.25,1,0.5,1);--ease-out-quint:cubic-bezier(0.22,1,0.36,1);--ease-out-expo:cubic-bezier(0.16,1,0.3,1)}.route-enter{animation:route-in .52s var(--ease-out-quint) both}@keyframes route-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes boot-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes boot-assemble{0%{opacity:0;filter:blur(10px);transform:translateY(6px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes pulse-tick{0%,to{opacity:1;box-shadow:0 0 6px var(--phosphor)}50%{opacity:.45;box-shadow:0 0 2px var(--phosphor)}}.tick{animation:pulse-tick 2.6s var(--ease-out-quart) infinite}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 8px var(--phosphor)}50%{opacity:.5;box-shadow:0 0 3px var(--phosphor)}}.fp-live .dot,.lead-flag .dot,.nav-dot,.status-flag .dot{animation:pulse-dot 3s ease-in-out infinite}@keyframes blink-rec{0%,45%{opacity:1;box-shadow:0 0 7px var(--phosphor)}55%,90%{opacity:.18;box-shadow:0 0 0 var(--phosphor)}to{opacity:1;box-shadow:0 0 7px var(--phosphor)}}.rec .dot{animation:blink-rec 1.4s step-end infinite}@keyframes pulse-online{0%,to{box-shadow:0 0 0 oklch(.86 .21 142/0);border-color:var(--phosphor-dim)}50%{box-shadow:0 0 12px oklch(.86 .21 142/.25);border-color:var(--phosphor)}}.pill-online{animation:pulse-online 3.6s ease-in-out infinite}@keyframes pulse-dot-amber{0%,to{opacity:1;box-shadow:0 0 8px var(--amber)}50%{opacity:.45;box-shadow:0 0 3px var(--amber)}}.status-flag .amber-dot{animation:pulse-dot-amber 1.6s step-end infinite}.nav-link{position:relative}.nav-link:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--phosphor);box-shadow:0 0 6px oklch(.86 .21 142/.7);transform:scaleX(0);transform-origin:left center;transition:transform .3s var(--ease-out-quint)}.nav-link.active:after,.nav-link:hover:after{transform:scaleX(1)}.status-btn{transition:color .16s ease,border-color .16s ease,background .16s ease,box-shadow .2s ease,transform .12s var(--ease-out-quart)}.status-btn:hover{box-shadow:0 0 18px -4px oklch(.86 .21 142/.4)}.status-btn:active{transform:translateY(1px) scale(.985)}.pg-news .sub-form button{transition:filter .16s ease,transform .12s var(--ease-out-quart)}.pg-news .sub-form button:hover{filter:brightness(1.12)}.pg-news .sub-form button:active{transform:scale(.97)}.pg-news .fchip{transition:border-color .2s ease,color .2s ease,background .2s ease,transform .12s var(--ease-out-quart)}.pg-news .fchip:active{transform:scale(.95)}.lead:hover .lead-go,.pager-card:hover .pg-dir{color:var(--phosphor)}.pg-news .lead,.pg-news .post-list .post{animation:boot-rise .4s var(--ease-out-quint) both}.pg-news .post-list .post{animation-delay:calc(var(--i, 0) * 45ms)}.pg-post .rail-bar>span{transition:width .18s linear}.route-enter:after{content:"";position:fixed;left:0;right:0;top:0;height:42vh;z-index:40;pointer-events:none;background:linear-gradient(180deg,transparent,oklch(.86 .21 142/.05) 72%,oklch(.86 .21 142/.13) 92%,oklch(.86 .21 142/.28));mix-blend-mode:screen;will-change:transform,opacity;animation:route-scan .92s var(--ease-out-quint) both}@keyframes route-scan{0%{transform:translateY(-46vh);opacity:0}14%{opacity:1}to{transform:translateY(118vh);opacity:0}}@keyframes reveal-rise{0%{opacity:0;transform:translateY(16px);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.pg-projects .index-sec,.pg-skills .lang-cell,.pg-skills .lg-item,.pg-skills .matrix-col,.pg-work .edu-card,.pg-work .log{animation:reveal-rise linear both;animation-timeline:view();animation-range:entry 2% cover 22%}}}.nav-link.active .t,.nav-link:hover .t{text-shadow:0 0 9px oklch(.86 .21 142/.5)}