@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,400..800&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{color:#f8f4e8;font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--font-display:"Newsreader", Georgia, "Times New Roman", serif;--font-body:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--surface:#131313;--surface-low:#1c1b1bb3;--surface-high:#2a2a2aa8;--surface-deep:#0e0e0ec7;--glass:#0e0e0e85;--glass-strong:#0e0e0ec2;--line:#87948c2e;--line-strong:#87948c57;--text:#f8f4e8;--muted:#c9c3b4;--dim:#8f988f;--ink:#003827;--green:#73daaf;--green-hot:#98ffd2;--amber:#ffba38;--violet:#d189ff;--coral:#ff7d66;--cyan:#66d9ff;--max-width:1180px;--scroll-progress:0;--content-opacity:0;--constellation-opacity:1;--constellation-blur:0px;--constellation-brightness:1.16;--constellation-saturation:1.16;--signal-opacity:1;--atmosphere-opacity:.22;--header-offset:-.6rem;--hero-offset:1.6rem;--section-offset:1.2rem;--z-webgl:0;--z-atmosphere:1;--z-content:2;--z-header:10;background:#10100f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;color:var(--text);background:linear-gradient(#87948c0b 1px,#0000 1px) 0 0/40px 40px,linear-gradient(90deg,#87948c09 1px,#0000 1px) 0 0/40px 40px,linear-gradient(135deg,#0e0e0e 0%,#151413 48%,#101512 72%,#151114 100%);margin:0;overflow-x:hidden}body:before{z-index:-1;pointer-events:none;content:"";background:linear-gradient(112deg,#0000 0 37%,#73daaf12 37% 38%,#0000 38%),linear-gradient(72deg,#0000 0 62%,#ffba380f 62% 63%,#0000 63%);position:fixed;inset:0}button,a{font:inherit}a{color:inherit;text-decoration:none}code{border:1px solid var(--line);color:var(--green-hot);font-family:var(--font-mono);background:#10100f80;border-radius:4px;padding:.08rem .28rem}.app-shell{width:100%;min-height:100vh;margin:0}.constellation-layer{z-index:var(--z-webgl);opacity:var(--constellation-opacity);filter:blur(var(--constellation-blur)) saturate(var(--constellation-saturation)) brightness(var(--constellation-brightness));pointer-events:auto;will-change:opacity, filter;transition:opacity .12s linear,filter .12s linear;position:fixed;inset:0}.app-shell.is-scrolled .constellation-layer{pointer-events:none}.constellation-layer:before,.constellation-layer:after,.page-atmosphere{pointer-events:none;content:"";position:fixed;inset:0}.constellation-layer:before{z-index:1;background:linear-gradient(90deg,#0e0e0eb3 0%,#0e0e0e52 36%,#0e0e0e14 58%,#0e0e0e75 100%),linear-gradient(#0e0e0e94 0%,#0000 28%,#0e0e0e9e 100%);transition:background .52s}.app-shell.is-scrolled .constellation-layer:before{background:linear-gradient(90deg,#0e0e0edb 0%,#0e0e0e94 46%,#0e0e0ec7 100%),linear-gradient(#0e0e0ec7 0%,#0e0e0e70 42%,#0e0e0ee0 100%)}.constellation-layer:after{z-index:2;background-color:#0000;background-image:linear-gradient(#e5e2e109 1px,#0000 1px),linear-gradient(90deg,#e5e2e107 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:72px 72px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;-webkit-mask-image:linear-gradient(90deg,#000,#0000 70%);mask-image:linear-gradient(90deg,#000,#0000 70%)}.page-atmosphere{z-index:var(--z-atmosphere);opacity:var(--atmosphere-opacity);background:linear-gradient(90deg,#0e0e0e9e 0%,#0e0e0e1a 46%,#0e0e0e85 100%),linear-gradient(#0000 0%,#0e0e0e3d 42%,#0e0e0ec7 100%);transition:background .52s,opacity .12s linear}.app-shell.is-scrolled .page-atmosphere{background:linear-gradient(90deg,#0e0e0ed1 0%,#0e0e0e6b 46%,#0e0e0ed1 100%),linear-gradient(#0e0e0e80 0%,#0e0e0e9e 42%,#0e0e0ef0 100%)}.page-layer{z-index:var(--z-content);pointer-events:none;min-height:100vh;position:relative}.site-header,.brand-mark,.site-header nav a,.hero-copy,.hero-actions a,.profile-meta,.node-inspector,.scroll-indicator,.metrics-strip,.domain-card,.project-card,.note-card,.timeline article,.site-footer,.footer-links a{pointer-events:auto}.site-header{z-index:var(--z-header);width:min(calc(100% - 2rem), var(--max-width));opacity:var(--content-opacity);pointer-events:none;transform:translateY(var(--header-offset));justify-content:space-between;align-items:center;gap:1.5rem;margin:0 auto;padding:1rem 0;transition:opacity .12s linear,transform .12s linear;display:flex;position:sticky;top:0}.app-shell.is-scrolled .site-header{pointer-events:auto}.site-header:before{z-index:-1;content:"";-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#0e0e0e94;position:absolute;inset:0 -1rem}.brand-mark{min-width:0;color:var(--text);align-items:center;gap:.7rem;display:inline-flex}.brand-mark span{width:2.2rem;height:2.2rem;color:var(--ink);background:linear-gradient(135deg, #fff, var(--green));font-family:var(--font-mono);border-radius:4px;place-items:center;font-weight:900;display:grid}.brand-mark strong{font-family:var(--font-display);letter-spacing:0;white-space:nowrap;font-size:1.05rem;font-weight:700}.site-header nav{justify-content:flex-end;align-items:center;gap:.2rem;min-width:0;display:flex}.site-header nav a{color:var(--muted);font-family:var(--font-mono);letter-spacing:0;border-radius:4px;padding:.65rem .8rem;font-size:.78rem}.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--text);background:#e5e2e112;outline:none}.hero-section{width:min(calc(100% - 2rem), var(--max-width));grid-template-columns:minmax(0,.9fr) minmax(18rem,.62fr);align-items:end;gap:2rem;min-height:calc(100svh - 4.5rem);margin:0 auto;padding:4.2rem 0 5rem;display:grid;position:relative}.hero-copy{min-width:0;max-width:44rem;opacity:var(--content-opacity);transform:translateY(var(--hero-offset));align-content:center;gap:1.15rem;transition:opacity .12s linear,transform .12s linear;display:grid}.app-shell:not(.is-scrolled) .hero-copy{pointer-events:none}.section-kicker{width:fit-content;color:var(--green-hot);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;align-items:center;gap:.45rem;margin:0;font-size:.78rem;font-weight:700;display:inline-flex}.hero-copy h1,.section-heading h2,.site-footer h2{font-family:var(--font-display);letter-spacing:0;font-weight:700}.hero-copy h1{margin:0;font-size:6.4rem;line-height:.9}.hero-copy__headline{max-width:14ch;font-family:var(--font-display);letter-spacing:0;margin:0;font-size:2.55rem;font-weight:700;line-height:1}.hero-copy__summary,.node-inspector p,.section-heading p,.domain-card p,.project-card p,.note-card p,.timeline article p,.site-footer p{color:var(--muted);line-height:1.7}.hero-copy__summary{overflow-wrap:break-word;width:100%;max-width:40rem;margin:0;font-size:1.02rem}.hero-actions,.profile-meta{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.primary-action,.secondary-action,.footer-links a{border-radius:4px;justify-content:center;align-items:center;gap:.52rem;min-height:2.85rem;font-weight:800;display:inline-flex}.primary-action{color:var(--ink);background:linear-gradient(135deg, #fff, var(--green));padding:.85rem 1rem}.secondary-action{color:var(--text);box-shadow:inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#e5e2e112;padding:.82rem 1rem}.primary-action:hover,.primary-action:focus-visible{background:linear-gradient(135deg, #fff, var(--green-hot));outline:none}.secondary-action:hover,.secondary-action:focus-visible,.footer-links a:hover,.footer-links a:focus-visible{background:#e5e2e11f;outline:none}.profile-meta span{color:var(--dim);font-family:var(--font-mono);align-items:center;gap:.42rem;font-size:.78rem;display:inline-flex}.hero-signal{z-index:calc(var(--z-content) + 1);width:min(42rem,100vw - 2rem);opacity:var(--signal-opacity);pointer-events:none;justify-items:stretch;padding-bottom:0;transition:opacity .12s linear,transform .12s linear;display:grid;position:fixed;top:1rem;left:1rem;right:auto;transform:none}.app-shell.is-scrolled .hero-signal{pointer-events:none;transform:translateY(1rem)}.scroll-indicator{color:var(--green-hot);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;justify-items:center;gap:.38rem;font-size:.72rem;font-weight:700;transition:opacity .26s,transform .26s;display:grid;position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%)}.scroll-indicator i{background:#98ffd238;width:1px;height:2.6rem;display:block;overflow:hidden}.scroll-indicator i:before{content:"";background:linear-gradient(180deg, transparent, var(--green-hot));width:1px;height:1.2rem;animation:1.6s ease-in-out infinite scroll-pulse;display:block}.scroll-indicator svg{animation:1.6s ease-in-out infinite scroll-nudge}.scroll-indicator:hover,.scroll-indicator:focus-visible{color:#fff;outline:none}.app-shell.is-scrolled .scroll-indicator{opacity:0;pointer-events:none;transform:translate(-50%,.75rem)}@keyframes scroll-pulse{0%{opacity:0;transform:translateY(-1.2rem)}35%,70%{opacity:1}to{opacity:0;transform:translateY(2.6rem)}}@keyframes scroll-nudge{0%,to{transform:translateY(0)}50%{transform:translateY(.22rem)}}.constellation-canvas{min-height:100%;position:absolute;inset:0}.constellation-canvas canvas{filter:saturate(1.18)brightness(1.18);touch-action:pan-y;display:block}.constellation-fallback{min-height:100%;color:var(--text);text-align:center;background-color:#10100fb8;background-image:linear-gradient(90deg,#73daaf14 1px,#0000 1px),linear-gradient(#f8f4e80f 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:54px 54px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;place-content:center;gap:.55rem;padding:2rem;display:grid;position:absolute;inset:0}.constellation-fallback span{background:var(--green);width:.9rem;height:.9rem;box-shadow:5rem 2rem 0 var(--amber), -4rem 3rem 0 var(--violet), 2rem -3rem 0 var(--coral);border-radius:50%;position:absolute}.constellation-fallback span:first-child{top:38%;left:34%}.constellation-fallback span:nth-child(2){top:31%;right:34%}.constellation-fallback span:nth-child(3){bottom:33%;right:42%}.constellation-fallback strong{font-family:var(--font-display);font-size:1.55rem}.constellation-fallback p{max-width:26ch;color:var(--muted);margin:0 auto;line-height:1.6}.node-inspector{width:100%;box-shadow:inset 0 0 0 1px var(--line), 0 22px 56px #0000002e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:none;background:#0e0e0e4d;border-radius:4px;gap:.36rem;padding:.56rem .68rem;display:grid}.node-inspector__hud{justify-content:space-between;align-items:center;gap:.8rem;min-width:0;display:flex}.node-inspector__readout{flex-wrap:wrap;flex:auto;align-items:center;gap:.32rem .52rem;min-width:0;display:flex}.node-inspector .section-kicker{flex:none;font-size:.68rem}.node-inspector h2{min-width:0;font-family:var(--font-display);letter-spacing:0;white-space:nowrap;margin:0;font-size:1.18rem;font-weight:700;line-height:1}.node-inspector__domain{color:var(--green-hot);font-family:var(--font-mono);text-transform:uppercase;white-space:nowrap;flex:none;margin:0;font-size:.68rem;font-weight:700;line-height:1.1}.node-inspector__meta{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:.35rem;display:flex}.node-inspector__meta span{color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);font-family:var(--font-mono);text-transform:uppercase;background:#e5e2e112;border-radius:4px;padding:.18rem .4rem;font-size:.62rem;line-height:1}.node-inspector__detail{margin:0;font-size:.82rem;line-height:1.35}.metrics-strip{width:min(calc(100% - 2rem), var(--max-width));box-shadow:inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:var(--content-opacity);transform:translateY(var(--section-offset));background:#87948c29;border-radius:4px;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(16rem,1.3fr);gap:1px;margin:0 auto;transition:opacity .12s linear,transform .12s linear;display:grid;overflow:hidden}.metrics-strip div,.metrics-strip p{background:#0e0e0e94;margin:0;padding:1.1rem}.metrics-strip strong{color:var(--text);font-family:var(--font-display);margin-bottom:.2rem;font-size:2rem;font-weight:700;display:block}.metrics-strip span,.metrics-strip p{color:var(--muted);font-family:var(--font-mono);font-size:.82rem}.content-section{width:min(calc(100% - 2rem), var(--max-width));opacity:var(--content-opacity);transform:translateY(var(--section-offset));margin:0 auto;padding:5.5rem 0 0;transition:opacity .12s linear,transform .12s linear;position:relative}.content-section:before{z-index:-1;pointer-events:none;content:"";-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(#0e0e0e9e,#0e0e0e57);height:calc(100% - 1rem);position:absolute;inset:3rem -1rem auto}.section-heading{gap:.8rem;max-width:50rem;margin-bottom:1.4rem;display:grid}.section-heading h2{margin:0;font-size:3rem;line-height:1.04}.domain-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.domain-card,.project-card,.note-card,.timeline article{box-shadow:inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#1c1b1b9e;border-radius:4px}.domain-card{gap:1rem;min-height:22rem;padding:1.15rem;display:grid}.domain-card__header{align-items:center;gap:.85rem;display:flex}.domain-card__icon{background:#0e0e0e6b;border-radius:4px;flex:none;place-items:center;width:2.75rem;height:2.75rem;display:grid;box-shadow:inset 0 0 0 1px}.domain-card__header p,.project-card>div p,.note-card__meta,.timeline article>p:first-of-type{color:var(--dim);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;margin:0 0 .2rem;font-size:.72rem;font-weight:700}.domain-card h3,.project-card h3,.note-card__title,.timeline h3{color:var(--text);font-family:var(--font-display);letter-spacing:0;margin:0;font-size:1.35rem;font-weight:700;line-height:1.12}.skill-list{flex-wrap:wrap;align-self:end;gap:.45rem;display:flex}.skill-list span{color:var(--muted);font-family:var(--font-mono);background:#353534a3;border-radius:4px;padding:.36rem .52rem;font-size:.76rem;box-shadow:inset 0 0 0 1px #87948c1f}.split-section{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:start;gap:1.5rem;display:grid}.project-list{gap:.9rem;display:grid}.project-card{grid-template-columns:minmax(0,1fr) auto;gap:.85rem;padding:1.1rem;display:grid}.project-card>p,.project-card .skill-list,.project-card strong,.project-links{grid-column:1/-1}.project-card>span{color:var(--amber);font-family:var(--font-mono);background:#ffba3817;border-radius:4px;align-self:start;padding:.36rem .5rem;font-size:.72rem;font-weight:800;box-shadow:inset 0 0 0 1px #ffba3838}.project-card strong{color:var(--amber);font-size:.94rem;line-height:1.5}.project-links{flex-wrap:wrap;gap:.5rem;display:flex}.project-links a{min-height:2rem;color:var(--green-hot);font-family:var(--font-mono);background:#73daaf14;border-radius:4px;align-items:center;gap:.38rem;padding:.42rem .55rem;font-size:.76rem;font-weight:800;display:inline-flex;box-shadow:inset 0 0 0 1px #73daaf33}.project-links a:hover,.project-links a:focus-visible{color:var(--ink);background:var(--green-hot);outline:none}.notes-section{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);align-items:start;gap:1.5rem;display:grid}.notes-list{gap:.75rem;display:grid}.note-card{overflow:hidden}.note-card button{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;gap:.5rem .85rem;padding:1rem 3.1rem 1rem 1rem;display:grid;position:relative}.note-card button:hover,.note-card button:focus-visible{background:#73daaf0f;outline:none}.note-card button:focus-visible{box-shadow:inset 0 0 0 1px #73daaf80}.note-card__meta,.note-card__title,.note-card__summary,.note-card__tags{grid-column:1}.note-card__title{font-size:1.28rem;display:block}.note-card__summary{max-width:52rem;color:var(--muted);line-height:1.55;display:block}.note-card__tags{flex-wrap:wrap;gap:.42rem;margin-top:.1rem;display:flex}.note-card__tags span{color:var(--cyan);font-family:var(--font-mono);background:#66d9ff12;border-radius:4px;padding:.3rem .46rem;font-size:.7rem;font-weight:800;box-shadow:inset 0 0 0 1px #66d9ff29}.note-card__chevron{color:var(--green-hot);transition:transform .22s;position:absolute;top:1.2rem;right:1rem}.note-card.is-expanded .note-card__chevron{transform:rotate(180deg)}.note-card__body{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .26s,opacity .18s;display:grid}.note-card.is-expanded .note-card__body{opacity:1;grid-template-rows:1fr}.note-card__body-inner{min-height:0;overflow:hidden}.note-card__body-content{gap:.75rem;padding:0 1rem 1.1rem;display:grid}.note-card__body-content p{max-width:60rem;margin:0}.timeline-section{padding-bottom:4.5rem}.timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.timeline article{min-height:16rem;padding:1.1rem;position:relative;overflow:hidden}.timeline article:before{content:"";background:linear-gradient(90deg, var(--green), var(--amber), var(--violet));height:.22rem;position:absolute;inset:0 0 auto}.timeline article>span{color:var(--cyan);font-family:var(--font-mono);margin:.4rem 0 1.5rem;font-weight:900;display:inline-flex}.site-footer{width:min(calc(100% - 2rem), var(--max-width));background:var(--glass-strong);box-shadow:inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);opacity:var(--content-opacity);transform:translateY(var(--section-offset));border-radius:4px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2rem;margin:0 auto 1rem;padding:1.4rem;transition:opacity .12s linear,transform .12s linear;display:grid}.site-footer h2{margin:.55rem 0 .45rem;font-size:2.25rem;line-height:1.06}.footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;min-width:min(28rem,100%);display:grid}.footer-links a{min-width:0;color:var(--text);box-shadow:inset 0 0 0 1px var(--line);background:#e5e2e112;padding:.75rem .85rem}@media (width<=1040px){.hero-section,.split-section,.notes-section,.site-footer{grid-template-columns:1fr}.hero-copy h1{font-size:4.7rem}.hero-copy__headline{max-width:18ch;font-size:2rem}.hero-signal{left:1rem;right:auto}.metrics-strip,.domain-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){body{background-size:38px 38px,38px 38px,auto}.constellation-layer{opacity:var(--constellation-opacity)}.constellation-canvas canvas{filter:saturate(1.38)brightness(1.45)}.constellation-layer:before{background:linear-gradient(90deg,#0e0e0e80,#0e0e0e38),linear-gradient(#0e0e0e99 0%,#0e0e0e24 46%,#0e0e0ed1 100%)}.page-atmosphere{background:linear-gradient(90deg,#0e0e0e99 0%,#0e0e0e29 46%,#0e0e0e94 100%),linear-gradient(#0e0e0e5c 0%,#0e0e0e2e 42%,#0e0e0ee6 100%)}.site-header{display:grid;position:static}.site-header nav{justify-content:start;padding-bottom:.2rem;overflow-x:auto}.site-header nav a{white-space:nowrap}.hero-section{min-height:auto;padding-top:2rem;padding-bottom:5.5rem}.hero-copy h1{font-size:3.55rem}.hero-copy__headline{font-size:1.62rem}.hero-copy__summary,.domain-card p,.project-card p,.note-card__summary,.note-card__body-content p,.timeline article p,.site-footer p{overflow-wrap:anywhere}.hero-copy__summary{max-width:32ch}.node-inspector{gap:.3rem;width:100%;max-width:none;padding:.5rem .56rem}.node-inspector__hud,.node-inspector__readout{gap:.34rem .42rem}.node-inspector__hud{flex-wrap:wrap;justify-content:flex-start}.node-inspector__meta{justify-content:flex-start}.node-inspector .section-kicker{font-size:.6rem}.node-inspector h2{font-size:1rem}.node-inspector__domain{font-size:.6rem}.node-inspector__meta span{padding:.16rem .32rem;font-size:.56rem}.node-inspector__detail{font-size:.76rem;line-height:1.28}.hero-signal{width:min(22rem,100vw - 3rem);inset:1rem auto auto 1rem;transform:none}.app-shell.is-scrolled .hero-signal{transform:translateY(.75rem)}.metrics-strip,.domain-grid,.timeline,.footer-links,.project-card{grid-template-columns:1fr}.note-card button{padding-right:2.65rem}.section-heading h2{font-size:2.15rem}.content-section{padding-top:3.5rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
