@import url('../shared/tokens.css');
@import url('../shared/account.css');
*{box-sizing:border-box}
html{background:var(--ink)}
body{position:relative;isolation:isolate;min-width:320px;min-height:100vh;min-height:100svh;margin:0;overflow-x:hidden;color:var(--mist-94);background:var(--ink);font:15px/1.5 var(--sans)}
.access-backdrop{position:fixed;z-index:-1;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse 62% 78% at 77% 43%,color-mix(in srgb,var(--ink-34) 60%,transparent),transparent 75%),radial-gradient(ellipse 54% 60% at 0% 95%,color-mix(in srgb,var(--wash) 4.2%,transparent),transparent 75%),var(--ink-16)}
.access-backdrop::after{content:'';position:absolute;inset:0;background:var(--grain),linear-gradient(90deg,color-mix(in srgb,var(--ink-16) 26.7%,transparent) 0%,transparent 56%),radial-gradient(ellipse 90% 75% at 50% 50%,transparent 30%,color-mix(in srgb,var(--ink-16) 66%,transparent) 100%)}
.access-glow{position:absolute;width:64vw;max-width:900px;aspect-ratio:1;right:-8%;top:4%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--wash) 8%,transparent) 0%,color-mix(in srgb,var(--wash) 3.3%,transparent) 38%,transparent 70%);filter:blur(35px)}
.access-layout{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(20px,4vw,70px);width:min(100%,1500px);min-height:calc(100svh - 56px);margin:auto;padding:clamp(24px,5vh,64px) clamp(24px,4vw,72px) 42px}
.access-intro{min-width:0;text-align:center;animation:fade-up .8s ease-out backwards}
.hero-brand{width:fit-content;max-width:100%;margin:auto}
.hero-logo{display:flex;align-items:center;justify-content:center;gap:clamp(12px,1.6vw,24px);margin:0;font-weight:400;letter-spacing:-2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.logo-mark{display:block;width:clamp(125px,14vw,190px);height:auto;flex:none}
.logo-rule{flex:none;align-self:stretch;width:1px;min-height:72px;margin:18px 0;background:color-mix(in srgb,var(--gold) 45%,transparent)}
.logo-word{color:var(--pale-93);font:400 clamp(38px,4vw,66px)/1 var(--serif);letter-spacing:-.035em;white-space:nowrap}
.logo-word b{color:var(--accent-88);font-size:1.18em;font-weight:400}
.logo-name{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.logo-word{margin:0}
.logo-note{margin-left:.15em;color:var(--accent-83);font:italic 400 clamp(15px,1.3vw,20px)/1.2 var(--serif);letter-spacing:.01em;text-decoration:none}
.logo-note:hover{color:var(--gold-hi);text-decoration:underline;text-underline-offset:3px}
.access-stage{position:relative;display:grid;place-items:center;min-width:0;height:clamp(540px,46vw,700px)}
.mana-ring{position:absolute;z-index:3;width:min(100%,clamp(440px,46vw,720px));aspect-ratio:1;border:1px solid color-mix(in srgb,var(--rule) 12%,transparent);border-radius:50%;box-shadow:inset 0 0 90px color-mix(in srgb,var(--gold) 5%,transparent);pointer-events:none;animation:ring-in 1.8s .2s cubic-bezier(.2,.8,.2,1) backwards,ring-spin 110s linear infinite}
.mana-ring img{position:absolute;width:clamp(22px,2.2vw,34px);height:auto;translate:-50% -50%;opacity:.62;filter:drop-shadow(0 0 12px #000a);animation:ring-spin 110s linear infinite reverse}
.mana-ring img:nth-child(1){left:50%;top:0}.mana-ring img:nth-child(2){left:97.55%;top:34.55%}.mana-ring img:nth-child(3){left:79.39%;top:90.45%}.mana-ring img:nth-child(4){left:20.61%;top:90.45%}.mana-ring img:nth-child(5){left:2.45%;top:34.55%}
@keyframes ring-spin{to{rotate:360deg}}
@keyframes ring-in{from{opacity:0;scale:.82}}
.access-card{position:relative;z-index:1;width:min(100%,420px);padding:clamp(24px,2.6vw,36px);border:1px solid color-mix(in srgb,var(--rule) 22%,transparent);border-radius:var(--radius);background:var(--grain),var(--ink-24);box-shadow:0 1px 0 #00000066,0 24px 48px -24px #000;animation:card-in .7s .12s cubic-bezier(.2,.9,.25,1.12) backwards;transition:opacity .26s,transform .26s}
h2{margin:0;color:var(--ivory);font:400 36px/1.12 var(--serif);letter-spacing:-.02em}
form{display:grid;gap:18px;margin-top:28px}
.field{display:grid;gap:9px}
label{color:var(--mist-80);font:600 12.5px/1.2 var(--sans);letter-spacing:.01em}
input{width:100%;min-height:52px;padding:14px 16px;border:1px solid #ffffff24;border-radius:var(--radius-s);background:color-mix(in srgb,var(--ink-16) 70%,transparent);color:var(--ivory);font:500 16px/1.2 var(--sans);transition:border-color .25s,box-shadow .25s}
input::placeholder{color:var(--quiet)}
input:focus{outline:none;border-color:color-mix(in srgb,var(--gold) 70%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 12%,transparent)}
button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:53px;margin-top:4px;padding:15px 24px;border:0;border-radius:var(--radius-s);background:var(--gold);color:var(--shade-21);font:700 15px/1 var(--sans);cursor:pointer;box-shadow:none;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
button:hover:not(:disabled){box-shadow:inset 0 -2px 0 #00000026}
button:active:not(:disabled){transform:translateY(0) scale(.98)}
button:disabled{filter:grayscale(.7);opacity:.6;cursor:wait}
:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px}
input:focus-visible{outline:none}
#access-error{margin:0;padding:11px 14px;border:1px solid color-mix(in srgb,var(--sacrifice) 40%,transparent);border-radius:var(--radius-s);background:color-mix(in srgb,var(--danger-deep) 50.2%,transparent);color:var(--danger-hi);font-size:13px;line-height:1.5}
[hidden]{display:none!important}
.access-card .account-form{gap:12px;margin-top:0}
.access-card .account-form input[type=text],.access-card .account-form input[type=password]{min-height:46px}
.access-footer{position:relative;display:flex;justify-content:center;gap:18px;width:min(100%,1500px);margin:auto;padding:0 clamp(24px,4vw,72px) 28px;color:var(--quiet);font-size:11px;letter-spacing:.03em}
@keyframes fade-up{from{opacity:0;transform:translateY(18px)}}
@keyframes card-in{from{opacity:0;transform:translateY(28px) scale(.96)}}
@media(max-width:900px){.access-layout{grid-template-columns:1fr;align-content:start;gap:0;min-height:0;padding-top:26px;padding-bottom:68px}.access-stage{height:clamp(580px,80vw,680px);margin-top:12px}.mana-ring{z-index:0;width:min(86vw,500px)}}
@media(max-width:480px){.access-layout{padding:26px 18px 42px}.hero-logo{gap:10px}.logo-mark{width:clamp(70px,24vw,110px)}.logo-word{font-size:clamp(27px,8vw,38px)}.access-stage{height:580px}.mana-ring{width:min(116vw,460px)}.access-card{width:min(100%,300px);padding:20px;border-radius:var(--radius)}h2{font-size:32px}form{gap:14px;margin-top:18px}input{min-height:48px}.access-footer{padding:0 18px 24px}}
@media(prefers-reduced-motion:reduce){.access-intro,.access-card,.mana-ring,.mana-ring img{animation:none}button,.access-card{transition:none}}
