/* Saint Augustine · Chapter I rebuild, November 2026. */
.intro-screen { overflow:auto; }
.intro-screen:before { background-image:url('assets/approach-v2.webp'); background-position:center 42%; }
.intro-brand { padding:clamp(24px,5vh,50px) 0 3vh; }
.intro-brand h1 { font-size:clamp(3.45rem,7.2vw,7.7rem); }
.intro-brand>p { max-width:510px; }
.intro-inner { gap:40px; }
.intro-bottom { padding-bottom:18px; }
.account-shell { width:min(720px,100%); margin-top:25px; }
.account-panel { width:min(100%,660px); padding:26px 26px 23px; background:linear-gradient(140deg,rgba(10,23,35,.96),rgba(15,28,40,.83)); border:1px solid rgba(232,201,144,.42); box-shadow:0 24px 65px #030a0ed9; backdrop-filter:blur(24px); }
.account-panel h2 { font:normal 2rem Georgia,serif; margin:12px 0 8px; letter-spacing:-.035em; }
.account-panel p { font:normal .91rem/1.55 Georgia,serif; color:#c6cbc9; margin:0 0 16px; }
.auth-tabs { display:grid;grid-template-columns:1fr 1fr;margin-bottom:23px;border-bottom:1px solid #b99b6b66; }
.auth-tabs button { text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;padding:10px 16px;border:0;color:#9caaa9;background:none;border-bottom:2px solid transparent; }
.auth-tabs button.active { color:#f4d6a6;border-color:#d8b985; }
.auth-form { display:grid;gap:9px; }
.auth-form label { font-size:.66rem;letter-spacing:.11em;color:#d8cbad;text-transform:uppercase;margin-top:7px; }
.auth-form input { background:#f7f6f1ee;color:#17202c;border:1px solid #d9c7ad;padding:13px 15px;outline:0;border-radius:2px;min-width:0; }
.auth-form input:focus { border-color:#ffcf84;box-shadow:0 0 0 3px #ddb87355; }
.auth-form .primary { margin-top:14px;width:100%; }
.auth-error { color:#ffb9ac!important;font-size:.77rem!important;margin:0!important; }
.back-link { color:#d8cab4;border:0;background:none;padding:13px 3px;cursor:pointer;font-size:.76rem;letter-spacing:.06em; }
.back-link:hover { color:white; }
.privacy-note { color:#9da9af!important;font:normal .65rem/1.55 system-ui,sans-serif!important;margin:12px 0 0!important; }
.pov-cards { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:19px 0; }
.pov-card { padding:0;text-align:left;color:#f4e9d5;background:#1b2936;border:1px solid #c0a27b69;overflow:hidden;transition:transform .2s,background .2s,box-shadow .2s; }
.pov-card:hover,.pov-card:focus-visible { transform:translateY(-5px);background:#304052;box-shadow:0 15px 32px #0009;outline:1px solid #e4bd80; }
.pov-card img { width:100%;height:175px;object-fit:cover;object-position:50% 27%;background:radial-gradient(ellipse at 45% 65%,#655248,#1a2a36 65%);display:block; }
.pov-card span { display:block;padding:14px;min-height:99px; }
.pov-card b { font:normal 1.32rem Georgia,serif;display:block; }
.pov-card small { display:block;color:#bec8c9;font-size:.69rem;line-height:1.5;margin-top:7px; }
.session-actions { display:flex;gap:13px;align-items:center;flex-wrap:wrap; }
.session-actions .secondary { min-height:43px; }
.game-main .backdrop { animation:scene-breathe 12s ease-in-out infinite alternate; }
@keyframes scene-breathe { 0% { filter:saturate(.92) brightness(.96) } 100% { filter:saturate(1.05) brightness(1.035) } }
.stage-portrait { animation:portrait-enter .38s ease both; }
.actor-figure .actor-portrait { position:absolute;inset:0;pointer-events:none; }
.actor-portrait img,.stage-portrait img { position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom; }
.actor-portrait,.stage-portrait { isolation:isolate; }
.portrait-motion-canvas { display:block;position:absolute;pointer-events:none;z-index:1; }
.hair-motion-ready>img:first-child { visibility:hidden; }
.ambient-life { position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;mask-image:linear-gradient(to bottom,transparent 7%,#000 20%,#000 90%,transparent 100%); }
.scene-actors { z-index:2; }
.loc-tag { max-width:60%; }
.move-instruction { top:auto;bottom:76px;left:50%;transform:translateX(-50%);white-space:nowrap;opacity:.82;font-size:.6rem; }
.game-main.in-dialogue .move-instruction { display:none; }
.game-main.in-dialogue .ambient-life { opacity:.65; }
.game-main.in-dialogue .narrative { bottom:34px;max-height:53%; }
.explore-card { bottom:80px; }
.scene-actors .actor-figure { bottom:13%;height:49%;width:min(19vw,240px); }
.scene-actors .actor-figure[data-npc="true"] { width:min(18vw,225px); }
.scene-actors .actor-figure span { background:#101c27d9; }
.narrative { max-height:43%;overflow-y:auto; }
.speech { font-size:clamp(1rem,1.38vw,1.11rem); }
.hud-session { color:#e4cfaa!important;white-space:nowrap; }
.floating-actions button#quickPOV:not(.admin-tools) { display:none; }
@media(max-width:950px){ .pov-card img{height:150px} .intro-brand h1{font-size:clamp(3.1rem,9vw,5.3rem)} }
@media(min-width:1100px){
  .intro-brand { display:grid;grid-template-columns:minmax(550px,1.18fr) minmax(405px,.82fr);column-gap:40px;align-items:center;padding-top:clamp(30px,10vh,105px); }
  .intro-brand>.intro-rule,.intro-brand>.overline,.intro-brand>h1,.intro-brand>p { grid-column:1; }
  .intro-brand>.intro-rule{grid-row:1;margin:0 0 15px}
  .intro-brand>.overline{grid-row:2}
  .intro-brand>h1{grid-row:3;font-size:clamp(4.5rem,5.7vw,6.5rem);margin:12px 0}
  .intro-brand>p:first-of-type{grid-row:4;margin:14px 0}
  .intro-brand>p:last-of-type{grid-row:5}
  .account-shell{grid-column:2;grid-row:1/6;margin:0;align-self:center;width:100%}
  .account-panel{padding:22px}
  .account-panel h2{font-size:1.7rem}
  .pov-cards{gap:9px}
  .pov-card img{height:132px}
  .pov-card span{min-height:110px}
}
@media(max-width:570px){ .intro-inner{gap:25px;min-height:100svh} .intro-brand{padding-top:16px} .intro-brand h1{font-size:3.55rem} .account-panel{padding:20px 17px}.pov-cards{gap:8px}.pov-card img{height:122px}.pov-card span{padding:9px;min-height:118px}.pov-card b{font-size:1.08rem}.pov-card small{font-size:.62rem} .move-instruction{bottom:58px;font-size:.48rem;max-width:90%;white-space:normal;text-align:center}.narrative{max-height:51%}.stage-sprite{opacity:.78} }
@media(prefers-reduced-motion:reduce){.game-main .backdrop,.stage-portrait{animation:none!important}}
