/* Immersive motion layer. The standard HTML gallery remains the no-JS fallback. */
html:has(body.rb-immersive) { overflow:hidden; height:100%; }
body.rb-gallery-site.rb-immersive { height:100svh; min-height:100svh; overflow:hidden; background:var(--gallery-bg,#000)!important; }
body.rb-immersive #top { height:100svh; margin:0; padding:0; }
body.rb-immersive:not(.rb-content-view) #top > :not(#featured-gallery), body.rb-immersive:not(.rb-content-view) > footer { display:none!important; }
body.rb-immersive > nav { background:transparent!important; top:16px; }
body.rb-immersive > nav .mx-auto { padding:24px 5.4vw!important; }
body.rb-immersive #featured-gallery { height:100svh!important; min-height:100svh!important; padding:0!important; margin:0!important; overflow:hidden!important; position:fixed!important; inset:0; gap:0!important; }
.rb-immersive .rb-gallery-intro { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.rb-immersive .rb-featured-track { position:absolute; inset:0; width:100%; height:100%; padding:0; gap:0; overflow:visible; scroll-snap-type:none; touch-action:none; z-index:12; cursor:grab; }
.rb-immersive .rb-featured-track.rb-dragging { cursor:grabbing; }
.rb-immersive .rb-featured-card { position:absolute; left:0; top:0; margin:0; padding:0; flex:none; will-change:transform; transform-origin:center; }
.rb-gallery-site.rb-immersive .rb-featured-photo { width:100%; height:100%; border-radius:20px; background:#171717!important; cursor:inherit; }
.rb-immersive .rb-featured-photo img { height:100%; width:100%; object-fit:cover; pointer-events:none; }
.rb-gallery-site.rb-immersive .rb-featured-card.rb-textured .rb-featured-photo { background:transparent!important; }
.rb-immersive .rb-featured-card.rb-textured .rb-featured-photo img { opacity:0; }
.rb-immersive .rb-featured-card.rb-textured .rb-photo-arrow { opacity:0; }
.rb-immersive .rb-featured-caption { position:absolute; bottom:20px; left:22px; right:22px; pointer-events:none; color:#fff; text-shadow:0 1px 20px #000; padding:0; }
.rb-immersive .rb-featured-caption button { pointer-events:none; font-size:24px; }
.rb-immersive .rb-featured-caption p, .rb-immersive .rb-card-number { display:none; }
.rb-immersive .rb-featured-card.rb-textured .rb-featured-caption { opacity:0; }
.rb-immersive .rb-featured-card:focus-within .rb-featured-photo { outline:2px solid var(--gallery-accent); outline-offset:5px; }
.rb-immersive .rb-gallery-controls { position:fixed; left:0; right:0; bottom:4.8vh; z-index:25; padding:0 5.4vw; color:#fff; }
.rb-immersive .rb-gallery-controls > a { display:block!important; }
.rb-immersive .rb-gallery-pagination { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); font-size:10px; opacity:.5; }
.rb-immersive .rb-explore-link { position:fixed; z-index:25; bottom:4.8vh; left:50%; transform:translateX(-50%); margin:0; padding:0; color:#a5a5a5!important; font-size:10px; letter-spacing:.025em; }
.rb-scene-canvas { position:fixed; inset:0; width:100%; height:100%; pointer-events:none; z-index:11; transition:opacity .45s; }
.rb-scene-floor { position:fixed; inset:0; z-index:1; pointer-events:none; overflow:hidden; opacity:.5; transition:opacity .6s; }
.rb-scene-floor::before { content:""; position:absolute; top:61%; left:-55%; width:210%; height:130%; background-image:linear-gradient(#8885 1px,transparent 1px),linear-gradient(90deg,#8885 1px,transparent 1px); background-size:90px 90px; transform:perspective(470px) rotateX(61deg) translate3d(var(--floor-x,0px),var(--floor-y,0px),0); transform-origin:50% 0; mask-image:linear-gradient(transparent,#000 17%,#000); }
.rb-scene-hint { position:fixed; left:50%; top:18%; transform:translateX(-50%); text-transform:uppercase; letter-spacing:.12em; font:9px Arial,sans-serif; color:#777; pointer-events:none; z-index:20; transition:opacity .5s; }
.rb-immersive.rb-index-view .rb-full-index { position:fixed; inset:0; min-height:0; height:100svh; width:min(1080px,94vw); max-width:1080px; z-index:16; padding:130px 28px; gap:10px 25px; overflow-y:auto; }
.rb-immersive.rb-index-view .rb-full-index button { font:400 clamp(24px,2.3vw,38px)/1.35 Arial,sans-serif!important; text-transform:none; letter-spacing:-.045em; }
.rb-full-index button { position:relative; }
.rb-index-letter { display:inline-block; pointer-events:none; will-change:transform; }
.rb-full-index button .rb-index-letter { font:inherit; color:inherit; }
.rb-immersive.rb-index-view .rb-featured-track { display:none!important; pointer-events:none; }
.rb-immersive.rb-index-view .rb-scene-canvas { opacity:0; }
.rb-immersive.rb-index-view .rb-scene-floor { opacity:.1; }
.rb-immersive.rb-index-view .rb-gallery-pagination { display:none; }
.rb-immersive.rb-index-view .rb-scene-hint { opacity:0; }
.rb-index-preview { position:fixed; width:300px; height:205px; pointer-events:none; z-index:15; border-radius:16px; overflow:hidden; background:#222; opacity:0; transform:translate(-50%,-50%) scale(.85); box-shadow:0 25px 100px #0008; }
.rb-index-preview img { width:100%; height:100%; object-fit:cover; }
.rb-motion-overlay { position:fixed; inset:0; z-index:45; background:#0008; backdrop-filter:blur(22px); display:grid; place-items:center; padding:100px 24px; }
.rb-motion-overlay[hidden] { display:none!important; }
body.rb-pointer-optics .rb-motion-overlay { background:transparent; backdrop-filter:none; }
body.rb-pointer-optics.rb-lens-visible .rb-full-index { opacity:0; pointer-events:none; }
body.rb-pointer-optics.rb-lens-visible .rb-scene-canvas { opacity:1; }
.rb-detail-pointer-canvas { position:fixed; inset:0; width:100%; height:100%; z-index:71; pointer-events:none; }
.rb-motion-overlay .rb-overlay-card { max-width:480px; width:100%; text-align:center; position:relative; color:white; }
.rb-motion-overlay h2 { font:400 clamp(30px,4vw,48px)/1.1 Arial,sans-serif!important; margin:0 0 25px; }
.rb-motion-overlay p { font:15px/1.75 Arial,sans-serif; color:#b0b0b0; }
.rb-overlay-close { position:absolute; top:-65px; right:0; width:40px; height:40px; border:1px solid #ffffff3d; border-radius:50%; color:white; background:transparent!important; cursor:pointer; }
.rb-overlay-links { display:flex; justify-content:center; flex-wrap:wrap; gap:18px; margin-top:30px; }
.rb-overlay-links a { color:white!important; font-size:11px; text-transform:uppercase; letter-spacing:.03em; }
.rb-motion-overlay #newsletter-form { display:flex; flex-direction:row; gap:10px; margin:30px 0 0; }
.rb-motion-overlay #newsletter-form input { border-radius:999px!important; width:100%; min-width:0; }
.rb-motion-overlay #newsletter-form button { border-radius:999px; font-size:12px; }
.rb-immersive #detail-modal { z-index:70; backdrop-filter:blur(10px); }
.rb-immersive #detail-content { width:calc(100vw - 100px)!important; max-width:calc(100vw - 100px)!important; height:calc(100svh - 40px); max-height:calc(100svh - 40px)!important; overflow:hidden; border-radius:20px!important; }
.rb-immersive .rb-profile-sheet { height:100%; min-height:100%; grid-template-columns:minmax(280px,.78fr) minmax(360px,1.22fr); }
.rb-immersive .rb-profile-copy { padding:60px 42px 90px; height:100%; overflow-y:auto; position:static; scrollbar-width:thin; }
.rb-immersive .rb-profile-photos { padding:45px 75px 55px 15px; height:100%; max-height:100%; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; cursor:grab; touch-action:pan-y; }
.rb-immersive .rb-profile-photos img { flex:none; pointer-events:none; user-select:none; }
.rb-immersive .rb-profile-photos.rb-dragging { cursor:grabbing; user-select:none; }
.rb-immersive .rb-profile-close { position:absolute; top:20px; right:20px; float:none; margin:0; width:40px; height:40px; padding:0; background:#111!important; color:white!important; border:0!important; }
.rb-profile-paging { position:absolute; left:40px; bottom:24px; display:flex; gap:10px; z-index:5; }
.rb-profile-paging button { background:#111!important; color:white!important; width:38px; height:38px; border:0; border-radius:50%; cursor:pointer; font:18px Arial,sans-serif!important; }
.rb-profile-paging span { align-self:center; font-size:10px; color:#777; padding:0 10px; }
.rb-shared-image { position:fixed; z-index:1000; object-fit:cover; object-position:center 28%; border-radius:20px; pointer-events:none; will-change:transform,width,height; }
.rb-content-back { position:fixed; bottom:22px; left:5vw; z-index:55; padding:13px 20px; border-radius:999px; background:#eee!important; color:#111!important; border:1px solid #0002; cursor:pointer; font:12px Arial,sans-serif!important; box-shadow:0 5px 30px #0005; }
.rb-content-back[hidden] { display:none; }
html:has(body.rb-content-view) { overflow:auto; height:auto; }
body.rb-gallery-site.rb-content-view { height:auto; overflow-y:auto; }
body.rb-content-view #top { height:auto; padding-top:110px; }
body.rb-content-view #featured-gallery, body.rb-content-view .rb-scene-canvas, body.rb-content-view .rb-scene-floor, body.rb-content-view .rb-scene-hint { display:none!important; }
body.rb-content-view > nav { background:#080808!important; top:0; }
body.rb-content-view #hero.hero-strip { max-height:none!important; }
body.rb-content-view #hero.hero-strip img { max-height:none!important; object-fit:contain!important; opacity:1; }
body.rb-content-view #intro { margin-top:30px; }
@media(max-width:800px) {
 body.rb-immersive > nav { top:5px; }
 body.rb-immersive > nav .mx-auto { padding:18px 5vw!important; gap:10px!important; }
 .rb-immersive #gallery-account, .rb-immersive #scene-about { font-size:10px!important; }
 .rb-immersive #scene-about { display:none; }
 .rb-immersive .rb-gallery-controls { bottom:28px; padding:0 6vw; }
 .rb-immersive .rb-explore-link { bottom:69px; }
 .rb-immersive .rb-gallery-pagination { bottom:80px; }
 .rb-scene-hint { top:17%; }
 .rb-immersive .rb-full-index { gap:12px 20px!important; padding:110px 15px!important; align-content:center; }
 .rb-index-preview { width:200px; height:150px; }
 .rb-immersive #detail-content { width:calc(100vw - 24px)!important; max-width:calc(100vw - 24px)!important; height:calc(100svh - 30px); max-height:calc(100svh - 30px)!important; overflow-y:auto; }
 .rb-immersive .rb-profile-sheet { display:flex; flex-direction:column; height:auto; }
 .rb-immersive .rb-profile-copy { height:auto; padding:62px 25px 30px; overflow:visible; }
 .rb-immersive .rb-profile-photos { height:auto; max-height:none; padding:5px 20px 75px; overflow:visible; }
 .rb-immersive .rb-profile-close { position:sticky; float:right; top:12px; right:12px; margin:12px 12px -54px 0; }
 .rb-profile-paging { position:sticky; bottom:12px; left:0; width:max-content; margin:-58px auto 12px; background:#eeec; padding:5px; border-radius:99px; }
}
@media(prefers-reduced-motion:reduce) {
 .rb-scene-floor { opacity:.2; }
 .rb-scene-hint { display:none; }
 body.rb-pointer-optics .rb-motion-overlay { background:#000e; }
 .rb-detail-pointer-canvas { display:none!important; }
 .rb-index-letter { transform:none!important; }
}
