/* Portrait floor plan. Controls and welcome live outside the illustrated floor. */
.world-shell,.world-shell.has-explorer{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:44px minmax(0,1fr) 80px;height:calc(100dvh - var(--header-height));min-height:560px;overflow:hidden;background:#eaf4f8}
.world-shell.has-explorer{grid-template-columns:minmax(0,1fr) 400px;grid-template-rows:44px minmax(0,1fr)}
.world-shell .world-viewport{grid-column:1;grid-row:2;height:100%;min-width:0;min-height:0;align-items:safe center;justify-content:safe center}
.world-frame{position:relative;flex:none;width:100%;min-width:0;container-type:inline-size}
/* Anchor the label's lower edge on the fascia, after the BMW roundel.
   Enlarged text grows upward over the roof, never down over the garage/car. */
.world-caption{position:absolute;z-index:28;left:68.5%;top:78.4%;max-width:29.5%;transform:translateY(-100%)}
.world-shell .world-canvas{aspect-ratio:1122/1402}
.world-shell .showroom-background{object-fit:contain}
/* Preserve the original vehicle/building pixels. Only the lower-left plaza
   comes from the billboard edit; repeated image edits degraded the rest. */
.showroom-background--detail{clip-path:polygon(0 0,100% 0,100% 100%,53.4759% 100%,53.4759% 65.9786%,0 65.9786%)}
.world-canvas .mechanic-art img{width:200%;height:200%}
.world-canvas .staff-art img,.world-canvas .handover-art img{width:200%;height:200%}
/* Both receptionists stay behind the illustrated counter, not in the aisle. */
.world-canvas .visitor[data-actor-area="reception"] .visitor-facing{clip-path:inset(0 0 20% 0)}
.world-canvas .visitor[data-actor-area="reception"] .visitor-bob{animation:none;transform:none}
.world-canvas .visitor[data-actor-area="handover"] .visitor-bob{animation:none;transform:none}
.world-shell .world-tools{grid-column:1;grid-row:1;position:relative;left:auto;top:auto;justify-self:center;align-self:center;transform:none;margin:0;padding:3px 5px;border-radius:12px;box-shadow:none}
.world-shell .welcome-note{grid-column:1;grid-row:3;position:relative;left:auto;bottom:auto;transform:none;align-self:center;justify-self:center;margin:0;max-width:calc(100% - 20px);white-space:normal}
.world-shell .welcome-copy{min-width:0}
.world-shell .explore-sheet{grid-column:2;grid-row:1/-1}
.world-shell .advisor-screen{left:37.3%;top:2.8%;width:22.6%;height:3.3%;border-radius:3px}
.world-shell .kolon-screen .screen-copy>strong{font-size:1.8cqw;letter-spacing:.055em}
.world-shell .reception-sign{display:none}
.handover-zone{border-radius:14px;min-height:44px;margin:0}
/* The visible room ends near 65.3% of the floor; its click area includes
   extra apron below it. Attach the label to that clear apron, not the garden.
   Intrinsic width prevents the old one-character-per-line shrink-to-fit. */
.handover-sign{top:8%;bottom:auto;width:max-content;max-width:calc(56cqw - 12px);white-space:normal;padding:3px 8px;border-radius:7px;font-size:.875rem;line-height:1.25;box-shadow:0 2px 0 #9daebb}
.handover-sign>span:not(.handover-arrow){min-width:0;word-break:keep-all;overflow-wrap:anywhere}
.handover-zone:hover .handover-sign,.handover-zone:focus-visible .handover-sign{transform:translateX(-50%)}
.service-center-zone{position:absolute;z-index:27;left:63%;top:71.5%;width:33%;height:23%;min-height:44px;border-radius:14px}
.service-center-sign{display:flex;align-items:flex-end;width:max-content;min-width:0;max-width:100%;min-height:44px;padding:0;font-size:1rem;font-weight:700;line-height:1.25;background:transparent;border:0;border-radius:8px;text-align:center;white-space:normal}
.service-center-name{display:grid;gap:2px;box-sizing:border-box;min-width:0;max-width:100%;padding:6px 8px;overflow-wrap:anywhere;word-break:keep-all;color:#fff;background:#123c64;border:2px solid #fff;border-radius:8px;box-shadow:0 2px 0 #082642,0 3px 8px #102e5940}
.service-center-brand{font-size:.875rem;letter-spacing:.09em}
.service-center-label{min-width:0;letter-spacing:0}
.service-center-sign:hover .service-center-name,.service-center-sign:focus-visible .service-center-name,.world-frame:has(.service-center-zone:hover) .service-center-name{background:#092d4e;border-color:#cae7ff}
.service-center-sign:focus-visible{outline:2px solid #fff;outline-offset:3px}
.service-center-zone:focus-visible,.handover-zone:focus-visible{outline:3px solid #276d9f;outline-offset:3px}
.service-dialog{position:fixed;width:440px;max-width:calc(100vw - 28px);max-height:90dvh;overflow:auto;border:1.5px solid #a6bed0;border-radius:24px;padding:30px;background:#f8fbfd;color:#31516c}
.service-dialog::backdrop{background:#112f456b}.service-dialog>.close-button{position:absolute;right:15px;top:10px}
.service-eyebrow{font-size:.875rem;color:#66849b;padding-right:20px;margin:0 0 12px}
.service-dialog h2{font-size:1.5rem;margin:0 0 17px}.service-dialog>p{line-height:1.75}
.service-dialog .contact-actions{margin:23px 0 20px;flex-wrap:wrap}
.service-dialog .service-note{font-size:.875rem;color:#66849b;margin:12px 0 0}
@media(max-width:1000px) and (min-width:761px){.world-shell.has-explorer{grid-template-columns:minmax(0,1fr) 355px}}
@media(max-width:760px){
 .world-shell,.world-shell.has-explorer{height:auto;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:44px auto auto;overflow:visible}
 .world-shell .world-viewport,.world-shell.has-explorer .world-viewport{height:auto;min-height:0;max-height:none;align-items:flex-start;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;overscroll-behavior-y:auto}
 .world-shell .world-tools,.world-shell.has-explorer .world-tools{left:auto;top:auto;transform:none}
 .world-shell .welcome-note{margin:9px 0 12px;white-space:normal}
 .world-shell.has-explorer .explore-sheet{position:relative;grid-row:3;grid-column:1;left:auto;right:auto;bottom:auto;max-height:none;height:auto;overflow:visible;width:auto;margin:9px;border-radius:24px;box-shadow:0 3px 12px #37698a10}
 .world-shell .world-canvas .visitor{min-width:0}
 .handover-zone{min-width:0;margin:0}
 .handover-sign{padding:3px 7px;gap:4px}
 .handover-sign svg,.handover-sign .handover-arrow{display:none}
 .world-shell .zone-label>.hot-badge--zone{right:-12px;top:-17px}
 .service-center-sign{font-size:.875rem}
 /* One compact line when it fits; wrap whole labels on narrow/large-text
    screens. The transparent touch target remains at least 44px high. */
 .service-center-name{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1px 4px;padding:3px 5px;border-width:1.5px;line-height:1.2}
 .service-center-brand{flex:none;letter-spacing:.03em}
 .service-dialog{padding:27px 22px}
}
