/* A6: real responsive forms, a narrative scene and complete source images. */
.access-entry {width:100%;min-height:calc(100dvh - 80px);padding:clamp(16px,3vw,40px);background:radial-gradient(ellipse at 32% 15%,#08608266,transparent 58%),linear-gradient(145deg,#021426,#05273f 55%,#031225);color:#eef8ff}
.access-entry,.access-entry * {box-sizing:border-box;min-width:0}
.access-header {display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1200px;margin:0 auto 26px}
.access-brand {display:flex;align-items:center;gap:10px;color:#f3fbff;text-decoration:none;flex-shrink:0}
.access-brand img {object-fit:contain;width:48px;height:48px}.access-brand b {font-size:clamp(17px,2vw,23px);display:block}.access-brand small {display:block;font-size:9px;letter-spacing:.16em;color:#7fddf3;margin-top:3px}
.access-header>p {font-size:14px;line-height:1.5;color:#a9cadc;margin:0}.access-header>p strong {color:#41d7ee}
.access-switch {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #3b7191;border-radius:10px;color:#def9ff;text-decoration:none;font-size:14px;background:#08243b}
.access-shell {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);max-width:1200px;margin:0 auto;border:1px solid #2b6885;border-radius:24px;box-shadow:0 24px 70px #0005;overflow:hidden;background:#072640}
.access-scene {display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:18px;padding:clamp(22px,3vw,38px);position:relative;isolation:isolate;background:radial-gradient(ellipse at 85% 40%,#1688b54a,transparent 65%),linear-gradient(145deg,#062a45,#073f58 68%,#031c32)}
.access-scene::before {content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,transparent 45%,#46d9f30b 45.2%,transparent 62%);pointer-events:none}
.access-kicker {font-size:10px;font-weight:800;letter-spacing:.14em;color:#79dcee}
.access-intro h1 {font-size:clamp(28px,3.1vw,43px);line-height:1.09;letter-spacing:-.035em;margin:16px 0;color:#fff;overflow-wrap:normal}
.access-intro h1 em {display:block;color:#57e0ee;font-style:normal}
.access-intro>p {font-size:14px;line-height:1.65;color:#c5e0ed;margin:0}
.access-features {display:grid;gap:16px;list-style:none;padding:0;margin:30px 0 0;color:#d3eaf5;font-size:12px;line-height:1.5}
.access-features li {display:flex;gap:10px;align-items:center}.access-features li>span {color:#4cdaef;font-size:23px;flex:none}
.access-character {margin:0;display:flex;flex-direction:column;align-self:center;align-items:center;gap:14px;position:relative}
.access-character img {display:block;width:100%;height:auto;max-width:260px;object-fit:contain;border-radius:0;box-shadow:none}
.access-character figcaption {position:relative;align-self:stretch;background:#f3fbff;color:#173653;border-radius:16px 16px 3px 16px;padding:14px;font-size:12px;line-height:1.5;box-shadow:0 8px 22px #00182733}
.access-character figcaption strong {display:block;color:#056082;font-size:14px;margin-bottom:4px}.access-character figcaption span {display:block}
.access-scene-note {grid-column:1/-1;margin:0;color:#7ddce9;font-size:13px;line-height:1.5;text-align:center}
.access-form {--text:#112c43;--muted:#506779;--panel:#fff;--panel2:#edf4f9;--border:#c4d4df;--primary:#046a8c;--bg:#f8fbff;color-scheme:light;background:#f8fbff;color:#112c43;padding:clamp(24px,3.6vw,48px);display:flex;flex-direction:column;justify-content:center}
.access-role {align-self:flex-start;font-size:10px;font-weight:800;letter-spacing:.08em;background:#e7f2ff;color:#155eb4;padding:6px 10px;border-radius:30px}
.access-form h2 {font-size:clamp(23px,2.25vw,31px);line-height:1.18;letter-spacing:-.035em;margin:16px 0 8px;color:#10273c}
.access-description {font-size:14px;line-height:1.6;margin:0 0 24px;color:#526b7d}
.access-form .google-auth-btn {font-size:14px;font-weight:650;min-height:46px;box-shadow:0 3px 8px #17293b0a}
.access-divider {display:flex;align-items:center;gap:12px;color:#60778b;font-size:12px;margin:22px 0}.access-divider::before,.access-divider::after {content:"";flex:1;height:1px;background:#d8e4ec}
.access-fields {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 12px}
.access-name,.access-actions {grid-column:1/-1}
.access-field label,.access-code label {display:block;margin:0 0 8px;font-size:12px;font-weight:650;color:#3b566a}.access-field label small {font-weight:400;font-size:11px}
.access-entry .input {display:block;width:100%;height:48px;margin:0;background:#fff;color:#163147;border:1px solid #bdceda;border-radius:9px;padding:11px 12px;font:inherit;font-size:16px;box-shadow:0 2px 4px #10223b04}
.access-entry .input::placeholder {color:#667e91;opacity:1}
.access-entry a:focus-visible,.access-entry button:focus-visible,.access-entry input:focus-visible {outline:3px solid #1588c8;outline-offset:3px}
.access-password {position:relative}.access-password .input {padding-right:46px}.access-password button {position:absolute;right:2px;top:2px;width:44px;height:44px;border:0;background:transparent;color:#385c75;display:grid;place-items:center;border-radius:7px;cursor:pointer}
.access-actions {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}
.access-primary,.access-signup {border:0;min-height:48px;border-radius:9px;padding:12px 18px;font:inherit;font-size:15px;font-weight:750;cursor:pointer;text-align:center}
.access-primary {background:#15c9df;color:#042b41;box-shadow:0 5px 14px #16c9df24}.access-signup {background:#24cc91;color:#042c20}
.access-primary:hover {background:#42dfed}.access-signup:hover {background:#52e0ae}.access-primary:disabled {opacity:.65;cursor:wait}
.access-status {font-size:11px!important;line-height:1.5;color:#536c7c;margin:16px 0 0}
.access-secondary {margin:24px 0 0;padding-top:20px;border-top:1px solid #d9e5ed;font-size:13px;line-height:1.6;color:#506979}.access-secondary a {font-weight:700;color:#075e93;text-underline-offset:3px}
.access-values {display:flex;gap:20px;flex-wrap:wrap;justify-content:center;margin:22px auto 0;font-size:12px;color:#adcbdc}
.access-code {display:grid;gap:10px}.access-code label {margin:0}.access-code .input {letter-spacing:.06em;text-transform:uppercase}.access-code #gameCodeHelp {font-size:12px;line-height:1.6;margin:0 0 10px;color:#526b7d}.access-code #gameCodeStatus {min-height:24px;color:#8d2535;font-size:14px;line-height:1.5;margin:2px 0 0}
.access-player-note {background:#eaf5fa;border:1px solid #d2e6ef;padding:16px;border-radius:12px;margin:18px 0 0;font-size:14px}.access-player-note p {margin:6px 0 0;font-size:13px;line-height:1.6;color:#4d697a}
.access-student .access-character img {max-width:255px}
@media(max-width:1000px) {.access-scene {gap:12px;padding:24px}.access-intro h1 {font-size:30px}.access-features {gap:12px;margin-top:20px}.access-fields {grid-template-columns:1fr}.access-form {padding:28px}.access-header>p {display:none}}
@media(max-width:720px) {
 .access-entry {padding:16px 12px;min-height:calc(100dvh - 80px)}.access-header {gap:10px;margin-bottom:16px}.access-brand img {width:38px;height:38px}.access-brand b {font-size:16px}.access-brand small {font-size:7px;letter-spacing:.1em}.access-switch {font-size:12px;padding:9px 10px}
 .access-shell {grid-template-columns:1fr;max-width:480px;border-radius:18px}.access-scene {grid-template-columns:minmax(0,1fr) minmax(100px,.68fr);gap:16px;padding:24px 20px 20px;align-items:start}.access-intro h1 {font-size:clamp(26px,5.9vw,36px);margin:10px 0}.access-intro>p {font-size:12px;line-height:1.6}.access-features {display:none}.access-kicker {font-size:8px;letter-spacing:.09em}.access-character {align-self:start;gap:10px}.access-character figcaption {padding:10px;font-size:10px;border-radius:12px 12px 2px 12px}.access-character figcaption strong {font-size:12px}.access-character figcaption span {display:none}.access-character img {border-radius:0;box-shadow:none}.access-scene-note {font-size:11px;margin-top:0}
 .access-form {padding:26px 22px}.access-form h2 {font-size:26px}.access-description {font-size:13px;margin-bottom:20px}.access-fields {grid-template-columns:1fr;gap:16px}.access-values {gap:10px 16px;font-size:10px;max-width:420px}.access-header {max-width:480px}.access-actions {gap:10px}.access-secondary {font-size:12px}
}
@media(max-width:360px) {.access-header {flex-wrap:wrap}.access-switch {margin-left:auto}.access-scene {padding:20px 16px;gap:10px}.access-form {padding:24px 18px}.access-intro h1 {font-size:25px}.access-actions {grid-template-columns:1fr}.access-primary,.access-signup {width:100%}}
@media(prefers-reduced-motion:reduce) {.access-entry * {scroll-behavior:auto;transition:none;animation:none}}

/* Full figures are integrated into the scene; never framed or zoom-cropped. */
.access-character img,.access-student .access-character img {max-width:320px;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain;object-position:center;border-radius:0;box-shadow:none;padding:6px;}
@media(max-width:720px){.access-scene{grid-template-columns:minmax(0,1fr) minmax(120px,.85fr)}.access-character img{max-height:290px}.access-character{align-self:center}}
