@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-tblock{position:absolute;bottom:56px;right:40px;z-index:1;width:190px;display:grid;grid-template-columns:56px 1fr;border:1px solid var(--grid);background:oklch(.1 .008 240/.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ph-tblock .tbk{padding:6px 0 6px 10px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.ph-tblock .tbk,.ph-tblock .tbv{font-family:var(--font-mono);border-top:1px solid var(--grid)}.ph-tblock .tbv{padding:6px 10px 6px 0;font-size:10px;letter-spacing:.1em;color:var(--bone);text-align:right}.ph-tblock .tbk:first-child,.ph-tblock .tbk:first-child+.tbv{border-top:none}.ph-tblock .tbv-sign{font-family:var(--font-display);font-feature-settings:"ss01","ss02","ss03";font-size:13px;font-style:italic;letter-spacing:0;color:var(--phosphor);transition:color .7s ease}.page-head.bp-armed:not(.bp-on) .ph-tblock .tbv-sign{color:var(--draft)}@media (max-width:1100px){.ph-tblock{display:none}}.page-head.bp-armed:not(.bp-on) :is(.ph-channels span b,.ph-ledger .ld.live,.ph-ledger .ld.live b){color:var(--draft)}.page-head.bp-armed :is(.ph-channels span b,.ph-ledger .ld.live,.ph-ledger .ld.live b){transition:color .6s ease}.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-display);font-feature-settings:"ss01","ss02","ss03";font-size:16px;line-height:1.5;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)}:root{--draft:oklch(0.58 0.035 240);--draft-dim:oklch(0.44 0.025 240)}.bp{position:relative}.bp-overlay{position:absolute;inset:0;pointer-events:none;z-index:3}.bp-svg{display:block;overflow:visible}.bp .bp-overlay:before{content:"";position:absolute;inset:0;pointer-events:none;background:url(/vellum.webp) repeat;background-size:384px 384px;mix-blend-mode:screen;opacity:0;transition:opacity 1.1s ease}.bp.bp-armed:not(.bp-on) .bp-overlay:before{opacity:.5}.bp-line{fill:none;stroke:var(--draft);stroke-width:calc(var(--sw, 1) * 1px);opacity:var(--en,1);vector-effect:non-scaling-stroke;stroke-dasharray:calc(var(--l) * 1px);stroke-dashoffset:calc(var(--l) * 1px * (1 - clamp(0, (var(--p, 1) - var(--a, 0)) * var(--inv, 1), 1)));transition:opacity .8s ease}.bp-dim,.bp-frame,.bp-tick{stroke:var(--draft-dim)}.bp-ghost{stroke:transparent}.bp-construct{stroke:var(--draft-dim);opacity:calc(var(--en, 1) * .33)}.bp-over{stroke:var(--draft);opacity:calc(var(--en, 1) * .6)}.bp-on .bp-base,.bp-on .bp-box,.bp-on .bp-col,.bp-on .bp-rule{opacity:.14}.bp-on .bp-dim,.bp-on .bp-frame,.bp-on .bp-tick{opacity:.3}.bp-on .bp-construct,.bp-on .bp-over{opacity:0}.bp-note{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;fill:var(--muted);opacity:clamp(0,(var(--p,1) - var(--a,0)) * 8,1);transition:opacity .8s ease}.bp-on .bp-note{opacity:.38}.bp.bp-armed.bp-on{animation:bp-sag .55s linear both}@keyframes bp-sag{0%{opacity:1}9%{opacity:.8}20%{opacity:1}30%{opacity:.9}42%,to{opacity:1}}.bp.bp-armed .bp-overlay:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(62% 55% at 50% 34%,var(--bp-glow,oklch(.86 .21 142/.11)),transparent 72%)}.bp.bp-armed.bp-on .bp-overlay:after{animation:bp-bloom 1.7s var(--ease-out-quart) .12s both}@keyframes bp-bloom{0%{opacity:0}16%{opacity:1}to{opacity:0}}.bp.bp-armed.bp-on :is(.hn-2,.ph-h1 .l2,.fp-h2){animation:bp-strike .85s step-end .1s}@keyframes bp-strike{0%,to{opacity:1}12%{opacity:.28}22%{opacity:1}36%{opacity:.45}46%{opacity:1}}.bp-pulse{fill:none;stroke:var(--phosphor);stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:0;stroke-dasharray:calc(var(--l) * .15px) calc(var(--l) * 2px);stroke-dashoffset:calc(var(--l) * .15px)}.bp-on .bp-pulse{animation:bp-current .9s var(--ease-out-quart) both;animation-delay:calc(var(--i, 0) * 55ms);filter:drop-shadow(0 0 4px oklch(.86 .21 142/.8))}@keyframes bp-current{0%{opacity:0;stroke-dashoffset:calc(var(--l) * .15px)}12%{opacity:1}88%{opacity:1}to{opacity:0;stroke-dashoffset:calc(var(--l) * -1px)}}.bp-rail{stroke:oklch(.86 .21 142/.28);stroke-width:1;stroke-dasharray:3 7;vector-effect:non-scaling-stroke}.bp-pen path{stroke:var(--phosphor);stroke-width:1;fill:none}.bp-pen circle{fill:var(--phosphor);filter:drop-shadow(0 0 5px var(--phosphor))}.bp-pen text{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;fill:var(--phosphor)}.bp.bp-armed:not(.bp-on) [data-bp=box]{border-color:transparent;background:transparent;box-shadow:none}.bp.bp-armed [data-bp=box]{transition:border-color .7s ease,background .7s ease,box-shadow .7s ease}.bp.bp-armed:not(.bp-on) :is(.phosphor-glow,.amber-glow){text-shadow:none}.bp.bp-armed:not(.bp-on) :is(.tick,.rec,.rec .dot,.pill-phosphor,.amber,.pok,.pamber,.sstatus,.ph-num,.chip.accent,.pstatus,.fp-live,.pcat,.post-go,.lg-sw.core,.lg-item.is-core b,.mc-to,.hs-mid){color:var(--draft);border-color:var(--draft-dim);animation:none}.bp.bp-armed:not(.bp-on) :is(.tick,.rec .dot,.lg-sw.core,.log-node){background:var(--draft);box-shadow:none}.bp.bp-armed:not(.bp-on) :is(.ph-h1 .l2,.fp-h2,.hn-2,.resolve){color:var(--draft);text-shadow:none}.bp.bp-armed :is(.tick,.rec,.rec .dot,.pill-phosphor,.amber,.pok,.pamber,.sstatus,.ph-num,.chip.accent,.pstatus,.fp-live,.pcat,.post-go,.lg-sw.core,.lg-item.is-core b,.mc-to,.hs-mid,.ph-h1 .l2,.fp-h2,.hn-2,.resolve,.log-node){transition:color .6s ease,background .6s ease,border-color .6s ease,box-shadow .6s ease,text-shadow .6s ease}.bp.bp-armed .bars .bar{transform-origin:bottom;transition:transform .6s var(--ease-out-quart),background .6s ease;transition-delay:calc(var(--i, 0) * 14ms)}.bp.bp-armed:not(.bp-on) .bars .bar{transform:scaleY(.04);background:var(--draft-dim);box-shadow:none!important}.bp.bp-armed .vu i{transition:background .5s ease,box-shadow .5s ease;transition-delay:calc(var(--s, 0) * 60ms)}.bp.bp-armed:not(.bp-on) .vu i.on{background:var(--draft-dim);box-shadow:none}@media (max-width:700px){.bp-dim,.bp-note{display:none}}@media (prefers-reduced-motion:reduce){.bp-overlay{display:none}}.footer{border-top:1px solid var(--grid);padding-top:56px;padding-bottom:40px}.footer-out{margin-bottom:64px}.fo-head{display:flex;align-items:center;gap:16px}.fo-head .fo-rule{flex:1;height:1px;background:var(--grid)}.footer-trace{position:relative;height:clamp(84px,12vh,132px);margin-top:18px}.footer-trace .trace-svg{display:block}.footer-trace .trace-canvas,.footer-trace .trace-svg{position:absolute;inset:0;width:100%;height:100%;transition:opacity .7s var(--ease-out-quint)}.footer-trace .trace-canvas{z-index:2;pointer-events:none;opacity:0}.footer-trace.live .trace-canvas{opacity:1}.footer-trace.live .trace-svg{opacity:0}.footer-trace .trace-probe-readout{position:absolute;top:-20px;left:0;transform:translateX(-50%);z-index:4;white-space:nowrap;pointer-events:none;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);text-shadow:0 0 10px oklch(.82 .16 70/.45);opacity:0;transition:opacity .18s ease-out}@media (max-width:760px){.footer-trace .trace-probe-readout{display:none}}.footer-trace .trace-base{opacity:.65}.footer-trace .trace-base,.footer-trace .trace-div{stroke:var(--grid);stroke-width:1;vector-effect:non-scaling-stroke}.footer-trace .trace-div{opacity:.35;stroke-dasharray:2 7}.footer-trace .trace-line{stroke:var(--phosphor);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px oklch(.86 .21 142/.7)) drop-shadow(0 0 13px oklch(.86 .21 142/.35))}.footer-trace .trace-node{fill:var(--phosphor);filter:drop-shadow(0 0 8px var(--phosphor))}@keyframes trace-node-live{0%,to{opacity:1}50%{opacity:.42}}.footer-trace .trace-node{animation:trace-node-live 2.6s ease-in-out infinite}.footer-trace .trace-cap{position:absolute;left:2px;right:2px;bottom:-18px;z-index:3;display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;pointer-events:none}.footer-trace .trace-cap .tc-l{color:var(--amber)}.footer-trace .trace-cap .tc-r{color:var(--phosphor)}.footer-trace .trace-cap .tc-m{display:none;color:var(--muted)}@media (hover:hover) and (pointer:fine){.footer-trace .trace-cap .tc-m{display:inline}}.footer-trace .trace-cap .tc-r[data-state=disturbed]{color:var(--amber)}.footer .label{display:block;margin-bottom:14px}.footer a{color:var(--bone);transition:color .12s ease-out}.footer a:hover{color:var(--phosphor)}.footer-email{display:inline-block;font-family:var(--font-mono);font-size:15px;letter-spacing:.02em;color:var(--bone);background:none;border:none;padding:0;cursor:pointer;transition:color .12s ease-out}.footer-email:hover{color:var(--phosphor)}.footer-note{margin-top:10px;font-family:var(--font-mono);font-size:11px;color:var(--muted);letter-spacing:.04em}.footer-lang{margin-top:14px}.footer-links{list-style:none;display:flex;flex-direction:column;gap:8px;letter-spacing:.03em}.footer-colophon,.footer-links{font-family:var(--font-mono);font-size:12px}.footer-colophon{line-height:1.7;color:var(--muted);max-width:34ch}.footer-colophon .fc-fraunces{color:var(--bone);font-style:italic}.footer-colophon .fc-mono{color:var(--bone)}.footer-strip .fs-left{display:inline-flex;align-items:center;gap:9px}