:root {
  --bg-page1: rgba(0,30,0,.95);
  --bg-page1-2: #001000;
  --bg-page3-4: #001000;
  --accent: rgba(0,30,0,.95);
  --text-primary: #f8f8f8;
  --text-secondary: #d0d0d0;
  --scroll-thumb: #004400;
  --scroll-track: rgba(255,255,255,.05);
  --btn-bg: linear-gradient(135deg,rgb(0,50,0,.7),rgb(0,80,0,.9));
  --btn-border: #00ff00;
  --btn-text: #fff;
  --base-font-size: 1rem;
  --heading-scale: 2.5;
  --paragraph-scale: .9375;
  --base-font-size: 1rem;
  --viewport-width: 1200px;
}
@media (max-width: 600px) {
  :root {
    --base-font-size: calc(1rem * clamp(0.8, var(--viewport-width)/1200, 1));
  }
}
*, *::before, *::after {
  box-sizing: border-box;
}
html, body {
  scroll-snap-type: y mandatory;
}
html {
  font-size: var(--base-font-size);
}
body {
  margin: 0;
  padding: 0;
  font-family: 'Arial', sans-serif;
  background: #000;
  color: var(--text-primary);
  scroll-behavior: smooth;
  overflow-x: hidden;
  padding-top: 1px;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 1rem;
  background-color: rgba(0,0,0,.7);
  z-index: 2000;
}
@media (max-width:600px) {
  .header {
    flex-direction: column;
    align-items: center;
    height: auto;
    padding: .5rem 1rem;
  }
  body { padding-top: calc(60px + .5rem); }
  .header nav ul { flex-direction: column; align-items: center; }
}

#loader {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.3); /* прозрачный фон - transparent; */
  backdrop-filter: blur(13px);
  z-index: 9999;
}
#loader.hidden { opacity: 0; display:none }

.spinner {
  width: 60px;
  height: 60px;
  border: 6px solid rgba(0,100,0,.95);
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.header nav ul {
  list-style: none;
  display: flex;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
  min-width: 200px;
}
.header a {
  color: #d0d0d0;
  text-decoration: none;
  font-weight: bold;
  transition: color .3s, transform .15s;
  white-space: nowrap;
}
.header a:hover { color:#00ff00; transform: scale(1.05); }

.lang-switch select {
  position: relative;
  z-index: 2000;
}

#home   { background-color: var(--bg-page1); }
#ny { background-color: var(--bg-page1-2); }
#temporary { background-color: var(--bg-page3-4); }
#menu, #contacts { background-color: var(--bg-page5-6); }

h1,h2 { margin-bottom: 1em; color:#fff; }
h1 { font-size: calc(1.5 * var(--heading-scale) * var(--base-font-size)); }
h2 { font-size: calc(1 * var(--heading-scale) * var(--base-font-size)); }

p {
  max-width: 600px;
  margin-inline:auto;
  line-height:1.6;
  color:var(--text-primary);
  font-size:calc(var(--paragraph-scale)*var(--base-font-size));
}

.btn-group {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:1rem;
  margin-top:1.5rem;
}
.btn {
  padding:.75em 1.25em;
  background: var(--btn-bg);
  border:2px solid var(--btn-border);
  color:var(--btn-text);
  text-decoration:none;
  font-weight:bold;
  transition:
    background-color .3s,
    color .3s,
    transform .2s,
    box-shadow .2s;
}
.btn:hover {
  filter:brightness(1.05);
  transform:scale(.95);
  box-shadow:0 4px 8px rgba(0,30,0,.3);
}

.footer {
  padding: .70rem 0;
  text-align:center;
  border-top:1px solid #004400;
  color:var(--text-secondary);
  scroll-snap-align: start;
  padding-top: .30rem;
  padding-bottom: .30rem;
}
.footer a { margin: 0; color:inherit; text-decoration:none; cursor:pointer; }

::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background: var(--scroll-track); }
::-webkit-scrollbar-thumb {
  background-color: var(--scroll-thumb);
  border-radius:4px;
}
::-webkit-scrollbar-thumb:hover { background:#006600; }

@media (max-width:900px) {
  :root { --base-font-size:.9375rem; }
}

@media (max-width:600px) {
  .header nav ul { flex-direction:column; align-items:center; }
  .btn-group { gap:.75rem; }
}

p,h1,h2,h3,h4,h5,h6,span,label,em,strong,i,b,u,
article,section,div,figure,figcaption,address,pre,code,blockquote {
  cursor:default !important;
}
a,.btn,button,input[type="submit"],input[type="button"],
textarea,select { cursor:pointer !important; }

.cta-arrow {
  margin-top:2rem;
  cursor:pointer;
  animation:bounce 1.5s infinite;
}
@keyframes bounce {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(8px); }
}

.mini-announcement {
  position:fixed;
  top:calc(60px + .4rem);
  right:.4rem;
  z-index:1001;
  opacity:0;
  transition:
    opacity .3s ease-out,
    transform .3s ease-out;
  background:rgba(0,0,0,.7);
  color:#fff;
  padding:.5rem 1rem;
  border-radius:10px;
  font-size:.85rem;
  display:flex;
  align-items:center;
  gap:.3rem;
  backdrop-filter:blur(3px);
}
.mini-announcement.show {
  opacity:1;
  transform:translateY(0);
}

.lang-switch {
  position:absolute;
  top:calc(60px + .4rem);
  right:.4rem;
  z-index:1002;
  display:flex;
}
.lang-switch select { min-width:60px; }

@media (max-width:600px) {
  .mini-announcement {
    top:auto;
    bottom:.4rem;
    left:50%;
    transform:translateX(-50%);
  }
  .lang-switch {
    position:static !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    margin-top:.5rem !important;
    padding:.4rem .8rem !important;
    z-index:auto !important;
    background:rgba(0,0,0,.7);
    color:#fff;
    border-radius:0 0 4px 4px;
    backdrop-filter:blur(3px);
  }
  .lang-switch select { min-width:60px; width:auto; }

  .header {
    flex-direction:column;
    align-items:center;
    height:auto;
    padding:.5rem 1rem;
  }
  .header nav ul { margin-top:.5rem; }
}

#home-announcement {
  margin-top:.75rem;
  background:rgba(0,0,0,.3);
  color:#fff;
  padding:.35rem .8rem;
  border-radius:6px;
  font-size:1.88rem;
  display:inline-block;
  line-height:1.4;
  backdrop-filter:blur(3px);
}
#home-announcement a {
  color:#00ff00;
  text-decoration:none;
}
#home-announcement a:hover { text-decoration:underline; }

.noscriptsd {
  position:fixed;
  inset-inline:0;
  bottom:1rem;
  margin-inline:auto;
  background:rgba(0,0,0,.85);
  color:#f8f8f8;
  padding:.75rem 1.25rem;
  border-radius:.5rem;
  font-family:'Arial',sans-serif;
  text-align:center;
  z-index:9999;
}
.noscriptsd-en {
  display:block;
  font-size:.85rem;
  margin-bottom:.5rem;
  color:#ccc;
}
.noscriptsd-ru { font-size:.95rem; line-height:1.4; }

@media (max-width:480px) {
  .noscriptsd { padding:.5rem .75rem; }
  .noscriptsd-ru { font-size:.85rem; }
}

#temporary,#ny,#home,#menu {
  position:relative;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
#home       { background-image:url('/sd/img/serverdragon-bg-2.jpg'); }
/* #temporary { background-image:url(''); } */
#ny { background-image:url('/sd/img/novyj_god-rozhdestvo-elka-detrojt-rozhdestvenskaya_muzyka-1920x1080-2.jpg'); }
#menu       { background-image:url('/sd/img/menu-bg-2.jpg'); }
@media (max-width:1900px) {
#home       { background-image:url('/sd/img/serverdragon-bg-2.gif'); }
/* #home       { background-image:url('/sd/img/serverdragon-bg.png'); } */
}

.section {
  scroll-snap-align: start;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:2rem 0;
  text-align:center;
  opacity:0;
  transition:.6s ease-out;
  position:relative;
}
.section::after {
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.3);
  z-index:0;
  pointer-events:none;
}
.section.in-view { opacity:1; transform:translateY(0px); }

.logo {
  font-size:calc(.4*var(--heading-scale)*var(--base-font-size));
  color:#fff;
  margin-right:0rem;
  font-weight:bold;
  cursor:default;
}
@media (max-width:480px) { .logo { margin-bottom:.2rem; } }

.header nav {
  display:flex;
  align-items:center;
  gap:1.5rem;
}

.footer a { color:inherit; text-decoration:none; cursor:pointer; }

@media (max-width:600px) {
  #mini-announcement { inset-inline-end:auto; inset-inline-start:50%; transform:translateX(-50%); }
}

@media (max-width:600px) {
  .header { flex-direction:column; align-items:center; height:auto; padding:.5rem 1rem; }
  .header nav ul { flex-direction:column; gap:.8rem; width:100%; text-align:center; }
  .logo { margin-bottom:.5rem; }
}

@media (max-width:600px) {
  .lang-switch { top:calc(60px + .4rem); right:auto; left:.4rem; }
}

body.loading { overflow:hidden; }
body.loading .header { display:none; }

#loader {
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.3);
  z-index:9999;
}

.lang-switch {
    position: absolute;
    top: .35rem;
    right: .35rem;
    z-index: 10;
    font-size:.75rem;
}
.lang-switch select {
    appearance:none;
    -webkit-appearance:none;
    background:rgba(0,0,0,.6);
    color:#fff;
    border:1px solid #00ff00;
    padding:1.1rem 1.7rem;
   /* padding:.25rem .5rem; */
    font-size:inherit;
    cursor:pointer;
    border-radius:3px;
    transition:all .2s ease;
    min-width:5rem;
    position:relative;
}
.lang-switch::before {
    content:"";
    position:absolute;
    right:.35rem;
    top:50%;
    transform:translateY(-50%);
    width:0;height:0;
    border-left:4px solid transparent;
    border-right:4px solid transparent;
    border-top:5px solid #fff;
}
.lang-switch:hover::before,
.lang-switch:focus-within::before {
    border-top-color:#00ff00;
}
