:root {
  --bg: #070b14;
  --txt: #e8eefc;
  --muted: #b9c4de;
  --line: rgba(255,255,255,.14);
  --card: rgba(12, 18, 30, .9);
  --card-line: rgba(175, 204, 255, .2);
  --accent: #7ea7ff;
  --accent2: #a58bff;
  --ok: #7ef3c5;
  --page-max: 1140px;
  --safe-top: env(safe-area-inset-top, 0px);
}

body.page,
body.subpage {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color: var(--txt);
  min-height: 100vh;
  background:
    linear-gradient(164deg, rgba(8,12,24,0.97) 0%, rgba(4,7,16,0.99) 34%, rgba(14,18,38,0.97) 56%, rgba(8,14,30,0.97) 82%, rgba(6,10,22,0.98) 100%),
    radial-gradient(1450px 760px at 8% -12%, rgba(96,156,255,0.22), transparent 62%),
    radial-gradient(1200px 700px at 94% 8%, rgba(142,108,255,0.18), transparent 66%),
    radial-gradient(1020px 640px at 50% 58%, rgba(118,168,255,0.14), transparent 72%),
    radial-gradient(1020px 660px at 50% 118%, rgba(168,118,255,0.16), transparent 70%);
  background-attachment: fixed, fixed, fixed, fixed, fixed;
  background-repeat: no-repeat;
  background-size: auto, 150% 92%, 145% 90%, 135% 88%, 140% 92%;
  line-height: 1.55;
}

body.page .wrap,
body.subpage .wrap { width: min(var(--page-max), 92vw); margin: 0 auto; }
body.page main,
body.subpage main { padding: 54px 0 68px; }
body.page .hero,
body.subpage .hero { padding: clamp(6px, 1.2vw, 12px) 0 clamp(18px, 2.2vw, 24px); margin-bottom: 8px; }
body.page .kicker,
body.subpage .kicker { color: var(--ok); font-weight: 700; font-size: .9rem; display: inline-block; margin-bottom: 8px; }
body.page h1,
body.subpage h1 { margin: 0; font-size: clamp(2rem, 4.1vw, 3.1rem); line-height: 1.06; letter-spacing: -.02em; max-width: 900px; }
body.page .lead,
body.subpage .lead { margin: 12px 0 0; color: var(--muted); max-width: 800px; font-size: 1.03rem; }
body.page .section-title,
body.subpage .section-title { margin: 0 0 10px; font-size: 1.08rem; color: #dbe7ff; font-weight: 700; }

.gallery { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tile {
  border: 1px solid var(--card-line);
  background: var(--card);
  border-radius: 16px;
  padding: 16px;
  min-height: 132px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(126,167,255,.22), rgba(165,139,255,.24));
  border: 1px solid rgba(172,197,255,.35);
  color: #fff;
}
.icon svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.9; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.tile h2 { margin: 0; font-size: 1rem; letter-spacing: .01em; }
.tile p { margin: 0; color: #cfdbf8; font-size: .95rem; }

body.page .cta,
body.subpage .cta {
  margin-top: 18px;
  border: 1px solid rgba(171,156,255,.45);
  border-radius: 16px;
  padding: 16px;
  background: linear-gradient(138deg, rgba(16,24,52,.9), rgba(40,30,84,.88));
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.cta-note { color: #d1dcff; }
body.page .btn,
body.subpage .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 15px;
  border-radius: 11px;
  text-decoration: none;
  color: #f2f7ff;
  font-weight: 700;
  border: 1px solid rgba(158,198,246,.54);
  background: linear-gradient(135deg, #234486, #2f5bb3);
}
body.page .btn.alt,
body.subpage .btn.alt { color: #e8eefc; border-color: rgba(255,255,255,0.14); background: rgba(18, 27, 44, 0.62); box-shadow: inset 0 1px 0 rgba(255,255,255,0.08); }
body.page footer,
body.subpage footer { border-top: 1px solid rgba(255,255,255,0.1); color: #9ba8c7; padding: 24px 0 36px; font-size: 0.9rem; }
body.page .footer-inner,
body.subpage .footer-inner { display: flex; align-items: center; gap: 12px; }
body.page .legal-links,
body.subpage .legal-links { margin-left: auto; display: inline-flex; gap: 14px; }
body.page .legal-links a,
body.page .legal-links button,
body.subpage .legal-links a,
body.subpage .legal-links button { color: #c7d3f3; text-decoration: none; border: 0; background: none; font: inherit; padding: 0; cursor: pointer; }
body.page .legal-links a:hover,
body.page .legal-links button:hover,
body.subpage .legal-links a:hover,
body.subpage .legal-links button:hover { text-decoration: underline; }

.reveal-box { opacity: 0; transform: translateY(28px) scale(0.985); transition: opacity 620ms ease, transform 620ms cubic-bezier(.2,.75,.2,1); transition-delay: var(--reveal-delay, 0ms); will-change: opacity, transform; }
.reveal-box.is-visible { opacity: 1; transform: translateY(0) scale(1); }

body.contact-page { --page-max: 860px; }
body.contact-page main { padding: 40px 0 56px; }
body.contact-page .card { border: none; border-radius: 20px; padding: 24px; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; }
body.contact-page h1 { margin: 0 0 10px; font-size: clamp(1.8rem, 4vw, 2.5rem); letter-spacing: -0.02em; }
body.contact-page .lead { margin: 0 0 24px; color: var(--muted); }
body.contact-page form { display: grid; gap: 16px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
label { display: block; margin-bottom: 6px; font-size: 0.92rem; color: #dce7ff; font-weight: 600; }
input, textarea, select { width: 100%; border: none; border-radius: 12px; background: rgba(122, 151, 220, 0.24); color: #f1f5ff; padding: 11px 12px; font-size: 1.05rem; line-height: 1.4; outline: none; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: inset 0 1px 0 rgba(227, 215, 255, 0.24); }
input::placeholder, textarea::placeholder { color: rgba(225, 236, 255, 0.88); }
select option { color: #0b1323; }
input:focus, textarea:focus, select:focus { box-shadow: 0 0 0 2px rgba(165, 139, 255, 0.58), inset 0 1px 0 rgba(237, 230, 255, 0.34); background: rgba(150, 164, 235, 0.28); }
textarea { min-height: 130px; resize: vertical; }
.check { display: flex; gap: 10px; align-items: flex-start; color: #d8e3ff; font-size: 0.92rem; }
.check input { width: 18px; height: 18px; margin-top: 2px; padding: 0; flex-shrink: 0; appearance: auto; background: transparent; border: none; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; accent-color: #6ea8ff; }
.check a { color: #8fd6ff; text-decoration: none; border-bottom: 1px dotted rgba(143, 214, 255, 0.5); }
.check a:hover { color: #d7f0ff; border-bottom-color: rgba(215, 240, 255, 0.85); }
.actions { display: flex; gap: 12px; flex-wrap: wrap; }
.emergency-box { display: none; margin-top: 6px; padding: 16px; border-radius: 14px; border: 1px solid rgba(255, 120, 120, 0.45); background: rgba(80, 15, 20, 0.28); }
.emergency-box.is-visible { display: block; }
.emergency-box p { margin: 0; color: #ffe3e3; }
.emergency-primary { border-radius: 12px; border: 1px solid rgba(255, 140, 140, 0.44); background: rgba(120, 24, 30, 0.26); padding: 12px 14px; display: grid; gap: 10px; }
.emergency-tips { display: none; margin-top: 14px; border-radius: 12px; border: 1px solid rgba(255, 180, 180, 0.42); background: rgba(255, 255, 255, 0.08); padding: 12px 14px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.12); }
.emergency-tips.is-visible { display: block; }
.emergency-tips h3 { margin: 0 0 8px; font-size: 0.98rem; color: #ffe8e8; }
.emergency-tips ul { margin: 0; padding-left: 18px; color: #ffdede; display: grid; gap: 6px; font-size: 0.94rem; }
.fly-in { opacity: 0; transform: translateY(18px) scale(0.985); filter: blur(4px); transition: opacity 520ms ease, transform 520ms cubic-bezier(.2,.8,.2,1), filter 520ms ease; will-change: opacity, transform, filter; }
.fly-in.is-in { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
.thankyou-overlay { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; text-align: center; padding: 24px; background: radial-gradient(1000px 600px at 50% -10%, rgba(110,168,255,0.24), transparent 60%), linear-gradient(160deg, rgba(6,10,20,0.96), rgba(7,11,20,0.98)); opacity: 0; pointer-events: none; transition: opacity 320ms ease; }
.thankyou-overlay.is-open { opacity: 1; pointer-events: auto; }
.thankyou-box { max-width: 700px; width: min(92vw, 700px); border-radius: 22px; padding: 36px 26px; background: rgba(10, 16, 28, 0.58); border: 1px solid rgba(187, 214, 255, 0.24); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45); transform: translateY(14px) scale(0.985); transition: transform 420ms cubic-bezier(.2,.8,.2,1); }
.thankyou-overlay.is-open .thankyou-box { transform: translateY(0) scale(1); }
.thankyou-title { margin: 0; font-size: clamp(2.2rem, 8vw, 4.5rem); line-height: 1; letter-spacing: -0.02em; }
.thankyou-text { margin: 14px 0 28px; font-size: clamp(1rem, 2.6vw, 1.35rem); color: #c9d7f8; }

@media (min-width: 901px) {
  input:not([type="checkbox"]), select { box-sizing: border-box; height: 48px; min-height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .reveal-box, .reveal-box.is-visible, .fly-in, .fly-in.is-in { opacity: 1; transform: none; filter: none; transition: none; }
}
@media (max-width: 980px) {
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  body.page, body.subpage {
    background:
      linear-gradient(164deg, rgba(8,12,24,0.98) 0%, rgba(4,7,16,0.99) 34%, rgba(12,16,34,0.98) 56%, rgba(8,14,30,0.98) 82%, rgba(6,10,22,0.99) 100%),
      radial-gradient(1450px 760px at 8% -12%, rgba(96,156,255,0.18), transparent 62%),
      radial-gradient(1200px 700px at 94% 8%, rgba(142,108,255,0.14), transparent 66%),
      radial-gradient(1020px 640px at 50% 58%, rgba(118,168,255,0.11), transparent 72%),
      radial-gradient(1020px 660px at 50% 118%, rgba(168,118,255,0.12), transparent 70%);
    background-attachment: scroll, scroll, scroll, scroll, scroll;
    background-repeat: no-repeat;
    background-size: auto, 150% 92%, 145% 90%, 135% 88%, 140% 92%;
  }
}
@media (max-width: 700px) {
  .menu a.mobile-hide { display: none; }
  .gallery, .grid-2 { grid-template-columns: 1fr; }
  .legal-links a.mobile-hide { display: none; }
}
