/* Future Niuniu: original purple/cyan material. No business DOM, event handlers or continuous effect loop. */
:root{--glass-tint:rgba(14,20,64,.54);--glass-rim:linear-gradient(132deg,rgba(232,239,255,.8),rgba(139,213,255,.22) 24%,rgba(107,113,255,.12) 51%,rgba(207,149,255,.7) 78%,rgba(99,231,255,.58));--glass-depth:0 8px 25px rgba(0,2,20,.28),0 0 13px rgba(95,82,238,.13),inset 0 1px 1px rgba(235,244,255,.42),inset 0 -1px 2px rgba(80,213,255,.17);--glass-motion:cubic-bezier(.2,.85,.28,1.25)}
.glass,.panel,.nav,.bubble,.plus-menu,dialog{isolation:isolate;background-color:var(--glass-tint);background-image:radial-gradient(ellipse at 8% 0%,rgba(145,166,255,.18),transparent 54%),linear-gradient(127deg,rgba(117,142,236,.11),rgba(17,24,62,.28) 54%,rgba(128,76,221,.13));backdrop-filter:blur(17px) saturate(155%) brightness(1.04);-webkit-backdrop-filter:blur(17px) saturate(155%) brightness(1.04);box-shadow:var(--glass-depth);border-color:rgba(163,167,255,.52)}
.panel,.bubble,.tabs,.record-summary>div,a.list-row{position:relative}
.panel::before,.nav::before,.game-card::before,.ticker::before,.bubble::before,.plus-menu::before,dialog::before,.support .top::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.15px;background:var(--glass-rim);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:-1}
.panel::after,.nav::after,.plus-menu::after,dialog::after{content:"";position:absolute;inset:1px;border-radius:inherit;background:radial-gradient(ellipse at 3% -15%,rgba(215,232,255,.22),transparent 48%),linear-gradient(180deg,rgba(213,221,255,.08),transparent 17%,transparent 85%,rgba(122,99,243,.055));pointer-events:none;z-index:-1}
.nav{background-color:rgba(19,27,76,.63);background-image:linear-gradient(115deg,rgba(94,139,211,.17),rgba(19,20,71,.28) 56%,rgba(122,74,195,.19));backdrop-filter:blur(23px) saturate(165%);-webkit-backdrop-filter:blur(23px) saturate(165%);box-shadow:0 -4px 25px rgba(42,30,128,.25),0 12px 35px rgba(0,2,22,.38),inset 0 1px 1px rgba(216,239,255,.58)}
button,a.icon,.nav a,.section-links>a{transition:transform .22s var(--glass-motion),box-shadow .22s ease,filter .22s ease}
button:active,a.icon:active,.nav a:active,.section-links>a:active{transform:translateY(1px) scale(.965);filter:brightness(1.08) saturate(1.05)}
button.primary,.send{background-image:radial-gradient(ellipse at 15% -30%,rgba(255,255,255,.42),transparent 57%),linear-gradient(109deg,#9b45ff,#6251f4 48%,#3e9cff 82%,#68efff);box-shadow:inset 0 2px 3px rgba(241,242,255,.66),inset 0 -2px 3px rgba(41,74,190,.58),0 3px 16px rgba(107,74,244,.38);border-color:rgba(208,221,255,.78)}
input:not([type=file]),textarea,select{background-image:linear-gradient(120deg,rgba(120,151,208,.14),rgba(52,47,104,.2) 55%,rgba(126,100,189,.14));background-color:rgba(18,23,62,.37);backdrop-filter:blur(9px) saturate(135%);-webkit-backdrop-filter:blur(9px) saturate(135%);box-shadow:inset 0 1px 2px rgba(211,226,255,.24),inset 0 -1px 2px rgba(129,109,226,.16)}
input:focus,textarea:focus,select:focus{box-shadow:0 0 0 1px rgba(120,225,255,.78),0 0 12px rgba(87,162,255,.27),inset 0 1px 2px rgba(229,239,255,.3)}
.support .top,.hero-room .hero-data{isolation:isolate;background-image:radial-gradient(ellipse at 8% 0%,rgba(159,165,255,.2),transparent 57%),linear-gradient(135deg,rgba(46,61,121,.55),rgba(49,27,101,.59));backdrop-filter:blur(15px) saturate(150%);-webkit-backdrop-filter:blur(15px) saturate(150%);box-shadow:var(--glass-depth)}
dialog{background-color:rgba(14,19,56,.8);backdrop-filter:blur(25px) saturate(155%);-webkit-backdrop-filter:blur(25px) saturate(155%);box-shadow:0 28px 80px rgba(0,1,19,.62),var(--glass-depth)}
dialog::backdrop{background:rgba(2,5,25,.5);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.plus-menu{background-color:rgba(25,29,82,.82)}
#app>section{animation:glass-page-enter .18s ease-out}
@keyframes glass-page-enter{from{opacity:0}to{opacity:1}}
@media(hover:hover) and (pointer:fine){.game-card:hover,.section-links>a:hover{box-shadow:inset 0 1px 2px rgba(232,244,255,.7),0 0 17px rgba(115,115,255,.32)}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glass,.panel,.nav,.bubble,.plus-menu,dialog{background-color:rgba(18,23,64,.94)}}
@media(prefers-reduced-transparency:reduce){.glass,.panel,.nav,.bubble,.plus-menu,dialog{background-color:rgba(18,23,64,.97);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){#app>section{animation:none}button,a.icon,.nav a,.section-links>a{transition:none}button:active,a.icon:active,.nav a:active,.section-links>a:active{transform:none}}
