/* Opening screen */
/*palette:start*/
[data-palette=christmas]{--s-bg:#f3f6ec;--s-m1:#bfe3cb;--s-m2:#f4c3cb;--s-m3:#f5e2a8;--s-c1:#0e5f3f;--s-c2:#8c1a38;--s-c3:#a01f42;--s-on:#ffffff;--s-t1:#0d5c3e;--s-t2:#9a1b3b;--s-t3:#6d4e00}
[data-palette=christmas][data-theme=dark]{--s-bg:#06140f;--s-m1:#0f4f38;--s-m2:#6a1730;--s-m3:#5c4610;--s-c1:#0e6443;--s-c2:#8c1a38;--s-c3:#a01f42;--s-on:#ffffff;--s-t1:#9be0bb;--s-t2:#ffb2c0;--s-t3:#ecc96f}
[data-palette=aurora]{--s-bg:#efe9ff;--s-m1:#c5b0ff;--s-m2:#98e6ff;--s-m3:#ffbde4;--s-c1:#6d3bf5;--s-c2:#a22bd8;--s-c3:#d51e8c;--s-on:#ffffff;--s-t1:#4b1ecc;--s-t2:#7c178b;--s-t3:#084c6e}
[data-palette=aurora][data-theme=dark]{--s-bg:#0d0922;--s-m1:#3f1fa8;--s-m2:#0b5b8c;--s-m3:#8a1a6e;--s-c1:#7a4dff;--s-c2:#b32fe7;--s-c3:#dc1488;--s-on:#ffffff;--s-t1:#e2d9ff;--s-t2:#ffd0f0;--s-t3:#97e8ff}
[data-palette=sunset]{--s-bg:#fff0e6;--s-m1:#ffc09e;--s-m2:#ffafcc;--s-m3:#ffdd80;--s-c1:#d63515;--s-c2:#d91e72;--s-c3:#9b2fd4;--s-on:#ffffff;--s-t1:#9a2113;--s-t2:#9c1254;--s-t3:#7d1fa7}
[data-palette=sunset][data-theme=dark]{--s-bg:#1a0916;--s-m1:#8f2a1f;--s-m2:#86175c;--s-m3:#7a5200;--s-c1:#d93212;--s-c2:#d91e72;--s-c3:#8e2fd0;--s-on:#ffffff;--s-t1:#ffc9ae;--s-t2:#ffc4de;--s-t3:#ffd479}
[data-palette=ocean]{--s-bg:#e4f5ff;--s-m1:#98d8ff;--s-m2:#a0efe1;--s-m3:#b2c2ff;--s-c1:#0a6fe0;--s-c2:#0a7cac;--s-c3:#0a827d;--s-on:#ffffff;--s-t1:#084da1;--s-t2:#085476;--s-t3:#065850}
[data-palette=ocean][data-theme=dark]{--s-bg:#05121f;--s-m1:#0b4a8f;--s-m2:#0b6b70;--s-m3:#2a2f9a;--s-c1:#1270e6;--s-c2:#0b79a8;--s-c3:#0a7f78;--s-on:#ffffff;--s-t1:#c1e4ff;--s-t2:#95eee9;--s-t3:#d6ddff}
[data-palette=candy]{--s-bg:#fff0f8;--s-m1:#ffb0da;--s-m2:#cfb8ff;--s-m3:#a4e2ff;--s-c1:#db127e;--s-c2:#a53cf0;--s-c3:#186cf4;--s-on:#ffffff;--s-t1:#970e5e;--s-t2:#6f1abe;--s-t3:#184c9e}
[data-palette=candy][data-theme=dark]{--s-bg:#17081f;--s-m1:#93176a;--s-m2:#5a23a8;--s-m3:#155a9c;--s-c1:#db127e;--s-c2:#a53cf0;--s-c3:#186cf4;--s-on:#ffffff;--s-t1:#ffc5e7;--s-t2:#e1cdff;--s-t3:#acdcff}
[data-palette=emerald]{--s-bg:#e6fbef;--s-m1:#9fedbf;--s-m2:#d0f493;--s-m3:#97ecda;--s-c1:#2fe39a;--s-c2:#6be04a;--s-c3:#b4e62c;--s-on:#04261a;--s-t1:#056040;--s-t2:#085b50;--s-t3:#325d0a}
[data-palette=emerald][data-theme=dark]{--s-bg:#04140d;--s-m1:#0a6b45;--s-m2:#3f6b0a;--s-m3:#0a6a66;--s-c1:#2fe39a;--s-c2:#6be04a;--s-c3:#b4e62c;--s-on:#04261a;--s-t1:#8ff0c8;--s-t2:#baed71;--s-t3:#97ece8}
[data-palette=gold]{--s-bg:#fff5da;--s-m1:#ffdc80;--s-m2:#ffc598;--s-m3:#f4bccd;--s-c1:#ffd23f;--s-c2:#ffa62b;--s-c3:#ff8058;--s-on:#2a1500;--s-t1:#7b4400;--s-t2:#933319;--s-t3:#8a2466}
[data-palette=gold][data-theme=dark]{--s-bg:#140d03;--s-m1:#7a5200;--s-m2:#7a3410;--s-m3:#6a1f4a;--s-c1:#ffd23f;--s-c2:#ffa62b;--s-c3:#ff8058;--s-on:#2a1500;--s-t1:#ffd46e;--s-t2:#ffc9a7;--s-t3:#ffc5dc}
/*palette:end*/
.s-hat{display:none;transform-box:fill-box;transform-origin:44% 88%;animation:s-sway 1.4s ease-in-out infinite alternate}
[data-palette=christmas] .s-hat{display:block}
@keyframes s-sway{from{transform:rotate(5deg)}to{transform:rotate(13deg)}}
html{background:var(--s-bg)}
#gr-splash{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--s-bg);transition:opacity .38s ease,transform .38s cubic-bezier(.4,0,.2,1)}
html[data-nosplash] #gr-splash{display:none}
#gr-splash.out{opacity:0;transform:scale(1.08);pointer-events:none}
#gr-splash .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.s-mesh,.s-mesh2{position:absolute;inset:-30%;will-change:transform;background:radial-gradient(44% 40% at 24% 24%,var(--s-m1),transparent 72%),radial-gradient(40% 38% at 78% 30%,var(--s-m2),transparent 72%);animation:s-a 4s ease-in-out infinite alternate}
.s-mesh2{background:radial-gradient(42% 40% at 30% 78%,var(--s-m3),transparent 72%),radial-gradient(40% 38% at 80% 72%,var(--s-m2),transparent 72%);animation:s-b 5s ease-in-out infinite alternate}
@keyframes s-a{to{transform:translate3d(9%,6%,0) rotate(12deg)}}
@keyframes s-b{to{transform:translate3d(-8%,-7%,0) rotate(-14deg)}}
.s-rays{position:absolute;left:50%;top:44%;width:220vmax;height:220vmax;margin:-110vmax 0 0 -110vmax;z-index:1;background:repeating-conic-gradient(var(--s-c1) 0 9deg,transparent 9deg 24deg,var(--s-c3) 24deg 33deg,transparent 33deg 48deg);-webkit-mask:radial-gradient(closest-side,#000,transparent 42%);mask:radial-gradient(closest-side,#000,transparent 42%);opacity:.3;will-change:transform;animation:s-spin 9s linear infinite}
.s-stage{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:26px}
.s-logo{position:relative;width:124px;height:124px}
.s-halo,.s-ring{position:absolute;inset:0;border-radius:40px}
.s-halo{inset:-56px;border-radius:50%;background:radial-gradient(closest-side,var(--s-c2),transparent);animation:s-breathe .9s ease-in-out infinite alternate}
@keyframes s-breathe{from{transform:scale(.86);opacity:.34}to{transform:scale(1.1);opacity:.66}}
.s-ring{border:3px solid var(--s-c1);opacity:0;animation:s-ring .7s .2s cubic-bezier(.2,.8,.2,1) both}
.s-ring.b{border-color:var(--s-c3);animation-delay:.42s}
.s-ring.c{border-color:var(--s-c2);animation-delay:.62s}
@keyframes s-ring{from{transform:translateY(34px) scale(.7,.3);opacity:.9}to{transform:translateY(34px) scale(1.9,.8);opacity:0}}
.s-hop{position:absolute;inset:0;animation:s-bounce .86s linear both,s-twirl 1.15s .96s cubic-bezier(.4,0,.2,1) infinite}
.s-hop svg{display:block;width:100%;height:100%;overflow:visible}
@keyframes s-bounce{
0%{transform:translate(-120px,-340px) rotate(-260deg) scale(.7);animation-timing-function:cubic-bezier(.5,0,1,.6)}
24%{transform:translate(-78px,36px) rotate(-120deg) scale(1.2,.8);animation-timing-function:cubic-bezier(0,.5,.5,1)}
40%{transform:translate(8px,-104px) rotate(-30deg) scale(.95,1.05);animation-timing-function:cubic-bezier(.5,0,1,.6)}
54%{transform:translate(70px,36px) rotate(60deg) scale(1.18,.82);animation-timing-function:cubic-bezier(0,.5,.5,1)}
67%{transform:translate(30px,-48px) rotate(150deg) scale(.97,1.03);animation-timing-function:cubic-bezier(.5,0,1,.6)}
78%{transform:translate(0,24px) rotate(300deg) scale(1.12,.88);animation-timing-function:cubic-bezier(0,.5,.5,1)}
89%{transform:translateY(-14px) rotate(350deg)}
100%{transform:rotate(360deg)}}
@keyframes s-twirl{0%,18%{transform:none}46%{transform:translateY(-30px) rotate(180deg) scale(1.04)}72%{transform:translateY(8px) rotate(360deg) scale(1.1,.9)}86%,100%{transform:rotate(360deg)}}
.s-p{transform-box:fill-box;stroke:var(--s-on);fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.s-bl{transform-origin:100% 100%;animation:s-bow .42s .22s ease-in-out infinite alternate}
.s-br{transform-origin:0 100%;animation:s-bow .42s .3s ease-in-out infinite alternate}
@keyframes s-bow{from{transform:scale(.82) rotate(-10deg)}to{transform:scale(1.08) rotate(8deg)}}
.s-orbit{position:absolute;left:50%;top:50%;width:0;height:0;transform:scaleY(.7)}
.s-spin{position:absolute;left:0;top:0;width:0;height:0;animation:s-spin 3.2s linear infinite}
.s-spin.b{animation:s-spin 4.6s linear infinite reverse}
@keyframes s-spin{to{transform:rotate(360deg)}}
.s-sp{position:absolute;left:-9px;top:-9px;width:18px;height:18px;transform:rotate(var(--a,0deg)) translateY(-118px)}
.s-sp i{display:block;width:100%;height:100%;background:var(--s-c1);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);opacity:0;animation:s-tw .7s .3s ease-in-out infinite alternate}
.s-sp.gem i{clip-path:polygon(25% 8%,75% 8%,100% 38%,50% 100%,0 38%)}
.s-sp:nth-child(1){--a:0deg}.s-sp:nth-child(2){--a:72deg}.s-sp:nth-child(3){--a:144deg}.s-sp:nth-child(4){--a:216deg}.s-sp:nth-child(5){--a:288deg}
.s-spin.b .s-sp{transform:rotate(var(--a,0deg)) translateY(-156px)}
.s-sp:nth-child(2n) i{background:var(--s-c2);animation-delay:.42s}.s-sp:nth-child(3n) i{background:var(--s-c3);animation-delay:.54s}
.s-spin.b .s-sp i{background:var(--s-t2)}.s-spin.b .s-sp:nth-child(2n) i{background:var(--s-t3)}
@keyframes s-tw{from{transform:scale(.4);opacity:.25}to{transform:scale(1.1);opacity:1}}
.s-word{position:relative;width:236px;height:46px;overflow:visible}
.gl path{transform-box:fill-box;transform-origin:center bottom;animation:s-letter .36s calc(.24s + var(--i,0)*38ms) cubic-bezier(.34,1.7,.64,1) both,s-wave 1.15s calc(1s + var(--i,0)*52ms) ease-in-out infinite}
.gl>:nth-child(1){--i:0}.gl>:nth-child(2){--i:1}.gl>:nth-child(3){--i:2}.gl>:nth-child(4){--i:3}.gl>:nth-child(5){--i:4}.gl>:nth-child(6){--i:5}.gl>:nth-child(7){--i:6}.gl>:nth-child(8){--i:7}
@keyframes s-letter{from{transform:translateY(-34px) rotate(-22deg) scale(.3);opacity:0}to{transform:none;opacity:1}}
@keyframes s-wave{0%,42%,100%{transform:none}16%{transform:translateY(-9px) rotate(-5deg) scale(1.1)}30%{transform:translateY(1px) scale(1.04,.94)}}
.s-w1 stop:nth-child(1){stop-color:var(--s-t1)}.s-w1 stop:nth-child(2){stop-color:var(--s-t2)}.s-w1 stop:nth-child(3){stop-color:var(--s-t3)}
.s-c1 stop:nth-child(1){stop-color:var(--s-c1)}.s-c1 stop:nth-child(2){stop-color:var(--s-c2)}.s-c1 stop:nth-child(3){stop-color:var(--s-c3)}
.s-sheen{animation:s-sheen .8s .86s cubic-bezier(.4,0,.2,1) both}
@keyframes s-sheen{from{transform:translateX(-90px)}to{transform:translateX(340px)}}
@media (prefers-reduced-motion:reduce){
#gr-splash *{animation:none!important}
#gr-splash{transition:opacity .12s linear}
#gr-splash.out{transform:none}
.s-sp i{opacity:1}.s-ring,.s-sheen{display:none}
}
/* Same-session reopen. boot.js sets data-splash-again; inert until it does.
   The page shows the existing wordmark at rest, with no entrance, rays, orbit or logo flight, and lifts as usual. */
html[data-splash-again] #gr-splash .s-rays,
html[data-splash-again] #gr-splash .s-halo,
html[data-splash-again] #gr-splash .s-orbit,
html[data-splash-again] #gr-splash .s-ring,
html[data-splash-again] #gr-splash .s-sheen{display:none}
/* Not display:none: the wordmark's gradient (#s-g) is defined inside this svg, and a display:none subtree drops it. */
html[data-splash-again] #gr-splash .s-hop{visibility:hidden;animation:none}
html[data-splash-again] #gr-splash .s-mesh,
html[data-splash-again] #gr-splash .s-mesh2,
html[data-splash-again] #gr-splash .gl path{animation:none}
html[data-splash-again] #gr-splash .s-logo{height:0}
html[data-splash-again] #gr-splash .s-stage{gap:0}
html[data-splash-again] #gr-splash .s-word{width:200px;height:auto}
