.background-music{z-index:1200;position:fixed;inset:auto clamp(14px,2vw,28px) clamp(14px,2vw,24px) auto}.background-music button{color:#dce5e8;min-height:36px;font:9px/1 var(--system);letter-spacing:.09em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f171dd6;border:1px solid #dee5e752;border-radius:0;align-items:center;gap:9px;padding:8px 11px;display:inline-flex}.background-music button:hover{background:#19242bf0}.background-music__signal{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.background-music__signal i{opacity:.42;background:currentColor;width:2px;height:4px;display:block}.background-music__signal i:nth-child(2){height:8px}.background-music__signal i:nth-child(3){height:11px}.background-music button.is-enabled .background-music__signal i{opacity:1;animation:.9s ease-in-out infinite alternate background-music-pulse}.background-music button.is-enabled .background-music__signal i:nth-child(2){animation-delay:-300ms}.background-music button.is-enabled .background-music__signal i:nth-child(3){animation-delay:-600ms}@keyframes background-music-pulse{0%{transform:scaleY(.38)}to{transform:scaleY(1)}}@media (width<=600px){.background-music{inset:auto 12px 12px auto}.background-music button{min-height:40px}}@media (prefers-reduced-motion:reduce){.background-music button.is-enabled .background-music__signal i{animation:none}}.desktop{--desktop-base:var(--world-bg);--desktop-raised:#b7b2ae;--desktop-paper:#cbc6c1;--desktop-paper-bright:#d8d3ce;--desktop-blue-muted:#78879b;background-color:var(--desktop-base);background-image:radial-gradient(circle at 70% 24%,#e7eaee29,#0000 34%);min-height:100vh;position:relative;overflow:hidden}.desktop:before{content:"";border:1px solid #5260731a;border-radius:50%;width:38vw;height:38vw;position:absolute;bottom:-15vw;left:-10vw;box-shadow:0 0 0 5vw #52607306,0 0 0 12vw #52607305}.menubar{z-index:20;height:48px;font:12px var(--system);background:0 0;grid-template-columns:auto 1fr auto auto;align-items:center;gap:22px;padding:0 24px;display:grid;position:relative}.brand{cursor:pointer;background:0 0;border:0;font-size:17px;font-weight:800;transform:rotate(-1deg)}.brand span{background:var(--spark-yellow);border-radius:3px;padding:3px 7px}.menubar-spacer{min-width:0}.replay{cursor:pointer;background:0 0;border:0;place-items:center;width:30px;height:30px;padding:0;font-size:22px;line-height:1;display:grid}.replay:hover,.replay:focus-visible{color:var(--spark-yellow)}.icon-grid{grid-template-columns:repeat(3,1fr);gap:28px 18px;width:min(430px,34vw);display:grid;position:absolute;top:14vh;right:7vw}.desktop-icon{cursor:pointer;text-shadow:0 1px #fff3;background:0 0;border:0;justify-items:center;gap:9px;padding:5px;display:grid}.desktop-icon span{width:68px;height:58px;font:29px var(--system);color:var(--ink);background:var(--desktop-paper);border:3px solid var(--ink);border-radius:9px 9px 13px 13px;place-items:center;transition:transform .15s,background .15s;display:grid;box-shadow:4px 5px #2027355c,inset -5px -5px #20273514}.desktop-icon b{color:var(--paper-bright);font:12px var(--system);background:#2027355c;border-radius:3px;padding:3px 6px}.desktop-icon:hover span{background:var(--spark-yellow);transform:translateY(-5px)rotate(-2deg)}.desktop-icon--projects span{background:var(--spark-yellow);width:78px;height:66px}.desktop-icon--projects b{font-weight:800}.window{z-index:12;border:4px solid var(--ink);background:var(--desktop-paper);width:min(920px,82vw);height:min(690px,78vh);box-shadow:12px 15px 0 #20273533, var(--shadow);border-radius:16px 16px 10px 10px;position:absolute;top:53%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.window-bar{background:var(--desktop-raised);border-bottom:3px solid var(--ink);height:43px;font:12px var(--system);text-align:center;grid-template-columns:100px 1fr 100px;align-items:center;padding:0 14px;display:grid}.window-dots{gap:8px;display:flex}.window-dots>*{border:2px solid var(--ink);background:var(--spark-yellow);border-radius:50%;width:13px;height:13px}.window-dots button{cursor:pointer;padding:0}.window-dots i:nth-child(2){background:#a8c0dc}.window-dots i:nth-child(3){background:#aebaae}.window-mark{text-align:right;color:#a88426;font-size:18px}.window-body{height:calc(100% - 43px);padding:clamp(28px,5vw,66px);overflow:auto}.kicker{letter-spacing:.12em;color:#5b6980;font:11px var(--system)!important}.window-body h1{letter-spacing:-.04em;margin:12px 0 22px;font-size:clamp(36px,6vw,72px);line-height:.96}.window-body h1 em{color:#5b7191;font-weight:500}.window-body p{max-width:68ch;line-height:1.7}.lead{color:var(--ink-soft);font-size:19px}.primary,.trash-app button{border:3px solid var(--ink);background:var(--spark-yellow);font:700 13px var(--system);box-shadow:4px 5px 0 var(--ink);cursor:pointer;margin-top:20px;padding:13px 18px}.start-app small{font:11px var(--system);color:#647085;margin-top:34px;display:block}.project-list{border-top:2px solid var(--ink);margin-top:30px}.project-list article{border-bottom:1px solid #9d9994;grid-template-columns:52px 1fr auto;align-items:center;gap:18px;padding:23px 5px;display:grid}.project-index{font:12px var(--system);color:#697489}.project-list h2{margin:0 0 5px;font-size:24px}.project-list p{margin:0}.project-list small{font:10px var(--system);color:#6a7585}.project-list button,.back{font:700 12px var(--system);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;text-decoration:underline}.project-detail{max-width:720px;margin:auto}.project-detail section{border-top:1px solid #aaa49e;padding:28px 0}.project-detail h2{margin:0 0 8px;font-size:18px}.tags{gap:7px;margin-bottom:42px;display:flex}.tags span{background:var(--spark-yellow);border:1px solid var(--ink);font:10px var(--system);padding:4px 8px}.about-app,.contact-app{max-width:700px}.about-app>p:not(.kicker),.contact-app>p:not(.kicker){font-size:18px}.about-app dl{border-top:2px solid var(--ink);margin-top:42px}.about-app dl div{border-bottom:1px solid #aaa49e;grid-template-columns:160px 1fr;padding:15px 0;display:grid}.about-app dt{font:10px var(--system)}.about-app dd{margin:0}.notes-app article{border-top:1px solid #aaa49e;grid-template-columns:100px 1fr auto;align-items:center;padding:24px 4px;display:grid}.notes-app time{font:11px var(--system)}.notes-app h2{margin:0 0 5px}.notes-app span{font:10px var(--system);color:#67758b}.contact-app a{width:fit-content;color:var(--ink);font:700 16px var(--system);margin:17px 0;display:block}.contact-app small{color:#6f6355;margin-top:40px;display:block}.trash-app{text-align:center;max-width:520px;margin:30px auto}.trash-app>div{color:#b49536;font-size:80px}.resume-app{grid-template-rows:auto 1fr;gap:18px;height:100%;display:grid}.resume-app header h1{margin-bottom:4px;font-size:40px}.resume-app iframe{border:2px solid var(--ink);background:var(--desktop-paper-bright);width:100%;height:100%}.assistant{z-index:30;position:fixed;bottom:0;right:20px}.assistant--quiet:not(.assistant--open) .assistant-robot{opacity:.68}.assistant--quiet:not(.assistant--open) .assistant-robot:focus-visible{opacity:1}.assistant-robot{aspect-ratio:1;cursor:pointer;filter:drop-shadow(4px 7px 5px #20273538);background:0 0;border:0;width:clamp(140px,12vw,180px);padding:0;position:relative;overflow:visible}.assistant-robot:after{content:"";z-index:0;filter:blur(6px);pointer-events:none;background:#464f5b26;border-radius:50%;height:9%;position:absolute;bottom:8%;left:25%;right:18%}.assistant-robot-image{z-index:1;object-fit:contain;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .12s;position:absolute;inset:0}.assistant-robot-image--idle{opacity:1}.assistant-robot-image:not(.assistant-robot-image--idle){z-index:2}.assistant-robot[data-assistant-phase=attentive][data-assistant-visual=look-up] .assistant-robot-image--look-up,.assistant-robot[data-assistant-phase=talking][data-assistant-visual=talking] .assistant-robot-image--talking,.assistant-robot[data-assistant-phase=settling][data-assistant-visual=talking] .assistant-robot-image--talking,.assistant-robot[data-assistant-phase=reacting][data-assistant-visual=tilt] .assistant-robot-image--tilt,.assistant-robot[data-assistant-phase=reacting][data-assistant-visual=smile] .assistant-robot-image--smile,.assistant-robot[data-assistant-phase=reacting][data-assistant-visual=heart] .assistant-robot-image--heart,.assistant-robot[data-assistant-phase=reacting][data-assistant-visual=hands-up] .assistant-robot-image--hands-up{opacity:1}.assistant-robot[data-assistant-phase=attentive]{filter:drop-shadow(4px 7px 5px #20273538)drop-shadow(0 0 5px #5890cf2b)}.assistant-robot[data-assistant-phase=reacting]{animation:.42s cubic-bezier(.16,1,.3,1) assistant-react}.assistant-robot[data-assistant-phase=reacting][data-assistant-visual=blink] .assistant-robot-image--blink{animation:.22s linear assistant-click-blink}.assistant-robot[data-assistant-phase=reacting][data-assistant-visual=double-blink] .assistant-robot-image--double-blink{animation:.36s linear assistant-click-double-blink}.assistant-robot[data-assistant-phase=idle][data-assistant-visual=idle] .assistant-robot-image--blink{animation:12s linear infinite assistant-idle-blink}.assistant-robot:focus-visible{outline:3px solid var(--spark-yellow);outline-offset:4px;border-radius:38%}.assistant-panel{background:var(--desktop-paper-bright);border:3px solid var(--ink);border-radius:15px 15px 3px;width:330px;padding:18px;position:absolute;bottom:calc(clamp(140px,12vw,180px) + 16px);right:34px;box-shadow:8px 10px #2027352e,0 16px 30px #4752601f}.assistant-panel p{font:700 14px var(--system);margin:0 0 12px}.assistant-panel output{color:#46617f;margin-bottom:12px;font-size:13px;display:block}.assistant-panel div{gap:6px;display:grid}.assistant-panel div button{text-align:left;cursor:pointer;background:0 0;border:1px solid #96928e;padding:8px 10px;font-size:12px}.assistant-panel div button:hover,.assistant-panel div button:focus-visible{background:var(--spark-yellow)}.assistant-close{cursor:pointer;background:0 0;border:0;font-size:21px;position:absolute;top:4px;right:7px}@keyframes assistant-react{0%{transform:translateY(0)scale(1)}19%{transform:translateY(1px)scale(1.03,.96)}55%{transform:translateY(-8px)scale(.985,1.015)}to{transform:translateY(0)scale(1)}}@keyframes assistant-click-blink{0%,to{opacity:0}10%,75%{opacity:1}}@keyframes assistant-click-double-blink{0%,to{opacity:0}8%,24%{opacity:1}34%{opacity:0}47%,64%{opacity:1}76%{opacity:0}}@keyframes assistant-idle-blink{0%,98%,to{opacity:0}98.6%,99.6%{opacity:1}}@media (width<=767px){.menubar{grid-template-columns:auto 1fr auto auto;gap:12px;padding:0 14px}.icon-grid{gap:20px 8px;width:auto;top:14vh;left:6vw;right:6vw}.desktop-icon span,.desktop-icon--projects span{width:58px;height:52px}.window{border-width:3px 0 0;border-radius:0;width:100%;height:calc(100% - 48px);position:fixed;inset:48px 0 0;transform:none}.window-body{padding:28px 22px 110px}.window-bar{grid-template-columns:78px 1fr 78px}.project-list article{grid-template-columns:30px 1fr}.project-list button{grid-column:2;justify-self:start;padding:8px 0}.assistant{bottom:0;right:8px}.assistant-robot{width:132px}.assistant-panel{width:auto;position:fixed;bottom:140px;left:12px;right:12px}.about-app dl div{grid-template-columns:110px 1fr}.notes-app article{grid-template-columns:74px 1fr auto}.window-body h1{font-size:42px}}@media (prefers-reduced-motion:reduce){.assistant,.assistant-robot,.assistant-robot-image,.assistant-panel{transition:none!important;animation:none!important;transform:none!important}}.kicker,.project-list small,.notes-app span,.contact-app small,.start-app small,.project-index{color:var(--ink-soft)}.desktop-icon b{background:var(--ink)}.assistant-panel div button{border:1px solid #4b5666}.assistant-robot:focus-visible{outline:3px solid var(--spark-yellow);box-shadow:0 0 0 7px var(--ink)}.intro{background:#7485a2;place-items:center;min-height:100vh;display:grid;position:relative;overflow:hidden}.intro:before{content:"";background:radial-gradient(circle at 50% 54%,#e3ebfa29,#0000 42%);position:absolute;inset:0}.starfield{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.intro-star{--proximity:0;--wave-x:0px;--wave-y:0px;left:var(--star-x);top:var(--star-y);width:var(--star-size);height:var(--star-size);color:#ffe277;opacity:calc(.2 + var(--proximity) * .8);filter:drop-shadow(0 0 calc(var(--proximity) * 11px) #ffe477f2);transform:translate(var(--wave-x), var(--wave-y)) scale(calc(.72 + var(--proximity) * .62));animation:star-twinkle var(--star-duration) var(--star-delay) ease-in-out infinite;transition:opacity .2s ease-out,filter .2s ease-out,transform .28s cubic-bezier(.16,1,.3,1);position:absolute}.intro-star:before,.intro-star:after{content:"";background:currentColor;border-radius:1px;position:absolute;top:50%;left:50%;translate:-50% -50%}.intro-star:before{width:100%;height:18%}.intro-star:after{width:18%;height:100%}.intro-star--1{rotate:45deg}.intro-star--2{width:calc(var(--star-size) * .55);height:calc(var(--star-size) * .55)}.skip{z-index:10;color:#f5efe5cc;font:12px var(--system);letter-spacing:.03em;cursor:pointer;background:0 0;border:0;position:fixed;top:24px;right:28px}.robot-stage{z-index:2;aspect-ratio:3/2;filter:drop-shadow(0 24px 30px #191f2c2e);flex:none;width:max(100vw,150vh);transition:transform .9s cubic-bezier(.16,1,.3,1),filter .6s;position:absolute;top:50%;left:50%;translate:-50% -50%}.robot-source{object-fit:contain;image-rendering:auto;width:100%;height:100%;display:block}.robot-screen{--look-x:0px;--look-y:0px;cursor:crosshair;color:#e9f5ff;isolation:isolate;background:0 0;border:0;border-radius:10% 9% 8%;width:28.25%;height:32.35%;padding:0;position:absolute;top:34.1%;left:35.55%;overflow:hidden;box-shadow:inset 0 0 36px #5396e70d}.robot-screen:before{content:"";z-index:-1;border-radius:inherit;opacity:0;background:#060d1438;transition:opacity .5s,box-shadow .5s;position:absolute;inset:0}.intro--dark .robot-screen:before{opacity:.62}.intro--powering .robot-screen:before{opacity:.24;animation:.95s ease-out both screen-breath}.scanlines{pointer-events:none;opacity:.13;background:linear-gradient(#0000 50%,#ffffff0f 50%) 0 0/100% 4px;position:absolute;inset:0}.pixel-face{filter:drop-shadow(0 0 7px #4a9fff);animation:.4s ease-out both face-in;position:absolute;inset:0}.pixel-eye{width:25%;height:38%;transform:translate(var(--look-x), var(--look-y));image-rendering:pixelated;background:#f7f4df;border:clamp(3px,.38vw,6px) solid #69aaff;border-radius:48% 48% 46% 46%;transition:transform .12s ease-out;position:absolute;top:31%;overflow:hidden;box-shadow:0 0 5px #dff3ff,0 0 15px #4a9fffe6}.pixel-eye:after{content:"";opacity:.62;background-image:radial-gradient(circle,#777870 31%,#0000 35%);background-size:clamp(4px,.39vw,6px) clamp(4px,.39vw,6px);position:absolute;inset:52% 4% 3%}.pixel-eye--left{left:18%}.pixel-eye--right{right:18%}.intro--awake .pixel-eye--left{animation:1.5s cubic-bezier(.16,1,.3,1) both curious-left-eye}.intro--awake .pixel-eye--right{animation:1.5s cubic-bezier(.16,1,.3,1) both curious-right-eye}.terminal{text-align:left;font:clamp(10px, 1.15vw, 17px)/1.35 var(--system);filter:drop-shadow(0 0 3px #69afff59);flex-direction:column;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;inset:9% 7%}.terminal-line{white-space:nowrap;max-width:none;min-height:1.35em;display:block}.terminal-line--typing{max-width:100%;animation:.42s steps(28,end) both type-current;overflow:hidden}.terminal--complete .terminal-line{max-width:none;animation:none;overflow:visible}.terminal-line--command{color:#f5efe5}.terminal-line--answer{color:var(--green)}.terminal-line--hint{color:var(--spark-yellow);margin-top:.25em;animation:.42s steps(28,end) both type-current,1.6s .65s infinite pulse}.follow-orb{left:calc(50% + var(--look-x) * 3);top:calc(50% + var(--look-y) * 3);aspect-ratio:1;width:38px;box-shadow:0 0 10px #fff, 0 0 28px var(--spark-yellow);background:#fff7cf;border-radius:50%;transition:left .12s,top .12s;position:absolute;transform:translate(-50%,-50%)}.intro-caption{color:#f5efe5bd;font:11px var(--system);letter-spacing:.09em;position:fixed;bottom:24px}.intro--entering .robot-stage{filter:brightness(.24);transform:scale(3.55)}.intro--entering{animation:1s .3s forwards fade-to-crt}@keyframes screen-breath{0%{box-shadow:inset 0 0 4px #5c9ef000}55%{box-shadow:inset 0 0 34px #5c9ef038}to{box-shadow:inset 0 0 20px #5c9ef014}}@keyframes face-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}@keyframes curious-left-eye{0%{opacity:1;filter:brightness(.65);transform:translate(0)scale(.85)}17.33%{filter:brightness();transform:translate(0)scale(1)}29.33%{transform:translate(0)scale(1.06)}31.33%{transform:translate(-4px)scale(1)}45.33%{transform:translate(7px)scale(1)}59.33%{transform:translate(0)scale(1)}65.33%{transform:translate(0)scaleY(.07)}77.33%{transform:translate(0)scale(1)}93.33%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(0)scale(1)}}@keyframes curious-right-eye{0%{opacity:1;filter:brightness(.65);transform:translate(0)scale(.85)}17.33%{filter:brightness();transform:translate(0)scale(1)}29.33%{transform:translate(0)scale(.96)}31.33%{transform:translate(-4px)scale(1)}45.33%{transform:translate(7px)scale(1)}59.33%{transform:translate(0)scale(1)}65.33%{transform:translate(0)scaleY(.07)}77.33%{transform:translate(0)scale(1)}93.33%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(0)scale(1)}}@keyframes type-current{0%{max-width:0}to{max-width:100%}}@keyframes star-twinkle{0%,to{color:#ffe277}48%{color:#fff4b5}55%{opacity:calc(.55 + var(--proximity) * .45)}}@keyframes pulse{50%{opacity:.45}}@keyframes fade-to-crt{to{background:var(--crt)}}@media (width<=700px){.robot-stage{width:150vh}.terminal{font-size:clamp(7px,2.4vw,10px)}.intro-caption{bottom:18px}.skip{top:18px;right:18px}.starfield{inset:0 -18%}}@media (height<=500px){.terminal{font-size:clamp(8px,min(1.2vw,1.7vh),11px)}}@media (prefers-reduced-motion:reduce){.intro-star{transition:none;animation:none}.pixel-eye{animation:none!important}.terminal-line{animation-duration:.01ms}}.v2-intro{background:var(--world-bg);color:#272b32;grid-template-columns:44% 56%;min-height:100vh;display:grid;position:relative;overflow:hidden}.v2-portal-shell{background:#27333f;min-height:100vh;position:relative;overflow:hidden}.v2-portal-shell>.v2-intro{z-index:10;position:fixed;inset:0}.v2-desktop-stage{z-index:1;outline:none;min-height:100vh;position:relative}.v2-portal-shell.is-entering .v2-desktop-stage{pointer-events:none;clip-path:circle(0 at var(--portal-origin-x,50vw) var(--portal-origin-y,50vh));animation:1s cubic-bezier(.65,0,.25,1) both v2-desktop-through-crt}.v2-terminal{z-index:2;cursor:text;align-items:center;padding:8vh 3vw 8vh 11vw;display:grid}.v2-terminal-lines{font:clamp(15px,1.42vw,24px)/1.48 var(--system);filter:drop-shadow(0 1px #ffffff73);flex-direction:column;align-items:flex-start;display:flex}.v2-terminal-line{white-space:nowrap;max-width:100%;animation:.46s steps(30,end) both v2-type;display:block;overflow:hidden}.v2-line-answer{color:#397b66}.v2-line-space{min-height:1.15em}.v2-terminal-hint{color:#946f13;font:inherit;cursor:pointer;background:0 0;border:0;margin:.7em 0 0;padding:0;animation:.5s steps(30,end) both v2-type,1.8s .6s infinite v2-hint-pulse}.v2-terminal-hint:focus-visible,.v2-robot-screen:focus-visible{outline-offset:6px;outline:3px solid #f0c85c}.v2-robot{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.v2-robot-canvas{aspect-ratio:1672/941;width:max(100vw,177.683vh);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.v2-robot-source{object-fit:fill;image-rendering:auto;width:100%;height:100%;position:absolute;inset:0}.v2-robot-screen{--v2-look-x:0px;--v2-look-y:0px;z-index:3;aspect-ratio:1.13;cursor:pointer;pointer-events:auto;background:#050c121a;border:0;border-radius:12%;width:18.8%;position:absolute;top:26.35%;left:57.35%;overflow:hidden;box-shadow:inset 0 0 28px #468bdd17}.v2-face{filter:drop-shadow(0 0 8px #64a9ff);position:absolute;inset:0}.v2-eye{width:27%;height:37%;transform:translate(var(--v2-look-x),var(--v2-look-y));background:#f8f4de;border:4px solid #65a8fa;border-radius:48%;transition:transform .22s cubic-bezier(.16,1,.3,1);position:absolute;top:24%;overflow:hidden}.v2-eye:after{content:"";opacity:.6;background:radial-gradient(circle,#777870 31%,#0000 35%) 0 0/5px 5px;position:absolute;inset:52% 4% 3%}.v2-eye-left{left:17%}.v2-eye-right{right:17%}.cue-wake .v2-eye{animation:.42s both v2-wake}.cue-look-left .v2-eye{animation:.55s both v2-look-left}.cue-blink .v2-eye,.idle-blink .v2-eye{animation:.45s 2 both v2-blink}.cue-curious .v2-eye-left,.idle-curious .v2-eye-left{scale:1.08}.cue-curious .v2-eye-right,.idle-curious .v2-eye-right{scale:.94}.cue-double-blink .v2-eye,.idle-double-blink .v2-eye{animation:.78s both v2-double-blink}.cue-smile .v2-eye,.idle-smile .v2-eye{clip-path:inset(48% 0 0);border-radius:50% 50% 25% 25%;height:25%;top:31%}.idle-look-left .v2-eye{transform:translate(-8px)}.idle-look-right .v2-eye{transform:translate(8px)}.idle-daydream .v2-eye{opacity:.58;transform:translateY(8px)}.idle-flicker{animation:.9s 2 v2-flicker}.v2-entering{pointer-events:none}.v2-entering .v2-terminal{animation:.18s ease-out both v2-terminal-out}.v2-entering .v2-face{animation:.22s ease-out both v2-face-into-screen}.v2-entering .v2-robot{transform-origin:var(--portal-origin-x,50vw) var(--portal-origin-y,50vh);will-change:transform, opacity, filter;animation:1s cubic-bezier(.65,0,.25,1) both v2-crt-portal}.v2-entering[data-portal-valid=false]{animation:.26s ease-out both v2-fallback-out}.v2-entering[data-portal-valid=false] .v2-robot{animation:none}.v2-portal-shell.has-invalid-geometry .v2-desktop-stage{clip-path:none;animation:.26s ease-out both v2-fallback-in}@keyframes v2-type{0%{max-width:0}to{max-width:100%}}@keyframes v2-hint-pulse{50%{opacity:.55}}@keyframes v2-wake{0%{opacity:0;scale:.82}}@keyframes v2-look-left{45%{transform:translate(-6px)}}@keyframes v2-blink{50%{scale:1 .07}}@keyframes v2-double-blink{23%,72%{scale:1 .07}}@keyframes v2-flicker{22%,48%{filter:brightness(.94)}35%,65%{filter:brightness(1.06)}}@keyframes v2-terminal-out{to{opacity:0;transform:translate(-2vw)}}@keyframes v2-face-into-screen{to{opacity:0;filter:blur(4px)drop-shadow(0 0 18px #64a9ff)}}@keyframes v2-crt-portal{0%{opacity:1;filter:brightness();transform:translate(0)scale(1)}68%{opacity:1}82%{filter:brightness(.72)}to{transform:translate(var(--portal-x,0),var(--portal-y,0)) scale(var(--portal-scale,1));opacity:0;filter:brightness(.5)}}@keyframes v2-desktop-through-crt{0%,36%{clip-path:circle(0 at var(--portal-origin-x,50vw) var(--portal-origin-y,50vh));filter:brightness(.55)}54%{filter:brightness(.72)}82%,to{clip-path:circle(150vmax at var(--portal-origin-x,50vw) var(--portal-origin-y,50vh));filter:brightness()}}@keyframes v2-fallback-out{to{opacity:0}}@keyframes v2-fallback-in{0%{opacity:0}to{opacity:1}}@media (width<=767px){.v2-intro{grid-template-rows:46vh 54vh;grid-template-columns:1fr}.v2-terminal{background:#c9c5c0e6;grid-row:2;align-items:start;padding:2vh 7vw 5vh}.v2-terminal-lines{font-size:clamp(12px,3.25vw,15px);line-height:1.35}}@media (prefers-reduced-motion:reduce){.v2-intro *,.v2-intro :before,.v2-intro :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.v2-entering{animation:.1s ease-out both v2-fallback-out!important}.v2-entering .v2-robot{animation:none!important}.v2-portal-shell.is-entering .v2-desktop-stage{clip-path:none;animation:.1s ease-out both v2-fallback-in!important}}.about-profile{--about-page:#fefefe;--about-ink:#131d24;--about-line:#1f2f3a57;--about-muted:#4e626f;background:var(--about-page);min-height:100vh;color:var(--about-ink);font-family:var(--system);outline:none;grid-template-rows:minmax(190px,28vh) minmax(360px,57vh) minmax(104px,15vh);grid-template-columns:minmax(310px,44vw) minmax(110px,11vw) 1fr;animation:.52s cubic-bezier(.16,1,.3,1) both about-profile-enter;display:grid;position:relative;overflow:hidden}.about-profile section{min-width:0;padding:clamp(24px,3.5vw,54px);position:relative}.about-profile__intro{grid-area:1/1/auto/3;grid-template-columns:clamp(92px,11vw,146px) minmax(0,1fr);align-items:center;gap:clamp(22px,3vw,48px);display:grid;transform:translateY(clamp(-24px,-2.6vh,-16px))}.about-profile__intro img{aspect-ratio:1;object-fit:contain;object-position:center;background:var(--about-page);filter:none;width:100%;image-rendering:pixelated;pointer-events:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;border:0;display:block}.about-profile__portrait{view-transition-name:about-portrait;contain:paint}.about-shared-hidden{visibility:hidden}html.about-transition-opening .film-frame-wrap.is-active .film-media>img.film-about-portrait{filter:none;background:#fefefe;transition:none}.about-avatar-flight{z-index:10000;box-sizing:border-box;pointer-events:none;will-change:left, top, width, height, background-size, background-position, filter;background-repeat:no-repeat;border:0;position:fixed;overflow:hidden}.about-flight-active .about-profile{animation:none}.about-flight-active .about-profile__intro h1,.about-flight-active .about-profile__skills,.about-flight-active .about-profile__work,.about-flight-active .about-profile__education,.about-flight-active .about-profile__contact,.about-flight-active .about-profile__back{animation:.54s cubic-bezier(.16,1,.3,1) .12s both about-content-arrive}.about-profile h1,.about-profile h2,.about-profile h3,.about-profile p{margin:0}.about-profile h1{letter-spacing:-.04em;white-space:nowrap;max-width:none;font-size:clamp(28px,3.6vw,64px);line-height:.98}.about-profile h2{letter-spacing:-.035em;font-size:clamp(20px,2.25vw,36px);line-height:1}.about-profile section.about-profile__skills{border-inline-start:1px solid var(--about-line);flex-direction:column;grid-area:1/3;gap:clamp(24px,3vh,28px);padding:clamp(12px,1vw,20px);display:flex}.about-profile__skills h2{text-transform:lowercase;font-size:clamp(24px,2vw,32px)}.about-profile__skill-file{width:100%;min-width:0;max-width:none;color:var(--about-ink);font:clamp(11.5px, .9vw, 13px)/1.4 var(--system);letter-spacing:-.015em;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.about-profile__work{border-block-start:1px solid var(--about-line);flex-direction:column;grid-area:2/1/4;align-items:flex-start;gap:clamp(16px,2.5vh,28px);display:flex;padding:clamp(20px,2.2vw,32px) clamp(24px,3.5vw,54px) 0!important}.about-profile__work-file{width:auto;min-width:0;max-width:100%;color:var(--about-ink);font:clamp(12px, 1vw, 15px)/1.55 var(--system);letter-spacing:-.01em;white-space:pre;margin:0 auto;padding:clamp(18px,2.5vw,32px) clamp(22px,3vw,42px);overflow:visible}.about-profile__education{border-block-start:1px solid var(--about-line);border-inline-start:1px solid var(--about-line);flex-direction:column;grid-area:2/2/auto/4;gap:clamp(28px,4vh,42px);display:flex;padding:clamp(20px,2.2vw,32px) clamp(24px,3.5vw,54px) clamp(14px,2vh,24px)!important}.about-profile__education-records{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));min-height:0;display:grid}.about-profile__education-record{flex-direction:column;min-width:0;padding-inline-end:clamp(24px,3vw,48px);display:flex;overflow:hidden}.about-profile__education-record+.about-profile__education-record{border-inline-start:1px solid var(--about-line);padding-inline:clamp(24px,3vw,48px) 0}.about-profile__education-stage{color:var(--about-muted);letter-spacing:.12em;align-items:baseline;gap:clamp(7px,.65vw,10px);font-size:clamp(8px,.62vw,10px);line-height:1;display:flex}.about-profile__education-stage strong{color:var(--about-ink);letter-spacing:.06em;font-size:clamp(11px,.92vw,14px);font-weight:750}.about-profile__education-stage span:before{content:"·";color:var(--about-line);margin-inline-end:clamp(7px,.65vw,10px)}.about-profile__education-illustration{object-fit:contain;object-position:center bottom;mix-blend-mode:multiply;pointer-events:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;flex-shrink:0;width:100%;height:clamp(146px,24vh,196px);min-height:146px;margin-block-start:clamp(4px,.8vh,8px);display:block}.about-profile__education-school{margin-block-start:clamp(6px,1vh,10px)}.about-profile__education-school h3{letter-spacing:-.035em;font-size:clamp(22px,2.05vw,33px);font-weight:700;line-height:1.04}.about-profile__education-school p{max-width:33ch;min-height:2.7em;color:var(--about-muted);letter-spacing:.075em;margin-block-start:5px;font-size:clamp(7px,.56vw,9px);line-height:1.35}.about-profile__education-major{border-block-start:1px solid var(--about-line);margin-block-start:clamp(6px,1vh,10px);padding-block-start:clamp(8px,1.2vh,12px)}.about-profile__education-major p:first-child{letter-spacing:-.025em;font-size:clamp(13px,1vw,16px);font-weight:650;line-height:1.1}.about-profile__education-major p:last-child{color:var(--about-muted);letter-spacing:.1em;margin-block-start:4px;font-size:clamp(7px,.54vw,8.5px);line-height:1.2}.about-profile__contact{border-block-start:1px solid var(--about-line);border-inline-start:1px solid var(--about-line);text-align:start;flex-direction:column;grid-area:3/2/auto/4;justify-content:flex-end;align-items:flex-start;gap:12px;display:flex}.about-profile__contact h2{font-size:clamp(16px,1.45vw,24px)}.about-profile__contact a{color:var(--about-muted);font:12px var(--system);letter-spacing:.04em;text-underline-offset:4px}.about-profile__contact a:hover,.about-profile__contact a:focus-visible{color:var(--about-ink)}.about-profile__back{z-index:4;color:#3f535f;font:8px var(--system);letter-spacing:.1em;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;align-items:center;gap:9px;padding:8px 0;display:flex;position:absolute;top:20px;right:clamp(20px,3vw,44px)}.about-profile__back:hover,.about-profile__back:focus-visible{color:#0e171d;border-bottom-color:#223743;outline:none}@keyframes about-profile-enter{0%{opacity:0;filter:blur(5px);transform:scale(.975)}to{opacity:1;filter:blur();transform:scale(1)}}@keyframes about-root-old{to{opacity:0;filter:blur(4px)}}@keyframes about-content-arrive{0%{opacity:0}to{opacity:1}}@supports (view-transition-name:about-portrait){.about-profile{animation:none}::view-transition-group(about-portrait){z-index:100;animation-duration:.72s;animation-timing-function:cubic-bezier(.16,1,.3,1)}::view-transition-image-pair(about-portrait){isolation:auto}::view-transition-old(about-portrait){box-shadow:none;border:0;outline:0}::view-transition-new(about-portrait){box-shadow:none;border:0;outline:0}::view-transition-old(root){animation:.42s ease-in both about-root-old}::view-transition-new(root){animation:none}}@media (width<=1000px){.about-profile{min-height:100vh;display:block;overflow-y:auto}.about-profile section{border:0;border-block-end:1px solid var(--about-line);min-height:190px;padding:32px 22px}.about-profile__intro{grid-template-columns:104px minmax(0,1fr);gap:20px;transform:translateY(-8px);min-height:280px!important;padding-top:68px!important}.about-profile section.about-profile__skills{padding:32px 22px;min-height:300px!important}.about-profile__skill-file{width:auto;max-width:72ch;font-size:13px}.about-profile__work{min-height:300px!important}.about-profile__education{min-height:340px!important}.about-profile__contact{text-align:start;align-items:flex-start;border-block-end:0!important;min-height:190px!important}.about-profile h1{font-size:clamp(30px,6vw,47px)}.about-profile h2{font-size:25px}.about-profile__back{top:16px;right:20px}}@media (width<=520px){.about-profile__intro{grid-template-columns:1fr;align-content:center}.about-profile__intro img{width:120px}.about-profile h1{font-size:clamp(28px,8.5vw,38px)}.about-profile__education{gap:30px;min-height:0!important}.about-profile__education-records{grid-template-columns:1fr}.about-profile__education-record{min-height:360px;padding:0 0 28px}.about-profile__education-record+.about-profile__education-record{border-inline-start:0;border-block-start:1px solid var(--about-line);padding:28px 0 0}.about-profile__education-stage{font-size:10px}.about-profile__education-illustration{height:auto;max-height:270px;margin-block-start:24px}.about-profile__education-school h3{font-size:28px}.about-profile__education-school p{font-size:10px}.about-profile__education-major p:first-child{font-size:17px}.about-profile__education-major p:last-child{font-size:9px}}@media (prefers-reduced-motion:reduce){.about-profile{animation:none}}.agent-beacon-case{--case-paper:#d5dcde;--case-paper-light:#e8eceb;--case-ink:#17242c;--case-muted:#586970;--case-line:#17242c61;background:var(--case-paper);min-height:100vh;color:var(--case-ink);font-family:var(--body);outline:none;grid-template-rows:48px minmax(0,1fr) 42px;animation:.46s cubic-bezier(.16,1,.3,1) both agent-beacon-case-enter;display:grid;overflow:hidden}.agent-beacon-case__topbar,.agent-beacon-case__footer{font:9px var(--system);letter-spacing:.09em;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding-inline:clamp(18px,4vw,58px);display:grid}.agent-beacon-case__topbar{border-block-end:1px dashed var(--case-line)}.agent-beacon-case__footer{border-block-start:1px dashed var(--case-line);color:var(--case-muted)}.agent-beacon-case__topbar>:last-child,.agent-beacon-case__footer>:last-child{justify-self:end}.agent-beacon-case__topbar button{color:var(--case-ink);font:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:9px;padding:9px 0;display:inline-flex}.agent-beacon-case__topbar button:hover,.agent-beacon-case__topbar button:focus-visible{text-underline-offset:5px;text-decoration:underline}.agent-beacon-case__topbar button:focus-visible{outline:2px solid var(--case-ink);outline-offset:4px}.agent-beacon-case__body{grid-template-columns:minmax(210px,22vw) 1fr;min-height:0;display:grid}.agent-beacon-case__tags,.agent-beacon-case__content{min-width:0;min-height:0}.agent-beacon-case__tags{border-inline-end:1px dashed var(--case-line);position:relative;overflow:hidden}.agent-beacon-case__content{overflow-y:auto}.agent-beacon-case__column-label,.agent-beacon-case__section-title{border-block-end:1px dashed var(--case-line);min-height:42px;color:var(--case-muted);font:9px var(--system);letter-spacing:.08em;justify-content:space-between;align-items:center;padding-inline:clamp(18px,4vw,58px);display:flex}.agent-beacon-case__signal{width:122px;height:166px;margin:clamp(34px,7vh,76px) auto 16px;position:relative}.agent-beacon-case__signal i{aspect-ratio:1;border:13px solid #273940;border-radius:50%;width:52px;position:absolute;left:36px}.agent-beacon-case__signal i:first-child{top:0}.agent-beacon-case__signal i:nth-child(2){top:65px}.agent-beacon-case__signal b{border-inline:2px solid #273940;width:10px;height:35px;position:absolute;top:44px;left:57px}.agent-beacon-case__tags ul{gap:9px;width:min(230px,82%);margin:0 auto;padding:0;list-style:none;display:grid}.agent-beacon-case__tags li{border:1px solid var(--case-line);width:fit-content;color:var(--case-muted);font:10px var(--system);background:#e8eceb8f;padding:8px 12px;transform:rotate(-2deg)}.agent-beacon-case__tags li:nth-child(2n){justify-self:end;transform:rotate(2deg)}.agent-beacon-case__preface{padding:0 clamp(24px,4vw,64px) clamp(24px,3vh,36px)}.agent-beacon-case__section-title{margin-block-end:clamp(32px,4vh,44px);margin-inline:clamp(-64px,-4vw,-24px)}.agent-beacon-case__preface-layout{grid-template-rows:auto 1fr;grid-template-columns:minmax(410px,.85fr) minmax(400px,1.15fr);align-items:stretch;gap:0 clamp(34px,4vw,64px);width:min(1180px,100%);margin-inline:auto;display:grid}.agent-beacon-case__preface h1{white-space:nowrap;letter-spacing:-.04em;grid-column:1/-1;margin:0;font-size:clamp(40px,3vw,52px);font-weight:500;line-height:1.04}.agent-beacon-case__feature{min-width:0}.agent-beacon-case__copy{border-block-start:1px dashed var(--case-line);flex-direction:column;align-self:start;gap:clamp(12px,1.5vh,16px);min-width:0;margin-block-start:clamp(44px,6vh,64px);padding-block-start:clamp(16px,2vh,22px);display:flex}.agent-beacon-case__copy>p{max-width:72ch;color:var(--case-muted);margin:0;font-size:clamp(13px,.85vw,15px);line-height:1.62}.agent-beacon-case__copy>p+p{border-block:1px dashed var(--case-line);margin:0;padding-block:clamp(14px,1.5vh,18px)}.agent-beacon-case__preface strong{color:var(--case-ink)}.agent-beacon-case__preface dl{align-self:stretch;width:100%;max-width:72ch;margin:0}.agent-beacon-case__preface dl div{border-block-end:1px dashed var(--case-line);grid-template-columns:72px 1fr;gap:12px;padding:8px 0;display:grid}.agent-beacon-case__preface dt{color:var(--case-muted);font-size:12px}.agent-beacon-case__preface dd{margin:0;font-size:13px}.agent-beacon-case__preface dd a{color:var(--case-ink);text-underline-offset:4px;overflow-wrap:anywhere;text-decoration:underline}.agent-beacon-case__preface dd a:hover,.agent-beacon-case__preface dd a:focus-visible{text-decoration-thickness:2px}.agent-beacon-case__preface dd a:focus-visible{outline:2px solid var(--case-ink);outline-offset:4px}.agent-beacon-case__demo{border-block-start:1px dashed var(--case-line);width:100%;margin:clamp(44px,6vh,64px) 0 0;padding:clamp(16px,2vh,22px) 0 0}.agent-beacon-case__demo-label{color:var(--case-muted);font:9px var(--system);letter-spacing:.08em;justify-content:space-between;gap:20px;margin-block-end:16px;display:flex}.agent-beacon-case__demo-label strong{color:var(--case-ink);font-weight:600}.agent-beacon-case__demo video{aspect-ratio:16/9;object-fit:contain;background:#b9c3c7;width:100%;display:block}.agent-beacon-case__demo figcaption{color:var(--case-muted);font:10px var(--system);margin-block-start:12px}@keyframes agent-beacon-case-enter{0%{opacity:.74;clip-path:inset(0 0 58%)}to{opacity:1;clip-path:inset(0)}}@media (width<=1100px){.agent-beacon-case__preface-layout{display:block}.agent-beacon-case__preface h1{white-space:normal}.agent-beacon-case__feature{margin-block-end:30px}.agent-beacon-case__demo{margin-block-start:clamp(28px,4vh,44px)}.agent-beacon-case__copy{border-block-start:0;margin-block-start:0;padding-block-start:0;display:block}.agent-beacon-case__copy>p+p{border-block:0;margin-block:14px 0;padding-block:0}.agent-beacon-case__preface dl{border-block-start:1px dashed var(--case-line);margin-block-start:18px}}@media (width<=760px){.agent-beacon-case{min-height:100vh;display:block;overflow-y:auto}.agent-beacon-case__topbar{z-index:5;background:#d5dcdef5;grid-template-columns:1fr auto;min-height:48px;position:sticky;top:0}.agent-beacon-case__topbar>:nth-child(2){display:none}.agent-beacon-case__body{display:block}.agent-beacon-case__tags{border-inline-end:0;border-block-end:1px dashed var(--case-line);min-height:250px}.agent-beacon-case__signal{transform-origin:top;margin-block:24px 8px;transform:scale(.78)}.agent-beacon-case__tags ul{width:48%;position:absolute;inset:74px 20px auto auto}.agent-beacon-case__preface h1{font-size:clamp(38px,12vw,58px)}.agent-beacon-case__footer{grid-template-columns:1fr auto;min-height:42px}.agent-beacon-case__footer>:nth-child(2){display:none}}@media (prefers-reduced-motion:reduce){.agent-beacon-case{animation:none}}.research-workbench-case{height:100vh}.research-workbench-case .agent-beacon-case__body{grid-template-columns:minmax(180px,18vw) 1fr}.research-workbench-case .agent-beacon-case__preface-layout{grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);column-gap:clamp(32px,3.6vw,58px);width:min(1260px,100%)}.research-workbench-case .agent-beacon-case__copy{justify-content:space-between;align-self:stretch;margin-block:calc(clamp(44px,6vh,64px) + clamp(16px,2vh,22px) + 26.5px) 26px;padding-block-start:clamp(16px,2vh,22px)}.research-workbench-case__demo .agent-beacon-case__demo-label>:last-child{color:var(--case-ink);font-weight:600}.research-workbench-case__demo video{aspect-ratio:24/13;background:#f4f1e8;border:1px solid #17242c33}.research-workbench-case__modules{border-block-start:1px dashed var(--case-line);width:min(1260px,100%);margin:clamp(64px,9vh,104px) auto 0;padding-block-start:clamp(20px,3vh,30px)}.research-workbench-case__modules-heading{grid-template-columns:minmax(0,1fr) minmax(260px,36ch);align-items:end;gap:clamp(28px,5vw,72px);margin-block-end:clamp(24px,3.5vh,38px);display:grid}.research-workbench-case__modules-heading>div>span,.research-workbench-case__module-stage figcaption>span{color:var(--case-muted);font:9px var(--system);letter-spacing:.08em}.research-workbench-case__modules-heading h2{letter-spacing:-.03em;max-width:18ch;margin:10px 0 0;font-size:clamp(27px,2.2vw,38px);font-weight:500;line-height:1.08}.research-workbench-case__modules-heading>p{color:var(--case-muted);margin:0;font-size:13px;line-height:1.6}.research-workbench-case__module-nav{border-block:1px dashed var(--case-line);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.research-workbench-case__module-nav button{border:0;border-inline-end:1px dashed var(--case-line);min-width:0;min-height:76px;color:var(--case-ink);text-align:start;cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:flex-start;gap:7px;padding:12px 14px;transition:background-color .18s ease-out,color .18s ease-out;display:flex}.research-workbench-case__module-nav button:last-child{border-inline-end:0}.research-workbench-case__module-nav button:hover{background:#e8ecebad}.research-workbench-case__module-nav button.is-active{background:var(--case-ink);color:var(--case-paper-light)}.research-workbench-case__module-nav button:focus-visible{z-index:1;outline:2px solid var(--case-ink);outline-offset:3px;position:relative}.research-workbench-case__module-nav button.is-active:focus-visible{outline-color:var(--case-paper-light);outline-offset:-5px}.research-workbench-case__module-nav button span{max-width:100%;color:var(--case-muted);font:7px var(--system);letter-spacing:.05em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.research-workbench-case__module-nav button.is-active span{color:#b9c4c7}.research-workbench-case__module-nav button strong{font-size:13px;font-weight:500}.research-workbench-case__module-stage{grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr);align-items:stretch;gap:clamp(24px,4vw,54px);margin:clamp(24px,3.5vh,38px) 0 0;display:grid}.research-workbench-case__module-stage video{aspect-ratio:24/13;object-fit:contain;background:#f4f1e8;border:1px solid #17242c33;width:100%;display:block}.research-workbench-case__module-stage figcaption{border-block:1px dashed var(--case-line);flex-direction:column;justify-content:flex-end;align-items:flex-start;margin:0;padding-block:20px;display:flex}.research-workbench-case__module-stage figcaption strong{letter-spacing:-.03em;margin-block-start:12px;font-size:clamp(24px,2vw,34px);font-weight:500}.research-workbench-case__module-stage figcaption p{max-width:30ch;color:var(--case-muted);margin:20px 0 0;font-size:13px;line-height:1.65}@media (width<=1100px){.research-workbench-case .agent-beacon-case__copy{justify-content:normal;align-self:auto;margin-block:0;padding-block-start:0}.research-workbench-case__module-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.research-workbench-case__module-nav button:nth-child(3){border-inline-end:0}.research-workbench-case__module-nav button:nth-child(-n+3){border-block-end:1px dashed var(--case-line)}.research-workbench-case__module-stage{grid-template-columns:minmax(0,1fr) minmax(210px,.42fr)}}@media (width<=820px){.research-workbench-case__modules-heading,.research-workbench-case__module-stage{display:block}.research-workbench-case__modules-heading>p,.research-workbench-case__module-stage figcaption{margin-block-start:18px}}@media (width<=760px){.research-workbench-case__modules{margin-block-start:52px}.research-workbench-case__module-nav{scroll-snap-type:x mandatory;scrollbar-width:thin;display:flex;overflow-x:auto}.research-workbench-case__module-nav button{scroll-snap-align:start;flex:0 0 142px;min-height:68px;border-block-end:0!important}}.projects-archive{--archive-paper:#d5dbdd;--archive-paper-light:#eef0ef;--archive-paper-mid:#e3e7e6;--archive-ink:#17242c;--archive-muted:#52636c;--archive-line:#17242c42;background:var(--archive-paper);min-height:100vh;color:var(--archive-ink);font-family:var(--body);outline:none;grid-template-rows:auto minmax(280px,48vh) minmax(280px,1fr);animation:.56s cubic-bezier(.16,1,.3,1) both projects-archive-enter;display:grid;position:relative;overflow:hidden}.projects-archive:after{content:"";pointer-events:none;opacity:.18;mix-blend-mode:multiply;background-image:url(/assets/portfolio/projects-archive-cover.webp);background-size:cover;position:absolute;inset:0}.projects-archive__topbar{z-index:5;border-block-end:1px solid var(--archive-line);min-height:58px;color:var(--archive-muted);font:10px var(--system);letter-spacing:.08em;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:0 clamp(22px,5vw,76px);display:grid;position:relative}.projects-archive__topbar>:last-child{justify-self:end}.projects-archive__back{color:var(--archive-ink);font:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:10px;padding:10px 0;display:inline-flex}.projects-archive__back:hover,.projects-archive__back:focus-visible{text-underline-offset:5px;text-decoration:underline}.projects-archive__back:focus-visible{outline:2px solid var(--archive-ink);outline-offset:5px}.projects-archive__hero{z-index:2;flex-direction:column;justify-content:center;padding:clamp(24px,3vh,40px) clamp(22px,5vw,76px) clamp(30px,5vh,64px);display:flex;position:relative}.projects-archive__hero h1{letter-spacing:-.04em;margin:0;font-size:clamp(64px,10vw,96px);font-weight:500;line-height:.82}.projects-archive__meta{font:700 clamp(11px, 1vw, 15px) var(--system);letter-spacing:-.02em;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin-block-start:clamp(28px,4vh,52px);display:grid}.projects-archive__meta>:last-child{justify-self:end}.projects-archive__files{z-index:3;border-block-start:1px solid var(--archive-line);min-height:280px;position:relative}.projects-archive__file{clip-path:polygon(0 0,43% 0,calc(43% + 36px) 34px,100% 34px,100% 100%,0 100%);width:58%;height:calc(100% - 26px);color:var(--archive-ink);text-align:left;cursor:pointer;border:0;grid-template-columns:auto 1fr auto;align-content:start;align-items:center;gap:clamp(14px,2vw,28px);padding:48px clamp(24px,4vw,64px);transition:transform .42s cubic-bezier(.16,1,.3,1),filter .24s;display:grid;position:absolute;bottom:0}.projects-archive__file:first-child{z-index:1;background:var(--archive-paper-light);left:0;box-shadow:12px 14px 24px #2330371f}.projects-archive__file:last-child{z-index:2;background:var(--archive-paper-mid);height:calc(100% - 78px);right:0;box-shadow:-12px 14px 24px #2330371a}.projects-archive__file:hover,.projects-archive__file:focus-visible,.projects-archive__file.is-selected{transform:translateY(-14px)}.projects-archive__file:focus-visible{outline:2px solid var(--archive-ink);outline-offset:-7px}.projects-archive__file-index{color:var(--archive-muted);font:11px var(--system)}.projects-archive__file-title{flex-direction:column;gap:7px;min-width:0;display:flex}.projects-archive__file-title strong{letter-spacing:-.03em;font-size:clamp(20px,2.2vw,34px);font-weight:500;line-height:1}.projects-archive__file-title>span{color:var(--archive-muted);letter-spacing:.04em;font-size:clamp(12px,1vw,15px);line-height:1.2}.projects-archive__file-arrow{opacity:.62;font-size:28px;transition:transform .26s,opacity .26s}.projects-archive__file:hover .projects-archive__file-arrow,.projects-archive__file:focus-visible .projects-archive__file-arrow,.projects-archive__file.is-selected .projects-archive__file-arrow{opacity:1;transform:translate(7px)}@keyframes projects-archive-enter{0%{opacity:.72;clip-path:inset(48% 5% 44%);filter:brightness(.68)}to{opacity:1;clip-path:inset(0);filter:brightness()}}@media (width<=700px){.projects-archive{grid-template-rows:auto minmax(230px,38vh) 1fr;overflow-y:auto}.projects-archive__topbar{grid-template-columns:1fr auto;padding-inline:18px}.projects-archive__topbar>:nth-child(2){display:none}.projects-archive__hero{padding-inline:18px}.projects-archive__hero h1{font-size:clamp(54px,20vw,84px)}.projects-archive__meta{grid-template-columns:1fr auto;gap:12px}.projects-archive__meta>:nth-child(2){display:none}.projects-archive__files{min-height:390px}.projects-archive__file{clip-path:polygon(0 0,58% 0,calc(58% + 28px) 28px,100% 28px,100% 100%,0 100%);width:100%;padding:48px 22px 28px;height:58%!important;left:0!important;right:auto!important}.projects-archive__file:first-child{top:0;bottom:auto}.projects-archive__file:last-child{top:42%;bottom:auto}}@media (prefers-reduced-motion:reduce){.projects-archive{animation:none}.projects-archive__file,.projects-archive__file-arrow{transition:none}}.film-archive{--film-black:#020407;--film-charcoal:#0a1017;--film-blue:#b9ddff;--film-blue-soft:#6588a8;--film-green:#84b995;--film-muted:#61707e;--film-frame-width:clamp(300px, 33vw, 520px);isolation:isolate;background:var(--film-black);color:#d7e6f1;min-height:100vh;font-family:var(--system);position:relative;overflow:hidden}.film-archive:before{content:"";z-index:-2;opacity:.55;filter:blur(18px);background:radial-gradient(at 22% 26%,#34445440,#0000 31%),radial-gradient(at 74% 42%,#1c2a393d,#0000 36%),radial-gradient(at 48% 70%,#1f383f1c,#0000 28%);animation:12s ease-in-out infinite alternate film-haze-breathe;position:absolute;inset:-15%}.film-archive:after{content:"";z-index:20;pointer-events:none;background:radial-gradient(#0000 22%,#00010357 64%,#000000d6 100%);position:absolute;inset:0}.film-topbar{z-index:30;color:#91a2b0;letter-spacing:.09em;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:58px;padding:18px clamp(18px,3vw,48px);font-size:9px;display:grid;position:relative}.film-identity{align-items:center;gap:10px;display:flex}.film-mark{width:18px;height:18px;color:var(--film-blue);border:1px solid #617484;place-items:center;font-size:9px;display:grid}.film-index{align-items:center;gap:6px;display:flex}.film-index button,.film-replay{color:#738391;font:8px var(--system);letter-spacing:.08em;cursor:pointer;background:0 0;border:0;padding:7px 8px}.film-index button{border-bottom:1px solid #0000}.film-index button:hover,.film-index button:focus-visible,.film-index button.is-active{color:#e1edf5;border-bottom-color:var(--film-blue)}.film-replay{justify-self:end}.film-replay:hover,.film-replay:focus-visible{color:var(--film-blue)}.film-stage{z-index:2;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;outline:none;place-items:center;display:grid;position:absolute;inset:58px 0 88px}.film-stage.is-dragging{cursor:grabbing}.film-stage:focus-visible:after{content:"";pointer-events:none;border:1px solid #b9ddffa6;position:absolute;inset:14px}.film-atmosphere{opacity:.42;filter:blur(10px);background:radial-gradient(at 50% 46%,#4b637633,#0000 42%),radial-gradient(at 18% 54%,#3c516326,#0000 25%),radial-gradient(at 84% 40%,#35485621,#0000 23%);animation:16s ease-in-out infinite alternate film-atmosphere-drift;position:absolute;inset:5% 0}.film-ribbon{perspective:980px;perspective-origin:50% 48%;background:#050a0f;border-radius:50%/13%;width:108vw;height:clamp(170px,24vh,255px);position:relative;overflow:hidden;transform:perspective(1100px)rotateX(-1.8deg);box-shadow:0 20px 35px #000000bf,inset 0 0 30px #7ea8c50f}.film-ribbon:before,.film-ribbon:after{content:"";z-index:8;background:var(--film-black);pointer-events:none;width:112%;height:70%;position:absolute;left:-6%}.film-ribbon:before{border-radius:0 0 50% 50%;top:-61%;box-shadow:0 10px 36px #020407cc}.film-ribbon:after{border-radius:50% 50% 0 0;bottom:-61%;box-shadow:0 -10px 36px #020407cc}.film-track{--film-drag:0px;position:absolute;inset:0}.film-frame-wrap{--film-scale:.94;width:var(--film-frame-width);opacity:.48;filter:brightness(.52)saturate(.55)blur(.4px);min-width:0;height:100%;transform:translate3d(calc(-50% + var(--film-slot,0%) + var(--film-drag)), 0, 0) scaleY(var(--film-scale));background:#071019;border-inline-end:1px solid #a3bfd31f;transition:opacity .48s,filter .48s,transform .72s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:50%;overflow:hidden}.film-frame-wrap.is-neighbor{--film-scale:.98;opacity:.66;filter:brightness(.68)saturate(.72)}.film-frame-wrap.is-active{--film-scale:1;opacity:1;filter:brightness()saturate(.9)}.film-stage.is-dragging .film-frame-wrap,.film-frame-wrap.is-wrap-jump,.film-frame-wrap.is-wrap-jump .film-frame{transition:none}.film-frame{--film-ripple-x:50%;--film-ripple-y:50%;color:#d8e8f3;text-align:left;cursor:pointer;backface-visibility:hidden;width:100%;height:100%;transform:perspective(980px) rotateY(var(--film-angle,0deg)) translateZ(var(--film-depth,0px));transform-origin:var(--film-origin,center);background:#071019;border:0;padding:0;transition:transform .72s cubic-bezier(.16,1,.3,1);display:block;position:relative;overflow:hidden}.film-frame:focus-visible{outline:2px solid var(--film-blue);outline-offset:-4px}.film-frame:after{content:"";z-index:2;left:var(--film-ripple-x);top:var(--film-ripple-y);aspect-ratio:1;opacity:0;pointer-events:none;background:radial-gradient(circle,#cce8f90f 0 30%,#6a97b50d 44%,#0000 66%);border:1px solid #bcdef529;border-radius:50%;width:clamp(62px,6vw,92px);transition:opacity .18s,transform .3s cubic-bezier(.16,1,.3,1);position:absolute;transform:translate(-50%,-50%)scale(.78)}.film-frame:hover:after{opacity:.72;transform:translate(-50%,-50%)scale(1)}.film-ripple-layer{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.film-ripple{left:var(--ripple-x);top:var(--ripple-y);aspect-ratio:1;opacity:0;background:radial-gradient(circle,#0000 0 37%,#b8dbf21a 39% 43%,#0000 46%);border:1px solid #bbddf46b;border-radius:50%;width:clamp(92px,9vw,138px);animation:.9s cubic-bezier(.16,1,.3,1) forwards film-water-ripple;position:absolute;transform:translate(-50%,-50%)scale(.12)}.film-ripple:before,.film-ripple:after{content:"";border-radius:inherit;border:1px solid #abd3ee47;position:absolute}.film-ripple:before{inset:18%}.film-ripple:after{border-color:#cfe9f92e;inset:35%}.film-media,.film-media>img,.film-placeholder,.film-frame-shade{display:block;position:absolute;inset:0}.film-media>img{object-fit:cover;object-position:center 32%;pointer-events:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;image-rendering:pixelated;filter:grayscale()contrast(1.12)brightness(.72)sepia(.05)hue-rotate(155deg);background:#c9cdd0;transition:filter .52s,transform .78s cubic-bezier(.16,1,.3,1);transform:scale(1.04)}.film-about-image{contain:paint}.film-about-portrait{view-transition-name:about-portrait}.film-frame-wrap.is-active .film-media>img{filter:grayscale()contrast(1.1)brightness(.88)sepia(.05)hue-rotate(155deg);transform:scale(1)}.film-media--projects{background:#0a1117}.film-media--notes{background:#101316}.film-media--evolution{background:#f8f7f6}.film-media>img.film-projects-image{object-position:center;filter:saturate(.55)contrast(1.06)brightness(.68);image-rendering:auto;background:#aeb9c0}.film-frame-wrap.is-active .film-media>img.film-projects-image{filter:saturate(.72)contrast(1.03)brightness(.86)}.film-media>img.film-notes-image{object-position:center;filter:saturate(.68)contrast(1.08)brightness(.68)}.film-frame-wrap.is-active .film-media>img.film-notes-image{filter:saturate(.88)contrast(1.04)brightness(.86)}.film-media>img.film-evolution-image{box-sizing:border-box;object-fit:cover;object-position:center 65%;filter:saturate(.82);image-rendering:auto;background:#f8f7f6;width:94%;padding:0;left:3%;right:auto;transform:scale(1.02)}.film-frame-wrap.is-active .film-media>img.film-evolution-image{filter:saturate(.96);transform:scale(1)}.film-placeholder{color:#7d94a6;text-align:center;opacity:.72;place-content:center;justify-items:center;gap:10px;display:grid}.film-placeholder-code{letter-spacing:.18em;font-size:8px}.film-placeholder-word{color:#b6cad8;letter-spacing:-.03em;font-size:clamp(22px,2.3vw,36px);font-weight:700}.film-placeholder-lines{gap:4px;width:132px;display:grid}.film-placeholder-lines i{background:#536a79;height:2px;display:block}.film-placeholder-lines i:nth-child(2){width:74%}.film-placeholder-lines i:nth-child(3){justify-self:end;width:88%}.film-placeholder-lines i:nth-child(4){width:52%}.film-placeholder-symbol{color:var(--film-green);letter-spacing:.16em;margin-top:3px;font-size:12px}.film-frame-shade{pointer-events:none;background:linear-gradient(90deg,#000205cc,#0000 18% 80%,#000205c7),linear-gradient(#050b113d,#0000 60%,#000306cc)}.film-frame-caption{z-index:3;opacity:0;grid-template-columns:auto 1fr auto;align-items:end;gap:12px;transition:opacity .32s,transform .42s cubic-bezier(.16,1,.3,1);display:grid;position:absolute;bottom:22px;left:22px;right:22px;transform:translateY(7px)}.film-frame-wrap.is-active .film-frame-caption{opacity:1;transform:translateY(0)}.film-frame-caption small{color:#8ca3b4;letter-spacing:.12em;font-size:8px}.film-frame-caption strong{letter-spacing:-.03em;font-size:clamp(17px,1.7vw,25px)}.film-frame-caption em{color:#90a296;letter-spacing:.1em;font-size:7px;font-style:normal}.film-footer{z-index:30;color:#6f8290;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:88px;padding:12px clamp(18px,3vw,48px) 18px;display:grid;position:absolute;bottom:0;left:0;right:0}.film-readout{grid-template-columns:auto auto;justify-content:start;align-items:baseline;gap:4px 12px;display:grid}.film-readout span{letter-spacing:.12em;font-size:8px}.film-readout strong{color:#d7e6f1;font-size:11px}.film-readout small{letter-spacing:.08em;grid-column:1/-1;font-size:7px}.film-controls{align-items:center;gap:12px;display:flex}.film-controls button{color:#a7bac8;cursor:pointer;background:0 0;border:1px solid #3e505e;width:30px;height:30px}.film-controls button:hover:not(:disabled),.film-controls button:focus-visible{border-color:var(--film-blue);color:var(--film-blue)}.film-controls button:disabled{opacity:.24;cursor:default}.film-progress{gap:5px;display:flex}.film-progress i{background:#344652;width:18px;height:2px;transition:transform .3s,background .3s;transform:scaleY(1)}.film-progress i.is-active{background:var(--film-blue);transform:scaleY(1.5)}.evolution-overlay{z-index:80;background:#0204077a;place-items:center;padding:clamp(76px,10vh,112px) clamp(18px,7vw,92px);animation:.22s ease-out both evolution-overlay-enter;display:grid;position:fixed;inset:0}.evolution-window{color:#18212a;background:#f4f1ea;border:2px solid #8d9297;border-radius:14px;grid-template-rows:minmax(0,1fr);width:min(760px,100%);height:min(620px,100vh - 150px);min-height:500px;max-height:100%;animation:.42s cubic-bezier(.16,1,.3,1) both evolution-window-enter;display:grid;position:relative;overflow:hidden;box-shadow:7px 9px #00000052,0 18px 40px #00000059}.evolution-window__close{z-index:4;color:#202a32;width:32px;height:32px;font:25px/1 var(--system);cursor:pointer;background:0 0;border:0;border-radius:4px;position:absolute;top:8px;right:8px}.evolution-window__close:hover,.evolution-window__close:focus-visible{outline-offset:2px;background:#e7e2d8;outline:2px solid #18212a}.evolution-window__body{grid-template-rows:64px minmax(0,1fr);gap:12px;min-height:0;padding:14px 18px 18px;display:grid}.evolution-versions{border-bottom:1px solid #bebbb4;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.evolution-versions button{color:#18212a;text-align:center;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:62px;padding:2px 12px;display:flex;position:relative}.evolution-version-icon{object-fit:contain;flex:none;width:56px;height:52px}.evolution-versions button:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:18%;right:18%}.evolution-versions button:hover,.evolution-versions button:focus-visible{color:#266ead;outline-offset:-2px;background:#ebe7de;outline:2px solid #18212a}.evolution-versions strong{font-size:13px;font-weight:600}.evolution-versions button.is-active strong{color:#266ead}.evolution-versions button.is-active:after{background:#2674b9}.evolution-preview{grid-template-rows:minmax(0,1fr);min-height:0;margin:0 22px;display:grid;position:relative}.evolution-preview>img{object-fit:contain;background:0 0;border:0;width:100%;height:100%;min-height:0;display:block}.evolution-preview__arrow{z-index:2;color:#18212a;width:34px;height:52px;font:44px/1 var(--system);cursor:pointer;background:0 0;border:0;position:absolute;top:calc(50% - 18px);transform:translateY(-50%)}.evolution-preview__arrow--previous{left:-38px}.evolution-preview__arrow--next{right:-38px}.evolution-preview__arrow:hover:not(:disabled),.evolution-preview__arrow:focus-visible{color:#2674b9;outline:2px solid #18212a}.evolution-preview__arrow:disabled{opacity:.18;cursor:default}@keyframes evolution-overlay-enter{0%{background:#02040700}}@keyframes evolution-window-enter{0%{opacity:.7;filter:blur(7px);transform:translateY(22px)scale(.97)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes film-haze-breathe{0%{opacity:.42;transform:translate(-1%,-1%)scale(1)}to{opacity:.62;transform:translate(1.5%,1%)scale(1.04)}}@keyframes film-atmosphere-drift{0%{transform:translate(-1.5%)}to{transform:translate(1.5%,-1%)}}@keyframes film-water-ripple{0%{opacity:0;transform:translate(-50%,-50%)scale(.12)}15%{opacity:.62}62%{opacity:.3}to{opacity:0;transform:translate(-50%,-50%)scale(1.14)}}@media (width<=760px){.film-archive{--film-frame-width:76vw}.film-topbar{grid-template-columns:1fr auto;padding-inline:16px}.film-index{order:3;grid-area:2/1/auto/-1;justify-content:center}.film-replay{grid-area:1/2}.film-stage{inset:88px 0 102px}.film-ribbon{width:116vw;height:clamp(158px,23vh,210px)}.film-frame-caption{bottom:18px;left:16px;right:16px}.film-placeholder-word{font-size:25px}.film-footer{grid-template-columns:1fr auto;min-height:102px;padding-inline:16px}.film-readout small{max-width:42vw;line-height:1.4}.evolution-overlay{place-items:center;padding:76px 10px 16px}.evolution-window{width:100%;height:auto;min-height:0;max-height:calc(100vh - 92px)}.evolution-window__close{top:5px;right:5px}.evolution-window__body{grid-template-rows:52px auto;gap:10px;padding:11px 10px 14px}.evolution-versions button{gap:3px;min-height:50px;padding-inline:3px}.evolution-version-icon{width:38px;height:42px}.evolution-versions strong{font-size:10px}.evolution-preview{margin-inline:18px}.evolution-preview>img{aspect-ratio:1.85;height:auto}.evolution-preview__arrow--previous{left:-28px}.evolution-preview__arrow--next{right:-28px}}@media (height<=500px){.film-topbar{min-height:46px;padding-block:9px}.film-stage{inset:46px 0 58px}.film-ribbon{height:38vh;max-height:174px}.film-footer{min-height:58px;padding-block:7px}.film-readout small{display:none}}@media (prefers-reduced-motion:reduce){.film-archive:before,.film-atmosphere,.film-track,.film-frame,.film-ripple,.film-frame-wrap,.film-media>img,.film-frame-caption,.film-progress i{transition:none!important;animation:none!important}.evolution-overlay,.evolution-window{animation:none!important}.film-frame:after,.film-ripple-layer{display:none}}.v3-intro{background:var(--world-bg);color:#272b32;grid-template-columns:44% 56%;min-height:100vh;display:grid;position:relative;overflow:hidden}.v3-portal-shell{background:#27333f;min-height:100vh;position:relative;overflow:hidden}.v3-portal-shell>.v3-intro{z-index:10;position:fixed;inset:0}.v3-destination-stage{z-index:1;outline:none;min-height:100vh;position:relative}.v3-portal-shell.is-entering:not(.has-invalid-geometry) .v3-destination-stage{visibility:hidden;pointer-events:none}.v3-terminal{z-index:2;cursor:text;align-items:center;padding:8vh 3vw 8vh 11vw;display:grid}.v3-terminal-lines{font:clamp(15px,1.42vw,24px)/1.48 var(--system);filter:drop-shadow(0 1px #ffffff73);flex-direction:column;align-items:flex-start;display:flex}.v3-terminal-line{white-space:nowrap;max-width:100%;animation:.46s steps(30,end) both v3-type;display:block;overflow:hidden}.v3-line-answer{color:#397b66}.v3-line-space{min-height:1.15em}.v3-terminal-hint{color:#946f13;font:inherit;cursor:pointer;background:0 0;border:0;margin:.7em 0 0;padding:0;animation:.5s steps(30,end) both v3-type,1.8s .6s infinite v3-hint-pulse}.v3-terminal-hint:focus-visible,.v3-robot-canvas:focus-visible{outline-offset:6px;outline:3px solid #f0c85c}.v3-robot-stage{z-index:1;min-width:0;min-height:100vh;position:relative;overflow:hidden}.v3-robot-canvas{touch-action:pan-y;outline:none;position:absolute;inset:0 4vw calc(-4vh - 2px) -2vw}.v3-robot-webgl,.v3-robot-poster{width:100%;height:100%;display:block;position:absolute;inset:0}.v3-robot-webgl{opacity:0;transition:opacity .12s}.v3-robot-poster{opacity:1;pointer-events:none;transition:opacity 0s linear .12s}.v3-robot-canvas.is-visual-ready .v3-robot-webgl{opacity:1}.v3-robot-canvas.is-visual-ready .v3-robot-poster{opacity:0}.v3-robot-stage.is-interactive .v3-robot-canvas{cursor:pointer}.v3-entering{pointer-events:none}.v3-entering .v3-robot-stage{overflow:visible}.v3-entering .v3-robot-canvas:focus-visible{outline:none}.v3-entering .v3-terminal{animation:.18s ease-out both v3-terminal-out}.v3-entering .v3-robot-canvas{transform-origin:var(--portal-transform-origin-x) var(--portal-transform-origin-y);will-change:transform, opacity, filter;animation:1s cubic-bezier(.65,0,.25,1) both v3-crt-portal}.v3-entering[data-portal-valid=false]{animation:.26s ease-out both v3-fallback-out}.v3-entering[data-portal-valid=false] .v3-robot-canvas{animation:none}.v3-portal-shell.has-invalid-geometry .v3-destination-stage{clip-path:none;animation:.26s ease-out both v3-fallback-in}@keyframes v3-type{0%{max-width:0}to{max-width:100%}}@keyframes v3-hint-pulse{50%{opacity:.55}}@keyframes v3-terminal-out{to{opacity:0;transform:translate(-2vw)}}@keyframes v3-crt-portal{0%{opacity:1;filter:brightness();transform:translate(0,0)scale(1)}82%,to{transform:translate3d(var(--portal-x,0),var(--portal-y,0),0) scale(var(--portal-scale,1));opacity:1;filter:brightness(.72)}}@keyframes v3-fallback-out{to{opacity:0}}@keyframes v3-fallback-in{0%{opacity:0}to{opacity:1}}@media (width<=767px){.v3-intro{grid-template-rows:46vh 54vh;grid-template-columns:1fr}.v3-robot-stage{grid-row:1;min-height:0}.v3-robot-canvas{inset:3vh 9vw}.v3-terminal{background:#c9c5c0e6;grid-row:2;align-items:start;padding:2vh 7vw 5vh}.v3-terminal-lines{font-size:clamp(12px,3.25vw,15px);line-height:1.35}}@media (prefers-reduced-motion:reduce){.v3-intro *,.v3-intro :before,.v3-intro :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--world-bg:#9d9995;--mist:#7485a2;--mist-deep:#5e708d;--paper:#e9e1d7;--paper-bright:#f5efe5;--paper-shadow:#b9b0ac;--ink:#202735;--ink-soft:#3d495d;--crt:#101a25;--glow-blue:#73b7ff;--spark-yellow:#ffe17d;--green:#8ce7ae;--line:#20273533;--shadow:8px 10px 22px #1e273847;--radius:14px;--system:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--body:Avenir Next, Avenir, Segoe UI, Helvetica Neue, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--body);color:var(--ink);background:var(--mist);overflow:hidden}button,a{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--spark-yellow);outline-offset:3px}::selection{background:var(--spark-yellow);color:var(--ink)}.grain:after{content:"";pointer-events:none;opacity:.12;mix-blend-mode:soft-light;background:radial-gradient(circle at 18% 24%,#ffffff21,#0000 1px) 0 0/7px 7px,radial-gradient(circle at 74% 68%,#141c281a,#0000 1px) 0 0/11px 11px;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
