/* =========================================================
   SCREEN: Public academy / authentication / public story
   Roots: body.p-academy-public:is(.p-auth,.p-site), body.p-public-story
   PHP: app/layout.php (explicit guest routes only)
   Scope: Before login; game/account/control panel excluded.
   Build: copy source verbatim to assets/public-academy.css.
   ========================================================= */
@layer screens {
/* The real story wrapper must sit ABOVE the decorative fixed backdrop. */
body.p-public-story .public-shell { position:relative; z-index:1; width:min(1180px,calc(100% - 40px)); margin:0 auto; }
body.p-public-story .story-season { padding:28px; margin:28px 0; background:#f8faff; border:1px solid #d4def0; border-radius:24px; }
body.p-public-story .story-card { background:#fff; color:#243550; }
body.p-public-story .story-card img { display:block; width:100%; height:auto; min-height:0; aspect-ratio:16/9; object-fit:cover; }
body.p-public-story .story-card :is(h3,a) { color:#20365e; }
body.p-public-story .story-card p { color:#455671; }
body.p-public-story .chapter-page { background:#fff; }
body.p-public-story .chapter-reading { width:min(68ch,calc(100% - 48px)); margin:0 auto; padding:40px 0; color:#25364e; }
body.p-public-story .chapter-reading .story-copy { font:400 1.125rem/1.9 Georgia,serif; color:#25364e; }
body.p-public-story .chapter-reading .speaker { color:#4b5c79; }
body.p-public-story .chapter-hero img { height:auto; aspect-ratio:3/2; }
@media(max-width:680px) {
 body.p-public-story .public-shell { width:calc(100% - 24px); }
 body.p-public-story .story-season { padding:18px; }
 body.p-public-story .story-grid { grid-template-columns:1fr; }
 body.p-public-story .chapter-reading { width:calc(100% - 36px); padding:28px 0; }
 body.p-public-story .chapter-reading .story-copy { font-size:1.0625rem; line-height:1.85; }
}
/* Paired foreground/background values: never inherit inverse text into a light panel. */
body.p-public-story .site-nav a[aria-current='page'],
body.p-public-story .site-nav a[aria-current='page']:hover {
 color:#24365d; background:#e8edff; border-color:#c0cced;
}
body.p-academy-public:is(.p-auth,.p-site) .panel .support-list,
body.p-academy-public:is(.p-auth,.p-site) .panel .support-list :is(li,p,span,strong) {
 color:#344666;
}
body.p-academy-public:is(.p-auth,.p-site) :is(input,select,textarea) { color-scheme:light; }
body.p-academy-public:is(.p-auth,.p-site) :is(input:not([type='checkbox']):not([type='radio']):not([type='hidden']),select,textarea) {
 border-radius:12px; color:#1e2e50; background-color:#fff;
}
body.p-academy-public:is(.p-auth,.p-site) :is(input,textarea)::placeholder { color:#586780; opacity:1; }
body.p-academy-public:is(.p-auth,.p-site) select option { color:#1e2e50; background:#fff; }
body.p-academy-public:is(.p-auth,.p-site) input:-webkit-autofill { -webkit-text-fill-color:#1e2e50; caret-color:#1e2e50; }
body.p-academy-public:is(.p-auth,.p-site) :is(input,select,textarea):disabled { color:#4b5970; background-color:#edf0f7; opacity:1; }
body.p-academy-public:is(.p-auth,.p-site) :is(fieldset,.auth-choice-group,.auth-duo-options) { border-radius:14px; }
body.p-academy-public:is(.p-auth,.p-site) :is(.panel,.c-card)::before,
body.p-academy-public:is(.p-auth,.p-site) :is(.panel,.c-card)::after { border-radius:inherit; }
body.p-academy-public:is(.p-auth,.p-site),body.p-public-story {
 --academy-ink:#192850; --academy-panel:rgba(251,252,255,.96);
 --academy-line:rgba(197,211,244,.8); --academy-shadow:0 22px 65px rgba(17,34,71,.17);
 --surface-panel:var(--academy-panel); --surface-card:var(--academy-panel);
 --border-panel:var(--academy-line); --border-card:var(--academy-line);
 --accent-primary:#5a69f5; --accent-secondary:#bd9be9;
 margin:0; color:var(--academy-ink); min-height:100svh;
 background:#eaf0fa url('/assets/academy-city.webp') center top/cover fixed no-repeat;
 font-family:var(--font-body,"Manrope",sans-serif);
}
body.p-academy-public:is(.p-auth,.p-site)::before,body.p-public-story::before {
 content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
 width:auto;height:auto;filter:none;opacity:1;
 background:linear-gradient(180deg,rgba(9,26,73,.66),rgba(39,67,115,.10) 240px,rgba(227,236,250,.82) 620px,rgba(238,242,252,.97));
}
body.p-academy-public:is(.p-auth,.p-site)::after { content:none; }
body.p-academy-public:is(.p-auth,.p-site) .site-shell,body.p-public-story .page-shell { position:relative; z-index:1; width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:0 0 32px; }
body.p-academy-public:is(.p-auth,.p-site) .site-topbar,body.p-public-story .site-header {
 display:flex; align-items:center; justify-content:space-between; gap:20px;
 margin:0 0 36px; padding:22px 0; border:0; border-bottom:1px solid rgba(255,255,255,.28);
 background:transparent; box-shadow:none; border-radius:0; backdrop-filter:none;
}
body.p-academy-public:is(.p-auth,.p-site) .brand,body.p-academy-public:is(.p-auth,.p-site) .brand-copy strong,body.p-academy-public:is(.p-auth,.p-site) .brand-copy span,
body.p-public-story .site-brand,body.p-public-story .site-brand strong,body.p-public-story .site-brand span { color:white; }
body.p-academy-public:is(.p-auth,.p-site) .brand-mark,body.p-public-story .site-brand__mark { border-radius:50%; box-shadow:0 0 20px rgba(164,210,255,.5); }
body.p-academy-public:is(.p-auth,.p-site) .site-nav,body.p-public-story .site-nav { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
body.p-academy-public:is(.p-auth,.p-site) .site-nav a,body.p-public-story .site-nav a {
 color:white; font-size:.86rem; min-height:42px; padding:10px 13px; border:1px solid transparent;
 border-radius:999px; text-decoration:none; background:transparent;
}
body.p-academy-public:is(.p-auth,.p-site) .site-nav a:hover,body.p-public-story .site-nav a:hover { background:rgba(255,255,255,.14); }
body.p-academy-public:is(.p-auth,.p-site) .site-nav .nav-cta,body.p-public-story .site-nav a[href='/register.php'] {
 background:linear-gradient(110deg,#875cff,#416aff 60%,#55cffa); border-color:rgba(255,255,255,.7); color:white;
 box-shadow:0 0 18px rgba(146,172,255,.35);
}
body.p-academy-public:is(.p-auth,.p-site) .page-intro { background:none; border:0; box-shadow:none; padding:16px 0 26px; margin:0; }
body.p-academy-public:is(.p-auth,.p-site) .page-intro h1 { color:white; font-family:var(--font-heading); font-size:clamp(2.4rem,5vw,4rem); line-height:1.05; text-shadow:0 2px 20px #253d76; }
body.p-academy-public:is(.p-auth,.p-site) .page-intro .eyebrow { color:#ebedff; background:rgba(31,55,103,.45); border-color:rgba(255,255,255,.3); }
body.p-academy-public:is(.p-auth,.p-site) .page-lead { color:#fff; max-width:760px; line-height:1.65; text-shadow:0 1px 9px #29436d; }
body.p-academy-public:is(.p-auth,.p-site) .panel,body.p-academy-public:is(.p-auth,.p-site) .c-card,body.p-public-story .content-hero,body.p-public-story .chapter-page,
body.p-public-story .feature-section,body.p-public-story .story-article,body.p-public-story .chapter-article,body.p-public-story .chapter-card,body.p-public-story .story-cta {
 border:1px solid var(--academy-line); background:var(--academy-panel); border-radius:24px; box-shadow:var(--academy-shadow); color:var(--academy-ink);
}
body.p-academy-public:is(.p-auth,.p-site) .panel { backdrop-filter:blur(12px); }
body.p-academy-public:is(.p-auth,.p-site) .panel h2,body.p-public-story h1,body.p-public-story h2 { font-family:var(--font-heading); }
body.p-academy-public:is(.p-auth,.p-site) .panel p,body.p-academy-public:is(.p-auth,.p-site) .panel label { line-height:1.6; }
body.p-academy-public:is(.p-auth,.p-site) .button,body.p-academy-public:is(.p-auth,.p-site) .auth-button,body.p-public-story .primary-link {
 background:linear-gradient(110deg,#825bfa,#4264f7 65%,#43bdec); color:#fff; border:1px solid rgba(255,255,255,.9);
 box-shadow:0 6px 20px rgba(69,91,195,.23); border-radius:999px; min-height:46px;
}
body.p-academy-public:is(.p-auth,.p-site) .button-ghost,body.p-public-story .secondary-link { background:#edf1ff; color:#30447b; border:1px solid #c5d1f3; border-radius:999px; }
body.p-academy-public:is(.p-auth,.p-site) .auth-grid { max-width:1040px; margin:0 auto; grid-template-columns:minmax(0,1.1fr) minmax(280px,.8fr); gap:28px; align-items:start; }
body.p-academy-public:is(.p-auth,.p-site) .auth-panel { padding:30px; }
body.p-academy-public:is(.p-auth,.p-site) .auth-panel h2 { margin:8px 0 14px; font-size:2rem; }
body.p-academy-public:is(.p-auth,.p-site) .auth-kicker { letter-spacing:.14em; font-size:.72rem; color:#5964a4; text-transform:uppercase; }
body.p-academy-public:is(.p-auth,.p-site).auth-page-login .site-topbar { margin-bottom:18px; }
body.p-academy-public:is(.p-auth,.p-site).auth-page-login .page-intro { padding:0 0 18px; }
body.p-academy-public:is(.p-auth,.p-site).auth-page-login .page-intro h1 { margin:6px 0 10px; font-size:clamp(2.3rem,4vw,3rem); }
body.p-academy-public:is(.p-auth,.p-site).auth-page-login .page-lead { margin:0; font-size:.9rem; }
body.p-academy-public:is(.p-auth,.p-site).auth-page-login .auth-panel { padding:24px; }
body.p-academy-public:is(.p-auth,.p-site).auth-page-login .auth-panel h2 { font-size:1.8rem; }
body.p-academy-public:is(.p-auth,.p-site) .auth-field input:not([type='checkbox']),body.p-academy-public:is(.p-auth,.p-site) .auth-field select,body.p-academy-public:is(.p-auth,.p-site) .auth-field textarea {
 background:#fff; color:#1e2e50; border:1px solid #bac9e6; border-radius:12px; min-height:48px; font-size:16px;
}
body.p-academy-public:is(.p-auth,.p-site) .auth-field input:focus { border-color:#6d73f4; box-shadow:0 0 0 3px rgba(120,116,244,.15); }
body.p-academy-public:is(.p-auth,.p-site) .auth-check { background:#f1f4fe; border-color:#d8e1f3; }
body.p-academy-public:is(.p-auth,.p-site) .auth-aside-visual { position:relative; overflow:hidden; padding:0; border-radius:26px; }
body.p-academy-public:is(.p-auth,.p-site) .auth-aside-visual img { display:block; width:100%; height:570px; object-fit:cover; object-position:50% 15%; }
body.p-academy-public:is(.p-auth,.p-site) .auth-hero-caption { background:rgba(25,42,83,.85); color:white; border-color:rgba(255,255,255,.35); }
body.p-academy-public:is(.p-auth,.p-site) .auth-hero-caption :is(strong,span) { color:white; }
body.p-academy-public:is(.p-auth,.p-site) .error-list,body.p-academy-public:is(.p-auth,.p-site) .flash-error { color:#842845; background:#fff0f3; border-color:#e9b8c6; }
body.p-academy-public:is(.p-auth,.p-site) .flash-success { background:#effaf4; color:#1f6543; }
body.p-academy-public:is(.p-auth,.p-site) .site-footer,body.p-public-story .site-footer {
 margin-top:38px; padding:24px; background:rgba(249,251,255,.92); border:1px solid var(--academy-line); border-radius:20px; color:#46587b; box-shadow:none;
}
body.p-academy-public:is(.p-auth,.p-site) .site-footer a,body.p-public-story .site-footer a { color:#354a88; }
body.p-public-story .content-hero { overflow:hidden; padding:clamp(24px,4vw,48px); margin-bottom:28px; }
body.p-public-story .chapter-hero img { height:auto; min-height:0; max-height:360px; aspect-ratio:3/2; object-fit:cover; }
body.p-public-story .breadcrumbs { color:white; text-shadow:0 1px 5px #243b67; }
body.p-public-story .breadcrumbs a { color:white; }
body.p-public-story .feature-section,body.p-public-story .story-cta { padding:clamp(24px,4vw,42px); margin:28px 0; }
body.p-public-story .feature-section--dark { background:#253a65; color:white; }
body.p-public-story .feature-section--dark :is(h2,h3,p) { color:inherit; }
body.p-public-story .story-copy { line-height:1.9; font-size:1.05rem; }
body.p-public-story .story-copy--dialogue,body.p-public-story .story-copy--voice { border-left:3px solid #a59aee; padding-left:18px; }
:is(body.p-academy-public:is(.p-auth,.p-site),body.p-public-story) :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #8c7af4; outline-offset:4px; }
@media(max-width:900px) {
 body.p-academy-public:is(.p-auth,.p-site) .site-topbar,body.p-public-story .site-header { align-items:flex-start; flex-wrap:wrap; gap:16px; }
 body.p-academy-public:is(.p-auth,.p-site) .auth-grid { grid-template-columns:minmax(0,1fr) minmax(240px,.65fr); gap:20px; }
 body.p-academy-public:is(.p-auth,.p-site) .auth-aside-visual img { height:510px; }
}
@media(max-width:680px) {
 body.p-academy-public:is(.p-auth,.p-site),body.p-public-story { background-attachment:scroll; background-size:auto 100svh; background-position:55% top; }
 body.p-academy-public:is(.p-auth,.p-site) .site-shell,body.p-public-story .page-shell { width:calc(100% - 28px); }
 body.p-academy-public:is(.p-auth,.p-site) .site-topbar,body.p-public-story .site-header { padding:18px 0; margin-bottom:18px; }
 body.p-academy-public:is(.p-auth,.p-site) .brand-copy span { display:none; }
 body.p-academy-public:is(.p-auth,.p-site) .site-nav,body.p-public-story .site-nav { width:100%; gap:3px; }
 body.p-academy-public:is(.p-auth,.p-site) .site-nav a,body.p-public-story .site-nav a { font-size:.74rem; padding:10px 9px; }
 body.p-academy-public:is(.p-auth,.p-site) .page-intro { padding:8px 5px 22px; }
 body.p-academy-public:is(.p-auth,.p-site) .page-intro h1 { font-size:2.5rem; }
 body.p-academy-public:is(.p-auth,.p-site) .auth-grid { display:flex; flex-direction:column; }
 body.p-academy-public:is(.p-auth,.p-site) .auth-panel { width:100%; padding:24px 20px; }
 body.p-academy-public:is(.p-auth,.p-site) .auth-aside-visual { width:100%; }
 body.p-academy-public:is(.p-auth,.p-site) .auth-aside-visual img { height:260px; object-position:50% 22%; }
 body.p-academy-public:is(.p-auth,.p-site) .auth-hero-caption { position:relative; inset:auto; margin:0; border-radius:0; }
 body.p-academy-public:is(.p-auth,.p-site) .site-footer,body.p-public-story .site-footer { padding:20px; }
 body.p-public-story .feature-grid,body.p-public-story .system-list { grid-template-columns:1fr; }
 body.p-public-story .content-hero { padding:24px 20px; }
}
@media(prefers-reduced-motion:reduce) { :is(body.p-academy-public:is(.p-auth,.p-site),body.p-public-story) { scroll-behavior:auto; } }
}
