:root {
    --bg: #0a0c0d;
    --surface: rgba(20, 23, 23, .91);
    --surface-2: #171a1a;
    --line: rgba(198, 153, 77, .25);
    --gold: #d6a354;
    --gold-light: #f0cf83;
    --text: #f3eee4;
    --muted: #999a96;
    --danger: #ed8b78;
    --success: #8bd3a9;
}

* {
    box-sizing: border-box;
    font-variant-numeric: lining-nums tabular-nums !important;
    font-feature-settings: "lnum" 1, "tnum" 1 !important;
}

html { color-scheme: dark; }

body {
    margin: 0;
    min-width: 320px;
    color: var(--text);
    background:
        radial-gradient(circle at 20% 48%, rgba(142, 87, 29, .15), transparent 32%),
        radial-gradient(circle at 83% 15%, rgba(96, 122, 100, .12), transparent 28%),
        linear-gradient(135deg, #080a0a 0%, #111413 45%, #080a0a 100%);
    font-family: Montserrat, "Segoe UI", Arial, sans-serif;
    font-variant-numeric: lining-nums tabular-nums;
    font-feature-settings: "lnum" 1, "tnum" 1;
    min-height: 100vh;
}

body::before,
body::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

body::before {
    opacity: .16;
    background-image: repeating-linear-gradient(115deg, transparent 0 7px, rgba(255,255,255,.035) 8px, transparent 9px 16px);
    mask-image: linear-gradient(to right, #000, transparent 55%);
}

body::after {
    box-shadow: inset 0 0 180px 45px #050606;
}

.ambient { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.ambient::before, .ambient::after { content: ''; position: absolute; width: 44vw; height: 44vw; min-width: 420px; min-height: 420px; border-radius: 50%; filter: blur(75px); opacity: .17; }
.ambient::before { top: -22%; left: -12%; background: radial-gradient(circle, rgba(197,129,41,.85), rgba(112,69,23,.18) 48%, transparent 70%); animation: mist-left 18s ease-in-out infinite alternate; }
.ambient::after { right: -14%; bottom: -28%; background: radial-gradient(circle, rgba(91,128,104,.7), rgba(44,76,60,.15) 50%, transparent 72%); animation: mist-right 22s ease-in-out infinite alternate; }
.ambient span { position: absolute; bottom: -12px; width: 3px; height: 3px; border-radius: 50%; background: var(--gold-light); box-shadow: 0 0 8px 2px rgba(224,168,76,.42); opacity: 0; animation: ember-rise 13s linear infinite; }
.ambient span:nth-child(1) { left: 7%; animation-delay: -2s; animation-duration: 15s; }
.ambient span:nth-child(2) { left: 16%; animation-delay: -9s; animation-duration: 12s; }
.ambient span:nth-child(3) { left: 27%; animation-delay: -5s; animation-duration: 17s; }
.ambient span:nth-child(4) { left: 38%; animation-delay: -12s; animation-duration: 14s; }
.ambient span:nth-child(5) { left: 47%; animation-delay: -7s; animation-duration: 18s; }
.ambient span:nth-child(6) { left: 56%; animation-delay: -1s; animation-duration: 13s; }
.ambient span:nth-child(7) { left: 64%; animation-delay: -10s; animation-duration: 16s; }
.ambient span:nth-child(8) { left: 72%; animation-delay: -4s; animation-duration: 12s; }
.ambient span:nth-child(9) { left: 81%; animation-delay: -13s; animation-duration: 18s; }
.ambient span:nth-child(10) { left: 89%; animation-delay: -6s; animation-duration: 14s; }
.ambient span:nth-child(11) { left: 33%; animation-delay: -15s; animation-duration: 20s; }
.ambient span:nth-child(12) { left: 76%; animation-delay: -11s; animation-duration: 19s; }

@keyframes mist-left {
    from { transform: translate3d(-3%, -2%, 0) scale(.92); }
    to { transform: translate3d(18%, 12%, 0) scale(1.12); }
}

@keyframes mist-right {
    from { transform: translate3d(4%, 5%, 0) scale(1.08); }
    to { transform: translate3d(-18%, -14%, 0) scale(.9); }
}

@keyframes ember-rise {
    0% { transform: translate3d(0, 0, 0) scale(.55); opacity: 0; }
    12% { opacity: .75; }
    55% { transform: translate3d(22px, -52vh, 0) scale(1); opacity: .48; }
    100% { transform: translate3d(-16px, -105vh, 0) scale(.35); opacity: 0; }
}

.page-shell { position: relative; z-index: 1; max-width: 1440px; margin: 0 auto; padding: 0 6vw; }

.topbar { height: 104px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.06); }
.brand { display: flex; align-items: center; gap: 13px; color: var(--text); text-decoration: none; font-family: Cinzel, Georgia, serif; letter-spacing: .12em; }
.brand > span:last-child { display: flex; align-items: center; gap: 11px; }
.brand strong { font-size: 23px; line-height: 1; text-shadow: 0 2px 18px rgba(0,0,0,.8); }
.brand small { display: inline-flex; align-items: center; margin: 0; padding: 4px 7px 3px 9px; color: var(--gold-light); background: rgba(214,163,84,.09); border: 1px solid rgba(214,163,84,.42); font-size: 10px; font-weight: 700; line-height: 1; letter-spacing: .2em; box-shadow: 0 0 18px rgba(214,163,84,.08), inset 0 0 12px rgba(214,163,84,.04); }

.hero { min-height: calc(100vh - 170px); display: flex; justify-content: center; align-items: center; padding: 64px 0 54px; }
.registration-column { width: min(100%, 540px); display: flex; flex-direction: column; align-items: center; }

.download-button { position: relative; isolation: isolate; display: inline-flex; align-items: center; min-width: 320px; margin-top: 28px; padding: 13px 26px 13px 14px; overflow: hidden; color: #19130a; background: linear-gradient(105deg, #a87431, #e8c576 48%, #b47a31); background-size: 180% 100%; border: 1px solid #f3d590; box-shadow: 0 12px 40px rgba(185,125,43,.2), inset 0 0 0 1px rgba(0,0,0,.24); text-decoration: none; transition: transform .28s cubic-bezier(.2,.8,.2,1), filter .28s, box-shadow .28s, background-position .5s; }
.download-button:hover { transform: translateY(-4px) scale(1.015); filter: brightness(1.08); background-position: 100% 0; box-shadow: 0 19px 48px rgba(185,125,43,.36), 0 0 24px rgba(224,184,104,.14), inset 0 0 0 1px rgba(255,255,255,.18); }
.download-button:active { transform: translateY(-1px) scale(.99); transition-duration: .08s; }
.download-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-right: 17px; border: 1px solid rgba(50,33,11,.35); font-size: 25px; }
.download-button > span:last-child { font: 700 14px Cinzel, Georgia, serif; letter-spacing: .05em; }
.download-button small { display: block; margin-bottom: 3px; font: 600 8px Montserrat, "Segoe UI", sans-serif; letter-spacing: .17em; text-transform: uppercase; opacity: .68; }
.download-button::before, .submit-button::before { content: ''; position: absolute; z-index: 0; top: -55%; left: -85%; width: 42%; height: 210%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.52), transparent); transform: skewX(-24deg); transition: left .72s cubic-bezier(.2,.7,.2,1); }
.download-button:hover::before, .submit-button:hover::before { left: 145%; }
.download-button:focus-visible, .submit-button:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 4px; }

.registration-card { position: relative; width: 100%; padding: 38px 40px 34px; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 30px 90px rgba(0,0,0,.5), inset 0 0 70px rgba(214,163,84,.018); backdrop-filter: blur(14px); }
.registration-card::before, .registration-card::after { content: ''; position: absolute; width: 42px; height: 42px; border-color: var(--gold); opacity: .65; }
.registration-card::before { top: -1px; left: -1px; border-top: 2px solid; border-left: 2px solid; }
.registration-card::after { right: -1px; bottom: -1px; border-right: 2px solid; border-bottom: 2px solid; }
.card-heading { display: flex; align-items: center; justify-content: center; margin-bottom: 26px; text-align: center; }
h2 { margin: 0; font: 600 25px Cinzel, Georgia, serif; text-transform: uppercase; letter-spacing: .025em; }

.field { display: block; margin-bottom: 15px; }
.field > span:first-child { display: flex; justify-content: space-between; margin-bottom: 7px; color: #c3c2bc; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.field > span:first-child > span { display: inline-flex; align-items: center; gap: 4px; }
.field > span small { color: #6f716d; font-size: 8px; font-weight: 500; }
.required-mark { color: #e2b866; font-size: 13px; font-weight: 700; line-height: .8; text-shadow: 0 0 9px rgba(226,184,102,.35); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.input-wrap { position: relative; display: flex; align-items: center; }
.input-wrap > i { position: absolute; left: 15px; color: #777973; font-style: normal; font-size: 14px; }
input { width: 100%; height: 46px; padding: 0 42px; color: var(--text); background: #101212; border: 1px solid rgba(255,255,255,.1); border-radius: 1px; outline: none; font: 500 13px Montserrat, "Segoe UI", sans-serif; font-variant-numeric: lining-nums tabular-nums; transition: border-color .2s, box-shadow .2s, background .2s; }
input::placeholder { color: #565956; }
input:focus { border-color: rgba(214,163,84,.65); box-shadow: 0 0 0 3px rgba(214,163,84,.08); background: #131615; }
.password-toggle { position: absolute; right: 10px; width: 30px; height: 30px; padding: 0; color: #767974; background: none; border: 0; cursor: pointer; }
.password-toggle:hover { color: var(--gold-light); }
.trap { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.turnstile-label { margin: 4px 0 7px; color: #c3c2bc; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.turnstile-label .required-mark { margin-left: 3px; }
.turnstile-wrap { min-height: 67px; display: flex; align-items: center; justify-content: center; margin: 0 0 15px; overflow: hidden; }
.setup-warning { margin: 0; padding: 11px 13px; color: #dcb66e; background: rgba(220,182,110,.07); border: 1px solid rgba(220,182,110,.25); font-size: 11px; line-height: 1.5; }
.setup-warning code { color: #f4d99f; }
.submit-button { position: relative; isolation: isolate; width: 100%; height: 52px; display: flex; align-items: center; justify-content: center; gap: 20px; overflow: hidden; color: #161007; background: linear-gradient(100deg, #b77e33, #e8c576, #b77e33); background-size: 180% 100%; border: 1px solid #edcc87; cursor: pointer; font: 700 12px Cinzel, Georgia, serif; letter-spacing: .11em; box-shadow: 0 8px 26px rgba(185,125,43,.13), inset 0 0 0 1px rgba(0,0,0,.18); transition: transform .28s cubic-bezier(.2,.8,.2,1), filter .28s, box-shadow .28s, background-position .5s; }
.submit-button:hover { filter: brightness(1.09); transform: translateY(-3px) scale(1.008); background-position: 100% 0; box-shadow: 0 15px 38px rgba(185,125,43,.3), 0 0 22px rgba(224,184,104,.12), inset 0 0 0 1px rgba(255,255,255,.18); }
.submit-button:active { transform: translateY(0) scale(.99); transition-duration: .08s; }
.submit-button b { position: relative; z-index: 1; font-size: 19px; transition: transform .28s ease; }
.submit-button:hover b { transform: translateX(5px); }
.submit-button span, .download-button span { position: relative; z-index: 1; }

.terms { width: max-content; max-width: none; margin: 17px 0 0 50%; color: #aaa9a2; font-size: 11px; font-weight: 500; line-height: 1.65; letter-spacing: .015em; white-space: nowrap; text-align: center; text-shadow: 0 1px 8px rgba(0,0,0,.7); transform: translateX(-50%); }

.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(3,5,5,.78); backdrop-filter: blur(9px); animation: modal-fade-in .22s ease both; }
.modal-backdrop.is-closing { animation: modal-fade-out .2s ease both; }
.message-modal { position: relative; width: min(100%, 440px); padding: 38px 36px 32px; overflow: hidden; color: var(--text); background: linear-gradient(145deg, #1a1d1c, #101313); border: 1px solid rgba(214,163,84,.35); box-shadow: 0 30px 100px rgba(0,0,0,.72), inset 0 0 55px rgba(214,163,84,.025); text-align: center; animation: modal-rise-in .3s cubic-bezier(.2,.8,.2,1) both; }
.modal-backdrop.is-closing .message-modal { animation: modal-rise-out .2s ease both; }
.message-modal::before, .message-modal::after { content: ''; position: absolute; width: 38px; height: 38px; border-color: var(--gold); opacity: .7; pointer-events: none; }
.message-modal::before { top: -1px; left: -1px; border-top: 2px solid; border-left: 2px solid; }
.message-modal::after { right: -1px; bottom: -1px; border-right: 2px solid; border-bottom: 2px solid; }
.modal-close { position: absolute; z-index: 2; top: 11px; right: 12px; width: 34px; height: 34px; padding: 0; color: #a4a69f; background: transparent; border: 1px solid transparent; cursor: pointer; font: 400 24px/1 Montserrat, sans-serif; transition: color .2s, border-color .2s, transform .2s; }
.modal-close:hover { color: var(--gold-light); border-color: rgba(214,163,84,.3); transform: rotate(6deg); }
.modal-symbol { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 20px; border: 1px solid currentColor; border-radius: 50%; font: 600 25px Cinzel, serif; box-shadow: 0 0 25px rgba(0,0,0,.22); }
.message-modal.is-success .modal-symbol { color: var(--success); background: rgba(139,211,169,.07); box-shadow: 0 0 25px rgba(139,211,169,.1); }
.message-modal.is-error .modal-symbol { color: var(--danger); background: rgba(237,139,120,.07); box-shadow: 0 0 25px rgba(237,139,120,.1); }
.message-modal h2 { color: #eee9df; font-size: 21px; line-height: 1.3; }
.modal-content { margin: 15px 0 24px; color: #b4b5af; font-size: 12px; line-height: 1.7; }
.modal-content p { margin: 0; }
.modal-content ul { margin: 0; padding: 0; list-style: none; }
.modal-content li + li { margin-top: 6px; }
.modal-action { min-width: 170px; height: 44px; padding: 0 24px; color: #181108; background: linear-gradient(100deg, #b77e33, #e5be6c, #b77e33); border: 1px solid #edcc87; cursor: pointer; font: 700 11px Cinzel, serif; letter-spacing: .12em; transition: transform .2s, filter .2s, box-shadow .2s; }
.modal-action:hover { filter: brightness(1.08); transform: translateY(-2px); box-shadow: 0 10px 28px rgba(185,125,43,.25); }
.modal-close:focus-visible, .modal-action:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 3px; }
.modal-backdrop[hidden] { display: none; }
body.modal-open { overflow: hidden; }

@keyframes modal-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes modal-fade-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes modal-rise-in { from { opacity: 0; transform: translateY(18px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes modal-rise-out { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(10px) scale(.98); } }

footer { min-height: 66px; display: flex; justify-content: center; align-items: center; color: #a7a398; border-top: 1px solid rgba(214,163,84,.13); font-family: Cinzel, Georgia, serif; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-align: center; text-transform: uppercase; text-shadow: 0 2px 12px rgba(0,0,0,.8); }
footer span::before, footer span::after { content: '✦'; margin: 0 14px; color: var(--gold); font-size: 7px; vertical-align: 2px; opacity: .75; }

@media (max-width: 1050px) {
    .page-shell { padding: 0 4vw; }
}

@media (max-width: 840px) {
    .topbar { height: 82px; }
    .hero { padding-top: 54px; }
}

@media (max-width: 560px) {
    .page-shell { padding: 0 18px; }
    .hero { padding: 42px 0; }
    .download-button { width: 100%; min-width: 0; justify-content: center; }
    .registration-card { padding: 31px 20px 27px; }
    .field-row { grid-template-columns: 1fr; gap: 0; }
    .terms { font-size: clamp(7px, 2.25vw, 11px); letter-spacing: -.015em; }
    .cf-turnstile { transform: scale(.88); transform-origin: center center; }
    footer { gap: 15px; flex-direction: column; justify-content: center; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
    .ambient::before, .ambient::after, .ambient span { animation: none !important; }
    .ambient span { display: none; }
}
