:root{color-scheme:dark;--bg:#101c1c;--panel:#1c3029;--line:#4b6350;--gold:#f4c36a;--text:#eee9d6;--muted:#acbda8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 'Courier New',monospace}a{color:var(--gold)}button,input,select{font:inherit}button,a.button{cursor:pointer;min-height:44px;padding:10px 15px;border:1px solid #8a774c;border-radius:6px;background:#233b30;color:var(--gold);text-decoration:none}button:hover,a.button:hover{background:#354b36}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f4c36a;outline-offset:3px}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true],.primary{background:#f4c36a!important;color:#302719!important;border-color:#ffe1a1!important}[hidden]{display:none!important}.shell{max-width:1400px;margin:auto;padding:22px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}.brand{font-size:11px;letter-spacing:3px;color:var(--gold)}h1{font-size:clamp(20px,3vw,30px);line-height:1.25;margin:5px 0}h2{font-size:18px;color:var(--gold)}.muted,.intro{color:var(--muted);font-family:Arial,sans-serif}.toplinks,.variant-switch,.actions{display:flex;gap:8px;flex-wrap:wrap}.pill{border:1px solid var(--line);padding:4px 8px;border-radius:20px;color:var(--muted);font-size:11px}.location-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;flex-wrap:wrap}.scene-viewport{overflow-x:auto;overscroll-behavior:contain;border:2px solid #6e744e;border-radius:10px;background:#22382d}.scene{position:relative;min-width:1000px;aspect-ratio:2/1;isolation:isolate;overflow:hidden}.scene-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;image-rendering:pixelated}.standing-floor{position:absolute;inset:66% 0 0;background:linear-gradient(transparent,#10201b25);pointer-events:none}.resident{position:absolute;bottom:9%;width:8.8%;height:34%;padding:0;border:0;background:none;z-index:10;transform:translateX(-50%);transition:none}.resident:hover{background:none;filter:drop-shadow(0 0 5px #fff2b233)}.resident.you{height:36%;bottom:8.7%}.resident .appearance{height:100%;width:100%;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.resident .appearance .catalog-atlas{height:100%;width:auto;max-width:100%;flex:none}.resident .appearance>img{max-height:100%;max-width:100%;object-fit:contain}.resident .name{position:absolute;left:50%;bottom:101%;transform:translateX(-50%);white-space:nowrap;background:#10251ee8;color:#eee9d6;font-size:11px;padding:3px 6px;border:1px solid #7c8865;border-radius:4px}.resident.you .name{color:#ffe6a6;border-color:var(--gold)}.resident:after{content:'';position:absolute;left:15%;right:15%;bottom:-1%;height:3%;border-radius:50%;background:#0005;z-index:-1}.spot{position:absolute;z-index:20;min-width:44px;min-height:44px;background:#182e24e6;border:1px solid #f4c36a;border-radius:6px;transform:translate(-50%,-50%);padding:6px 10px;font-size:12px;white-space:nowrap}.spot.merch{border-color:#e8af83;color:#ffd6b4}.spot:hover{background:#5c5730}.scene-note{display:flex;justify-content:space-between;gap:12px;margin:10px 2px;color:var(--muted);font:12px/1.5 Arial,sans-serif}.location-bottom{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:16px;margin-top:18px}.panel{border:1px solid var(--line);background:var(--panel);border-radius:9px;padding:18px}.panel h2{margin:0 0 8px}.panel p{font:14px/1.6 Arial,sans-serif;color:#cfdbc8}.source-details{margin-top:12px;font:12px/1.5 Arial,sans-serif;color:var(--muted)}.source-details summary{cursor:pointer;color:#e6cd97;min-height:35px}.scene-status{min-height:24px;color:#dce5cc;font:13px Arial,sans-serif}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.location-card{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel)}.card-image{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;image-rendering:pixelated;background:#263d31}.card-body{padding:16px}.card-body h2{margin:6px 0}.card-body p{min-height:42px;font:13px/1.5 Arial,sans-serif;color:var(--muted)}.card-actions{display:flex;gap:8px;flex-wrap:wrap}.card-actions a{flex:1;text-align:center;font-size:12px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 24px}.empty{padding:18px}.error{color:#ffb197;font:14px/1.5 Arial,sans-serif}.shop-dialog{width:min(680px,calc(100% - 24px));max-height:85svh;overflow:auto;background:#162b23;color:var(--text);border:2px solid #ba9b5a;border-radius:12px;padding:24px}.shop-dialog::backdrop{background:#06100de0}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.product{border:1px solid #576d50;border-radius:7px;padding:14px;background:#223c2c}.product .icon{display:block;font-size:44px;text-align:center}.product h3{font-size:13px;min-height:38px}.product button{width:100%;padding:8px;font-size:12px}.inventory{font:13px/1.6 Arial,sans-serif;color:#c0d2b6}.registration{max-width:570px;margin:28px auto;padding:24px}.registration h1{margin:14px 0}.steps{display:flex;gap:8px;margin:24px 0}.step{height:4px;flex:1;background:#405443}.step.active{background:var(--gold)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px}.field.full{grid-column:1/-1}.field input,.field select{width:100%;padding:13px;border:1px solid #607256;border-radius:5px;background:#12271f;color:#f4efdc;min-height:48px}.field small{font:12px/1.5 Arial,sans-serif;color:var(--muted)}.field input[aria-invalid=true]{border-color:#ff9c7c}.form-error{min-height:24px}.form-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.registration .intro{font:15px/1.6 Arial,sans-serif}.registration .privacy{font:12px/1.5 Arial,sans-serif;color:var(--muted);margin:20px 0 0}.review-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.review-list div{padding:12px;background:#263e2f;border-radius:5px}.review-list dt{font:12px Arial,sans-serif;color:var(--muted)}.review-list dd{margin:4px 0 0}.registration .existing{margin-top:20px;font:13px Arial,sans-serif}@media(max-width:900px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.location-bottom{grid-template-columns:1fr}.shell{padding:14px}.topbar h1{font-size:22px}}@media(max-width:560px){.grid{grid-template-columns:1fr}.registration{margin:0 auto;padding:22px 16px}.toplinks{width:100%}.toplinks .button{flex:1;text-align:center;padding:8px}.scene-note{display:block}.scene-note span{display:block;margin:6px 0}.shop-grid{grid-template-columns:1fr}.product{display:grid;grid-template-columns:55px 1fr;gap:8px;align-items:center}.product .icon{grid-row:span 2;font-size:34px}.product h3{margin:0;min-height:0}.product button{grid-column:2}.form-grid{gap:16px 12px}.scene{min-width:900px}.variant-switch{width:100%}.variant-switch button{flex:1;font-size:12px}.location-head .pill{font-size:10px}}

#sceneNightArt{transition:opacity 1s linear} [hidden]{display:none!important}
.spot{z-index:2000}
.scene[data-population="12"] .spot{top:24%!important}

.resident{filter:brightness(var(--resident-light,1))}.resident:hover{filter:brightness(var(--resident-light,1)) drop-shadow(0 0 5px #fff2b233)}

.location-exit{display:flex;justify-content:center;margin:0 0 18px}.exit-location{font-weight:bold;min-width:235px;text-align:center;border-color:#f4c36a!important;background:#334437!important}.crowd-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.crowd-controls>span:not(.pill){font:12px Arial,sans-serif;color:var(--muted)}.population-switch{display:flex;gap:5px}.population-switch button{min-width:44px;padding:8px 12px}.resident{width:9.4%}.resident.you{width:9.4%}.resident .name{max-width:150px;overflow:hidden;text-overflow:ellipsis;font-size:10px}.scene[data-population="12"] .resident:not(.you) .name{opacity:0}.scene[data-population="12"] .resident:hover .name,.scene[data-population="12"] .resident:focus-visible .name{opacity:1}.resident:focus-visible{outline:2px solid #f4c36a;outline-offset:2px}@media(max-width:560px){.location-exit{margin-bottom:14px}.crowd-controls{width:100%;gap:8px}.crowd-controls .population-switch{margin-left:auto}}

/* Berloga's labels sit on their illustrated objects; only the backing is compact. */
.scene[data-location=cafe] .spot{min-height:0;padding:3px 10px;line-height:1.3}
.scene[data-location=cafe] .spot:before{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}
.scene[data-location=cafe][data-population="12"] .spot{top:var(--cafe-spot-y)!important}
.scene[data-location=cafe] [data-action=feature-0]{--cafe-spot-y:11.5%}
.scene[data-location=cafe] [data-action=feature-1]{--cafe-spot-y:23%}
.scene[data-location=cafe] [data-action=merch]{--cafe-spot-y:17.5%}

/* Object-sized interaction zones shared by all location scenes. */
.scene[data-location] .spot.object-glow{position:absolute;left:var(--spot-x)!important;top:var(--spot-y)!important;width:var(--spot-w);height:var(--spot-h);transform:none;min-width:44px;min-height:44px;padding:0;border:0;border-radius:5px;background:transparent;box-shadow:none;color:#fff4ce;overflow:visible;isolation:isolate;outline:none}
.scene[data-location] .object-glow::before{content:'';position:absolute;left:50%;top:38%;right:auto;bottom:auto;width:clamp(56px,70%,160px);height:clamp(44px,50%,100px);transform:translate(-50%,-50%);border:0;border-radius:50%;background:radial-gradient(ellipse, #ffe9ab22 0%,#ffe9ab12 38%,#ffe9ab00 72%);box-shadow:none;filter:blur(2px);pointer-events:none;animation:sport-object-breathe 3.6s ease-in-out infinite}
.scene[data-location] .object-glow:hover::before,.scene[data-location] .object-glow:focus-visible::before,.scene[data-location] .object-glow:active::before{animation:none;border:0;box-shadow:none;background:radial-gradient(ellipse,#fff0be40 0%,#ffe9ab20 34%,#ffe9ab00 72%);opacity:1}
.scene[data-location] .object-hint{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(3px);padding:6px 9px;border:0;border-radius:5px;box-shadow:0 3px 12px #07160d55;background:#13271fee;color:#fff0c7;font:12px/1.3 Arial,sans-serif;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .18s,transform .18s}
.scene[data-location] .object-glow:hover .object-hint,.scene[data-location] .object-glow:focus-visible .object-hint,.scene[data-location] .object-glow:active .object-hint{opacity:1;transform:translateX(-50%) translateY(0)}
@keyframes sport-object-breathe{0%,100%{opacity:.45}50%{opacity:.85}}
@media(prefers-reduced-motion:reduce){.scene[data-location] .object-glow::before{animation:none;opacity:.65}.scene[data-location] .object-hint{transition:none}}

.scene[data-location] .object-hint{width:max-content;max-width:240px;white-space:normal;text-align:center}
.scene[data-location] .object-glow[data-hint-align=right] .object-hint{left:auto;right:0;transform:translateY(3px)}
.scene[data-location] .object-glow[data-hint-align=left] .object-hint{left:0;right:auto;transform:translateY(3px)}
.scene[data-location] .object-glow[data-hint-align]:hover .object-hint,.scene[data-location] .object-glow[data-hint-align]:focus-visible .object-hint,.scene[data-location] .object-glow[data-hint-align]:active .object-hint{transform:translateY(0)}
.scene[data-location] .object-glow[data-hint-align=center]:hover .object-hint,.scene[data-location] .object-glow[data-hint-align=center]:focus-visible .object-hint,.scene[data-location] .object-glow[data-hint-align=center]:active .object-hint{transform:translateX(-50%) translateY(0)}

/* Preserve wide equipped crops: height and aspect ratio determine the width. */
.resident .appearance .catalog-atlas{max-width:none}
