.village-shell{margin-top:var(--chrome-top);height:calc(100vh - var(--chrome-top));height:calc(100dvh - var(--chrome-top));height:calc(var(--vvh,100dvh) - var(--chrome-top));background:var(--charcoal);color:var(--cream);font-family:var(--font-body);flex-direction:column;flex:none;display:flex;position:relative;overflow:hidden}.village-shell.hero-room-fixed{background:0 0}.village-ember-glow{pointer-events:none;background:radial-gradient(50% 40% at 20% 0%, color-mix(in srgb, var(--raspberry) 22%, transparent) 0%, transparent 70%), radial-gradient(60% 50% at 85% 100%, color-mix(in srgb, var(--iron-blue) 18%, transparent) 0%, transparent 70%);animation:9s ease-in-out infinite village-ember-breathe;position:absolute;inset:0}@keyframes village-ember-breathe{0%,to{opacity:.85}50%{opacity:1}}.village-content{z-index:1;flex:1;position:relative;overflow-y:auto}.village-room{opacity:0;flex-direction:column;min-height:100%;padding:4px 24px 100px;animation:.45s forwards village-room-enter;display:flex;transform:translateY(10px)}.village-shell.room-self-scrolls .village-content{overflow:hidden}.village-shell.room-self-scrolls .village-room{height:100%;min-height:0;padding-bottom:calc(var(--tabbar-h,0px) + 4px);overflow:hidden}@keyframes village-room-enter{to{opacity:1;transform:translateY(0)}}.village-room h1{font-family:var(--font-display);color:var(--cream);text-align:center;margin:24px 0 6px;font-size:28px;font-style:normal;font-weight:400}.village-room p.sub{text-align:center;color:#9fb3c8;margin:0 0 32px;font-style:italic}.village-placeholder-card{border:1px solid var(--charcoal);background:color-mix(in srgb, var(--charcoal) 35%, transparent);border-radius:3px;margin-bottom:14px;padding:18px}.home-room-tab-row{flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 20px;display:flex}.home-room-tab-btn{border:1px solid var(--charcoal);background:color-mix(in srgb, var(--charcoal) 40%, transparent);color:color-mix(in srgb, var(--cream) 65%, transparent);font-family:var(--font-body);letter-spacing:.02em;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:8px 16px 9px;font-size:13px;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.home-room-tab-btn:hover{color:var(--cream);background:color-mix(in srgb, var(--charcoal) 60%, transparent);border-color:#a0785866}.home-room-tab-btn.active{color:var(--cream);background:color-mix(in srgb, var(--charcoal) 75%, transparent);border-color:#a0785899}.home-room-tab-btn svg{stroke:currentColor;fill:none;stroke-width:1.4px;flex-shrink:0;width:18px;height:18px}.home-room-panel{border:1px solid var(--charcoal);background:color-mix(in srgb, var(--charcoal) 35%, transparent);border-radius:3px;margin-bottom:28px;padding:22px 24px}.home-room-panel-name{font-family:var(--font-display);color:var(--cream);margin:0 0 10px;font-size:22px;font-weight:400}.home-room-panel-desc{font-family:var(--font-body);color:color-mix(in srgb, var(--cream) 75%, transparent);max-width:46em;font-size:15px;font-style:italic;line-height:1.7}.home-room-panel-link{font-family:var(--font-body);letter-spacing:.06em;color:#7a9980;margin-top:16px;font-size:13px;text-decoration:none;transition:color .3s;display:inline-block}.home-room-panel-link:hover{color:var(--cream)}.village-entry-overlay{z-index:5000;opacity:1;background:#05070a;transition:opacity 1.2s;position:fixed;inset:0;overflow:hidden}.village-entry-overlay.fading{opacity:0;pointer-events:none}.village-entry-img{object-fit:cover;object-position:center 60%;width:100%;height:100%;position:absolute;inset:0}.village-entry-img-green{opacity:0;transition:opacity 2s}.village-entry-img-green.crossed{opacity:1}.village-entry-vignette{pointer-events:none;background:radial-gradient(#0000 40%,#0000008c 100%);position:absolute;inset:0}.village-entry-hint{text-align:center;font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:#ffffff8c;opacity:0;font-size:13px;font-style:italic;transition:opacity .4s;animation:1.5s .8s forwards village-entry-hint-in;position:absolute;bottom:48px;left:0;right:0}.village-entry-hint.dim{animation:none;opacity:0!important}@keyframes village-entry-hint-in{to{opacity:1}}@media (prefers-reduced-motion:reduce){.village-entry-img-green{transition:none}}
