.sphere-root{position:relative;width:100%;height:100%;min-height:360px;--radius: 520px;--viewer-pad: 72px;--circ: calc(var(--radius) * 3.14);--rot-y: calc((360deg / var(--segments-x)) / 2);--rot-x: calc((360deg / var(--segments-y)) / 2);--item-width: calc(var(--circ) / var(--segments-x));--item-height: calc(var(--circ) / var(--segments-y))}.sphere-root *{box-sizing:border-box}.sphere,.item,.item__image{transform-style:preserve-3d}main.sphere-main{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;background:transparent}.stage{width:100%;height:100%;display:grid;place-items:center;perspective:calc(var(--radius) * 2);perspective-origin:50% 50%;contain:layout paint size}.sphere{transform:translateZ(calc(var(--radius) * -1));will-change:transform}.overlay,.overlay--blur{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;z-index:3;pointer-events:none}.overlay{background-image:radial-gradient(rgba(235,235,235,0) 65%,var(--overlay-blur-color, #060010) 100%)}.overlay--blur{-webkit-mask-image:radial-gradient(rgba(235,235,235,0) 70%,var(--overlay-blur-color, #060010) 90%);mask-image:radial-gradient(rgba(235,235,235,0) 70%,var(--overlay-blur-color, #060010) 90%);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.item{width:calc(var(--item-width) * var(--item-size-x));height:calc(var(--item-height) * var(--item-size-y));position:absolute;top:-999px;bottom:-999px;left:-999px;right:-999px;margin:auto;transform-origin:50% 50%;backface-visibility:hidden;transition:transform .3s;transform:rotateY(calc(var(--rot-y) * (var(--offset-x) + ((var(--item-size-x) - 1) / 2)) + var(--rot-y-delta, 0deg))) rotateX(calc(var(--rot-x) * (var(--offset-y) - ((var(--item-size-y) - 1) / 2)) + var(--rot-x-delta, 0deg))) translateZ(var(--radius))}.item__image{position:absolute;display:block;top:10px;right:10px;bottom:10px;left:10px;border-radius:var(--tile-radius, 12px);background:transparent;overflow:hidden;backface-visibility:hidden;transition:transform .3s,box-shadow .3s,filter .3s;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;pointer-events:auto;transform:translateZ(0)}.item__image:focus{outline:none}.item__image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;pointer-events:none;backface-visibility:hidden;filter:var(--image-filter, none)}.item__image .dg-glow{display:none}.item__image .dg-img{position:relative;z-index:1}.item__image:after{display:none}.item__image:hover,.item__image:focus-visible,.item__image[data-focused=true]{transform:none;box-shadow:none}.item__image:hover:after,.item__image:focus-visible:after,.item__image[data-focused=true]:after{display:none}@keyframes dg-pulse{0%{opacity:1}to{opacity:1}}@media (prefers-reduced-motion: reduce){.item__image:hover:after,.item__image:focus-visible:after,.item__image[data-focused=true]:after{animation:none}}.viewer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none;display:flex;align-items:center;justify-content:center;padding:var(--viewer-pad)}.sphere-root[data-enlarging=true] .viewer{position:fixed;left:0;top:0;right:0;bottom:0;z-index:9999;pointer-events:auto}.viewer .frame{height:100%;aspect-ratio:1;border-radius:var(--enlarge-radius, 32px);display:flex}.sphere-root[data-fixed-viewer=true] .viewer{position:fixed;left:0;top:0;right:0;bottom:0;padding-top:calc(var(--viewer-pad) + env(safe-area-inset-top,0));padding-bottom:calc(var(--viewer-pad) + env(safe-area-inset-bottom,0));padding-left:calc(var(--viewer-pad) + env(safe-area-inset-left,0));padding-right:calc(var(--viewer-pad) + env(safe-area-inset-right,0))}@media (max-aspect-ratio: 1/1){.viewer .frame{height:auto;width:100%}}.viewer .scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#0006;pointer-events:none;opacity:0;transition:opacity .28s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sphere-root[data-enlarging=true] .viewer .scrim{opacity:1;pointer-events:all}.viewer .enlarge{position:absolute;z-index:30;border-radius:var(--enlarge-radius, 32px);overflow:hidden;transition:transform .28s ease,opacity .28s ease;transform-origin:top left;box-shadow:0 16px 40px #00000073,0 0 40px #ff00c82e,0 0 56px #00ffff26}.viewer .enlarge img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;filter:var(--image-filter, none)}.sphere-root .enlarge-closing img{filter:var(--image-filter, none)}.sphere-root[data-enlarging=true] .viewer .enlarge{box-shadow:0 20px 55px #0000008c,0 0 52px #ff00c847,0 0 80px #00ffff38}.download-btn{position:fixed;left:calc(var(--enlarge-left, 0px) + var(--enlarge-width, 0px) - 12px - 48px);top:calc(var(--enlarge-top, 0px) + var(--enlarge-height, 0px) - 16px - 48px);z-index:40;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#1e1e32d9,#0a0a14d9);color:#bdfcff;border:1px solid rgba(180,250,255,.35);box-shadow:inset 0 0 10px #00ffff1f,0 6px 16px #00000073,0 0 16px #00ffff2e,0 0 28px #ff00c81f;cursor:pointer;transform:translateZ(0) perspective(600px) rotateX(8deg) rotateY(-6deg);transition:transform .22s ease,box-shadow .22s ease,opacity .16s ease;opacity:0;pointer-events:none}.sphere-root[data-enlarging=true] .download-btn:disabled{display:none}.sphere-root[data-enlarging=true] .download-btn{opacity:1;pointer-events:auto;animation:btn-bob 2.6s ease-in-out infinite}.download-btn:hover{transform:translateZ(0) perspective(600px) rotateX(2deg) rotateY(-2deg) scale(1.06);box-shadow:inset 0 0 14px #0ff3,0 10px 22px #0000008c,0 0 26px #00ffff47,0 0 44px #ff00c833}.download-btn:active{transform:translateZ(0) perspective(600px) rotateX(0) rotateY(0) scale(.98)}.download-btn svg{filter:drop-shadow(0 0 6px rgba(0,255,255,.45)) drop-shadow(0 0 10px rgba(255,0,200,.25))}@keyframes btn-bob{0%{transform:translateZ(0) perspective(600px) rotateX(8deg) rotateY(-6deg)}50%{transform:translateZ(0) perspective(600px) rotateX(5deg) rotateY(-4deg) translateY(-2px)}to{transform:translateZ(0) perspective(600px) rotateX(8deg) rotateY(-6deg)}}@media (prefers-reduced-motion: reduce){.sphere-root[data-enlarging=true] .download-btn{animation:none}}@media (max-width: 640px),(pointer: coarse){.viewer .scrim{touch-action:pan-y}.close-btn{position:fixed;left:calc(var(--enlarge-left, 0px) + max(8px,env(safe-area-inset-left,0)));top:calc(var(--enlarge-top, 0px) + max(6px,env(safe-area-inset-top,0)));width:52px;height:52px;border-radius:14px}.sphere-root[data-enlarging=true] .viewer .enlarge{pointer-events:auto;touch-action:none}.item__image:hover,.item__image:focus-visible,.item__image[data-focused=true]{transform:none;box-shadow:none}.sphere-root[data-enlarging=true] .viewer .enlarge{box-shadow:0 16px 40px #00000080,0 0 36px #ff00c838,0 0 56px #00ffff2e}.download-btn{width:56px;height:56px;border-radius:16px;left:calc(var(--enlarge-left, 0px) + var(--enlarge-width, 0px) - max(14px,env(safe-area-inset-right,0)) - 56px);top:calc(var(--enlarge-top, 0px) + var(--enlarge-height, 0px) - max(14px,env(safe-area-inset-bottom,0)) - 56px);animation:none}.download-btn svg{width:24px;height:24px}}.close-btn{position:fixed;left:calc(var(--enlarge-left, 0px) - 64px);top:calc(var(--enlarge-top, 0px) + 4px);z-index:40;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#321423e6,#190a16e6);color:#ffd0e8;border:1px solid rgba(255,120,200,.35);box-shadow:inset 0 0 10px #ff00c81f,0 6px 16px #00000073,0 0 16px #ff00c82e,0 0 28px #00ffff1f;cursor:pointer;transform:translateZ(0) perspective(600px) rotateX(8deg) rotateY(6deg);transition:transform .22s ease,box-shadow .22s ease,opacity .16s ease;opacity:0;pointer-events:none}.sphere-root[data-enlarging=true] .close-btn:disabled{display:none}.sphere-root[data-enlarging=true] .close-btn{opacity:1;pointer-events:auto}.close-btn:hover{transform:translateZ(0) perspective(600px) rotateX(2deg) rotateY(2deg) scale(1.06)}.close-btn:active{transform:translateZ(0) perspective(600px) rotateX(0) rotateY(0) scale(.98)}.close-btn svg{filter:drop-shadow(0 0 6px rgba(255,0,200,.45)) drop-shadow(0 0 10px rgba(0,255,255,.25))}.edge-fade{position:absolute;left:0;right:0;height:120px;z-index:5;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--overlay-blur-color, #060010))}.edge-fade--top{top:0;transform:rotate(180deg)}.edge-fade--bottom{bottom:0}.dg-scroll-lock{overflow:hidden}
