#village-screen{position:fixed;inset:0;z-index:80;background:#121e19;color:#e7e5cf;overflow:auto;padding:28px clamp(16px,4vw,64px);font-family:inherit}#village-screen.hidden{display:none}#village-screen header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}#village-screen h1{font-size:clamp(27px,4vw,48px);margin:6px 0;letter-spacing:-1.5px}#village-screen h1 span{color:#bbcb83}#village-screen small{font-size:11px;letter-spacing:2px;color:#baca91}#village-screen p{font-size:15px;line-height:1.6;color:#b7c1b2}#village-screen button{background:#263d30;color:#e8ebd5;border:1px solid #637456;border-radius:8px;padding:14px 18px;font:600 13px inherit;cursor:pointer}#village-screen button:disabled{opacity:.45;cursor:default}.village-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px}.village-view{position:relative;align-self:start;overflow:hidden;border:1px solid #5a6b51;border-radius:12px;box-shadow:0 20px 70px #0005}#village-canvas{display:block;width:100%;aspect-ratio:1000/580;touch-action:none}.village-controls{display:block;padding:12px;background:#1b2b23;color:#c9d4b9;font-size:11px;letter-spacing:1px}.village-home{display:block;width:100%;text-align:left;margin:12px 0}.village-home strong,.village-home span{display:block}.village-home span{font-size:10px;margin-top:8px;color:#bece9c}.village-home.owned{border-color:#c6d78c!important}#village-message{min-height:52px}#village-depart{width:100%;background:#c8d18f!important;color:#1b3023!important}.village-footnote{font-size:12px!important}#shop-screen{z-index:90}@media(max-width:850px){.village-body{grid-template-columns:1fr}#village-screen{padding:18px 14px}.village-body aside{display:block}#village-homes{display:flex;gap:10px}.village-home{flex:1}#village-screen header p{display:none}}
#village-residents{display:grid;gap:6px;max-height:230px;overflow:auto;margin-bottom:20px}#village-residents button{text-align:left;font-size:12px;padding:10px 12px}#village-resident-count{font-size:12px!important}#village-talk{width:100%;background:#bdcc8b!important;color:#1c3223!important;margin-bottom:18px}#village-dialogue{position:fixed;inset:0;background:#07140bc9;z-index:85;display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(4px)}#village-dialogue.hidden{display:none}.resident-dialogue-card{width:min(620px,100%);max-height:90dvh;overflow:auto;background:#1e3428;border:1px solid #86966b;border-radius:16px;padding:26px;box-shadow:0 24px 90px #0009}#village-dialogue header{justify-content:flex-start;gap:20px;margin-bottom:12px}#resident-portrait{width:88px;height:88px;border:1px solid #798b61;border-radius:12px}#resident-name{font-size:30px;margin:8px 0}#village-screen #resident-speech{font-size:19px;line-height:1.65;color:#eee6cb;min-height:94px}.resident-choices{display:flex;flex-wrap:wrap;gap:8px}.resident-choices button{flex:1 1 42%;min-height:46px}#resident-goodbye{background:#bdcb92!important;color:#193323!important}@media(max-width:550px){.resident-dialogue-card{padding:18px}#village-screen #resident-speech{font-size:17px}.resident-choices button{font-size:12px}}

.stage-village-choice{margin-top:10px;background:#263d30!important;color:#e5e9ce!important;border:1px solid #81936b!important}#stage-choice-status{font-size:14px;line-height:1.5;color:#c0cbb4;margin:14px 0}.village-body{grid-template-columns:minmax(0,1fr) 270px;gap:20px}#village-screen{padding:20px clamp(14px,3vw,44px)}@media(max-width:850px){.village-body{grid-template-columns:1fr}}

/* Immersive village: world fills the viewport, contextual HUD only. */
#village-screen{padding:0;overflow:hidden;height:100dvh;background:#26382e}
#village-screen>.village-body,#village-screen .village-view{position:absolute;inset:0;display:block;border:0;border-radius:0;box-shadow:none}
#village-canvas{width:100%;height:100%;aspect-ratio:auto;outline:none}
#village-screen>header{position:absolute;z-index:2;top:0;left:0;right:0;padding:calc(14px + env(safe-area-inset-top)) 18px 35px;margin:0;align-items:flex-start;background:linear-gradient(#08150ee6,transparent);pointer-events:none}
#village-screen>header h1{font-size:24px;letter-spacing:-.5px;margin:0;text-shadow:0 2px 8px #000}
#village-screen>header small,#village-screen>header p{display:none}
.village-top-actions{display:flex;gap:8px;pointer-events:auto}
#village-screen .village-top-actions button{width:auto;min-height:44px;font-size:12px;padding:10px 14px;background:#172b22e8}
#village-screen .village-body aside{position:absolute;bottom:calc(64px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(430px,calc(100% - 32px));pointer-events:none;z-index:3}
#village-screen aside>small,#village-heading,#village-copy,#village-homes,#village-screen aside>h3,#village-resident-count,#village-residents,.village-footnote{display:none!important}
.village-notice{position:relative;pointer-events:auto;background:#13271ff2;border:1px solid #819174;border-radius:12px;box-shadow:0 8px 32px #0006;padding:16px 44px 16px 16px;margin-bottom:10px}
.village-notice:has(#village-message:empty){display:none}
#village-message{min-height:0;font-size:15px;line-height:1.5}
#village-message p{margin:0 0 12px;color:#eee5cc}
#village-screen #village-dismiss{position:absolute;right:4px;top:4px;padding:8px;border:0;background:transparent;font-size:23px;min-width:36px}
#village-talk,#village-interact{pointer-events:auto;width:100%;min-height:48px;background:#d3dba1!important;color:#1a3022!important;box-shadow:0 4px 20px #0005;margin:0}
#village-screen [hidden]{display:none!important}
.village-controls{position:absolute;bottom:0;left:0;right:0;text-align:center;padding:24px 12px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#08150ee6);font-size:12px;letter-spacing:0;pointer-events:none}
@media(max-width:600px){#village-screen>header{padding-left:12px;padding-right:12px;gap:8px}#village-screen>header h1{font-size:19px;padding-top:11px}.village-top-actions{gap:5px}#village-screen .village-top-actions button{font-size:10px;padding:8px 10px}.village-controls{font-size:11px}}

#village-joystick{z-index:4}#village-screen .village-body aside{bottom:calc(205px + env(safe-area-inset-bottom))}
#village-talk,#village-interact{width:auto;max-width:220px;float:right;font-size:12px}
@media(pointer:coarse){.village-controls{display:none}}
@media(max-height:500px){#village-screen .village-body aside{bottom:110px;width:min(400px,60vw)}}

body.village-active #menu,body.village-active #hud,body.village-active #stage-screen{visibility:hidden}
#village-screen{background:transparent;pointer-events:none}
#village-screen .village-view{pointer-events:none}#village-canvas{display:none}
#village-screen>header{justify-content:flex-end;background:none;padding-bottom:0}
#village-dialogue{pointer-events:auto}#village-joystick{pointer-events:auto}
