/* Only two main views share one interactive canvas. The index belongs to orbit. */
.experience-track{height:1000svh;min-height:6000px}.journey,.journey:not(.is-enhanced){position:fixed;inset:0 var(--edge);height:100svh;min-height:0;padding:0;overflow:visible}.journey .light-field,.journey:not(.is-enhanced) .light-field{position:absolute;inset:var(--nav-height) 0 36px;width:auto;height:auto;min-height:0;transform-origin:50% 50%;contain:layout paint}.journey.is-enhanced .light-field{z-index:auto}.journey .field-canvas{opacity:0}.journey .shader-ready .field-canvas{opacity:1!important}.journey .hero-copy,.journey .field-top{z-index:2}.journey .field-top{pointer-events:none}.journey .field-top .interactive-label{pointer-events:auto}.journey .hero-copy{pointer-events:none}.journey .hero-title,.journey .hero-name,.journey .interactive-label{pointer-events:auto}.journey-caption,.journey:not(.is-enhanced) .journey-caption{display:flex}.site-footer{display:none}.main-nav a{min-width:80px}.orbit-panel{position:absolute;inset:0;visibility:hidden;opacity:0;z-index:3;pointer-events:none}.orbit-panel.is-ready{pointer-events:auto}.stage{position:absolute;inset:0;overflow:clip;border-radius:inherit;touch-action:pan-y;outline-offset:-6px;background:none}.stage:focus-visible{outline:1px solid #263f3860}.orbit-labels,.orbit-images{position:absolute;inset:0;pointer-events:none}.orbit-item{position:absolute;left:0;top:0;pointer-events:auto;will-change:transform,opacity;transform-origin:center;backface-visibility:hidden;border:0;background:none;padding:0}.work-label{display:flex;gap:18px;align-items:baseline;white-space:nowrap;line-height:1.25;padding:10px 2px;font-size:clamp(24px,3.2vw,52px);letter-spacing:-.055em;font-weight:400;transform-origin:right center;text-align:right}.work-label .item-number{font-size:10px;letter-spacing:0;align-self:center;color:#465c56;min-width:16px}.work-label[aria-current=true]{font-weight:500}.work-label:hover{color:#255d58!important}.work-label:not(button){cursor:default}.image-item{width:clamp(170px,20vw,300px);aspect-ratio:1;border-radius:20px;background:#f9faf7;box-shadow:0 10px 26px #2b4c4510;overflow:hidden;transition:box-shadow .2s}.image-item img{display:block;width:100%;height:100%;object-fit:cover;transition:scale .4s var(--ease)}.image-item:hover img{scale:1.045}.image-item:hover{box-shadow:0 15px 36px #2b4c4524}.image-item[aria-current=true]{box-shadow:0 20px 48px #29423e22}.image-caption{position:absolute;inset:auto 13px 12px auto;background:#ffffffeb;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-size:16px;opacity:0;transition:opacity .2s}.image-item[aria-current=true] .image-caption,.image-item:hover .image-caption{opacity:1}.placeholder-tile{background:var(--tile-color);box-shadow:none;cursor:default}.stage-top{position:absolute;top:32px;left:36px;right:36px;z-index:5;display:flex;justify-content:space-between;gap:20px;pointer-events:none;color:#000}.stage-top h2{font-size:13px;font-weight:500;letter-spacing:-.01em;margin:0}.stage-top p{font-size:11px;margin-top:10px;letter-spacing:.05em}.stage-top .year{font-size:11px;margin-left:10px;color:#4c5e57}.views{display:flex;position:relative;isolation:isolate;gap:4px;padding:4px;border-radius:30px;align-self:flex-start;pointer-events:auto}.view{height:36px;min-width:64px;padding:0 14px;border:0;border-radius:24px;background:none;font-size:11px;transition:background .2s}.view.active{background:#fff;box-shadow:0 2px 10px #213d3510}.view:hover{background:#ffffffb0}.active-info{position:absolute;left:36px;bottom:100px;width:230px;z-index:4;pointer-events:none}.info-category{font-size:10px;letter-spacing:.09em;color:#253c35}.info-description{font-size:12px;line-height:1.9;margin:12px 0 8px;max-width:210px;text-wrap:pretty;color:#172421}.stage-bottom{position:absolute;left:36px;right:36px;bottom:24px;display:flex;justify-content:flex-start;align-items:center;z-index:5}.counter{display:flex;gap:14px;align-items:center;font-size:11px;font-variant-numeric:tabular-nums}.counter-line{width:72px;height:1px;background:#213c352b;position:relative}.counter-line i{position:absolute;left:0;top:0;height:1px;background:#1e3d35;transition:width .25s}.scroll-hint{position:absolute;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.05em;display:flex;gap:20px;color:#344b45}.index-section{position:relative;min-height:100svh}.index-mode .journey,.index-mode .experience-track,.index-mode .pin-spacer{display:none!important}.index-mode .site-footer{display:flex}.index-section .works-panel{min-height:0;padding-top:calc(var(--nav-height) + 30px)}.index-section .work-continuation{padding-top:55px}.index-section .orbit-link{cursor:pointer}.orbit-panel[aria-hidden=true]{pointer-events:none}.hero-copy[aria-hidden=true],.field-top[aria-hidden=true]{pointer-events:none}.hero-copy[aria-hidden=true] *,.field-top[aria-hidden=true] *{pointer-events:none!important}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}html:has(.index-mode){scrollbar-width:auto}html:has(.index-mode)::-webkit-scrollbar{display:initial}
@media(max-width:700px){.main-nav a{min-width:61px}.stage-top{top:25px;left:22px;right:22px}.stage-top h2{font-size:11px}.stage-top p{font-size:9px;max-width:150px;line-height:1.7}.stage-top .year{display:none}.views{gap:0;padding:3px}.view{padding:0 11px;min-width:48px;height:36px;font-size:10px}.work-label{font-size:clamp(23px,6vw,34px);gap:8px}.work-label .item-number{font-size:8px;min-width:12px}.image-item{width:clamp(128px,35vw,210px);border-radius:14px}.active-info{left:22px;bottom:84px;width:190px}.info-category{font-size:9px}.info-description{font-size:11px;line-height:1.8;margin-top:8px;max-width:190px}.stage-bottom{left:22px;right:22px;bottom:20px}.scroll-hint{font-size:9px;gap:10px}.counter{font-size:10px;gap:8px}.counter-line{width:40px}.index-section .works-panel{padding-top:calc(var(--nav-height) + 20px)}}
@media(max-height:620px){.active-info{bottom:72px}.info-description{display:none}.stage-top{top:22px}.stage-top p{display:none}.stage-bottom{bottom:18px}.work-label{font-size:28px}.image-item{width:160px}}
@media(prefers-reduced-motion:reduce){.orbit-item{will-change:auto}.journey,.journey:not(.is-enhanced){position:fixed;padding:0}.experience-track{height:1000svh}.image-item img{transition:none}.journey-caption{position:absolute}.hero-name:hover{font-variation-settings:'wght' 430}}
.journey,.journey:not(.is-enhanced){width:calc(100vw - var(--edge)*2)!important;max-width:none!important;left:var(--edge)!important;right:auto!important}
.journey,.journey:not(.is-enhanced){top:0!important;bottom:auto!important;height:100svh!important;max-height:none!important;transform:none!important}
.index-section.is-returning{background:var(--paper);pointer-events:none;will-change:transform,opacity;isolation:isolate}
@media(prefers-reduced-motion:reduce){.index-section.is-returning{will-change:auto}}
/* Quiet liquid-glass edges, with a separate surface so hover never changes the orbit path. */
@property --tile-light-x{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --tile-light-y{syntax:'<percentage>';inherits:true;initial-value:18%}
.image-item,.image-item:hover,.image-item[aria-current=true],.placeholder-tile{overflow:visible;background:transparent;box-shadow:none;perspective:800px}
.tile-surface{--tile-tilt-x:0deg;--tile-tilt-y:0deg;--tile-light-x:50%;--tile-light-y:18%;display:block;position:absolute;inset:0;border-radius:inherit;isolation:isolate;overflow:hidden;background:#ffffff12;backdrop-filter:blur(2px) saturate(1.04);-webkit-backdrop-filter:blur(2px) saturate(1.04);border:.65px solid #ffffff58;box-shadow:0 5px 14px #283e480d,inset 0 .7px .7px #ffffff85,inset 0 -.7px 1px #46647716;transform:rotateX(var(--tile-tilt-x)) rotateY(var(--tile-tilt-y));transform-origin:50% 50%;transition:transform .48s cubic-bezier(.22,.68,0,1),box-shadow .4s ease,--tile-light-x .32s ease-out,--tile-light-y .32s ease-out;pointer-events:none}
.tile-content{display:block;position:absolute;inset:0;border-radius:inherit;overflow:hidden;background:var(--tile-color,#fff)}
.image-item .tile-content img{display:block;width:100%;height:100%;object-fit:contain;padding:12px;background:#fff;scale:1;transform:none;transition:none}
.tile-surface::before{content:'';position:absolute;inset:0;z-index:2;border-radius:inherit;padding:1px;background:radial-gradient(ellipse at var(--tile-light-x) var(--tile-light-y),#ffffffed 0%,#ffffff60 28%,#ffffff10 62%),linear-gradient(135deg,#fff9,#ffffff08 48%,#c4d9ea65);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.32;transition:opacity .35s;pointer-events:none}
.tile-surface::after{content:'';position:absolute;inset:0;z-index:3;border-radius:inherit;background:radial-gradient(ellipse at var(--tile-light-x) var(--tile-light-y),#ffffff50,transparent 64%);opacity:0;transition:opacity .4s;pointer-events:none}
.image-item[aria-current=true] .tile-surface{box-shadow:0 7px 18px #223a4e12,inset 0 .7px .7px #ffffff85,inset 0 -.7px 1px #46647716}
.image-item.is-hovered .tile-surface{transform:translateY(-1px) rotateX(var(--tile-tilt-x)) rotateY(var(--tile-tilt-y));box-shadow:0 10px 22px #223a4e19,inset 0 .7px 1px #ffffffaa,inset 0 -.7px 1px #4664771c;will-change:transform}
.image-item.is-hovered .tile-surface::before,.image-item:focus-visible .tile-surface::before{opacity:.55}
.image-item.is-hovered .tile-surface::after{opacity:.12}
.image-item:focus-visible .tile-surface{box-shadow:0 7px 18px #223a4e12,inset 0 0 0 1px #ffffff80}
.dialog-morph-picture.logo-preview{padding:0;background:#fff}
.dialog-morph-picture.logo-preview img{object-fit:contain;padding:12px;background:#fff}
@media(max-width:700px){.tile-content{inset:0;border-radius:inherit}.image-item .tile-content img{padding:7px}.tile-surface::before{padding:1px}.dialog-morph-picture.logo-preview{padding:0}.dialog-morph-picture.logo-preview img{padding:7px}}
@media(prefers-reduced-motion:reduce){.tile-surface,.image-item.is-hovered .tile-surface{transform:none!important;transition:none;will-change:auto}.tile-surface::before,.tile-surface::after{transition:none}}
/* Keep index content behind an opaque header plane, including during the return transition. */
.index-mode .site-header,body:has(.index-section.is-returning) .site-header{pointer-events:auto}
.index-mode .site-header::before,body:has(.index-section.is-returning) .site-header::before{content:'';position:absolute;inset:0 calc(-1 * var(--edge));z-index:-1;background:var(--paper);box-shadow:0 1px 0 #1724210a;pointer-events:none}
