*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--paper:#0d1320;--paper-2:#141c2c;--paper-3:#26324a;--ink:#e8ecf1;--ink-2:#bcc3cc;--muted:#7a8494;--line:#c8d2e11a;--line-2:#c8d2e147;--night:#080c12;--night-2:#101826;--cream:#e8ecf1;--cream-2:#8f99a8;--nline:#c8d2e11a;--blue:#1e3a5f;--signal:#3e78c8;--signal-2:#6a9be0;--soft:#8da6c8;--display:"Bricolage Grotesque", system-ui, sans-serif;--serif:"Instrument Serif", Georgia, serif;--mono:"JetBrains Mono", ui-monospace, monospace;--gutter:clamp(16px, 4vw, 56px);--ease:cubic-bezier(.2,.7,.1,1)}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--display);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;font-size:17px;line-height:1.55;overflow-x:hidden}::selection{background:var(--signal);color:var(--paper)}a{color:inherit}img{max-width:100%;display:block}.mono{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:11px}em{font-family:var(--serif);letter-spacing:-.01em;font-style:italic;font-weight:400}#grain{z-index:9000;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:220px;animation:1.2s steps(6,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-1%,3%)}80%{transform:translate(3%,1%)}to{transform:translate(0)}}#cursor{z-index:8000;pointer-events:none;width:10px;height:10px;transition:width .35s var(--ease), height .35s var(--ease), margin .35s var(--ease), background .35s, opacity .3s;opacity:0;border:1px solid #8da6c899;border-radius:50%;place-items:center;margin:-5px 0 0 -5px;display:grid;position:fixed;top:0;left:0}#cursor.on{opacity:1}#cursor.big{width:36px;height:36px;margin:-18px 0 0 -18px}@media (pointer:coarse){#cursor{display:none}}#nav{z-index:500;padding:18px var(--gutter);transition:transform .5s var(--ease), background .4s, border-color .4s, padding .4s;border-bottom:1px solid #0000;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;display:grid;position:fixed;top:0;left:0;right:0}#nav.solid{background:var(--paper);border-color:var(--line);padding-block:12px}#nav.dark{background:var(--night)}#nav.hide{transform:translateY(-100%)}.nav-mark{white-space:nowrap;flex-direction:column;line-height:1.25;text-decoration:none;display:flex}.nav-mark strong{letter-spacing:-.01em;font-size:15px;font-weight:600}.nav-mark span{color:var(--muted);font-size:13px}.nav-links{gap:28px;list-style:none;display:flex}.nav-links a{color:var(--ink-2);align-items:baseline;gap:6px;font-size:14px;text-decoration:none;transition:color .25s;display:flex;position:relative}.nav-links i{font-style:normal;font-family:var(--mono);color:var(--muted);font-size:10px}.nav-links a:after{content:"";background:var(--ink);transform-origin:0;height:1px;transition:transform .35s var(--ease);position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover{color:var(--ink)}.nav-links a:hover:after{transform:scaleX(1)}.nav-clock{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;justify-self:end;font-size:12px}.hero{min-height:100svh;padding:120px var(--gutter) 48px;flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}#field{z-index:0;width:100%;height:100%;position:absolute;inset:0}.hero>:not(#field){z-index:1;position:relative}@keyframes blink{50%{opacity:.25}}.hero-name{letter-spacing:-.055em;font-variation-settings:"opsz" 96;pointer-events:none;margin-bottom:28px;font-size:clamp(52px,9vw,148px);font-weight:700;line-height:.84}.hero-name .line{padding-bottom:.04em;display:block;overflow:hidden}.hero-name .word{display:inline-block}.hero-name .ch{animation:rise 1.1s var(--ease) forwards;display:inline-block;transform:translateY(105%)rotate(6deg)}@keyframes rise{to{transform:none}}.hero-ast{color:var(--soft);vertical-align:top;opacity:.7;transform-origin:50% 52%;margin-left:.15em;font-size:.3em;animation:40s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.hero-foot{justify-content:space-between;align-items:flex-end;gap:32px;display:flex}.hero-logos{align-items:center;gap:22px;margin-top:26px;display:flex}.hero-logos img{opacity:.7;width:auto;height:40px;transition:opacity .3s}.hero-logos img:hover{opacity:1}.hero-logos i{background:var(--line-2);width:1px;height:30px}.hero-lede{max-width:520px;color:var(--ink-2);letter-spacing:-.01em;font-size:clamp(18px,1.7vw,23px);line-height:1.4}.hero-lede em{color:var(--ink);font-size:1.08em}.badge{opacity:.75;flex:none;width:112px;height:112px;position:relative}.badge svg{width:100%;height:100%;animation:40s linear infinite spin}.badge text{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;fill:var(--muted);font-size:13.5px}.badge-core{border:1px solid var(--line-2);color:var(--ink-2);border-radius:50%;place-items:center;font-size:20px;animation:2.2s ease-in-out infinite bob;display:grid;position:absolute;inset:34px}@keyframes bob{50%{transform:translateY(4px)}}.marquee{color:var(--muted);border-block:1px solid var(--line);margin:0 0 24px;overflow:hidden}.marquee-track{align-items:center;gap:22px;width:max-content;padding:10px 0;animation:32s linear infinite marq;display:flex}.marquee span{letter-spacing:-.03em;white-space:nowrap;font-size:clamp(15px,1.6vw,20px);font-weight:400}.marquee b{color:var(--paper-3);font-size:12px;font-weight:400}@keyframes marq{to{transform:translate(-50%)}}.sec{padding:clamp(80px,12vw,160px) var(--gutter);position:relative}.inverse{background:var(--night);color:var(--cream)}.sec-label{color:var(--muted);align-items:center;gap:12px;margin-bottom:40px;display:flex}.sec-label span{border:1px solid;border-radius:999px;place-items:center;min-width:34px;height:22px;padding:0 8px;display:inline-grid}.inverse .sec-label{color:var(--cream-2)}.sec-title{letter-spacing:-.045em;margin-bottom:clamp(40px,6vw,80px);font-size:clamp(34px,4.6vw,68px);font-weight:600;line-height:.95}.sec-title em{color:var(--soft)}.reveal{opacity:0;transition:opacity 1s var(--ease), transform 1s var(--ease);transform:translateY(40px)}.reveal.vis{opacity:1;transform:none}.statement{letter-spacing:-.035em;max-width:1200px;margin-bottom:clamp(64px,9vw,120px);font-size:clamp(24px,3.1vw,44px);font-weight:400;line-height:1.08}.statement .w{color:var(--paper-3);transition:color .35s}.statement .w.lit{color:var(--ink)}.statement .w.hl.lit{color:var(--soft);font-family:var(--serif);font-style:italic;font-weight:400}.about-grid{grid-template-columns:clamp(220px,24vw,300px) 1fr;align-items:start;gap:clamp(32px,6vw,96px);display:grid}.portrait{perspective:1000px}.portrait-frame{aspect-ratio:4/5;background:var(--paper-2);transform-style:preserve-3d;border-radius:18px;position:relative;overflow:hidden;box-shadow:0 30px 60px -30px #0009}.portrait-frame:after{content:"";pointer-events:none;background:radial-gradient(circle at var(--gx,30%) var(--gy,20%), #ffffff47, transparent 45%);mix-blend-mode:soft-light;position:absolute;inset:0}.portrait img{object-fit:cover;object-position:50% 25%;filter:saturate(.9)contrast(1.04);width:100%;height:100%;transform:scale(1.08)}.portrait figcaption{color:var(--muted);margin-top:12px}.about-copy p{color:var(--ink-2);max-width:60ch;margin-bottom:1.1em;font-size:clamp(17px,1.45vw,20px)}.about-copy strong{color:var(--ink);font-weight:600}.facts{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;margin-top:40px;display:grid}.facts div{border-bottom:1px solid var(--line);padding:18px 0}.facts div:nth-child(odd){padding-right:16px}.facts dt{color:var(--muted);margin-bottom:4px}.facts dd{font-size:16px;font-weight:500}.jobs{border-top:1px solid var(--nline);list-style:none}.job{border-bottom:1px solid var(--nline);grid-template-columns:180px 1fr 220px;gap:24px;padding:34px 0;display:grid;position:relative}.job:before{content:"";z-index:0;background:var(--night-2);transform-origin:bottom;transition:transform .5s var(--ease);position:absolute;inset:0;transform:scaleY(0)}.job:hover:before{transform:scaleY(1)}.job>*{z-index:1;position:relative}.job-when{color:var(--cream-2);padding-top:10px}.job h3{letter-spacing:-.03em;transition:transform .5s var(--ease), color .3s;font-size:clamp(21px,2.1vw,30px);font-weight:600;line-height:1.1}.job:hover h3{color:var(--soft);transform:translate(6px)}.job-role{color:var(--cream-2);margin:6px 0 12px}.job-desc{color:#f3efe6c7;max-width:62ch;font-size:16px}.job-tags{flex-wrap:wrap;place-content:start flex-end;gap:6px;padding-top:8px;display:flex}.job-tags span{border:1px solid var(--nline);color:var(--cream-2);border-radius:999px;padding:5px 10px}.now-pill{vertical-align:middle;border:1px solid var(--line-2);color:var(--soft);letter-spacing:.08em;border-radius:999px;margin-left:8px;padding:4px 10px;font-size:10px}.pgrid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.pcard{background:var(--paper-2);border:1px solid var(--line);min-height:260px;transform-style:preserve-3d;border-radius:18px;flex-direction:column;gap:12px;padding:24px;transition:background .3s,border-color .3s,box-shadow .4s;display:flex;position:relative}.pcard:hover{border-color:var(--line-2);background:#1a2438;box-shadow:0 30px 60px -30px #0009}.pcard:after{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(400px circle at var(--gx,50%) var(--gy,50%), #3e78c814, transparent 50%);opacity:0;transition:opacity .3s;position:absolute;inset:0}.pcard:hover:after{opacity:1}.pcard>*{transform:translateZ(30px)}.pcard-top{color:var(--muted);justify-content:space-between;display:flex}.pcard h3{letter-spacing:-.03em;margin-top:auto;font-size:clamp(22px,1.9vw,28px);font-weight:600;line-height:1.1}.pcard p{color:var(--ink-2);font-size:15px;line-height:1.5}.chips{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.chips span{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:10px}.pcard.big{background:var(--night);color:var(--cream);border-color:var(--line-2);grid-area:span 2/span 2}.pcard.big:hover{background:#0b111b}.pcard.big .pcard-top{color:var(--cream-2)}.pcard.big p{color:#f3efe6bf;max-width:46ch;font-size:16px}.pcard.big h3{margin-top:0;font-size:clamp(26px,2.5vw,38px)}.pcard.big .chips span{border-color:var(--nline);color:var(--cream-2);background:0 0}.pcard-viz{flex:1;align-items:flex-end;margin:16px 0 4px;display:flex}.term{border:1px solid var(--nline);text-transform:none;letter-spacing:0;background:#05080d;border-radius:12px;width:100%;padding:18px 20px;font-size:12px;line-height:1.9;box-shadow:0 20px 40px -20px #0009}.term i{color:var(--signal);margin-right:6px;font-style:normal}.term .dim{color:var(--cream-2)}.caret{background:var(--signal);vertical-align:-2px;width:8px;height:14px;margin-left:6px;animation:1s step-end infinite blink;display:inline-block}.pcard.accent{box-shadow:inset 3px 0 0 var(--blue);grid-column:span 2}.stack{background:var(--paper-2)}.stack-grid{grid-template-columns:7fr 5fr;gap:clamp(32px,6vw,96px);display:grid}.srow{border-top:1px solid var(--line);grid-template-columns:220px 1fr;gap:24px;padding:22px 0;display:grid}.srow:last-child{border-bottom:1px solid var(--line)}.srow h4{letter-spacing:-.02em;font-size:19px;font-weight:600}.srow p{color:var(--ink-2);font-size:16px}.edu{perspective:1200px;flex-direction:column;gap:16px;display:flex}.edu-card{background:var(--paper);border:1px solid var(--line);transform-style:preserve-3d;border-radius:18px;padding:28px}.edu-card img{opacity:.85;width:auto;height:46px;margin-bottom:28px}.edu-yr{color:var(--signal);margin-bottom:6px}.edu-card h4{letter-spacing:-.025em;margin-bottom:8px;font-size:24px;font-weight:600;line-height:1.15}.edu-card p{color:var(--ink-2);font-size:15px}.contact{padding-bottom:clamp(64px,8vw,110px);overflow:hidden}.contact:before{content:"";filter:blur(20px);pointer-events:none;background:radial-gradient(circle,#2a508038,#0000 60%);width:70vmax;height:70vmax;animation:16s ease-in-out infinite alternate drift;position:absolute;top:-20vmax;right:-25vmax}@keyframes drift{to{transform:translate(-12vmax,10vmax)scale(1.15)}}.contact>*{position:relative}.contact-head{letter-spacing:-.045em;margin-bottom:clamp(40px,6vw,72px);font-size:clamp(38px,6vw,96px);font-weight:600;line-height:.95}.contact-head span{display:block}.contact-head em{color:var(--soft);font-weight:400}.mail{border:1px solid var(--line-2);color:var(--ink);letter-spacing:-.02em;border-radius:999px;align-items:center;gap:18px;max-width:100%;padding:14px 16px 14px 24px;font-size:clamp(16px,1.6vw,21px);font-weight:500;text-decoration:none;transition:background .3s,color .3s;display:inline-flex}.mail span{text-overflow:ellipsis;overflow:hidden}.mail b{background:var(--blue);width:1.6em;height:1.6em;color:var(--ink);transition:transform .4s var(--ease);border-radius:50%;flex:none;place-items:center;font-weight:400;display:grid}.mail:hover{background:var(--paper-2);border-color:var(--soft)}.mail:hover b{transform:rotate(-45deg)}.links{border-top:1px solid var(--nline);grid-template-columns:repeat(4,1fr);margin-top:clamp(56px,8vw,96px);list-style:none;display:grid}.links a{flex-direction:column;gap:6px;padding:22px 20px 22px 0;font-size:18px;font-weight:500;text-decoration:none;display:flex;position:relative}.links .mono{color:var(--cream-2)}.links b{color:var(--cream-2);transition:transform .3s var(--ease), color .3s;font-weight:400;position:absolute;top:22px;right:16px}.links a:hover b{color:var(--signal);transform:translate(4px,-4px)}.links a:hover{color:var(--signal-2)}footer{padding:22px var(--gutter);background:var(--night);color:var(--cream-2);border-top:1px solid var(--nline);flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}footer a{text-decoration:none}footer a:hover{color:var(--signal)}@media (width<=1100px){.pgrid{grid-template-columns:repeat(2,1fr)}.job{grid-template-columns:140px 1fr}.job-tags{grid-column:2;justify-content:flex-start;padding-top:0}.stack-grid{grid-template-columns:1fr}.edu{flex-direction:row}.edu-card{flex:1}}@media (width<=820px){.nav-links{display:none}.about-grid{grid-template-columns:1fr}.portrait{max-width:260px}.links{grid-template-columns:1fr 1fr}.srow{grid-template-columns:1fr;gap:6px}}@media (width<=600px){body{font-size:16px}#nav{padding:14px var(--gutter);grid-template-columns:1fr auto}.hero{padding-bottom:32px}.hero-foot{flex-direction:column;align-items:flex-start;gap:24px}.badge{width:92px;height:92px;right:var(--gutter);bottom:32px;position:absolute!important}.badge-core{font-size:16px;inset:24px}.hero-lede{padding-right:110px;font-size:17px}.pgrid{grid-template-columns:1fr}.pcard{min-height:0}.pcard h3{margin-top:12px}.pcard.big,.pcard.accent{grid-area:auto}.job{grid-template-columns:1fr;gap:8px;padding:28px 0}.job-when{padding-top:0}.job-tags{grid-column:auto}.edu{flex-direction:column}.facts{grid-template-columns:1fr}.facts div:nth-child(odd){padding-right:0}.links{grid-template-columns:1fr}.mail{gap:12px;padding:16px 20px;font-size:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}.hero-name .ch{transform:none}.statement .w{color:var(--ink)}}
