@font-face{font-family:General Sans Variable;src:url(./assets/fonts/GeneralSans-Variable.woff2)format("woff2-variations"),url(./assets/fonts/GeneralSans-Variable.woff2)format("woff2");font-weight:200 700;font-style:normal;font-display:swap}@font-face{font-family:Creavita Logo;src:url(data:font/otf;base64,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)format("opentype");font-weight:400;font-style:normal;font-display:swap}@property --page-glow{syntax:"<color>";inherits:true;initial-value:#2a2616}@property --page-accent{syntax:"<color>";inherits:true;initial-value:#1c201c}@property --page-wash{syntax:"<color>";inherits:true;initial-value:#16150a}@property --page-deep{syntax:"<color>";inherits:true;initial-value:#121102}:root{--color-bg:#121102;--color-text:#ecf7fa;--color-text-muted:#ecf7fa40;--color-text-muted-hover:#ecf7fa99;--page-glow:#2a2616;--page-accent:#1c201c;--page-wash:#16150a;--page-deep:#121102;--font-body:"General Sans Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-logo:"Creavita Logo", var(--font-body);--page-max-width:none;--page-padding:clamp(20px, 4.5vw, 65px);--ease-out-glide:cubic-bezier(.22, 1, .36, 1);--ease-out-soft:cubic-bezier(.25, .46, .45, .94);--ease-spring:cubic-bezier(.34, 1.25, .64, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--color-bg:#edeeff;--color-text:#130805;--color-text-muted:#13080540;--color-text-muted-hover:#13080599;--page-glow:#d5d9e9;--page-accent:#e3dfe3;--page-wash:#e9eaf5;--page-deep:#edeeff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--page-deep);min-height:100vh;color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:color .5s var(--ease-out-soft), background-color .5s var(--ease-out-soft), --page-glow .9s var(--ease-out-soft), --page-accent .9s var(--ease-out-soft), --page-wash .9s var(--ease-out-soft), --page-deep .9s var(--ease-out-soft);margin:0;font-weight:400;line-height:1.4}img,picture{max-width:100%;display:block}button{color:inherit;font-family:inherit}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}p{margin:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.page{isolation:isolate;background:radial-gradient(ellipse 95% 80% at 88% 42% in oklab, color-mix(in oklab, var(--page-glow) 78%, transparent) 0%, color-mix(in oklab, var(--page-glow) 48%, transparent) 22%, color-mix(in oklab, var(--page-glow) 22%, transparent) 42%, color-mix(in oklab, var(--page-glow) 6%, transparent) 58%, oklab(from var(--page-glow) l a b / 0) 72%), radial-gradient(ellipse 70% 60% at 4% 92% in oklab, color-mix(in oklab, var(--page-accent) 62%, transparent) 0%, color-mix(in oklab, var(--page-accent) 32%, transparent) 28%, color-mix(in oklab, var(--page-accent) 10%, transparent) 48%, oklab(from var(--page-accent) l a b / 0) 62%), radial-gradient(ellipse 55% 45% at 38% -5% in oklab, color-mix(in oklab, var(--page-wash) 48%, transparent) 0%, color-mix(in oklab, var(--page-wash) 22%, transparent) 34%, oklab(from var(--page-wash) l a b / 0) 68%), linear-gradient(148deg in oklab, var(--page-deep) 0%, color-mix(in oklab, var(--page-wash) 55%, var(--page-deep)) 22%, var(--page-wash) 40%, color-mix(in oklab, var(--page-accent) 40%, var(--page-wash)) 58%, color-mix(in oklab, var(--page-accent) 55%, var(--page-deep)) 74%, var(--page-deep) 100%);min-height:100vh;transition:--page-glow .9s var(--ease-out-soft), --page-accent .9s var(--ease-out-soft), --page-wash .9s var(--ease-out-soft), --page-deep .9s var(--ease-out-soft);padding-block:clamp(32px,6vh,80px) clamp(32px,6vh,72px);position:relative;overflow-x:clip}.page:before{content:"";z-index:-1;pointer-events:none;opacity:.06;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:160px 160px;position:absolute;inset:0}:root[data-theme=light] .page{background:radial-gradient(ellipse 95% 80% at 88% 42% in oklab, color-mix(in oklab, var(--page-glow) 92%, transparent) 0%, color-mix(in oklab, var(--page-glow) 58%, transparent) 24%, color-mix(in oklab, var(--page-glow) 28%, transparent) 44%, color-mix(in oklab, var(--page-glow) 8%, transparent) 60%, oklab(from var(--page-glow) l a b / 0) 74%), radial-gradient(ellipse 70% 60% at 4% 92% in oklab, color-mix(in oklab, var(--page-accent) 78%, transparent) 0%, color-mix(in oklab, var(--page-accent) 40%, transparent) 30%, color-mix(in oklab, var(--page-accent) 12%, transparent) 50%, oklab(from var(--page-accent) l a b / 0) 64%), radial-gradient(ellipse 55% 45% at 38% -5% in oklab, color-mix(in oklab, var(--page-wash) 62%, transparent) 0%, color-mix(in oklab, var(--page-wash) 28%, transparent) 34%, oklab(from var(--page-wash) l a b / 0) 68%), linear-gradient(148deg in oklab, var(--page-deep) 0%, color-mix(in oklab, var(--page-wash) 55%, var(--page-deep)) 22%, var(--page-wash) 40%, color-mix(in oklab, var(--page-accent) 40%, var(--page-wash)) 58%, color-mix(in oklab, var(--page-accent) 55%, var(--page-deep)) 74%, var(--page-deep) 100%)}:root[data-theme=light] .page:before{opacity:.08;mix-blend-mode:multiply}.page__inner{--hero-stack-gap:clamp(48px, 8vh, 96px);--hero-footer-gap:clamp(28px, 4.5vh, 44px);width:100%;max-width:var(--page-max-width);padding-inline:var(--page-padding);gap:var(--hero-stack-gap);flex-direction:column;margin-inline:auto;display:flex}@media (width>=1000px){.page{height:100dvh;padding-block:0;padding-inline:var(--page-padding);grid-template-rows:1fr;grid-template-columns:minmax(300px,5fr) 4fr;align-items:stretch;column-gap:clamp(48px,7vw,120px);display:grid;overflow:hidden}.page__inner{gap:var(--hero-stack-gap);grid-area:1/1;grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;margin-inline:0;padding-block:clamp(32px,6vh,80px);padding-inline:0;display:grid;overflow-x:clip}.site-header{grid-row:1;align-self:end}#prace{overflow:hidden}.hero__projects{flex-direction:column;grid-row:2;gap:clamp(12px,2vh,20px);min-width:0;min-height:0;display:flex}.hero__footer{grid-row:3;align-self:start;margin-top:calc(-1*clamp(16px,2.5vh,32px))}}.site-header{flex-direction:row;justify-content:space-between;align-items:center;gap:clamp(16px,3vw,32px);display:flex}.site-header--menu-open{z-index:60}.page--info-open .site-header{z-index:50;position:relative}.page--info-open .site-header--menu-open{z-index:60}.logo{width:clamp(180px,24vw,340px);color:var(--color-text);display:inline-block}.logo__mark{width:100%;height:auto;display:block}.primary-nav{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:clamp(16px,3vw,32px);display:flex}.nav-toggle,.header-actions,.header-back{display:none}@media (width<=999px){.site-header{z-index:40;position:relative}.logo{z-index:2;width:clamp(140px,42vw,220px);position:relative}.header-actions{z-index:2;align-items:center;gap:4px;display:flex;position:relative}.header-back{color:var(--color-text);font:inherit;letter-spacing:.02em;opacity:.45;cursor:pointer;transition:opacity .2s var(--ease-out-soft);background:0 0;border:0;align-items:center;margin:0;padding:10px 8px;font-size:.8125rem;font-weight:500;display:inline-flex}.header-back:hover,.header-back:focus-visible{opacity:.85}.site-header--menu-open .header-back{opacity:0;pointer-events:none}.nav-toggle{width:44px;height:44px;color:var(--color-text);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;margin:-8px;padding:0;display:inline-flex;position:relative}.nav-toggle__bar{transform-origin:50%;width:22px;height:1.5px;transition:transform .28s var(--ease-out-glide), opacity .18s var(--ease-out-soft), width .28s var(--ease-out-glide);background:currentColor;display:block}.site-header--menu-open .nav-toggle__bar:first-child{transform:translateY(6.5px)rotate(45deg)}.site-header--menu-open .nav-toggle__bar:nth-child(2){opacity:0;width:0}.site-header--menu-open .nav-toggle__bar:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.primary-nav{z-index:1;padding:var(--page-padding);background:var(--page-deep);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .26s var(--ease-out-soft), transform .32s var(--ease-out-glide), visibility 0s linear .32s;flex-flow:column;justify-content:center;align-items:center;gap:clamp(22px,4vh,36px);position:fixed;inset:0;transform:scale(1.02)}.primary-nav--open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s var(--ease-out-soft), transform .36s var(--ease-out-glide), visibility 0s;transform:none}.primary-nav__link{letter-spacing:.04em;font-size:clamp(1.125rem,4.5vw,1.375rem)}}@media (width>=1000px){.site-header{gap:clamp(24px,4vw,48px);margin-bottom:clamp(44px,6.5vh,72px)}.logo{width:clamp(160px,16vw,290px)}.primary-nav{gap:clamp(20px,2.5vw,40px)}.header-actions,.header-back,.nav-toggle{display:none!important}}.primary-nav__link{letter-spacing:.01em;width:fit-content;color:var(--color-text);align-items:center;gap:10px;font-size:clamp(.8125rem,.85vw,.875rem);font-weight:500;transition:opacity .2s,gap .2s;display:inline-flex}.primary-nav__link:not(.primary-nav__link--current){opacity:.35}.primary-nav__link:hover,.primary-nav__link:focus-visible{opacity:.7;gap:14px}.primary-nav__link--current{opacity:1}.primary-nav__link--current:hover,.primary-nav__link--current:focus-visible{opacity:.85}.primary-nav__marker,.layout-toggle__marker{aspect-ratio:49/55;object-fit:contain;flex:none;width:10px;height:auto;display:block}.primary-nav__marker{width:clamp(8px,.65vw,10px)}.layout-toggle__marker{width:10px}:root[data-theme=light] .logo__mark,:root[data-theme=light] .primary-nav__marker,:root[data-theme=light] .layout-toggle__marker,:root[data-theme=light] .theme-toggle__marker,:root[data-theme=light] .gallery__arrow-icon,:root[data-theme=light] .project-detail__pager-icon{filter:invert()}.hero{flex-direction:column;gap:clamp(48px,9vw,90px);display:flex}.hero__content{gap:var(--hero-stack-gap);flex-direction:column;min-width:0;display:flex}.hero__footer{gap:var(--hero-footer-gap);flex-direction:column;min-width:0;display:flex}@media (width>=1000px){.hero,.hero__content{display:contents}}.hero__projects{flex-direction:column;gap:clamp(12px,2vh,20px);min-width:0;display:flex}.prace-intro{width:min(100%,560px);max-width:560px;color:var(--color-text-muted-hover);margin:0;padding-inline-end:clamp(1.25rem,6vw,5rem);font-size:clamp(.875rem,.9vw,1rem);font-weight:400;line-height:1.45}#prace{--prace-viewport-trim-block:clamp(40px, 7vh, 72px);border-block:1px solid var(--color-text);flex-direction:column;width:100%;min-width:0;max-width:100%;min-height:0;padding-block:clamp(12px,2vh,24px);display:flex;overflow:hidden;container:prace/inline-size}.project-list-viewport{flex:1;min-height:0;overflow:hidden}.project-list{--prace-inset:clamp(1.25rem, 6cqi, 5rem);--prace-col-gap:clamp(.75rem, 8cqi, 3.5rem);--prace-row-gap:clamp(2px, .45vh, 6px);gap:var(--prace-row-gap);width:100%;min-width:0;max-width:100%;box-sizing:border-box;transform-origin:top;transition:transform .55s var(--ease-out-glide);will-change:transform;flex-direction:column;padding-inline-end:var(--prace-inset);display:flex}.project-list__item{column-gap:var(--prace-col-gap);box-sizing:border-box;width:100%;transition:transform .3s var(--ease-out-soft);grid-template-columns:1.1fr 1fr 1.2fr;align-items:baseline;display:grid}.project-list__item:hover{transform:translate(4px)}.project-list__item>*{color:var(--color-text-muted);cursor:pointer;padding-block:clamp(2px,.35vh,6px);font-size:clamp(.8125rem,.8vw,.875rem);font-weight:500;transition:color .25s}.project-list__item:hover>*,.project-list__item:focus-visible>*,.project-list__item.is-active>*{color:var(--color-text);outline:none}.project-list__name{letter-spacing:.01em;white-space:nowrap}.project-list__type,.project-list__category{white-space:nowrap;font-size:.875rem}.project-list__type:empty,.project-list__category:empty{visibility:hidden}.project-list__type{font-weight:700}.project-list__category{text-align:left;font-weight:500}.about-text{width:min(100%,560px);max-width:560px;color:var(--color-text);font-size:1rem;font-weight:400;line-height:1.5}@media (width>=1000px){.about-text{line-height:1.45}}.layout-toggle{flex-direction:column;gap:14px;display:flex}@media (width>=1000px){.layout-toggle{gap:clamp(4px,.7vh,10px)}}.layout-toggle__label{color:var(--color-text);text-transform:lowercase;font-size:.75rem}.layout-toggle__trigger,.theme-toggle__trigger{display:none}.layout-toggle__options{flex-wrap:wrap;gap:10px clamp(20px,5vw,40px);display:flex}.layout-toggle__option{color:var(--color-text-muted);cursor:pointer;transition:color .2s ease, transform .15s var(--ease-out-soft);background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:1rem;font-weight:400;display:inline-flex}.layout-toggle__option:not(:disabled):active{transform:translateY(1px)}.layout-toggle__option .layout-toggle__marker{animation:layout-marker-in .28s var(--ease-out-glide)}@keyframes layout-marker-in{0%{opacity:0;transform:translate(-6px)scale(.8)}to{opacity:1;transform:none}}.layout-toggle__option:hover,.layout-toggle__option:focus-visible{color:var(--color-text-muted-hover)}.layout-toggle__option.is-active{color:var(--color-text)}.layout-toggle__option:disabled{cursor:default}.hero__controls{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:clamp(20px,3vw,40px);width:100%;display:flex}.theme-toggle{flex-direction:column;align-items:flex-end;gap:14px;display:flex}@media (width>=1000px){.theme-toggle{gap:clamp(4px,.7vh,10px)}}.theme-toggle__label{color:var(--color-text);text-transform:lowercase;font-size:.75rem}.theme-toggle__switch{align-items:center;gap:clamp(16px,2vw,28px);min-height:1.4em;padding:0;display:inline-flex}.theme-toggle__option{color:var(--color-text-muted);cursor:pointer;transition:color .25s var(--ease-out-soft);background:0 0;border:none;align-items:center;padding:0;font-size:1rem;font-weight:400;line-height:1.4;display:inline-flex}.theme-toggle__option:hover,.theme-toggle__option:focus-visible{color:var(--color-text-muted-hover)}.theme-toggle__option.is-active{color:var(--color-text)}.theme-toggle__pivot{cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;width:14px;height:1.4em;margin:0;padding:0;display:inline-flex}.theme-toggle__arrow{width:12px;height:12px;transition:transform .6s var(--ease-spring);justify-content:center;align-items:center;display:inline-flex}.theme-toggle__arrow--light{transform:rotate(180deg)}.theme-toggle__arrow--dark{transform:rotate(0)}.theme-toggle__marker{aspect-ratio:49/55;object-fit:contain;width:12px;height:auto;display:block}.theme-toggle__pivot:hover .theme-toggle__marker,.theme-toggle__pivot:focus-visible .theme-toggle__marker{opacity:.7}.page--layout-exit .hero__projects,.page--layout-exit .hero__gallery,.page--layout-exit .gallery__meta,.page--layout-exit .grid-gallery__meta,.page--layout-exit .gallery__nav{opacity:0;transition:opacity .28s var(--ease-out-soft);pointer-events:none}.page--layout-exit .hero__gallery{transition:opacity .28s var(--ease-out-soft), transform .28s var(--ease-out-soft);transform:scale(.985)}.page--layout-enter .hero__projects,.page--layout-enter .hero__gallery,.page--layout-enter .gallery__nav,.page--layout-enter .gallery__meta,.page--layout-enter .grid-gallery__meta{pointer-events:none}.page--layout-enter .hero__projects{animation:layout-content-in .45s var(--ease-out-glide) both}.page--layout-enter .hero__gallery{animation:layout-gallery-in .5s var(--ease-out-glide) both}.page--layout-enter .gallery__nav{animation:layout-content-in .45s var(--ease-out-glide) both;animation-delay:60ms}.page--layout-enter.page--horizontal .gallery__meta.is-visible,.page--layout-enter.page--grid .grid-gallery__meta.is-visible{animation:layout-content-in .4s var(--ease-out-glide) both;animation-delay:.12s}.page--layout-exit .grid-gallery__nav,.page--layout-enter .grid-gallery__nav{pointer-events:none}.page--layout-enter .grid-gallery__nav{animation:layout-content-in .45s var(--ease-out-glide) both;animation-delay:60ms}@keyframes layout-content-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes layout-gallery-in{0%{opacity:0;transform:scale(.985)translateY(14px)}to{opacity:1;transform:none}}.hero__gallery{justify-content:flex-end;align-items:center;gap:0;width:100%;height:clamp(420px,70vh,620px);margin-inline:0;display:flex;position:relative}@media (width>=1000px){.hero__gallery{grid-area:1/2;place-self:stretch stretch;width:100%;height:100dvh;min-height:0;margin-inline:0}}.gallery__nav{aspect-ratio:49/55;cursor:pointer;width:clamp(32px,3.4vw,49px);transition:opacity .2s ease, transform .18s var(--ease-out-soft);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.gallery__nav:disabled{opacity:.2;cursor:default}.gallery__nav:not(:disabled):hover,.gallery__nav:not(:disabled):focus-visible{opacity:.7}.gallery__nav--up:not(:disabled):hover,.grid-gallery__nav--up:not(:disabled):hover{transform:translateY(-3px)}.gallery__nav--down:not(:disabled):hover,.grid-gallery__nav--down:not(:disabled):hover{transform:translateY(3px)}.gallery__nav--prev:not(:disabled):hover,.grid-gallery__nav--left:not(:disabled):hover{transform:translate(-3px)}.gallery__nav--next:not(:disabled):hover,.grid-gallery__nav--right:not(:disabled):hover{transform:translate(3px)}.gallery__nav:not(:disabled):active{transition-duration:.2s,.1s;transform:scale(.88)}.gallery__nav.is-pulsed{opacity:.45;transition-duration:80ms}.gallery__nav--up,.gallery__nav--prev{margin-inline-end:clamp(-6px,-.6vw,-10px)}.gallery__nav--down,.gallery__nav--next{margin-inline-start:clamp(-6px,-.6vw,-10px)}.gallery__arrow-wrap{width:100%;height:100%;display:block}.gallery__arrow-icon{object-fit:contain;width:100%;height:100%;display:block}.gallery__viewport{--gallery-scale-max:1.08;--gallery-scale-min:.78;--gallery-scale-falloff:.38;flex:none;width:min(100%,clamp(340px,44vw,620px));height:100%;position:relative;overflow:hidden}.gallery__track{width:100%;transition:transform .6s var(--ease-out-glide);will-change:transform;flex-direction:column;align-items:center;gap:clamp(20px,4vh,48px);display:flex}.gallery__item{flex:none;justify-content:center;width:100%;margin:0;display:flex;position:relative}.gallery__frame{transform-origin:50%;will-change:transform;cursor:pointer;max-width:100%;display:block;position:relative}.gallery__image{object-fit:cover;background:color-mix(in srgb, var(--color-text) 8%, transparent);width:100%;max-width:100%;height:auto;display:block}.gallery__image,.grid-gallery__image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.gallery__image--outlined{outline:1px solid var(--color-text);outline-offset:-1px}.gallery__frame--active,.grid-gallery__frame--active{cursor:zoom-in}.gallery__cta{background:var(--color-text);cursor:pointer;width:37px;height:38px;transition:transform .2s var(--ease-spring);animation:gallery-cta-nudge 2.4s var(--ease-spring) .8s infinite;border:none;border-radius:7px;justify-content:center;align-items:center;display:inline-flex;position:absolute;bottom:clamp(6px,.8vw,10px);right:clamp(6px,.8vw,10px)}.gallery__cta-icon{aspect-ratio:49/55;filter:brightness(0);width:clamp(14px,1.15vw,16px);height:auto;margin-top:-3px;margin-left:2px;display:block}:root[data-theme=light] .gallery__cta-icon{filter:brightness(0)invert()}.gallery__cta:hover,.gallery__cta:focus-visible{animation:none;transform:scale(1.08)}.gallery__cta:active{animation:none;transform:scale(.96)}@keyframes gallery-cta-nudge{0%,70%,to{transform:scale(1)translate(0)}78%{transform:scale(1.06)translate(1px,-2px)}86%{transform:scale(1.02)translate(0)}}.hero__gallery--horizontal{width:100%;height:clamp(280px,48vh,420px);display:block;position:relative}.hero__gallery--horizontal .gallery__viewport{--gallery-scale-max:1.12;--gallery-scale-min:.62;--gallery-scale-falloff:.34;width:100%;height:100%;position:absolute;inset:0}.hero__gallery--horizontal .gallery__track{flex-direction:row;justify-content:flex-start;align-items:center;gap:clamp(20px,2.8vw,48px);width:max-content;height:100%}.hero__gallery--horizontal .gallery__item{align-items:center;width:auto;height:100%;position:relative}.hero__gallery--horizontal .gallery__frame{width:auto;max-width:none;max-height:100%}.hero__gallery--horizontal .gallery__image{width:auto;max-width:none;height:100%}.gallery__caption{text-align:center;pointer-events:none;z-index:1;opacity:1;flex-direction:column;align-items:center;width:max-content;max-width:160%;transition:opacity .2s;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.gallery__caption.is-active{opacity:0}.gallery__caption-category{color:var(--color-text-muted-hover);font-size:clamp(.6875rem,.72vw,.8125rem);font-weight:400;line-height:1.3}.hero__gallery--horizontal .gallery__nav--prev,.hero__gallery--horizontal .gallery__nav--next{z-index:3;width:clamp(28px,2.8vw,40px);transition:left .6s var(--ease-out-glide), opacity .2s ease, transform .18s var(--ease-out-soft);margin:0;position:absolute}.gallery__meta{z-index:2;box-sizing:border-box;border-inline:1px solid var(--color-text);text-align:center;pointer-events:none;opacity:0;transition:opacity .3s var(--ease-out-soft);flex-direction:column;justify-content:flex-start;align-items:center;gap:4px;padding:clamp(14px,2vh,22px) clamp(12px,1.5vw,20px) clamp(10px,1.4vh,16px);display:flex;position:absolute}.hero__gallery:not(.hero__gallery--horizontal) .gallery__meta{display:none}.gallery__meta.is-visible{opacity:1;transition-delay:60ms}.gallery__meta-name,.gallery__meta-type,.gallery__meta-category{color:var(--color-text);margin:0;font-size:clamp(.75rem,.85vw,.875rem);line-height:1.35}.gallery__meta-name{letter-spacing:.02em;font-weight:400}.gallery__meta-type{font-weight:700}.gallery__meta-category{font-weight:400}.page--horizontal .hero__projects{display:none}@media (width>=1000px){.page--horizontal{height:100dvh;padding-block:0;padding-inline:var(--page-padding);grid-template-rows:none;grid-template-columns:none;column-gap:0;display:block;overflow:hidden}.page--horizontal .page__inner{z-index:2;gap:var(--hero-stack-gap);pointer-events:none;grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);width:100%;max-width:100%;height:100%;min-height:0;padding-block:clamp(32px,6vh,80px);display:grid;position:relative;overflow-x:clip}.page--horizontal .site-header{pointer-events:auto;grid-row:1;align-self:end;width:100%}.page--horizontal .logo{width:clamp(160px,16vw,290px)}.page--horizontal .primary-nav{justify-content:flex-end}.page--horizontal .hero,.page--horizontal .hero__content{display:contents}.page--horizontal .hero__projects{visibility:hidden;pointer-events:none;grid-row:2;display:flex}.page--horizontal .hero__footer{pointer-events:auto;grid-row:3;align-self:start;margin-top:calc(-1*clamp(16px,2.5vh,32px))}.page--horizontal .layout-toggle{flex:none}.page--horizontal .hero__gallery,.page--horizontal .hero__gallery--horizontal{z-index:1;grid-area:auto;width:100%;height:100%;min-height:0;margin:0;padding:0;position:absolute;inset:0}.page--horizontal .hero__gallery--horizontal .gallery__viewport{--gallery-scale-max:1.08;--gallery-scale-min:.58;--gallery-scale-falloff:.3;height:clamp(220px,32vh,340px);top:50%;bottom:auto;transform:translateY(-50%)}.page--horizontal .hero__gallery--horizontal .gallery__track{gap:clamp(16px,2.2vw,36px)}.page--horizontal .gallery__meta{padding:clamp(12px,1.6vh,18px) clamp(10px,1.2vw,16px) clamp(8px,1.2vh,14px)}.page--horizontal .hero__gallery--horizontal .gallery__nav--prev,.page--horizontal .hero__gallery--horizontal .gallery__nav--next{width:clamp(32px,3vw,44px)}}.hero__gallery--grid{width:100%;height:clamp(420px,70vh,720px);display:block;position:relative;overflow:hidden}.grid-gallery__viewport{position:absolute;inset:0;overflow:hidden}.grid-gallery__track{--grid-cols:12;--grid-gap:calc(var(--grid-cell) * .18);--grid-cell:clamp(200px, 24vw, 380px);grid-template-columns:repeat(var(--grid-cols), var(--grid-cell));grid-auto-rows:var(--grid-cell);gap:var(--grid-gap);width:max-content;transition:transform .65s var(--ease-out-glide);will-change:transform;align-items:stretch;display:grid}.grid-gallery__item{z-index:0;width:100%;height:100%;margin:0;position:relative}.grid-gallery__item.is-active{z-index:1}.grid-gallery__frame{cursor:pointer;transform-origin:50%;width:100%;height:100%;transition:transform .5s var(--ease-spring);display:block;position:relative}.grid-gallery__frame:hover{transform:scale(1.05)}.grid-gallery__item.is-active .grid-gallery__frame{transform:scale(1.18)}.grid-gallery__image{aspect-ratio:1;object-fit:cover;object-position:center;background:color-mix(in srgb, var(--color-text) 8%, transparent);opacity:.42;filter:brightness(.65);width:100%;height:100%;transition:opacity .4s var(--ease-out-soft), filter .4s var(--ease-out-soft);display:block}.grid-gallery__frame:hover .grid-gallery__image{opacity:.75;filter:brightness(.85)}.grid-gallery__item.is-active .grid-gallery__image{opacity:1;filter:none}.grid-gallery__image--outlined{outline:1px solid var(--color-text);outline-offset:-1px}.grid-gallery__nav{z-index:3;width:clamp(28px,2.8vw,40px);transition:left .65s var(--ease-out-glide), top .65s var(--ease-out-glide), opacity .2s ease, transform .18s var(--ease-out-soft);margin:0;position:absolute}.grid-gallery__meta{z-index:2;box-sizing:border-box;pointer-events:none;opacity:0;transition:opacity .3s var(--ease-out-soft);justify-content:space-between;align-items:baseline;gap:16px;display:flex;position:absolute}.grid-gallery__meta.is-visible{opacity:1;transition-delay:60ms}.grid-gallery__meta-name,.grid-gallery__meta-type{color:var(--color-text);margin:0;font-size:clamp(.75rem,.85vw,.875rem);line-height:1.35}.grid-gallery__meta-name{letter-spacing:.02em;font-weight:400}.grid-gallery__meta-type{text-align:right;font-weight:700}.page--grid .hero__projects,.page--grid .about-text{display:none}.page--grid .hero__footer{flex-direction:column;align-items:flex-start}@media (width>=1000px){.page--grid{height:100dvh;padding-block:0;padding-inline:var(--page-padding);grid-template-rows:none;grid-template-columns:none;column-gap:0;display:block;overflow:hidden}.page--grid .page__inner{z-index:2;gap:var(--hero-stack-gap);pointer-events:none;grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);width:100%;max-width:100%;height:100%;min-height:0;padding-block:clamp(32px,6vh,80px);display:grid;position:relative;overflow-x:clip}.page--grid .site-header{pointer-events:auto;grid-row:1;align-self:end;width:100%}.page--grid .logo{width:clamp(160px,16vw,290px)}.page--grid .primary-nav{justify-content:flex-end}.page--grid .hero,.page--grid .hero__content{display:contents}.page--grid .hero__projects{visibility:hidden;pointer-events:none;grid-row:2;display:flex}.page--grid .hero__footer{pointer-events:auto;grid-row:3;align-self:start;margin-top:calc(-1*clamp(16px,2.5vh,32px))}.page--grid .about-text{visibility:hidden;display:block}.page--grid .layout-toggle{flex:none}.page--grid .hero__gallery,.page--grid .hero__gallery--grid{z-index:1;grid-area:auto;width:100%;height:100%;min-height:0;margin:0;padding:0;position:absolute;inset:0}.page--grid .grid-gallery__track{--grid-cell:clamp(240px, 26vw, 420px)}.page--grid .grid-gallery__nav{width:clamp(32px,3vw,44px)}}.project-detail{z-index:40;background:radial-gradient(ellipse 80% 55% at 70% 0%, color-mix(in srgb, var(--color-text) 6%, transparent), transparent 55%), color-mix(in srgb, var(--color-bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);animation:project-detail-scrim-in .36s var(--ease-out-soft) both;place-items:stretch stretch;display:grid;position:fixed;inset:0;overflow:hidden}.project-detail--closing{animation:project-detail-scrim-out .32s var(--ease-out-soft) both;pointer-events:none}.project-detail--closing .project-detail__scroll{animation:project-detail-panel-out .28s var(--ease-out-soft) both}.project-detail__scroll{overscroll-behavior:contain;height:100%;animation:project-detail-panel-in .52s var(--ease-out-glide) both;overflow:clip auto}.project-detail__inner{width:min(920px,100%);padding-block:clamp(28px,5vh,56px) clamp(64px,10vh,120px);padding-inline:var(--page-padding);box-sizing:border-box;flex-direction:column;gap:clamp(20px,3.2vh,36px);min-width:0;margin-inline:auto;display:flex}.project-detail__reveal{animation:project-detail-reveal .62s var(--ease-out-glide) both;animation-delay:var(--reveal-delay,0s)}.project-detail__counter{letter-spacing:.08em;color:var(--color-text-muted-hover);font-variant-numeric:tabular-nums;font-size:clamp(.75rem,.85vw,.875rem)}.project-detail__close{z-index:3;width:40px;height:40px;color:var(--color-text);cursor:pointer;transition:transform .2s var(--ease-spring), opacity .2s var(--ease-out-soft);background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:fixed;top:clamp(16px,3vh,32px);right:clamp(16px,3vw,40px)}.project-detail__close:hover,.project-detail__close:focus-visible{opacity:.7;transform:scale(1.08)}.project-detail__close:active{transform:scale(.94)}.project-detail__close-x{width:18px;height:18px;display:block;position:relative}.project-detail__close-x:before,.project-detail__close-x:after{content:"";background:currentColor;width:100%;height:1px;position:absolute;top:50%;left:50%}.project-detail__close-x:before{transform:translate(-50%,-50%)rotate(45deg)}.project-detail__close-x:after{transform:translate(-50%,-50%)rotate(-45deg)}.project-detail__title{letter-spacing:-.03em;overflow-wrap:anywhere;margin:0;padding-block:.06em .04em;font-size:clamp(2.25rem,6.5vw,4.5rem);font-weight:500;line-height:1.05;overflow:hidden}.project-detail__title-line{animation:project-detail-title-rise .7s var(--ease-out-glide) both;animation-delay:calc(var(--reveal-delay,0s) + 40ms);display:block}.project-detail__meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,28px);margin:0;display:grid}.project-detail__meta-item{flex-direction:column;gap:4px;min-width:0;display:flex}.project-detail__meta-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-size:.6875rem}.project-detail__meta-value{margin:0;font-size:clamp(.875rem,1vw,1rem)}.project-detail__intro,.project-detail__process{max-width:38rem;color:color-mix(in srgb, var(--color-text) 82%, transparent);font-size:clamp(1rem,1.35vw,1.1875rem);line-height:1.55}.project-detail__services{flex-wrap:wrap;gap:8px 18px;list-style:none;display:flex}.project-detail__service{color:var(--color-text-muted-hover);letter-spacing:.02em;font-size:clamp(.8125rem,.95vw,.9375rem)}.project-detail__service:before{content:"·";color:var(--color-text-muted);margin-right:10px}.project-detail__service:first-child:before{content:none;margin:0}.project-detail__gallery{flex-direction:column;gap:clamp(28px,5vh,56px);margin-top:clamp(8px,2vh,24px);display:flex}.project-detail__figure{flex-direction:column;gap:10px;margin:0;display:flex}.project-detail__frame{background:color-mix(in srgb, var(--color-text) 4%, transparent);overflow:hidden}.project-detail__frame img{transform-origin:50%;width:100%;height:auto;transition:transform .7s var(--ease-out-glide)}.project-detail__figure:hover .project-detail__frame img{transform:scale(1.03)}.project-detail__caption{letter-spacing:.08em;color:var(--color-text-muted);text-transform:uppercase;justify-content:space-between;gap:12px;font-size:.75rem;display:flex}.project-detail__figure--hero{width:100%}.project-detail__figure--wide{align-self:center;width:min(100%,860px)}.project-detail__figure--left{align-self:flex-start;width:min(72%,560px)}.project-detail__figure--right{align-self:flex-end;width:min(72%,560px)}.project-detail__pager{border-top:1px solid color-mix(in srgb, var(--color-text) 12%, transparent);grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,40px);min-width:0;margin-top:clamp(24px,5vh,48px);padding-top:clamp(20px,3vh,32px);display:grid}.project-detail__pager-button{text-align:left;cursor:pointer;color:var(--color-text);transition:opacity .2s var(--ease-out-soft);background:0 0;border:none;align-items:center;gap:12px;min-width:0;max-width:100%;padding:8px 0;display:flex}.project-detail__pager-button:hover,.project-detail__pager-button:focus-visible{opacity:.72}.project-detail__pager-button--next{text-align:right;justify-content:flex-end}.project-detail__pager-icon{object-fit:contain;width:18px;height:18px;transition:transform .25s var(--ease-spring);flex-shrink:0;display:block}.project-detail__pager-button--prev:hover .project-detail__pager-icon,.project-detail__pager-button--prev:focus-visible .project-detail__pager-icon{transform:translate(-4px)}.project-detail__pager-button--next:hover .project-detail__pager-icon,.project-detail__pager-button--next:focus-visible .project-detail__pager-icon{transform:translate(4px)}.project-detail__pager-text{flex-direction:column;gap:2px;min-width:0;font-size:clamp(.9375rem,1.1vw,1.0625rem);display:flex;overflow:hidden}.project-detail__pager-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-detail__pager-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-size:.6875rem}@keyframes project-detail-scrim-in{0%{opacity:0}to{opacity:1}}@keyframes project-detail-scrim-out{0%{opacity:1}to{opacity:0}}@keyframes project-detail-panel-in{0%{opacity:0;transform:translateY(28px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes project-detail-panel-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(16px)scale(.99)}}@keyframes project-detail-reveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes project-detail-title-rise{0%{transform:translateY(110%)}to{transform:translateY(0)}}@media (width<=700px){.project-detail__meta{grid-template-columns:1fr;gap:14px}.project-detail__figure--left,.project-detail__figure--right,.project-detail__figure--wide{align-self:stretch;width:100%}.project-detail__pager{grid-template-columns:1fr}.project-detail__pager-button--next{text-align:left;justify-content:flex-start}}.info-panel{z-index:40;background:radial-gradient(ellipse 80% 55% at 70% 0%, color-mix(in srgb, var(--color-text) 6%, transparent), transparent 55%), color-mix(in srgb, var(--color-bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);animation:project-detail-scrim-in .36s var(--ease-out-soft) both;place-items:stretch stretch;display:grid;position:fixed;inset:0;overflow:hidden}.info-panel--closing{animation:project-detail-scrim-out .32s var(--ease-out-soft) both;pointer-events:none}.info-panel--closing .info-panel__scroll{animation:project-detail-panel-out .28s var(--ease-out-soft) both}.info-panel__scroll{overscroll-behavior:contain;height:100%;animation:project-detail-panel-in .52s var(--ease-out-glide) both;overflow:clip auto}.info-panel__inner{width:min(720px,100%);padding-block:clamp(120px,16vh,148px) clamp(64px,10vh,120px);padding-inline:var(--page-padding);box-sizing:border-box;flex-direction:column;gap:clamp(24px,3.5vh,40px);min-width:0;margin-inline:auto;display:flex}.info-panel__reveal{animation:project-detail-reveal .62s var(--ease-out-glide) both;animation-delay:var(--reveal-delay,0s)}.info-panel__close{z-index:55;width:40px;height:40px;color:var(--color-text);cursor:pointer;transition:transform .2s var(--ease-spring), opacity .2s var(--ease-out-soft);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:fixed;top:clamp(16px,3vh,32px);right:clamp(16px,3vw,40px)}@media (width<=999px){.info-panel__close{display:none}.project-detail__inner{padding-block:clamp(104px,14vh,140px) clamp(64px,10vh,120px)}.project-detail__close{top:clamp(88px,11vh,116px);right:var(--page-padding)}}.info-panel__close:hover,.info-panel__close:focus-visible{opacity:.7;transform:scale(1.08)}.info-panel__close:active{transform:scale(.94)}.info-panel__close-x{width:18px;height:18px;display:block;position:relative}.info-panel__close-x:before,.info-panel__close-x:after{content:"";background:currentColor;width:100%;height:1px;position:absolute;top:50%;left:50%}.info-panel__close-x:before{transform:translate(-50%,-50%)rotate(45deg)}.info-panel__close-x:after{transform:translate(-50%,-50%)rotate(-45deg)}.info-panel__title{letter-spacing:-.03em;margin:0;padding-block:.06em .04em;font-size:clamp(2.25rem,6.5vw,4.5rem);font-weight:500;line-height:1.05;overflow:hidden}.info-panel__title-line{animation:project-detail-title-rise .7s var(--ease-out-glide) both;animation-delay:calc(var(--reveal-delay,0s) + 40ms);display:block}.info-panel__body{flex-direction:column;gap:clamp(24px,3.5vh,40px);display:flex}.info-panel__lead,.info-panel__process{max-width:38rem;color:color-mix(in srgb, var(--color-text) 82%, transparent);margin:0;font-size:clamp(1rem,1.35vw,1.1875rem);line-height:1.55}.info-panel__focus{flex-direction:column;gap:clamp(18px,2.5vh,28px);margin:0;padding:0;list-style:none;display:flex}.info-panel__focus-item{flex-direction:column;gap:6px;max-width:38rem;display:flex}.info-panel__focus-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-size:.6875rem}.info-panel__focus-text{color:color-mix(in srgb, var(--color-text) 88%, transparent);font-size:clamp(.9375rem,1.1vw,1.0625rem);line-height:1.5}.info-panel__rows{flex-direction:column;gap:clamp(16px,2.2vh,24px);margin:0;display:flex}.info-panel__row{grid-template-columns:minmax(5rem,7rem) 1fr;align-items:baseline;gap:12px 20px;display:grid}.info-panel__row-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-size:.6875rem}.info-panel__row-value{margin:0;font-size:clamp(1rem,1.2vw,1.125rem)}.info-panel__row-value a,.info-panel__link-item a{color:inherit;border-bottom:1px solid color-mix(in srgb, var(--color-text) 28%, transparent);transition:border-color .2s var(--ease-out-soft), opacity .2s var(--ease-out-soft);text-decoration:none}.info-panel__row-value a:hover,.info-panel__row-value a:focus-visible,.info-panel__link-item a:hover,.info-panel__link-item a:focus-visible{border-bottom-color:var(--color-text);opacity:.85}.info-panel__links{flex-direction:column;gap:clamp(14px,2vh,20px);margin:0;padding:0;list-style:none;display:flex}.info-panel__link-item{grid-template-columns:minmax(5rem,7rem) 1fr;align-items:baseline;gap:12px 20px;font-size:clamp(1rem,1.2vw,1.125rem);display:grid}@media (width<=560px){.info-panel__row,.info-panel__link-item{grid-template-columns:1fr;gap:4px}}.ascii-intro{z-index:1000;padding:var(--page-padding);background:var(--color-bg);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;opacity:1;filter:none;clip-path:inset(0);transition:opacity .82s var(--ease-out-soft), transform .82s var(--ease-out-glide), filter .82s var(--ease-out-soft), clip-path .82s var(--ease-out-glide);place-items:center;display:grid;position:fixed;inset:0;transform:none}.ascii-intro__glow{pointer-events:none;background:radial-gradient(ellipse 58% 44% at 50% 46% in oklab, color-mix(in oklab, var(--page-glow) 72%, transparent) 0%, color-mix(in oklab, var(--page-glow) 30%, transparent) 40%, oklab(from var(--page-glow) l a b / 0) 74%), radial-gradient(ellipse 42% 32% at 16% 80% in oklab, color-mix(in oklab, var(--page-accent) 48%, transparent) 0%, oklab(from var(--page-accent) l a b / 0) 72%);animation:ascii-intro-glow 2.8s var(--ease-out-soft) infinite alternate;position:absolute;inset:-12%}.ascii-intro__field{z-index:0;grid-template-columns:repeat(var(--cols,15), 1fr);grid-template-rows:repeat(var(--rows,9), 1fr);place-items:center;display:grid;position:absolute;inset:clamp(12px,2.5vw,28px);-webkit-mask-image:radial-gradient(42% 30%,#0000 0% 28%,#000 58%);mask-image:radial-gradient(42% 30%,#0000 0% 28%,#000 58%)}.ascii-intro--booting .ascii-intro__brand{animation:ascii-intro-rise .75s var(--ease-out-glide) both;animation-delay:80ms}.ascii-intro--ready .ascii-intro__brand{animation:ascii-intro-settle .7s var(--ease-out-glide) both}.ascii-intro--exit{opacity:0;pointer-events:none;filter:blur(10px);clip-path:inset(6% 4%);transform:scale(1.02)}.ascii-intro--exit .ascii-intro__field{opacity:0;transition:opacity .52s var(--ease-out-soft)}.ascii-intro__brand{z-index:2;min-height:1.05em;font-family:var(--font-logo);letter-spacing:0;text-shadow:0 0 48px color-mix(in srgb, var(--page-glow) 60%, transparent);justify-content:center;align-items:baseline;gap:.08em;margin:0;font-size:clamp(2.7rem,11vw,6.4rem);font-weight:400;line-height:1;display:flex;position:relative}.ascii-intro__letter{opacity:0;filter:blur(5px);transition:opacity .28s var(--ease-out-glide), transform .42s var(--ease-out-glide), filter .42s var(--ease-out-glide);transition-delay:calc(var(--letter-i,0) * 18ms);display:inline-block;transform:translateY(.35em)scale(.92)}.ascii-intro__letter.is-in{opacity:1;filter:none;transform:none}.ascii-intro__cell{opacity:0;width:100%;height:100%;animation:ascii-intro-cell-fill .7s var(--ease-out-glide) both;animation-delay:var(--fill-delay,0s);place-items:center;display:grid;transform:scale(.7)}.ascii-intro__arrow{object-fit:contain;opacity:.55;width:clamp(10px,1.4vw,16px);height:auto;display:block}:root[data-theme=light] .ascii-intro__arrow{filter:invert()}@keyframes ascii-intro-cell-fill{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}@keyframes ascii-intro-glow{0%{opacity:.7;transform:scale(1)}to{opacity:1;transform:scale(1.07)}}@keyframes ascii-intro-rise{0%{opacity:0;filter:blur(5px);transform:translateY(20px)}to{opacity:1;filter:none;transform:none}}@keyframes ascii-intro-settle{0%{gap:.18em}to{gap:.08em}}.page--intro-pending .page__inner,.page--intro-pending .hero__gallery,.page--intro-pending .gallery__nav,.page--intro-pending .grid-gallery__nav,.page--intro-pending .gallery__meta,.page--intro-pending .grid-gallery__meta{opacity:0;pointer-events:none}.page--from-intro .site-header{animation:page-from-intro-rise .82s var(--ease-out-glide) both}.page--from-intro .hero__projects{animation:page-from-intro-rise .86s var(--ease-out-glide) both;animation-delay:.1s}.page--from-intro .hero__footer{animation:page-from-intro-rise .82s var(--ease-out-glide) both;animation-delay:.2s}.page--from-intro .hero__gallery,.page--from-intro .hero__gallery--grid{animation:page-from-intro-gallery .98s var(--ease-out-glide) both;animation-delay:.16s}.page--from-intro .gallery__nav,.page--from-intro .grid-gallery__nav{animation:page-from-intro-rise .74s var(--ease-out-glide) both;animation-delay:.34s}.page--from-intro .gallery__meta,.page--from-intro .grid-gallery__meta{animation:page-from-intro-rise .74s var(--ease-out-glide) both;animation-delay:.4s}@keyframes page-from-intro-rise{0%{opacity:0;filter:blur(8px);transform:translateY(24px)}to{opacity:1;filter:none;transform:none}}@keyframes page-from-intro-gallery{0%{opacity:0;filter:blur(12px);transform:scale(.955)translateY(30px)}to{opacity:1;filter:none;transform:none}}.controls-help{z-index:30;pointer-events:none;position:fixed;bottom:clamp(12px,2.5vh,28px);right:clamp(12px,2.5vw,28px)}.controls-help>*{pointer-events:auto}.controls-help__panel{border:1px solid color-mix(in srgb, var(--color-text) 18%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--page-glow) 35%, transparent) 0%, transparent 55%), color-mix(in srgb, var(--color-bg) 82%, transparent);-webkit-backdrop-filter:blur(14px);width:min(280px,100vw - 24px);color:var(--color-text);animation:controls-help-in .42s var(--ease-out-glide) both;padding:16px 16px 14px}.controls-help__header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.controls-help__title-wrap{flex-direction:column;gap:2px;display:flex}.controls-help__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);font-size:.65rem}.controls-help__title{letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.95rem;font-weight:500}.controls-help__close{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;transition:color .2s ease, transform .15s var(--ease-out-soft);background:0 0;border:none;flex:none;margin:-4px -4px 0 0;padding:0;font-size:1.25rem;line-height:1}.controls-help__close:hover,.controls-help__close:focus-visible{color:var(--color-text)}.controls-help__close:active{transform:scale(.9)}.controls-help__body{flex-direction:column;gap:10px;display:flex}.controls-help__row{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:10px;display:grid}.controls-help__keys{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.controls-help__action{letter-spacing:.04em;text-transform:lowercase;color:var(--color-text-muted);text-align:right;font-size:.7rem}.controls-help__key{border:1px solid color-mix(in srgb, var(--color-text) 28%, transparent);background:color-mix(in srgb, var(--color-text) 6%, transparent);min-width:22px;height:22px;color:var(--color-text);letter-spacing:.02em;border-bottom-width:2px;justify-content:center;align-items:center;padding:0 5px;font-family:inherit;font-size:.65rem;font-weight:500;line-height:1;display:inline-flex}.controls-help__key--wide{min-width:42px;padding-inline:7px}.controls-help__or{color:var(--color-text-muted);margin-inline:2px;font-size:.65rem}.controls-help__hint{letter-spacing:.03em;color:var(--color-text-muted);justify-content:flex-end;align-items:center;gap:6px;margin:14px 0 0;font-size:.65rem;display:flex}.controls-help__toggle{border:1px solid color-mix(in srgb, var(--color-text) 18%, transparent);background:color-mix(in srgb, var(--color-bg) 78%, transparent);-webkit-backdrop-filter:blur(12px);color:var(--color-text);cursor:pointer;animation:controls-help-in .36s var(--ease-out-glide) both;transition:border-color .2s ease, color .2s ease, transform .15s var(--ease-out-soft);align-items:center;gap:8px;padding:8px 12px 8px 10px;display:inline-flex}.controls-help__toggle:hover,.controls-help__toggle:focus-visible{border-color:color-mix(in srgb, var(--color-text) 40%, transparent)}.controls-help__toggle:active{transform:translateY(1px)}.controls-help__toggle-label{border:1px solid color-mix(in srgb, var(--color-text) 28%, transparent);border-bottom-width:2px;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;font-weight:500;display:inline-flex}.controls-help__toggle-text{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-size:.7rem}.controls-help__toggle:hover .controls-help__toggle-text,.controls-help__toggle:focus-visible .controls-help__toggle-text{color:var(--color-text)}@keyframes controls-help-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}@media (width<=999px){.controls-help{display:none}.page{flex-direction:column;gap:clamp(16px,2.5vh,24px);min-height:100dvh;padding-block:clamp(20px,4vh,32px) clamp(12px,2vh,18px);display:flex}.page__inner,.hero,.hero__content{display:contents}.site-header{width:100%;padding-inline:var(--page-padding);box-sizing:border-box;flex:none;order:1}.hero__projects{display:none}.hero__gallery,.hero__gallery--horizontal,.hero__gallery--grid{width:100%;min-height:0;padding-inline:var(--page-padding);box-sizing:border-box;flex:1 1 0;order:2;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);place-items:center stretch;gap:12px 0;display:grid;position:relative;overflow:hidden}.hero__gallery>.gallery__viewport,.hero__gallery--horizontal>.gallery__viewport{aspect-ratio:auto;--gallery-scale-max:1;--gallery-scale-min:.78;--gallery-scale-falloff:.4;grid-area:1/1;place-self:stretch center;width:min(100%,72vw);max-width:280px;height:100%;min-height:0;max-height:none;position:relative;overflow:hidden}.hero__gallery--grid>.grid-gallery__viewport{grid-area:1/1;position:relative;inset:auto}.hero__gallery:not(.hero__gallery--horizontal):not(.hero__gallery--grid){grid-template-columns:auto minmax(0,1fr) auto;column-gap:4px}.hero__gallery:not(.hero__gallery--horizontal):not(.hero__gallery--grid)>.gallery__viewport{--gallery-scale-max:1.22;--gallery-scale-min:.7;--gallery-scale-falloff:.42;grid-column:2;width:100%;max-width:min(88vw,400px)}.hero__gallery:not(.hero__gallery--horizontal):not(.hero__gallery--grid)>.gallery__nav{z-index:3;grid-row:1;place-self:center;width:28px;margin:0;position:static;transform:none}.hero__gallery>.gallery__nav--up{grid-column:1}.hero__gallery>.gallery__nav--down{grid-column:3}.hero__gallery--horizontal{grid-template-rows:minmax(0,1fr) auto auto;grid-template-columns:1fr auto auto 1fr;justify-items:stretch;gap:10px 20px}.hero__gallery--horizontal>.gallery__viewport{grid-area:1/1/auto/-1}.hero__gallery--horizontal>.gallery__nav{z-index:3;grid-row:2;place-self:center;width:28px;margin:0;position:static;transform:none}.hero__gallery--horizontal>.gallery__nav--prev{grid-column:2}.hero__gallery--horizontal>.gallery__nav--next{grid-column:3}.hero__gallery--horizontal>.gallery__meta{grid-area:3/1/auto/-1}.hero__gallery--grid .grid-gallery__viewport{position:relative;inset:auto}.hero__gallery--horizontal>.gallery__viewport{width:min(100%,88vw);max-width:420px;container:hgallery/size}.hero__gallery--horizontal .gallery__track{align-items:center;gap:clamp(12px,4vw,24px);height:100%}.hero__gallery--horizontal .gallery__item{justify-content:center;align-items:center;width:auto;max-width:100cqw;height:auto;max-height:100cqh;display:flex}.hero__gallery--horizontal .gallery__frame{max-width:100cqw;max-height:100cqh;width:auto!important;height:auto!important}.hero__gallery--horizontal .gallery__image{object-fit:contain;max-width:100cqw;max-height:100cqh;width:auto!important;height:auto!important}.hero__gallery--horizontal .gallery__meta,.hero__gallery .gallery__meta,.hero__gallery:not(.hero__gallery--horizontal) .gallery__meta,.hero__gallery--grid .grid-gallery__meta{grid-column:1/-1}.hero__gallery--grid{overflow:hidden}.hero__gallery--grid>.grid-gallery__viewport{aspect-ratio:auto;-webkit-mask-composite:source-in;place-self:stretch stretch;width:100%;max-width:none;height:100%;max-height:none;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 10% 90%,#0000 100%),linear-gradient(#0000 0%,#000 10% 90%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 10% 90%,#0000 100%),linear-gradient(#0000 0%,#000 10% 90%,#0000 100%);-webkit-mask-composite:source-in;mask-composite:intersect;container-type:size}.hero__gallery--grid .grid-gallery__track{--grid-cell:min(50cqw, 46cqh);--grid-gap:calc(var(--grid-cell) * .18)}.hero__gallery--grid .grid-gallery__item.is-active .grid-gallery__frame{transform:scale(1.1)}.hero__gallery--grid .grid-gallery__frame:hover{transform:none}.hero__gallery--grid .grid-gallery__nav{width:28px}.gallery__nav:not(:disabled):active,.grid-gallery__nav:not(:disabled):active{transform:none}.hero__gallery .gallery__meta,.hero__gallery:not(.hero__gallery--horizontal) .gallery__meta,.hero__gallery--grid .grid-gallery__meta{opacity:1;text-align:left;pointer-events:none;border:0;grid-area:2/1/auto/-1;justify-content:flex-start;align-items:flex-start;gap:2px;width:100%;padding:0;display:flex;position:static;top:auto;bottom:auto;left:auto}.hero__gallery--horizontal>.gallery__meta{grid-row:3}.gallery__meta-name,.gallery__meta-type,.gallery__meta-category,.grid-gallery__meta-name,.grid-gallery__meta-type{font-size:.875rem}.hero__footer{width:100%;padding-inline:var(--page-padding);box-sizing:border-box;flex:none;order:3;gap:clamp(16px,2.5vh,24px)}.hero__controls{justify-content:space-between;align-items:center;gap:16px;overflow:visible}.layout-toggle,.theme-toggle{align-items:stretch;gap:0;position:relative;overflow:visible}.layout-toggle__label,.theme-toggle__label{display:none}.layout-toggle__trigger,.theme-toggle__trigger{color:var(--color-text);font:inherit;letter-spacing:.02em;text-transform:lowercase;cursor:pointer;opacity:.55;transition:opacity .2s var(--ease-out-soft);background:0 0;border:0;align-items:center;margin:0;padding:0;font-size:.875rem;font-weight:500;display:inline-flex}.layout-toggle__trigger:hover,.layout-toggle__trigger:focus-visible,.theme-toggle__trigger:hover,.theme-toggle__trigger:focus-visible,.layout-toggle.is-open .layout-toggle__trigger,.theme-toggle.is-open .theme-toggle__trigger{opacity:1}.layout-toggle__options,.theme-toggle__switch{z-index:30;border:1px solid color-mix(in srgb, var(--color-text) 18%, transparent);background:color-mix(in srgb, var(--page-deep) 92%, transparent);-webkit-backdrop-filter:blur(14px);min-width:max(11rem,100%);box-shadow:0 12px 40px color-mix(in srgb, var(--page-deep) 45%, transparent);pointer-events:auto;flex-flow:column;align-items:flex-start;gap:12px;margin:0;padding:14px 16px;display:none;position:absolute;top:auto;bottom:calc(100% + 10px);left:0}.theme-toggle__switch{align-items:flex-end;left:auto;right:0}.layout-toggle.is-open .layout-toggle__options,.theme-toggle.is-open .theme-toggle__switch{animation:control-menu-in .24s var(--ease-out-glide) both;display:flex}.theme-toggle__pivot{display:none}.theme-toggle__option{align-items:center;gap:8px;display:inline-flex}.about-text{width:100%;max-width:none;font-size:.9375rem;line-height:1.55}.page--horizontal .hero__gallery,.page--horizontal .hero__gallery--horizontal,.page--grid .hero__gallery,.page--grid .hero__gallery--grid{aspect-ratio:auto;pointer-events:auto;height:auto;max-height:none;position:relative;inset:auto}.page--horizontal .hero__projects,.page--grid .hero__projects{display:none}.page--grid .about-text{visibility:visible;display:block}.page--horizontal .hero__footer,.page--grid .hero__footer{visibility:visible;pointer-events:auto}}@keyframes control-menu-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
