@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/instrument-sans-latin-ext-400-normal.1340a9c_t-jc0.woff2)format("woff2"),url(../media/instrument-sans-latin-ext-400-normal.0y8gis6pxqjuo.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/instrument-sans-latin-400-normal.15cmw5t~jabne.woff2)format("woff2"),url(../media/instrument-sans-latin-400-normal.0h2h9rm0~nl_p.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/instrument-sans-latin-ext-600-normal.09sb3g.5wumea.woff2)format("woff2"),url(../media/instrument-sans-latin-ext-600-normal.0hwcdd674cato.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/instrument-sans-latin-600-normal.0.yoon8ncygkw.woff2)format("woff2"),url(../media/instrument-sans-latin-600-normal.0tcv3418vj4vr.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:700;src:url(../media/instrument-sans-latin-ext-700-normal.0.q9_j8ypuhog.woff2)format("woff2"),url(../media/instrument-sans-latin-ext-700-normal.045hxe.3a8h03.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:700;src:url(../media/instrument-sans-latin-700-normal.0k-bjo8vmwf9_.woff2)format("woff2"),url(../media/instrument-sans-latin-700-normal.0jdc3ejhs.1gv.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#020202;--bg-soft:#0a0a0ac2;--bg-panel:#09090914;--font-display:"Instrument Sans";--font-body:"Instrument Sans";--font-mono:"Instrument Sans";--fg:#f5f7fb;--fg-muted:#f5f7fbb8;--fg-soft:#f5f7fb7a;--line:#ffffff12;--line-strong:#ffffff24;--accent:#ffffffe6;--glow:#ffffff2e;--frame-padding:clamp(1rem, 2vw, 1.8rem);--project-frame-gap:clamp(.8rem, 1.5vw, 1.25rem);--content-width:min(1120px, calc(100vw - (var(--frame-padding) * 2)));--panel-width:min(44rem, calc(100vw - (var(--frame-padding) * 2)));--section-top:clamp(4.5rem, 12vh, 8rem);--radius-lg:1.75rem;--radius-md:1.1rem;--shadow-soft:0 32px 80px #0006;--shadow-panel:0 24px 72px #0000005c;--ease-standard:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{background:var(--bg);color:var(--fg);scroll-behavior:smooth;scroll-snap-type:y proximity;scroll-padding-block-start:0}body{min-height:100vh;color:var(--fg);font-family:var(--font-body), sans-serif;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#ffffff1a,#0000 34%),radial-gradient(circle at 80% 20%,#ffffff14,#0000 28%),linear-gradient(#040404 0%,#020202 32%,#010101 100%);margin:0;position:relative;overflow-x:hidden}body:before,body:after{content:"";pointer-events:none;z-index:1;position:fixed;inset:0}body:before{opacity:.22;background-image:linear-gradient(#ffffff13 1px,#0000 1px),linear-gradient(90deg,#ffffff13 1px,#0000 1px);background-size:7.5rem 7.5rem;-webkit-mask-image:radial-gradient(circle,#000 42%,#0000 90%);mask-image:radial-gradient(circle,#000 42%,#0000 90%)}body:after{opacity:.14;mix-blend-mode:screen;background:linear-gradient(#00000005 0%,#ffffff0b 50%,#00000005 100%)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.portfolio-shell{isolation:isolate;position:relative}.intro-backdrop{z-index:2;pointer-events:none;background:#000;position:fixed;inset:0}.scene-frame,.scene-placeholder{z-index:3;pointer-events:none;position:fixed;inset:0}.scene-placeholder{background:radial-gradient(circle at 50% 32%,#ffffff1f,#0000 25%),radial-gradient(circle at 50% 48%,#ffffff0f,#0000 30%)}.page-stage{z-index:4;position:relative}.content-stage-overlay{z-index:4;pointer-events:none;position:fixed;inset:0}.content-stage-overlay__shell{width:min(100%,46rem);margin:0 auto;padding-top:clamp(13.15rem,35vh,23.25rem)}.content-stage-overlay__copy{pointer-events:auto;gap:clamp(2rem,4vh,3rem);width:min(100%,40rem);margin:0 auto;display:grid}.content-stage-overlay__copy p{color:var(--fg-muted);margin:0;font-size:clamp(1rem,1.6vw,1.16rem);line-height:1.65}.content-stage-overlay--top-overlay .content-stage-overlay__shell{width:min(100%,46rem);padding-top:clamp(13.15rem,35vh,23.25rem)}.content-stage-overlay--top-overlay .content-stage-overlay__copy{width:min(100%,40rem)}.site-chrome{inset:var(--frame-padding) var(--frame-padding) auto;z-index:5;pointer-events:none;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:fixed}.scroll-meter-shell{pointer-events:auto;left:var(--frame-padding);right:var(--frame-padding);bottom:var(--frame-padding);pointer-events:none;background:#ffffff14;border-radius:999px;height:.2rem;position:fixed;overflow:hidden}.scroll-meter{transform-origin:0;background:linear-gradient(90deg,#ffffff1a,#fffffff0);width:100%;height:100%;display:block}.scroll-section{min-height:150svh;position:relative}.scroll-section--intro{min-height:168svh}.scroll-section--transform{min-height:0}.scroll-section--content{min-height:148svh}.scroll-section--project{scroll-snap-align:start;scroll-snap-stop:normal;min-height:100svh}.scroll-section--outro{min-height:150svh}.section-sticky{top:var(--section-top);width:var(--content-width);min-height:calc(100svh - (var(--section-top) * .9));justify-content:flex-start;align-items:center;margin:0 auto;padding:clamp(1rem,2vw,1.8rem) 0;display:flex;position:sticky}.section-sticky--center{justify-content:center}.section-sticky--content{width:calc(100vw - (var(--frame-padding) * 2));justify-content:center;align-items:flex-start;max-width:none;min-height:100svh;padding:clamp(1rem,2.2vh,1.4rem) 0 clamp(1.5rem,4vh,2.8rem);top:0}.section-sticky--project{width:100vw;max-width:none;min-height:100svh;padding:var(--project-frame-gap) clamp(2.5rem, 6vw, 6rem);justify-content:center;align-items:center;top:0}.section-sticky--intro{width:calc(100vw - (var(--frame-padding) * 2));max-width:none}.intro-stage{width:100%;min-height:calc(100svh - (var(--section-top) * .75));justify-content:flex-start;align-items:center;display:flex;position:relative}.intro-copy-shell--measure{visibility:hidden;pointer-events:none}.intro-copy{text-align:left;gap:1rem;width:min(40rem,36vw);margin-left:0;padding-left:clamp(.15rem,1vw,.75rem);display:grid;transform:translate(clamp(1.8rem,3vw,2.8rem),clamp(-8.6rem,-13vh,-5rem))}.intro-copy-block{justify-self:start;width:fit-content;max-width:100%}.intro-title,.intro-subtitle{margin:0}.intro-title{font-family:var(--font-display), sans-serif;letter-spacing:-.08em;gap:.15em;font-size:clamp(4.4rem,9vw,8.6rem);font-weight:700;line-height:.82;display:grid}.intro-title--centered{text-align:center;justify-items:center}.intro-subtitle{max-width:16ch;color:var(--fg-muted);font-family:var(--font-display), sans-serif;letter-spacing:-.05em;font-size:clamp(1.8rem,3vw,3rem);font-weight:600;line-height:.95}.intro-subtitle--centered{text-align:center}.intro-note{pointer-events:none;width:fit-content;transition:opacity .26s var(--ease-standard);margin-top:clamp(.2rem,.8vw,.5rem)}.intro-note__text{color:#f5f7fbeb;font-family:var(--font-body), sans-serif;letter-spacing:-.02em;white-space:normal;margin:0;font-size:clamp(.92rem,1.2vw,1.08rem);font-weight:600;line-height:1.25}.transform-stage{width:100%;min-height:calc(100svh - (var(--section-top) * .7))}.project-card{grid-template-columns:fit-content(34rem) fit-content(30.5rem);justify-content:center;align-items:stretch;gap:clamp(1rem,1.65vw,1.45rem);width:auto;height:100%;padding:clamp(1.4rem,2.8vh,2rem) clamp(1rem,1.8vw,1.35rem);display:grid}.project-card__media{border-radius:calc(var(--radius-lg) - .2rem);background:linear-gradient(135deg,#ffffff14,#0000 44%),#ffffff05;border:1px solid #ffffff0b;justify-content:center;align-self:center;align-items:center;width:fit-content;max-width:34rem;min-height:0;display:flex;position:relative;overflow:hidden}.project-card__media:after{content:"";pointer-events:none;background:radial-gradient(circle at 16% 18%,#ffffff1f,#0000 28%),linear-gradient(#00000005,#0003);position:absolute;inset:0}.project-card__media-inner{justify-content:center;align-items:center;width:fit-content;max-width:100%;display:flex;position:relative}.project-card__image-overlay{position:absolute;inset:0}.project-card__image{object-fit:contain;object-position:center;width:auto;max-width:100%;height:auto;max-height:min(70svh,100svh - 9rem);display:block}.project-card__image-overlay{pointer-events:none;opacity:.9;mix-blend-mode:multiply}.project-card__copy{align-content:center;justify-items:center;gap:1.15rem;width:min(100%,30.5rem);min-width:0;min-height:0;padding:clamp(.4rem,1vh,1rem) clamp(.7rem,1vw,.95rem);display:grid}.project-card h2{text-align:left;justify-self:start;max-width:11ch;font-size:clamp(2.9rem,5vw,5.4rem)}.project-card__summary{color:#f5f7fbe0;text-align:left;max-width:30rem;font-size:clamp(.98rem,1.45vw,1.14rem);line-height:1.4}.project-highlights,.project-tags{margin:0;padding:0;list-style:none}.project-card__actions{flex-wrap:wrap;justify-content:center;gap:.7rem;width:min(100%,32rem);display:flex}.project-card__copy .project-stack-toggle{display:none}@media (max-width:1400px){.project-card{grid-template-columns:fit-content(30rem) fit-content(27.5rem);justify-content:center;gap:.95rem}.project-card__copy{align-content:center;gap:.85rem;width:min(100%,27.5rem);padding-block:.2rem}.project-card__media{max-width:30rem}.project-card h2{text-align:left;justify-self:start;max-width:none;font-size:clamp(2.2rem,3.5vw,3.8rem)}.project-card__summary{font-size:clamp(.92rem,1.02vw,1rem);line-height:1.38}.project-body{gap:.7rem}.project-highlights{gap:.55rem}.project-body p,.project-highlight{font-size:.92rem;line-height:1.42}.project-tags{gap:.55rem}.tag{min-height:1.9rem;padding:.52rem .72rem;font-size:.68rem}}@media (max-width:1280px){.section-sticky--project{padding-inline:clamp(1.15rem,3vw,1.8rem)}.panel.project-card{width:min(100%,52rem);max-width:none;height:calc(100svh - (var(--project-frame-gap) * 2) - clamp(2.25rem, 5vh, 4rem))}.project-card{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;gap:.78rem;width:100%;height:100%;display:grid}.project-card__media{justify-self:center;width:fit-content;max-width:100%;min-height:0}.project-card__media-inner{width:fit-content;max-width:100%}.project-card__image{width:auto;max-width:min(100%,42rem);max-height:min(34svh,18rem)}.project-card__copy{align-content:start;justify-self:center;gap:.85rem;width:min(100%,35.5rem);max-width:min(100%,35.5rem);padding:.1rem;overflow-y:auto}.project-card h2{text-align:center;justify-self:center;max-width:10ch;font-size:clamp(2.3rem,8vw,3.6rem)}}.panel{width:min(100%, var(--panel-width));border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg, #ffffff01, transparent 26%), linear-gradient(160deg, #ffffff01, #fff0), var(--bg-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-panel);contain:paint;will-change:transform, opacity;padding:clamp(1.2rem,2vw,1.75rem);position:relative;overflow:hidden;transform:translateZ(0)}.panel.project-card{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(14px);background:linear-gradient(#ffffff01,#0000 22%),linear-gradient(155deg,#0001,#00000004),#02020202;width:fit-content;max-width:min(84vw,1120px);height:auto;padding:clamp(1rem,1.8vw,1.35rem);box-shadow:0 24px 72px #0000004d}.panel.project-card:before{background:linear-gradient(120deg,#0000 0%,#ffffff01 30%,#ffffff07 48%,#ffffff02 66%,#0000 100%)}.panel:before{content:"";pointer-events:none;background:linear-gradient(120deg,#0000 0%,#ffffff08 48%,#0000 100%);position:absolute;inset:0}.panel h2{font-family:var(--font-display), sans-serif;letter-spacing:-.04em;max-width:12ch;margin:0;font-size:clamp(2.35rem,5vw,4.6rem);font-weight:600;line-height:.92}.panel p{max-width:36rem;color:var(--fg-muted);margin:0;font-size:clamp(1rem,1.7vw,1.18rem);line-height:1.6}.panel p+p{margin-top:1rem}.project-tags{flex-wrap:wrap;justify-content:center;gap:.75rem;width:min(100%,32rem);min-width:0;margin-top:.6rem;display:flex}.project-tags--collapsible{transform-origin:top;will-change:height, opacity, transform;overflow:hidden}.tag{border:1px solid var(--line);max-width:100%;min-height:2rem;color:var(--fg-soft);font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;white-space:normal;overflow-wrap:anywhere;text-align:center;background:#ffffff08;border-radius:999px;align-items:center;gap:.45rem;padding:.65rem .9rem;font-size:.68rem;display:inline-flex}.project-headline{text-align:center;gap:.7rem;width:min(100%,32rem);min-width:0;display:grid}.project-body{text-align:left;gap:.85rem;width:min(100%,30.5rem);min-width:0;display:grid}.project-body p{max-width:none;font-size:.95rem;line-height:1.5}.project-highlights{text-align:left;justify-self:center;gap:.72rem;width:min(100%,28.5rem);min-width:0;display:grid}.project-highlight{color:#f5f7fbd1;padding-left:1.1rem;font-size:.92rem;line-height:1.45;position:relative}.project-highlight:before{content:"";background:#ffffffc2;border-radius:999px;width:.38rem;height:.38rem;position:absolute;top:.68rem;left:0}.cta-link{border:1px solid var(--line-strong);min-height:3rem;color:var(--fg);font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;transition:transform .22s var(--ease-standard), background-color .22s var(--ease-standard), border-color .22s var(--ease-standard);background:#ffffff0f;border-radius:999px;justify-content:center;align-items:center;padding:.8rem 1.2rem;font-size:.71rem;display:inline-flex}.cta-link:hover,.cta-link:focus-visible{background:#ffffff1c;border-color:#ffffff5c;outline:none;transform:translateY(-1px)}@media (max-width:1280px){.panel.project-card{width:fit-content;max-width:min(calc(100vw - (var(--project-frame-gap) * 2)), 40.5rem)}}@media (max-width:900px){.site-chrome{inset-inline-start:var(--frame-padding);inset-inline-end:var(--frame-padding)}.content-stage-overlay--top-overlay .content-stage-overlay__shell{width:min(100%,34rem);padding-top:clamp(16.5rem,46vh,22rem)}.content-stage-overlay--top-overlay .content-stage-overlay__copy{width:min(100%,32rem)}.scroll-section,.scroll-section--intro,.scroll-section--transform,.scroll-section--content,.scroll-section--project{min-height:126svh}.scroll-section--transform{min-height:102svh}.scroll-section--content{min-height:136svh}.scroll-section--project{min-height:100svh}.scroll-section--outro{min-height:132svh}.section-sticky{align-items:flex-end;min-height:calc(100svh - 4.5rem);top:clamp(4.2rem,10vh,5.8rem)}.section-sticky--intro{align-items:center}.section-sticky--content{padding-top:clamp(.85rem,2vh,1.2rem);padding-bottom:clamp(1.35rem,3vh,2rem)}.section-sticky--project{align-items:center;min-height:100svh;padding-inline:clamp(.9rem,2.8vw,1.35rem);top:0}.panel{width:100%}.panel.project-card{width:min(100%,40rem);max-width:none}.project-card{gap:.72rem;padding-block:clamp(1.15rem,2.2vh,1.6rem)}.project-card__image{max-width:min(100%,34rem)}.project-card__copy{width:min(100%,31rem);max-width:min(100%,31rem)}.project-card__summary{max-width:none}.intro-stage{align-items:flex-end;padding-bottom:clamp(5.5rem,16vh,8rem)}.intro-copy{width:min(100%,24rem);max-width:calc(100% - 44vw);padding-left:0;transform:translate(clamp(.8rem,1.6vw,1.25rem),clamp(-5.2rem,-10vh,-3rem))}.intro-title{font-size:clamp(3.5rem,11vw,5.6rem)}.intro-subtitle{max-width:15ch;font-size:clamp(1.35rem,5vw,2rem)}.panel h2{font-size:clamp(2.1rem,10vw,3.3rem)}.panel p{font-size:1rem}}@media (max-width:900px) and (min-width:641px){.intro-stage{align-items:center;padding-bottom:0}}@media (max-width:640px){:root{--frame-padding:.9rem;--radius-lg:1.35rem;--radius-md:1rem}.scroll-meter-shell{bottom:.8rem}.scroll-section--project{min-height:100svh}.scroll-section--content{min-height:126svh}.section-sticky--project{padding-inline:var(--project-frame-gap)}.section-sticky--content{padding-top:.8rem;padding-bottom:1.2rem}.content-stage-overlay--top-overlay .content-stage-overlay__shell{width:min(100%,22rem);padding-top:clamp(15rem,43vh,18.5rem)}.content-stage-overlay--top-overlay .content-stage-overlay__copy{width:min(100%,22rem)}.panel{padding:1.15rem}.panel.project-card{width:min(100%, calc(100vw - (var(--project-frame-gap) * 2)));max-width:none}.project-card{gap:.68rem;padding:1.1rem .95rem}.project-card__image{max-width:min(100%,24rem);max-height:min(28svh,12.5rem)}.intro-stage{justify-content:center;align-items:flex-start;padding-top:clamp(.9rem,4vh,1.6rem);padding-bottom:clamp(10rem,26vh,13.5rem)}.intro-copy{text-align:center;width:min(100%,21.5rem);max-width:min(100%,21.5rem);padding-left:0;transform:translate(0)}.intro-copy-block{justify-self:center}.intro-title,.intro-subtitle{text-align:center}.intro-title{justify-items:center}.intro-note{margin-inline:auto}.intro-note__text{font-size:.78rem;line-height:1.15}.intro-title{font-size:clamp(2.8rem,12vw,4.2rem)}.intro-subtitle{font-size:clamp(1.1rem,5vw,1.45rem)}.project-card h2{font-size:clamp(2rem,9vw,2.8rem)}.project-card__summary{font-size:.98rem;line-height:1.38}.project-card__copy{justify-self:center;width:auto;max-width:min(100%,24rem)}.project-card__copy .project-stack-toggle{display:inline-flex}.project-highlight,.project-body p{font-size:.92rem;line-height:1.42}.tag,.cta-link{justify-content:center;width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;scroll-snap-type:none}.cta-link{transition:none}}
