/* The shop is the full viewport. Only transient menus and negotiations cover it. */
.em-root{--em-ink:#fff1ca;--em-brass:#dbb56c;--em-dark:#2e2426;position:relative;color:var(--em-ink);background:#2f241c;color-scheme:dark;font-family:ui-monospace,'Courier New',monospace;isolation:isolate;box-sizing:border-box}.em-root *{box-sizing:border-box}.game-session #emporium.em-root:not([hidden]){padding:0!important;overflow:clip;display:block}.em-root button,.em-root select{font:inherit;letter-spacing:normal;cursor:pointer;min-height:44px;border:2px solid #ae8552;border-radius:2px;background:#45332b;color:#fff1ca;padding:8px 14px;box-shadow:inset 0 0 0 2px #201b24,0 3px #211a1f}.em-root button:hover:not(:disabled){filter:brightness(1.14)}.em-root button:focus-visible,.em-root select:focus-visible{outline:3px solid #fff0a7;outline-offset:3px}.em-root button:disabled{opacity:.55;cursor:default}.em-root h1,.em-root h2,.em-root h3,.em-root p{font-family:inherit;letter-spacing:normal;margin:0 0 10px}.em-root .em-primary{background:#38574a;border-color:#f1cf88}.em-room{position:absolute;inset:0;overflow:clip;background:#3b2b20}.em-scene{position:absolute;inset:0;background:url('assets/emporium-v3/shop.webp') center/100% 100% no-repeat;image-rendering:pixelated}.em-hud{position:absolute;left:max(12px,env(safe-area-inset-left));top:10px;display:flex;gap:16px;align-items:center;background:#241d25d9;border:2px solid #9c7949;padding:7px 11px;box-shadow:0 3px #1e1823;max-width:calc(100% - 100px);font-size:12px;pointer-events:none;text-shadow:1px 2px #201820}.em-hud b{font-size:14px;color:#f8dd83;white-space:nowrap}.em-hud span{white-space:nowrap}.em-root .em-shop-tools{position:absolute;right:14px;bottom:12px;font-size:12px;z-index:1500;padding:7px 12px;background:#32272bdf}.em-root .em-open-sign{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:1500;background:#3f5d47;border:3px solid #edcb81;box-shadow:inset 0 0 0 2px #25332e,0 4px #281b23;font-weight:bold;letter-spacing:.4px}.em-root .em-open-sign[hidden]{display:none!important}.em-floor-hint{position:absolute;left:50%;bottom:70px;transform:translateX(-50%);color:#fff4d6;font-size:12px;pointer-events:none;text-shadow:0 2px #241c20,1px 0 #241c20;white-space:nowrap}.em-status{position:absolute;left:50%;bottom:65px;transform:translateX(-50%);width:max-content;max-width:85%;margin:0!important;padding:8px 14px;background:#25262ae8;border:2px solid #d7af6c;font-size:13px;font-weight:bold;text-align:center;pointer-events:none;z-index:2000;opacity:0;transition:opacity .2s}.em-status-visible{opacity:1}.em-shelves,.em-shoppers{position:absolute;inset:0;pointer-events:none}.em-root .em-shelf{position:absolute;left:var(--shelf-x);top:var(--shelf-y);width:11.5%;height:13%;min-height:44px;transform:translate(-50%,-50%);background:transparent;border:0;box-shadow:none;padding:0;pointer-events:auto;overflow:visible;border-radius:2px;opacity:1;z-index:400}.em-shelf .em-case-art{display:none}.em-root .em-shelf:hover:not(:disabled){background:#ffd97716;filter:none;outline:2px solid #e7c270a0;transform:translate(-50%,-50%)}.em-shelf:focus-visible{outline:3px solid #fff0ac!important;outline-offset:1px!important}.em-plus{display:grid;place-items:center;position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);width:26px;height:26px;border:1px dashed #d7c5a78c;background:#332a2260;color:#fff0bcbf;font:normal 24px/1 ui-monospace,monospace}.em-stock-art{position:absolute;inset:-26% 7% 34%;display:flex;align-items:center;justify-content:center;pointer-events:none;filter:drop-shadow(2px 4px 0 #24182466)}.em-stock-art img{height:100%;max-width:100%;object-fit:contain;image-rendering:pixelated}.em-treasure{font-size:clamp(26px,5vh,48px);line-height:1;color:#c8c6ff;text-shadow:2px 2px #55436b,-2px -2px #fff1ce}.em-price{position:absolute;left:50%;top:77%;transform:translateX(-50%);white-space:nowrap;background:#2d2426eb;border:1px solid #b98b55;color:#f4d78e;padding:2px 5px;font-size:clamp(9px,1.7vh,12px)}.em-shelf-name{display:none}.em-shelf [data-due]{position:absolute;right:1%;bottom:-6%;font-size:9px;color:#fff3c9;text-shadow:1px 1px #241b20}.em-counter{position:absolute;left:17%;top:86%;width:21%;height:19%;transform:translate(-50%,-50%);z-index:900;pointer-events:none}.em-counter>.em-case-art{width:100%;height:100%;filter:drop-shadow(3px 4px 0 #241b2544);image-rendering:pixelated}.em-register{position:absolute;left:28%;top:21%;width:16%;height:23%;background:#3a3b4a;border:3px solid #29232f;box-shadow:inset 0 4px #78767b,3px 4px #1e1c27}.em-register:before{content:'';position:absolute;left:12%;right:12%;top:-35%;height:45%;background:#b7c3a1;border:2px solid #34323c}.em-shopkeeper{position:absolute;left:17%;top:78%;height:13%;width:10%;transform:translate(-50%,-100%);z-index:780;pointer-events:none;text-align:center;filter:drop-shadow(2px 3px 0 #21182755)}.em-shopkeeper>img{height:100%;max-width:100%;object-fit:contain;image-rendering:pixelated}.em-npc{position:absolute;width:5.5%;height:13%;min-height:30px;transform:translate(-50%,-100%);pointer-events:none;transition:left .1s linear,top .1s linear;filter:drop-shadow(1px 3px 0 #211a2744)}.em-person,.em-npc [data-customer-art] svg{width:100%;height:100%;display:block;image-rendering:pixelated}.em-walker .em-person-body{animation:em-bob .42s steps(2,end) infinite}.em-walker .em-foot-a{animation:em-step .42s steps(2,end) infinite}.em-walker .em-foot-b{animation:em-step .42s steps(2,end) -.21s infinite}.em-chat:not(:empty),.em-shop-talk:not(:empty){position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#fff0d2;color:#45312e;border:2px solid #7c5a3a;box-shadow:2px 3px #291f28;padding:6px 8px;font:11px/1.3 ui-monospace,monospace;white-space:nowrap;z-index:1200}.em-root .em-buyer{left:25%;top:81%;width:6%;height:15%;min-height:30px;padding:0;border:0;background:none;box-shadow:none;pointer-events:auto;z-index:810}.em-root .em-buyer:hover{filter:brightness(1.15);transform:translate(-50%,-100%)}.em-buyer [data-customer-art]{width:100%;height:100%}.em-buyer [data-mood]{position:absolute;left:50%;bottom:98%;transform:translateX(-50%);font-size:clamp(18px,3.7vh,32px);text-shadow:1px 2px #382635}.em-buyer-flag{position:absolute;right:-3px;top:0;width:20px;height:23px;font-weight:900;background:#f5d568;color:#392b2e;border:2px solid #42302d}.em-sale-success:after{content:'✧';position:absolute;bottom:105%;left:50%;color:#fff0a0;font-size:30px;animation:em-coins 1.8s both}@keyframes em-coins{to{transform:translateY(-30px);opacity:0}}@keyframes em-bob{to{transform:translateY(-1px)}}@keyframes em-step{to{transform:translateY(-2px)}}@keyframes em-customer-enter{from{left:50%;top:24%}50%{left:48%;top:73%}to{left:25%;top:81%}}
/* Secondary controls appear only when requested. */
.em-modal{font-family:ui-monospace,'Courier New',monospace;color:#fff0ce;background:#30262a;border:3px solid #c49a5e;border-radius:2px;box-shadow:inset 0 0 0 3px #171820,0 10px 60px #120f18a0;width:min(640px,94vw);max-height:90dvh;padding:20px;overflow:auto;z-index:20000}.em-modal::backdrop{background:#15131ad9}.em-root .em-modal header{display:flex;justify-content:space-between;align-items:center;gap:14px;height:auto;min-height:44px;border:0;margin-bottom:12px}.em-modal h2{font:700 22px/1.2 ui-monospace,monospace;letter-spacing:0;color:#fff0ca}.em-modal h3{font-size:15px}.em-modal p{font-size:13px;line-height:1.5}.em-modal header button{font-size:23px;min-width:44px}.em-tabs,.em-tool-links{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.em-tabs [aria-pressed=true]{background:#4b6750}.em-picks{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.em-picks button{display:flex;align-items:center;flex-direction:column;gap:7px;min-width:0}.em-picks img{width:60px;height:60px;object-fit:contain;image-rendering:pixelated}.em-picks small{font-size:11px}.em-picks strong{max-width:100%;overflow-wrap:anywhere;font-size:12px}.em-settings,.em-quests{border-top:1px solid #9b784e;margin-top:16px;padding-top:14px}.em-settings label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0;font-size:13px}.em-settings select{min-width:0;max-width:65%;font-size:12px}.em-request{padding:12px 0;border-bottom:1px solid #876846}.em-request b{font-size:14px}.em-modal input[type=checkbox]{width:19px;height:19px;accent-color:#ddc180}
/* A purchase gets its own full-screen scene, never a permanent side panel. */
.em-root .em-haggle{position:fixed;inset:0;margin:0;padding:0;width:100vw!important;max-width:none!important;height:var(--gs-height,100dvh)!important;max-height:none!important;border:0;border-radius:0!important;overflow:clip;color:#fff0cd;background:#241d23;font-family:ui-monospace,'Courier New',monospace;box-sizing:border-box;z-index:30000}.em-haggle::backdrop{background:#17131b}.em-negotiation-scene{position:absolute;inset:0;background:linear-gradient(#1c16243d,#171325ad),url('assets/emporium-v3/shop.webp') center/cover;image-rendering:pixelated;filter:brightness(.65)}.em-root .em-haggle-back{position:absolute;left:14px;top:12px;z-index:5;font-size:12px}.em-haggle-heading{position:absolute;top:4%;left:25%;right:25%;text-align:center;text-shadow:0 3px #302029}.em-haggle-heading small{font-size:10px;letter-spacing:2px;color:#e7c98f}.em-haggle-heading h2{font:bold clamp(18px,3.4vh,30px)/1.3 ui-monospace,monospace;margin-top:8px}.em-negotiator{position:absolute;top:19%;width:29%;height:56%;text-align:center;filter:drop-shadow(0 8px 1px #17131c66)}.em-seller{left:5%}.em-customer{right:5%}.em-portrait{height:90%;width:100%;display:flex;align-items:flex-end;justify-content:center}.em-portrait img,.em-portrait svg{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.em-portrait .em-person{width:auto;min-width:48%;max-width:100%}.em-negotiator>strong{display:block;background:#2d242be6;border:2px solid #b58e58;width:max-content;max-width:100%;margin:0 auto;padding:6px 14px;font-size:14px}.em-haggle-mood{position:absolute;top:7%;left:78%;font-size:30px}.em-haggle-item{position:absolute;left:39%;right:39%;top:24%;height:40%;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:#382a2fdf;border:3px solid #d5ae6a;box-shadow:inset 0 0 0 3px #201c27,0 7px #19161f;padding:12px}.em-haggle-item>img{height:45%;max-width:100%;object-fit:contain;image-rendering:pixelated}.em-haggle-item>strong{font-size:clamp(12px,2.3vh,18px);max-width:100%;overflow-wrap:anywhere}.em-haggle-item>span:last-child{font-size:12px}.em-haggle-item>span>b{display:block;font-size:clamp(17px,3.5vh,28px);color:#f3d484;margin-top:4px}.em-haggle .em-deal{position:absolute;left:15%;right:15%;bottom:5%;padding:10px;background:#2b222bd9;border:2px solid #aa814d;box-shadow:0 5px #17141e}.em-offers{display:flex;gap:10px;justify-content:center}.em-root .em-offers button{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:10px 6px;min-height:65px;font-size:clamp(12px,2.2vh,16px)}.em-offers button b{font-size:clamp(16px,3vh,24px);color:#f8dc8f}.em-root .em-offers button:last-child:not(:first-child){background:#725142;border-color:#d6ac6c}.em-vault-root{padding:16px!important;background:#24252b}.em-vault-header{display:flex;align-items:center;gap:15px;min-height:65px;height:auto!important;border:0!important;margin-right:65px}.em-vault-header>div{flex:1}.em-vault-header small{font-size:10px;letter-spacing:2px}.em-root .em-vault-header h1{font:bold 27px/1.2 ui-monospace,monospace;letter-spacing:0;margin:5px 0}.em-vault{padding-top:20px}.em-vault [data-vault-items]{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:18px 0}.em-vault article{padding:20px;background:#3a3031;border:2px solid #a8824e}.em-vault article h2{font-size:20px}.em-vault article p,.em-vault>p{font-size:12px}.em-vault article p{margin-top:10px}.em-root [hidden]{display:none!important}
@media(max-height:450px){.em-hud{top:6px;left:8px;padding:4px 7px;font-size:10px;gap:10px}.em-hud b{font-size:12px}.em-root .em-open-sign{bottom:8px;min-height:40px;padding:5px 14px;font-size:12px}.em-root .em-shop-tools{bottom:8px;right:8px;min-height:40px;font-size:11px;padding:5px 9px}.em-floor-hint{bottom:52px;font-size:10px}.em-plus{width:21px;height:21px;font-size:20px}.em-stock-art{inset:-30% 4% 34%}.em-status{bottom:56px;font-size:11px;padding:5px 9px}.em-chat:not(:empty),.em-shop-talk:not(:empty){font-size:9px;padding:4px}.em-root .em-haggle-back{top:6px;left:8px;min-height:36px;padding:5px 9px;font-size:10px}.em-haggle-heading{top:2%}.em-haggle-heading small{font-size:8px}.em-haggle-heading h2{font-size:18px;margin-top:3px}.em-negotiator{top:19%;height:53%;width:27%}.em-negotiator>strong{font-size:11px;padding:4px 8px}.em-haggle-item{top:22%;height:41%;left:39%;right:39%;padding:7px;gap:4px}.em-haggle-item>strong{font-size:11px}.em-haggle-item>span:last-child{font-size:9px}.em-haggle-item>span>b{font-size:19px;margin-top:0}.em-haggle .em-deal{bottom:3%;left:16%;right:16%;padding:5px}.em-root .em-offers button{min-height:53px;font-size:11px;padding:5px 4px;gap:2px}.em-offers button b{font-size:17px}.em-haggle-mood{font-size:23px}.em-vault-root{padding:10px!important}.em-vault-header{min-height:44px;gap:8px}.em-root .em-vault-header h1{font-size:21px}.em-vault [data-vault-items]{gap:8px;margin:10px 0}.em-vault article{padding:10px}.em-vault article h2{font-size:15px}.em-vault article p{font-size:10px}}
@media(max-width:600px){.em-picks{grid-template-columns:repeat(2,1fr)}.em-modal{padding:14px}.em-vault [data-vault-items]{grid-template-columns:1fr}.em-hud{flex-direction:column;gap:2px;align-items:flex-start}.em-haggle .em-deal{left:5%;right:5%}.em-negotiator>strong{font-size:11px}.em-haggle-heading{left:20%;right:20%}}
@media(prefers-reduced-motion:reduce){.em-root *{animation:none!important;transition:none!important}.em-chat{display:none}}
.em-generic-person{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;display:block}.em-walker .em-generic-person{animation:em-bob .5s steps(2,end) infinite}.em-portrait .em-generic-person{max-width:100%;height:100%;object-fit:contain}[data-game-paused=true] .em-walker .em-generic-person{animation-play-state:paused}

/* Sixteen painted pads share floor coordinates with the aisle solver. */
.em-root .em-shelf{width:10.5%;height:10%;min-height:0}.em-stock-art{inset:-20% 15% 22%}.em-stock-art .em-treasure{display:flex;height:100%;width:100%;justify-content:center}.treasure-icon{width:48px;height:48px;image-rendering:pixelated;flex-shrink:0}.em-stock-art .treasure-icon{height:100%;width:auto;max-width:100%}.em-price{top:80%;font-size:clamp(8px,1.5vh,11px)}.em-plus{top:40%}.em-shopkeeper{isolation:isolate;filter:none}.em-shopkeeper:after{content:'';position:absolute;left:26%;right:26%;bottom:0;height:8%;background:#17171b80;clip-path:polygon(15% 0,85% 0,85% 25%,100% 25%,100% 75%,85% 75%,85% 100%,15% 100%,15% 75%,0 75%,0 25%,15% 25%);z-index:-1}.em-npc{transition:none}.em-announcement{position:absolute;inset:40% 0 auto;padding:20px 8px;background:#211c24d9;border-block:3px solid #dcb56d;color:#ffe9a9;text-align:center;font:bold clamp(22px,5vw,52px)/1.2 ui-monospace,monospace;letter-spacing:4px;z-index:1800;pointer-events:none;text-shadow:3px 3px #44302a}.em-haggle-item .em-treasure{display:flex;align-items:center;justify-content:center;height:45%;width:100%}.em-haggle-item .treasure-icon{height:100%;width:auto;max-width:100%}.game-session #treasure-vault.em-vault-root:not([hidden]){display:flex;flex-direction:column;overflow:hidden;padding:16px!important}.em-vault-header{flex-shrink:0;flex-wrap:wrap}.em-vault{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;padding-bottom:24px}.em-vault-filter{display:flex;gap:12px;align-items:center;font-size:13px}.em-vault [data-vault-items]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.em-vault article{display:flex;gap:12px;align-items:center;padding:12px;min-width:0}.em-vault article h2{font-size:14px;overflow-wrap:anywhere}.em-vault article img{width:48px;height:48px;object-fit:contain;image-rendering:pixelated}.em-vault article p{font-size:11px;margin-top:6px}.em-vault article b{font-size:12px}.em-vault-empty{grid-column:1/-1;padding:20px;background:#302a2c}.em-protected{border-color:#d9b76a!important}.em-root .em-buyer:disabled{opacity:1}.em-picks .treasure-icon{width:48px;height:48px}

/* Keep the checkout below the fourth perimeter display, with the Echo on clear floor. */
.em-counter{top:91%;height:16%}.em-shopkeeper{top:85.5%;z-index:855}

.em-business-actions{position:absolute;bottom:2%;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:20}.em-business-actions .em-open-sign{position:static;transform:none;white-space:nowrap}.em-background-sign{background:#244541;border:3px solid #bea16b;color:#fff2c9;padding:9px 16px;font-weight:800;min-height:44px}.em-background-sign small{display:block;font-size:10px;font-weight:400}@media(max-height:400px){.em-business-actions{bottom:1%;gap:6px}.em-business-actions button{font-size:12px;padding:5px 10px}}

/* The assistant stands behind the left checkout, beside the player's Echo. */
.em-root .em-assistant{position:absolute;left:26%;top:84%;width:6%;height:15%;min-width:44px;min-height:44px;transform:translate(-50%,-100%);padding:0;border:0;background:none;box-shadow:none;z-index:800}
.em-assistant>img{height:100%;width:100%;object-fit:contain;image-rendering:pixelated;animation:em-assistant-idle 3s steps(2,end) infinite}
.em-assistant>span{position:absolute;bottom:100%;left:0;width:max-content;max-width:150px;background:#fff0d2;color:#45312e;border:2px solid #7c5a3a;padding:4px 6px;font-size:10px;line-height:1.2}
.em-assistant-intro{display:grid;grid-template-columns:90px minmax(0,1fr);gap:16px;align-items:center}.em-assistant-intro>img{width:100%;max-height:160px;object-fit:contain;image-rendering:pixelated}
@keyframes em-assistant-idle{50%{transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.em-assistant>img{animation:none}}

/* Small pixel speech cue, rather than a sign covering the shop floor. */
.em-assistant>span{left:50%;bottom:103%;transform:translateX(-50%);width:28px;max-width:none;height:22px;padding:0;text-align:center;line-height:17px;font: bold 15px/17px monospace;letter-spacing:1px;color:#ffe3a1;background:#253e3b;border:2px solid #c9a76a;box-shadow:2px 2px 0 #392c24}
.em-assistant>span:after{content:"";position:absolute;left:8px;bottom:-6px;width:6px;height:5px;background:#253e3b;border-right:2px solid #c9a76a;border-bottom:2px solid #c9a76a}


.em-offers button[aria-pressed=true]{outline:3px solid #e6c46d}.em-deal [data-price-reaction]{margin:8px 0;font-size:14px}.em-deal [data-confirm-sale],.em-deal [data-keep-item]{min-height:42px;margin:3px;padding:8px 14px}
