:root{color-scheme:dark;--motion-ease:cubic-bezier(.22,1,.36,1)}html{background:#1a1a1a;scrollbar-color:#666 #1a1a1a}body{background:#1a1a1a;margin:0}::selection{background:#e4dfd5;color:#1a1a1a}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:1px solid #ddd!important;outline-offset:6px}a{touch-action:manipulation}.image{overflow:hidden!important}.image::before{transform:translate3d(0,var(--image-y,0px),0) scale(1.055);transition:transform 1.2s var(--motion-ease);will-change:transform}a:hover .image::before{transform:translate3d(0,var(--image-y,0px),0) scale(1.10)}a img{transition:transform 1.2s var(--motion-ease)}a:hover img{transform:scale(1.025)}
.portfolio-carousel{position:relative;flex:none;width:100%;height:720px;overflow:hidden;margin:0 0 32px;isolation:isolate;cursor:grab;touch-action:pan-y;background:#efefef}.portfolio-carousel:active{cursor:grabbing}.portfolio-slide{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.055);transition:opacity 1.3s ease,transform 7s linear;pointer-events:none;user-select:none}.portfolio-slide.is-active{opacity:1;transform:scale(1)}.carousel-controls{position:absolute;bottom:24px;right:32px;display:flex;align-items:center;gap:14px;padding:5px 10px;border-radius:30px;background:rgba(26,26,26,.62);backdrop-filter:blur(12px);color:#fff;font:12px 'Instrument Sans',sans-serif;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}.portfolio-carousel:hover .carousel-controls,.portfolio-carousel:focus-within .carousel-controls{opacity:1;transform:none}.carousel-controls button{border:0;background:none;color:inherit;font:16px sans-serif;padding:8px;cursor:pointer}.slide-count{font-variant-numeric:tabular-nums}.carousel-hint{position:absolute;left:32px;bottom:36px;font:12px 'Instrument Sans',sans-serif;color:white;mix-blend-mode:difference;opacity:0;transition:opacity .4s}.portfolio-carousel:hover .carousel-hint{opacity:1}
.portfolio-menu{box-sizing:border-box;border:0;margin:0;padding:32px 7.5vw;background:#1a1a1a;color:#fff;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;overflow:auto}.portfolio-menu::backdrop{background:#1a1a1a}.portfolio-menu[open]{display:flex;flex-direction:column;animation:menu-in .6s var(--motion-ease)}.menu-top{display:flex;justify-content:space-between;align-items:center;font:14px 'Instrument Sans',sans-serif}.portfolio-menu a{color:inherit;text-decoration:none}.menu-close{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:8px 0 8px 24px}.menu-close span{margin-left:14px;font-size:24px}.portfolio-menu nav{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:auto 0;padding:60px 0}.portfolio-menu nav a{display:flex;gap:24px;align-items:baseline;font:clamp(48px,8vw,112px)/1.3 'Ppeiko Thin',serif;letter-spacing:-.04em;transition:transform .5s var(--motion-ease),opacity .3s}.portfolio-menu nav a:hover{transform:translateX(18px)}.portfolio-menu nav span{font:12px 'Instrument Sans',sans-serif;letter-spacing:0;opacity:.6}.menu-email{font:14px 'Instrument Sans',sans-serif;border-top:1px solid #555;padding-top:24px;margin-bottom:10px}.project-cursor{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:#f4f1e9;color:#1a1a1a;font:13px 'Instrument Sans',sans-serif;z-index:1000;pointer-events:none;opacity:0;scale:.5;transition:opacity .25s,scale .4s var(--motion-ease);will-change:transform}.project-cursor.is-visible{opacity:1;scale:1}.scroll-progress{position:fixed;left:0;top:0;height:2px;width:100%;background:#e9e3d8;z-index:1001;transform:scaleX(0);transform-origin:left;opacity:.7;pointer-events:none}.form-note{font:12px/1.8 'Instrument Sans',sans-serif;color:#aaa;max-width:100%;margin:12px 0 0}.privacy-link{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}.privacy-dialog{width:min(480px,calc(100vw - 64px));border:1px solid #555;background:#1a1a1a;color:#eee;padding:32px;font:14px/1.9 sans-serif}.privacy-dialog::backdrop{background:#000b;backdrop-filter:blur(8px)}.privacy-dialog h2{font:32px 'Ppeiko Thin',serif;margin:0 0 24px}.privacy-dialog button{margin-top:24px;border:1px solid #aaa;padding:10px 20px;background:transparent;color:inherit;cursor:pointer}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}@keyframes menu-in{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:none}}@view-transition{navigation:auto}::view-transition-old(root){animation:out .22s ease both}::view-transition-new(root){animation:in .6s var(--motion-ease) both}@keyframes out{to{opacity:0;transform:translateY(-8px)}}@keyframes in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:840px){.portfolio-menu{padding:32px 56px}}@media(max-width:540px){.portfolio-carousel{height:500px}.portfolio-menu{padding:32px 24px}.carousel-controls{bottom:16px;right:16px;gap:8px}.carousel-hint{left:16px;bottom:30px}.project-cursor{display:none}.portfolio-menu nav a{font-size:56px}.menu-email{font-size:12px}}@media(hover:none){.carousel-controls{opacity:1;transform:none}.carousel-hint{display:none}.project-cursor{display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.image::before{transform:none!important}.project-cursor,.scroll-progress{display:none}}
/* Project navigation: a central aperture opens into the next case study. */
.route-stage,.route-outgoing{position:fixed;inset:0;z-index:2000;background:#1a1a1a;overflow:hidden;pointer-events:none;contain:paint;will-change:clip-path}.route-outgoing{z-index:2001}.route-stage>div,.route-outgoing>div{width:100%;min-height:100%;background:#1a1a1a;transform-origin:center top}.route-stage .StudioCanvas{transform-origin:center top}.route-announcer{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}html[data-routing]{cursor:progress}html[data-routing] .project-cursor{opacity:0!important}html[data-routing] a{pointer-events:none}[data-project-title]{transform-origin:left top;will-change:transform,clip-path}[data-project-information]{transform-origin:center top}[data-project-media]{transform-origin:center top}::view-transition-old(root),::view-transition-new(root){animation:none}
@media(prefers-reduced-motion:reduce){.route-stage,.route-outgoing{will-change:auto}}

/* Fold the outgoing Works screen into a central hairline on a white bridge. */
.route-bridge{position:fixed;inset:0;z-index:1999;background:#fff;pointer-events:none}.route-outgoing{z-index:2001;transform-origin:center;will-change:clip-path}.route-stage{z-index:2000}html[data-transition-phase] .scroll-progress{opacity:0}

.work-card{color:inherit;text-decoration:none;cursor:pointer}.work-card .image:before{transition:transform 1.2s var(--motion-ease)}.work-card:hover .image:before{transform:translate3d(0,var(--image-y,0px),0) scale(1.08)}.work-card:focus-visible{outline:1px solid #ddd;outline-offset:8px}
/* One image travels from the Works thumbnail into the project hero. */
.project-hero{position:relative;display:block;align-self:stretch;flex:none;width:100%;max-width:100%;height:100svh;min-height:360px;max-height:1100px;overflow:hidden;margin:0;padding:0;background:#1a1a1a;transform:none!important;translate:none!important}.project-hero-image{display:block!important;position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;object-position:50% 50%;transform:none!important}.project-flight{position:fixed;z-index:2200;overflow:hidden;pointer-events:none;background:#1a1a1a;isolation:isolate;will-change:left,top,width,height}.project-flight>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;user-select:none;transform-origin:center}.project-shade{position:fixed;inset:0;z-index:1999;background:#1a1a1a;pointer-events:none}.project-duplicate-cover{display:none!important}html[data-transition-phase] .scroll-progress{opacity:0}
@media(prefers-reduced-motion:reduce){.project-flight{will-change:auto}}

/* Made Thought-inspired image entrances: blur resolves once on viewport entry. */
html.image-reveals [data-image-reveal]{filter:blur(16px);transition:filter .7s cubic-bezier(.4,0,.2,1) .15s}
html.image-reveals [data-image-reveal][data-image-revealed]{filter:blur(0px)}
html.image-reveals img[data-image-reveal]{transition:filter .7s cubic-bezier(.4,0,.2,1) .15s,transform 1.2s var(--motion-ease),opacity 1.3s ease}
html.image-reveals .portfolio-slide[data-image-reveal]{transition:filter .7s cubic-bezier(.4,0,.2,1) .15s,opacity 1.3s ease,transform 7s linear}
@media(prefers-reduced-motion:reduce){html.image-reveals [data-image-reveal]{filter:none!important;transition:none!important}}

/* Project detail headings use the bundled PP Eiko typeface. */
body [data-project-title]{font-family:'Ppeiko Thin',serif!important;font-weight:200!important;font-style:normal;}
