.wayfinder-dialog.is-house-map {
  width:min(1120px,calc(100vw - 24px));
  max-height:min(900px,calc(100dvh - 24px));
  padding:0;
  overflow:hidden;
  border:1px solid rgba(211,176,110,.42);
  border-radius:24px;
  background:#0a1117;
  box-shadow:0 34px 110px rgba(0,0,0,.78),0 0 0 1px rgba(255,255,255,.035) inset;
}
.wayfinder-dialog.is-house-map::backdrop { background:rgba(2,5,9,.82);backdrop-filter:blur(10px); }
.wayfinder-dialog.is-house-map .wayfinder-close {
  z-index:8;top:18px;right:20px;width:38px;height:38px;border:1px solid rgba(255,255,255,.12);border-radius:50%;color:#d8e1e5;background:rgba(255,255,255,.04);
}
.wayfinder-dialog.is-house-map .wayfinder-close:hover,.wayfinder-dialog.is-house-map .wayfinder-close:focus-visible { outline:0;border-color:#d9b571;background:rgba(217,181,113,.12); }

.wayfinder-dialog.is-house-map .map-journal-head {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:24px;
  padding:26px 70px 22px 30px;
  border-bottom:1px solid rgba(217,181,113,.22);
  color:#f4edde;
  background:
    radial-gradient(circle at 15% 0,rgba(70,139,139,.15),transparent 38%),
    linear-gradient(145deg,#111b23,#080e14 72%);
}
.map-journal-head::before { content:"THE ALDRIDGE HOUSE";grid-column:1;grid-row:1;display:block;color:#79d6d0;font:900 .57rem/1 system-ui;letter-spacing:.2em; }
.map-journal-head .micro-label { display:none; }
.map-journal-head h2 { grid-column:1;grid-row:2;margin:0!important;color:#f6f0e5;font:500 clamp(1.8rem,4vw,3rem)/1 Georgia,serif!important;letter-spacing:-.035em; }
.map-journal-head p { grid-column:1;grid-row:3;max-width:660px;margin:8px 0 0;color:#9eadb6;font-size:.72rem;line-height:1.45; }
.map-floor-tabs { grid-column:2;grid-row:1/4;align-self:center;display:flex;align-items:center;gap:7px; }
.map-floor-tabs button { min-height:36px;padding:8px 12px;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#b8c4c9;background:rgba(255,255,255,.035);cursor:pointer;font:800 .59rem/1 system-ui;letter-spacing:.04em; }
.map-floor-tabs button:hover,.map-floor-tabs button:focus-visible { outline:0;border-color:#79d6d0;color:#fff;background:rgba(121,214,208,.09); }
.map-floor-tabs button.is-active { border-color:rgba(217,181,113,.4);color:#efd19a;background:rgba(217,181,113,.1); }

.wayfinder-map.progressive-map {
  position:relative;
  max-height:calc(100dvh - 170px);
  overflow:auto;
  overscroll-behavior:contain;
  background:#d8c394;
  scrollbar-color:#796344 #cbb584;
}
.house-plan {
  --ink:#493722;
  position:relative;
  isolation:isolate;
  width:max(820px,100%);
  height:640px;
  color:var(--ink);
  background:
    linear-gradient(rgba(255,249,226,.26),rgba(255,249,226,.04)),
    repeating-linear-gradient(0deg,transparent 0 31px,rgba(76,55,31,.045) 32px),
    repeating-linear-gradient(90deg,transparent 0 31px,rgba(76,55,31,.035) 32px),
    #d9c395;
}
.house-plan::before,.house-plan::after { content:"";position:absolute;z-index:-1;left:4%;right:4%;border:1px solid rgba(75,54,31,.18);border-radius:22px;box-shadow:0 1px rgba(255,255,255,.38) inset;pointer-events:none; }
.house-plan::before { top:5%;height:48%;background:rgba(255,247,222,.12); }
.house-plan::after { top:57%;bottom:5%;border-style:dashed;background:rgba(78,58,37,.025); }
.plan-paper-noise { position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E"); }
.plan-lines { position:absolute;z-index:0;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none; }
.plan-lines path { fill:none;stroke:#6d5436;stroke-width:2;stroke-linecap:round;stroke-dasharray:3 7;opacity:.23;vector-effect:non-scaling-stroke; }
.plan-lines path.is-known { stroke:#49695f;stroke-width:2.3;stroke-dasharray:none;opacity:.67; }
.plan-lines path.is-secret { stroke:#7d4f6a;stroke-dasharray:3 6; }
.plan-lines path.is-objective { stroke:#b47727;stroke-width:4;opacity:.86;filter:drop-shadow(0 0 4px rgba(180,119,39,.25));animation:map-route-pulse 1.8s ease-in-out infinite alternate; }
.plan-floor-label { position:absolute;z-index:1;display:flex;align-items:center;gap:10px;color:rgba(75,54,31,.54);font:900 .55rem/1 system-ui;letter-spacing:.18em;text-transform:uppercase; }
.plan-floor-label::after { content:"";display:block;width:70px;height:1px;background:currentColor;opacity:.35; }
.plan-floor-label.upstairs { left:6%;top:7.5%; }
.plan-floor-label.main { left:6%;top:35%; }
.plan-floor-label.beyond { left:6%;top:59%; }

.plan-room {
  --room-x:50%;--room-y:50%;
  position:absolute;z-index:2;left:var(--room-x);top:var(--room-y);
  width:138px;min-height:70px;padding:11px 12px 10px;
  border:1px solid rgba(75,54,31,.55);border-radius:12px;
  color:#3e2d1d;background:linear-gradient(145deg,rgba(250,240,207,.95),rgba(230,210,167,.92));
  box-shadow:0 8px 18px rgba(71,49,25,.09),0 1px rgba(255,255,255,.55) inset;
  text-align:left;transform:translate(-50%,-50%) rotate(var(--tilt,-.25deg));appearance:none;font-family:Georgia,serif;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,filter .18s ease;
}
.plan-room::before { content:"";position:absolute;inset:4px;border:1px solid rgba(78,56,32,.1);border-radius:8px;pointer-events:none; }
button.plan-room { cursor:pointer; }
button.plan-room:hover,button.plan-room:focus-visible { outline:0;border-color:#28695d;box-shadow:0 10px 25px rgba(60,45,26,.14),0 0 0 4px rgba(44,110,96,.15);transform:translate(-50%,-50%) rotate(0) translateY(-2px); }
.map-room-kicker { display:block;margin-bottom:5px;color:#8a693b;font:900 .48rem/1 system-ui;letter-spacing:.13em;text-transform:uppercase; }
.plan-room b { display:block;font-size:.86rem;line-height:1.08; }
.plan-room small { display:block;margin-top:5px;color:#806b50;font:650 .57rem/1.15 system-ui; }
.plan-room.is-unvisited { border-style:dashed;filter:saturate(.7); }
.plan-room.is-unvisited small::after { content:" · visit to travel"; }
.plan-room.is-unknown { min-height:58px;border-style:dashed;border-color:rgba(77,57,34,.3);color:transparent;background:rgba(92,68,40,.035);box-shadow:none;opacity:.58; }
.plan-room.is-unknown::before { border-style:dashed; }
.plan-room.is-unknown .map-room-kicker,.plan-room.is-unknown small { display:none; }
.plan-room.is-unknown b { color:transparent; }
.plan-room.is-unknown b::before { content:"?";position:absolute;left:50%;top:13px;color:rgba(74,55,35,.55);font:italic 700 1rem Georgia,serif;transform:translateX(-50%); }
.plan-room.is-unknown b::after { content:"Uncharted";position:absolute;left:50%;top:34px;color:rgba(74,55,35,.55);font:800 .5rem/1 system-ui;letter-spacing:.12em;text-transform:uppercase;transform:translateX(-50%); }
.plan-room.is-current { border:2px solid #2d7567;background:linear-gradient(145deg,#edf1d8,#d8e4c2);box-shadow:0 0 0 5px rgba(45,117,103,.14),0 10px 24px rgba(53,72,51,.14); }
.plan-room.is-current::after { content:"YOU ARE HERE";position:absolute;left:50%;top:-20px;min-width:max-content;padding:4px 7px;border-radius:999px;color:#fff;background:#2f6f64;font:900 .45rem/1 system-ui;letter-spacing:.11em;transform:translateX(-50%); }
.plan-room.is-objective { border-color:#a96c20;box-shadow:0 0 0 5px rgba(178,116,34,.14),0 10px 22px rgba(71,49,25,.1);animation:map-objective 1.6s ease-in-out infinite alternate; }
.plan-room.is-changed > i { position:absolute;right:-5px;top:-5px;width:13px;height:13px;border:3px solid #dfcb9d;border-radius:50%;background:#a64e59;box-shadow:0 2px 7px rgba(75,25,30,.25); }
.plan-room .map-cat { position:absolute;left:50%;top:-20px;bottom:auto;padding:3px 6px;border:1px solid #6d5738;border-radius:999px;color:#342819;background:#e7d3a3;box-shadow:0 3px 8px rgba(72,48,24,.16);font:900 .42rem/1 system-ui;letter-spacing:.08em;transform:translateX(-50%); }
.plan-room.is-ending { background:linear-gradient(145deg,#f3e6b9,#bcd7b8); }

.map-legend { position:absolute;z-index:3;left:5%;top:52%;bottom:auto;display:flex;flex-wrap:wrap;gap:8px 14px;max-width:420px;padding:8px 11px;border:1px solid rgba(75,53,30,.17);border-radius:12px;color:#68543b;background:rgba(239,222,180,.9);box-shadow:0 5px 18px rgba(79,55,28,.08);font:800 .53rem/1 system-ui; }
.map-legend span { display:flex;align-items:center;gap:5px; }
.map-legend i { width:9px;height:9px;border:1px solid #6f5739;border-radius:2px;background:#efe0b9; }
.map-legend .legend-current { border:2px solid #397566;background:#edf2d7; }
.map-legend .legend-objective { border-color:#b57c2b;box-shadow:0 0 0 2px rgba(181,124,43,.18); }
.map-legend .legend-changed { border:0;border-radius:50%;background:#a95861; }
.map-legend .legend-cat { width:auto;height:auto;padding:2px 4px;border-radius:99px;font-size:.38rem;letter-spacing:.05em; }
.map-note { position:absolute;right:5%;bottom:19px;max-width:240px;margin:0;color:#6d573d;font:italic .64rem/1.4 Georgia,serif;text-align:right; }

@keyframes map-objective { to{box-shadow:0 0 0 8px rgba(194,135,47,.07),0 10px 22px rgba(71,49,25,.1)} }
@keyframes map-route-pulse { to{opacity:.4} }
@media(max-width:760px){
  .wayfinder-dialog.is-house-map .map-journal-head{display:block;padding:22px 58px 17px 20px}.map-journal-head::before{margin-bottom:8px}.map-journal-head h2{font-size:1.75rem!important}.map-journal-head p{font-size:.66rem}.map-floor-tabs{margin-top:14px}.map-floor-tabs button:first-child{display:none}
  .wayfinder-map.progressive-map{max-height:calc(100dvh - 194px)}.house-plan{width:820px;height:640px}.map-note{display:none}.map-legend{right:5%;max-width:none;border-radius:12px}
}
@media(max-width:430px){.wayfinder-dialog.is-house-map{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);border-radius:18px}.wayfinder-dialog.is-house-map .map-journal-head{padding-left:16px}.map-journal-head p{display:none}.wayfinder-map.progressive-map{max-height:calc(100dvh - 139px)}}
@media(prefers-reduced-motion:reduce){.plan-room,.plan-room.is-objective,.plan-lines path.is-objective{animation:none;transition:none}}
