@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{--slot-sz:clamp(44px, 6vw, 110px);--slot-gap:clamp(14px, 1.6vw, 30px);--tools-just:center;--tools-gap:6vh;--tools-pad:80px 0 30px;--tools-min-h:100vh;--word-anchor:center;--bld-fs:17.5vw;--exp-fs:16.4vw;--e2e-fs:11vw;--hero-cols:minmax(0, 2.1fr) minmax(0, 1fr);--hero-areas:"who frame" "main frame";--hero-rows:auto auto;--hero-gap:18px 3.5vw;--hero-pad:104px 4vw 56px;--hero-ov:hidden;--hero-align:center;--who-rise:20px;--h1-size:clamp(34px, 12.6cqw, 164px);--desc-size:15px;--desc-mt:26px;--btn-mt:34px;--btn-pad:15px 38px;--btn-fs:14px;--frame-w:min(100%, 56vh);--frame-m:0 0 0 auto;--proj-cols:minmax(0, 1fr) minmax(0, 1.25fr);--proj-gap:96px;--nav-links-disp:flex;--nav-cta-disp:none;--t1x:-4000px;--t2x:4000px;--t3x:-4000px;--zone-h:100vh}@media (height<=699px){:root{--hero-pad:76px 4vw 28px;--hero-ov:auto;--hero-align:start;--h1-size:clamp(30px, 9.2cqw, 110px);--desc-size:13.5px;--desc-mt:16px;--btn-mt:22px;--frame-w:min(100%, 46vh)}}@media (width<=899px){:root{--slot-sz:10vh;--slot-gap:2.2vh;--tools-just:flex-start;--tools-gap:9vh;--tools-pad:80px 0 40px;--tools-min-h:auto;--word-anchor:left;--bld-fs:24vh;--exp-fs:24vh;--e2e-fs:24vh;--hero-cols:1fr;--hero-areas:"who" "frame" "main";--hero-rows:auto auto auto;--hero-gap:11px;--hero-pad:92px 6vw 20px;--hero-ov:hidden;--hero-align:center;--who-rise:0px;--h1-size:clamp(28px, 12.4cqw, 76px);--desc-size:13px;--desc-mt:10px;--btn-mt:12px;--btn-pad:12px 20px;--btn-fs:12px;--frame-w:min(52%, 22vh);--frame-m:0 auto;--proj-cols:1fr;--proj-gap:70px;--nav-links-disp:none;--nav-cta-disp:inline-block}}@media (width<=899px) and (height<=760px){:root{--hero-ov:auto;--hero-align:start;--frame-w:min(62%, 34vh)}}html,body{color:#e0e0e0;background:#0a0a0f;margin:0;padding:0;font-family:JetBrains Mono,Consolas,monospace}html{scrollbar-gutter:stable;overflow:hidden scroll}html::-webkit-scrollbar{width:10px}html::-webkit-scrollbar-track{background:#08080c}html::-webkit-scrollbar-thumb{background:#00b56a;border:2px solid #08080c}html::-webkit-scrollbar-thumb:hover{background:#0f8}a{color:#0f8;text-decoration:none}a:hover{color:#f0f}::selection{color:#0a0a0f;background:#0f8}@keyframes sqBounce{0%,to{transform:translateY(7px)}50%{transform:translateY(-10px)}}@keyframes blink{50%{opacity:0}}@keyframes glSliceA{0%,80%,94%,to{clip-path:inset(100% 0 0);transform:translate(0)}81%{clip-path:inset(10% 0 78%);transform:translate(-7px,-2px)}83%{clip-path:inset(58% 0 28%);transform:translate(5px,1px)}85%{clip-path:inset(30% 0 58%);transform:translate(-5px)}87%{clip-path:inset(74% 0 12%);transform:translate(6px,2px)}89%{clip-path:inset(4% 0 86%);transform:translate(-4px)}91%{clip-path:inset(42% 0 44%);transform:translate(4px,-1px)}}@keyframes glSliceB{0%,80%,94%,to{clip-path:inset(100% 0 0);transform:translate(0)}82%{clip-path:inset(66% 0 20%);transform:translate(6px,1px)}84%{clip-path:inset(18% 0 70%);transform:translate(-5px,-1px)}86%{clip-path:inset(50% 0 38%);transform:translate(5px,2px)}88%{clip-path:inset(8% 0 80%);transform:translate(-6px)}90%{clip-path:inset(36% 0 50%);transform:translate(4px)}92%{clip-path:inset(80% 0 6%);transform:translate(-4px,-2px)}}@keyframes glassGlitch{0%,62%,78%,to{clip-path:inset(100% 0 0);transform:translate(0)}63%{clip-path:inset(6% 0 55%);transform:translate(-3px,1px)}66%{clip-path:inset(40% 0 22%);transform:translate(2px,-1px)}69%{clip-path:inset(65% 0 3%);transform:translate(-2px)}72%{clip-path:inset(20% 0 60%);transform:translate(3px,1px)}75%{clip-path:inset(48% 0 30%);transform:translate(-2px,-1px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.nav{z-index:40;box-sizing:border-box;backdrop-filter:blur(10px);background:#0a0a0fb8;border-bottom:1px solid #00ff882e;justify-content:space-between;align-items:center;padding:16px 4vw;transition:background .45s,border-color .45s;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(100vh)}body.is-revealing .nav,body.is-done .nav{transform:translateY(0)}body.is-revealing .nav{transition:transform 1.25s cubic-bezier(.87,0,.13,1),background .45s,border-color .45s}body.nav-on-white .nav{background:#f4f4efe0;border-bottom:1px solid #0a0a0f14}.nav__logo{aspect-ratio:268/81;height:27px;position:relative}.nav__logo-img{height:27px;transition:opacity .45s;position:absolute;inset:0}.nav__logo-img--white{opacity:1}.nav__logo-img--black{filter:invert();opacity:0}body.nav-on-white .nav__logo-img--white{opacity:0}body.nav-on-white .nav__logo-img--black{opacity:1}.nav__links{display:var(--nav-links-disp);align-items:center;gap:38px}.nav__links a{letter-spacing:.22em;color:#6b7280;font-family:Share Tech Mono,monospace;font-size:13px;transition:color .45s}.nav__links a:hover{color:#0f8}body.nav-on-white .nav__links a{color:#4d5561}body.nav-on-white .nav__links a:hover{color:#009e63}.nav__cta{display:var(--nav-cta-disp);box-sizing:border-box;color:#0a0a0f;letter-spacing:.16em;text-transform:uppercase;clip-path:polygon(0 6px,6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px));background:#0f8;border:2px solid #0f8;padding:10px 18px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700}.nav__cta:hover{color:#0a0a0f}.wrap{z-index:5;width:100%;height:200vh;position:fixed;top:0;left:0;transform:translateY(0)}body.is-revealing .wrap{transition:transform 1.25s cubic-bezier(.87,0,.13,1);transform:translateY(-100vh)}body.is-done .wrap{height:auto;transition:none;position:static;transform:none}.boot{box-sizing:border-box;background:#050508 radial-gradient(circle at 50% 42%,#00ff880d,#0000 55%);flex-direction:column;justify-content:center;align-items:center;height:100vh;display:flex;position:relative;overflow:hidden}.boot__tag{letter-spacing:.3em;color:#2a2a3a;font-family:Share Tech Mono,monospace;font-size:11px;position:absolute}.boot__tag--tl{top:24px;left:28px}.boot__tag--br{bottom:24px;right:28px}.boot__logo{width:268px;max-width:60vw}.boot__squares{gap:14px;margin-top:52px;display:flex}.boot__square{background:#0f8;width:13px;height:13px;animation:.9s ease-in-out infinite sqBounce;box-shadow:0 0 6px #0f8,0 0 14px #00ff8880}.boot__square:nth-child(2){animation-delay:.15s}.boot__square:nth-child(3){animation-delay:.3s}.boot__line{letter-spacing:.06em;align-items:center;gap:10px;height:20px;margin-top:56px;font-family:Share Tech Mono,monospace;font-size:14px;display:flex}.boot__caret{color:#0f8;text-shadow:0 0 8px #00ff88b3}.boot__typed{color:#00ff88d9}.boot__cursor{background:#0f8;width:9px;height:16px;animation:1s step-end infinite blink;box-shadow:0 0 8px #0f8c}.zone{height:var(--zone-h)}.zone__sticky{height:100vh;position:sticky;top:0;overflow:hidden}.hero{overflow-y:var(--hero-ov);box-sizing:border-box;grid-template-columns:var(--hero-cols);grid-template-areas:var(--hero-areas);grid-template-rows:var(--hero-rows);gap:var(--hero-gap);align-items:var(--hero-align);align-content:var(--hero-align);padding:var(--hero-pad);display:grid;position:absolute;inset:0}.hero--dark{background-color:#0a0a0f;background-image:radial-gradient(at 82% 18%,#00ff880f,#0000 50%),radial-gradient(at 8% 92%,#ff00ff0d,#0000 50%),linear-gradient(#00ff8808 1px,#0000 1px),linear-gradient(90deg,#00ff8808 1px,#0000 1px);background-size:auto,auto,50px 50px,50px 50px;border-top:1px solid #00ff8873}.hero--light{opacity:0;pointer-events:none;z-index:2;background-color:#f4f4ef;background-image:linear-gradient(#0a0a0f09 1px,#0000 1px),linear-gradient(90deg,#0a0a0f09 1px,#0000 1px);background-size:50px 50px,50px 50px;border-top:1px solid #00aa6980;transition:opacity 1.6s cubic-bezier(.4,0,.2,1)}body.nav-on-white .hero--light{opacity:1;pointer-events:auto}.hero__who{top:calc(var(--who-rise) * -1);letter-spacing:.3em;grid-area:who;align-self:end;font-family:Share Tech Mono,monospace;font-size:14px;position:relative}.hero--dark .hero__who{color:#0f8;text-shadow:0 0 10px #00ff8880}.hero--light .hero__who{color:#009e63}.hero__main{grid-area:main;min-width:0;container-type:inline-size}.hero__title{font-family:Orbitron,monospace;font-weight:900;font-size:var(--h1-size);white-space:nowrap;letter-spacing:.01em;text-transform:uppercase;margin:0;line-height:.98}.hero--dark .hero__title{color:#e0e0e0;text-shadow:1.5px 0 #ff00ff47,-1.5px 0 #00d4ff47}.hero--light .hero__title{color:#0a0a0f;text-shadow:1.5px 0 #ff00ff38,-1.5px 0 #00d4ff38}.hero--dark .hero__bracket{color:#0f8;text-shadow:0 0 14px #0f89}.hero--light .hero__bracket{color:#00b56a}.hero__mark{color:#0a0a0f;background:#0f8;padding:0 .05em}.glitch{position:relative}.glitch__a,.glitch__b{clip-path:inset(100% 0 0);pointer-events:none;user-select:none;position:absolute;inset:0}.glitch__a{text-shadow:-2.5px 0 #f0f;animation:7s step-end infinite glSliceA}.glitch__b{text-shadow:2.5px 0 #00d4ff;animation:7s step-end infinite glSliceB}.glitch__a--d2,.glitch__b--d2{animation-delay:2.4s}.glitch__a--d3,.glitch__b--d3{animation-delay:4.8s}.hero--dark .glitch__a,.hero--dark .glitch__b{color:#e0e0e0}.hero--light .glitch__a,.hero--light .glitch__b{color:#0a0a0f}.hero__desc{margin:var(--desc-mt) 0 0;max-width:640px;font-size:var(--desc-size);letter-spacing:.02em;text-wrap:pretty;line-height:1.85}.hero--dark .hero__desc{color:#a8b0bf}.hero--light .hero__desc{color:#454e5c}.hero__actions{margin-top:var(--btn-mt);flex-wrap:wrap;align-items:center;gap:22px;display:flex}.btn{box-sizing:border-box;font-family:JetBrains Mono,monospace;font-weight:700;font-size:var(--btn-fs);letter-spacing:.18em;text-transform:uppercase;padding:var(--btn-pad);clip-path:polygon(0 8px,8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px));display:inline-block}.btn--solid{color:#0a0a0f;background:#0f8;border:2px solid #0f8;transition:filter .15s cubic-bezier(.4,0,.2,1)}.hero--dark .btn--solid:hover{color:#0a0a0f;filter:drop-shadow(0 0 6px #0f8c)drop-shadow(0 0 18px #00ff8859)brightness(1.12)}.hero--light .btn--solid:hover{color:#0a0a0f;filter:drop-shadow(0 0 6px #00c87899)brightness(1.05)}.btn--ghost{color:#0f8;background:#0a0a0f;border:2px solid #0f8;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn--ghost:hover{color:#0a0a0f;filter:drop-shadow(0 0 6px #0f8c)drop-shadow(0 0 18px #00ff8859);background:#0f8}.btn--outline{color:#0a0a0f;background:0 0;border:2px solid #0a0a0f;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn--outline:hover{color:#f2f3f5;background:#0a0a0f}.frame{width:var(--frame-w);margin:var(--frame-m);aspect-ratio:1960/2592;grid-area:frame;position:relative}.frame--dark{backdrop-filter:blur(6px);background:#12121aa6;border:1px solid #00ff884d;box-shadow:0 0 5px #00ff8859,0 0 22px #00ff881f}.frame--light{background:#f4f4ef8c;border:1px solid #00aa6973;box-shadow:0 0 5px #00be734d,0 12px 34px #0a0a0f1f}.frame__c{z-index:4;width:16px;height:16px;position:absolute}.frame__c--tl{border-top:2px solid;border-left:2px solid;top:-1px;left:-1px}.frame__c--tr{border-top:2px solid;border-right:2px solid;top:-1px;right:-1px}.frame__c--bl{border-bottom:2px solid;border-left:2px solid;bottom:-1px;left:-1px}.frame__c--br{border-bottom:2px solid;border-right:2px solid;bottom:-1px;right:-1px}.frame--dark .frame__c{border-color:#0f8}.frame--light .frame__c{border-color:#00b56a}.frame__glasses{width:36%;image-rendering:pixelated;filter:drop-shadow(0 0 10px #ffffff40);z-index:2;position:absolute;top:18%;left:33.5%}.frame__glasses--gl1,.frame__glasses--gl2{clip-path:inset(100% 0 0);filter:brightness(.85)sepia()saturate(8)hue-rotate(88deg)brightness(1.25)drop-shadow(0 0 8px #00ff88b3);z-index:3;pointer-events:none}.frame__glasses--gl1{animation:2.6s step-end infinite glassGlitch}.frame__glasses--gl2{animation:3.4s step-end 1.3s infinite glassGlitch}.frame__label{text-align:center;z-index:2;position:absolute;top:46%;left:8%;right:8%}.frame__label-1,.frame__label-2{letter-spacing:.34em;font-family:Orbitron,monospace;font-size:clamp(12px,1.1vw,18px);font-weight:800}.frame__label-1{color:#e0e0e0}.frame__label-2{color:#0f8;text-shadow:0 0 12px #0f89;margin-top:8px}.warn{backdrop-filter:blur(3px);z-index:3;background:#050508c7;border:1px solid #ff336680;padding:12px 14px;position:absolute;bottom:4%;left:6%;right:6%}.warn__stripe{opacity:.85;background:repeating-linear-gradient(45deg,#f36 0 10px,#ff336626 10px 20px);height:6px}.warn__title{letter-spacing:.22em;color:#f36;margin-top:10px;font-family:Share Tech Mono,monospace;font-size:11px}.warn__cmd{letter-spacing:.08em;color:#0f8;align-items:center;gap:8px;margin-top:6px;font-family:Share Tech Mono,monospace;font-size:11px;display:flex}.warn__cursor{background:#0f8;width:7px;height:13px;animation:1s step-end infinite blink}.frame__portrait{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;inset:0}.frame__portrait.is-missing{display:none}.frame--light.has-no-portrait:after{content:"assets/portrait.png";z-index:1;letter-spacing:.18em;color:#009e63;text-align:center;background:repeating-linear-gradient(45deg,#00aa690f 0 12px,#0000 12px 24px);justify-content:center;align-items:center;padding:0 12px;font-family:Share Tech Mono,monospace;font-size:12px;display:flex;position:absolute;inset:0}.tools{min-height:var(--tools-min-h);box-sizing:border-box;justify-content:var(--tools-just);gap:var(--tools-gap);padding:var(--tools-pad);background-color:#f4f4ef;background-image:linear-gradient(#0a0a0f09 1px,#0000 1px),linear-gradient(90deg,#0a0a0f09 1px,#0000 1px);background-size:50px 50px,50px 50px;border-top:1px solid #00aa6959;flex-direction:column;display:flex;overflow:hidden}.tools__row{box-sizing:border-box;will-change:transform;width:100vw;text-align:var(--word-anchor);padding:0 2vw}.tools__row--1{transform:translateX(var(--t1x))}.tools__row--3{transform:translateX(var(--t3x))}.tools__word{white-space:nowrap;letter-spacing:.01em;color:#0a0a0f;text-shadow:1.5px 0 #ff00ff2e,-1.5px 0 #00d4ff2e;font-family:Orbitron,monospace;font-weight:900;line-height:.95;display:inline-block}#bld-word{font-size:var(--bld-fs)}#exp-word{font-size:var(--exp-fs)}.tools__word--e2e{font-size:var(--e2e-fs)}.tools__marquee-wrap{width:100vw;position:relative}.tools__marquee{white-space:nowrap;transform:translateX(var(--t2x));will-change:transform;display:inline-flex}.tools__unit{align-items:center;gap:3vw;padding-right:3vw;display:inline-flex}.tools__grid{grid-template-columns:repeat(10, var(--slot-sz));grid-auto-rows:var(--slot-sz);gap:var(--slot-gap);flex:none;display:grid}.tools__cell{background:#0a0a0f0a;border:1px solid #00aa6980;position:relative}.slot{display:block;position:absolute;inset:0;overflow:hidden}.slot img{object-fit:contain;width:100%;height:100%;display:block}.slot--cover img{object-fit:cover}.slot__label{box-sizing:border-box;text-align:center;letter-spacing:.12em;color:#009e638c;text-transform:uppercase;justify-content:center;align-items:center;padding:6px;font-family:Share Tech Mono,monospace;font-size:10px;line-height:1.4;display:flex;position:absolute;inset:0}.slot--filled .slot__label{display:none}.sect{box-sizing:border-box;background-color:#f4f4ef;background-image:linear-gradient(#0a0a0f09 1px,#0000 1px),linear-gradient(90deg,#0a0a0f09 1px,#0000 1px);background-size:50px 50px,50px 50px;border-top:1px solid #00aa6959;padding:96px 4vw 110px}.sect__cmd{letter-spacing:.3em;color:#009e63;font-family:Share Tech Mono,monospace;font-size:14px}.sect__title{letter-spacing:.02em;text-transform:uppercase;color:#0a0a0f;margin:18px 0 0;font-family:Orbitron,monospace;font-size:clamp(34px,5vw,68px);font-weight:900}.sect__title span{color:#00b56a}.work__list{gap:var(--proj-gap);flex-direction:column;margin-top:72px;display:flex}.proj{grid-template-columns:var(--proj-cols);align-items:center;gap:4vw;display:grid}.proj__body{min-width:0}.proj__num{letter-spacing:.25em;color:#9aa3af;font-family:Share Tech Mono,monospace;font-size:13px}.proj__name{letter-spacing:.02em;text-transform:uppercase;color:#0a0a0f;margin:14px 0 0;font-family:Orbitron,monospace;font-size:clamp(22px,2.4vw,34px);font-weight:800}.proj__tags{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.proj__tag{letter-spacing:.14em;color:#0a0a0f;border:1px solid #0a0a0f40;padding:6px 12px;font-family:Share Tech Mono,monospace;font-size:11px}.proj__desc{color:#454e5c;text-wrap:pretty;max-width:520px;margin:20px 0 0;font-size:15px;line-height:1.8}.proj__link{margin-top:26px}.proj__shot{aspect-ratio:16/10;background:#f4f5f7;border:1px solid #00aa6973;position:relative}.proj__shot .frame__c{pointer-events:none;border-color:#00b56a}:root{--exp-ml:34px;--skill-cols:repeat(3, 1fr);--foot-cols:1.2fr 1fr;--case-meta-cols:repeat(4, 1fr);--metric-cols:repeat(auto-fit, minmax(240px, 1fr));--case-body-cols:1fr 1fr;--shot-w:calc(50% - 2vw);--feat-cols:repeat(auto-fill, minmax(240px, 1fr));--prose-w:100%}@media (width<=899px){.frame__label{top:30%}.warn{padding:8px 10px}.warn__stripe{height:4px}.warn__title{letter-spacing:.14em;margin-top:7px;font-size:9.5px}.warn__cmd{gap:6px;margin-top:4px;font-size:9.5px}.warn__cursor{width:6px;height:11px}:root{--skill-cols:1fr;--foot-cols:1fr;--case-meta-cols:1fr 1fr;--metric-cols:1fr;--case-body-cols:1fr;--shot-w:100%;--feat-cols:1fr 1fr;--prose-w:100%}}@keyframes navGlitch{0%,to{transform:translate(0)skew(0)}20%{transform:translate(-2px,1px)skew(-8deg)}40%{transform:translate(2px,-1px)skew(6deg)}60%{transform:translate(-1px,1px)skew(-4deg)}80%{transform:translate(1px)skew(3deg)}}.nav__logo{cursor:pointer;display:block}.nav__links a:hover,body.nav-on-white .nav__links a:hover{color:#00d977}.nav__links>a,.nav__contact>a{display:inline-block}.nav__contact{display:inline-block;position:relative}.nav__dd{z-index:80;background:#050508;border:1px solid #00ff8880;flex-direction:column;min-width:220px;display:none;position:absolute;top:calc(100% + 14px);right:0;box-shadow:0 0 18px #00ff8840}.nav__dd.is-open{display:flex}.nav__dd a{letter-spacing:.14em;color:#0f8;padding:13px 18px;font-family:Share Tech Mono,monospace;font-size:12px;display:block}.nav__dd a+a{border-top:1px solid #0f83}.nav__dd a:hover{color:#0f8;background:#00ff881f}.wipe{z-index:50;pointer-events:none;background:#f4f4ef radial-gradient(circle at 50% 42%,#009e630f,#0000 55%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;transform:translateY(-101vh)}.wipe.is-animating{transition:transform .8s cubic-bezier(.87,0,.13,1)}.wipe--cover{transform:translateY(0)}.wipe--bottom{transform:translateY(101vh)}.wipe__logo{filter:invert();width:232px;max-width:55vw}.wipe__squares{gap:14px;margin-top:46px;display:flex}.wipe__line{letter-spacing:.06em;color:#009e63;align-items:center;gap:10px;height:20px;margin-top:46px;font-family:Share Tech Mono,monospace;font-size:14px;display:flex}.wipe__cursor{background:#009e63;width:9px;height:16px;animation:1s step-end infinite blink}.modal{z-index:90;box-sizing:border-box;backdrop-filter:blur(4px);background:#050508b8;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal.is-open{display:flex}.modal__win{background:#050508;border:1px solid #00ff888c;width:min(560px,94vw);box-shadow:0 0 20px #00ff884d,0 0 60px #00ff881f}.modal__bar{border-bottom:1px solid #00ff8840;align-items:center;gap:8px;padding:12px 16px;display:flex}.modal__dot{border-radius:50%;width:10px;height:10px}.modal__dot--r{background:#f36}.modal__dot--y{background:#f7c948}.modal__dot--g{background:#0f8}.modal__path{letter-spacing:.12em;color:#6b7280;margin-left:10px;font-family:Share Tech Mono,monospace;font-size:12px}.modal__x{color:#6b7280;margin-left:auto;font-family:Share Tech Mono,monospace;font-size:14px}.modal__x:hover{color:#f36}.modal__body{padding:26px 26px 30px;font-family:Share Tech Mono,monospace}.modal__pane{display:none}.modal__pane.is-active{display:block}.modal__title{letter-spacing:.1em;color:#0f8;text-shadow:0 0 8px #00ff8880;font-size:15px}.modal__cmd{color:#e0e0e0;font-size:14px}.modal__sending{color:#6b7280;align-items:center;gap:10px;margin-top:16px;font-size:13px;display:flex}.modal__cursor{background:#0f8;width:9px;height:15px;animation:1s step-end infinite blink;box-shadow:0 0 8px #0f8c}.modal__ok{color:#0f8;text-shadow:0 0 8px #00ff8880;margin-top:20px;font-size:15px}.modal__okmsg{color:#0f8;margin-top:8px;font-size:14px}.field{align-items:center;gap:12px;margin-top:20px;display:flex}.field:first-of-type{margin-top:28px}.field--top{align-items:flex-start}.field__label{color:#6b7280;flex:none;width:74px;font-size:14px}.field__input{color:#0f8;caret-color:#0f8;background:0 0;border:none;border-bottom:1px solid #00ff884d;outline:none;flex:1;min-width:0;padding:6px 2px;font-family:Share Tech Mono,monospace;font-size:14px}.field__input:focus{border-bottom-color:#0f8}.field__input--area{resize:none;border:1px solid #00ff884d;padding:10px}.field__input--area:focus{border-color:#0f8}.form-err{letter-spacing:.06em;color:#f36;background:#ff336614;border:1px solid #ff336680;margin-top:24px;padding:10px 14px;font-family:Share Tech Mono,monospace;font-size:13px;display:none}.form-err.is-shown{display:block}.hp{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.modal__fail{color:#f36;text-shadow:0 0 8px #ff336673;margin-top:20px;font-size:15px}.btn-term{letter-spacing:.18em;color:#0a0a0f;background:#0f8;border:none;margin-top:28px;padding:12px 26px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700;display:inline-block}.btn-term:hover{color:#0a0a0f;filter:brightness(1.12)drop-shadow(0 0 8px #00ff88b3)}.btn-term--ghost{color:#0f8;background:0 0;border:2px solid #0f8;padding:10px 24px}.btn-term--ghost:hover{color:#0a0a0f;filter:none;background:#0f8}.resume{z-index:90;box-sizing:border-box;backdrop-filter:blur(6px);background:#050508b8;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.resume.is-open{display:flex}.resume__inner{flex-direction:column;align-items:center;gap:18px;max-height:100%;display:flex}.resume__sheet{aspect-ratio:210/297;background:#f4f4ef;border:1px solid #00ff888c;height:min(74vh,720px);position:relative;box-shadow:0 0 24px #00ff884d,0 0 70px #00ff881f}.resume__sheet .frame__c{pointer-events:none;border-color:#0f8}.resume__actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.resume__actions .btn-term{margin-top:0}.exp__lead{height:40px;margin-top:4px;position:relative}.exp__spine,.exp__row-spine{background:#00b56a;width:2px;position:absolute;top:0;bottom:0;left:10px;box-shadow:0 0 8px #00ff8873}.exp__row{padding-bottom:18px;position:relative}.exp__row:last-child{padding-bottom:0}.exp__row:last-child .exp__row-spine{height:34px;bottom:auto}.exp__tick{background:#00b56ab3;width:24px;height:2px;position:absolute;top:33px;left:10px}.exp__box{margin-left:var(--exp-ml);background:#fff6;border:1px solid #00aa6973}.exp__head{color:#0a0a0f;align-items:center;gap:18px;padding:20px 24px;display:flex}.exp__head:hover{color:#009e63}.exp__role{letter-spacing:.06em;text-transform:uppercase;flex:1;min-width:0;font-family:Orbitron,monospace;font-size:clamp(13px,1.4vw,18px);font-weight:800}.exp__when{letter-spacing:.14em;color:#9aa3af;font-family:Share Tech Mono,monospace;font-size:12px}.exp__ind{color:#009e63;font-family:Share Tech Mono,monospace;font-size:17px}.exp__panel{max-height:0;transition:max-height .45s cubic-bezier(.4,0,.2,1);overflow:hidden}.exp__panel.is-open{max-height:340px}.exp__panel p{color:#454e5c;text-wrap:pretty;margin:0;padding:0 24px 22px 62px;font-size:14px;line-height:1.8}.skills__grid{grid-template-columns:var(--skill-cols);gap:22px;margin-top:60px;display:grid}.skill{background:#fff6;border:1px solid #00aa6973;padding:26px;transition:all .18s}.skill:hover{border-color:#00b56a;transform:translateY(-3px);box-shadow:0 0 14px #00ff8840}.skill__icon{color:#009e63;background:#00b56a14;border:1px solid #00aa698c;justify-content:center;align-items:center;width:46px;height:46px;font-family:Share Tech Mono,monospace;font-size:15px;display:flex}.skill__name{letter-spacing:.06em;text-transform:uppercase;color:#0a0a0f;margin:18px 0 0;font-family:Orbitron,monospace;font-size:16px;font-weight:800}.skill__desc{color:#454e5c;text-wrap:pretty;margin:12px 0 0;font-size:13.5px;line-height:1.75}.foot{box-sizing:border-box;background-color:#0a0a0f;background-image:linear-gradient(#00ff8808 1px,#0000 1px),linear-gradient(90deg,#00ff8808 1px,#0000 1px);background-size:50px 50px,50px 50px;border-top:1px solid #00ff8873;padding:70px 4vw 34px}.foot__top{grid-template-columns:var(--foot-cols);align-items:start;gap:44px;display:grid}.foot__logo{height:34px}.foot__tag{letter-spacing:.04em;color:#6b7280;max-width:380px;margin:20px 0 0;font-family:Share Tech Mono,monospace;font-size:12.5px;line-height:1.8}.foot__contact{flex-direction:column;gap:14px;display:flex}.foot__cmd{letter-spacing:.24em;color:#6b7280;font-family:Share Tech Mono,monospace;font-size:12px}.foot__contact a{letter-spacing:.05em;color:#0f8;font-family:Share Tech Mono,monospace;font-size:13.5px}.foot__contact a:hover{color:#00d977;text-shadow:0 0 8px #00ff8880}.foot__bar{letter-spacing:.22em;color:#2a2a3a;border-top:1px solid #00ff882e;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:56px;padding-top:22px;font-family:Share Tech Mono,monospace;font-size:11px;display:flex}.case{box-sizing:border-box;background-color:#f4f4ef;background-image:linear-gradient(#0a0a0f09 1px,#0000 1px),linear-gradient(90deg,#0a0a0f09 1px,#0000 1px);background-size:50px 50px,50px 50px;min-height:100vh;padding:120px 6vw 90px}.case__back{letter-spacing:.18em;color:#009e63;align-items:center;gap:10px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700;display:inline-flex}.case__back:hover{color:#0a0a0f}.case__arrow{font-family:Share Tech Mono,monospace}.case__cmd{letter-spacing:.3em;color:#009e63;margin-top:36px;font-family:Share Tech Mono,monospace;font-size:14px}.case__title{letter-spacing:.02em;text-transform:uppercase;color:#0a0a0f;margin:16px 0 0;font-family:Orbitron,monospace;font-size:clamp(34px,6vw,84px);font-weight:900}.case__tags{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.case__tags span{letter-spacing:.14em;color:#0a0a0f;border:1px solid #0a0a0f40;padding:6px 12px;font-family:Share Tech Mono,monospace;font-size:11px}.case__meta{grid-template-columns:var(--case-meta-cols);background:#0a0a0f2e;border:1px solid #0a0a0f2e;gap:1px;margin-top:48px;display:grid}.case__cell{background:#f4f4ef;padding:18px 20px}.case__k{letter-spacing:.22em;color:#9aa3af;font-family:Share Tech Mono,monospace;font-size:11px}.case__v{letter-spacing:.06em;color:#0a0a0f;margin-top:8px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700}.case__metrics{grid-template-columns:var(--metric-cols);background:#0a0a0f2e;border:1px solid #0a0a0f2e;border-top:2px solid #00b56a;gap:1px;margin-top:-1px;display:grid}.metric{background:#f4f4ef;padding:22px 20px 24px}.metric__k{letter-spacing:.14em;color:#0a0a0f;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.metric__v{color:#009e63;text-shadow:0 0 14px #00ff8840;margin-top:14px;font-family:Orbitron,monospace;font-size:clamp(28px,3vw,46px);font-weight:900;line-height:1}.metric__d{color:#6b7280;margin-top:14px;font-family:Share Tech Mono,monospace;font-size:12px;line-height:1.7}.case__hero{aspect-ratio:16/8;background:#eceee7;border:1px solid #00aa6973;margin-top:56px;position:relative}.outs{max-width:var(--prose-w);margin:22px 0 0;padding:0;list-style:none}.outs li{color:#454e5c;text-wrap:pretty;margin-bottom:9px;padding-left:22px;font-size:14.5px;line-height:1.75;position:relative}.outs li:before{content:"-";color:#009e63;font-family:Share Tech Mono,monospace;position:absolute;left:4px}.lock{z-index:3;box-sizing:border-box;backdrop-filter:blur(3px);letter-spacing:.2em;color:#0f8;clip-path:polygon(0 5px,5px 0,calc(100% - 5px) 0,100% 5px,100% calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,0 calc(100% - 5px));background:#0a0a0fd1;border:1px solid #00ff8873;align-items:center;gap:7px;padding:7px 11px;font-family:Share Tech Mono,monospace;font-size:11px;display:inline-flex;position:absolute;top:10px;left:10px}.lock__ico{flex:none;width:12px;height:12px;display:block}.case__tags .lock--inline{color:#0f8;letter-spacing:.2em;background:#0a0a0f;border:1px solid #0a0a0f;padding:8px 13px;font-size:11px;position:static}.lock__note{letter-spacing:.03em;color:#5b6472;max-width:620px;margin:18px 0 0;font-family:Share Tech Mono,monospace;font-size:12.5px;line-height:1.7}.marks{flex-wrap:wrap;gap:14px;margin:22px 0 0;padding:0;list-style:none;display:flex}.marks__cell{box-sizing:border-box;background:#0a0a0f0a;border:1px solid #00aa6973;place-items:center;width:74px;height:74px;transition:border-color .16s,background .16s;display:grid}.marks__cell:hover{background:#ffffffe6;border-color:#00b56a}.marks__cell img{object-fit:contain;width:40px;height:40px;display:block}.marks__cell--text{letter-spacing:.01em;color:#1c2531;text-align:center;text-wrap:balance;width:auto;min-width:74px;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:700;line-height:1.35}.case__h--sub{margin-top:54px}.feat{grid-template-columns:var(--feat-cols);gap:14px;margin:22px 0 0;padding:0;list-style:none;display:grid}.feat__card{box-sizing:border-box;letter-spacing:.01em;color:#2b333f;text-wrap:balance;clip-path:polygon(0 8px,8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%);background:#ffffff8c;border:1px solid #00aa6973;align-items:center;min-height:84px;padding:18px 20px;font-family:JetBrains Mono,monospace;font-size:13.5px;line-height:1.55;transition:border-color .16s,background .16s,color .16s;display:flex}.feat__card:hover{color:#0a0a0f;background:#fffffff2;border-color:#00b56a}.stack{letter-spacing:.01em;color:#1c2531;flex-wrap:wrap;align-items:baseline;margin:22px 0 0;padding:0;font-family:JetBrains Mono,monospace;font-size:14.5px;font-weight:700;list-style:none;display:flex}.stack li{align-items:baseline;display:inline-flex}.stack li:not(:last-child):after{content:"·";color:#00b56a;margin:0 12px;font-weight:400}.shots{margin-top:60px}.shots__track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;gap:4vw;display:flex;overflow-x:auto}.shots__track::-webkit-scrollbar{display:none}.shots__track:focus-visible{outline-offset:6px;outline:2px solid #009e63}.shots__item{flex:0 0 var(--shot-w);scroll-snap-align:center}.shots__item .slot img{object-fit:contain}.shots__item{background:#eceee7}.shots__open{z-index:2;cursor:zoom-in;background:0 0;border:0;padding:0;position:absolute;inset:0}.shots__open:focus-visible{outline-offset:4px;outline:2px solid #009e63}.shots__item:hover .shots__open{background:#00b56a14}.lb{z-index:95;box-sizing:border-box;backdrop-filter:blur(6px);background:#050508eb;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(8px,2vw,26px);padding:clamp(14px,3vw,40px);display:grid;position:fixed;inset:0}.lb[hidden]{display:none}.lb__img{object-fit:contain;border:1px solid #00ff8847;grid-column:2;justify-self:center;max-width:100%;max-height:calc(100vh - clamp(28px,6vw,80px) - 46px);display:block}.lb__bar{letter-spacing:.2em;color:#0f8;justify-content:space-between;align-items:center;padding:14px clamp(14px,3vw,26px);font-family:Share Tech Mono,monospace;font-size:12px;display:flex;position:absolute;top:0;left:0;right:0}.lb__x{cursor:pointer;letter-spacing:.16em;color:#0f8;background:0 0;border:0;padding:6px 4px;font-family:Share Tech Mono,monospace;font-size:13px}.lb__x:hover{color:#fff}.lb__nav{z-index:1;color:#0f8;cursor:pointer;clip-path:polygon(0 6px,6px 0,calc(100% - 6px) 0,100% 6px,100% calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,0 calc(100% - 6px));background:#0a0a0fb3;border:1px solid #0f86;flex:none;width:46px;height:46px;font-family:Share Tech Mono,monospace;font-size:17px;line-height:1;transition:background .15s,color .15s}.lb__nav:hover:not([disabled]){color:#0a0a0f;background:#0f8}.lb__nav[disabled]{opacity:.25;cursor:default}.lb__nav--prev{grid-column:1}.lb__nav--next{grid-column:3}.lb__x:focus-visible,.lb__nav:focus-visible{outline-offset:3px;outline:2px solid #0f8}@media (width<=700px){.lb{grid-template-columns:1fr;padding:52px 10px 86px}.lb__img{grid-column:1;max-width:100%;max-height:calc(100dvh - 150px)}.lb__nav{position:absolute;bottom:20px}.lb__nav--prev{right:calc(50% + 8px)}.lb__nav--next{left:calc(50% + 8px)}}.shots__ui{justify-content:center;align-items:center;gap:18px;margin-top:22px;display:flex}.shots__nav{color:#0a0a0f;cursor:pointer;clip-path:polygon(0 5px,5px 0,calc(100% - 5px) 0,100% 5px,100% calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,0 calc(100% - 5px));background:0 0;border:2px solid #0a0f148c;flex:none;width:38px;height:38px;font-family:Share Tech Mono,monospace;font-size:15px;line-height:1;transition:background .15s,color .15s,border-color .15s}.shots__nav:hover:not([disabled]){color:#f4f4ef;background:#0a0a0f;border-color:#0a0a0f}.shots__nav[disabled]{opacity:.3;cursor:default}.shots__nav:focus-visible{outline-offset:3px;outline:2px solid #009e63}.shots__dots{align-items:center;gap:9px;display:flex}.shots__dot{cursor:pointer;background:0 0;border:1px solid #0a0f1473;flex:none;width:9px;height:9px;padding:0;transition:background .15s,border-color .15s,transform .15s}.shots__dot.is-on{background:#00b56a;border-color:#00b56a;transform:scale(1.25)}.shots__dot:focus-visible{outline-offset:3px;outline:2px solid #009e63}@media (prefers-reduced-motion:reduce){.shots__track{scroll-behavior:auto}}.case__shot{aspect-ratio:16/10;background:#eceee7;border:1px solid #00aa6973;position:relative}.case__hero .frame__c,.case__shot .frame__c{pointer-events:none;border-color:#00b56a}.case__body{grid-template-columns:var(--case-body-cols);gap:4vw;margin-top:70px;display:grid}.case__num{letter-spacing:.25em;color:#9aa3af;font-family:Share Tech Mono,monospace;font-size:13px}.case__h{letter-spacing:.02em;text-transform:uppercase;color:#0a0a0f;margin:10px 0 0;font-family:Orbitron,monospace;font-size:clamp(18px,1.8vw,26px);font-weight:800}.case__p{color:#454e5c;text-wrap:pretty;margin:14px 0 0;font-size:15px;line-height:1.85}.case__solution{margin-top:70px}.case__solution>.case__p,.case__notes>p{max-width:var(--prose-w)}.case__cta{flex-wrap:wrap;align-items:center;gap:26px;margin-top:70px;display:flex}.btn--case:hover{color:#0a0a0f;filter:drop-shadow(0 0 6px #00c87899)brightness(1.05)}.case__cta .btn--outline:hover{color:#f4f4ef;background:#0a0a0f}.btn__arrow{font-family:Share Tech Mono,monospace}.nav__links button,.nav__dd button,.nav__cta,.btn-term,.btn{line-height:inherit;text-align:inherit;cursor:pointer;-webkit-appearance:none;appearance:none}.nav__links button,.nav__dd button{background:0 0;border:none}.nav__links button{letter-spacing:.22em;color:#6b7280;padding:0;font-family:Share Tech Mono,monospace;font-size:13px;transition:color .45s}.nav__links button:hover{color:#00d977}body.nav-on-white .nav__links button{color:#4d5561}body.nav-on-white .nav__links button:hover{color:#00d977}.nav__dd button{letter-spacing:.14em;color:#0f8;text-align:left;width:100%;padding:13px 18px;font-family:Share Tech Mono,monospace;font-size:12px;display:block}.nav__dd button+button{border-top:1px solid #0f83}.nav__dd button:hover{color:#0f8;background:#00ff881f}.nav__links button:focus-visible,.nav__dd button:focus-visible,.nav__cta:focus-visible,.btn-term:focus-visible,.btn:focus-visible,.nav__logo:focus-visible{outline-offset:3px;outline:2px solid #0f8}body.nav-on-white .nav__links button:focus-visible{outline-color:#009e63}button.exp__head{text-align:left;width:100%}button.exp__head:focus-visible{outline-offset:-2px;outline:2px solid #009e63}.btn[disabled]{opacity:.45;cursor:not-allowed}.case__notes{margin-top:34px}.case__notes p{color:#454e5c;text-wrap:pretty;margin:0 0 18px;font-size:15px;line-height:1.85}.case__notes h3{letter-spacing:.08em;text-transform:uppercase;color:#0a0a0f;margin:34px 0 0;font-family:Orbitron,monospace;font-size:15px;font-weight:800}.case__notes ul{margin:14px 0 0;padding-left:0;list-style:none}.case__notes li{color:#454e5c;text-wrap:pretty;margin-bottom:9px;padding-left:22px;font-size:14.5px;line-height:1.75;position:relative}.case__notes li:before{content:"-";color:#009e63;font-family:Share Tech Mono,monospace;position:absolute;left:4px}.case__notes h3+p{margin-top:14px}
