.zone{position:relative;border:1px solid var(--clr-ash);padding:var(--space-3);cursor:pointer;overflow:hidden;transition:border-color .1s var(--ease-snap);display:flex;flex-direction:column;justify-content:flex-end;min-height:0;text-align:left;background:transparent;font:inherit;color:inherit;width:100%}.zone:before{content:"";position:absolute;inset:0;background:var(--noise);opacity:0;transition:opacity .2s ease;pointer-events:none}.zone:hover{border-color:var(--clr-bone)}.zone:hover:before{opacity:1}.zone__ghost-number{position:absolute;top:-.1em;right:var(--space-2);font-family:var(--font-display);font-weight:700;font-size:clamp(4rem,8vw,8rem);line-height:1;color:var(--clr-bone);opacity:.04;pointer-events:none;transition:opacity .3s ease;-webkit-user-select:none;user-select:none}.zone:hover .zone__ghost-number{opacity:.08}.zone__content{position:relative;z-index:1}.zone__title{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--clr-bone);line-height:1.2;letter-spacing:-.02em;margin-bottom:.25em}.zone__subtitle{color:var(--clr-ghost)}.zone__badge,.zone__subtitle{font-size:var(--text-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.zone__badge{color:var(--clr-signal);border:1px solid var(--clr-signal);padding:2px 6px;z-index:2;white-space:nowrap;align-self:flex-start;margin-bottom:auto}.zone__indicator{position:absolute;top:var(--space-2);right:var(--space-2);width:8px;height:8px;background:var(--clr-signal);opacity:0;transition:opacity .15s var(--ease-snap)}.zone:hover .zone__indicator{opacity:1}@media (max-width:768px){.zone{padding:var(--space-2);min-height:80px}.zone__ghost-number{font-size:3rem}.zone__title{font-size:var(--text-base)}}.landing{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-8) var(--space-4) var(--space-6);opacity:0}.landing--visible{opacity:1}.landing--visible .zone{animation:zoneReveal .5s var(--ease-explosive) both}.landing--visible .zone:first-child{animation-delay:.05s}.landing--visible .zone:nth-child(2){animation-delay:.1s}.landing--visible .zone:nth-child(3){animation-delay:.15s}.landing--visible .zone:nth-child(4){animation-delay:.2s}.landing--visible .zone:nth-child(5){animation-delay:.25s}.landing--visible .zone:nth-child(6){animation-delay:.3s}.landing--visible .zone:nth-child(7){animation-delay:.35s}.landing--visible .zone:nth-child(8){animation-delay:.4s}@keyframes zoneReveal{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.landing__ghost-initials{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-display);font-weight:700;font-size:clamp(20rem,40vw,40rem);line-height:1;color:var(--clr-bone);opacity:.02;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.landing__connectors{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.landing__connectors line{stroke:var(--clr-ash);stroke-width:.15;stroke-dasharray:2 2}.landing__grid{position:relative;z-index:1;display:grid;width:100%;max-width:1100px;grid-gap:2px;gap:2px;grid-template-columns:repeat(4,1fr);grid-template-rows:auto auto auto auto;grid-template-areas:"about    about    about    about" "p0       p0       p1       p1" "p2       p3       p3       p4" "skills   skills   contact  contact"}.landing__skills-preview{display:flex;flex-wrap:wrap;grid-gap:4px;gap:4px;margin-top:var(--space-1)}.landing__skill-tag{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border:1px solid var(--clr-ash);color:var(--clr-ghost);white-space:nowrap}.landing__skill-tag--more{border-color:var(--clr-signal);color:var(--clr-signal)}.landing__status{margin-top:var(--space-4);display:flex;align-items:center;grid-gap:var(--space-2);gap:var(--space-2);z-index:1}.landing__status-item{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--clr-ghost)}.landing__status-divider{width:1px;height:12px;background:var(--clr-ash)}@media (max-width:768px){.landing{padding:var(--space-8) var(--space-2) var(--space-8);justify-content:flex-start}.landing__grid{grid-template-columns:1fr 1fr;grid-template-areas:"about   about" "p0      p1" "p2      p3" "p4      skills" "contact contact";grid-gap:var(--space-1);gap:var(--space-1)}.landing__ghost-initials{font-size:12rem}.landing__connectors{display:none}}@media (max-width:480px){.landing{padding:var(--space-6) var(--space-1) var(--space-4)}.landing__grid{grid-template-columns:1fr;grid-template-areas:"about" "p0" "p1" "p2" "p3" "p4" "skills" "contact"}}.focused{position:absolute;inset:0;background:var(--clr-void);display:flex;flex-direction:column;align-items:center;overflow-y:auto;overflow-x:hidden;z-index:10}.focused__noise{position:fixed;inset:0;background:var(--noise);opacity:.03;pointer-events:none;z-index:0}.focused__back{position:fixed;top:var(--space-3);left:var(--space-3);display:flex;align-items:center;grid-gap:var(--space-1);gap:var(--space-1);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:-.03em;color:var(--clr-bone);background:none;cursor:pointer;z-index:20;transition:color .1s var(--ease-snap);padding:var(--space-1) var(--space-2);min-width:44px;min-height:44px;border:1px solid var(--clr-ash)}.focused__back:focus{outline:none}.focused__back:focus-visible,.focused__back:hover{border-color:var(--clr-signal)}.focused__back:hover{color:var(--clr-signal)}.focused__back-arrow{font-size:var(--text-base);transition:transform .15s var(--ease-snap)}.focused__back:hover .focused__back-arrow{transform:translateX(-2px)}.focused__back-label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em}.focused__content{position:relative;z-index:1;width:100%;max-width:760px;padding:var(--space-8) var(--space-4) var(--space-6);min-height:100vh;display:flex;flex-direction:column;justify-content:center}.focused__animate{animation:focusedReveal .5s var(--ease-explosive) both}.focused__animate:first-child{animation-delay:.35s}.focused__animate:nth-child(2){animation-delay:.43s}.focused__animate:nth-child(3){animation-delay:.51s}.focused__animate:nth-child(4){animation-delay:.59s}.focused__animate:nth-child(5){animation-delay:.67s}.focused__animate:nth-child(6){animation-delay:.75s}.focused__animate:nth-child(7){animation-delay:.83s}@keyframes focusedReveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.focused__label{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--clr-signal);margin-bottom:var(--space-2);border-bottom:1px solid var(--clr-ash);padding-bottom:var(--space-1)}.focused__hero-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-hero);line-height:.95;letter-spacing:-.03em;text-transform:uppercase;color:var(--clr-bone);margin-bottom:var(--space-3)}.focused__role{font-size:var(--text-base);color:var(--clr-ghost);margin-bottom:var(--space-4);position:relative;display:inline-block}.focused__role:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:1px;background:var(--clr-signal);opacity:.3}.focused__description{font-size:var(--text-sm);line-height:1.65;color:var(--clr-ghost);max-width:540px;margin-bottom:var(--space-3)}.focused__actions{display:flex;align-items:center;grid-gap:var(--space-3);gap:var(--space-3)}.focused__social-link{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--clr-ash);color:var(--clr-ghost);transition:border-color .1s var(--ease-snap),color .1s var(--ease-snap)}.focused__social-link:hover{border-color:var(--clr-signal);color:var(--clr-signal)}.focused__project-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);line-height:1.1;letter-spacing:-.02em;color:var(--clr-bone);margin-bottom:var(--space-2)}.focused__stack{display:flex;flex-wrap:wrap;grid-gap:6px;gap:6px;margin-bottom:var(--space-3)}.focused__stack-item{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border:1px solid var(--clr-ash);color:var(--clr-ghost)}.focused__screenshots{display:flex;grid-gap:var(--space-2);gap:var(--space-2);margin-bottom:var(--space-3);overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--clr-ash) transparent}.focused__screenshot-frame{flex-shrink:0;border:1px solid var(--clr-ash);transition:border-color .15s var(--ease-snap);position:relative;overflow:hidden}.focused__screenshot-frame:hover{border-color:var(--clr-bone)}.focused__screenshot-img{display:block;height:clamp(140px,22vh,240px);width:auto;object-fit:contain}.focused__screenshot-placeholder{display:flex;align-items:center;justify-content:center;width:100%;min-width:300px;height:200px;border:1px solid var(--clr-ash)}.focused__screenshot-placeholder span{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--clr-ghost);opacity:.5}@media (max-width:768px){.focused__screenshot-img{height:260px}}.focused__skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:2px;gap:2px;margin-top:var(--space-2)}.focused__skill-item{font-family:var(--font-mono);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-2) var(--space-3);border:1px solid var(--clr-ash);color:var(--clr-ghost);transition:border-color .1s var(--ease-snap),color .1s var(--ease-snap)}.focused__skill-item:hover{border-color:var(--clr-signal);color:var(--clr-signal)}.focused__skill-cascade{animation:skillSlotIn .35s var(--ease-explosive) both}@keyframes skillSlotIn{0%{opacity:0;transform:translateY(12px) scaleY(.8);border-color:transparent}60%{opacity:1;transform:translateY(-2px) scaleY(1.02);border-color:var(--clr-signal)}to{opacity:1;transform:translateY(0) scaleY(1);border-color:var(--clr-ash)}}.focused__inner--contact{text-align:center;display:flex;flex-direction:column;align-items:center}.focused__contact-heading{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,6vw,3.5rem);line-height:1.1;letter-spacing:-.02em;color:var(--clr-bone);margin-bottom:var(--space-6)}@media (max-width:768px){.focused__content{padding:var(--space-8) var(--space-3) var(--space-6);justify-content:flex-start;padding-top:var(--space-12)}.focused__hero-name{font-size:clamp(2.5rem,10vw,4rem)}.focused__project-name{font-size:var(--text-xl)}.focused__skills-grid{grid-template-columns:repeat(2,1fr)}.focused__actions{flex-wrap:wrap}}.resume-overlay{position:fixed;inset:0;background:var(--clr-void);z-index:100;display:flex;flex-direction:column;animation:resumeFadeIn .3s var(--ease-explosive) both}@keyframes resumeFadeIn{0%{opacity:0}to{opacity:1}}.resume-overlay__noise{position:fixed;inset:0;background:var(--noise);opacity:.03;pointer-events:none;z-index:0}.resume-overlay__header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--clr-ash);flex-shrink:0}.resume-overlay__close{display:flex;align-items:center;grid-gap:var(--space-1);gap:var(--space-1);font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--clr-bone);background:none;cursor:pointer;padding:var(--space-1) var(--space-2);min-width:44px;min-height:44px;border:1px solid var(--clr-ash);transition:color .1s var(--ease-snap),border-color .1s var(--ease-snap)}.resume-overlay__close:focus{outline:none}.resume-overlay__close:focus-visible,.resume-overlay__close:hover{border-color:var(--clr-signal)}.resume-overlay__close:hover{color:var(--clr-signal)}.resume-overlay__close-x{font-size:var(--text-lg);line-height:1}.resume-overlay__close-label,.resume-overlay__download{font-size:var(--text-xs)}.resume-overlay__frame{position:relative;z-index:1;flex:1 1;display:flex;align-items:stretch;justify-content:center;padding:var(--space-2);min-height:0}.resume-overlay__pdf{background:#fff}.resume-overlay__fallback,.resume-overlay__pdf{width:100%;max-width:900px;height:100%;border:1px solid var(--clr-ash)}.resume-overlay__fallback{display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--clr-ghost);text-align:center;padding:var(--space-4)}.resume-overlay__fallback a{color:var(--clr-signal)}@media (max-width:768px){.resume-overlay__frame{padding:var(--space-1)}.resume-overlay__header{padding:var(--space-2)}}:root{--clr-void:#0a0a0a;--clr-smoke:#1a1a1a;--clr-ash:#2a2a2a;--clr-signal:#cdff00;--clr-bone:#e8e4de;--clr-ghost:#888;--font-display:"Space Grotesk",sans-serif;--font-body:"Space Grotesk",sans-serif;--font-mono:"Space Mono",monospace;--text-xs:0.6875rem;--text-sm:0.8125rem;--text-base:1rem;--text-lg:1.375rem;--text-xl:2rem;--text-2xl:2.8125rem;--text-hero:clamp(4rem,12vw,8.75rem);--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-6:48px;--space-8:64px;--space-12:96px;--space-16:128px;--ease-explosive:cubic-bezier(0.16,1,0.3,1);--ease-heavy:cubic-bezier(0.7,0,0.3,1);--ease-snap:cubic-bezier(0.5,0,0,1);--ease-drag:cubic-bezier(0.4,0,0.2,1);--noise:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.04'/%3E%3C/svg%3E")}.app{font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;color:var(--clr-ghost);background-color:var(--clr-void);min-height:100vh;width:100vw;overflow-x:hidden;position:relative}.app__header{position:fixed;top:0;left:0;z-index:50;padding:var(--space-3)}.app__logo{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:-.03em;-webkit-user-select:none;user-select:none}.app__logo,.trigger{color:var(--clr-bone)}.trigger{display:inline-flex;align-items:center;justify-content:center;padding:.7em 1.8em;font-family:var(--font-body);font-weight:500;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;background:transparent;border:1px solid var(--clr-ash);cursor:pointer;transition:border-color .1s var(--ease-snap),color .1s var(--ease-snap),background-color 80ms var(--ease-snap),transform 80ms var(--ease-snap);position:relative}.trigger:before{content:"";position:absolute;inset:0;background:var(--noise);opacity:0;transition:opacity .15s ease;pointer-events:none}.trigger:hover{border-color:var(--clr-signal);color:var(--clr-signal)}.trigger:hover:before{opacity:1}.trigger:active{background-color:var(--clr-signal);color:var(--clr-void);transform:scale(.98)}.trigger[aria-disabled=true]{color:#555;border-color:transparent;pointer-events:none}.link{color:var(--clr-bone);transition:color .1s var(--ease-snap);cursor:pointer}.link:hover,.text-signal{color:var(--clr-signal)}.text-bone{color:var(--clr-bone)}.text-ghost{color:var(--clr-ghost)}.text-mono{font-family:var(--font-mono)}.text-display{font-family:var(--font-display);font-weight:700}.uppercase{text-transform:uppercase;letter-spacing:.08em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app__overlay{position:fixed;inset:0;background:var(--clr-void);pointer-events:none;z-index:100;opacity:0;transition:opacity .4s var(--ease-heavy)}.app__overlay--frost{opacity:1}.app__overlay--clear{opacity:0;transition:opacity .4s var(--ease-explosive)}*{padding:0;margin:0;border:0;background-color:inherit;color:inherit;font-family:inherit;font-size:inherit;box-shadow:none;box-sizing:border-box}body,html{height:100%}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}html{font-size:16px}h1,h2,h3,h4{line-height:1.1;color:var(--clr-bone)}ul{list-style-type:none}a{text-decoration:none}button{cursor:pointer}::selection{background:var(--clr-highlight,#cdff00);color:#0a0a0a}:focus{outline:none}:focus-visible{outline:2px solid var(--clr-signal,#cdff00);outline-offset:2px}.skip-link{position:absolute;top:-100%;left:var(--space-3,24px);z-index:200;padding:8px 16px;background:var(--clr-signal,#cdff00);color:var(--clr-void,#0a0a0a);font-family:var(--font-mono,monospace);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.skip-link:focus{top:var(--space-2,16px)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/*# sourceMappingURL=main.f931edf5.chunk.css.map */