.access-page { --error:#ffb5ae; --field:color-mix(in srgb,var(--page) 85%,var(--ink)); }
.access-header { min-height:100px; padding:24px 4.5%; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.access-header .story-link { font-size:12px; border-bottom:1px solid var(--line); padding:8px 0; }
.access-header .header-actions { gap:32px; }
.access-layout { min-height:calc(100svh - 176px); display:grid; grid-template-columns:1.15fr 1fr; max-width:1800px; margin:auto; }
.access-story { position:relative; min-height:660px; display:flex; flex-direction:column; justify-content:space-between; padding:46px 8% 42px; isolation:isolate; overflow:clip; }
.story-intro { color:var(--muted); font-size:12px; position:relative; z-index:2; }
.access-story h1 { position:absolute; inset:100px 8% auto; font-size:clamp(65px,7.9vw,140px); font-weight:500; letter-spacing:-.075em; line-height:.96; z-index:2; pointer-events:none; }
.access-story h1 span { display:block; }
.access-story h1 span:last-child { margin-top:170px; text-align:right; }
.access-sculpture.scene { top:115px; height:360px; width:115%; left:-7.5%; z-index:1; }
.access-sculpture .scene-fallback { inset:8% 8%; width:84%; height:84%; }
.access-sculpture .scene-glow { background:radial-gradient(ellipse at center,rgba(30,115,201,.14),transparent 64%); }
.story-foot { position:relative; z-index:2; margin-top:auto; padding-top:420px; }
.story-foot>p { color:var(--muted); font-size:13px; line-height:1.75; }
.scope-line { display:flex; align-items:center; gap:14px; margin-top:32px; font-size:11px; color:var(--blue); }
.scope-line i { width:28px; height:1px; background:var(--line); }
.access-panel { border-left:1px solid var(--line); display:flex; align-items:center; padding:25px 12% 40px; }
.access-panel-inner { width:100%; max-width:460px; margin:auto; }
.access-tabs { display:flex; gap:30px; border-bottom:1px solid var(--line); margin-bottom:32px; font-size:12px; }
.access-tabs a { padding:12px 0 16px; color:var(--muted); position:relative; }
.access-tabs a[aria-current] { color:var(--ink); }
.access-tabs a[aria-current]::after { content:''; position:absolute; height:2px; bottom:-1px; left:0; right:0; background:var(--blue); }
.access-panel h2 { font-size:clamp(34px,3.6vw,58px); line-height:1.08; font-weight:500; letter-spacing:-.065em; }
.form-description { color:var(--muted); font-size:13px; margin-top:15px; max-width:42ch; }
.preview-note { display:flex; align-items:flex-start; gap:10px; margin:26px 0; padding:13px 15px; background:color-mix(in srgb,var(--blue) 6%,transparent); border-left:2px solid var(--line); }
.preview-note p { font-size:11px; color:var(--muted); line-height:1.7; }
.preview-note strong { color:var(--ink); font-weight:600; }
.preview-dot { width:5px; height:5px; background:var(--blue); border-radius:50%; flex-shrink:0; margin-top:7px; }
.live-service { display:inline; color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.live-service svg { width:13px; height:13px; vertical-align:middle; }
.access-field { margin-bottom:20px; min-width:0; }
.access-field label { display:block; font-size:12px; margin-bottom:9px; }
.input-shell { position:relative; }
.access-field input,.access-field select { border:1px solid var(--line); width:100%; min-height:53px; padding:13px 15px; border-radius:6px; background:color-mix(in srgb,var(--page) 97%,var(--ink)); color:var(--ink); font:inherit; font-size:16px; transition:border-color .15s; }
.access-field input::placeholder { color:var(--muted); opacity:.85; font-size:13px; }
.access-field input:focus,.access-field select:focus { border-color:var(--blue); outline:2px solid color-mix(in srgb,var(--blue) 24%,transparent); outline-offset:2px; }
.access-field input[aria-invalid],.access-field select[aria-invalid] { border-color:var(--error); }
.access-field input#password { padding-right:68px; }
.password-toggle { position:absolute; top:4px; bottom:4px; right:5px; min-width:52px; font-size:11px; color:var(--muted); border-radius:3px; }
.password-toggle:focus-visible { outline-offset:0; }
.field-error { display:block; font-size:11px; color:var(--error); line-height:1.5; }
.field-error:not(:empty) { padding-top:7px; }
.access-submit { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:54px; border-radius:6px; padding:15px 19px; background:var(--button); color:var(--button-ink); font-size:13px; font-weight:600; gap:20px; }
.access-submit:hover { background:var(--blue); color:var(--page); }
.access-submit svg { width:19px; }
.form-footnote { text-align:center; font-size:10px; margin-top:12px; color:var(--muted); }
.access-secondary { display:flex; flex-wrap:wrap; gap:5px 9px; font-size:11px; margin-top:30px; padding-top:22px; border-top:1px solid var(--line); }
.access-secondary span { color:var(--muted); }
.access-secondary a { text-decoration:underline; text-underline-offset:4px; }
.access-help { display:block; padding:16px 0 8px; font-size:11px; color:var(--muted); text-decoration:underline; text-underline-offset:4px; }
.access-footer { display:flex; justify-content:space-between; gap:20px; padding:25px 4.5%; min-height:76px; font-size:10px; color:var(--muted); border-top:1px solid var(--line); }
.field-pair { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.acknowledgement { margin:1px 0 23px; }
.acknowledgement label { display:flex; gap:10px; align-items:flex-start; font-size:11px; line-height:1.7; color:var(--muted); cursor:pointer; }
.acknowledgement input { accent-color:var(--blue); width:17px; height:17px; margin:2px 0 0; flex-shrink:0; }
.acknowledgement input:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.access-steps { list-style:none; padding:0; margin:35px 0 0; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.access-steps li { border-top:1px solid var(--line); padding-top:15px; }
.access-steps span { color:var(--blue); font-size:11px; }
.access-steps strong { display:block; font-size:14px; font-weight:500; margin:12px 0 5px; }
.access-steps small { font-size:10px; line-height:1.6; display:block; color:var(--muted); }
[data-access="register"] .access-story { position:sticky; top:0; align-self:start; min-height:740px; }
[data-access="register"] .access-panel { padding-top:20px; }
[data-access="register"] .access-panel h2 { font-size:clamp(32px,3.2vw,52px); }
[data-access="register"] .access-tabs { margin-bottom:26px; }
[data-access="register"] .preview-note { margin:21px 0; }
[data-access="register"] .access-field { margin-bottom:17px; }
.access-dialog { padding:48px; border:1px solid var(--line); border-radius:12px; width:min(540px,calc(100% - 32px)); max-height:calc(100svh - 32px); background:var(--page); color:var(--ink); box-shadow:0 30px 140px #0006; }
.access-dialog::backdrop { background:rgba(3,10,19,.72); backdrop-filter:blur(8px); }
.dialog-close { position:absolute; top:14px; right:16px; font-size:27px; width:40px; height:40px; color:var(--muted); }
.dialog-symbol { color:var(--blue); font-size:35px; margin-bottom:24px; }
.access-dialog h2 { font-size:35px; letter-spacing:-.055em; line-height:1.12; font-weight:500; }
.dialog-description { font-size:13px; color:var(--muted); margin-top:18px; }
.dialog-detail { margin:24px 0; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:12px; color:var(--muted); }
.dialog-detail ol { padding-left:18px; margin:0; }
.dialog-detail li+li { margin-top:20px; }
.dialog-detail strong { color:var(--ink); font-weight:500; }
.dialog-detail p { margin-top:5px; }
.dialog-back { width:100%; padding:19px 0 0; font-size:12px; color:var(--muted); }
:root:has(.access-dialog[open]) { overflow:hidden; }
@media(prefers-color-scheme:light) { :root:not([data-theme="dark"]) .access-page { --error:#b42b28; } }
:root[data-theme="light"] .access-page { --error:#b42b28; }
@media(prefers-reduced-motion:no-preference) {
  .access-story h1 { animation:access-arrival .8s ease-out both; }
  .access-sculpture { animation:access-arrival 1.2s ease-out both; }
  @keyframes access-arrival { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
}
@media(min-width:1600px) { .access-story { min-height:760px; }.access-story h1 span:last-child { margin-top:190px; }.access-sculpture.scene { top:125px; height:440px; } }
@media(max-width:1050px) { .access-layout { grid-template-columns:1fr 1fr; }.access-panel { padding-left:8%; padding-right:8%; }.access-story h1 { font-size:7.8vw; }.access-story h1 span:last-child { margin-top:185px; }.field-pair { grid-template-columns:1fr; gap:0; }.scope-line { gap:8px; font-size:10px; }.scope-line i { width:12px; } }
@media(max-width:760px) {
  .access-header { min-height:80px; padding:18px 6%; }.access-header .brand { font-size:22px; }.access-header .brand img { width:39px; }
  .access-header .header-actions { gap:15px; }.access-header .story-link { font-size:10px; }.access-header .theme-label { display:none; }
  .access-layout { display:block; }.access-story { min-height:230px; padding:20px 7% 24px; }
  .story-intro { font-size:10px; }.access-story h1 { position:relative; inset:auto; font-size:clamp(46px,9vw,68px); line-height:1; margin:25px 0 0; }
  .access-story h1 span:last-child { margin:0; text-align:left; }.access-sculpture.scene { width:66%; height:200px; top:32px; left:44%; }
  .story-foot { display:none; }.access-panel { border-left:0; border-top:1px solid var(--line); padding:20px 7% 35px; }.access-panel-inner { max-width:520px; }
  .access-tabs { margin-bottom:26px; }.access-panel h2 { font-size:37px; }.form-description { font-size:13px; }.access-field input::placeholder { font-size:14px; }
  .access-footer { padding:24px 7%; flex-direction:column; gap:10px; font-size:10px; line-height:1.7; }
  [data-access="register"] .access-story { position:relative; min-height:230px; }[data-access="register"] .access-panel h2 { font-size:36px; }
  .field-pair { grid-template-columns:1fr 1fr; gap:14px; }.access-dialog { padding:40px 25px 28px; }
}
@media(max-width:420px) { .field-pair { grid-template-columns:1fr; gap:0; }.access-header .story-link { max-width:60px; line-height:1.5; }.access-story { min-height:215px; }.access-sculpture.scene { width:75%; left:40%; }.access-tabs { gap:26px; }.access-panel h2 { font-size:34px; } }

/* Live-integration additions (real sign-in / intake wiring). */
.submit-error { font-size: 11px; color: var(--error); line-height: 1.6; padding: 12px 14px; margin: 0 0 14px; border-left: 2px solid var(--error); background: color-mix(in srgb, var(--error) 8%, transparent); }
.submit-error[hidden] { display: none; }
.access-submit:disabled { opacity: .55; cursor: wait; }
.access-submit:disabled:hover { background: var(--button); color: var(--button-ink); }
.honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
