@font-face {
  font-family: 'TildaSans';
  src: url('/assets/fonts/TildaSans-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'TildaSans';
  src: url('/assets/fonts/TildaSans-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'TildaSans';
  src: url('/assets/fonts/TildaSans-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

:root {
  --brand:#8a758a;
  --bg:#f7f5f7;
  --text:#2b2b2b;
  --wall-height: 850px;
  --baseboard-height: 105px;
  --loading-width: 109px;
  --loading-height: 114px;
  --uv-footer-height: 150px;
  --uv-accent: #815583;
  --uv-text:   #815583;
}

* { box-sizing: border-box; }

html { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; height: 100%; }
body {
  margin:0;
  background:#ffffff;
  color:var(--text);
  font-family: 'TildaSans', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

html, body { overflow-y: auto; -webkit-overflow-scrolling: touch; }

.wrap { max-width: 960px; margin: 0 auto; padding: 32px 16px 24px; }
.error { color:#a33; background:#fff3f3; border:1px solid #f1c6c6; padding:12px 14px; border-radius:10px; }
.muted { color:#777; }

/* === ЕДИНАЯ ШАПКА === */
.uv-header {
  height:45px; background:#f4eee9; width:100%; box-sizing:border-box;
  font:20px/45px "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  color:var(--uv-text);
  flex: 0 0 auto;
}
.uv-header__inner {
  height:45px; max-width:1400px; margin:0 auto; padding:0 14px;
  display:flex; align-items:center; gap:14px;
}
.uv-header__spacer { flex:1 1 auto; }
.uv-header__leftlink {
  font-family:'TildaSans', sans-serif; font-weight:300;
  color:var(--uv-accent); text-decoration:none; white-space:nowrap; letter-spacing:0.2px;
}
.uv-header__leftlink:hover { text-decoration:underline; }
.uv-header__links { display:flex; align-items:center; gap:14px; margin-right:24px; }
.uv-header__links .uv-link {
  font-family:'TildaSans', sans-serif; font-weight:300;
  color:var(--uv-accent); text-decoration:none; white-space:nowrap; letter-spacing:0.2px;
}
.uv-header__links .uv-link:hover { text-decoration:underline; }
.uv-header__auth-btn {
  all:unset; font-family:'TildaSans', sans-serif !important; font-weight:500 !important;
  color:var(--uv-accent); cursor:pointer; letter-spacing:0.2px;
}
.uv-header__auth-btn:hover { text-decoration:underline; }

@media (max-width: 750px){
  .uv-header__links { display:none; }
  .uv-header__leftlink { font-size:20px; }
}

/* === ПРИВЕТСТВИЕ === */
.public-greeting { flex: 0 0 auto; background: #fff; }
.dashboard-container {
  max-width: 1200px; margin: 20px auto; padding: 10px;
  display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center;
}
.logo-container { flex: 0 0 auto; width: 256px; padding: 0 20px; text-align: center; }
.logo-image { width: 256px; height: 167px; object-fit: contain; }
.greeting-container { flex: 1; margin: 16px 20px; min-width: 300px; text-align: center; }
.greeting-title { color: #A06495; font-weight: 400; font-size: 30px; margin: 0; line-height: 1.25; }
.greeting-title .greeting-name { font-weight: 700; }
.greeting-wish { color: #815583; font-weight: 300; font-size: 22px; margin: 10px 0 0 0; line-height: 1.45; opacity: 0.9; }
.quick-links-container { flex: 0 0 auto; width: 300px; text-align: center; }
.quick-links-title { color: #815583; font-weight: 300; font-size: 18px; margin: 0 0 14px 0; }
.quick-links-buttons { display: flex; flex-direction: column; gap: 8px; }
.quick-link {
  padding: 10px 14px; background-color: #815583; color: #ffffff; border: none; border-radius: 16px;
  cursor: pointer; font-size: 14px; text-transform: uppercase; font-weight: 500;
  font-family: 'TildaSans', sans-serif;
  transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
  width: 100%; max-width: 300px; box-sizing: border-box;
  display: flex; align-items: center; justify-content: center; gap: 8px;
}
.quick-link:hover { background-color: #7a527b; }
.forum-button {
  background-image: url('/assets/images/ui/Buttons_Forum.png');
  background-size: 30px 30px; background-repeat: no-repeat; background-position: 20px center; padding-left: 60px;
}
.forum-button:hover { background-image: url('/assets/images/ui/Buttons_Forum_Hover.png'); }
.dm-button {
  background-image: url('/assets/images/ui/Buttons_Forum_DM.png');
  background-size: 30px 30px; background-repeat: no-repeat; background-position: 20px center; padding-left: 60px;
}
.dm-button:hover { background-image: url('/assets/images/ui/Buttons_Forum_DM_Hover.png'); }

@media (max-width: 1000px) {
  .dashboard-container { flex-direction: column; align-items: center; }
  .greeting-container { margin: 16px auto; max-width: 600px; }
}

/* === СТЕНА === */
.wall-section {
  position: relative;
  flex: 1 0 auto;
  min-height: var(--wall-height);
}

#wall-loading-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  transition: opacity 0.4s ease-out;
}
#wall-loading-overlay.is-hidden {
  opacity: 0;
  pointer-events: none;
}
#wall-loading-overlay .loading {
  width: var(--loading-width); height: var(--loading-height);
  background: url('/assets/images/Loading_Animation_02.gif') center/contain no-repeat;
}

.wall-wrap {
  width:100%; overflow-x:auto; overflow-y:hidden;
  position: relative;
  transform: scaleY(-1) translateZ(0); display:flex; flex-direction: column-reverse; background:#fff;
  min-height: var(--wall-height);
  -webkit-overflow-scrolling: touch;
  scroll-behavior: auto !important;
}
.wall-inner { transform: scaleY(-1) translateZ(0); }
.wall-wrap::-webkit-scrollbar { height: 22px; background:white; }
.wall-wrap::-webkit-scrollbar-thumb {
  background: url('/assets/images/wall_ui/Scroll.png') center/150px 22px no-repeat;
  height:22px; border:none;
}

#wall-bg {
  background:#fff; height: var(--wall-height); width: 3200px;
  position: relative; overflow: hidden; margin: 0 auto;
  will-change: scroll-position;
}
#wall-container {
  position: relative; width:100%; height: var(--wall-height);
  background-repeat: repeat-x; background-position: top left;
  overflow: hidden;
  contain: size layout paint;
}
/* Скрываем все окна пока outdoors не загружен */
#wall-container.ww-outdoors-loading .ww-window-container {
  opacity: 0 !important;
  visibility: hidden !important;
}

#baseboard-top, #baseboard-bottom {
  position: absolute; left:0; width:100%; height: var(--baseboard-height);
  background-repeat: repeat-x; background-position: left top;
  z-index:5; pointer-events:none;
  transform: translateZ(0);
}
#baseboard-top { top:0; }
#baseboard-bottom { bottom:105px; background-position: left bottom; }

#gradient-left, #gradient-right {
  position:absolute; top:0; width:323px; height: var(--wall-height); z-index:50; pointer-events:none;
  background-size: contain; background-repeat:no-repeat;
  transform: translateZ(0);
}
#gradient-left  { left:0;  background-image:url('/assets/images/wall_ui/TransitionToWhite_Left.png'); }
#gradient-right { right:0; background-image:url('/assets/images/wall_ui/TransitionToWhite_Right.png'); }

.wall-item {
  position:absolute; z-index:10; user-select:none; pointer-events:none;
  transform: translate3d(0,0,0);
  contain: layout paint;
}

.ww-window-container {
  position: absolute; overflow: hidden;
  transform: translate3d(0,0,0);
  contain: layout paint;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease-in-out;
}
.ww-window-container.is-ready {
  opacity: 1;
  visibility: visible;
}
.ww-window-view {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1;
  background-image: var(--ww-outdoors-url); background-size: var(--ww-outdoors-size);
  background-repeat: repeat; background-color: var(--ww-outdoors-tint, transparent);
  background-blend-mode: var(--ww-outdoors-blend, normal); filter: var(--ww-outdoors-filter, none);
  transform: translateZ(0);
}
.ww-window-texture { position: relative; z-index: 2; display: block; width: 100%; height: 100%; }

.scheme-group {
  position:absolute; z-index:200; user-select:none; pointer-events:none;
  transform: translate3d(0,0,0);
  contain: layout paint;
  content-visibility: auto;
  contain-intrinsic-size: 200px 300px;
}
.scheme-image { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:1; }
.frame-image  { position:absolute; left:0; top:0; z-index:2; }

.page-stretcher { width:100%; height:0; }

/* === ПОДВАЛ === */
#uv-forum-footer {
  margin-top: 40px; position: relative; width: 100%; min-height: var(--uv-footer-height); height: auto;
  background-color: #8a758a;
  background-image: url("/assets/images/Footer_BG.png");
  background-repeat: no-repeat; background-position: center bottom; background-size: auto 115px;
  display: block; box-sizing: border-box; padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px));
  z-index: 10;
}
.uv-footer-inner { width: 100%; max-width: 1000px; margin: 0 auto; padding: 0 12px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.uv-footer-note { font-weight: 300; font-size: 14px; line-height: 1.25; color: #fff; text-align: center; opacity: 0.95; }
.uv-footer-grid { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.uv-footer-col { font-weight: 300; font-size: 16px; line-height: 1.25; color: #fff; }
.uv-footer-links { list-style: none; padding: 0; margin: 0; }
.uv-footer-links li { margin: 2px 0; }
#uv-forum-footer a { color: #fff !important; text-decoration: none; }
#uv-forum-footer a:hover { text-decoration: underline; }
.uv-sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (max-width: 560px){
  .uv-footer-grid { grid-template-columns: 1fr; text-align: center; justify-items: center; }
}

/* === СНЕГ === */
@keyframes ww-snow-fall-y {
  0% { transform: translateY(-380px); }
  100% { transform: translateY(0px); }
}
@keyframes ww-snow-drift-x-custom {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(var(--snow-drift-amount, 0px)); }
}

@media (prefers-reduced-motion: reduce) {
  .wall-wrap { transition: none; }
  .ww-window-view { transition: none !important; }
  .quick-link { transition: none; }
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  .ww-snow-layer { display: none !important; }
}

@media (prefers-reduced-motion: reduce), (update: slow) {
  .ww-window-view { filter: none !important; background-blend-mode: normal !important; }
}
