/* Shared by the real launcher and the settings preview. Decorative layers never receive clicks. */
.gnai-skin{--gnai-cycle:6s;--gnai-float:4s;--gnai-scan:4.8s;--gnai-glow:.55;--gnai-skin-accent:var(--gnai-accent,var(--preview-accent,#ef1435));--gnai-skin-ink:var(--gnai-accent-ink,var(--preview-ink,#fff))}
.gnai-skin[data-speed=slow]{--gnai-cycle:10s;--gnai-float:6s;--gnai-scan:7s}
.gnai-skin[data-speed=lively]{--gnai-cycle:3.8s;--gnai-float:3s;--gnai-scan:3.5s}
.gnai-skin .gnai-launcher-art{position:relative;display:grid;place-items:center;width:100%;height:100%;overflow:visible;pointer-events:none;isolation:isolate}
.gnai-skin .gnai-launcher-symbol{position:relative;z-index:3;display:grid;place-items:center;width:54%;height:54%;color:inherit}
.gnai-skin .gnai-launcher-symbol svg,.gnai-skin .gnai-launcher-symbol img{display:block;width:100%;height:100%;object-fit:contain}
.gnai-skin .gnai-launcher-symbol img{border-radius:22%}
.gnai-skin .gnai-launcher-fx,.gnai-launcher-plate,.gnai-launcher-glow{display:none}
.gnai-skin[data-gnai-skin]:not([data-gnai-skin=classic]){background:transparent;box-shadow:none;color:#fff!important;overflow:visible}
.gnai-skin[data-gnai-skin]:not([data-gnai-skin=classic]) .gnai-launcher-plate{display:block;position:absolute;inset:5%;border:1.5px solid transparent;border-radius:50%;background:linear-gradient(145deg,#454852,#14161c 44%,#101217 74%,#2e3038) padding-box,linear-gradient(145deg,#ffffff7a,var(--gnai-skin-accent) 50%,#ff8b36) border-box;box-shadow:inset 0 1px 2px #ffffff3d,0 4px 9px #08091045}
.gnai-launcher-plate:after{content:"";position:absolute;inset:3% 9% 52%;border-radius:50% 50% 40% 40%;background:linear-gradient(160deg,#ffffff36,#ffffff00 80%)}
.gnai-skin[data-gnai-skin]:not([data-gnai-skin=classic]) .gnai-launcher-glow{display:block;position:absolute;inset:4%;border-radius:50%;box-shadow:0 0 13px var(--gnai-skin-accent),0 0 4px #ff873e;opacity:var(--gnai-glow);animation:gnai-halo-breathe var(--gnai-float) ease-in-out infinite}
.gnai-skin .gnai-launcher-fx{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:2;stroke-linecap:round;stroke-linejoin:round}
.gnai-skin[data-gnai-skin=orbital] .gnai-fx-orbital{display:block;inset:-6%;width:112%;height:112%}
.gnai-orbit-line{stroke:#ff9c65;stroke-width:.8;opacity:.55}
.gnai-skin[data-gnai-skin=orbital] .gnai-orbit-tail,.gnai-skin[data-gnai-skin=orbital] .gnai-orbit-node{animation:gnai-orbit-travel var(--gnai-cycle) linear infinite}
.gnai-orbit-tail{stroke:var(--gnai-skin-accent);stroke-width:1.7;stroke-dasharray:18 82;opacity:.8}
.gnai-orbit-node{stroke:#ffcf8e;stroke-width:4;stroke-dasharray:.2 99.8;filter:drop-shadow(0 0 2px #ff7430)}
.gnai-skin[data-gnai-skin=hologram] .gnai-launcher-art{animation:gnai-holo-float var(--gnai-float) ease-in-out infinite}
.gnai-skin[data-gnai-skin=hologram] .gnai-launcher-plate{inset:2%;border:0;border-radius:0;clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);background:linear-gradient(135deg,#a7a9ad55,var(--gnai-skin-accent),#ff873e)}
.gnai-skin[data-gnai-skin=hologram] .gnai-launcher-plate:before{content:"";position:absolute;inset:2%;clip-path:inherit;background:linear-gradient(135deg,#41444e,#111319 60%,#272a32)}
.gnai-skin[data-gnai-skin=hologram] .gnai-launcher-glow{inset:17%;box-shadow:0 0 15px var(--gnai-skin-accent)}
.gnai-skin[data-gnai-skin=hologram] .gnai-fx-hologram{display:block}
.gnai-holo-frame{stroke:#ff9966;stroke-width:.7;opacity:.5}
.gnai-holo-corners{stroke:var(--gnai-skin-accent);stroke-width:3;filter:drop-shadow(0 0 2px #ff7b35)}
.gnai-holo-scan{stroke:#ffc185;stroke-width:1;opacity:.65;filter:drop-shadow(0 0 2px #ff7b35);animation:gnai-holo-scan var(--gnai-scan) ease-in-out infinite}
.gnai-skin[data-gnai-skin=comet]{border-radius:27%}
.gnai-skin[data-gnai-skin=comet] .gnai-launcher-plate{inset:5%;border-radius:28%;border-color:#ffffff1f;background:linear-gradient(145deg,#42454f,#101217 48%,#17191f 75%,#32343e)}
.gnai-skin[data-gnai-skin=comet] .gnai-launcher-glow{inset:7%;border-radius:27%}
.gnai-skin[data-gnai-skin=comet] .gnai-fx-comet{display:block}
.gnai-comet-line{stroke:var(--gnai-skin-accent);stroke-width:1;opacity:.55}
.gnai-skin[data-gnai-skin=comet] .gnai-comet-tail,.gnai-skin[data-gnai-skin=comet] .gnai-comet-head{animation:gnai-comet-travel var(--gnai-cycle) linear infinite}
.gnai-comet-tail{stroke:var(--gnai-skin-accent);stroke-width:2.5;stroke-dasharray:20 80;filter:drop-shadow(0 0 2px #ff7330)}
.gnai-comet-head{stroke:#ffdc9d;stroke-width:4;stroke-dasharray:.2 99.8;filter:drop-shadow(0 0 2px #ff8c36)}
@keyframes gnai-orbit-travel{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}
@keyframes gnai-comet-travel{from{stroke-dashoffset:20}to{stroke-dashoffset:-80}}
@keyframes gnai-halo-breathe{0%,100%{opacity:calc(var(--gnai-glow)*.5);transform:scale(.97)}50%{opacity:var(--gnai-glow);transform:scale(1.04)}}
@keyframes gnai-holo-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes gnai-holo-scan{0%,100%{transform:translateY(-13px);opacity:.15}50%{transform:translateY(13px);opacity:.85}}
/* Pause decoration, never move the button's hit area or clip its tooltip/unread badge. */
.gnai-skin[data-motion=off] .gnai-launcher-art,.gnai-skin[data-motion=off] .gnai-launcher-art *{animation:none!important}
.gnai-skin[aria-expanded=true] .gnai-launcher-art,.gnai-skin[aria-expanded=true] .gnai-launcher-art *,
.gnai-launcher:hover .gnai-launcher-art,.gnai-launcher:hover .gnai-launcher-art *,
.gnai-launcher:focus-visible .gnai-launcher-art,.gnai-launcher:focus-visible .gnai-launcher-art *,
html[data-gnai-motion-paused=true] .gnai-launcher-art,html[data-gnai-motion-paused=true] .gnai-launcher-art *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.gnai-skin .gnai-launcher-art,.gnai-skin .gnai-launcher-art *{animation:none!important;transition:none!important}}
.gnai-skin .gnai-launcher-symbol.gnai-symbol-image{width:72%;height:72%}

.gnai-skin[data-gnai-skin=orbital] .gnai-orbit-node{animation-delay:calc(var(--gnai-cycle)*-.18)}
.gnai-skin[data-gnai-skin=comet] .gnai-comet-head{animation-delay:calc(var(--gnai-cycle)*-.2)}
