
@font-face { font-family: "Manrope"; src: url("/fonts/manrope.01531c8962.woff2") format("woff2"); font-weight: 400 800; font-display: swap; }
@font-face { font-family: "DFL Serif"; src: url("/fonts/serif-latin.90c33d2951.woff2") format("woff2"); font-weight: 400 600; font-display: swap; unicode-range: U+0000-03FF, U+2000-206F, U+20A0-20C0, U+2100-2199; }
@font-face { font-family: "DFL Serif"; src: url("/fonts/serif-cyrillic.c06e59fe05.woff2") format("woff2"); font-weight: 400 600; font-display: swap; unicode-range: U+0400-04FF, U+2116; }

:root {
  color-scheme: light;
  --font-ui: "Manrope", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --font-letter: "DFL Serif", Georgia, "Times New Roman", serif;
  --night: #1d1115;
  --night-2: #120a0d;
  --paper: #fffdfa;
  --line: #e8e2dc;
  --line-strong: #d6ccc5;
  --ink: #1c1416;
  --ink-2: #4b3f42;
  --muted: #7d6e72;
  --accent: #7a1e36;
  --accent-hover: #651829;
  --accent-ink: #7a1e36;
  --accent-soft: #f6e9ec;
  --red: #b0312a;
  --ring: 0 0 0 3px rgba(122, 30, 54, .18);
}
[data-theme="dark"] {
  color-scheme: dark;
  --night: #140c0f;
  --night-2: #0b0607;
  --paper: #1d191b;
  --line: #2d2729;
  --line-strong: #3d3538;
  --ink: #f3eded;
  --ink-2: #d4c9cb;
  --muted: #a3969a;
  --accent: #a93453;
  --accent-hover: #bb3f60;
  --accent-ink: #ef8ea7;
  --accent-soft: #33191f;
  --red: #f2897d;
  --ring: 0 0 0 3px rgba(239, 142, 167, .28);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
html, body { margin: 0; min-height: 100%; }
body {
  min-height: 100vh;
  overflow: auto;
  background:
    radial-gradient(900px 620px at 18% -8%, rgba(176, 52, 86, .38), transparent 62%),
    radial-gradient(700px 520px at 100% 110%, rgba(201, 154, 69, .14), transparent 60%),
    linear-gradient(170deg, var(--night) 0%, var(--night-2) 100%);
  background-attachment: fixed;
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 1.5;
}
button, input { font: inherit; color: inherit; }
button { border: 0; background: none; cursor: pointer; }
.hidden { display: none !important; }
.muted { color: var(--muted); }

.closed-gate, .login-view {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 24px 16px;
  overflow-y: auto;
}
.closed-gate::before, .login-view::before {
  content: "d";
  position: fixed;
  right: -4vw;
  bottom: -26vh;
  color: rgba(255, 240, 230, .045);
  font-family: var(--font-letter);
  font-size: min(78vw, 980px);
  font-style: italic;
  font-weight: 600;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}
.closed-card, .login-form {
  position: relative;
  width: min(100%, 420px);
  padding: 40px 36px 34px;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 24px;
  background: var(--paper);
  text-align: center;
  box-shadow: 0 40px 100px rgba(8, 2, 4, .55), 0 10px 26px rgba(8, 2, 4, .3);
  animation: entry-in .32s cubic-bezier(.2, .7, .3, 1);
}
@keyframes entry-in { from { opacity: 0; transform: translateY(12px) scale(.99); } }

.brand { display: inline-flex; align-items: center; justify-content: center; gap: 12px; color: var(--ink); font-size: 21px; font-weight: 800; letter-spacing: -.035em; line-height: 1; }
.brand-mark {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: linear-gradient(150deg, #93294a 0%, #5f1428 100%);
  color: #fbeee2;
  font-family: var(--font-letter);
  font-size: 28px;
  font-style: italic;
  font-weight: 600;
  letter-spacing: 0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 8px 20px rgba(94, 20, 40, .3);
}
.closed-card .brand, .login-brand { display: flex; margin-bottom: 26px; }

h2 { margin: 0 0 28px; color: var(--ink); font-family: var(--font-letter); font-size: 28px; font-weight: 600; letter-spacing: -.01em; line-height: 1.22; }
.closed-contact h2 { margin-bottom: 10px; }

.primary, .secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: 14px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.primary { background: var(--accent); color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 6px 16px rgba(94, 20, 40, .28); }
.primary:hover { background: var(--accent-hover); }
.primary:focus-visible, .secondary:focus-visible, .ghost-link:focus-visible { outline: none; box-shadow: var(--ring); }
.secondary { border-color: var(--line-strong); background: transparent; color: var(--ink); }
.secondary:hover { border-color: var(--accent-ink); color: var(--accent-ink); }
.wide { width: 100%; }
button:disabled { opacity: .5; cursor: not-allowed; }
.closed-actions { display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
.closed-actions .secondary { height: auto; padding: 12px 18px; }
.closed-or { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 13px; font-weight: 600; }
.closed-or::before, .closed-or::after { content: ""; flex: 1; height: 1px; background: var(--line); }

.closed-contact { padding-top: 14px; }
.closed-contact > p.muted { margin: 0 0 8px; font-size: 15px; }
.closed-telegram { margin: 0 0 26px; padding: 14px 16px; border-radius: 14px; background: var(--accent-soft); font-size: 22px; }
.closed-telegram b { color: var(--accent-ink); font-weight: 800; letter-spacing: -.01em; user-select: all; }

.login-form { text-align: left; }
.login-form h2 { text-align: center; }
label { display: grid; gap: 7px; margin: 0 0 16px; color: var(--ink-2); font-size: 13px; font-weight: 650; }
input {
  width: 100%;
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: var(--paper);
  color: var(--ink);
  font-size: 15px;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
input:hover { border-color: color-mix(in srgb, var(--ink) 30%, var(--line-strong)); }
input:focus { border-color: var(--accent-ink); box-shadow: var(--ring); }
.login-form .primary.wide { margin-top: 6px; }
.form-error { min-height: 22px; padding-top: 10px; color: var(--red); font-size: 13px; font-weight: 600; text-align: center; }

.ghost-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 9px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}
.ghost-link:hover { background: color-mix(in srgb, var(--ink) 6%, transparent); color: var(--ink); }
.login-back { position: absolute; top: 14px; left: 14px; }
.login-back::before { content: "←"; font-size: 15px; line-height: 1; }
.login-form { padding-top: 54px; }
.closed-contact { position: static; }
.closed-contact .login-back { top: 14px; left: 14px; }

@media (max-width: 480px) {
  .closed-card, .login-form { padding: 30px 22px 24px; border-radius: 20px; }
  .login-form { padding-top: 50px; }
  h2 { font-size: 24px; }
  .brand { font-size: 19px; }
  .brand-mark { width: 38px; height: 38px; font-size: 25px; }
}
@media (prefers-reduced-motion: reduce) {
  .closed-card, .login-form { animation: none; }
}
