:root{--bg: #121010;--bg-elev: #1a1717;--fg: #f4f2f0;--fg-dim: #a9a29d;--fg-faint: #6b6461;--rule: rgba(244, 242, 240, .12);--rule-soft: rgba(244, 242, 240, .06);--accent: #ff5d2e;--display: "Unbounded", system-ui, sans-serif;--ui: "Space Grotesk", system-ui, sans-serif;--gutter: clamp(1.25rem, 5vw, 5.5rem);--ease: cubic-bezier(.16, 1, .3, 1);--perspective: 1100px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--ui);font-weight:300;font-size:15px;line-height:1.6;letter-spacing:.02em;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.is-locked{overflow:hidden}h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:1px solid var(--accent);outline-offset:4px}.driver{width:100%;pointer-events:none}.stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;perspective:var(--perspective);perspective-origin:50% 48%;overflow:hidden}.panel{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:clamp(5rem,12vh,8rem) var(--gutter) clamp(4.5rem,10vh,7rem);will-change:transform;pointer-events:none}.panel-inner{width:min(1180px,100%);max-height:100%;will-change:opacity,filter}html.flat .driver{display:none}html.flat .stage{position:static;perspective:none;overflow:visible}html.flat .panel{position:relative;inset:auto;min-height:0;padding-block:clamp(4rem,12vh,8rem);border-top:1px solid var(--rule-soft);pointer-events:auto;transform:none!important}html.flat .panel:first-child{border-top:0}html.flat .panel-inner{opacity:1!important;filter:none!important}.kicker{font-family:var(--ui);font-size:11px;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--fg-faint)}.display{font-family:var(--display);font-weight:900;line-height:.9;letter-spacing:.02em;text-transform:uppercase}.panel-head{display:flex;align-items:baseline;gap:1rem;margin-bottom:clamp(1.5rem,4vh,3rem)}.panel-head .num{font-family:var(--ui);font-size:11px;letter-spacing:.24em;color:var(--accent)}.panel-head .rule{flex:1;height:1px;background:var(--rule)}.panel-head .note{color:var(--fg-faint)}.p-intro h1{font-size:clamp(2.75rem,min(13vw,19vh),11rem)}.p-intro h1 span{display:block}.intro-meta{margin-top:clamp(1.75rem,5vh,3.5rem);display:flex;flex-wrap:wrap;gap:clamp(1.25rem,6vw,5rem);align-items:flex-start}.intro-meta .col{min-width:150px;flex:1 1 200px}.intro-meta .col p{margin-top:.6rem;color:var(--fg-dim);max-width:34ch;font-size:clamp(.85rem,1.5vh,.95rem)}.pitch-lead{font-family:var(--display);font-weight:700;text-transform:uppercase;line-height:1.02;font-size:clamp(1.5rem,min(5vw,7.5vh),3.75rem);max-width:18ch}.pitch-body{margin-top:clamp(1.5rem,4vh,2.5rem);margin-left:auto;max-width:52ch;color:var(--fg-dim);font-size:clamp(.9rem,1.7vh,1.05rem)}.pitch-motto{margin-top:clamp(1.5rem,4vh,2.75rem);padding-top:clamp(.9rem,2vh,1.25rem);border-top:1px solid var(--rule-soft);display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem clamp(1rem,3vw,2rem);font-family:var(--display);font-weight:400;font-size:clamp(.9rem,min(2vw,2.4vh),1.25rem);line-height:1.3}.pitch-motto .kicker{color:var(--accent)}.path-row{display:grid;grid-template-columns:132px minmax(0,1fr) minmax(0,1.35fr);gap:clamp(.75rem,3vw,2.5rem);padding:clamp(.7rem,1.8vh,1.5rem) 0;border-top:1px solid var(--rule-soft);align-items:start}.path-list .path-row:last-child{border-bottom:1px solid var(--rule-soft)}.path-row .year{font-size:11px;letter-spacing:.22em;color:var(--fg-faint);padding-top:.3rem}.path-row .title{font-family:var(--display);font-weight:400;font-size:clamp(.9rem,1.9vh,1.25rem);line-height:1.2}.path-row .title .at{display:block;margin-top:.3rem;font-family:var(--ui);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.path-row .detail{color:var(--fg-dim);font-size:clamp(.82rem,1.5vh,.95rem)}.education{margin-top:clamp(1rem,3vh,2rem);display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem clamp(1rem,4vw,3rem)}.education p{color:var(--fg-dim);font-size:clamp(.8rem,1.5vh,.92rem)}.education b{font-weight:400;color:var(--fg)}@media (max-width: 820px){.path-row{grid-template-columns:1fr;gap:.3rem}.path-row .detail{display:none}}.p-title .big,.p-contact .big{font-size:clamp(2.25rem,min(10vw,15vh),8rem);line-height:.88}.p-title .pitch-body{margin-top:clamp(1.5rem,4vh,2.5rem)}.work-row{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1.1fr) 60px 20px;align-items:baseline;gap:clamp(.6rem,2.5vw,2rem);padding:clamp(.55rem,1.6vh,1.15rem) 0;border-top:1px solid var(--rule-soft);transition:color .35s var(--ease)}.work-list .work-row:last-child{border-bottom:1px solid var(--rule-soft)}.work-row .idx,.work-row .year{font-size:11px;letter-spacing:.2em;color:var(--fg-faint);transition:color .35s var(--ease)}.work-row .year{text-align:right}.work-row .name{font-family:var(--display);font-weight:400;font-size:clamp(.95rem,2vh,1.35rem);line-height:1.15;transition:transform .45s var(--ease);display:inline-block}.work-row .what{display:flex;flex-direction:column;align-items:flex-start}.work-row .blurb{margin-top:.4rem;max-width:48ch;color:var(--fg-dim);font-size:clamp(.8rem,1.45vh,.92rem);line-height:1.5}.work-row .meta{font-size:clamp(.72rem,1.3vh,.85rem);color:var(--fg-faint);transition:color .35s var(--ease)}.work-row .arrow{font-size:13px;color:var(--fg-faint);opacity:0;transform:translate(-4px,4px);transition:opacity .35s var(--ease),transform .35s var(--ease)}.work-row:hover{color:var(--fg)}.work-row:hover .name{transform:translate(clamp(4px,.8vw,12px))}.work-row:hover .idx,.work-row:hover .meta{color:var(--accent)}.work-row:hover .arrow{opacity:1;transform:none;color:var(--accent)}@media (max-width: 760px){.work-row{grid-template-columns:34px minmax(0,1fr) 52px;row-gap:.15rem}.work-row .meta{display:none}.work-row .blurb{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.work-row .arrow{display:none}}.go{display:inline-flex;align-items:center;gap:.6rem;margin-top:clamp(1.25rem,3vh,2rem);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-dim);border-bottom:1px solid var(--rule);padding-bottom:.4rem;transition:color .35s var(--ease),border-color .35s var(--ease),gap .35s var(--ease)}.go:hover{color:var(--accent);border-color:var(--accent);gap:1.1rem}.research{display:grid;gap:clamp(.85rem,2.5vh,1.5rem);border:1px solid var(--rule);padding:clamp(1.25rem,4vh,3.5rem);transition:border-color .4s var(--ease)}.research:hover{border-color:#f4f2f04d}.research h3{font-family:var(--display);font-weight:700;font-size:clamp(1.05rem,min(2.8vw,4vh),2.1rem);line-height:1.15;max-width:24ch}.research p{color:var(--fg-dim);max-width:62ch;font-size:clamp(.85rem,1.6vh,1rem)}.research .doi{font-size:11px;letter-spacing:.18em;color:var(--fg-faint)}.p-contact .avail{margin-bottom:clamp(1rem,3vh,2rem);color:var(--accent)}.p-contact .mail{display:inline-block;margin-top:clamp(1.5rem,4vh,2.5rem);font-family:var(--display);font-weight:400;font-size:clamp(.95rem,min(2.4vw,3vh),1.5rem);border-bottom:1px solid var(--rule);padding-bottom:.4rem;transition:color .35s var(--ease),border-color .35s var(--ease)}.p-contact .mail:hover{color:var(--accent);border-color:var(--accent)}.contact-links{margin-top:clamp(1.75rem,5vh,3.5rem);display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--rule-soft);border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft)}.contact-links a{background:var(--bg);padding:clamp(.9rem,2.5vh,1.75rem);display:block;transition:background .4s var(--ease)}.contact-links a:hover{background:var(--bg-elev)}.contact-links .k{display:block;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--fg-faint)}.contact-links .v{display:block;margin-top:.5rem;font-family:var(--display);font-weight:400;font-size:clamp(.85rem,1.7vh,1.1rem);word-break:break-word}.colophon{margin-top:clamp(1.5rem,4vh,3rem);display:flex;flex-wrap:wrap;gap:.75rem 2rem;justify-content:space-between;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-faint)}.grain,.vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:20}.vignette{background:radial-gradient(ellipse at 50% 45%,transparent 42%,rgba(0,0,0,.72) 100%)}.grain{opacity:.45;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%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)' opacity='0.42'/%3E%3C/svg%3E");background-size:180px 180px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;pointer-events:none}.overlay>*{pointer-events:auto}.header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:clamp(1rem,2.5vw,1.75rem) var(--gutter);mix-blend-mode:difference}.brand{display:flex;align-items:center;gap:.75rem;font-size:11px;letter-spacing:.22em;text-transform:uppercase}.brand .mark{font-family:var(--display);font-weight:900;font-size:13px;letter-spacing:.06em}.brand .sep{width:22px;height:1px;background:currentColor;opacity:.5}.status{font-size:11px;letter-spacing:.28em;text-transform:uppercase;white-space:nowrap}@media (max-width: 640px){.brand .sep,.brand .full{display:none}}.progress-track{position:absolute;top:0;left:0;right:0;height:2px;background:var(--rule-soft)}.progress-fill{height:100%;width:0;background:var(--accent)}.section-nav{position:absolute;left:var(--gutter);bottom:clamp(1.25rem,3vw,2.25rem)}.section-label{display:flex;align-items:center;gap:.5rem;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--fg-dim)}.section-label b{font-weight:400;color:var(--fg)}.chev{display:block;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(-135deg);transition:transform .4s var(--ease)}.chev.open{transform:rotate(45deg)}.section-menu{position:absolute;bottom:calc(100% + .85rem);left:0;min-width:220px;padding:.5rem 0;background:#121010eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--rule);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s}.section-menu.open{opacity:1;visibility:visible;transform:none}.section-menu button{display:flex;align-items:baseline;gap:.9rem;width:100%;padding:.5rem 1.1rem;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-dim);transition:color .25s var(--ease)}.section-menu button span{color:var(--fg-faint);font-size:10px}.section-menu button:hover,.section-menu button.active{color:var(--fg)}.section-menu button.active span{color:var(--accent)}.hint{position:absolute;right:var(--gutter);bottom:clamp(1.25rem,3vw,2.25rem);display:flex;align-items:center;gap:.75rem;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--fg-faint);transition:opacity .6s var(--ease)}.hint .line{width:46px;height:1px;background:currentColor;transform-origin:left;animation:hintPulse 2.4s var(--ease) infinite}@keyframes hintPulse{0%,to{transform:scaleX(.25);opacity:.4}50%{transform:scaleX(1);opacity:1}}@media (prefers-reduced-motion: reduce){.hint .line{animation:none}}@media (max-width: 720px){.hint{display:none}}.loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;background:var(--bg);transition:opacity .9s var(--ease),visibility .9s}.loader.done{opacity:0;visibility:hidden}.loader .word{font-family:var(--display);font-weight:900;font-size:clamp(2.5rem,11vw,6rem);letter-spacing:.04em;line-height:1;overflow:hidden}.loader .word span{display:inline-block;animation:loadIn .9s var(--ease) both}@keyframes loadIn{0%{transform:translateY(105%)}to{transform:none}}.loader .pct{font-size:11px;letter-spacing:.35em;color:var(--fg-faint);font-variant-numeric:tabular-nums}.loader .bar{width:min(240px,50vw);height:1px;background:var(--rule)}.loader .bar i{display:block;height:100%;background:var(--fg);transition:width .25s linear}.hero-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.hero-canvas canvas{display:block;width:100%;height:100%}
