/* Spatial case homepage. The six visible positions form one continuous reel. */

#home{position:relative;height:100svh;min-height:520px;padding:0;display:block;background:#101110;color:#f5f5f0;overflow:hidden;touch-action:pinch-zoom}
#home .hero-stage{position:absolute;inset:0;z-index:4;perspective:none;overflow:visible;touch-action:pinch-zoom;cursor:grab}
.home-glass{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:linear-gradient(145deg,#14171a,#090b0e 65%,#101316)}
.home-glass-color{position:absolute;inset:-18%;background:center/cover no-repeat;filter:blur(90px) saturate(.1) brightness(.78);opacity:0;transition:opacity 2.2s ease}
.home-glass-color.is-visible{opacity:.055}
.home-glass::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,#ffffff03,transparent 50%,#ced8e302),rgb(7 9 12 / .3);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);box-shadow:inset 0 1px 0 #ffffff08}
/* Soft concentric echoes pass outward beneath the black frosted surface. */
.glass-liquid{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:.65}
.glass-liquid i{position:absolute;display:block;width:115%;height:105%;left:50%;top:50%;border-radius:50%;background:radial-gradient(ellipse at center,transparent 46%,rgb(150 160 174 / .04) 51%,rgb(219 224 234 / .3) 57%,rgb(146 160 177 / .09) 64%,transparent 70%);filter:blur(12px);animation:glass-echo 18s linear infinite;transform:translate(-50%,-50%) scale(1);opacity:0}
.glass-liquid i:nth-child(2){animation-delay:-4.5s}
.glass-liquid i:nth-child(3){animation-delay:-9s}
.glass-liquid i:nth-child(4){animation-delay:-13.5s}
@keyframes glass-echo{0%{transform:translate(-50%,-50%) scale(.32,.4);opacity:0}18%{opacity:.75}65%{opacity:.85}100%{transform:translate(-50%,-50%) scale(1.85,1.65);opacity:0}}
.case-orbit{position:absolute;inset:0;transform-style:flat;pointer-events:none}
.case-orbit-anchor{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:flat;pointer-events:none}
.case-orbit-face{position:absolute;left:0;top:0;display:block;overflow:visible;background:transparent;backface-visibility:hidden;transform-origin:center;pointer-events:auto;cursor:pointer}
.case-orbit-face img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;user-select:none;-webkit-user-drag:none;pointer-events:none;backface-visibility:hidden;transform:translateZ(.1px);outline:1px solid transparent;clip-path:inset(.5px)}
.case-orbit-face:focus-visible{outline:2px solid #fff;outline-offset:6px}
.case-orbit-face:hover img{filter:brightness(1.12)}
.home-case-name{position:absolute;left:50%;top:calc(100% + 12px);width:max-content;min-width:100%;display:grid;grid-template-columns:max-content 16px;gap:4px 10px;text-align:left;font-size:clamp(11px,.86vw,14px);font-weight:400;line-height:1.5;letter-spacing:0;color:#f5f5f0;opacity:var(--case-label,0);transform:translateX(-50%) translateY(calc((1 - var(--case-label,0))*7px));text-shadow:0 2px 8px #101110;pointer-events:none}
.home-case-brand{grid-column:1;font-size:.8em;line-height:1.4;color:#d6d9d0b3}
.home-case-title{grid-column:1;white-space:nowrap;text-wrap:nowrap;overflow-wrap:normal}
.home-case-arrow{grid-column:2;grid-row:1;align-self:center;font-size:16px;color:#ffffffa6}
.case-orbit-face.is-exploring .home-case-name{padding:10px 12px;border:1px solid #ffffff24;border-radius:10px;background:linear-gradient(125deg,#ffffff0d,transparent 65%),rgb(12 16 20 / .78);-webkit-backdrop-filter:blur(22px) saturate(.65);backdrop-filter:blur(22px) saturate(.65);box-shadow:0 10px 32px #0003,inset 0 1px 0 #ffffff0a;text-shadow:none}
.case-orbit-face.is-exploring .home-case-brand{color:#f1f3f0b3}
.case-orbit-face.is-exploring img{box-shadow:0 12px 45px #0006}
.home-case-credit{position:absolute;right:9px;bottom:8px;color:#fff9;font-size:10px;font-weight:400;line-height:1.4;text-shadow:0 1px 4px #000;pointer-events:none}
.home-scene-copy{position:absolute;left:50%;top:50%;width:min(34vw,560px);text-align:center;pointer-events:none;font-size:clamp(20px,1.65vw,32px);line-height:1.45;letter-spacing:-.035em;z-index:3}
.home-scene-copy p{margin:0}
.home-scene-copy{opacity:var(--copy-opacity,0);filter:blur(0);transition:opacity .3s ease,filter .3s ease}
#home.has-case-hover .home-scene-copy{filter:blur(9px)}
.home-scene-copy>small{display:block;margin-top:26px;font-size:10px;line-height:1.5;letter-spacing:.12em;color:#f5f5f066}
.home-case-cursor{display:none}
.home-case-cursor.visible{opacity:1}
#home .home-footer{position:absolute;left:var(--pad);right:var(--pad);bottom:max(22px,env(safe-area-inset-bottom));min-height:0;display:grid;grid-template-columns:1fr auto;gap:0 16px;align-items:center;font-size:14px;z-index:8;pointer-events:none}
#home .home-footer a,#home .home-footer button{pointer-events:auto}
#home #slide-number{font-variant-numeric:tabular-nums;font-size:.8em;white-space:nowrap}
#home #slide-number::after{content:none}
#home #slide-link{max-width:100%;line-height:1.35}
#home .home-footer .arrows button{width:48px;height:48px}
#home .home-hint{display:none}
#home .home-utility{position:absolute;left:var(--pad);bottom:max(23px,env(safe-area-inset-bottom));display:flex;gap:16px;font-size:11px;z-index:9}
#home .home-utility button{min-height:30px;opacity:.55;transition:opacity .2s}
#home .home-utility button:hover{opacity:1}
#home .home-footer{bottom:max(30px,env(safe-area-inset-bottom));transition:opacity .5s}
#home[data-scene=intro] .home-footer{opacity:0;pointer-events:none}
#home[data-scene=intro] .home-footer a,#home[data-scene=intro] .home-footer button{pointer-events:none}
#home[data-intro=logo] .home-utility,#home[data-intro=expand] .home-utility{opacity:0;pointer-events:none}
#home .home-utility{bottom:max(5px,env(safe-area-inset-bottom))}
.scene-dragging .case-orbit-face,.scene-dragging .hero-stage{cursor:grabbing!important}
.on-home .site-header{background:transparent;backdrop-filter:none;color:#fff}
@media(max-width:900px){
  .home-scene-copy{width:56vw;font-size:16px;line-height:1.65}
  #home .case-orbit-anchor{top:45%}
  #home .home-scene-copy{top:45%}
  #home .home-footer{grid-template-columns:1fr auto;grid-template-rows:auto;gap:8px 12px;bottom:max(47px,env(safe-area-inset-bottom));font-size:14px}
  #home #slide-number{grid-column:1;grid-row:1;font-size:11px;opacity:.55}
  #home .arrows{grid-column:2;grid-row:1}
  #home .home-hint{grid-column:1;font-size:10px}
  #home .home-utility{bottom:max(9px,env(safe-area-inset-bottom));gap:22px}
  .home-case-credit{font-size:9px;right:6px;bottom:5px}
  .home-case-cursor{display:none}
  .home-case-name{font-size:10px;top:calc(100% + 8px)}
}
@media(max-height:500px) and (orientation:landscape){#home .home-footer{bottom:12px}.home-utility,.home-hint{display:none!important}.home-scene-copy{font-size:18px}}
@media(prefers-reduced-motion:reduce){.home-glass-color{transition:none}.glass-liquid i{animation:none;opacity:0}.glass-liquid i:first-child{opacity:.3}}
@media(prefers-reduced-transparency:reduce){.home-glass{background:#101316}.home-glass-color,.glass-liquid,.home-glass::after{display:none}}

.mobile-home{display:none}
@media(max-width:900px), (max-height:500px) and (orientation:landscape) and (pointer:coarse){
  #home .hero-stage,#home .home-scene-copy,#home .home-logo-intro{display:none}
  #home .mobile-home{display:flex;position:absolute;inset:calc(80px + env(safe-area-inset-top)) 0 calc(146px + env(safe-area-inset-bottom));flex-direction:column;justify-content:center;gap:clamp(24px,5svh,50px);z-index:5}
  .mobile-home-intro{padding-inline:24px;text-align:center}.mobile-home-intro small{font-size:10px;letter-spacing:.2em;color:#9ba6ac}.mobile-home-intro p{margin:14px 0 0;font-size:clamp(24px,6.8vw,34px);line-height:1.45;letter-spacing:-.03em}
  .mobile-home-gallery{width:100%;position:relative;touch-action:pan-y pinch-zoom;user-select:none;aspect-ratio:100/54;flex-shrink:0}
  .mobile-home-track{position:absolute;inset:0;isolation:isolate}
  .mobile-home-card{position:absolute;left:50%;top:50%;display:block;will-change:transform;width:100%;padding:0;border:0;border-radius:14px;overflow:hidden;background:#171e25;aspect-ratio:16/10;color:white;box-shadow:0 18px 36px #0005;transform-origin:center;touch-action:pan-y pinch-zoom}
  .mobile-home-card[hidden]{display:none}.mobile-home-card:focus-visible{outline:2px solid #a3d5ff;outline-offset:4px}.mobile-home-card img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
  .mobile-home-play{position:absolute;right:14px;bottom:14px;padding:10px 16px;min-height:40px;background:#10171bc9;backdrop-filter:blur(14px);border:1px solid #ffffff40;border-radius:999px;font-size:13px;pointer-events:none;opacity:var(--cover-detail,1)}
  .mobile-home-credit{position:absolute;top:12px;left:12px;font-size:10px;text-shadow:0 1px 5px #000;pointer-events:none}
  .mobile-home-caption{padding:0 30px;min-height:80px;text-align:center}.mobile-home-caption h2{font-size:18px;line-height:1.55;font-weight:500;text-wrap:balance;margin:0}.mobile-home-caption p{font-size:12px;margin:12px 0 0;color:#9ca8b0}
  #home .home-footer{bottom:calc(72px + env(safe-area-inset-bottom));left:24px;right:24px;visibility:visible;opacity:1}
  #home .home-footer .arrows{grid-row:1;min-height:56px}#home .home-footer .arrows button{min-width:48px;min-height:48px}
  #home #slide-number{font-size:13px;opacity:.8}
  #home .home-utility{left:24px;right:24px;bottom:calc(13px + env(safe-area-inset-bottom));display:flex!important;border-top:1px solid #ffffff1a;visibility:visible;opacity:1}
  #home #home-all-cases{min-height:44px;font-size:13px;opacity:.85;flex:1;text-align:left}
  #home #home-autoplay{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding-inline:12px;font-size:12px;color:#c4d0d7}
  #home #home-autoplay[hidden],#home #home-replay{display:none}
  .mobile-tagline-line{position:relative;display:block;white-space:nowrap}
  .mobile-tagline-punctuation{position:absolute;left:100%;top:0}
}
@media(max-width:900px) and (max-height:640px) and (orientation:portrait){#home .mobile-home{inset:calc(76px + env(safe-area-inset-top)) 0 calc(136px + env(safe-area-inset-bottom));gap:14px}.mobile-home-intro p{font-size:23px;margin-top:8px}.mobile-home-gallery{width:88%;margin:auto}.mobile-home-caption{min-height:58px}.mobile-home-caption h2{font-size:16px}.mobile-home-caption p{margin-top:7px}}
@media(max-width:900px) and (max-height:500px) and (orientation:landscape), (max-height:500px) and (orientation:landscape) and (pointer:coarse){
  #home .mobile-home{inset:calc(66px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) calc(68px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));display:grid;grid-template-columns:36% minmax(0,1fr);grid-template-rows:1fr auto;gap:8px 22px;align-items:center}
  .mobile-home-intro{grid-row:1/3;padding:0;min-width:0;text-align:left}.mobile-home-intro p{font-size:clamp(18px,3.6vw,24px)}.mobile-home-intro .mobile-tagline-line{width:fit-content}.mobile-home-gallery{width:100%;height:100%;min-height:0;aspect-ratio:auto;overflow:hidden}.mobile-home-card{aspect-ratio:16/8.2;border-radius:10px}.mobile-home-play{bottom:8px;right:8px;padding:7px 12px;min-height:32px}
  .mobile-home-caption{grid-column:2;min-width:0;min-height:0;padding:0;text-align:left;display:grid;gap:4px;align-items:center}.mobile-home-caption h2{font-size:14px;min-width:0;overflow-wrap:anywhere}.mobile-home-caption p{font-size:10px;margin:0;white-space:normal}
  #home .home-footer{bottom:calc(8px + env(safe-area-inset-bottom));left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right))}#home .home-utility{left:calc(106px + env(safe-area-inset-left));right:auto;bottom:calc(8px + env(safe-area-inset-bottom));border:0}#home #home-all-cases{display:none}#home .home-footer .arrows{min-height:48px;padding:0}#home .home-footer .arrows button{min-height:44px;height:44px;width:44px;min-width:44px}
}

/* Phone portrait keeps the suspended orbit, with one readable cover in front. */
@media(max-width:900px) and (orientation:portrait){
  #home .mobile-home.is-orbit{gap:12px;justify-content:space-between;touch-action:pinch-zoom}
  .is-orbit .mobile-home-intro{flex-shrink:0}.is-orbit .mobile-home-intro p{font-size:clamp(23px,6.4vw,32px);margin-top:10px}
  .is-orbit .mobile-home-gallery{flex:1;min-height:0;max-height:480px;width:100%;margin:0;aspect-ratio:auto;touch-action:pinch-zoom;overflow:hidden}
  .is-orbit .mobile-home-card{border-radius:10px;touch-action:pinch-zoom;box-shadow:0 12px 28px #0006}
  .is-orbit .mobile-home-play{font-size:12px;min-height:32px;right:10px;bottom:10px;padding:7px 12px}
  .is-orbit .mobile-home-credit{opacity:var(--cover-detail,1)}
  .is-orbit .mobile-home-caption{min-height:76px;flex-shrink:0;padding-inline:24px}
  .is-orbit .mobile-home-caption p{font-size:11px;margin-top:8px;letter-spacing:.02em}
}
@media(max-width:900px) and (max-height:640px) and (orientation:portrait){
  #home .mobile-home.is-orbit{gap:5px}.is-orbit .mobile-home-intro small{display:none}.is-orbit .mobile-home-intro p{font-size:21px;margin:0}
  .is-orbit .mobile-home-caption{min-height:61px}.is-orbit .mobile-home-caption h2{font-size:15px}.is-orbit .mobile-home-caption p{font-size:10px;margin-top:5px}
}
/* Keep the camera frame, public-profile statistics and the existing page dock. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#home::before{content:none}
.on-home .masthead{background:none}
.on-home .masthead .wordmark{visibility:hidden;pointer-events:none}
#home .viewfinder{inset:max(84px,calc(env(safe-area-inset-top) + 70px)) var(--pad) 96px;height:auto;z-index:8}
#home .hero-stats{position:absolute;left:var(--pad);bottom:140px;z-index:8;margin:0;padding-top:16px;min-width:270px}
#home .home-footer{left:auto;right:var(--pad);bottom:140px;grid-template-columns:auto auto;gap:16px}
#home .home-footer .arrows{display:flex;gap:4px}
#home .home-footer .arrows button{display:grid;place-items:center;border:1px solid #ffffff26;border-radius:50%;font-size:20px}
#home .home-utility{left:var(--pad);bottom:215px;gap:18px}
#home .home-utility button{min-height:44px}
#home .home-case-title{max-width:min(38vw,420px);white-space:normal;text-wrap:balance}
#home .home-logo-intro{display:none}
.reduce .glass-liquid i{animation:none;opacity:0}
.reduce .home-glass-color{transition:none}
@media(max-width:900px), (max-height:500px) and (orientation:landscape) and (pointer:coarse){
  #home .viewfinder{inset:max(76px,calc(env(safe-area-inset-top) + 62px)) 14px 100px;height:auto}
  #home .vf-top,#home .vf-bottom{left:24px;right:24px;font-size:9px}
  #home .vf-bottom>span:first-child{max-width:65%}
  #home .vf-bottom>span:last-child{font-size:8px;letter-spacing:.05em}
  #home .mobile-home{inset:100px 0 260px;gap:12px}
  #home .mobile-home-intro p{font-size:22px;line-height:1.4;margin-top:8px}
  #home .mobile-home-intro p{display:grid;justify-items:center}
  #home .mobile-tagline-line{width:max-content}
  #home .mobile-home-intro small{font-size:9px}
  #home .mobile-home-caption{min-height:54px}
  #home .mobile-home-caption h2{font-size:14px;line-height:1.5}
  #home .mobile-home-caption p{font-size:10px;margin-top:5px}
  #home .hero-stats{left:38px;bottom:188px;min-width:0;width:calc(100% - 76px);gap:24px;padding-top:12px}
  #home .hero-stats dd{font-size:24px}
  #home .home-footer{left:38px;right:38px;bottom:123px;grid-template-columns:1fr auto}
  #home .home-utility{left:38px;right:155px;bottom:133px;border:0;gap:12px;z-index:21}
  #home #home-all-cases{font-size:11px;flex:0;white-space:nowrap}
  #home #home-autoplay{font-size:10px;padding:0;white-space:nowrap}
  #home #slide-number{display:none}
  #home .is-orbit .mobile-home-gallery{max-height:none}
}
@media(max-width:900px) and (max-height:680px) and (orientation:portrait){
  #home .mobile-home{inset:94px 0 245px}
  #home .mobile-home-intro{display:none}
  #home .hero-stats{bottom:180px}
  #home .is-orbit .mobile-home-caption{min-height:38px}
}
@media(max-height:500px) and (orientation:landscape){
  #home{min-height:360px}
  #home .viewfinder{inset:64px var(--pad) 84px}
  #home .hero-stats{bottom:112px;gap:20px;min-width:0;padding-top:8px}
  #home .hero-stats dd{font-size:20px}
  #home .home-footer{bottom:105px}
  #home .home-utility{display:flex!important;left:var(--pad);bottom:166px}
  #home .mobile-home{inset:70px 24px 182px;grid-template-columns:28% minmax(0,1fr)}
  #home .mobile-home-caption h2{font-size:12px}
  #home .mobile-home-intro p{font-size:16px}
}
