:root {
    color-scheme:dark;
    font-family:"Segoe UI",Arial,sans-serif;
    color:#f7f2e6;
    background:#10231b;
}
* { box-sizing:border-box; }
body { margin:0; min-width:280px; }
body::after { content:""; position:fixed; inset:22px; z-index:2; pointer-events:none; border:1px solid #d3c6a332; }
.access-backdrop { position:fixed; inset:0; pointer-events:none; }
.access-backdrop img { display:block; width:100%; height:100%; }
.access-backdrop img { object-fit:cover; object-position:60% center; }
.access-backdrop::after {
    content:""; position:absolute; inset:0;
    background:linear-gradient(90deg,#0a1d16fa 0%,#0a1d16eb 23%,#0a1d167a 51%,#0a1d160a 78%),linear-gradient(0deg,#081911ee,transparent 42%,#091c1633);
}
.access-shell {
    position:relative; width:min(1440px,100%); min-height:100vh; min-height:100svh;
    margin:auto; padding:58px clamp(36px,6vw,88px) 40px;
    display:flex; flex-direction:column;
}
.access-header { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.access-logo-lockup {
    position:relative; isolation:isolate; display:grid; place-items:center;
    width:126px; aspect-ratio:1; flex-shrink:0; border-radius:50%;
    background:radial-gradient(circle,#fffdf4 55%,#e7e1ce 100%);
    box-shadow:0 0 0 5px #f7f1de06,0 12px 50px #00000026;
}
.access-logo { display:block; width:86%; height:auto; object-fit:contain; }
.access-logo-orbit { position:absolute; border-radius:50%; pointer-events:none; }
.access-logo-orbit--outer { inset:-9px; border:1px solid #d9c9a42b; border-top-color:#d9c9a4a6; border-right-color:#d9c9a4a6; }
.access-logo-orbit--inner { inset:-16px; border:1px solid transparent; border-bottom-color:#e7dfb24d; border-left-color:#e7dfb24d; }
.access-content { padding:48px 0 52px; margin:auto 0; }
.access-story { max-width:640px; }
.access-eyebrow { display:flex; align-items:center; gap:16px; color:#d5c6a4; font-size:10px; letter-spacing:.24em; text-transform:uppercase; font-weight:600; }
.access-eyebrow::before { content:""; width:42px; height:1px; background:#bbaa80; flex-shrink:0; }
.access-story h1 { font-family:Georgia,"Times New Roman",serif; font-weight:700; font-size:clamp(76px,8vw,116px); letter-spacing:-.055em; line-height:.94; margin:26px 0 26px; text-shadow:0 4px 32px #07171033; }
.access-story h1 span { display:block; color:#d9c79e; font-style:italic; padding-bottom:.08em; }
.access-story p { color:#e7e4d9; font-size:17px; letter-spacing:.045em; line-height:1.7; margin:0; }
.access-panel { width:min(480px,100%); margin-top:32px; padding:22px 0 0; border-top:1px solid #d8caa63d; }
.access-panel label { display:flex; align-items:center; gap:9px; color:#e2d9c4; font-size:11px; letter-spacing:.035em; font-weight:500; margin-bottom:13px; }
.access-panel label svg { color:#c5b48c; flex-shrink:0; }
.access-form-row { display:flex; gap:12px; }
.access-panel input { min-width:0; width:100%; min-height:54px; border:1px solid #d8caa64d; border-radius:4px; background:#10281ee6; padding:14px 16px; font:inherit; font-size:16px; color:#f7f2e6; backdrop-filter:blur(12px); }
.access-panel input::placeholder { color:#cbcfc1; font-size:13px; opacity:1; }
.access-panel input:hover { border-color:#c5b48c; }
.access-panel input:focus-visible,.access-panel button:focus-visible { outline:2px solid #e4d2a8; outline-offset:4px; }
.access-panel input[aria-invalid="true"] { border-color:#eea493; }
.access-panel button { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; gap:22px; min-height:54px; padding:14px 20px; border:1px solid #ece3cb; border-radius:4px; background:#ece3cb; color:#20382a; font:inherit; font-size:12px; letter-spacing:.02em; font-weight:650; cursor:pointer; box-shadow:0 4px 18px #00000014; }
.access-panel button:hover { background:#fff8e7; border-color:#fff8e7; }
.access-panel button:hover span { transform:translateX(3px); }
.access-panel button span { font-size:22px; line-height:1; font-weight:400; }
.access-error { border-left:3px solid #eea493; padding:10px 12px; background:#fff0ec; color:#852f21; font-size:13px; line-height:1.5; margin:14px 0 0; border-radius:3px; }
.access-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; border-top:1px solid #d7cba62b; padding-top:18px; color:#d8d8ca; font-size:10px; letter-spacing:.08em; line-height:1.8; }
.access-footer i { font-style:normal; padding:0 10px; color:#c5b48c; }
@media(min-width:1025px) and (max-height:760px) {
    .access-shell { padding-top:42px; }
    .access-logo-lockup { width:96px; }
    .access-content { padding:32px 0; }
    .access-story h1 { font-size:clamp(68px,7vw,90px); margin:20px 0; }
    .access-panel { margin-top:24px; padding-top:18px; }
}
@media(max-width:1024px) {
    body::after { inset:12px; }
    .access-shell { align-items:center; padding:42px max(26px,env(safe-area-inset-right)) max(26px,env(safe-area-inset-bottom)) max(26px,env(safe-area-inset-left)); }
    .access-header { width:100%; justify-content:center; }
    .access-backdrop img { object-position:72% center; }
    .access-backdrop::after { background:linear-gradient(180deg,#0a1e1680,#0a1e16d6 30%,#0a1e16de 64%,#0a1e16bf); }
    .access-logo-lockup { width:104px; }
    .access-content { width:min(480px,100%); margin:0; padding:42px 0 30px; }
    .access-story { text-align:center; }
    .access-eyebrow { justify-content:center; font-size:9px; letter-spacing:.18em; gap:12px; }
    .access-eyebrow::before,.access-eyebrow::after { content:""; width:24px; height:1px; background:#bbaa80; flex-shrink:0; }
    .access-story h1 { font-size:clamp(60px,16vw,84px); margin:22px 0 18px; }
    .access-story p { font-size:15px; letter-spacing:.015em; line-height:1.6; }
    .access-panel { margin:26px auto 0; padding:20px; border:1px solid #d8caa63d; border-radius:10px; background:#10271ee6; box-shadow:0 12px 32px #05100a24; backdrop-filter:blur(12px); }
    .access-panel label { font-size:12px; line-height:1.5; margin-bottom:12px; }
    .access-panel input { background:#0e211cd9; border-radius:5px; }
    .access-panel button { position:relative; justify-content:center; padding-inline:20px; border-radius:5px; font-size:13px; }
    .access-footer { width:min(480px,100%); margin-top:auto; flex-direction:column; align-items:center; text-align:center; gap:6px; font-size:10px; letter-spacing:.025em; padding-top:16px; }
    .access-footer i { padding:0 5px; }
}
@media(max-width:540px) {
    .access-form-row { flex-direction:column; gap:10px; }
    .access-panel button { width:100%; padding-inline:44px; }
    .access-panel button span { position:absolute; right:18px; }
    .access-story h1 { font-size:clamp(58px,16vw,76px); }
}
@media(max-width:360px) {
    .access-shell { padding-top:34px; }
    .access-logo-lockup { width:84px; }
    .access-content { padding-top:34px; padding-bottom:26px; }
    .access-story h1 { font-size:56px; }
    .access-story p { font-size:14px; }
    .access-panel { padding:16px; margin-top:22px; }
    .access-eyebrow { font-size:8px; }
    .access-eyebrow::before,.access-eyebrow::after { width:18px; }
    .access-footer { font-size:9px; }
}
@media(max-width:1024px) and (max-height:540px) and (orientation:landscape) {
    .access-shell { padding-top:30px; }
    .access-logo-lockup { width:72px; }
    .access-content { padding-top:30px; }
    .access-story h1 { font-size:54px; }
}
@media(prefers-reduced-motion:no-preference) {
    .access-logo-lockup { animation:access-logo-arrive 1.4s ease-out both; }
    .access-logo-orbit--outer { animation:access-orbit 18s linear infinite; }
    .access-logo-orbit--inner { animation:access-orbit 26s linear infinite reverse; }
    .access-story { animation:access-arrive .9s .15s ease-out both; }
    .access-panel { animation:access-arrive .9s .3s ease-out both; }
    .access-panel button,.access-panel input { transition:background-color .2s,border-color .2s; }
    .access-panel button span { transition:transform .2s; }
}
@keyframes access-orbit { to { transform:rotate(1turn); } }
@keyframes access-logo-arrive { from { opacity:0; transform:translateY(8px) scale(.94); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes access-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
