/* New Year themes «Новогодняя ночь» and «Ледяной дворец»: palettes, scene motion, access-level styles and two own interfaces. */

/* --- palettes; the accent follows the viewer's access level (data-ny-tier) --- */
:root{--ny-accent:#9fd8ff;--ny-accent2:#e7f6ff;--ny-glow:#6fb8ff;--ny-ring:#9fd8ff61;--ny-tier-label:'ЗРИТЕЛЬ'}
:root[data-ny-tier=novice]{--ny-accent:#7ee0a5;--ny-ring:#7ee0a561;--ny-accent2:#e3ffee;--ny-glow:#37c27a;--ny-tier-label:'НОВИЧОК'}
:root[data-ny-tier=gamer]{--ny-accent:#c9a0ff;--ny-ring:#c9a0ff61;--ny-accent2:#f1e6ff;--ny-glow:#9a63ff;--ny-tier-label:'ГЕЙМЕР'}
:root[data-ny-tier=legend]{--ny-accent:#ffd479;--ny-ring:#ffd47961;--ny-accent2:#fff3d1;--ny-glow:#ffb020;--ny-tier-label:'ЛЕГЕНДА'}
:root[data-ny-tier=team]{--ny-accent:#ff8f8f;--ny-ring:#ff8f8f61;--ny-accent2:#ffe3e3;--ny-glow:#ff4d5e;--ny-tier-label:'КОМАНДА'}
:root[data-ny-tier=owner]{--ny-accent:#f4f7ff;--ny-ring:#f4f7ff61;--ny-accent2:#ffffff;--ny-glow:#b69cff;--ny-tier-label:'ВЛАДЕЛЕЦ'}
:root[data-theme=new-year-night],.theme-demo[data-preview-theme=new-year-night]{--bg:#0a1226;--panel:#131e3a;--panel2:#1c2a4d;--text:#f5f7ff;--muted:#c0c9e6;--line:#4a5d8e;--accent:var(--ny-accent);--accent-hover:var(--ny-accent2);--soft:#27375e;--header:#0a1226f5;--on-accent:#07101f;--error:#ffc2bd;--scene:url('/assets/themes/new-year-night.svg');color-scheme:dark}
:root[data-theme=ice-palace],.theme-demo[data-preview-theme=ice-palace]{--bg:#071a26;--panel:#0f2c3d;--panel2:#173d52;--text:#effaff;--muted:#b7d5e3;--line:#41758f;--accent:var(--ny-accent);--accent-hover:var(--ny-accent2);--soft:#1f4a61;--header:#071a26f5;--on-accent:#04202e;--error:#ffc2bd;--scene:url('/assets/themes/ice-palace.svg');color-scheme:dark}
:root[data-theme=snow-village],.theme-demo[data-preview-theme=snow-village]{--bg:#0b1230;--panel:#14204a;--panel2:#1e2d5e;--text:#f5f8ff;--muted:#c0cce8;--line:#4c63a0;--accent:var(--ny-accent);--accent-hover:var(--ny-accent2);--soft:#283a70;--header:#0b1230f5;--on-accent:#07101f;--error:#ffc2bd;--scene:url('/assets/themes/snow-village.svg');color-scheme:dark}
:root[data-theme=frost-synth],.theme-demo[data-preview-theme=frost-synth]{--bg:#0e0826;--panel:#1a1140;--panel2:#271a58;--text:#f7f2ff;--muted:#cbbfe6;--line:#6a53a8;--accent:var(--ny-accent);--accent-hover:var(--ny-accent2);--soft:#33236b;--header:#0e0826f5;--on-accent:#0d0722;--error:#ffc2bd;--scene:url('/assets/themes/frost-synth.svg');color-scheme:dark}
:root[data-theme=golden-ball],.theme-demo[data-preview-theme=golden-ball]{--bg:#18080f;--panel:#2a1220;--panel2:#3a1b2c;--text:#fff6ec;--muted:#e0c6bc;--line:#8a4a58;--accent:var(--ny-accent);--accent-hover:var(--ny-accent2);--soft:#4a2434;--header:#18080ff5;--on-accent:#220d0a;--error:#ffc2bd;--scene:url('/assets/themes/golden-ball.svg');color-scheme:dark}
:root[data-theme=polar-watch],.theme-demo[data-preview-theme=polar-watch]{--bg:#04181a;--panel:#0a2a2d;--panel2:#103b3f;--text:#effffa;--muted:#b4d8d2;--line:#3d8077;--accent:var(--ny-accent);--accent-hover:var(--ny-accent2);--soft:#17494a;--header:#04181af5;--on-accent:#031c1b;--error:#ffc2bd;--scene:url('/assets/themes/polar-watch.svg');color-scheme:dark}
:root[data-theme=crystal-midnight],.theme-demo[data-preview-theme=crystal-midnight]{--bg:#000000;--panel:#05080d;--panel2:#0c121b;--text:#f2f6ff;--muted:#b4bfd6;--line:#34425e;--accent:var(--ny-accent);--accent-hover:var(--ny-accent2);--soft:#121a29;--header:#000000f5;--on-accent:#05070c;--error:#ffc2bd;--scene:url('/assets/themes/crystal-midnight.svg');color-scheme:dark}
:root:is([data-theme=new-year-night],[data-theme=ice-palace],[data-theme=snow-village],[data-theme=frost-synth],[data-theme=golden-ball],[data-theme=polar-watch],[data-theme=crystal-midnight]) body{isolation:isolate;background:var(--bg)}
:root:is([data-theme=new-year-night],[data-theme=ice-palace],[data-theme=snow-village],[data-theme=frost-synth],[data-theme=golden-ball],[data-theme=polar-watch],[data-theme=crystal-midnight]) body:before{content:'';position:fixed;inset:0;z-index:-2;background:var(--scene) center/cover no-repeat;pointer-events:none}
:root:is([data-theme=new-year-night],[data-theme=ice-palace],[data-theme=snow-village],[data-theme=frost-synth],[data-theme=golden-ball],[data-theme=polar-watch],[data-theme=crystal-midnight]) :is(.page-intro,.profile-head){text-shadow:0 2px 18px #000}
:root:is([data-theme=new-year-night],[data-theme=ice-palace],[data-theme=snow-village],[data-theme=frost-synth],[data-theme=golden-ball],[data-theme=polar-watch],[data-theme=crystal-midnight]) .account-card{box-shadow:0 18px 60px #0003}

/* A soft shade keeps text legible where it sits straight on the bright snow of the scene. */
:root:is([data-theme=new-year-night],[data-theme=ice-palace],[data-theme=snow-village],[data-theme=frost-synth],[data-theme=golden-ball],[data-theme=polar-watch],[data-theme=crystal-midnight]) body:after{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#00000026 0,#00000040 24%,#0000006b 55%,#000000c9 100%)}

/* --- scene motion (switched off by the site-wide motion controls and by reduced motion) --- */
.motion-scene .ny-aur,.motion-scene .ny-burst,.motion-scene .ny-star,.motion-scene .ny-spark{transform-box:fill-box;transform-origin:center}
.motion-scene .ny-burst{opacity:0}
.motion-scene .ny-beam{transform-box:view-box;transform-origin:800px 520px}
@media(prefers-reduced-motion:no-preference){
 .motion-scene .ny-tw-a{animation:ny-twinkle 4s ease-in-out infinite alternate}
 .motion-scene .ny-tw-b{animation:ny-twinkle 5.5s ease-in-out -1.5s infinite alternate}
 .motion-scene .ny-tw-c{animation:ny-twinkle 7s ease-in-out -3s infinite alternate}
 .motion-scene .ny-fall-slow{animation:ny-fall 70s linear infinite,ny-sway 11s ease-in-out infinite alternate}
 .motion-scene .ny-fall-mid{animation:ny-fall 44s linear infinite,ny-sway 8s ease-in-out -3s infinite alternate}
 .motion-scene .ny-fall-fast{animation:ny-fall 28s linear infinite,ny-sway 6s ease-in-out -2s infinite alternate}
 .motion-scene .ny-bulb-0{animation:ny-bulb 2.4s ease-in-out infinite}
 .motion-scene .ny-bulb-1{animation:ny-bulb 2.4s ease-in-out -.8s infinite}
 .motion-scene .ny-bulb-2{animation:ny-bulb 2.4s ease-in-out -1.6s infinite}
 .motion-scene .ny-star{animation:ny-pulse 3s ease-in-out infinite alternate}
 .motion-scene .ny-win{animation:ny-bulb 6s ease-in-out infinite alternate}
 .motion-scene .ny-win-2{animation-delay:-2.5s}
 .motion-scene .ny-burst-1{animation:ny-burst 8s ease-out infinite}
 .motion-scene .ny-burst-2{animation:ny-burst 8s ease-out -2.7s infinite}
 .motion-scene .ny-burst-3{animation:ny-burst 8s ease-out -5.4s infinite}
 .motion-scene .ny-aur-1{animation:ny-aurora 26s ease-in-out infinite alternate}
 .motion-scene .ny-aur-2{animation:ny-aurora 34s ease-in-out -9s infinite alternate}
 .motion-scene .ny-aur-3{animation:ny-aurora 41s ease-in-out -17s infinite alternate}
 .motion-scene .ny-gate,.motion-scene .ny-pane{animation:ny-bulb 5s ease-in-out infinite alternate}
 .motion-scene .ny-pane{animation-duration:7s}
 .motion-scene .ny-beam{animation:ny-sweep 14s ease-in-out infinite alternate}
 .motion-scene .ny-spark{animation:ny-spark 4.2s ease-in-out infinite}
 .motion-scene .ny-spark-2{animation-delay:-1.4s}
 .motion-scene .ny-spark-3{animation-delay:-2.8s}
}
@keyframes ny-twinkle{from{opacity:.3}to{opacity:1}}
@keyframes ny-fall{to{transform:translateY(1000px)}}
@keyframes ny-sway{from{translate:-18px 0}to{translate:22px 0}}
@keyframes ny-bulb{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes ny-pulse{from{transform:scale(1);opacity:.85}to{transform:scale(1.18);opacity:1}}
@keyframes ny-burst{0%{transform:scale(.2);opacity:0}8%{opacity:1}55%{transform:scale(1);opacity:.9}82%,100%{transform:scale(1.15);opacity:0}}
@keyframes ny-aurora{from{transform:translate(-34px,-10px) skewX(-2deg);opacity:.65}to{transform:translate(34px,22px) skewX(2deg);opacity:1}}
@keyframes ny-sweep{from{transform:rotate(-16deg)}to{transform:rotate(14deg)}}
@keyframes ny-spark{0%,100%{transform:scale(.2) rotate(0);opacity:0}50%{transform:scale(1) rotate(45deg);opacity:1}}

/* --- shared pieces of both interfaces --- */
.ny-night-signature,.ice-palace-signature{display:none}
/* A small caption in the corner of the page header: it takes no room in the header, so the bar never stretches. */
:root[data-interface=new-year-night] .ny-night-signature,:root[data-interface=ice-palace] .ice-palace-signature{position:absolute;top:1px;right:14px;z-index:2;display:none;max-width:70vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;color:var(--ny-accent);font-size:8px;font-weight:700;line-height:1;letter-spacing:1.4px}
.ny-night-signature .ny-sigil,.ice-palace-signature .ice-sigil{display:none}
.ny-night-signature span,.ice-palace-signature span{display:inline}
.ny-night-signature small,.ice-palace-signature small{display:inline;margin-left:8px;font-size:8px;letter-spacing:1.4px;color:var(--muted);font-weight:600}
.ny-night-signature small:after,.ice-palace-signature small:after{content:' · ' var(--ny-tier-label)}
.ny-sigil,.ice-sigil{position:relative;display:block;flex:none;width:32px;height:32px}
.ny-sigil{background:linear-gradient(var(--ny-accent),var(--ny-accent)) center/2px 100% no-repeat,linear-gradient(var(--ny-accent),var(--ny-accent)) center/100% 2px no-repeat}
.ny-sigil:before,.ny-sigil:after{content:'';position:absolute;inset:0;background:linear-gradient(var(--ny-accent),var(--ny-accent)) center/2px 100% no-repeat;transform:rotate(45deg)}
.ny-sigil:after{transform:rotate(-45deg);background-size:2px 100%}
.ice-sigil{border:1.5px solid var(--ny-accent);transform:rotate(45deg) scale(.72);background:linear-gradient(135deg,#ffffff40,transparent 60%);box-shadow:0 0 16px var(--ny-glow)}
.ice-sigil:after{content:'';position:absolute;inset:7px;border:1px solid var(--ny-accent2);opacity:.7}
.interface-mini-nynight,.interface-mini-icepalace{border-color:var(--ny-accent,#9fd8ff)}
.interface-mini-nynight{border-radius:16px;background:linear-gradient(180deg,#0a1226,#1c2a4d)}
.interface-mini-nynight span{border-radius:10px}
.interface-mini-icepalace{border-radius:4px 20px 4px 20px;background:linear-gradient(135deg,#071a26,#173d52)}
.interface-mini-icepalace span{border-radius:3px 10px 3px 10px}

/* --- Новогодняя ночь: round, warm, lit by a string of lights --- */
:root[data-interface=new-year-night]{--ny-r:18px}
:root[data-interface=new-year-night] :is(.header,.legal-header){background:radial-gradient(circle at 14px 5px,var(--ny-accent) 0 2.4px,transparent 3.4px) left bottom/38px 10px repeat-x,linear-gradient(180deg,#0b1430f5,#0b1430dd);border-bottom:1px solid var(--ny-ring)}
:root[data-interface=new-year-night] .brand-mark{border-radius:50%;background:linear-gradient(135deg,var(--ny-accent2),var(--ny-accent));color:var(--on-accent);box-shadow:0 0 18px var(--ny-ring)}
:root[data-interface=new-year-night] :is(.hero,.info-card,.game-card,.account-card,.editor-panel,.admin-list-panel,.news-card,.forum-topic,.social-card,.shop-card,.profile-boosty-card,.legal-document,.interface-card,.platform){border-radius:var(--ny-r);border:1px solid var(--ny-ring)}
:root[data-interface=new-year-night] :is(.info-card,.account-card,.editor-panel,.admin-list-panel,.social-card,.news-card,.legal-document,.platform){background:linear-gradient(180deg,#ffffff0f,#ffffff00 42%),var(--panel)}
:root[data-interface=new-year-night] .hero{border-radius:24px;border:1px solid var(--ny-ring);box-shadow:0 0 0 1px #0004,0 24px 70px #0007,inset 0 0 60px #ffffff08}
:root[data-interface=new-year-night] .hero .eyebrow{display:inline-flex;width:fit-content;max-width:100%;padding:7px 14px;border:1px solid var(--ny-ring);border-radius:999px;background:#0a1226cc;color:var(--ny-accent2)}
:root[data-interface=new-year-night] :is(h1,h2){text-shadow:0 0 28px var(--ny-ring)}
:root[data-interface=new-year-night] h1 span{color:var(--ny-accent)}
:root[data-interface=new-year-night] :is(.button,.filter,.theme-filter,.account-text,.mobile-menu-toggle){border-radius:999px}
:root[data-interface=new-year-night] .button:not(.outline):not(:disabled){background:linear-gradient(135deg,var(--ny-accent2),var(--ny-accent));color:var(--on-accent);border-color:transparent;box-shadow:0 6px 22px var(--ny-ring)}
:root[data-interface=new-year-night] .button.outline{background:#0a1226aa;border-color:var(--ny-ring)}
:root[data-interface=new-year-night] :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){border-radius:14px;background-color:#0a1226}
:root[data-interface=new-year-night] .section-head{border-bottom:1px solid var(--ny-ring);padding-bottom:14px}
:root[data-interface=new-year-night] .section-head h2 span{display:inline-grid;place-items:center;min-width:34px;height:30px;margin-right:10px;border:1px solid var(--ny-ring);border-radius:999px;background:var(--panel);color:var(--ny-accent);font-size:11px}
:root[data-interface=new-year-night] :is(.account-tabs,.admin-tabs,.account-section-tabs){background:#0a1226cc;border:1px solid var(--ny-ring);border-radius:999px;padding:6px;gap:6px}
:root[data-interface=new-year-night] :is(.account-tabs,.admin-tabs,.account-section-tabs) button{border:1px solid transparent;border-radius:999px}
:root[data-interface=new-year-night] :is(.account-tabs,.admin-tabs,.account-section-tabs) button[aria-selected=true]{border-color:var(--ny-ring);background:var(--soft);color:var(--ny-accent2)}
:root[data-interface=new-year-night] .admin-tabs button::after{display:none}
:root[data-interface=new-year-night] :is(.theme-option,.day){border-radius:16px}
:root[data-interface=new-year-night] dialog{border:1px solid var(--ny-ring);border-radius:22px;box-shadow:0 24px 100px #000c}
:root[data-interface=new-year-night] .footer{border-color:var(--ny-ring)}

/* --- Ледяной дворец: sharp crystal corners, frosted panels, cool light --- */
:root[data-interface=ice-palace]{--ny-frost:linear-gradient(135deg,#ffffff1c,#ffffff06 52%,#9fd8ff12)}
:root[data-interface=ice-palace] :is(.header,.legal-header){background:linear-gradient(180deg,#071a26f7,#0a2a3ce6);border-bottom:1px solid transparent;border-image:linear-gradient(90deg,transparent,var(--ny-accent),transparent) 1}
:root[data-interface=ice-palace] .brand-mark{border-radius:4px 14px 4px 14px;background:linear-gradient(135deg,var(--ny-accent2),var(--ny-accent));color:var(--on-accent);box-shadow:0 0 22px var(--ny-ring)}
:root[data-interface=ice-palace] :is(.hero,.info-card,.game-card,.account-card,.editor-panel,.admin-list-panel,.news-card,.forum-topic,.social-card,.shop-card,.profile-boosty-card,.legal-document,.interface-card,.platform){border-radius:6px 22px 6px 22px;border:1px solid var(--ny-ring)}
:root[data-interface=ice-palace] :is(.info-card,.account-card,.editor-panel,.admin-list-panel,.social-card,.news-card,.legal-document,.platform,.game-card){background:var(--ny-frost),var(--panel);box-shadow:inset 0 1px 0 #ffffff26,0 16px 44px #0006}
:root[data-interface=ice-palace] .hero{border-radius:6px 44px 6px 44px;border:1px solid var(--ny-ring);box-shadow:inset 0 1px 0 #ffffff33,0 26px 80px #000a}
:root[data-interface=ice-palace] .hero .eyebrow{display:inline-flex;width:fit-content;max-width:100%;padding:8px 14px;border:1px solid var(--ny-ring);border-radius:2px 12px 2px 12px;background:#071a26d9;color:var(--ny-accent2)}
:root[data-interface=ice-palace] :is(h1,h2,h3){letter-spacing:.6px}
:root[data-interface=ice-palace] :is(h1,h2){text-shadow:0 0 30px var(--ny-ring)}
:root[data-interface=ice-palace] h1 span{color:var(--ny-accent)}
:root[data-interface=ice-palace] :is(.button,.filter,.theme-filter,.account-text,.mobile-menu-toggle){border-radius:3px 12px 3px 12px}
:root[data-interface=ice-palace] .button:not(.outline):not(:disabled){background:linear-gradient(135deg,var(--ny-accent2),var(--ny-accent));color:var(--on-accent);border-color:transparent;box-shadow:0 0 22px var(--ny-ring)}
:root[data-interface=ice-palace] .button.outline{background:#071a26b3;border-color:var(--ny-ring)}
:root[data-interface=ice-palace] :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){border-radius:3px 12px 3px 12px;background-color:#05131d}
:root[data-interface=ice-palace] .section-head{border-bottom:1px solid transparent;border-image:linear-gradient(90deg,var(--ny-accent),transparent) 1;padding-bottom:14px}
:root[data-interface=ice-palace] .section-head h2 span{display:inline-grid;place-items:center;min-width:34px;height:30px;margin-right:10px;border:1px solid var(--ny-ring);border-radius:2px 10px 2px 10px;background:var(--panel);color:var(--ny-accent);font-size:11px}
:root[data-interface=ice-palace] :is(.account-tabs,.admin-tabs,.account-section-tabs){background:#071a26cc;border:1px solid var(--ny-ring);border-radius:4px 16px 4px 16px;padding:6px;gap:6px}
:root[data-interface=ice-palace] :is(.account-tabs,.admin-tabs,.account-section-tabs) button{border:1px solid transparent;border-radius:3px 10px 3px 10px}
:root[data-interface=ice-palace] :is(.account-tabs,.admin-tabs,.account-section-tabs) button[aria-selected=true]{border-color:var(--ny-ring);background:var(--soft);color:var(--ny-accent2)}
:root[data-interface=ice-palace] .admin-tabs button::after{display:none}
:root[data-interface=ice-palace] :is(.theme-option,.day){border-radius:4px 14px 4px 14px}
:root[data-interface=ice-palace] dialog{border:1px solid var(--ny-ring);border-radius:6px 26px 6px 26px;box-shadow:0 24px 100px #000c}
:root[data-interface=ice-palace] .footer{border-color:var(--ny-ring)}

/* Hardening for both interfaces: text and buttons wrap inside their boxes, and text lying on the scene gets a soft shadow. */
:root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(.button,.filter,.theme-filter,.account-text){max-width:100%;white-space:normal;text-align:center;overflow-wrap:anywhere}
:root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(.hero-actions,.header-actions,.item-actions,.account-actions,.interface-card-actions){flex-wrap:wrap}
:root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(.info-card,.account-card,.editor-panel,.game-card,.news-card,.social-card,.platform,.platform>div,.hero-copy,.section-head){min-width:0;overflow-wrap:anywhere}
:root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(h1,h2,h3,h4){overflow-wrap:anywhere}
:root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(.text-link,.eyebrow,.section-head,.section-head a,.page-intro p,.footer,.footer a,.footer p,.home-links-status,main>p){text-shadow:0 1px 10px #000d}
:root[data-interface=ice-palace] :is(h1,h2,h3){letter-spacing:0}
@media(min-width:801px){:root[data-interface=ice-palace] :is(h1,h2,h3){letter-spacing:.6px}:root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(.account-tabs,.admin-tabs,.account-section-tabs){flex-wrap:wrap}}
/* The default header is one row of fixed width; here it wraps, so a long navigation never pushes the bar off the screen. */
@media(min-width:801px){
 :root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(.header,.legal-header){height:auto;min-height:0;max-width:none;padding:12px 28px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px}
 :root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(.header,.legal-header) .brand{flex:none}
 :root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(.header,.legal-header) nav{display:flex;align-items:center;flex:1 1 auto;justify-content:center;flex-wrap:wrap;gap:2px 14px;height:auto;width:auto;min-width:0;margin:0;padding:0}
 :root:is([data-interface=new-year-night],[data-interface=ice-palace]) :is(.header,.legal-header) nav a{padding:10px 6px;min-height:40px;white-space:nowrap}
 :root:is([data-interface=new-year-night],[data-interface=ice-palace]) .header-actions{flex:none;margin:0 0 0 auto;gap:8px;flex-wrap:wrap}
}

@media(max-width:800px){
 :root[data-interface=new-year-night] :is(.header,.legal-header){background-size:30px 10px,auto}
 :root[data-interface=new-year-night] .hero{border-radius:20px}
 :root[data-interface=ice-palace] .hero{border-radius:6px 30px 6px 30px}
 .ny-night-signature,.ice-palace-signature{display:none!important}
}
