/* Theme changes affect color only; geometry is shared in both appearances. */
:root{--panel-rim:#fcfdff;--edge-mist:#fcfdffd9}
:root[data-theme=dark]{--panel-rim:#fcfdff;--edge-mist:#fcfdffad}
:root .launch-tile,:root[data-theme=dark] .launch-tile,:root body[data-quest-page=home] .launcher-grid .panorama,:root[data-theme=dark] body[data-quest-page=home] .launcher-grid .panorama{border:4px solid var(--panel-rim);box-sizing:border-box}
/* A feathered inner rim blends cover art into the panel frame, without blurring it. */
.launch-tile::before,.launcher-grid .panorama::after,.game-tile-media::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 12px 3px var(--edge-mist);pointer-events:none;z-index:5}
.launch-tile,.launcher-grid .panorama{position:relative}
.game-tile-media::after{border-radius:13px;box-shadow:inset 0 0 12px 2px var(--edge-mist)}
.launch-games>img{object-fit:cover;object-position:center 46%}
.launch-games::after{background:linear-gradient(90deg,#182c46ed,#203851a8 42%,#20385108 75%)}
/* Frozen outgoing panels use their original viewport coordinates and dimensions. */
.route-panels{position:fixed;inset:0;z-index:6;pointer-events:none;overflow:hidden;contain:layout style}
.route-panels>*{pointer-events:none!important}
html{overflow-anchor:none}
@media(max-width:520px){:root .launch-tile,:root[data-theme=dark] .launch-tile,:root body[data-quest-page=home] .launcher-grid .panorama,:root[data-theme=dark] body[data-quest-page=home] .launcher-grid .panorama{border-width:3px}.launch-tile::before,.launcher-grid .panorama::after{box-shadow:inset 0 0 9px 2px var(--edge-mist)}}

.route-panels>.panorama::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 12px 3px var(--edge-mist);pointer-events:none;z-index:5}

/* v392: the feather follows the INNER curve of the frame, not its outer radius.
   Inheriting the larger outer radius left dark crescent gaps at each corner. */
:root{--panel-corner:16px;--panel-frame:4px;--rim-feather:12px}
.launch-tile::before,.launcher-grid .panorama::after,.route-panels>.panorama::after{
 border-radius:calc(var(--panel-corner) - var(--panel-frame));
 box-shadow:inset 0 0 0 1px var(--panel-rim),inset 0 0 var(--rim-feather) 5px var(--panel-rim);
}
.game-tile-media::after{
 border-radius:inherit;
 box-shadow:inset 0 0 0 1px var(--panel-rim),inset 0 0 var(--rim-feather) 4px var(--panel-rim);
}
@media(max-width:520px){:root{--panel-corner:13px;--panel-frame:3px;--rim-feather:10px}}
:root .launch-tile,:root[data-theme=dark] .launch-tile,:root body[data-quest-page=home] .launcher-grid .panorama,:root[data-theme=dark] body[data-quest-page=home] .launcher-grid .panorama{border-radius:var(--panel-corner)}

/* v393: continuous gradient feather, without stacked inset-shadow corner seams. */
:root{--panel-rim:#fcfdff;--rim-fade:7px;--rim-radius:calc(var(--panel-corner) - var(--panel-frame));--rim-mid:#fcfdff65}
:root[data-theme=dark]{--panel-rim:#727984;--rim-mid:#aeb8c32b;--rim-fade:6px}
.launch-tile::before,.launcher-grid .panorama::after,.route-panels>.panorama::after,.game-tile-media::after{
 --r:var(--rim-radius);
 box-shadow:none;
 border-radius:var(--r);
 background:
 radial-gradient(circle at 100% 100%,transparent calc(var(--r) - var(--rim-fade)),var(--rim-mid) calc(var(--r) - 2px),var(--panel-rim) var(--r)) top left / var(--r) var(--r),
 radial-gradient(circle at 0% 100%,transparent calc(var(--r) - var(--rim-fade)),var(--rim-mid) calc(var(--r) - 2px),var(--panel-rim) var(--r)) top right / var(--r) var(--r),
 radial-gradient(circle at 100% 0%,transparent calc(var(--r) - var(--rim-fade)),var(--rim-mid) calc(var(--r) - 2px),var(--panel-rim) var(--r)) bottom left / var(--r) var(--r),
 radial-gradient(circle at 0% 0%,transparent calc(var(--r) - var(--rim-fade)),var(--rim-mid) calc(var(--r) - 2px),var(--panel-rim) var(--r)) bottom right / var(--r) var(--r),
 linear-gradient(to bottom,var(--panel-rim),var(--rim-mid) 2px,transparent var(--rim-fade)) top center / calc(100% - 2 * var(--r)) var(--rim-fade),
 linear-gradient(to top,var(--panel-rim),var(--rim-mid) 2px,transparent var(--rim-fade)) bottom center / calc(100% - 2 * var(--r)) var(--rim-fade),
 linear-gradient(to right,var(--panel-rim),var(--rim-mid) 2px,transparent var(--rim-fade)) center left / var(--rim-fade) calc(100% - 2 * var(--r)),
 linear-gradient(to left,var(--panel-rim),var(--rim-mid) 2px,transparent var(--rim-fade)) center right / var(--rim-fade) calc(100% - 2 * var(--r));
 background-repeat:no-repeat;
}
.game-tile-media::after{--rim-radius:13px}
:root body[data-quest-page=home] .launcher-grid .panorama{background:var(--panel-rim)}
.panorama-stage{border-radius:var(--rim-radius);overflow:hidden;isolation:isolate}
