/* Shared material: luminous blue mist, no solid panel or visible perimeter. */
.gas-surface.gas-surface{isolation:isolate;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important}
.gas-surface.gas-surface::before,.gas-surface.gas-surface::after{content:'';position:absolute;inset:-24px;z-index:-2;pointer-events:none;border:0;border-radius:0;box-shadow:none;filter:blur(18px);background:radial-gradient(ellipse at 38% 52%,#06182ee8 12%,#153961a3 42%,transparent 70%),radial-gradient(ellipse at 65% 38%,#478dd345,transparent 64%);animation:gas-breathe 9s ease-in-out infinite alternate;mask-image:radial-gradient(ellipse,#000 32%,transparent 75%)}
.gas-surface.gas-surface::after{inset:-38px;z-index:-1;filter:blur(22px);background:radial-gradient(ellipse at 27% 65%,#77d9ff3b,transparent 55%),radial-gradient(ellipse at 76% 32%,#8d77ff38,transparent 55%);animation-duration:13s;animation-delay:-5s;mix-blend-mode:screen}
.gas-motes{position:absolute;inset:-10px;z-index:-1;pointer-events:none;overflow:visible}
.gas-motes>b{position:absolute;left:calc(8% + var(--n)*9%);top:var(--y,50%);width:2px;height:2px;border-radius:50%;background:#c5ecff;box-shadow:0 0 8px 2px #72caff55;opacity:0;animation:gas-mote calc(5s + var(--n)*.37s) ease-in-out infinite;animation-delay:calc(var(--n)*-.8s)}
@keyframes gas-breathe{from{transform:translate(-6px,3px) scale(.97,1.03);opacity:.8}to{transform:translate(7px,-4px) scale(1.04,.98);opacity:1}}
@keyframes gas-mote{0%,100%{opacity:0;transform:translate(-8px,12px)}35%,65%{opacity:.75}85%{opacity:0;transform:translate(14px,-19px)}}
.rabbit-controls .rabbit-menu{overflow:visible;padding:24px 28px;max-height:calc(100dvh - 100px)}
.rabbit-controls .rabbit-menu::before{inset:-28px;filter:blur(20px);background:radial-gradient(ellipse,#051426f5 20%,#0d2944d9 48%,#27618b45 65%,transparent 76%)}
.rabbit-controls .rabbit-menu-actions{gap:6px}
.rabbit-menu-status{position:relative;padding:4px 0;margin-bottom:8px}
.rabbit-menu-status:has(> .rabbit-race-status:empty):not(:has(> .rabbit-park-status:not([hidden]))):not(:has(> .rabbit-discovery-status)){display:none}
.rabbit-menu-status::before,.rabbit-menu-status::after{opacity:.35!important}
.rabbit-menu-status .gas-motes{display:none}
.rabbit-controls .rabbit-menu :is(.rabbit-race-status,.rabbit-instructions){border:0!important;background:none!important;box-shadow:none!important}
.rabbit-controls .rabbit-gamepad{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));width:204px;display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;pointer-events:none}
.rabbit-controls .rabbit-gamepad button.vapor-button{position:relative!important;inset:auto!important;min-width:0;width:96px;min-height:70px;padding:8px;border:0;border-radius:0;background:transparent;touch-action:none;pointer-events:auto}
.rabbit-controls .rabbit-gamepad .rabbit-jump{justify-self:center;min-height:70px;width:96px}
.rabbit-gamepad .vapor-label{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px}
.rabbit-gamepad .gamepad-icon{display:block;filter:drop-shadow(0 0 7px #88caff88)}
.rabbit-controls .rabbit-gamepad .vapor-ears{display:none}
.rabbit-gamepad .rabbit-charge{width:34px;height:3px;background:none;box-shadow:none;margin:1px 0 0;filter:blur(.5px)}
.rabbit-gamepad .rabbit-charge i{background:radial-gradient(ellipse,#d5f5ff,transparent 75%)}
.rabbit-controls.rabbit-menu-open .rabbit-gamepad{opacity:.15}
.rabbit-controls.rabbit-menu-open .rabbit-gamepad button{pointer-events:none!important}
.rabbit-controls .rabbit-joystick{left:max(22px,env(safe-area-inset-left));bottom:max(26px,env(safe-area-inset-bottom));width:110px;height:110px;border:0;background:none;box-shadow:none;border-radius:0}
.rabbit-controls .rabbit-joystick::before{inset:-14px;background:radial-gradient(ellipse,#204c7866 20%,#6fcfff55 40%,transparent 72%);filter:blur(8px)}
.rabbit-controls .rabbit-joystick::after{inset:-22px;filter:blur(12px)}
.rabbit-controls .rabbit-joystick>i{background:radial-gradient(ellipse,#dcf5ffb3 5%,#8acfff88 28%,transparent 72%);border:0;box-shadow:none;border-radius:0;width:44px;height:44px;left:33px;top:33px;filter:drop-shadow(0 0 12px #73caff66)}
.rabbit-controls .rabbit-menu details{max-height:25dvh;overflow:auto;scrollbar-width:thin}
.holo-selector button.vapor-button{min-width:72px;min-height:44px;padding:8px 10px;background:none;border:0;border-radius:0;box-shadow:none}
.holo-selector button .vapor-ears{display:none}
.spatial-page .spatial-content :is(.creation-previews a,.service-previews article,.possibility-item,.depth-possibilities,.rdv-mail,.demo-mount){border:0!important;background:none!important;box-shadow:none!important}
.rabbit-quit.gas-surface{overflow:visible;filter:none}
.rabbit-quit.gas-surface::backdrop{background:#02091566;backdrop-filter:blur(5px)}
@media(max-width:700px){.rabbit-controls .rabbit-gamepad{width:176px;gap:4px 6px;right:12px;bottom:max(12px,env(safe-area-inset-bottom))}.rabbit-controls .rabbit-gamepad button.vapor-button{width:84px;min-height:64px}.rabbit-controls .rabbit-menu{width:min(320px,calc(100vw - 38px));right:19px;padding:18px 24px}.rabbit-controls .rabbit-joystick{width:100px;height:100px;left:18px;bottom:max(22px,env(safe-area-inset-bottom))}.rabbit-controls .rabbit-joystick>i{left:28px;top:28px}}
@media(max-height:500px){.rabbit-controls .rabbit-menu{top:56px;padding-block:10px}.rabbit-menu h2{margin-bottom:6px}.rabbit-controls .rabbit-menu-actions{gap:0;margin:0}.rabbit-controls .rabbit-menu-actions button{min-height:40px}.rabbit-controls .rabbit-menu details{max-height:18dvh}.rabbit-controls .rabbit-menu-status{margin:0}.rabbit-controls .rabbit-gamepad{gap:0}}
@media(prefers-reduced-motion:reduce){.gas-surface::before,.gas-surface::after,.gas-motes>b{animation:none!important}.gas-motes>b{opacity:.35}}

.rabbit-controls .rabbit-menu-toggle.vapor-button{min-width:56px!important;width:56px!important;padding:8px!important}
.holo-card img,.spatial-page .depth-cover{mask-image:radial-gradient(ellipse farthest-side,#000 55%,#0009 78%,transparent 100%)}

/* Dissolve only the decorative perimeter. Content is never filtered or masked. */
.card-smoke{position:absolute;inset:-12px;z-index:-1;pointer-events:none;overflow:visible;contain:layout style}
.card-smoke>b{position:absolute;left:var(--sx);top:var(--sy);width:54px;height:23px;opacity:0;pointer-events:none;background:radial-gradient(ellipse,#8edaff6b 2%,#729cf349 28%,transparent 72%);filter:blur(4px);transform-origin:center;animation:card-smoke-dissolve var(--life) linear infinite;animation-delay:var(--delay)}
.card-smoke>b:nth-child(3n){width:3px;height:3px;filter:blur(.3px);border-radius:50%;background:#caeeff;box-shadow:0 0 9px 2px #80caff55}
.card-smoke>b:nth-child(4n){width:72px;height:34px;filter:blur(7px);background:radial-gradient(ellipse,#b0d8ff42,transparent 70%)}
@keyframes card-smoke-dissolve{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) scale(.45,.65)}22%{opacity:.6}55%{opacity:.35}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(calc(var(--angle) + 38deg)) scale(1.6,1.2)}}
.holo-card>:is(h3,p),.spatial-page .spatial-content{filter:none!important;text-rendering:optimizeLegibility}
.depth-image-link{display:block;position:relative;line-height:0;border:0;background:none;cursor:pointer;isolation:isolate}
.depth-image-link img{transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.depth-image-link:hover img{transform:scale(1.015)}
.depth-image-link:focus-visible{outline:2px solid #bbe5ff;outline-offset:6px}
.holo-card img{cursor:pointer}
@media(prefers-reduced-motion:reduce){.card-smoke>b{animation:none;opacity:.25}.depth-image-link img{transition:none}}

/* Recessed cards must receive the pointer through their transparent stage. */
.holo-stage{pointer-events:none}.holo-stage .holo-card{pointer-events:auto}

.holo-card:not(.holo-current){opacity:.84}.holo-card :is(h3,p){text-shadow:0 1px 3px #020917,0 2px 12px #020917}

.rabbit-menu-actions{max-height:min(430px,calc(100dvh - 270px));overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;padding-inline:8px}
/* Keep contact artwork and labels crisp inside the softer gas. */
.studio-contact-card.gas-surface > .gas-motes{display:none}
.studio-contact-card.studio-contact-card .card-smoke>b:nth-child(3n){width:25px;height:12px;filter:blur(6px);background:radial-gradient(ellipse,#b5e5ff68,transparent 72%);box-shadow:none}

/* Match the artwork fade to the portfolio; labels stay on a separate layer. */
:root{--hologram-edge:radial-gradient(ellipse closest-side at 50% 48%,#000 48%,#000d 68%,#0005 84%,transparent 100%)}
.hologram-preview,.hologram-tile,.studio-dossier-photo{position:relative;isolation:isolate}
:is(.holo-card,.hologram-preview,.studio-dossier-photo) > img{
 display:block;border:0;border-radius:0;mask-image:var(--hologram-edge)
}
.spatial-page .hologram-preview > .depth-cover{mask-image:var(--hologram-edge)}
:is(.hologram-preview,.showcase-project) > .card-smoke{inset:-4px}
:is(.hologram-tile,.studio-dossier-photo) > .card-smoke{inset:0}
:is(.hologram-tile,.studio-dossier-photo) > .card-smoke>b{
 width:30px;height:13px;filter:blur(5px);background:radial-gradient(ellipse,#7db8fb6b,transparent 72%);box-shadow:none
}
.hologram-tile.gas-surface::before,.studio-dossier-photo.gas-surface::before{inset:-12px;filter:blur(11px)}
.hologram-tile.gas-surface::after,.studio-dossier-photo.gas-surface::after{inset:-14px;filter:blur(10px)}
