#screenLanding{background:linear-gradient(#ffffff12,#ffffff26),url('castle-exterior.jpg') center/cover fixed!important;isolation:isolate;min-height:100vh}
#screenLanding .landingCard{background:transparent;border:0;box-shadow:none;padding:28px 24px;color:#102944;text-shadow:0 2px 2px #fff,0 4px 12px #fff}
#screenLanding .epicTitle{filter:drop-shadow(0 5px 5px #122b4755)}
#screenLanding .titleLine1{color:#102944;text-shadow:0 2px 0 #fff,0 7px 18px #ffffff}
#screenLanding .titleLine2{color:#563500;background:none;-webkit-text-fill-color:initial;text-shadow:0 2px 2px #fff}
#screenLanding .landingLogoImg{filter:drop-shadow(0 12px 10px #10294477)}
#screenLanding .landingCard button,#screenLanding .landingCard a{box-shadow:0 7px 14px #132c4866}
#screenLanding .featureList,#screenLanding .tagline,#screenLanding .socialLinks{color:#102944}
#screenLanding .landingBg{opacity:1;background:none;pointer-events:none}
#screenLanding .energyOrb{opacity:.28}
.landingKnight{position:fixed;bottom:2vh;left:max(1vw,calc(50% - 650px));width:clamp(160px,24vw,350px);z-index:2;pointer-events:none;opacity:1;transition:opacity .65s ease;filter:drop-shadow(0 14px 10px #10294466)}
.landingKnight img{width:100%;height:auto;display:block}.landingKnight.fading{opacity:0}.landingKnight.right{left:auto;right:max(1vw,calc(50% - 650px))}
.landingMotion{position:absolute;right:12px;top:12px;z-index:4;background:#152e48;color:#fff;border:1px solid #e9c372;border-radius:20px;padding:10px 14px;min-height:44px;box-shadow:0 4px 10px #0004}
#playersList{max-height:45vh;overflow:auto;overscroll-behavior:contain}
@media(max-width:1000px){.landingKnight,.landingKnight.right{position:relative;left:auto;right:auto;bottom:auto;width:150px;margin:40px auto -30px}#screenLanding .center{padding-top:0}#screenLanding .landingCard{padding-top:0}#screenLanding .epicLogo{margin:10px auto}}
@media(prefers-reduced-motion:reduce){.landingKnight{transition:none}#screenLanding *{animation:none!important}}
.searchableChoices [hidden]{display:none!important}.searchableChoices{max-height:48vh;overflow:auto}.searchableChoices .choiceCardPreview{display:none}
.choiceContent label,.battleChoiceContent label{display:block;text-align:left;margin:12px 0}.choiceContent input[type=search],.battleChoiceContent input[type=search]{display:block;width:100%;min-height:44px;padding:10px;color:#14283f;background:white;border:2px solid #c9a953;border-radius:8px}
#screenLanding .epicBtn.host{background:linear-gradient(#314b70,#162d49);border-color:#edc46a;color:#ffe08e;text-shadow:0 2px 2px #0008;box-shadow:inset 0 2px 1px #ffffff40,0 8px 0 #102034,0 14px 20px #132c4870}
#screenLanding .epicBtn.join{background:linear-gradient(#137963,#064b43);border-color:#70ead1;color:#fff;text-shadow:0 2px 2px #0008;box-shadow:inset 0 2px 1px #ffffff40,0 8px 0 #073d36,0 14px 20px #132c4870}
#screenLanding .btnSub{opacity:1}#screenLanding .epicTagline,#screenLanding .socialText{color:#172f4c;text-shadow:0 1px 2px #fff,0 0 8px #fff}
#screenLanding .socialLink{background:#17304e;color:#fff;text-shadow:none}
@media(max-width:1000px){.landingKnight,.landingKnight.right{margin:56px auto 0}#screenLanding{display:flow-root}#screenLanding:not(.active){display:none}}

/* Gentle movement of the image only: stable layout and feet, unchanged pose masters. */
.landingKnight img{transform-origin:50% 100%;animation:landingKnightDrift 8.5s ease-in-out infinite alternate}
.landingKnight.motionPaused img{animation-play-state:paused}
@keyframes landingKnightDrift{from{transform:scale(.98)}to{transform:scale(1.035)}}
@media(prefers-reduced-motion:reduce){.landingKnight img{animation:none!important;transform:none}}
/* Approach the same gate: a tighter camera framing, shared by both access screens. */
.gateScene{position:relative;isolation:isolate;min-height:100vh;background:#b6d7ed!important;overflow-x:clip}
.gateScene::before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(#10233c15,#10233c30),url('castle-exterior.jpg') center 43%/cover;transform:scale(1.65);pointer-events:none}
#screenHostLogin .loginBg{background:none;z-index:0;pointer-events:none;overflow:hidden}
.gateScene .loginCard,.gateScene .joinCard{position:relative;z-index:1;background:linear-gradient(145deg,#183552f2,#10243cf5);border:2px solid #d9b766;box-shadow:inset 0 1px 0 #fff4,0 18px 40px #0a203c80;border-radius:24px}
.gateScene .loginSub,.gateScene .joinSubtext,.gateScene .loginFooter,.gateScene .joinTips{color:#e5ecf5}
.gateScene .loginLogoImg,.gateScene .joinLogoImg{filter:drop-shadow(0 7px 6px #0007)}
.gateScene .loginInput,.gateScene .joinInput{background:#f5f8fc;color:#152c47;border:2px solid #809bb5;box-shadow:inset 0 2px 5px #18355220}
.gateScene input::placeholder{color:#546579}
.gateScene input:focus-visible,.gateScene button:focus-visible,.gateScene a:focus-visible{outline:3px solid #ffdc7a;outline-offset:4px}
.gateScene .loginBtn.primary,.gateScene .joinBtn.primary{background:linear-gradient(#b78325,#79520d);color:#fff;border:1px solid #ffe39e;box-shadow:inset 0 2px 1px #fff5,0 5px 0 #513707,0 10px 14px #0004;text-shadow:0 1px 2px #0008}
@media(max-width:1000px){.gateScene .landingKnight,.gateScene .landingKnight.right{width:115px;margin:58px auto 12px}.gateScene .center{padding:0 12px 24px}.gateScene.joinScreen{display:flex;flex-direction:column;justify-content:flex-start;padding:0 12px 24px}.gateScene .joinCard,.gateScene .loginCard{width:100%;max-width:440px;margin:0 auto;padding:24px}.gateScene::before{transform:scale(1.3)}}
@media(prefers-reduced-motion:reduce){.gateScene .cannonBall{animation:none!important}.gateScene .landingKnight{transition:none}}
.gateScene .landingMotion{background:#152e48!important;color:#fff!important}
.gateScene .loginBack a,.gateScene .joinBack a,.gateScene .joinTips,.gateScene .loginFooter p,.gateScene .comingSoonText,.gateScene .loginField label{color:#dce7f4}
.gateScene .joinHeroText h2{font-size:clamp(1.15rem,4.5vw,1.5rem)}
/* M4-P5 Halloween entrance trial (Codex-approved masters concept-art/m4-p5-production/masters/halloween-exterior-{desktop,phone}-v1.png,
   re-encoded at native size as halloween-exterior-{desktop,phone}.webp; provenance in evidence/m4-p5-entrance/). Only while
   Halloween is already the active theme (existing theme rules; nothing new decides it). The menu shows the night exterior as
   one fixed viewport layer over navy (the daylight white wash is not layered on it); host login and join reuse the same
   files through the existing closer gate framing (same scale, no tint, navy fallback). Portrait phones get the portrait art;
   larger and landscape layouts the desktop art. The daylight text treatment becomes cream and gold with dark shadows. */
body.theme-halloween #screenLanding{background:#10295e!important}
body.theme-halloween #screenLanding::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:url('halloween-exterior-desktop.webp') center/cover no-repeat}
body.theme-halloween .gateScene{background:#10295e!important}
body.theme-halloween .gateScene::before{background:url('halloween-exterior-desktop.webp') center 38%/cover no-repeat}
@media (max-width:480px) and (orientation:portrait){
 body.theme-halloween #screenLanding::before{background:url('halloween-exterior-phone.webp') center top/cover no-repeat}
 body.theme-halloween .gateScene::before{background:url('halloween-exterior-phone.webp') center 40%/cover no-repeat}
}
body.theme-halloween #screenLanding .landingCard{color:#fff7e5;text-shadow:0 2px 3px #0a0a1ecc,0 0 12px #0a0a1e99}
body.theme-halloween #screenLanding .epicTitle{filter:drop-shadow(0 5px 6px #0a0a1ecc)}
body.theme-halloween #screenLanding .titleLine1{color:#fff7e5;text-shadow:0 3px 0 #1b1030,0 0 18px #0a0a1ecc}
body.theme-halloween #screenLanding .titleLine2{color:#ffcf6e;text-shadow:0 2px 2px #1b1030,0 0 14px #0a0a1ecc}
body.theme-halloween #screenLanding .featureList,body.theme-halloween #screenLanding .tagline,body.theme-halloween #screenLanding .socialLinks{color:#fff7e5}
body.theme-halloween #screenLanding .epicTagline,body.theme-halloween #screenLanding .socialText{color:#ffe3a1;text-shadow:0 1px 2px #000,0 0 10px #0a0a1ecc}
