.auth-shell{--auth-bg:var(--hud-canvas);--auth-card:var(--hud-island);--auth-border:var(--line-strong);--auth-ink:var(--hud-ink);--auth-muted:var(--hud-muted);--auth-accent:var(--hud-accent);--auth-field:var(--input);--auth-field-border:var(--line-strong);background:var(--auth-bg);min-height:100dvh;color:var(--auth-ink)}.auth-scene{height:40vh;min-height:260px;position:relative}.auth-scene>.auth-scene-canvas{position:absolute;inset:0}.light-scene{background:#000;position:relative;overflow:hidden}.light-scene-canvas{cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.auth-main{padding:var(--gap-3xl) var(--gap-xl);place-items:center;display:grid}@media (min-width:1024px){.auth-shell{grid-template-columns:1.1fr 1fr;display:grid}.auth-scene{height:100dvh;position:sticky;top:0}}.auth-card{background:var(--auth-card);border:1px solid var(--auth-border);border-radius:var(--r-card);width:100%;max-width:408px;padding:var(--gap-3xl) var(--gap-3xl) var(--gap-3xl);box-shadow:var(--shadow-overlay);animation:.45s cubic-bezier(.2,.7,.2,1) both auth-rise;position:relative}.auth-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent-line), transparent);height:1px;position:absolute;top:-1px;left:18%;right:18%}@keyframes auth-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.auth-card{animation:none}}.auth-brand{align-items:center;gap:var(--gap-lg);margin-bottom:var(--gap-2xl);display:flex}.auth-brand .dot{background:var(--auth-accent);border-radius:50%;width:11px;height:11px}.auth-brand b{font-size:var(--fs-title);letter-spacing:.2px}.auth-brand span{color:var(--auth-muted);font-size:var(--fs-lg)}.auth-card h1{font-size:var(--fs-display);font-weight:var(--fw-semibold);margin:0 0 var(--gap-xs)}.auth-card .sub{color:var(--auth-muted);font-size:var(--fs-lg);margin:0 0 var(--gap-2xl)}.auth-field{margin-bottom:var(--gap-lg);display:block}.auth-field span{font-size:var(--fs-lg);color:var(--auth-muted);margin-bottom:var(--gap-sm);display:block}.auth-field input{background:var(--auth-field);border:1px solid var(--auth-field-border);border-radius:var(--r-btn);width:100%;padding:var(--gap-lg) var(--gap-lg);color:var(--auth-ink);font-size:var(--fs-title);transition:border-color var(--dur-fast), box-shadow var(--dur-fast);outline:none}.auth-field input::placeholder{color:var(--ink-faint)}.auth-field input:focus{border-color:var(--auth-accent);box-shadow:0 0 0 3px var(--focus)}.auth-field input.code{letter-spacing:.5em;text-align:center;font-size:var(--fs-h)}.auth-input-wrap{display:block;position:relative}.auth-input-wrap input{padding-right:44px}.auth-reveal{border-radius:var(--r-btn);width:32px;height:32px;color:var(--auth-muted);cursor:pointer;transition:color var(--dur-fast), background var(--dur-fast);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.auth-reveal:hover{color:var(--auth-ink);background:var(--hover)}.auth-reveal:focus-visible{color:var(--auth-ink);box-shadow:0 0 0 3px var(--focus);outline:none}.auth-reveal svg{width:18px;height:18px;display:block}.auth-btn{margin-top:var(--gap-sm)}.auth-ghost{width:100%;margin-top:var(--gap-lg);color:var(--auth-muted);border:1px solid var(--auth-border);border-radius:var(--r-btn);padding:var(--gap-md);font-size:var(--fs-lg);cursor:pointer;background:0 0}.auth-ghost:hover{color:var(--auth-ink);border-color:var(--line-strong)}.auth-msg{border-radius:var(--r-btn);padding:var(--gap-md) var(--gap-lg) var(--gap-md) calc(var(--gap-lg) + 3px);font-size:var(--fs-lg);margin-bottom:var(--gap-xl)}.auth-msg.err{background:var(--bad-soft);border:1px solid var(--bad-line);color:var(--bad)}.auth-msg.ok{background:var(--good-soft);border:1px solid var(--good-line);color:var(--good)}.auth-alt{margin-top:var(--gap-2xl);text-align:center;font-size:var(--fs-lg);color:var(--auth-muted);margin-bottom:0}.auth-alt a{color:var(--auth-accent);font-weight:var(--fw-medium);text-decoration:none}.auth-alt a:hover{text-decoration:underline}.auth-forgot{margin:-4px 0 var(--gap-lg);text-align:right;font-size:var(--fs-lg)}.auth-forgot a{color:var(--auth-muted);text-decoration:none}.auth-forgot a:hover{color:var(--auth-ink);text-decoration:underline}.auth-rules{margin:-4px 0 var(--gap-lg);font-size:var(--fs-lg);color:var(--auth-muted)}.auth-rules p{margin:0 0 var(--gap-sm)}.auth-rules ul{gap:var(--gap-xs);margin:0;padding:0;list-style:none;display:grid}.auth-rules li{align-items:center;gap:var(--gap-md);display:flex}.auth-rules li .mark{text-align:center;width:13px;color:var(--ink-faint)}.auth-rules li.is-met{color:var(--auth-ink)}.auth-rules li.is-met .mark{color:var(--good)}.auth-hint{margin:-8px 0 var(--gap-lg);font-size:var(--fs-lg);color:var(--auth-muted)}.auth-hint.err{color:var(--bad)}.auth-notice{margin:0 0 var(--gap-lg);padding-left:var(--gap-lg);border-left:2px solid var(--auth-accent);font-size:var(--fs-lg);color:var(--auth-muted);line-height:1.5}.auth-section{--auth-border:var(--line-strong);--auth-ink:var(--hud-ink);--auth-muted:var(--hud-muted);--auth-accent:var(--hud-accent);--auth-field:var(--input);--auth-field-border:var(--line-strong);background:var(--panel);border:1px solid var(--auth-border);border-radius:var(--r-island);padding:var(--gap-2xl) var(--gap-xl) var(--gap-xl);color:var(--auth-ink)}.auth-section h2{font-size:var(--fs-title);font-weight:var(--fw-semibold);margin:0 0 var(--gap-xs)}.auth-section .sub{color:var(--auth-muted);font-size:var(--fs-lg);margin:0 0 var(--gap-xl)}.auth-section .auth-btn,.auth-section .auth-ghost{width:auto;min-width:200px}:root[data-theme=light] .auth-reveal:hover{background:var(--track)}:root[data-theme=light] .auth-alt a{color:var(--hud-accent-text)}:root[data-theme=light] .auth-notice{border-left-color:var(--hud-accent-text)}.auth-beam{border-radius:var(--r-btn);pointer-events:none;position:absolute;inset:0;overflow:hidden}.auth-beam:before{content:"";clip-path:polygon(100% 46%,0 0,0 100%,100% 54%);transform-origin:100%;background:linear-gradient(270deg,#ffcc29b3,#ffcc2947 60%,#ffcc2900);width:100%;animation:.56s cubic-bezier(.2,.8,.2,1) forwards auth-beam-on;position:absolute;top:-40%;bottom:-40%;right:20px}.auth-beam[data-dir=off]:before{animation:.32s cubic-bezier(.4,0,1,1) forwards auth-beam-off}@keyframes auth-beam-on{0%{opacity:1;transform:scaleX(0)}45%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}@keyframes auth-beam-off{0%{opacity:.6;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.auth-beam{display:none}}
