@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--ink:#eaf5ff;--muted:#8da6bd;--paper:#07111f;--panel:#0b1a2d;--line:#18324c;--blue:#51b9ff;--blue-strong:#168cff;--blue-soft:#a9ddff;--serif:Georgia,"Times New Roman",serif}*{box-sizing:border-box}html,body,#root{max-width:100%;overflow-x:hidden}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-family:Manrope,sans-serif}body:before{content:"";pointer-events:none;background:radial-gradient(circle at 75% 10%,#168cff1f,#0000 32%);position:fixed;inset:0}a{color:inherit;text-decoration:none}.site-shell{max-width:1180px;margin:0 auto;padding:0 38px;position:relative}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:88px;display:flex}.wordmark{letter-spacing:-.08em;color:var(--ink);font-size:20px;font-weight:800}.wordmark span{color:var(--blue)}nav{color:var(--muted);align-items:center;gap:30px;font-size:12px;display:flex}nav a{transition:color .18s}nav a:hover{color:var(--blue-soft)}.github-link{color:var(--ink);align-items:center;gap:4px;display:flex}.hero{flex-direction:column;justify-content:flex-start;min-height:610px;padding:72px 0 84px;display:flex}.hero-brand{color:var(--blue);letter-spacing:.04em;margin-bottom:55px;font-family:DM Mono,monospace;font-size:13px}.brand-slash{color:var(--blue-strong);font-weight:500}.brand-cursor{color:var(--blue-soft);margin-left:2px;animation:1.1s steps(2,start) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#7393ae;margin:0;font-family:DM Mono,monospace;font-size:11px}.status-dot{background:var(--blue);width:7px;height:7px;box-shadow:0 0 12px var(--blue);vertical-align:1px;border-radius:50%;margin-right:8px;display:inline-block}h1,h2{letter-spacing:-.065em;margin:0;font-weight:700;line-height:.99}h1{max-width:850px;font-size:clamp(54px,8.2vw,105px)}h1 em,h2 em{color:var(--blue-soft);font-family:var(--serif);letter-spacing:-.075em;font-weight:400}.hero-bottom{justify-content:space-between;align-items:center;gap:40px;margin-top:clamp(82px,11vh,125px);display:flex}.intro{max-width:430px;color:var(--muted);margin:0;font-size:15px;line-height:1.75}.text-link{border-bottom:1px solid #376385;align-items:center;gap:7px;padding-bottom:7px;font-size:12px;transition:border-color .18s,color .18s;display:flex}.text-link:hover{color:var(--blue-soft);border-color:var(--blue)}.games-cta{isolation:isolate;color:var(--blue-soft);letter-spacing:.01em;background:#2a93d61f;border:1px solid #5bbeffb3;border-radius:4px;padding:12px 15px;font-size:13px;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s,color .2s;position:relative;box-shadow:0 0 0 1px #5bbeff14,0 0 22px #2a93d62e}.games-cta:hover{border-color:var(--blue-soft);background:#2a93d633;transform:translateY(-2px);box-shadow:0 0 0 1px #a9ddff24,0 0 28px #2a93d64d}@media (width>=701px){.games-cta{margin-right:20px}.games-cta:hover{transform:translateY(-2px)}}.signal-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:65px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:30px;font-family:DM Mono,monospace;font-size:10px;display:flex}.signal-row span{align-items:center;gap:8px;display:flex}.signal-row svg{color:var(--blue)}.signal-muted{color:#5f7d97;margin-left:auto}.work-section{grid-template-columns:1fr 1.2fr;gap:90px;padding:150px 0 144px;display:grid}h2{margin-top:25px;font-size:clamp(44px,5.5vw,72px)}.focus-list{border-top:1px solid var(--line)}.focus-item{border-bottom:1px solid var(--line);grid-template-columns:48px 1fr;gap:18px;padding:27px 0 30px;display:grid}.item-number{color:var(--blue);padding-top:4px;font-family:DM Mono,monospace;font-size:11px}h3{letter-spacing:-.03em;margin:0 0 10px;font-size:17px}.focus-item p{max-width:410px;color:var(--muted);margin:0;font-size:13px;line-height:1.65}.note-section{background:linear-gradient(110deg,#0d3154,#0b5e9b);align-items:flex-start;gap:28px;min-height:230px;padding:43px 8%;display:flex;box-shadow:0 16px 55px #0064be24}.note-mark{color:var(--blue-soft);font-family:var(--serif);font-size:62px;line-height:.7}.note-section p{color:#eef9ff;max-width:650px;font-family:var(--serif);letter-spacing:-.04em;margin:0;font-size:clamp(25px,3.5vw,42px);line-height:1.1}.contact-section{justify-content:space-between;align-items:end;padding:148px 0 150px;display:flex}.contact-actions{flex-direction:column;align-items:flex-start;gap:22px;padding-bottom:6px;display:flex}.button{background:var(--blue);color:#031322;align-items:center;gap:9px;padding:15px 18px;font-size:12px;font-weight:700;transition:transform .18s,background .18s;display:flex}.button:hover{background:var(--blue-soft);transform:translateY(-2px)}.quiet-link{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.quiet-link:hover{color:var(--blue-soft)}footer{border-top:1px solid var(--line);color:#57738d;text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;padding:22px 0 27px;font-family:DM Mono,monospace;font-size:10px;display:flex}.site-shell>footer{width:100vw;margin-left:calc(50% - 50vw);padding-left:max(38px,50vw - 552px);padding-right:max(38px,50vw - 552px)}@media (width<=700px){.site-shell{padding:0 20px}.topbar{height:72px}nav{gap:15px}nav a:not(.github-link){display:none}.hero{align-items:center;min-height:590px;padding:65px 0 66px;overflow:visible}.hero-brand{margin-bottom:48px}h1{text-align:center;font-size:clamp(48px,14vw,78px)}.hero-bottom,.contact-section{text-align:center;flex-direction:column;align-items:center;display:flex}.hero-bottom{margin-top:70px}.intro{text-align:center}.text-link{width:max-content;margin-top:30px}.games-cta{margin-left:auto;margin-right:auto;transform:none}.games-cta:hover{transform:translateY(-2px)}.signal-row{flex-wrap:wrap;gap:12px;padding:17px 0;line-height:1.5}.signal-muted{margin-left:0!important}.work-section{padding:100px 0;display:block}.section-heading{margin-bottom:60px}.contact-section{padding:100px 0}.contact-actions{margin-top:42px}footer{flex-direction:column;gap:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.projects-section{padding:12px 0 150px}.projects-heading{justify-content:space-between;align-items:end;gap:40px;margin-bottom:58px;display:flex}.projects-intro{max-width:245px;color:var(--muted);margin:0 0 5px;font-size:13px;line-height:1.7}.project-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.project-card{background:var(--panel);border:1px solid var(--line);flex-direction:column;min-height:305px;padding:25px 25px 22px;transition:transform .2s,border-color .2s,background .2s;display:flex}.project-card:hover{background:#0d2036;border-color:#2c6692;transform:translateY(-4px)}.project-card.blue{box-shadow:inset 3px 0 0 var(--blue-strong)}.project-card.cyan{box-shadow:inset 3px 0 0 var(--blue-soft)}.project-top{color:var(--blue);justify-content:space-between;display:flex}.project-top svg{transition:transform .2s}.project-card:hover .project-top svg{transform:translate(3px,-3px)}.project-type{letter-spacing:.08em;color:#6d8da8;font-family:DM Mono,monospace;font-size:10px}.project-content{margin-top:auto;padding:46px 0 28px}.project-content h3{color:var(--ink);margin-bottom:11px;font-size:21px}.project-content p{max-width:390px;color:var(--muted);margin:0;font-size:13px;line-height:1.65}.project-link{width:max-content;color:var(--blue-soft);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #315979;align-items:center;gap:6px;padding-bottom:5px;font-family:DM Mono,monospace;font-size:10px;display:flex}.project-link:hover{border-color:var(--blue)}.email-link{width:max-content;color:var(--blue-soft);border-bottom:1px solid #315979;align-items:center;gap:7px;margin-top:34px;padding-bottom:7px;font-family:DM Mono,monospace;font-size:12px;display:flex}.email-link:hover{border-color:var(--blue)}.socials{flex-direction:column;align-items:flex-start;gap:24px;padding-bottom:6px;display:flex}.social-links{grid-template-columns:repeat(2,auto);gap:17px 25px;display:grid}.social-links a{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}@media (width<=700px){.projects-section{padding:0 0 100px}.projects-heading{margin-bottom:45px;display:block}.projects-intro{margin-top:27px}.project-grid{grid-template-columns:1fr}.project-card{min-height:275px}.email-link{margin-top:27px}.socials{margin-top:42px}}.socials{gap:30px}.social-links{align-items:flex-start;gap:28px;display:flex}.social-links a{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:9px;font-size:10px}.social-links a:hover{color:var(--blue-soft)}.social-links img{opacity:.9;width:28px;height:28px;transition:transform .18s,opacity .18s}@media (width<=700px){.social-links{gap:25px}.social-links img{width:26px;height:26px}}.project-card{color:inherit}.contact-section{padding-bottom:120px;display:block}.contact-main{justify-content:space-between;align-items:end;display:flex}.contact-main .button{margin-bottom:6px}.socials{align-items:center;margin-top:72px;padding:0}.social-links{justify-content:center;gap:34px}.social-links a{display:block}.social-links img{width:30px;height:30px}@media (width<=700px){.contact-section{padding-bottom:90px}.contact-main{display:block}.contact-main .button{margin-top:42px}.socials{margin-top:58px}.social-links{gap:28px}}.hero{position:relative;overflow:hidden}@media (width<=700px){.hero{overflow:visible}}.code-particles{z-index:0;pointer-events:auto;opacity:.85;position:absolute;inset:0}.hero>:not(.code-particles){z-index:1;position:relative}.focus-item{grid-template-columns:1fr}@media (prefers-reduced-motion:reduce){.code-particles{display:none}}.hero:after{display:none}.code-particles{-webkit-mask-image:linear-gradient(#000 0% 68%,#0000 100%);mask-image:linear-gradient(#000 0% 68%,#0000 100%)}.hero{background:0 0}.topbar{width:100vw;margin-left:calc(50% - 50vw);padding-left:max(38px,50vw - 552px);padding-right:max(38px,50vw - 552px)}.github-icon{color:var(--muted);align-items:center;transition:color .18s,transform .18s;display:flex}.github-icon:hover{color:var(--blue-soft);transform:translateY(-2px)}.detail-page{min-height:calc(100vh - 180px);padding:132px 8% 130px}.detail-page h1{max-width:850px;margin-top:28px}.detail-intro{max-width:400px;color:var(--muted);margin:40px 0 82px;font-size:15px;line-height:1.75}.detail-list{border-top:1px solid var(--line);max-width:760px}.detail-item{border-bottom:1px solid var(--line);padding:30px 0}.detail-item h3{color:var(--blue-soft)}.detail-item p{max-width:550px;color:var(--muted);margin:0;font-size:14px;line-height:1.7}.detail-projects{grid-template-columns:repeat(2,1fr);gap:14px;max-width:900px;display:grid}.detail-projects .project-card{min-height:300px}.detail-contact{max-width:600px;padding-top:12px}.detail-contact p{color:var(--muted);margin-top:35px;font-size:14px}.detail-page:has(.detail-contact) .detail-intro{margin-bottom:28px}.detail-page:has(.detail-contact) .detail-contact{padding-top:0}.detail-page+footer{padding-left:max(38px,50vw - 552px);padding-right:max(38px,50vw - 552px)}@media (width<=700px){.topbar{padding-left:20px;padding-right:20px}.detail-page{min-height:calc(100vh - 144px);padding:90px 0 100px}.detail-intro{margin:30px 0 60px}.detail-page:has(.detail-contact) .detail-intro{margin-bottom:28px}.detail-projects{grid-template-columns:1fr}.detail-page+footer{padding-left:20px;padding-right:20px}}.github-mark{width:19px;height:19px;display:block}.game-card{padding:28px;min-height:390px!important}.game-icon{object-fit:cover;border-radius:18px;width:78px;height:78px;margin-bottom:28px;box-shadow:0 10px 25px #00000040}.game-card .project-content{padding-top:20px}.detail-socials{gap:28px;margin-top:42px;display:flex}.detail-socials a{transition:transform .18s,opacity .18s;display:flex}.detail-socials img{width:30px;height:30px}@media (width<=700px){.game-card{min-height:350px!important}.game-icon{width:68px;height:68px}.detail-socials{gap:24px}}.contact-form{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:18px;max-width:620px;margin-top:62px;padding-top:30px;display:grid}.contact-form label{color:#7393ae;text-transform:uppercase;letter-spacing:.06em;flex-direction:column;gap:9px;font-family:DM Mono,monospace;font-size:10px;display:flex}.contact-form label:nth-of-type(3){grid-column:1/-1}.contact-form input,.contact-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:#0b1a2d;border-radius:0;outline:none;padding:14px 15px;font-family:Manrope,sans-serif;font-size:13px;transition:border-color .18s,box-shadow .18s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #51b9ff1a}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#55748e}.contact-form .button{cursor:pointer;border:0}.contact-form .button:disabled{cursor:wait;opacity:.75}.form-status{color:var(--blue-soft);grid-column:1/-1;margin:0;font-size:12px}.form-status.error{color:#ff9e9e}@media (width<=700px){.contact-form{grid-template-columns:1fr;margin-top:48px}.contact-form label:nth-of-type(3){grid-column:auto}}.about-content{max-width:900px}.about-story{border-top:1px solid var(--line);max-width:720px;padding-top:32px}.about-story p{color:var(--muted);margin:0 0 24px;font-size:15px;line-height:1.8}.about-story strong{color:var(--blue-soft);font-weight:600}.about-columns{border-top:1px solid var(--line);grid-template-columns:1.15fr .85fr;gap:70px;margin-top:76px;padding-top:30px;display:grid}.about-columns h3{color:var(--ink);margin:20px 0 12px}.about-columns article>p:not(.eyebrow){color:var(--muted);margin:0 0 18px;font-size:13px;line-height:1.7}.spec-list{border-top:1px solid var(--line);margin:20px 0 0;padding:0;list-style:none}.spec-list li{border-bottom:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:12px 0;font-family:DM Mono,monospace;font-size:10px}@media (width<=700px){.about-columns{grid-template-columns:1fr;gap:55px;margin-top:55px}.about-story p{font-size:14px}}.story-timeline{padding-left:82px;position:relative}.story-timeline:before{content:"";background:linear-gradient(to bottom,var(--blue),#51b9ff1f);width:1px;position:absolute;top:4px;bottom:4px;left:19px}.story-step{opacity:0;animation:story-reveal .7s var(--delay,0s) cubic-bezier(.23,1,.32,1) forwards;padding:0 0 64px;position:relative;transform:translateY(16px)}.story-step:last-child{padding-bottom:10px}.story-step:before{content:"";border:2px solid var(--blue);background:var(--paper);width:9px;height:9px;box-shadow:0 0 0 5px var(--paper),0 0 15px #51b9ff73;border-radius:50%;position:absolute;top:3px;left:-70px}.story-year{color:var(--blue);letter-spacing:.05em;font-family:DM Mono,monospace;font-size:10px;position:absolute;top:1px;left:-82px}.story-step h3{color:var(--ink);margin:14px 0;font-size:24px}.story-step p:not(.eyebrow){max-width:680px;color:var(--muted);margin:0 0 18px;font-size:14px;line-height:1.8}@keyframes story-reveal{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.story-step{opacity:1;animation:none;transform:none}}@media (width<=700px){.story-timeline{padding-left:50px}.story-timeline:before{left:17px}.story-step:before{left:-39px}.story-year{left:-50px}.story-step h3{font-size:21px}}.story-year{text-align:right;width:30px;left:-112px}.story-step:before{left:-70px}@media (width<=700px){.story-year{width:30px;left:-82px}.story-step:before{left:-39px}}.menu-toggle{display:none}@media (width<=700px){.code-particles{pointer-events:none}.menu-toggle{z-index:5;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:space-between;width:28px;height:24px;padding:0;display:flex}.menu-toggle span{background:var(--blue-soft);width:100%;height:1px;transition:transform .2s,opacity .2s;display:block}.menu-toggle.open span:first-child{transform:translateY(11px)rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-11px)rotate(-45deg)}.topbar nav{z-index:4;border:1px solid var(--line);background:#0b1a2d;padding:20px;display:none;position:absolute;top:72px;left:20px;right:20px;box-shadow:0 20px 40px #00000040}.topbar nav.mobile-open{flex-direction:column;align-items:stretch;gap:0;display:flex}.topbar nav.mobile-open a{border-bottom:1px solid var(--line);color:var(--ink);padding:14px 0;display:flex}.topbar nav.mobile-open a:last-child{border-bottom:0}.topbar nav.mobile-open .github-icon{justify-content:flex-start}.note-section{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:42px 28px}.note-mark{font-size:54px}.note-section p{font-size:30px}.contact-section{text-align:center}.contact-main .button,.email-link{margin-left:auto;margin-right:auto}.socials{justify-content:center}}.email-button{justify-content:center;min-width:170px;position:relative}.email-button svg:first-child{position:absolute;left:16px}.email-button svg:last-child{position:absolute;right:16px}.email-button span{text-align:center}.email-link{gap:3px}.contact-form .button{justify-content:center;min-width:150px;position:relative}.contact-form .button span{text-align:center}.contact-form .button svg{position:absolute;right:14px}@media (width<=700px){.detail-contact{text-align:center}.detail-contact .contact-form{text-align:left;margin-left:auto;margin-right:auto}.detail-contact .detail-socials{justify-content:center}.contact-form .button{margin-left:auto;margin-right:auto}}.setup-panel{background:linear-gradient(145deg,#0b2035,#081522);border:1px solid #214663;padding:25px;position:relative;overflow:hidden;box-shadow:inset 0 0 45px #168cff12,0 18px 50px #00000029}.setup-panel:after{content:"//";color:#51b9ff24;font-family:DM Mono,monospace;font-size:70px;font-weight:500;position:absolute;bottom:4px;right:18px}.setup-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:22px;display:flex}.setup-header h3{margin:13px 0 0;font-size:19px}.setup-status{color:var(--blue);letter-spacing:.08em;align-items:center;gap:6px;font-family:DM Mono,monospace;font-size:9px;display:flex}.setup-status i{background:var(--blue);width:6px;height:6px;box-shadow:0 0 10px var(--blue);border-radius:50%;display:block}.setup-hero{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:end;padding:25px 0 22px;display:grid}.setup-label{color:#60839e;letter-spacing:.1em;grid-column:1/-1;margin-bottom:15px;font-family:DM Mono,monospace;font-size:9px}.setup-hero strong{color:var(--blue-soft);letter-spacing:-.08em;font-family:DM Mono,monospace;font-size:43px;line-height:1}.setup-hero>span:last-child{color:#62819a;letter-spacing:.08em;font-family:DM Mono,monospace;font-size:9px}.spec-list{z-index:1;border:0;flex-direction:column;gap:0;margin:0;padding:0;display:flex;position:relative}.spec-list div{border-bottom:1px solid #18324ccc;justify-content:space-between;gap:14px;padding:13px 0;display:flex}.spec-list div:last-child{border-bottom:0}.spec-list span{color:#62819a;letter-spacing:.08em;font-family:DM Mono,monospace;font-size:9px}.spec-list strong{color:var(--ink);text-align:right;font-size:11px;font-weight:500}@media (width<=700px){.setup-panel{padding:21px}.setup-hero strong{font-size:36px}.spec-list strong{max-width:190px}}.setup-panel .spec-list strong{color:var(--blue-soft);font-weight:700}.not-found{min-height:calc(100vh - 180px);padding:150px 8%}.not-found h1{margin-top:28px}.not-found>p:not(.eyebrow){max-width:360px;color:var(--muted);margin:38px 0 30px;line-height:1.7}.not-found .button{justify-content:center;min-width:140px;position:relative}.not-found .button span{text-align:center}.not-found .button svg{position:absolute;right:14px}@media (width<=700px){.not-found{min-height:calc(100vh - 144px);padding:100px 0}}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes slide-in{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:none}}@keyframes line-grow{0%{transform-origin:0;transform:scaleX(0)}to{transform-origin:0;transform:scaleX(1)}}@keyframes setup-glow{0%,to{box-shadow:inset 0 0 45px #168cff12,0 18px 50px #00000029}50%{box-shadow:inset 0 0 58px #168cff1f,0 18px 55px #0003}}@keyframes icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.topbar{animation:.65s cubic-bezier(.23,1,.32,1) both rise-in}.hero h1{animation:.8s cubic-bezier(.23,1,.32,1) 80ms both rise-in}.hero .intro{animation:.75s cubic-bezier(.23,1,.32,1) .2s both rise-in}.hero .text-link{animation:.65s cubic-bezier(.23,1,.32,1) .3s both slide-in}.signal-row{animation:.7s cubic-bezier(.23,1,.32,1) .38s both rise-in}.work-section,.projects-section,.contact-section,.detail-page{animation:.8s cubic-bezier(.23,1,.32,1) 50ms both rise-in}.note-section{animation:.8s cubic-bezier(.23,1,.32,1) .1s both rise-in}footer{animation:.7s cubic-bezier(.23,1,.32,1) .12s both rise-in}.project-card{position:relative;overflow:hidden}.project-card:after{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 25%,#a9ddff14 48%,#0000 70%);transition:transform .7s;position:absolute;inset:0;transform:translate(-130%)}.project-card:hover:after{transform:translate(130%)}.project-card:hover .project-content h3{color:var(--blue-soft);transition:color .2s}.focus-item{transition:padding-left .25s,background .25s}.focus-item:hover{background:#51b9ff09;padding-left:10px}.focus-item h3{transition:color .2s}.focus-item:hover h3{color:var(--blue-soft)}.button{position:relative;overflow:hidden}.button:after{content:"";background:linear-gradient(110deg,#0000 30%,#ffffff47 50%,#0000 70%);transition:transform .55s;position:absolute;inset:0;transform:translate(-130%)}.button:hover:after{transform:translate(130%)}.social-links a,.detail-socials a{transition:transform .25s,opacity .25s,color .25s}.social-links a:hover,.detail-socials a:hover{transform:translateY(-5px)scale(1.06)}.social-links a:nth-child(2),.detail-socials a:nth-child(2){transition-delay:30ms}.social-links a:nth-child(3),.detail-socials a:nth-child(3){transition-delay:60ms}.social-links a:nth-child(4),.detail-socials a:nth-child(4){transition-delay:90ms}.setup-panel{animation:5s ease-in-out 1s infinite setup-glow}.setup-panel .spec-list div{transition:padding-left .2s,background .2s}.setup-panel .spec-list div:hover{background:#51b9ff09;padding-left:8px}.setup-panel .spec-list strong{transition:color .2s}.setup-panel .spec-list div:hover strong{color:#d5efff}.not-found h1{animation:.8s cubic-bezier(.23,1,.32,1) 80ms both rise-in}.not-found>p:not(.eyebrow),.not-found .button{animation:.7s cubic-bezier(.23,1,.32,1) .2s both rise-in}@media (prefers-reduced-motion:reduce){.topbar,.hero h1,.hero .intro,.hero .text-link,.signal-row,.work-section,.projects-section,.contact-section,.detail-page,.note-section,footer,.not-found h1,.not-found>p:not(.eyebrow),.not-found .button,.setup-panel{animation:none!important}.project-card:after,.button:after{display:none}.focus-item:hover,.setup-panel .spec-list div:hover{padding-left:0}}.magnetic-socials a{transform:translateY(var(--magnetic-y,0px)) scale(var(--magnetic-scale,1));will-change:transform;transition:transform .18s cubic-bezier(.23,1,.32,1),opacity .25s,color .25s}.magnetic-socials a:hover{transform:translateY(var(--magnetic-y,0px)) scale(var(--magnetic-scale,1))}@media (prefers-reduced-motion:reduce){.magnetic-socials a{will-change:auto;transform:none!important}}.focus-item{transition:padding-left .35s,background .35s,border-color .35s;position:relative}.focus-item:after{content:"";background:var(--blue);transform-origin:0;width:34%;height:1px;transition:transform .45s cubic-bezier(.23,1,.32,1);position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.focus-item.is-active{background:linear-gradient(90deg,#51b9ff13,#0000 70%);padding-left:10px}.focus-item.is-active:after{transform:scaleX(1)}.focus-item.is-active .item-number{color:var(--blue-soft);text-shadow:0 0 12px #51b9ffb3}.focus-item.is-active h3{color:var(--blue-soft)}@media (prefers-reduced-motion:reduce){.focus-item,.focus-item:after{transition:none}}.story-step{opacity:0;transition:opacity .75s cubic-bezier(.23,1,.32,1),transform .75s cubic-bezier(.23,1,.32,1);animation:none;transform:translateY(34px)}.story-step.is-visible:before{animation:1.2s ease-out both timeline-pulse}@keyframes timeline-pulse{0%{box-shadow:0 0 0 0 #51b9ff8c,0 0 0 5px var(--paper)}to{box-shadow:0 0 0 10px #51b9ff00,0 0 0 5px var(--paper)}}@media (prefers-reduced-motion:reduce){.story-step{opacity:1;transition:none;transform:none}.story-step.is-visible:before{animation:none}}.story-sticky-copy{z-index:2;pointer-events:none;width:230px;height:0;margin-left:calc(100% + 42px);position:sticky;top:34vh;transform:translateY(-10px)}.story-sticky-copy .eyebrow{transition:opacity .25s,color .25s}.story-sticky-copy h3{color:var(--blue-soft);margin-top:14px;font-size:20px;line-height:1.2;transition:opacity .25s,transform .35s}@media (width<=960px){.story-sticky-copy{display:none}}@media (prefers-reduced-motion:reduce){.story-sticky-copy .eyebrow,.story-sticky-copy h3{transition:none}}.social-links a,.social-links a:hover{transform:none}.social-links img{transition:transform .18s,opacity .18s}.social-links a:hover img{opacity:1;transform:translateY(-3px)}.detail-socials a{transition:transform .18s,opacity .18s;transform:none}.detail-socials a:hover{opacity:.8;transform:translateY(-4px)}.detail-socials img{transition:none}.story-timeline{padding-top:0}.story-step{opacity:.2;align-items:center;min-height:76vh;padding:8vh 0;transition:opacity .7s,transform .7s;animation:none;display:flex;transform:none}.story-step.is-visible{opacity:.42}.story-step.is-past{opacity:.16}.story-step:before{transition:box-shadow .5s,background .5s;top:50%;transform:translateY(-50%)}.story-step.is-current:before{background:var(--blue);box-shadow:0 0 0 5px var(--paper),0 0 22px #51b9ffcc}.story-year{transition:color .5s;top:50%;transform:translateY(-50%)}.story-step.is-current .story-year{color:var(--blue-soft)}@media (width<=700px){.story-step{min-height:72vh;padding:7vh 0}}@media (prefers-reduced-motion:reduce){.story-step{opacity:1;transition:none}.story-step.is-past,.story-step.is-visible{opacity:1}.story-step:before,.story-year{transition:none}}.story-timeline{padding-top:1px;position:relative}.story-step{z-index:1;opacity:.12;background:var(--paper);align-items:center;height:60vh;min-height:60vh;margin:0 0 32vh;padding:0;transition:opacity .65s,transform .65s cubic-bezier(.23,1,.32,1);display:flex;position:sticky;top:20vh;transform:translateY(26px)scale(.98)}.story-step:first-child{z-index:1}.story-step:nth-child(2){z-index:2}.story-step:nth-child(3){z-index:3}.story-step:nth-child(4){z-index:4}.story-step.is-visible{opacity:.3;transform:translateY(12px)scale(.99)}.story-step.is-current{opacity:1;transform:none}.story-step.is-past{opacity:.08;transform:translateY(-18px)scale(.98)}.story-step:after{content:"";z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(at 45%,#168cff12,#0000 62%);transition:opacity .65s;position:absolute;inset:0 -10px}.story-step.is-current:after{opacity:1}@media (width<=700px){.story-step{height:68vh;min-height:68vh;margin-bottom:24vh;top:16vh}}@media (prefers-reduced-motion:reduce){.story-step,.story-step.is-visible,.story-step.is-current,.story-step.is-past{opacity:1;transition:none;transform:none}.story-step:after{display:none}}.story-step{z-index:auto;opacity:0;height:auto;min-height:0;animation:story-reveal .7s var(--delay,0s) cubic-bezier(.23,1,.32,1) forwards;background:0 0;margin:0;padding:0 0 64px;transition:none;display:block;position:relative;top:auto;bottom:auto;transform:translateY(16px)}.story-step:before{top:3px;transform:none}.story-year{top:1px;transform:none}.story-step:first-child{--delay:80ms}.story-step:nth-child(2){--delay:.18s}.story-step:nth-child(3){--delay:.28s}.story-step:nth-child(4){--delay:.38s}.story-step.is-visible,.story-step.is-current,.story-step.is-past{opacity:0;transform:translateY(16px)}.story-step:after{display:none}@media (width<=700px){.story-step{height:auto;min-height:0;margin-bottom:0;padding:0 0 64px}}@media (prefers-reduced-motion:reduce){.story-step,.story-step.is-visible,.story-step.is-current,.story-step.is-past{opacity:1;animation:none;transform:none}}.wordmark{transition:color .2s,text-shadow .25s,transform .25s}.wordmark:hover{color:var(--blue-soft);text-shadow:0 0 16px #51b9ffa6;transform:translateY(-1px)}.wordmark:hover{color:var(--ink);text-shadow:0 0 10px #ffffff9e,0 0 22px #fff3;filter:drop-shadow(0 0 5px #ffffff4d)}.wordmark:hover span{color:var(--blue)}.social-links a,.detail-socials a{isolation:isolate;position:relative}.social-links a:hover img,.detail-socials a:hover img{filter:none}.social-links a:after,.detail-socials a:after{content:"";z-index:-1;filter:blur(9px);opacity:0;pointer-events:none;background:#51b9ff38;border-radius:50%;width:34px;height:34px;transition:opacity .2s,transform .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.7)}.social-links a:hover:after,.detail-socials a:hover:after{opacity:1;transform:translate(-50%,-50%)scale(1)}@media (width<=700px){.topbar{z-index:20;position:relative}.menu-toggle{z-index:22;flex-shrink:0;position:relative}.menu-toggle span{z-index:23;position:relative}.topbar nav{z-index:21}}
