/* The raster map supplies the house, walls, floors, furniture and connecting halls.
   Transparent semantic controls occupy the four clear floor areas. */
.pixel-house-play{--pixel-ink:#28352c;--pixel-brown:#674a37;--pixel-wood:#ad8251;--pixel-paper:#f4e5bd}.pixel-house-play .token-tray{background:#efe3c5;border:3px solid #72563e;border-radius:2px;box-shadow:inset 0 0 0 2px #d7bc86,0 3px 0 #dce3e1}.pixel-house-play .tray-tabs{background:#ddc399;border-color:#aa895e;padding:5px 8px}.pixel-house-play .tray-tab{border-radius:0;color:#67513d}.pixel-house-play .tray-tab.active{background:#f9edcf;color:#283c32;box-shadow:inset 0 -3px #977448}.pixel-house-play .tray-tab>span{border-radius:0;background:#cfb78c;color:#493b2a}.pixel-house-play .tray-pieces{min-height:119px;padding:10px;gap:10px}.pixel-house-play .tray-pieces .piece{border:2px solid #bd9f70;border-radius:1px;background:#faf0d8;box-shadow:2px 2px 0 #b29a73;color:#3c3e31;padding:5px;font-family:'Courier New',monospace}.pixel-house-play .tray-pieces .piece:hover{border-color:#416a54;background:#fff7e4}.pixel-house-play .tray-pieces .piece.is-picked{border-color:#306d51;box-shadow:0 0 0 3px #83ad73;background:#eaf0cf}.pixel-house-play .piece .grip{color:#958461}.guest-sprite{display:block;flex-shrink:0;width:64px;height:64px;background-image:url('./assets/guest-pixel-sprites.png');background-repeat:no-repeat;background-size:200% 200%;image-rendering:pixelated}.sprite-0{background-position:0 0}.sprite-1{background-position:100% 0}.sprite-2{background-position:0 100%}.sprite-3{background-position:100% 100%}.pixel-house-play .token-art{border-radius:0;color:#4f5037;background:#e5d4ac;border:2px solid #b29666;box-shadow:2px 2px 0 #bc9f75}.pixel-house-play .token-art svg{shape-rendering:crispEdges;stroke-linecap:square;stroke-linejoin:miter}.pixel-house-play .time-art{background:#f5e9be;color:#775329}.pixel-house-play .floorplan-heading{padding-top:20px;padding-bottom:10px;gap:8px}.house-floor-caption{font:12px 'Courier New',monospace;color:#718076;text-transform:uppercase;letter-spacing:1px}.house-frame{padding:5px;background:#283b34;border:3px solid #192d28;border-radius:2px;box-shadow:0 5px 0 #d2dad4}.house-floorplan{position:relative;aspect-ratio:1;width:100%;container-type:inline-size;background:#72874d url('./assets/pixel-house.png') center/100% 100% no-repeat;image-rendering:pixelated;overflow:hidden;isolation:isolate}.house-floorplan .room-grid{position:absolute;inset:9%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:16%;z-index:1}.house-floorplan .room-card{position:relative;overflow:visible;border:0;border-radius:0;box-shadow:none;background:none;min-width:0;min-height:0}.room-floor-hit{position:absolute;inset:0;z-index:0;border:0;border-radius:0;background:transparent;width:100%;cursor:crosshair}.room-floor-hit:focus-visible{outline-offset:0;outline:3px dashed #f7e8a6}.house-floorplan .room-card-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:2px;z-index:3;min-height:0;height:auto;padding:3px 5px;border:2px solid #b29061;background:#27382beF;box-shadow:2px 2px 0 #2b251a8f;pointer-events:none}.house-floorplan .room-card-header h3{color:#fff2c4;font-family:'Courier New',monospace;font-weight:700;font-size:clamp(11px,2.15cqw,16px);line-height:1.1;text-align:center;letter-spacing:-.3px;text-wrap:balance;overflow-wrap:normal;margin:0;padding:0}.house-floorplan .room-move{pointer-events:auto;width:20px;min-height:23px;color:#dec69a;flex-shrink:0;padding:0;align-self:center;background:none;touch-action:none}.house-floorplan .room-move:hover{background:#4e6544;border-radius:0}.house-floorplan .room-move .icon{width:14px;height:18px}.house-floorplan .room-slots{position:absolute;z-index:2;inset:27% 5% 3%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:4px;padding:0;pointer-events:none}.house-floorplan .room-slot{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:0;pointer-events:auto;box-shadow:none}.house-floorplan .slot-1{grid-column:1/-1;justify-self:center;width:86%;max-width:146px}.house-floorplan .empty-slot{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:auto;max-width:100%;min-width:0;min-height:0;padding:7px 8px;border:2px dashed #f7e7bca6;border-radius:0;background:#37372865;color:#fff6d7;text-align:center;text-shadow:1px 1px #1c281c;font:700 clamp(10px,1.9cqw,14px)/1.2 'Courier New',monospace;box-shadow:0 2px 0 #25271730}.house-floorplan .empty-slot>span{flex:initial;min-width:0}.house-floorplan .empty-slot>.icon{width:clamp(17px,3.6cqw,27px);height:clamp(17px,3.6cqw,27px);stroke-width:2;shape-rendering:crispEdges;stroke-linecap:square}.house-floorplan .empty-slot>.icon:last-child{display:none}.house-floorplan .slot-1 .empty-slot{width:100%;flex-direction:row;min-height:29px;padding:4px 6px;gap:6px;background:#303a2ecf;border:1px solid #d8c799}.house-floorplan .slot-1 .empty-slot .icon{width:14px;height:14px}.house-floorplan .empty-slot:hover{background:#356d45d9;border-color:#e5f5aa}.house-floorplan .placed-piece{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:relative}.house-floorplan .piece{background:transparent!important;border:0;border-radius:0;box-shadow:none;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:0;min-height:0;height:100%;width:100%;padding:0;font:700 clamp(10px,1.9cqw,14px)/1.2 'Courier New',monospace;color:#fff6d7;overflow:visible}.house-floorplan .piece:hover{transform:translateY(-2px);filter:brightness(1.1)}.house-floorplan .guest-sprite{width:clamp(34px,11.5cqw,90px);height:clamp(34px,11.5cqw,90px);margin-top:-5px}.house-floorplan .piece-name{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#263d2aeb;border:1px solid #bcb57c;padding:2px 4px;color:#fff3c6;text-align:center;line-height:1.1;letter-spacing:-.3px}.house-floorplan .piece-2{justify-content:center;gap:5px}.house-floorplan .token-art{width:clamp(23px,6.3cqw,42px);height:clamp(23px,6.3cqw,42px);border-radius:0;background:#f0dfb2;border:2px solid #856344;color:#4b4934;box-shadow:2px 2px #61472e}.house-floorplan .token-art .icon{width:80%;height:80%;shape-rendering:crispEdges;stroke-linecap:square;stroke-linejoin:miter}.house-floorplan .slot-1 .placed-piece{height:29px;min-height:29px;padding-right:20px;background:#26362beF;border:1px solid #d0b981;box-shadow:2px 2px #342b22}.house-floorplan .slot-1 .piece{flex-direction:row;justify-content:center;gap:5px;height:100%;min-height:0;padding:0}.house-floorplan .slot-1 .piece-name{border:0;background:none;padding:0;color:#fff2bd;font-size:clamp(11px,2cqw,14px)}.house-floorplan .slot-1 .time-art{background:transparent;border:0;box-shadow:none;width:14px;height:14px;color:#d8c490}.house-floorplan .slot-1 .time-art .icon{width:14px;height:14px}.house-floorplan .remove-piece{z-index:4;position:absolute;right:-3px;top:0;transform:none;background:#293a2ce8;color:#ebdeaf;border:1px solid #a39870;border-radius:0;padding:3px;min-width:20px;min-height:20px;width:20px;height:20px}.house-floorplan .remove-piece:hover{background:#9c4733;color:white}.house-floorplan .slot-1 .remove-piece{right:1px;top:3px;border:0;min-height:20px;min-width:20px}.house-floorplan .remove-piece .icon{width:11px;height:11px}.house-floorplan .piece.is-picked{filter:drop-shadow(2px 0 #f0d881) drop-shadow(-2px 0 #f0d881)}.house-floorplan .room-accepts-piece>.room-floor-hit{box-shadow:inset 0 0 0 2px #f4e2aa7a;background:#e6d8870b}.house-floorplan .room-accepts-piece>.room-floor-hit:hover{background:#7cd86927;box-shadow:inset 0 0 0 3px #ebf8ba}.house-floorplan .drop-hover{background:#9bd67244!important;box-shadow:inset 0 0 0 3px #fff1a6!important}.house-floorplan .accepts-picked .empty-slot{background:#2f603bcc;color:#fff8cf;border-color:#fff0a0}.house-floorplan .slot-error .piece-name,.house-floorplan .slot-error.slot-1 .placed-piece{background:#843f2eeF;border-color:#ffc18a;color:white}.house-floorplan .slot-error .piece{filter:drop-shadow(2px 0 #c54d35) drop-shadow(-2px 0 #c54d35)}.map-error{position:absolute;z-index:5;left:0;top:0;display:grid;place-items:center;width:19px;height:19px;background:#a43b2b;border:1px solid #ffd5a0;color:#fff4dd;font:bold 14px monospace}.pixel-house-play .departure-line{margin-top:24px}.pixel-house-play .timeline-slot{border-radius:1px;border:2px solid #c5b38f;background:#f3eddb;color:#697059;box-shadow:2px 2px #dfd6c0;font-family:'Courier New',monospace}.pixel-house-play .timeline-slot.has-room{border-color:#668461;background:#e8edcd;box-shadow:2px 2px #b7c8a0}.pixel-house-play .timeline-slot strong{color:#4d573d}.pixel-house-play .timeline-slot small{color:#486848}.pixel-house-play .room-note{font-size:12px}.drag-ghost .guest-sprite{width:48px;height:48px}.drag-ghost{border-radius:0;border-color:#796747;box-shadow:4px 4px 0 #23332150}.pixel-house-play .tray-complete{color:#526842}.pixel-house-play .play-instructions{font-size:14px}
@media(max-width:700px){.pixel-house-play{padding-inline:8px}.pixel-house-play .tray-pieces{gap:6px;padding:8px;min-height:100px}.pixel-house-play .tray-pieces .guest-sprite{width:49px;height:49px}.pixel-house-play .tray-pieces .piece{font-size:12px;padding:4px 2px;gap:3px}.pixel-house-play .floorplan-heading{font-size:13px}.house-floor-caption{font-size:11px;letter-spacing:0}.house-frame{padding:2px;border-width:2px}.house-floorplan .room-card-header{padding:3px 2px;border-width:1px;gap:0;left:-5%;right:-5%}.house-floorplan .room-card-header h3{font-size:clamp(10px,3.3cqw,13px);letter-spacing:-.5px}.house-floorplan .room-move{width:15px;min-height:18px}.house-floorplan .room-move .icon{width:12px;height:15px}.house-floorplan .room-slots{inset:29% 0 0;gap:2px}.house-floorplan .guest-sprite{width:11cqw;height:11cqw;min-width:28px;min-height:28px;margin:0}.house-floorplan .piece{font-size:clamp(9px,3cqw,12px)}.house-floorplan .piece-name{padding:1px 2px;letter-spacing:-.5px;border:0;max-width:100%}.house-floorplan .token-art{width:7.8cqw;height:7.8cqw;min-width:22px;min-height:22px;border-width:1px;box-shadow:1px 1px #61472e}.house-floorplan .piece-2{gap:3px}.house-floorplan .empty-slot{padding:3px 4px;font-size:10px;gap:1px;border-width:1px}.house-floorplan .empty-slot>.icon{width:17px;height:17px}.house-floorplan .slot-1{width:100%}.house-floorplan .slot-1 .empty-slot,.house-floorplan .slot-1 .placed-piece{min-height:23px;height:23px;padding-block:2px;box-shadow:1px 1px #342b22}.house-floorplan .slot-1 .empty-slot{font-size:11px;gap:3px}.house-floorplan .slot-1 .piece-name{font-size:11px}.house-floorplan .slot-1 .time-art{width:12px;height:12px;min-width:12px;min-height:12px}.house-floorplan .remove-piece{width:17px;height:17px;min-width:17px;min-height:17px;right:-2px;padding:2px;top:-5px}.house-floorplan .remove-piece .icon{width:10px;height:10px}.house-floorplan .slot-1 .remove-piece{width:17px;height:17px;min-width:17px;min-height:17px;top:2px;right:0}.house-floorplan .slot-1 .placed-piece{padding-right:16px}.house-floorplan .slot-1 .piece{gap:3px}.map-error{width:15px;height:15px;font-size:11px}.pixel-house-play .timeline-heading>span{font-size:12px}.pixel-house-play .play-instructions{font-size:13px}}
.house-floorplan .room-grid{inset:9% 9% 19.5%;grid-template-rows:44% 39%;row-gap:17%}.house-floorplan .room-slots{bottom:6%}@media(max-width:700px){.house-floorplan .room-slots{top:27%;bottom:0}.house-floorplan .guest-sprite{width:10cqw;height:10cqw}}
.house-floorplan .room-nameplate{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-height:22px;padding:0;font:inherit;color:inherit;line-height:inherit;text-align:center;cursor:grab}.house-floorplan .room-nameplate .icon{width:13px;height:17px;flex-shrink:0}.house-floorplan .room-nameplate:hover{background:none;color:#fffad8}.house-floorplan .room-nameplate:focus-visible{outline:2px solid #fff3a8;outline-offset:2px}@media(max-width:700px){.house-floorplan .room-nameplate{min-height:20px;gap:1px}.house-floorplan .room-nameplate .icon{width:10px;height:13px}}
