.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}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Poppins", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--color-white:#fff;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/poppins-latin-300-normal.Dku2WoCh.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/poppins-latin-400-normal.cpxAROuN.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/poppins-latin-500-normal.C8OXljZJ.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/poppins-latin-600-normal.zEkxB9Mr.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2")}:root{color-scheme:light;--color-paper:#f7f6f2;--color-white:#fff;--color-ink:#10100f;--color-muted:#77746e;--color-line:#10100f24;--page-gutter:clamp(1rem, 2vw, 2rem);--header-height:clamp(5rem, 10vw, 7.5rem);--footer-height:clamp(4.5rem, 8vw, 6.5rem);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);background:var(--color-white);color:var(--color-ink);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{background:var(--color-white);scroll-behavior:auto;min-width:320px;min-height:100%}body{background:var(--color-white);min-width:320px;min-height:100svh;color:var(--color-ink);letter-spacing:.08em;text-transform:uppercase;-webkit-font-smoothing:antialiased;margin:0;font-size:.75rem;overflow-x:clip}body::selection,body ::selection{background:var(--color-ink);color:var(--color-white)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}img,video,canvas,svg{max-width:100%;display:block}img,canvas{-webkit-touch-callout:none;-webkit-user-drag:none;user-select:none}main{min-height:100svh}:focus-visible{outline-offset:.35rem;outline:1px solid}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:1000;background:var(--color-ink);color:var(--color-white);padding:.75rem 1rem;transition:transform .18s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header,.site-footer{z-index:50;width:100%;padding-inline:var(--page-gutter);pointer-events:none;display:flex;position:fixed;inset-inline:0}.site-header{min-height:var(--header-height);justify-content:space-between;align-items:flex-start;gap:1.5rem;padding-top:clamp(1.25rem,4vh,2.5rem);top:0}.site-header a,.site-footer a{pointer-events:auto}.site-header__identity{gap:.25rem;max-width:min(15rem,55vw);font-weight:500;line-height:1.2;display:grid}.site-header__discipline{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.04em;font-size:.625rem;font-weight:400}.site-header__nav{flex:none;gap:clamp(1rem,3vw,3rem);font-weight:500;display:flex}.site-header__nav a{transition:opacity .2s;position:relative}.site-header__nav a:not([aria-current=page]){opacity:.58}.site-header__nav a:hover,.site-header__nav a:focus-visible{opacity:1}.site-header__nav a[aria-current=page]:after{content:"";transform-origin:0;background:currentColor;height:1px;position:absolute;bottom:-.4rem;left:0;right:0;transform:scaleX(1)}.site-footer{min-height:var(--footer-height);padding-bottom:max(1.25rem, env(safe-area-inset-bottom));color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.04em;justify-content:space-between;align-items:flex-end;gap:1rem;font-size:.625rem;bottom:0}.site-footer p{margin:0}.home-page{overflow-x:hidden}.home-intro{min-height:100svh;padding:calc(var(--header-height) + 1rem) var(--page-gutter) calc(var(--footer-height) + 1rem);align-content:center;display:grid}.eyebrow{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.08em;margin:0 0 1rem;font-size:.625rem;font-weight:400}.home-intro h1{letter-spacing:-.075em;text-transform:none;max-width:13ch;margin:0;font-size:clamp(3.25rem,10vw,10rem);font-weight:300;line-height:.84}.home-intro__note{max-width:40rem;color:var(--color-muted);margin:clamp(2rem,5vw,5rem) 0 0 auto;font-size:clamp(.625rem,.75vw,.75rem);line-height:1.7}.portfolio-loader{z-index:999;opacity:1;pointer-events:none;transition:opacity .36s var(--ease-out-expo), visibility .36s linear;background:radial-gradient(circle,#fff 0%,#f3f3f2 100%);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.portfolio-loader[hidden]{display:none}.portfolio-loader[data-state=complete]{visibility:hidden;opacity:0;pointer-events:none}.portfolio-loader__scene{perspective:32rem;width:16rem;height:8rem}.portfolio-loader__cylinder{width:100%;height:100%;transform-style:preserve-3d;animation:4.8s linear infinite cylinder-spin;position:relative}.portfolio-loader__cylinder span{color:#222;letter-spacing:-.08em;text-align:center;width:8rem;transform:translateY(-50%) rotateY(calc(var(--word-index) * 90deg)) translateZ(5.25rem);transform-origin:50%;margin-left:-4rem;font-family:Georgia,Times New Roman,serif;font-size:3rem;font-weight:700;position:absolute;top:50%;left:50%}.portfolio-loader__progress{bottom:max(9vh, env(safe-area-inset-bottom));width:15rem;font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;justify-items:center;gap:.65rem;font-size:.625rem;display:grid;position:absolute;left:50%;transform:translate(-50%)}.portfolio-loader__progress i{background:#0000002e;width:100%;height:1px;display:block;position:relative;overflow:hidden}.portfolio-loader__progress b{transform-origin:0;background:#000;position:absolute;inset:0;transform:scaleX(0)}.portfolio-loader__progress span:last-child{color:#707070;font-size:.5625rem}.section-label{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.08em;margin:0;font-size:.625rem}.carousel-shell{z-index:10;background:var(--color-white);opacity:1;pointer-events:none;visibility:hidden;width:100%;height:100svh;position:absolute;inset:0 0 auto;overflow:hidden}.carousel-shell[data-state=loading],.carousel-shell[data-state=ready]{opacity:1;pointer-events:auto;visibility:visible}.carousel-shell:focus-visible{box-shadow:inset 0 0 0 1px var(--color-line);outline:none}.carousel-shell[data-dragging=true] .carousel-shell__canvas canvas{cursor:grabbing!important}.carousel-shell__canvas{opacity:1;transition:opacity .28s var(--ease-out-expo);position:absolute;inset:0}.carousel-shell[data-texture-state=loading] .carousel-shell__canvas{opacity:0;pointer-events:none}.carousel-shell__canvas canvas{cursor:default;touch-action:none}.carousel-shell__static{z-index:1;opacity:1;perspective:70rem;pointer-events:none;transition:opacity .28s var(--ease-out-expo);position:absolute;inset:0;overflow:hidden}.carousel-shell[data-texture-state=ready] .carousel-shell__static{opacity:0}.carousel-shell__static-panel{aspect-ratio:16/9;border:1px solid var(--color-line);cursor:pointer;pointer-events:auto;width:clamp(15rem,32vw,35rem);transition:transform .5s var(--ease-out-expo), opacity .5s var(--ease-out-expo);background:#e8e7e4;margin:0;position:absolute;top:42%;left:50%;box-shadow:0 1.5rem 5rem #10100f14}.carousel-shell[data-texture-state=ready] .carousel-shell__static-panel{pointer-events:none}.carousel-shell__static-panel img{object-fit:cover;width:100%;height:100%;display:block}.carousel-shell__static-panel--previous{opacity:.72;transform:translate(-148%,-50%)rotateY(-8deg)scale(.88)}.carousel-shell__static-panel--active{z-index:1;transform:translate(-50%,-50%)}.carousel-shell__static-panel--next{opacity:.72;transform:translate(48%,-50%)rotateY(8deg)scale(.88)}.carousel-shell__status{bottom:calc(var(--footer-height) + 2.5rem);left:var(--page-gutter);z-index:2;max-width:min(46rem, calc(100vw - (2 * var(--page-gutter))));pointer-events:none;gap:.8rem;display:grid;position:absolute}.carousel-shell__status p{color:var(--color-muted);font-family:var(--font-mono);gap:1.5rem;margin:0;font-size:.625rem;display:flex}.carousel-shell__status h1{letter-spacing:-.07em;text-transform:none;margin:0;font-size:clamp(2.75rem,6.5vw,7rem);font-weight:300;line-height:.88}.carousel-shell__status a{pointer-events:auto;border-bottom:1px solid;justify-self:start;padding-bottom:.3rem;font-weight:500}.carousel-shell__controls{right:var(--page-gutter);bottom:calc(var(--footer-height) + 2rem);z-index:3;gap:.5rem;display:flex;position:absolute}.carousel-shell__controls button{border:1px solid var(--color-line);min-width:6.5rem;min-height:2.75rem;color:var(--color-ink);cursor:pointer;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;background:#ffffffd1;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .8rem;font-size:.5625rem;display:inline-flex}.carousel-shell__controls button:hover,.carousel-shell__controls button:focus-visible{border-color:var(--color-ink)}.carousel-shell__hint{right:var(--page-gutter);bottom:calc(var(--footer-height) + 5.5rem);z-index:2;color:var(--color-muted);font-family:var(--font-mono);pointer-events:none;margin:0;font-size:.5625rem;position:absolute}html[data-carousel-state=loading] .project-index,html[data-carousel-state=ready] .project-index{display:none}@media (width<=56rem){.carousel-shell__controls{top:calc(var(--header-height) + .5rem);bottom:auto}.carousel-shell__hint{display:none}}.project-index{min-height:100svh;padding:calc(var(--header-height) + 3rem) var(--page-gutter) calc(var(--footer-height) + 4rem)}.project-index__intro{grid-template-columns:minmax(0,2fr) minmax(16rem,1fr);align-items:end;gap:2rem;min-height:min(60svh,42rem);padding-bottom:clamp(4rem,8vw,8rem);display:grid}.project-index__intro .eyebrow{grid-column:1/-1;align-self:end;margin-bottom:-1rem}.project-index__intro h1{letter-spacing:-.075em;text-transform:none;max-width:13ch;margin:0;font-size:clamp(3.25rem,9vw,9rem);font-weight:300;line-height:.84}.project-index__intro>p:last-child{max-width:30rem;color:var(--color-muted);margin:0;line-height:1.7}.project-index__list{border-top:1px solid var(--color-line);margin:0;padding:0;list-style:none}.project-index__list li{border-bottom:1px solid var(--color-line);scroll-margin-top:var(--header-height)}.project-index__list li:target{background:var(--color-paper)}.project-index__list a{grid-template-columns:4rem minmax(0,1fr) minmax(12rem,.5fr);align-items:baseline;gap:1.5rem;padding:clamp(1.25rem,2.5vw,2.25rem) 0;display:grid}.project-index__list a:hover .project-index__title,.project-index__list a:focus-visible .project-index__title{transform:translate(.5rem)}.project-index__number,.project-index__meta{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.04em;font-size:.625rem}.project-index__title{letter-spacing:-.045em;text-transform:none;transition:transform .3s var(--ease-out-expo);font-size:clamp(1.5rem,3vw,3.25rem);font-weight:300;line-height:1}.project-index__meta{text-align:right}.media-frame{width:100%;aspect-ratio:var(--media-ratio);background:var(--color-paper);margin:0;position:relative;overflow:hidden}.media-frame__asset{object-fit:contain;width:100%;height:100%;transition:opacity .24s;display:block}.media-frame--video .media-frame__asset{background:#11110f}.media-frame__fallback{background:linear-gradient(135deg, transparent 49.85%, #10100f17 50%, transparent 50.15%), var(--color-paper);color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.04em;opacity:0;pointer-events:none;justify-content:space-between;align-items:flex-end;gap:1rem;padding:clamp(.75rem,2vw,1.5rem);font-size:.5625rem;display:flex;position:absolute;inset:0}.media-frame--error .media-frame__asset{opacity:0}.media-frame--error .media-frame__fallback{opacity:1}.media-frame figcaption{z-index:2;font-family:var(--font-mono);color:#ffffffc2;background:#10100fb8;padding:.45rem .6rem;font-size:.5625rem;position:absolute;top:.75rem;right:.75rem}.image-comparison{width:100%;margin:0}.image-comparison__stage{width:100%;aspect-ratio:var(--comparison-ratio);background:var(--color-paper);cursor:col-resize;touch-action:pan-y;user-select:none;position:relative;overflow:hidden}.image-comparison__image,.image-comparison__composite{width:100%;height:100%;display:block;position:absolute;inset:0}.image-comparison__image{object-fit:contain;pointer-events:none}.image-comparison__composite{z-index:1;clip-path:inset(0 0 0 var(--comparison-position));will-change:clip-path;overflow:hidden}.image-comparison__label{z-index:3;color:#ffffffe0;font-family:var(--font-mono);letter-spacing:.04em;pointer-events:none;text-transform:uppercase;background:#10100fb8;padding:.45rem .6rem;font-size:.75rem;position:absolute;top:.75rem}.image-comparison__label--original{left:.75rem}.image-comparison__label--composite{right:.75rem}.image-comparison__divider{top:0;bottom:0;left:var(--comparison-position);z-index:3;pointer-events:none;background:#fff;width:2px;position:absolute;transform:translate(-1px);box-shadow:0 0 0 1px #0000002e}.image-comparison__divider span{background:#10100fb8;border:2px solid #fff;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 .25rem 1.25rem #0000003d}.image-comparison__divider span:before{color:#fff;content:"‹ ›";letter-spacing:.2rem;font-size:1.25rem;line-height:1;transform:translate(.1rem)}.image-comparison__range{z-index:4;appearance:none;cursor:col-resize;opacity:0;touch-action:pan-y;background:0 0;width:100%;height:100%;margin:0;position:absolute;inset:0}.image-comparison__range:focus-visible{opacity:1;outline-offset:4px;outline:2px solid #000}.image-comparison__range:focus-visible::-webkit-slider-runnable-track{background:0 0}.image-comparison__range:focus-visible::-moz-range-track{background:0 0}.image-comparison__fallback{z-index:6;background:var(--color-paper);color:#65625d;font-family:var(--font-mono);pointer-events:none;align-items:flex-end;padding:1rem;font-size:.625rem;display:none;position:absolute;inset:0}.image-comparison--error .image-comparison__fallback{display:flex}.image-comparison>figcaption{color:#707070;font-family:var(--font-mono);padding-top:.75rem;font-size:.6875rem;line-height:1.5}@media (prefers-reduced-motion:reduce){.image-comparison__composite,.image-comparison__divider{will-change:auto}}.project-detail{min-height:100svh;padding:0 var(--page-gutter)}.project-detail__topbar{z-index:60;min-height:4.5rem;padding:max(1.25rem, env(safe-area-inset-top)) var(--page-gutter) 1rem;background:linear-gradient(var(--color-white) 65%, transparent);grid-template-columns:1fr auto 1fr;align-items:start;font-weight:500;display:grid;position:fixed;top:0;left:0;right:0}.project-detail__topbar span{color:var(--color-muted);font-family:var(--font-mono);font-size:.625rem}.project-detail__topbar a:last-child{justify-self:end}.project-detail__hero{grid-template-rows:auto 1fr;gap:clamp(2rem,5vw,5rem);min-height:100svh;padding:clamp(8rem,16vh,11rem) 0 clamp(3rem,8vh,6rem);display:grid}.project-detail__heading{grid-template-columns:1fr 3fr;align-items:end;gap:2rem;display:grid}.project-detail__heading .eyebrow{margin:0}.project-detail__heading h1{letter-spacing:-.075em;text-transform:none;max-width:16ch;margin:0;font-size:clamp(3rem,8vw,8.5rem);font-weight:300;line-height:.84}.project-detail__hero>.media-frame{align-self:end}.project-detail__information{grid-template-columns:minmax(15rem,1fr) minmax(0,2fr);gap:clamp(3rem,8vw,9rem);max-width:90rem;margin:0 auto;padding:clamp(5rem,10vw,10rem) 0;display:grid}.project-detail__information dl{grid-template-columns:1fr 1.5fr;align-content:start;margin:0;display:grid}.project-detail__information dt,.project-detail__information dd{border-bottom:1px solid var(--color-line);margin:0;padding:.875rem 0}.project-detail__information dt{color:var(--color-muted);font-family:var(--font-mono);font-size:.625rem}.project-detail__copy{gap:1.5rem;display:grid}.project-detail__copy p,.about-layout__copy p{letter-spacing:-.015em;text-transform:none;margin:0;font-size:clamp(1rem,1.35vw,1.35rem);line-height:1.65}.project-detail__gallery{gap:clamp(2rem,5vw,5rem);max-width:88rem;margin:0 auto;padding-bottom:clamp(6rem,12vw,12rem);display:grid}.project-detail__pager{border-top:1px solid var(--color-line);grid-template-columns:1fr 1fr;display:grid}.project-detail__pager a{align-content:center;gap:.75rem;min-height:11rem;padding:2rem 0;display:grid}.project-detail__pager a:last-child{border-left:1px solid var(--color-line);text-align:right}.project-detail__pager span{color:var(--color-muted);font-family:var(--font-mono);font-size:.625rem}.project-detail__pager strong{letter-spacing:-.04em;text-transform:none;font-size:clamp(1.25rem,2.5vw,2.5rem);font-weight:300}.about-layout{grid-template-columns:minmax(20rem,5fr) minmax(0,7fr);min-height:100svh;display:grid}.about-layout__portrait{background:var(--color-paper);height:100svh;position:sticky;top:0;overflow:hidden}.about-layout__portrait .media-frame,.about-layout__portrait .media-frame__asset{height:100%}.about-layout__portrait .media-frame{aspect-ratio:auto}.about-layout__portrait .media-frame__asset{object-fit:cover}.about-layout__content{min-height:100svh;padding:calc(var(--header-height) + 4rem) clamp(2rem, 6vw, 7rem) max(3rem, env(safe-area-inset-bottom));align-content:start;display:grid}.about-layout__content h1{letter-spacing:-.07em;text-transform:none;max-width:13ch;margin:1.5rem 0 clamp(4rem,8vw,8rem);font-size:clamp(3rem,6vw,7.5rem);font-weight:300;line-height:.88}.about-layout__copy{gap:2rem;max-width:48rem;display:grid}.about-contact{border-top:1px solid var(--color-line);grid-template-columns:1fr 3fr;gap:2rem;margin-top:clamp(4rem,8vw,8rem);padding:clamp(5rem,10vw,10rem) 0;display:grid}.about-contact__links{flex-wrap:wrap;gap:1.5rem 3rem;font-weight:500;display:flex}.about-layout__signature{letter-spacing:-.075em;text-transform:none;margin:auto 0 0;font-size:clamp(3rem,7vw,8rem);font-weight:300;line-height:.85}.not-found{min-height:100svh;padding:calc(var(--header-height) + 2rem) var(--page-gutter) 4rem;place-content:center;justify-items:start;display:grid}.not-found h1{letter-spacing:-.08em;text-transform:none;margin:0 0 3rem;font-size:clamp(4rem,12vw,12rem);font-weight:300;line-height:.8}.not-found>a{border-bottom:1px solid;padding-bottom:.35rem;font-weight:500}@keyframes cylinder-spin{to{transform:rotateY(-360deg)}}@media (width<=42rem){.site-header{align-items:flex-start}.site-header__identity{max-width:10rem}.site-header__discipline{display:none}.site-footer p:first-child{max-width:13rem}.home-intro h1{font-size:clamp(3.4rem,18vw,6rem)}.home-intro__note{max-width:26rem;margin-left:0}.project-index{padding-top:calc(var(--header-height) + 2rem)}.carousel-shell__status{bottom:calc(var(--footer-height) + 2rem)}.carousel-shell__status p{flex-direction:column;gap:.35rem}.carousel-shell__status h1{max-width:12ch;font-size:clamp(2.75rem,13vw,4.75rem)}.carousel-shell__hint{display:none}.carousel-shell__controls{right:var(--page-gutter)}.carousel-shell__controls button{min-width:2.75rem}.carousel-shell__controls button span:not([aria-hidden=true]){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.project-index__intro{grid-template-columns:1fr;align-content:center;min-height:65svh;padding-bottom:4rem;display:grid}.project-index__intro .eyebrow{grid-column:auto;margin-bottom:0}.project-index__intro h1{font-size:clamp(3.4rem,18vw,6rem)}.project-index__list a{grid-template-columns:2rem minmax(0,1fr);gap:1rem}.project-index__meta{text-align:left;grid-column:2}.project-detail__topbar{min-height:calc(4rem + env(safe-area-inset-top))}.project-detail__hero{min-height:auto;padding-top:calc(7rem + env(safe-area-inset-top))}.project-detail__heading,.project-detail__information{grid-template-columns:1fr}.project-detail__heading{gap:1rem}.project-detail__information{gap:4rem;padding:5rem 0}.project-detail__pager{grid-template-columns:1fr}.project-detail__pager a{min-height:8rem}.project-detail__pager a:last-child{border-top:1px solid var(--color-line);border-left:0}.about-layout{grid-template-columns:1fr}.about-layout__portrait{height:min(75svh,42rem);position:relative}.about-layout__content{min-height:auto;padding:5rem var(--page-gutter) max(4rem, env(safe-area-inset-bottom))}.about-layout__content h1{margin-bottom:4rem}.about-contact{grid-template-columns:1fr;margin-top:4rem;padding:4rem 0}}.project-page{--project-interface-font-size:clamp(.8125rem, calc(.75rem + .22vw), .975rem);--project-body-font-size:clamp(1rem, calc(.94rem + .24vw), 1.25rem);color:#000;background:#fff;font-size:1rem}.project-page .project-detail{min-height:100svh;padding:0}.project-page .project-detail__hero{min-height:100svh;padding:0 0 4.5rem;display:block;position:relative}.project-detail__cover{background:#eee;width:100%;height:calc(100svh - 4.5rem);overflow:hidden}.project-detail__cover .media-frame,.project-detail__cover .media-frame__asset{width:100%;height:100%}.project-detail__cover .media-frame{aspect-ratio:auto}.project-detail__cover .media-frame__asset{object-fit:cover}.project-detail__metadata{z-index:70;min-height:4.5rem;font-size:var(--project-interface-font-size);letter-spacing:.06em;text-transform:uppercase;background:#fff;justify-content:space-between;align-items:center;gap:2rem;padding:0 2.5rem;font-weight:500;line-height:1.35;display:flex;position:fixed;bottom:0;left:0;right:0}.project-detail__metadata>div{align-items:center;gap:1rem;min-width:0;display:flex}.project-detail__metadata i{color:#00000038;font-style:normal}.project-detail__metadata span{color:#707070}.project-detail__metadata strong{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.project-detail__metadata a{flex:none;transition:opacity .18s}.project-detail__metadata a:hover,.project-detail__metadata a:focus-visible{opacity:.45}.project-detail__content{background:#fff;width:100%;max-width:72rem;margin:0 auto;padding:5rem 2.5rem 12rem}.project-detail__content>h1{letter-spacing:-.045em;text-transform:none;margin:0 0 6.5rem;font-size:clamp(2.5rem,8vw,8.75rem);font-weight:500;line-height:.9}.project-page .project-detail__information{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(4rem,8vw,8rem);max-width:none;margin:0;padding:0;display:grid}.project-detail__information h2{font-size:var(--project-interface-font-size);letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid #000;margin:0 0 .5rem;padding:0 0 1rem;font-weight:600;line-height:1.4}.project-page .project-detail__information dl{grid-template-columns:1fr 1fr;margin:0;display:grid}.project-page .project-detail__information dt,.project-page .project-detail__information dd{font-size:var(--project-interface-font-size);letter-spacing:.035em;border-bottom:1px solid #0000001a;padding:1rem 0;line-height:1.5}.project-page .project-detail__information dt{color:#707070;font-family:var(--font-sans)}.project-page .project-detail__information dd{font-weight:500}.project-page .project-detail__copy{gap:1rem;max-width:46rem;display:grid}.project-page .project-detail__copy p{color:#000c;font-size:var(--project-body-font-size);letter-spacing:0;text-transform:none;margin:0;font-weight:400;line-height:1.65}.project-page .project-detail__gallery{gap:clamp(2rem,3vw,2.5rem);max-width:64rem;margin:6rem auto 0;padding:0;display:grid}.project-page .project-detail__pager{margin-top:8rem}.project-page .project-detail__pager span{font-size:var(--project-interface-font-size);line-height:1.4}.project-page .project-detail__pager strong{font-size:clamp(1.5rem,1.2rem + 1.35vw,2.75rem);line-height:1.2}@media (width<=56rem){.project-page .project-detail__information{grid-template-columns:1fr;gap:clamp(3.5rem,8vw,4.5rem)}.project-detail__information>section{max-width:40rem}}@media (width<=42rem){.project-page .project-detail__hero{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}.project-detail__cover{height:calc(100svh - 4.5rem - env(safe-area-inset-bottom))}.project-detail__metadata{min-height:calc(4.5rem + env(safe-area-inset-bottom));padding:1.25rem 1rem max(1.25rem, env(safe-area-inset-bottom));align-items:flex-start}.project-detail__metadata>div{max-width:calc(100vw - 6rem)}.project-detail__metadata>div i:nth-of-type(n+2),.project-detail__metadata>div span:nth-of-type(n+2){display:none}.project-detail__content{padding:4rem 1rem 9rem}.project-detail__content>h1{margin-bottom:5rem;font-size:clamp(2.75rem,14vw,5rem)}.project-page .project-detail__information{grid-template-columns:1fr;gap:4rem}.project-page .project-detail__gallery{margin-top:5rem}}.about-page{color:#000;background:#fff;font-size:11px}.about-page .about-layout{grid-template-columns:41.6667% 58.3333%;min-height:calc(100svh + 1px);display:grid}.about-page .about-layout__portrait{background:#eee;height:100svh;position:sticky;top:0}.about-page .about-layout__content{flex-direction:column;min-width:0;min-height:100svh;padding:2rem 0 1.5rem;display:flex}.about-layout__topbar{flex:none;padding-left:2.75rem}.about-layout__topbar a{letter-spacing:.1em;text-transform:uppercase;font-size:clamp(9px,.75vw,13px);font-weight:500;transition:opacity .18s}.about-layout__topbar a:hover,.about-layout__topbar a:focus-visible{opacity:.45}.about-page .about-layout__main{flex:1;grid-template-rows:auto auto auto;grid-template-columns:7.25rem minmax(0,1fr);align-content:start;column-gap:1.75rem;min-height:0;padding:5.5rem 3rem 0 1.25rem;display:grid}.about-page .section-label{color:#707070;font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;font-size:clamp(9px,.75vw,13px);font-weight:500}.about-page .about-layout__copy{gap:1.75rem;max-width:none;display:grid}.about-page .about-layout__copy p{letter-spacing:-.015em;text-transform:uppercase;margin:0;font-size:clamp(11px,1vw,16px);font-weight:500;line-height:1.6}.about-page .about-contact{display:contents}.about-page .about-contact>.section-label{grid-column:1;margin-top:5rem}.about-page .about-contact__links{letter-spacing:.1em;text-transform:uppercase;grid-column:2;justify-content:space-between;align-items:flex-start;gap:2rem;margin-top:5rem;font-size:clamp(9px,.75vw,13px);font-weight:500;display:flex}.about-page .about-contact__links span{gap:2rem;display:flex}.about-page .about-contact__links a{transition:opacity .18s}.about-page .about-contact__links a:hover,.about-page .about-contact__links a:focus-visible{opacity:.45}.about-page .about-layout__signature{letter-spacing:-.055em;text-transform:uppercase;white-space:nowrap;grid-column:1/-1;margin:3.25rem 0 0;font-size:clamp(3.25rem,5.65vw,5.75rem);font-weight:500;line-height:.9}@media (width<=56rem){.about-page .about-layout{grid-template-columns:41.6667% 58.3333%}.about-page .about-layout__main{grid-template-columns:5.5rem minmax(0,1fr);column-gap:1rem;padding-left:1rem;padding-right:1.5rem}.about-page .about-contact__links,.about-page .about-contact__links span{gap:1rem}.about-page .about-layout__signature{font-size:clamp(2rem,4vw,3rem)}}@media (width<=42rem){.about-page .about-layout{display:block}.about-page .about-layout__portrait{height:min(72svh,36rem);position:relative}.about-page .about-layout__content{min-height:100svh;padding:max(1.5rem, env(safe-area-inset-top)) 0 max(2rem, env(safe-area-inset-bottom))}.about-layout__topbar{padding-left:1rem}.about-page .about-layout__main{grid-template-columns:4.5rem minmax(0,1fr);padding:4.5rem 1rem 0;display:grid}.about-page .about-layout__copy{gap:1.5rem}.about-page .about-layout__copy p{font-size:11px}.about-page .about-contact>.section-label,.about-page .about-contact__links{margin-top:4rem}.about-page .about-contact__links,.about-page .about-contact__links span{flex-wrap:wrap;gap:1rem 1.5rem}.about-page .about-layout__signature{white-space:normal;margin-top:3rem;font-size:clamp(2.25rem,10.5vw,3.25rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.portfolio-loader__cylinder{transform:rotateY(-22deg)}}.home-page{--home-interface-font-size:clamp(.825rem, calc(.732rem + .24vw), 1.05rem);--home-interface-count-size:clamp(.75rem, calc(.684rem + .168vw), .9rem);overscroll-behavior:none;height:100svh;font-size:var(--home-interface-font-size);letter-spacing:.08em;background:#fff;overflow:hidden}.home-page main{height:100svh;overflow:hidden}.home-page .carousel-shell{overscroll-behavior:none;touch-action:none;background:#fff;height:100svh;position:fixed;inset:0}html[data-carousel-state]{overscroll-behavior:none}.carousel-shell__header{z-index:5;pointer-events:none;position:absolute;inset:0}.carousel-shell__filters{pointer-events:auto;width:17rem;display:grid;position:absolute;top:4vh;left:45%}.carousel-shell__filters button{color:#707070;cursor:pointer;width:100%;font-size:var(--home-interface-font-size);letter-spacing:.1em;text-align:left;text-transform:uppercase;background:0 0;border:0;justify-content:space-between;align-items:baseline;padding:0;font-weight:500;line-height:1.35;transition:color .18s;display:flex}.carousel-shell__filters>button:first-child{margin-bottom:1.5rem}.carousel-shell__filters>button:not(:first-child){height:24px;line-height:24px}.carousel-shell__filters>button[aria-expanded=true]{height:22px;line-height:22px}.carousel-shell__filters button span:last-child{font-size:var(--home-interface-count-size);transform:translateY(.08rem)}.carousel-shell__filters button:hover,.carousel-shell__filters button:focus-visible,.carousel-shell__filters button.is-active{color:#000}.carousel-shell__photography-filters{border-left:1px solid #10100f29;gap:0;margin:0 0 0 .35rem;padding-left:.8rem;display:grid}.carousel-shell__photography-filters button{letter-spacing:.065em;height:20px;font-weight:400;line-height:20px}.carousel-shell__about{color:#000;font-size:var(--home-interface-font-size);letter-spacing:.08em;pointer-events:auto;text-transform:uppercase;font-weight:500;transition:opacity .18s;position:absolute;top:4vh;right:1.5rem}.carousel-shell__about:hover,.carousel-shell__about:focus-visible{opacity:.55}.home-page .carousel-shell__static{perspective:70rem}.home-page .carousel-shell__static-panel{width:clamp(13rem,19.5vw,17.5rem);box-shadow:none;transition:transform .56s var(--ease-out-expo), opacity .32s ease;background:#f0f0ee;border:0;top:55%}.home-page .carousel-shell__static-panel--previous{opacity:1;transform:translate(-158%,-50%)}.home-page .carousel-shell__static-panel--previous-far{opacity:1;transform:translate(-266%,-50%)}.home-page .carousel-shell__static-panel--active{transform:translate(-50%,-50%)}.home-page .carousel-shell__static-panel--next{opacity:1;transform:translate(58%,-50%)}.home-page .carousel-shell__static-panel--next-far{opacity:1;transform:translate(166%,-50%)}.home-page .carousel-shell__status{z-index:4;aspect-ratio:16/9;pointer-events:none;width:clamp(13rem,19.5vw,17.5rem);max-width:none;height:clamp(7.3125rem,10.97vw,9.84375rem);display:block;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%)}.home-page .carousel-shell__status h1{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.home-page .carousel-shell__status a{pointer-events:none;background:#fff0;border:0;justify-self:stretch;width:100%;height:100%;padding:0;display:block;position:absolute;inset:0}.carousel-shell__footer{right:1.5rem;bottom:max(2rem, env(safe-area-inset-bottom));z-index:4;color:#0006;font-size:var(--home-interface-font-size);pointer-events:none;justify-content:space-between;align-items:flex-end;line-height:1;display:flex;position:absolute;left:1.5rem}.carousel-shell__footer p{align-items:baseline;gap:1rem;margin:0;display:flex}.carousel-shell__footer strong{color:#000;letter-spacing:.08em;text-transform:uppercase;font-weight:500}.home-page .carousel-shell__controls.sr-only-controls{z-index:6;opacity:0;top:auto;bottom:1.25rem;right:1.5rem}.home-page .carousel-shell__controls.sr-only-controls button{width:2.75rem;min-width:2.75rem;min-height:2.75rem;padding:0}.home-page .carousel-shell__hint{display:none}.home-page .carousel-shell__header,.home-page .carousel-shell__footer{transition:opacity .24s}.home-page .carousel-shell[data-opening=true] .carousel-shell__header,.home-page .carousel-shell[data-opening=true] .carousel-shell__footer,.home-page .carousel-shell[data-opening=true] .carousel-shell__static-panel--previous,.home-page .carousel-shell[data-opening=true] .carousel-shell__static-panel--next,.home-page .carousel-shell[data-opening=true] .carousel-shell__static-panel--previous-far,.home-page .carousel-shell[data-opening=true] .carousel-shell__static-panel--next-far{opacity:0}.home-page .carousel-shell[data-opening=true] .carousel-shell__static-panel--active{transform:translate(-50%,-50%)scale(2.9)}@media (width<=42rem){.carousel-shell__filters{top:max(1.25rem, env(safe-area-inset-top));width:min(15rem,100vw - 6rem);left:1rem}.carousel-shell__filters>button:first-child{margin-bottom:1rem}.carousel-shell__photography-filters{margin-top:0}.carousel-shell__about{top:max(1.25rem, env(safe-area-inset-top));right:1rem}.home-page .carousel-shell__static-panel,.home-page .carousel-shell__status{width:min(58vw,16rem);top:56%}.home-page .carousel-shell__static-panel--previous{transform:translate(-155%,-50%)}.home-page .carousel-shell__static-panel--previous-far{transform:translate(-260%,-50%)}.home-page .carousel-shell__static-panel--next{transform:translate(55%,-50%)}.home-page .carousel-shell__static-panel--next-far{transform:translate(160%,-50%)}.carousel-shell__footer{right:1rem;bottom:max(1.25rem, env(safe-area-inset-bottom));left:1rem}.carousel-shell__footer p{max-width:calc(100vw - 5.5rem)}.carousel-shell__footer strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
