#town[hidden],#town [hidden]{display:none!important}
#town{position:absolute;inset:0;z-index:20;overflow:hidden;background:#090612;color:#eee0c5;font:14px/1.5 CampPixel,monospace;isolation:isolate}
#town .town-world{display:block;width:100%;height:100%;touch-action:none;image-rendering:pixelated}
#town .town-actors{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;image-rendering:pixelated}
#town :is(.town-header,.town-minimap,.town-actions){z-index:5}#town .town-panel{z-index:6}
#town button{font:inherit;color:#e5d2af;min-height:44px;padding:9px 15px;cursor:pointer;border:1px solid #8c7048;border-radius:0;background:linear-gradient(#362e29,#17141a);box-shadow:inset 0 1px #e4bd7133,inset 0 -2px #0008,0 2px 5px #0008;text-shadow:0 2px #000}
#town button:hover{filter:brightness(1.2)}#town button:active{transform:translateY(1px)}#town :focus-visible{outline:2px solid #ffe2a3;outline-offset:3px}
#town .town-header{position:absolute;top:0;left:0;right:0;padding:16px max(16px,env(safe-area-inset-right));display:flex;align-items:flex-start;gap:18px;background:linear-gradient(#080610e8,transparent);pointer-events:none}
#town .town-header>*{pointer-events:auto}#town .town-header small{color:#c3a365;letter-spacing:3px;font-size:9px}#town .town-header h2{font:24px/1.3 CampPixel,monospace;margin:2px 0;color:#ffe7b2;text-shadow:0 2px 0 #000,0 0 8px #000}#town [data-town-status]{font-size:12px;color:#c4b7d1;text-shadow:0 1px 0 #000,0 0 6px #000}#town [data-music]{margin-left:auto;width:44px}
#town .town-labels{position:absolute;inset:0;pointer-events:none;z-index:2}#town .town-labels button{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;white-space:nowrap;background:transparent;border:0;box-shadow:none;font-size:14px;text-shadow:0 2px 3px #000,1px 0 #000,-1px 0 #000;transition:opacity .15s}
#town .town-labels button:active{transform:translate(-50%,calc(-50% + 1px))}
#town .town-minimap{position:absolute;right:18px;bottom:82px;padding:3px;background:#110d19;border:1px solid #9e7e4c;box-shadow:0 3px 12px #0008}
#town .town-minimap canvas{display:block;width:168px;height:112px;image-rendering:pixelated;cursor:crosshair}
#town .town-zoom{display:flex;position:absolute;right:100%;bottom:-1px;gap:3px;margin-right:6px}#town .town-zoom button{width:44px;padding:4px;font-size:20px}#town .town-places{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#town .town-zoom{right:-1px;bottom:100%;margin:0 0 5px}
#town .town-actions{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:6px;white-space:nowrap}
#town .town-panel{position:absolute;bottom:76px;left:18px;width:min(400px,calc(100% - 36px));max-height:65%;overflow:auto;padding:14px;background:linear-gradient(135deg,#211827f5,#0c0a12fa);border:1px solid #b58d4d;box-shadow:inset 0 0 0 3px #44352a,0 12px 50px #000b}
#town .town-panel>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;border-bottom:1px solid #7d65444d;padding-bottom:9px}#town [data-close]{width:44px;font-size:24px;padding:0}
#town .town-chat-log{height:180px;overflow-y:auto;overflow-wrap:anywhere;font:14px/1.7 system-ui,sans-serif}#town .town-chat-log p{margin:5px 0}#town .town-chat-log b{color:#dfc18b}#town .town-tabs{display:flex;gap:6px}#town [aria-pressed=true]{border-color:#ddbc77;background:linear-gradient(#725735,#312237)}
#town form{display:flex;gap:6px;margin-top:12px}#town input{flex:1;min-width:0;min-height:44px;background:#0b0812;color:#f0e2ca;border:1px solid #7b6353;padding:8px 10px;font:14px system-ui}#town .town-party>button{margin:5px 8px 5px 0}#town .town-party h3{margin:18px 0 8px;font-size:14px;color:#d7ba81}#town .town-muted{color:#aa99b2}
#pixel-camp .pb-scene .pb-town-entry{position:absolute;z-index:1700;transform:translate(-50%,-50%);min-width:72px;min-height:44px;padding:8px;color:#ffe4aa;border:1px solid #987544;background:linear-gradient(#302926e8,#141018e8);font:16px/1.4 CampPixel,monospace;box-shadow:inset 0 1px #ffe5a52b,0 2px 5px #000a;text-shadow:0 2px #000;cursor:pointer}
.in-town #pixel-camp>.pb-content{visibility:hidden}
.pb-camp-music label[data-volume]{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:10px}.pb-camp-music label[data-volume] input{grid-column:1/-1;width:100%;min-height:30px}.pb-camp-music .pb-music-credit{display:block;line-height:1.6;margin-top:12px;font:10px/1.6 system-ui;color:#a79ab5}.pb-camp-music .pb-music-credit a{color:#d0b983}
#modal-pause .pb-camp-music{margin-top:16px;padding:14px 0 0;border-top:1px solid #79603e66}#modal-pause .pb-camp-music>button{min-height:44px}#modal-pause .modal-box{max-height:90dvh;overflow-y:auto}
/* Account controls keep their own layout inside the camp menu. */
#pixel-camp .pb-account{display:grid;grid-template-columns:minmax(0,1fr) minmax(72px,auto);gap:12px;right:12px;top:82px;width:min(320px,calc(100% - 24px));max-height:calc(100% - 100px);overflow-y:auto;padding:16px;box-sizing:border-box}
#pixel-camp .pb-account #lobby-user,#pixel-camp .pb-account #lang-select,#pixel-camp .pb-account #btn-login-switch,#pixel-camp .pb-account #claim-nudge,#pixel-camp .pb-account #btn-fx-settings{grid-column:1/-1;width:100%;box-sizing:border-box}
#pixel-camp .pb-account #lobby-user{padding-right:4px;overflow-wrap:anywhere}#pixel-camp .pb-account .mini-btn{min-height:44px;justify-content:center}
#pixel-camp .pb-account #claim-nudge{position:relative!important;inset:auto!important;padding:14px 48px 14px 12px;min-height:0;line-height:1.65;text-align:left;overflow-wrap:anywhere}
#pixel-camp .pb-account #claim-nudge-x{position:absolute!important;inset:4px 4px auto auto!important;transform:none!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;margin:0!important;padding:0!important;display:grid;place-items:center;background:transparent!important;border:0!important;box-shadow:none!important;font:20px/1 system-ui!important;color:#ceb78e}
#pixel-camp .pb-account #claim-nudge-x:before,#pixel-camp .pb-account #claim-nudge-x:after{display:none!important}
@media(max-width:600px){#town .town-header{padding:12px;gap:12px}#town .town-header h2{font-size:22px}#town .town-minimap{right:12px;bottom:76px}#town .town-minimap canvas{width:120px;height:80px}#town .town-actions{width:calc(100% - 24px);gap:5px}#town .town-actions button{flex:1;padding:9px 8px;font-size:13px}#town .town-panel{left:12px;width:calc(100% - 24px);bottom:72px}.pb-town-entry{font-size:12px}}
@media(max-height:500px){#town .town-header{padding:8px 12px}#town .town-header small{display:none}#town .town-header h2{font-size:18px}#town .town-minimap{bottom:70px;right:12px}#town .town-minimap canvas{width:105px;height:70px}#town .town-panel{max-height:calc(100% - 90px);bottom:65px}#town .town-chat-log{height:100px}}

#town button:not([data-service]){position:relative;isolation:isolate;border:0;background:transparent}#town button:not([data-service]):before{content:"";position:absolute;inset:0;z-index:-1;background:url("../assets/camp/pixel-b/controls.png") 50.48% 11.91%/105.08% 259.5% no-repeat;image-rendering:pixelated;filter:saturate(.15) brightness(.38)}#town [aria-pressed=true]:before{filter:saturate(.5) brightness(.8)}

#town .town-tabs button[aria-pressed=true]:before{filter:none}#pixel-camp .pb-scene .pb-town-entry{z-index:40;background:transparent;border:0;box-shadow:none;text-shadow:0 2px 3px #000,1px 0 #000,-1px 0 #000}

#pixel-camp .pb-scene .pb-town-entry{width:76px;height:88px;min-width:76px;min-height:88px;padding:0;transform:translate(-50%,-100%);overflow:visible;background:none;border:0;box-shadow:none}#pixel-camp .pb-town-entry img{display:block;width:76px;height:88px;object-fit:contain;image-rendering:pixelated;pointer-events:none}#pixel-camp .pb-town-entry span{position:absolute;left:-12px;right:-12px;bottom:-12px;font:13px/1.3 CampPixel,monospace;color:#ffe4a8;white-space:nowrap;text-align:center;text-shadow:0 2px 2px #000,1px 0 #000,-1px 0 #000;pointer-events:none}#town .town-stall-labels{position:absolute;inset:0;z-index:2;pointer-events:none}#town .town-stall-labels button{position:absolute;transform:translate(20px,-12px);max-width:180px;min-height:44px;padding:9px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:auto;color:#f1d295;font:13px CampPixel,monospace;border:1px solid #8f7544;background:#211d15df;box-shadow:inset 0 1px #b19b5f44;text-shadow:0 2px #000}#town .town-stall-labels button:before{display:none}

#pixel-camp .pb-scene .pb-town-entry{height:104px;min-height:104px}#pixel-camp .pb-town-entry span{bottom:0}
