/* Keep the underline aligned with the original star while enlarging its target. */
/* Server-session checks never flash the login scene, including before JS loads. */
body:not([data-auth-view="login"]):not([data-auth-view="journey"]):not([data-auth-view="home"]) .universe,
body:not([data-auth-view="login"]):not([data-auth-view="journey"]):not([data-auth-view="home"]) .passage-flash { visibility: hidden; }
.entry[hidden], .auth-gate[hidden], .auth-retry[hidden], #authenticated-workspace[hidden], #entry-main[hidden], .masthead[hidden] { display: none; }
.auth-gate { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 80px 24px; text-align: center; }
.auth-gate p { max-width: 36em; margin: 0; color: #a5aebc; font-size: 12px; line-height: 1.8; letter-spacing: .03em; }
.auth-retry { min-width: 100px; min-height: 44px; padding: 10px 18px; border: 1px solid #c8d3e62b; background: transparent; color: #dce3ed; font-size: 12px; }
.auth-retry:hover { border-color: #c8d3e663; }
.login { top: calc(var(--star-y) - 46px); }
.auth-action { display: block; width: 100%; min-height: 44px; border: 0; border-bottom: 1px solid #c8d3e62b; padding: 3px 0 7px 1px; background: transparent; color: #bdc9dfb0; text-align: left; font-size: 11px; font-weight: 300; letter-spacing: .14em; }
.auth-action:hover { border-bottom-color: #c8d3e663; color: #dce3ed; }
.auth-action:disabled { opacity: .6; }
.auth-hint { margin: 10px 0 0; color: #bdc9df7d; font-size: 9px; font-weight: 300; line-height: 1.6; letter-spacing: .05em; }
.auth-message { position: absolute; top: 100%; left: 0; width: min(240px, 65vw); margin: 16px 0 0; color: #b8a88c; font-size: 10px; line-height: 1.7; letter-spacing: .02em; }
.auth-message:empty { display: none; }
.auth-controls { position: relative; z-index: 5; display: flex; align-items: center; justify-content: flex-end; gap: 20px; margin: 0 auto; padding: 16px 32px 28px; max-width: 1120px; }
body[data-auth-view="logout-unconfirmed"] .auth-controls { position: absolute; top: 65%; left: 24px; right: 24px; justify-content: center; padding: 12px 0; }
.auth-controls button, .auth-controls a, .auth-cancel { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; border: 0; padding: 5px 0; color: #a5aebc; background: transparent; font-size: 11px; font-weight: 300; letter-spacing: .06em; text-decoration: none; }
.auth-cancel { margin-top: 8px; color: #bdc9df7d; }
.auth-action:focus-visible, .auth-cancel:focus-visible, .auth-controls :focus-visible, .auth-retry:focus-visible { outline: 1px solid #d7b989; outline-offset: 4px; }
.auth-controls button:hover, .auth-controls a:hover, .auth-cancel:hover { color: #e4e9f0; }
.auth-controls[hidden], .auth-controls [hidden], .auth-cancel[hidden], .service-links[hidden] { display: none; }
/* Fallback has ordinary document flow; no login/scene geometry is overridden. */
body[data-auth-view="home"] { height:auto; min-height:100svh; overflow:auto; background:#06090d; }
#authenticated-workspace { min-height:calc(100svh - 90px); }
.authenticated-home.home { position:relative; inset:auto; z-index:auto; width:min(100%,1120px); margin:0 auto; padding:42px 32px 24px; opacity:1; transition:none; }
.authenticated-home h1 { margin:10px 0 12px; font-size:25px; font-weight:500; line-height:1.4; }
.authenticated-home p:not(.console-label) { max-width:52em; color:#91a0b1; line-height:1.8; }
.authenticated-home [hidden] { display:none!important; }
.service-links { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 0; }
.service-links a { display:inline-flex; align-items:center; min-height:44px; padding:10px 15px; border:1px solid #344252; border-radius:3px; color:#dce3ed; background:#0b1017; text-decoration:none; font-size:13px; line-height:1.6; }
.service-links a:hover { color:#f4dfad; border-color:#b6a176; }
.auth-noscript { position: absolute; top: 48%; left: 24px; right: 24px; color: #bdc9df; text-align: center; font-size: 12px; }
@media (max-width: 700px) { .auth-controls { flex-wrap:wrap; gap:2px 14px; padding-inline:20px; }.authenticated-home.home { padding:28px 20px 16px; }.authenticated-home h1 { font-size:21px; } }
