.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-wrap-box,.cropper-canvas,.cropper-drag-box,.cropper-crop-box,.cropper-modal{inset:0;position:absolute}.cropper-wrap-box,.cropper-canvas{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:calc(100% / 3);left:0;top:calc(100% / 3);width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:calc(100% / 3);top:0;width:calc(100% / 3)}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:before,.cropper-center:after{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media(min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media(min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media(min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Avenir Next,Neue Haas Grotesk Text,Helvetica Neue,Gill Sans,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.relative{position:relative}.block{display:block}.hidden{display:none}.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)}:root{--paper: #f7f7f4;--paper-soft: #eeeeea;--ink: #1b1b18;--soft-ink: #4f514c;--muted: #85877f;--line: #dcddd5;--white: #fffefb;--smoke: #e8e9e1;--accent: #7b3b33;--accent-cool: #516a75;--page: clamp(1.25rem, 4vw, 4.75rem);--header-h: 4.8rem}*{box-sizing:border-box}html,body{width:100%;height:100%}body{margin:0;overflow:hidden;background:radial-gradient(circle at 12% 8%,rgba(81,106,117,.08),transparent 26rem),linear-gradient(180deg,#f7f7f4,#fbfbf8 58%,#f7f7f4);color:#1b1b18;font-family:Avenir Next,Neue Haas Grotesk Text,Helvetica Neue,Gill Sans,sans-serif;line-height:1.58;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body:before{position:fixed;inset:0;z-index:60;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23noise)' opacity='.28'/%3E%3C/svg%3E");background-size:180px 180px;content:"";mix-blend-mode:multiply;opacity:.13}body:has(dialog[open]){overflow:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}::-moz-selection{background:#7b3b332b}::selection{background:#7b3b332b}:focus-visible{outline:1px solid #1b1b18;outline-offset:4px}.skip-link{position:fixed;top:1rem;left:1rem;z-index:80;transform:translateY(-150%);border:1px solid var(--ink);background:var(--white);color:var(--ink);padding:.7rem 1rem;font-family:var(--font-sans)}.skip-link:focus{transform:translateY(0)}.site-header{position:fixed;inset:0 0 auto;z-index:40;display:flex;align-items:center;justify-content:space-between;min-height:var(--header-h);padding:1rem var(--page);border-bottom:1px solid rgba(220,221,213,.64);background:#f7f7f4d1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{color:var(--ink);font-size:.95rem}.site-nav{display:flex;align-items:center;gap:clamp(.7rem,2vw,1.6rem);font-size:.9rem}.site-nav a{position:relative;padding:.35rem 0;color:var(--muted);transition:color .24s ease,opacity .24s ease}.site-nav a:after{position:absolute;right:0;bottom:0;left:0;height:1px;transform:scaleX(0);transform-origin:left;background:currentColor;content:"";transition:transform .36s ease}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a.is-active{color:var(--ink)}.site-nav a:hover:after,.site-nav a:focus-visible:after,.site-nav a.is-active:after{transform:scaleX(1)}.app-shell{height:100svh;overflow:hidden}.view{height:100svh;overflow-x:hidden;overflow-y:auto;padding:calc(var(--header-h) + 2rem) var(--page) 4rem;scrollbar-color:var(--muted) transparent;scrollbar-width:thin}.projects-view{display:grid;grid-template-rows:minmax(0,1fr);height:100svh;overflow:hidden;padding:0;background:linear-gradient(90deg,rgba(220,221,213,.34) 1px,transparent 1px) 0 0 / 25vw 100%,var(--paper)}.loading-text{color:var(--soft-ink);font-size:clamp(1.1rem,2vw,1.6rem)}.project-contact{position:fixed;top:clamp(1rem,2.2vw,1.6rem);right:var(--page);z-index:35;display:flex;align-items:center;gap:.8rem;color:var(--soft-ink);font-size:.78rem}.project-contact a{color:inherit;border-bottom:1px solid currentColor;padding:.1rem 0}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.4rem,5vw,5rem);min-height:0;overflow-x:hidden;overflow-y:auto;padding:clamp(5.5rem,10vw,8rem) var(--page) clamp(4rem,8vw,7rem);scrollbar-width:none}.project-grid::-webkit-scrollbar{display:none}.project-grid--loading{display:grid;place-items:center}.project-card{min-width:0;height:min(26rem,56svh);min-height:18rem}.project-card-featured{grid-column:1 / -1;height:min(42rem,76svh);min-height:30rem}.project-open{position:relative;display:grid;width:100%;height:100%;min-height:0;overflow:hidden;border:0;border-radius:0;background:var(--smoke);color:var(--white);cursor:pointer;padding:0;text-align:left;box-shadow:0 22px 60px #1b1b181a}.project-open:after{position:absolute;inset:0;background:linear-gradient(180deg,#0c0c0b05,#0c0c0b0d 42%,#0c0c0b9e),linear-gradient(90deg,#0c0c0b2e,#0c0c0b00);content:"";opacity:.9;transition:opacity .5s ease}.project-open:hover:after,.project-open:focus-visible:after{opacity:.74}.project-number{position:absolute;top:1rem;left:1rem;z-index:2;color:#fffefbb8;font-size:.76rem}.projects-intro{position:absolute;top:.98rem;left:3.15rem;z-index:2;color:#fffefbc2;font-size:.76rem}.project-thumb{position:absolute;inset:0;display:block;min-height:0;overflow:hidden;background:var(--smoke)}.project-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:0;filter:saturate(.76) contrast(.94);transform:scale(1.01);transition:opacity .62s ease,filter .8s ease,transform 1.2s ease}.project-thumb img.loaded{opacity:1}.project-open:hover .project-thumb img,.project-open:focus-visible .project-thumb img{filter:saturate(.95) contrast(1);transform:scale(1.04)}.project-card-side{position:absolute;right:clamp(1rem,2vw,1.5rem);bottom:clamp(1rem,2vw,1.5rem);z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:.34rem;color:#fffefb9e;font-size:.66rem;font-weight:200;letter-spacing:.22em;line-height:1.3;text-transform:uppercase}.project-copy{position:relative;z-index:2;align-self:end;display:grid;gap:.3rem;width:min(100%,34rem);padding:clamp(1.05rem,2vw,1.55rem);padding-left:clamp(3rem,4vw,4rem);text-shadow:0 1px 18px rgba(0,0,0,.42)}.project-kicker,.project-role{overflow:hidden;color:#fffefbb8;font-size:clamp(.68rem,.8vw,.8rem);line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.project-copy strong{color:var(--white);font-size:clamp(1.7rem,3vw,4.25rem);font-weight:400;line-height:.98;overflow-wrap:break-word}.project-card-featured .project-copy strong{font-size:clamp(2.8rem,6.4vw,7.2rem);line-height:.92}.project-card-description{display:-webkit-box;overflow:hidden;max-width:30rem;color:#fffefbc7;font-size:clamp(.82rem,.98vw,.98rem);font-style:normal;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-open-label{width:-moz-max-content;width:max-content;margin-top:.55rem;border-bottom:1px solid rgba(255,254,251,.5);color:#fffefbd1;font-size:.68rem;font-weight:300;letter-spacing:.18em;line-height:1.4;text-transform:uppercase}.project-page{position:relative;min-height:100svh;background:var(--paper);overflow-x:hidden;scroll-behavior:smooth}.project-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.6rem var(--page);mix-blend-mode:difference;pointer-events:none}.project-nav a,.project-nav span{pointer-events:all}.nav-back{font-size:.68rem;font-weight:200;letter-spacing:.18em;text-transform:uppercase;color:#fff;opacity:.8;transition:opacity .3s ease}.nav-back:hover,.nav-back:focus-visible{opacity:1}.nav-index{font-size:.68rem;font-weight:200;letter-spacing:.18em;text-transform:uppercase;color:#fff;opacity:.5}.hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:auto;padding:clamp(.5rem,1.2vh,.9rem) var(--page) clamp(.2rem,.6vh,.5rem);overflow:hidden;background:var(--paper);gap:.05rem}.hero-images{position:relative;width:min(90%,44rem);aspect-ratio:16 / 9;overflow:hidden;background:#050504}.hero-img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;opacity:0;transition:opacity 80ms cubic-bezier(.4,0,.2,1)}.hero-img.active{opacity:1}.hero-body{position:relative;z-index:2;display:flex;flex-direction:column;gap:.5rem;padding:clamp(1.5rem,4vh,3rem) var(--page);width:100%}.hero-title{font-size:clamp(2rem,6vw,4.5rem);font-weight:300;line-height:1;color:var(--ink);letter-spacing:-.01em}.hero-subtitle{font-size:clamp(.9rem,1.5vw,1.1rem);font-weight:400;color:var(--soft-ink);margin:0}.hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;padding-bottom:.6rem}.hero-meta-item{font-size:.66rem;font-weight:200;letter-spacing:.22em;text-transform:uppercase;color:#fff9}.project-strip{display:flex;align-items:baseline;flex-wrap:wrap;row-gap:clamp(1.5rem,4vw,3rem);-moz-column-gap:clamp(2rem,5vw,4.5rem);column-gap:clamp(2rem,5vw,4.5rem);padding:clamp(1.5rem,3vh,2.5rem) var(--page) clamp(1rem,2vh,1.8rem)}.strip-item{display:flex;flex-direction:column;gap:.65rem;max-width:min(22rem,100%)}.strip-label{font-size:.6rem;font-weight:200;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}.strip-value{font-size:clamp(1.2rem,2vw,1.6rem);font-weight:300;color:var(--ink);letter-spacing:.01em;overflow-wrap:anywhere}.strip-divider{flex:1;height:1px;background:#0d0d0b14;align-self:center;margin-bottom:.3rem;min-width:2rem}.project-description{padding:clamp(1.5rem,4vh,3rem) var(--page) clamp(5rem,12vh,9rem);max-width:68rem}.project-description p{font-size:clamp(1rem,2vw,1.4rem);font-weight:300;line-height:1.38;color:var(--ink);letter-spacing:.005em}.project-video{margin-bottom:clamp(5rem,12vh,9rem)}.project-video-frame{position:relative;background:var(--ink);aspect-ratio:16 / 9;overflow:hidden}.project-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.project-gallery{padding:0 var(--page) clamp(5rem,12vh,9rem)}.gallery-grid,.gallery-row{display:grid;gap:clamp(.8rem,2vw,1.8rem)}.gallery-row.row-1{grid-template-columns:1fr}.gallery-row.row-2{grid-template-columns:1.4fr 1fr}.gallery-row.row-3{grid-template-columns:1fr 1fr 1fr}.gallery-row.row-2-alt{grid-template-columns:1fr 1.4fr}.gallery-item{overflow:hidden;background:#0d0d0b0a}.gallery-item img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .9s cubic-bezier(.4,0,.2,1)}.gallery-item:hover img{transform:scale(1.03)}.gallery-item.cinema{aspect-ratio:2.35 / 1}.gallery-item.wide{aspect-ratio:16 / 9}.gallery-item.tall{aspect-ratio:3 / 4}.gallery-item.portrait{aspect-ratio:2 / 3}.gallery-item.square{aspect-ratio:1}.project-details{padding:0 var(--page) clamp(5rem,12vh,9rem);display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:clamp(2.5rem,6vw,5rem)}.detail-block h3{font-size:.6rem;font-weight:200;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-bottom:1.2rem}.detail-block p{font-size:.88rem;font-weight:300;line-height:1.78;color:var(--soft-ink);margin:0}.detail-block ul{list-style:none;display:grid;gap:.55rem;margin:0;padding:0}.detail-block li{font-size:.86rem;font-weight:300;color:var(--soft-ink);line-height:1.5;padding-left:1.2rem;position:relative}.detail-block li:before{content:"—";position:absolute;left:0;color:var(--muted);font-weight:200}.project-footer{padding:clamp(3rem,6vh,5rem) var(--page);display:flex;align-items:center;justify-content:space-between;opacity:.36}.project-footer span{font-size:.65rem;font-weight:200;letter-spacing:.2em;text-transform:uppercase}.fade-up{opacity:0;transform:translateY(1.6rem);transition:opacity .9s cubic-bezier(.4,0,.2,1),transform .9s cubic-bezier(.4,0,.2,1)}.fade-up.visible{opacity:1;transform:none}.not-found-view{display:grid;place-items:center;min-height:100svh;background:var(--paper);text-align:center}.not-found-view h1{margin:0 0 1.5rem;font-size:clamp(2.5rem,7vw,6rem);font-weight:300}.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;border:1px solid var(--line);border-radius:2px;background:#fffefb9e;color:var(--ink);padding:.72rem 1.05rem;cursor:pointer;font-family:var(--font-sans);transition:border-color .24s ease,background .24s ease,color .24s ease,transform .24s ease}.button:hover,.button:focus-visible{border-color:var(--ink);transform:translateY(-1px)}.button-dark{border-color:var(--ink);background:var(--ink);color:var(--white)}.manage-view{padding-top:5.5rem;padding-bottom:4rem}.manage-view--login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.manage-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .25rem}.manage-header h1{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1;margin:0}.manage-header-actions{display:flex;gap:.4rem;align-items:center;flex-shrink:0}.notice{display:flex;align-items:center;gap:.5rem;font-size:.84rem;padding:.6rem .9rem;border-radius:8px;margin-bottom:1.25rem;border:1px solid var(--line)}.notice--ok{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.notice--warn{background:#fefce8;color:#854d0e;border-color:#fde68a}.manage-list-panel{background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--line);background:var(--white)}.panel-head h2{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 .2rem;display:flex;align-items:center;gap:.4rem}.panel-subtitle{margin:0;color:var(--muted);font-size:.78rem}.count-badge{font-size:.68rem;font-weight:700;padding:.1rem .42rem;border:1px solid var(--line);border-radius:100px;color:var(--muted)}.manage-projects-list{list-style:none;margin:0;padding:0}.manage-item{display:grid;grid-template-columns:2.4rem 44px 1fr auto;gap:.85rem;align-items:center;padding:.65rem 1.25rem;border-bottom:1px solid var(--line);background:var(--white);transition:background .1s;position:relative}.manage-item:last-child{border-bottom:none}.manage-item:hover{background:#fafafa}.manage-item--active{background:#f4f8ff}.manage-item--active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink);border-radius:0 2px 2px 0}.manage-item--dragging{opacity:.35;background:#f5f5f5}.manage-item--drag-over-top{box-shadow:inset 0 2px 0 var(--ink)}.manage-item--drag-over-bottom{box-shadow:inset 0 -2px 0 var(--ink)}.manage-drag-handle{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:5px;color:#ccc;cursor:grab;flex-shrink:0;transition:color .12s,background .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.manage-drag-handle:hover{color:var(--soft-ink);background:#efefef}.manage-drag-handle:active{cursor:grabbing}.manage-item-thumb,.manage-item-thumb--empty{width:44px;height:44px;border-radius:6px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border:1px solid var(--line);display:block}.manage-item-thumb--empty{background:#f0f0f0}.manage-item-meta{min-width:0;display:flex;flex-direction:column;gap:.12rem}.manage-item-meta strong{font-size:.875rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manage-item-meta span{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.featured-badge{display:inline-block;width:-moz-fit-content;width:fit-content;font-size:.64rem;font-weight:700;color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:100px;padding:.07rem .42rem}.manage-item-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.delete-confirm-label{font-size:.75rem;color:#d32f2f;font-weight:700;white-space:nowrap}dialog.manage-dialog{position:fixed;inset:0;margin:auto;width:calc(100vw - 2rem);max-width:660px;max-height:calc(100dvh - 3rem);overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:0;box-shadow:0 12px 48px #00000029,0 2px 8px #0000000f;background:var(--white);overscroll-behavior:contain}dialog.manage-dialog::backdrop{background:#0a0a0a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-head{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line);background:var(--white)}.dialog-head-left{min-width:0}.dialog-head h2{font-size:.95rem;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.01em}.dialog-head-sub{margin:.15rem 0 0;font-size:.76rem;color:var(--muted)}.editing-badge{font-size:.73rem;padding:.18rem .6rem;background:#eff6ff;color:#1d4ed8;border-radius:100px;border:1px solid #bfdbfe;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;display:block;flex-shrink:0}.dialog-close-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--soft-ink);cursor:pointer;flex-shrink:0;transition:background .12s,color .12s}.dialog-close-btn:hover{background:#f5f5f5;color:var(--ink)}.dialog-close-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}#manage-form{padding:0 1.25rem 1.25rem}.form-section{border:none;padding:0;margin:0}.form-section+.form-section{border-top:1px solid var(--line)}.form-section-title{display:block;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:1rem 0 .6rem}.field{display:flex;flex-direction:column;gap:.28rem;min-width:0}.field--full{width:100%}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.form-section>.field,.form-section>.field-row,.form-section>.image-upload-area,.form-section>.detail-block{margin-bottom:.6rem}.field-label{font-size:.78rem;font-weight:600;color:var(--soft-ink)}.field-hint{font-weight:400;color:var(--muted)}.required{color:#d32f2f}.manage-dialog input:not([type=file]),.manage-dialog textarea,.panel-login input{width:100%;padding:.5rem .7rem;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink);font:inherit;font-size:.875rem;resize:vertical;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.manage-dialog input:not([type=file]):focus-visible,.manage-dialog textarea:focus-visible,.panel-login input:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #0000000f}.manage-dialog input[type=file]{font-size:.8rem;color:var(--soft-ink);cursor:pointer}.image-upload-area{display:grid;grid-template-columns:86px 1fr;gap:.75rem;align-items:start}.image-upload-controls{display:flex;flex-direction:column;gap:.5rem}.manage-upload-preview{border:1px dashed var(--line);border-radius:8px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f8f8f8}.manage-upload-preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.preview-placeholder{display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--muted);font-size:.7rem;text-align:center;padding:.5rem}.manage-upload-preview--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:4px;aspect-ratio:unset;padding:.5rem;min-height:58px}.manage-upload-preview--grid img{border-radius:4px;width:100%;aspect-ratio:1;-o-object-fit:cover;object-fit:cover}.preview-placeholder--sm{padding:.75rem}.detail-block{display:grid;grid-template-columns:1fr 2fr;gap:.65rem;align-items:start}.form-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:1rem;margin-top:.25rem;border-top:1px solid var(--line)}.btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;font-weight:500;padding:.5rem 1rem;border-radius:6px;border:1px solid var(--line);cursor:pointer;background:var(--white);color:var(--ink);font-family:inherit;white-space:nowrap;transition:background .12s,opacity .12s;line-height:1}.btn:hover{background:#f5f5f5}.btn:active{opacity:.8}.btn:disabled{cursor:not-allowed;opacity:.35}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn--primary{background:var(--ink);color:var(--white);border-color:var(--ink)}.btn--primary:hover{opacity:.85;background:var(--ink)}.btn--ghost{background:transparent;border-color:transparent;color:var(--soft-ink)}.btn--ghost:hover{background:#f5f5f5;color:var(--ink)}.btn--danger{background:#fff0f0;color:#d32f2f;border-color:#f5c6c6}.btn--danger:hover{background:#ffe0e0}.btn--danger-ghost{background:transparent;border-color:transparent;color:#ccc}.btn--danger-ghost:hover{background:#fff0f0;color:#d32f2f}.btn--sm{font-size:.8rem;padding:.38rem .85rem}.btn--xs{font-size:.73rem;padding:.25rem .6rem}.btn--full{width:100%;justify-content:center}.btn--icon{width:2rem;height:2rem;padding:0;justify-content:center}.panel-login{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:2rem;width:100%;max-width:360px}.panel-login h1{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;margin:.2rem 0 1.5rem}.login-form{display:flex;flex-direction:column;gap:.75rem}.hint{font-size:.78rem;color:var(--muted);margin:0}.hint--center{text-align:center;padding:2.5rem 1.25rem}.hint code{font-size:.75rem;background:#f0f0f0;padding:.1em .35em;border-radius:3px}.upload-save-hint{margin-top:-.2rem}.crop-overlay{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;background:#141414d1;color:#f0f0f0;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1rem}.crop-overlay:not([open]){display:none}.crop-panel{background:#1e1e1e;border-radius:14px;width:100%;max-width:760px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px #0000008c;font-family:inherit}.crop-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid rgba(255,255,255,.08)}.crop-title{font-size:.875rem;font-weight:600;color:#f0f0f0}.crop-close-btn{background:transparent;border:none;color:#888;cursor:pointer;padding:.3rem;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.crop-close-btn:hover{background:#ffffff14;color:#ccc}.crop-close-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.crop-stage-wrapper{flex:1;min-height:0;max-height:55vh;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:1rem;background:#141414}.crop-target-img{display:block;max-width:100%;max-height:55vh;width:auto;height:auto}.crop-toolbar{padding:.85rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.7rem;background:#1e1e1e}.crop-toolbar-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.crop-toolbar-group{display:flex;align-items:center;gap:.5rem}.crop-toolbar-label{font-size:.72rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;min-width:60px}.crop-ar-buttons{display:flex;gap:.25rem;flex-wrap:wrap}.ar-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#aaa;font-size:.75rem;font-weight:600;padding:.3rem .6rem;border-radius:6px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.ar-btn:hover{background:#ffffff1f;color:#eee}.ar-btn--active{background:#ffffff26;color:#fff;border-color:#ffffff59}.ar-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.crop-zoom-slider{width:120px;accent-color:#fff;cursor:pointer;height:4px}.crop-flip-btn,.crop-rotate-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#aaa;border-radius:6px;cursor:pointer;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;padding:0}.crop-flip-btn:hover,.crop-rotate-btn:hover{background:#ffffff24;color:#eee}.crop-flip-btn:focus-visible,.crop-rotate-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.crop-panel-footer{display:flex;justify-content:flex-end;gap:.6rem;padding:.85rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);background:#1e1e1e}.crop-panel-footer .btn{font-size:.82rem;padding:.45rem 1rem}.crop-cancel-btn{background:transparent;border:1px solid rgba(255,255,255,.15);color:#aaa}.crop-cancel-btn:hover{background:#ffffff0f;color:#ccc}.crop-confirm-btn{background:#f5f5f5;color:#111;border:1px solid transparent}.crop-confirm-btn:hover{background:#e8e8e8}@media(max-width:760px){:root{--header-h: 4.2rem}.site-header{padding:.85rem 1rem}.brand,.site-nav{font-size:.86rem}.view{padding:calc(var(--header-h) + 1.4rem) 1rem 3rem}.projects-view{padding:0}.project-contact{top:.85rem;right:1rem;left:1rem;justify-content:space-between;gap:.6rem;font-size:.68rem}.project-contact a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-grid{grid-template-columns:1fr;gap:2.1rem;padding:4rem 1rem}.project-card,.project-card-featured{grid-column:auto;height:min(24rem,52svh);min-height:18rem}.project-card-featured{height:min(36rem,72svh);min-height:29rem}.project-open{padding:0}.project-number{top:.8rem;left:.82rem;font-size:.68rem}.projects-intro{top:.78rem;left:2.6rem;font-size:.68rem}.project-kicker,.project-role{font-size:.58rem}.project-copy{gap:.2rem;padding:.9rem .9rem .9rem 2.65rem}.project-copy strong,.project-card-featured .project-copy strong{font-size:clamp(1.8rem,10vw,3.2rem);line-height:.98}.project-card-description{font-size:.78rem;-webkit-line-clamp:2}.project-card-side{display:none}.image-upload-area,.field-row,.detail-block{grid-template-columns:1fr}}
