@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.jVoK1W_className{font-family:Geist,Geist Fallback;font-style:normal}.jVoK1W_variable{--font-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.ksAy2q_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.ksAy2q_variable{--font-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--ink:#11130f;--paper:#edece2;--acid:#d7fa63;--line:#ffffff25;--muted:#adb1a5;--room-bg:#11130f;--fg:#f4f4ec;--accent:#d7fa63;--ease:cubic-bezier(.2,.8,.2,1)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:var(--font-sans),Arial,sans-serif;background:var(--ink)}button,a{-webkit-tap-highlight-color:transparent;color:inherit;font:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}a{text-decoration:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{opacity:.35;cursor:default}::selection{background:var(--acid);color:var(--ink)}.experience{isolation:isolate;background:var(--room-bg);width:100%;height:100dvh;min-height:0;color:var(--fg);transition:background .6s,color .6s;position:relative;overflow:hidden}.scene-1{--room-bg:#171a14}.scene-2{--room-bg:#e7e8df;--fg:#20261d;--muted:#545e4b;--line:#20261d30;--accent:#466520}.scene-3{--room-bg:#10140e}.scene-4{--room-bg:#293822}.experience:before{content:"";z-index:-1;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);opacity:.14;background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 80%);mask-image:linear-gradient(#000,#0000 80%)}.spotlight{z-index:0;pointer-events:none;background:radial-gradient(520px circle at var(--mx,72%) var(--my,38%),color-mix(in srgb,var(--accent) 8%,transparent),transparent 65%);transition:background .6s;position:absolute;inset:0}.site-header{z-index:20;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:80px;padding:0 4vw;display:flex;position:absolute;inset:0 0 auto}.wordmark{font:700 18px var(--font-mono);padding:10px 0}.wordmark span{color:var(--accent)}.site-header nav{gap:4px;display:flex}.site-header nav button{color:var(--muted);padding:14px;font-size:12px;transition:color .2s;position:relative}.site-header nav button:hover,.site-header nav button[aria-current]{color:var(--fg)}.nav-index{font:9px var(--font-mono);color:var(--accent);opacity:.75;margin-right:6px}.site-header nav button:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .35s var(--ease);position:absolute;bottom:3px;left:14px;right:14px;transform:scaleX(0)}.site-header nav button[aria-current]:after{transform:scaleX(1)}.header-link{border:1px solid var(--line);border-radius:30px;padding:10px 15px;font-size:12px;transition:background .2s,color .2s}.header-link:hover{background:var(--accent);color:var(--ink);border-color:var(--accent)}.backdrop-word{z-index:0;letter-spacing:-.08em;color:var(--fg);opacity:.035;pointer-events:none;animation:word-in 1s var(--ease) both;font-size:clamp(110px,18vw,280px);font-weight:750;line-height:1;position:absolute;top:16vh;right:1vw}@keyframes word-in{0%{clip-path:inset(100% 0 0);transform:translateY(30px)}to{clip-path:inset(0);transform:none}}.portrait-scene{z-index:1;aspect-ratio:1;pointer-events:none;transform-origin:85% 100%;width:min(49vw,76vh,850px);transition:transform .8s var(--ease),opacity .6s;position:absolute;bottom:57px;right:1vw}.scene-1 .portrait-scene{transform:scale(.72)translate(4%)}.scene-2 .portrait-scene{transform:scale(.8)translate(3%)}.scene-3 .portrait-scene{transform:scale(.8)translate(-8%)}.scene-4 .portrait-scene{transform:scale(1.04)}.portrait-orbit{border:1px solid var(--line);background:radial-gradient(#99b76923,#0000 70%);border-radius:50%;position:absolute;inset:10% 3% 1%}.portrait-orbit:after{content:"";border:1px dashed var(--line);opacity:.6;border-radius:50%;animation:90s linear infinite orbit;position:absolute;inset:8%}@keyframes orbit{to{transform:rotate(360deg)}}.scene-3 .portrait-orbit{background:radial-gradient(at 50% 45%,#d7fa6314,#0000 62%);border-color:#0000}.portrait-render{transform:translate(var(--lean-x,0px),calc(var(--lean-y,0px) - var(--gesture,0px))) rotate(var(--lean-angle,0deg));transform-origin:50% 95%;will-change:transform;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 88%,#0000 100%);mask-image:linear-gradient(#000 88%,#0000 100%)}.portrait-render canvas,.portrait-fallback{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.portrait-render canvas{opacity:0;transition:opacity .25s}.portrait-render canvas.ready{opacity:1}.portrait-fallback.loaded{opacity:0}.portrait-caption{text-align:center;font:9px var(--font-mono);letter-spacing:.1em;color:var(--muted);margin:0;position:absolute;bottom:-1px;left:0;right:0}.portrait-caption span{opacity:.55}.progress-rail{z-index:15;flex-direction:column;gap:6px;display:flex;position:absolute;top:50%;left:1.4vw;transform:translateY(-50%)}.progress-rail button{height:18px;color:var(--muted);font:9px var(--font-mono);letter-spacing:.06em;align-items:center;gap:10px;display:flex}.progress-rail i{opacity:.5;width:12px;height:1px;transition:width .4s var(--ease),opacity .3s,background .3s;background:currentColor;display:block}.progress-rail span{opacity:0;text-transform:uppercase;transition:opacity .2s,transform .2s;transform:translate(-4px)}.progress-rail button:hover span{opacity:1;transform:none}.progress-rail .current i{opacity:1;background:var(--accent);width:30px}.section-stage{z-index:2;pointer-events:none;width:45vw;max-width:780px;transition:width .6s var(--ease);position:absolute;top:80px;bottom:64px;left:5vw}.scene-1 .section-stage{width:56vw;max-width:900px}.room{visibility:hidden;pointer-events:none;flex-direction:column;justify-content:center;transition:visibility 0s .5s;display:flex;position:absolute;inset:0}.room>*{opacity:0;transition:opacity .25s,transform .45s var(--ease);transform:translateY(-26px)}.room.active~.room>*{transform:translateY(26px)}.room.active{visibility:visible;pointer-events:auto;transition:visibility}.room.active>*{opacity:1;transition:opacity .55s calc(.1s + var(--n,0)*60ms),transform .75s calc(.1s + var(--n,0)*60ms) var(--ease);transform:none}.room>:nth-child(2){--n:1}.room>:nth-child(3){--n:2}.room>:nth-child(4){--n:3}.room>:nth-child(5){--n:4}.room>:nth-child(6){--n:5}.room>:nth-child(7){--n:6}.room>:nth-child(8){--n:7}.eyebrow{font:500 9px/1.6 var(--font-mono);letter-spacing:.11em;color:var(--muted);align-items:center;gap:9px;margin:0 0 20px;display:flex}.status-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 0 var(--accent);border-radius:50%;animation:2.4s infinite pulse}@keyframes pulse{70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.065em;margin-bottom:22px;font-weight:540;line-height:.96}h1{font-size:clamp(42px,5.65vw,88px)}h2{font-size:clamp(38px,4.7vw,76px)}em{color:var(--accent);font-family:Georgia,serif;font-weight:400}.intro{color:var(--muted);max-width:440px;margin-bottom:23px;font-size:clamp(14px,1.2vw,18px);line-height:1.65}.micro-label{font:9px var(--font-mono);color:var(--accent);letter-spacing:.06em;margin-bottom:13px}.site-footer{z-index:20;border-top:1px solid var(--line);height:56px;color:var(--muted);font:9px var(--font-mono);letter-spacing:.04em;background:var(--room-bg);justify-content:space-between;align-items:center;transition:background .6s;display:flex;position:absolute;inset:auto 4vw 0}.site-footer>span{align-items:center;gap:8px;min-width:150px;display:flex}.site-footer>span:last-child{justify-content:flex-end}.site-footer b{color:var(--accent)}.site-footer i{background:var(--line);width:22px;height:1px;margin:0 5px}.footer-nav{align-items:center;gap:6px;display:flex}.footer-nav button{font:18px var(--font-sans);padding:8px 14px;transition:color .2s,transform .2s}.footer-nav button:hover:not(:disabled){color:var(--accent)}.footer-nav button:last-child:hover:not(:disabled){transform:translate(3px)}.footer-nav button:first-child:hover:not(:disabled){transform:translate(-3px)}.hint{opacity:.7}@keyframes enter{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes fade{to{opacity:1}}@media (min-width:900px) and (max-height:740px){.site-header{height:64px}.section-stage{top:64px}.eyebrow{margin-bottom:12px}h1{font-size:min(5vw,9vh)}h2{margin-bottom:14px;font-size:min(4.2vw,7.4vh)}.intro{margin-bottom:16px;font-size:13px}}@media (max-width:899px){.site-header{height:68px;padding:0 22px}.site-header nav{gap:0}.site-header nav button{padding:13px 9px;font-size:11px}.site-header nav button:after{left:9px;right:9px}.nav-index,.header-link,.progress-rail,.hint{display:none}.section-stage,.scene-1 .section-stage{width:51vw;top:68px;left:6vw}.portrait-scene{width:49vw;bottom:70px;right:-3vw}h1{font-size:clamp(36px,6vw,58px)}h2{font-size:clamp(34px,5.6vw,54px)}.eyebrow{font-size:8px}.intro{font-size:13px}.portrait-caption{font-size:7px}.portrait-caption span{display:none}}@media (max-width:600px){.site-header{height:60px;padding:0 16px}.wordmark{font-size:14px}.wordmark span{display:none}.site-header nav button{padding:12px 7px;font-size:10px}.site-header nav button:after{left:7px;right:7px}.section-stage,.scene-1 .section-stage{width:auto;max-width:none;inset:78px 6vw 50px}.room{justify-content:flex-start}.eyebrow{letter-spacing:.05em;margin-bottom:12px;font-size:7px}h1{margin-bottom:14px;font-size:clamp(35px,9vw,49px);line-height:.97}h2{margin-bottom:12px;font-size:clamp(30px,8vw,42px)}.intro{max-width:76vw;margin-bottom:14px;font-size:12px;line-height:1.5}.portrait-scene{opacity:.94;width:min(76vw,42vh);bottom:48px;right:0}.scene-1 .portrait-scene,.scene-2 .portrait-scene{opacity:.5;transform:scale(.6)}.scene-3 .portrait-scene{opacity:.6;transform:scale(.7)}.scene-4 .portrait-scene{transform:scale(.92)}.portrait-caption{display:none}.backdrop-word{font-size:25vw;top:auto;bottom:15vh;right:4vw}.site-footer{height:45px;inset:auto 5vw 0}.site-footer>span{min-width:0}.footer-location{display:none!important}}@media (max-width:600px) and (max-height:720px){.section-stage,.scene-1 .section-stage{top:70px}h1{font-size:34px}h2{font-size:28px}.portrait-scene{width:55vw;max-width:29vh}.eyebrow{margin-bottom:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.portrait-render,.room>*{transform:none!important}}
.currently{align-items:center;gap:12px;min-height:20px;margin:-4px 0 26px;font-size:13px;display:flex;overflow:hidden}.currently .micro{font:600 8px var(--font-mono);color:var(--room-bg);background:var(--accent);letter-spacing:.1em;border-radius:3px;padding:4px 6px 3px}.ticker{animation:ticker .55s var(--ease) both;display:block}@keyframes ticker{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.actions{align-items:center;gap:26px;font-size:12px;display:flex}.actions>a,.text-button{border-bottom:1px solid var(--line);padding-bottom:3px;transition:border-color .2s,color .2s}.actions>a:hover,.text-button:hover{color:var(--accent);border-color:var(--accent)}.text-button{font-size:12px}.primary-button{background:var(--accent);color:var(--ink);align-items:center;gap:30px;padding:15px 19px;font-weight:650;transition:filter .2s,transform .2s;display:flex}.primary-button span{transition:transform .3s var(--ease)}.primary-button:hover{filter:brightness(1.08)}.primary-button:hover span{transform:rotate(45deg)}.specialties,.tags{flex-wrap:wrap;gap:7px;display:flex}.specialties{margin-top:30px}.specialties span,.tags span{border:1px solid var(--line);font:9px var(--font-mono);color:var(--muted);border-radius:20px;padding:6px 9px}.work-room h2{margin-bottom:20px}.work-grid{grid-template-columns:minmax(180px,.78fr) 1.6fr;align-items:start;gap:clamp(22px,3vw,46px);display:grid}.project-list{border-top:1px solid var(--line);flex-direction:column;display:flex}.project-list button{border-bottom:1px solid var(--line);text-align:left;color:var(--muted);transition:color .2s,padding .35s var(--ease),background .25s;grid-template-columns:22px 1fr auto;align-items:baseline;gap:8px;padding:11px 6px;font-size:13px;display:grid}.project-list .index,.project-list .year{font:9px var(--font-mono)}.project-list button:hover{color:var(--fg);padding-left:11px}.project-list button[aria-selected=true]{color:var(--fg);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 13%,transparent),transparent 80%);padding-left:14px}.project-list button[aria-selected=true] .index{color:var(--accent)}.project-detail{animation:enter .4s var(--ease) both}.diagram-frame{border:1px solid var(--line);background:color-mix(in srgb,var(--fg) 3%,transparent);border-radius:8px;margin-bottom:16px;padding:10px 14px}.project-diagram{width:100%;height:auto;max-height:18vh;display:block}.project-detail h3{letter-spacing:-.04em;max-width:520px;margin-bottom:11px;font-size:clamp(20px,2.1vw,30px);line-height:1.16}.project-detail>p:not(.micro-label){color:var(--muted);max-width:540px;margin-bottom:14px;font-size:13px;line-height:1.65}.text-link{border-bottom:1px solid var(--accent);margin-top:18px;padding-bottom:5px;font-size:12px;transition:color .2s;display:inline-block}.text-link:hover{color:var(--accent)}:is(.chapter-art,.project-diagram) path{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw .75s calc(.15s + var(--d,0)*70ms) cubic-bezier(.6,0,.2,1) forwards}.project-diagram path{stroke-width:1.15px}:is(.chapter-art,.project-diagram) path.accent{stroke:var(--accent)}:is(.chapter-art,.project-diagram) path.dot{fill:currentColor;stroke:none;opacity:0;animation:fade .3s calc(.2s + var(--d,0)*70ms) forwards}.diagram-label{font:7px var(--font-mono);letter-spacing:.06em;fill:var(--muted);opacity:0;animation:fade .4s calc(.35s + var(--d,0)*70ms) forwards}.research-intro{color:var(--muted);margin-bottom:16px;font-size:13px}.graph-panel{border:1px solid var(--line);background:#ffffff4a;border-radius:10px;padding:12px 14px}.graph-top{color:var(--muted);font:8px var(--font-mono);justify-content:space-between;align-items:center;gap:8px;display:flex}.run-query{font:9px var(--font-mono);letter-spacing:.05em;color:var(--fg);border:1px solid var(--line);border-radius:20px;padding:6px 11px;transition:background .2s,color .2s,border-color .2s}.run-query:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--room-bg)}.run-query:disabled{opacity:.6}.graph-panel svg{touch-action:none;width:100%;max-height:26vh;display:block;overflow:visible}.graph-edge{stroke:var(--accent);stroke-width:1.3px;fill:none;stroke-dasharray:4 7;opacity:.5;animation:15s linear infinite flow}.running .graph-edge{opacity:.75;animation-duration:4s}@keyframes flow{to{stroke-dashoffset:-100px}}.graph-packet{fill:var(--accent)}.graph-node{cursor:grab;outline:none}.graph-node:active{cursor:grabbing}.graph-node circle{fill:var(--fg);stroke:var(--room-bg);stroke-width:2px;transition:fill .3s}.graph-node .node-halo{fill:none;stroke:var(--accent);opacity:0;transform-box:fill-box;transform-origin:50%;transition:opacity .2s}.graph-node.selected .node-halo,.graph-node:focus-visible .node-halo{opacity:1}.graph-node.selected circle:first-child{fill:var(--accent)}.running.step-2 .hub .node-halo{opacity:1;animation:.45s ease-in-out infinite alternate verify}.running.step-2 .hub circle:first-child,.running.step-0 .hub circle:first-child{fill:var(--accent)}@keyframes verify{to{transform:scale(1.3)}}.graph-node text{font:9px var(--font-mono);fill:var(--fg);pointer-events:none}.graph-detail{border-top:1px solid var(--line);min-height:70px;padding-top:10px}.graph-detail strong{font-size:13px}.graph-detail p{color:var(--muted);margin:5px 0 0;font-size:11px;line-height:1.5}.interests{grid-template-columns:1fr 1fr;gap:0 20px;margin:16px 0 0;padding:0;list-style:none;display:grid}.interests li{border-top:1px solid var(--line);flex-direction:column;gap:3px;padding:9px 0;display:flex}.interests strong{font-size:12px;font-weight:560}.interests span{color:var(--muted);font-size:11px}.email-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:stretch;display:flex}.email-link{color:var(--accent);flex:1;justify-content:space-between;gap:10px;padding:18px 0;font-size:clamp(14px,1.55vw,23px);display:flex}.email-link span{transition:transform .25s var(--ease)}.email-link:hover span{transform:translate(3px,-3px)}.copy-button{font:10px var(--font-mono);border-left:1px solid var(--line);color:var(--muted);text-align:left;min-width:86px;margin-left:18px;padding-left:18px;transition:color .2s}.copy-button:hover{color:var(--fg)}.contact-links{gap:24px;margin-top:22px;font-size:12px;display:flex}.contact-links a{border-bottom:1px solid var(--line);padding-bottom:3px;transition:color .2s,border-color .2s}.contact-links a:hover{color:var(--accent);border-color:var(--accent)}.recognition{margin-top:32px}.recognition ul{color:var(--muted);grid-template-columns:1fr 1fr;gap:7px 18px;margin:0;padding:0;font-size:11px;list-style:none;display:grid}.recognition li:before{content:"✦ ";color:var(--accent)}@media (min-width:900px) and (max-height:740px){.currently{margin-bottom:18px}.specialties{margin-top:20px}.diagram-frame{margin-bottom:12px;padding:8px 12px}.project-diagram{max-height:14vh}.project-list button{padding:9px 6px}.graph-panel svg{max-height:22vh}.interests li{padding:7px 0}.recognition{margin-top:22px}}@media (max-width:899px){.work-grid{grid-template-columns:1fr;gap:14px}.project-list{scrollbar-width:none;border:0;flex-direction:row;gap:6px;margin:0 -6vw;padding:0 6vw;overflow-x:auto}.project-list::-webkit-scrollbar{display:none}.project-list button{white-space:nowrap;border:1px solid var(--line);border-radius:20px;gap:6px;padding:7px 11px;font-size:11px;display:flex}.project-list button:hover,.project-list button[aria-selected=true]{padding-left:11px}.project-list .year{display:none}.project-detail>p:not(.micro-label){font-size:12px}.interests{grid-template-columns:1fr}}@media (max-width:600px){.currently{margin-bottom:16px;font-size:11px}.actions{flex-wrap:wrap;gap:16px;font-size:11px}.primary-button{gap:20px;padding:12px 14px}.specialties{display:none}.work-room h2{margin-bottom:12px}.diagram-frame{display:none}.project-detail h3{font-size:21px}.project-detail>p:not(.micro-label){margin-bottom:10px;font-size:12px;line-height:1.55}.text-link{margin-top:10px}.graph-panel{padding:10px}.graph-panel svg{max-height:24vh}.graph-detail{min-height:62px}.research-intro{margin-bottom:12px;font-size:12px}.interests{display:none}.email-link{padding:14px 0;font-size:14px}.copy-button{min-width:60px;margin-left:10px;padding-left:10px}.contact-room .intro{max-width:80vw}.contact-links{margin-top:16px}.recognition{margin-top:20px}.recognition ul{grid-template-columns:1fr;gap:5px;font-size:10px}}@media (max-width:600px) and (max-height:720px){.currently{display:none}.project-detail h3{font-size:19px}.project-detail>p:not(.micro-label){font-size:11px}.graph-panel svg{max-height:21vh}.recognition{display:none}}@media (prefers-reduced-motion:reduce){:is(.chapter-art,.project-diagram) path{stroke-dashoffset:0}:is(.chapter-art,.project-diagram) path.dot,.diagram-label{opacity:1}}
.knowledge-graph{z-index:0;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .9s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 44%,#000 57%);mask-image:linear-gradient(90deg,#0000 44%,#000 57%)}.knowledge-graph.active{opacity:1}.journey-room h2{margin-bottom:12px}.timeline-path{margin:0 0 18px;position:relative}.timeline-track{border-radius:6px;position:relative}.timeline-track svg{width:100%;height:auto;display:block;overflow:visible}.timeline-track:has(.journey-slider:focus-visible){outline:2px solid var(--accent);outline-offset:6px}.timeline-ghost{fill:none;stroke:var(--line);stroke-width:1.5px}.timeline-progress{fill:none;stroke:var(--accent);stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.milestone-dot{fill:var(--room-bg);stroke:var(--muted);stroke-width:1.4px;transition:fill .3s,stroke .3s}.milestone.passed .milestone-dot{fill:var(--accent);stroke:var(--accent)}.milestone.current .milestone-dot{fill:var(--room-bg);stroke:var(--accent);stroke-width:2.2px}.milestone-ping{fill:none;stroke:var(--accent);stroke-width:1.2px;transform-box:fill-box;transform-origin:50%;animation:ping 1.8s var(--ease) infinite}@keyframes ping{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}.timeline-marker circle:first-child{fill:color-mix(in srgb,var(--accent) 20%,transparent)}.timeline-marker circle:last-child{fill:var(--accent)}.journey-slider{opacity:0;cursor:ew-resize;appearance:none;background:0 0;width:calc(93.333% + 24px);height:100%;margin:0;position:absolute;top:0;left:calc(3.333% - 12px)}.journey-slider::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:44px}.journey-slider::-moz-range-thumb{border:0;width:24px;height:44px}.journey-stops{height:16px;margin-top:2px;position:relative}.journey-stops button{font:9px var(--font-mono);color:var(--muted);padding:2px 3px;transition:color .2s;position:absolute;top:0;transform:translate(-50%)}.journey-stops button:hover{color:var(--fg)}.journey-stops button.current{color:var(--accent)}.journey-window{border-block:1px solid var(--line);background:linear-gradient(90deg,var(--room-bg) 60%,transparent);grid-template-columns:84px 1fr;align-items:start;gap:22px;min-height:184px;padding:18px 0;display:grid}.chapter-visual{color:var(--fg);padding-top:6px;animation:.4s both enter}.chapter-art{width:84px;height:84px;display:block}.journey-card{animation:journey-slide .5s var(--ease) both}.journey-card h3{letter-spacing:-.03em;margin-bottom:3px;font-size:clamp(22px,2vw,28px)}.journey-role{font:10px var(--font-mono);color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:9px}.journey-card>p:not(.micro-label,.journey-role){color:var(--muted);max-width:470px;margin-bottom:11px;font-size:13px;line-height:1.55}.adding{flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;display:flex}.adding span{font:9px var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-right:2px}.adding b{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);animation:chip .5s calc(.35s + var(--i,0)*90ms) var(--ease) both;border-radius:20px;padding:3px 9px;font-weight:500}@keyframes chip{0%{opacity:0;transform:translateY(6px)scale(.9)}to{opacity:1;transform:none}}@keyframes journey-slide{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}.timeline-pagination{font:10px var(--font-mono);justify-content:space-between;align-items:center;margin-top:10px;display:flex}.timeline-pagination button{padding:9px 0;transition:color .2s}.timeline-pagination button:hover:not(:disabled){color:var(--accent)}.timeline-pagination .play{border:1px solid var(--line);color:var(--fg);border-radius:20px;padding:7px 14px}.timeline-pagination .play:hover{border-color:var(--accent)}.timeline-pagination .play[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--room-bg)}.knowledge-growth{margin-top:14px}.knowledge-growth .micro-label{justify-content:space-between;gap:12px;display:flex}.node-count{color:var(--muted)}.knowledge-stack{flex-wrap:wrap;gap:6px;display:flex}.knowledge-stack button{font:9px/1 var(--font-mono);border:1px solid var(--line);color:var(--muted);opacity:.32;border-radius:20px;align-items:center;gap:7px;padding:7px 9px;transition:opacity .4s,color .3s,border-color .3s;display:flex}.knowledge-stack i{background:var(--domain);border-radius:50%;width:6px;height:6px}.knowledge-stack span{color:var(--domain)}.knowledge-stack .gained{opacity:1;color:var(--fg)}.knowledge-stack button:hover,.knowledge-stack button:focus-visible{border-color:var(--domain)}@media (min-width:900px) and (max-height:740px){.journey-window{min-height:160px;padding:12px 0}.chapter-art{width:64px;height:64px}.journey-window{grid-template-columns:64px 1fr}.knowledge-growth{margin-top:8px}.timeline-path{margin-bottom:10px}}@media (max-width:899px){.knowledge-graph{-webkit-mask-image:linear-gradient(transparent calc(var(--graph-top,60%) - 36px),#000 calc(var(--graph-top,60%) + 14px));mask-image:linear-gradient(transparent calc(var(--graph-top,60%) - 36px),#000 calc(var(--graph-top,60%) + 14px));opacity:0}.knowledge-graph.active{opacity:.7}.journey-window{background:0 0}}@media (max-width:600px){.scene-3 .portrait-scene{opacity:.3}.journey-window{grid-template-columns:48px 1fr;gap:12px;min-height:0;padding:12px 0}.chapter-art{width:48px;height:48px}.journey-card h3{font-size:21px}.journey-role{margin-bottom:6px;font-size:9px}.journey-card>p:not(.micro-label,.journey-role){margin-bottom:8px;font-size:11.5px;line-height:1.45}.adding b{padding:2px 7px;font-size:10px}.journey-stops button{padding:2px 0;font-size:7px}.journey-stops button:not(.current):nth-child(2n){display:none}.timeline-path{margin-bottom:10px}.knowledge-growth{margin-top:8px}.knowledge-growth .micro-label{margin-bottom:8px;font-size:8px}.growth-title{display:none}.knowledge-stack{gap:4px}.knowledge-stack button{gap:5px;padding:5px 7px;font-size:8px}}@media (max-width:600px) and (max-height:720px){.journey-card>p:not(.micro-label,.journey-role){-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.knowledge-stack button{padding:4px 6px}}
