:root{--bg:#090b0d;--panel:#12161a;--panel2:#181d22;--line:#293039;--text:#f1f3f4;--muted:#89939e;--red:#d64242;--red2:#6d1d1d;--green:#42d17d;--green2:#123c27;--cyan:#58d5df}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 20% -10%,#2a1515 0,transparent 30%),var(--bg);color:var(--text);font:15px Inter,system-ui,Segoe UI,sans-serif;min-height:100vh}button{font:inherit;color:inherit}header{height:78px;padding:0 max(22px,calc((100vw - 1420px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#0b0e11e8;position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}h1,h2,p{margin:0}h1{font-size:22px;letter-spacing:.5px}h2{font-size:25px}.eyebrow{font-size:10px;letter-spacing:2px;color:#b66b6b;font-weight:800;margin-bottom:4px}.danger,.actions button,.map-tabs button{background:#181d22;border:1px solid #343c45;border-radius:9px;padding:10px 14px;cursor:pointer}.danger:hover{border-color:var(--red);color:#ffb0b0}.active,.burned,.status,main{max-width:1420px;margin:0 auto}.active{padding:25px 22px 12px}.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:13px}.section-title>div{font-weight:800;letter-spacing:1px}.section-title b{background:#272d34;border-radius:999px;padding:3px 8px;margin-left:7px}.section-title small,.hint,.map-note{color:var(--muted)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 12px var(--red);margin-right:7px}.egg-grid{display:flex;gap:12px;min-height:120px;overflow-x:auto;padding:3px 1px 10px}.egg-grid.empty:after{content:'No eggs here yet';color:#5f6872;border:1px dashed #303840;border-radius:12px;display:grid;place-items:center;width:100%;min-height:95px}.egg{min-width:145px;background:linear-gradient(160deg,#1c2025,#101316);border:1px solid #303740;border-radius:13px;padding:12px;text-align:center}.egg .icon{font-size:43px;line-height:1.05;color:#ff6a6a;text-shadow:0 0 15px #b92d2d}.egg strong{display:block;margin:6px 0 2px}.egg small{color:var(--muted);display:block;height:34px}.egg button{width:100%;margin-top:8px;padding:7px;border:1px solid #633;background:#2b1717;border-radius:7px;cursor:pointer}.egg button:hover{background:#552020}main{display:grid;grid-template-columns:minmax(390px,.85fr) minmax(520px,1.35fr);gap:18px;padding:10px 22px 18px}.card{background:linear-gradient(145deg,#15191e,#101317);border:1px solid var(--line);border-radius:15px}.finder{padding:22px}.progress-row{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:700}.progress-row span:first-child{color:var(--cyan)}.bar{height:4px;background:#242a30;border-radius:9px;margin:10px 0 27px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:var(--red);transition:.25s}.finder h2{font-size:29px;margin-bottom:7px}.hint{line-height:1.5}.symbols{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:24px 0 18px}.symbol{aspect-ratio:1;background:#1b2025;border:1px solid #333b44;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:.12s}.symbol:hover{transform:translateY(-2px);border-color:#a74444;background:#29191a}.symbol .glyph{font-size:29px;color:#ff6666}.symbol span:last-child{font-size:10px;color:#adb5bd}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.actions button:hover,.map-tabs button:hover{border-color:#69737d}.actions #skip{border-color:#765e2d;background:#2a2417}.skipped-notice{color:#e8c16a;font-size:12px;margin-top:15px;min-height:18px}.map-card{padding:18px;overflow:hidden}.map-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.map-tabs{display:flex;gap:6px}.map-tabs button{padding:7px 10px;font-size:12px}.map-tabs .selected{background:#352020;border-color:#7e3434}.map-wrap{height:455px;background:#090b0d;border:1px solid #282e34;border-radius:10px;overflow:hidden;display:grid;place-items:center}.map-wrap img{width:100%;height:100%;object-fit:contain}.map-note{font-size:11px;margin-top:8px}.status{margin:0 auto 24px;padding:20px 22px}.room-status{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:15px}.room{border:1px solid #2c333a;background:#11151a;border-radius:9px;padding:9px 10px}.room strong{display:block;font-size:12px}.room small{color:#77818b}.room.done{border-left:3px solid #4aa66e}.room.skipped{border-left:3px solid #d8a63e}.burned{margin-bottom:50px;padding:25px 22px;background:linear-gradient(180deg,#10261a88,transparent);border-top:1px solid #285d3c}.burned .section-title>div{color:#75e6a1}.burned .egg{border-color:#245238}.burned .egg .icon{color:#7be5a4;text-shadow:0 0 15px #267848}.burned .egg button{display:none}#toast{position:fixed;right:22px;bottom:22px;background:#20262c;border:1px solid #3b444d;padding:10px 15px;border-radius:9px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}@media(max-width:900px){main{grid-template-columns:1fr}.map-wrap{height:360px}.room-status{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.section-title{align-items:start;gap:8px;flex-direction:column}.symbols{grid-template-columns:repeat(3,1fr)}main,.active,.status,.burned{padding-left:12px;padding-right:12px}.map-wrap{height:280px}.egg{min-width:125px}.room-status{grid-template-columns:1fr}header{padding:0 13px}}

/* v2: editing + undo + unique egg protection */
.undo{display:block;width:100%;margin-top:10px;padding:12px 16px;border:1px solid #39414c;border-radius:10px;background:#171b21;color:#d8dde5;font-weight:700;cursor:pointer}.undo:hover:not(:disabled){background:#20262e;border-color:#67717e}.undo:disabled{opacity:.45;cursor:not-allowed}.symbol.used{opacity:.34;cursor:not-allowed;filter:grayscale(1)}.symbol small{display:block;margin-top:4px;font-size:10px;color:#99a2ad}.symbol.current{outline:2px solid #77b77a;outline-offset:2px}.room{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.room:hover{transform:translateY(-1px);border-color:#66717d;background:#171c22}.room.selected-room{outline:1px solid #d38a78;outline-offset:1px}

/* v3: stack the room question and map vertically */
main{grid-template-columns:1fr;max-width:1420px}
.finder,.map-card{width:100%}
.map-wrap{height:min(68vh,720px);min-height:455px}
@media(max-width:900px){.map-wrap{height:55vh;min-height:360px}}
@media(max-width:540px){.map-wrap{height:42vh;min-height:280px}}

/* v4: keep all drawing/symbol buttons on one straight horizontal line */
.symbols{display:flex;flex-wrap:nowrap;gap:9px;overflow-x:auto;padding:2px 1px 10px;scrollbar-width:thin}
.symbol{flex:1 0 105px;min-width:105px;max-width:none;aspect-ratio:auto;min-height:100px}
@media(max-width:540px){.symbols{display:flex;flex-wrap:nowrap}.symbol{flex:0 0 105px}}
.egg-actions{display:flex;gap:8px;width:100%;margin-top:8px}.egg-actions button{flex:1}.found-btn{border-color:#4f7f68!important}.found-btn.is-found,.found-egg{box-shadow:inset 0 0 0 1px rgba(93,190,132,.55)}.restore-btn{margin-top:8px;width:100%;background:#173425!important;border-color:#4f8f68!important}

/* v8: finder sits below the map and hides after all 10 altar symbols are located. */
.finder-hidden{display:none!important}
/* v11: burned eggs can be restored after a confirmed misclick */
.burned .egg .restore-btn{display:block;width:100%;margin-top:8px;padding:7px 8px;border:1px solid #4d765d;background:#15291d;color:#b8efcb;border-radius:7px;cursor:pointer;font-size:12px}
.burned .egg .restore-btn:hover{background:#1d3a28;border-color:#6bb287}

/* v12: make the accidental-burn recovery action clearly destructive/red */
.burned .egg .restore-btn{
  display:block;
  background:#5a1717!important;
  border-color:#b83a3a!important;
  color:#ffd6d6!important;
}
.burned .egg .restore-btn:hover{
  background:#7a2020!important;
  border-color:#e05252!important;
  color:#fff!important;
}

/* v13: real altar/egg artwork + restrained horror glow */
.symbol{
  position:relative; overflow:hidden; isolation:isolate;
  min-height:132px; padding:9px 7px 8px;
  background:linear-gradient(180deg,rgba(25,29,34,.96),rgba(12,15,18,.98));
  border-color:#343b43;
}
.symbol::before{
  content:""; position:absolute; width:72px; height:72px; border-radius:50%;
  background:rgba(220,35,35,.18); filter:blur(20px); opacity:.72; z-index:-1;
  transition:.18s ease;
}
.symbol:hover::before,.symbol.current::before{opacity:1; transform:scale(1.18); background:rgba(240,42,42,.27)}
.symbol-art{width:78px;height:78px;display:grid;place-items:center;filter:drop-shadow(0 0 6px rgba(225,32,32,.55)) drop-shadow(0 0 15px rgba(150,0,0,.25));transition:.16s ease}
.symbol:hover .symbol-art{transform:scale(1.06);filter:drop-shadow(0 0 8px rgba(255,60,60,.78)) drop-shadow(0 0 22px rgba(180,0,0,.4))}
.symbol-art img{width:100%;height:100%;object-fit:contain;display:block}
.symbol-name{font-size:11px!important;color:#e5e8eb!important;font-weight:750;letter-spacing:.1px}
.symbol.used .symbol-art{filter:grayscale(1) brightness(.55);opacity:.6}
.symbol.current{border-color:#6eaa78;background:linear-gradient(180deg,#19221d,#101613)}

.egg{position:relative;overflow:hidden;isolation:isolate;min-width:166px;padding:13px 12px 12px;background:linear-gradient(160deg,#191e23,#0e1114)}
.egg::before{content:"";position:absolute;left:50%;top:12px;translate:-50% 0;width:92px;height:92px;border-radius:50%;background:rgba(230,235,240,.11);filter:blur(23px);z-index:-1}
.egg-art{height:94px;display:grid;place-items:center;margin:-2px 0 3px;filter:drop-shadow(0 0 8px rgba(235,240,245,.22)) drop-shadow(0 0 18px rgba(190,205,220,.12))}
.egg-art img{width:90px;height:90px;object-fit:contain;display:block}
.egg.found-egg{border-color:#4d8d68;box-shadow:inset 0 0 0 1px rgba(93,190,132,.38),0 0 20px rgba(65,190,115,.08)}
.egg.found-egg::before{background:rgba(86,218,139,.16)}
.egg.found-egg .egg-art{filter:drop-shadow(0 0 9px rgba(110,235,160,.35)) drop-shadow(0 0 20px rgba(45,155,95,.16))}
.burned .egg{background:linear-gradient(160deg,#142119,#0c1210);border-color:#285b3c}
.burned .egg::before{background:rgba(70,210,125,.15)}
.burned .egg-art{filter:drop-shadow(0 0 9px rgba(95,230,145,.38)) drop-shadow(0 0 22px rgba(35,150,80,.16));opacity:.9}
.burned .egg strong{color:#a8f0c2}
@media(max-width:540px){.symbol{flex-basis:112px;min-height:125px}.symbol-art{width:70px;height:70px}.egg{min-width:150px}.egg-art{height:86px}.egg-art img{width:82px;height:82px}}

/* v14: dual interactive floor maps */
.interactive-map-card{padding:18px}.interactive-map-card .map-head{margin-bottom:14px}.interactive-map-card .map-note{margin-top:4px}.dual-maps{display:grid;grid-template-columns:1fr 1fr;gap:14px}.floor-map{min-width:0;border:1px solid #2a3138;border-radius:12px;overflow:hidden;background:#090b0d;transition:.2s}.floor-map.floor-dim{opacity:.52;filter:saturate(.65)}.floor-map.floor-active{border-color:#683838;box-shadow:inset 0 0 0 1px rgba(215,66,66,.18),0 0 22px rgba(130,15,15,.12)}.floor-label{padding:8px 11px;font-size:10px;letter-spacing:1.7px;font-weight:850;color:#c6cbd0;background:#101419;border-bottom:1px solid #282f36}.map-stage{position:relative;aspect-ratio:16/9;background:#080a0c}.map-stage>img{display:block;width:100%;height:100%;object-fit:contain}.map-overlay{position:absolute;inset:0}.map-hotspot{position:absolute;transform:translate(-50%,-50%);width:clamp(28px,3vw,42px);height:clamp(28px,3vw,42px);border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(8,10,12,.45);cursor:pointer;display:grid;place-items:center;transition:.15s;z-index:2}.map-hotspot:hover,.map-hotspot:focus-visible{border-color:#ff6b6b;background:rgba(90,15,15,.55);box-shadow:0 0 0 4px rgba(220,45,45,.11),0 0 18px rgba(225,45,45,.35);outline:none}.map-hotspot.current-map-room{border-color:#ff6464;box-shadow:0 0 0 5px rgba(220,45,45,.13),0 0 22px rgba(235,40,40,.5);animation:mapPulse 1.45s ease-in-out infinite}.map-marker-img{width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 0 5px rgba(255,35,35,.85)) drop-shadow(0 0 12px rgba(180,0,0,.65));pointer-events:none}.map-check{font-weight:900;color:#7ee5a5;font-size:18px;text-shadow:0 0 10px rgba(65,210,125,.55)}.map-hotspot.skipped-map{border-color:#9a792f}.map-hotspot.empty-map{border-color:#3d7754}.map-tip{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);white-space:nowrap;padding:4px 6px;border-radius:5px;background:#0b0e11e8;border:1px solid #313941;color:#dfe3e7;font-size:9px;opacity:0;pointer-events:none;z-index:8}.map-hotspot:hover .map-tip,.map-hotspot:focus-visible .map-tip{opacity:1}@keyframes mapPulse{50%{box-shadow:0 0 0 8px rgba(220,45,45,.06),0 0 30px rgba(235,40,40,.65)}}
@media(prefers-reduced-motion:reduce){.map-hotspot.current-map-room{animation:none}}
@media(max-width:900px){.dual-maps{grid-template-columns:1fr}.floor-map.floor-dim{opacity:.72}.map-hotspot{width:38px;height:38px}}

/* v19 — map navigation layers + egg/map linking */
.map-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.map-layers{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.layer-toggle{border:1px solid #3a424b;background:#10151a;color:#d8dee5;border-radius:7px;padding:7px 10px;font-size:11px;font-weight:800;letter-spacing:.04em;cursor:pointer}
.layer-toggle.active{border-color:#a94943;background:#251414;color:#fff}
.map-nav-layer{position:absolute;inset:0;pointer-events:none;z-index:3}
.nav-mark{position:absolute;transform:translate(-50%,-50%);border-radius:999px;opacity:.72;transition:.15s ease;box-shadow:0 0 7px currentColor}
.nav-mark.door{background:#238be6;color:#238be6;min-width:4px;min-height:4px}
.nav-mark.stair{background:#ff6a1a;color:#ff6a1a;opacity:.78}
.nav-mark.gap{background:#18b85a;color:#18b85a;opacity:.72}
.nav-mark::after{content:attr(data-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:8px;font-weight:900;color:#fff;text-shadow:0 1px 3px #000;white-space:nowrap;opacity:0}
.map-stage:hover .nav-mark{opacity:.9}
.map-overlay{z-index:5}
.map-hotspot .map-marker-img{filter:brightness(.58) saturate(.95) drop-shadow(0 0 7px rgba(255,45,35,.65))!important;opacity:.88}
.map-hotspot.current-map-room .map-marker-img,.map-hotspot.link-focus .map-marker-img{filter:brightness(.72) saturate(1.05) drop-shadow(0 0 10px rgba(255,55,45,.9))!important;opacity:1}
.egg{cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.egg:hover{transform:translateY(-2px)}
.egg.link-focus{border-color:#e25a51!important;box-shadow:0 0 0 1px rgba(226,90,81,.45),0 0 22px rgba(226,90,81,.18)!important}
.map-hotspot.link-focus{z-index:12!important;box-shadow:0 0 0 2px rgba(255,105,95,.85),0 0 24px rgba(255,55,45,.55)!important}
.map-tip.linked-tip{opacity:1!important;visibility:visible!important}
\n\n/* v20 — completed-map focus, clearer layers, line gaps, improved stairs */
.layer-toggle[data-layer="altars"]{border-color:#743332;color:#ffaaa5;background:#1d1112}
.layer-toggle[data-layer="altars"].active{border-color:#e4574f;background:#3a1517;color:#fff;box-shadow:0 0 12px rgba(228,87,79,.18)}
.layer-toggle[data-layer="doors"]{border-color:#245b82;color:#8dcfff;background:#0d1821}
.layer-toggle[data-layer="doors"].active{border-color:#3199e8;background:#102b40;color:#fff;box-shadow:0 0 12px rgba(49,153,232,.18)}
.layer-toggle[data-layer="nav"]{border-color:#8a6428;color:#ffd58c;background:linear-gradient(90deg,#25180e,#102016)}
.layer-toggle[data-layer="nav"].active{border-color:#e89035;color:#fff;background:linear-gradient(90deg,#4a260e 0 52%,#123d25 52% 100%);box-shadow:0 0 12px rgba(232,144,53,.16),0 0 12px rgba(35,190,95,.10)}
.layer-toggle:not(.active){opacity:.58;filter:saturate(.65)}

/* Doors and gaps are both literal map lines now. */
.nav-mark.door,.nav-mark.gap{border-radius:999px;min-width:4px;min-height:4px}
.nav-mark.gap{background:#20c86a;color:#20c86a;opacity:.82;box-shadow:0 0 5px rgba(32,200,106,.65),0 0 11px rgba(32,200,106,.28)}

/* Stair markers: compact orange floor-transition plaques with visible steps. */
.nav-mark.stair{
  border-radius:5px;
  opacity:.96;
  border:1px solid rgba(255,177,92,.92);
  background:
    linear-gradient(90deg,transparent 0 72%,rgba(255,255,255,.22) 72% 76%,transparent 76%),
    repeating-linear-gradient(0deg,#ff6a1a 0 3px,#b83f0b 3px 5px);
  color:#ff7b2d;
  box-shadow:0 0 0 1px rgba(55,20,4,.72),0 0 10px rgba(255,91,20,.58),inset 0 0 8px rgba(70,18,0,.38);
}
.nav-mark.stair::before{
  content:"↕";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  color:#fff;font-size:clamp(8px,.75vw,12px);font-weight:1000;line-height:1;
  text-shadow:0 1px 3px #4a1200,0 0 5px #ff7a24;
}
.nav-mark.stair::after{display:none}

/* When all ten altar locations are known, both floors are treated as active/completed. */
.dual-maps:has(.floor-map.floor-active + .floor-map.floor-active) .floor-map{
  opacity:1;filter:none;border-color:#5f3535;
  box-shadow:inset 0 0 0 1px rgba(215,66,66,.13),0 0 18px rgba(130,15,15,.08);
}

/* v21 — gap geometry re-traced from the same clean map; two-tone stair markers */
.nav-mark.gap{opacity:.94;box-shadow:0 0 4px rgba(32,200,106,.78),0 0 9px rgba(32,200,106,.30)}
.nav-mark.stair{
  border-radius:6px; overflow:hidden; opacity:.98;
  border:1px solid rgba(255,255,255,.30);
  box-shadow:0 0 0 1px rgba(20,12,4,.78),0 0 12px currentColor,inset 0 0 9px rgba(0,0,0,.38);
}
.nav-mark.stair-a{color:#ff6a1a;background:repeating-linear-gradient(0deg,#ff7a24 0 3px,#a93609 3px 6px)}
.nav-mark.stair-b{color:#ffd23f;background:repeating-linear-gradient(0deg,#ffd84b 0 3px,#a86b08 3px 6px)}
.nav-mark.stair::before{content:"";position:absolute;inset:18% 20%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.92) 0 2px,transparent 2px 6px);opacity:.75;filter:drop-shadow(0 1px 1px #000)}
.nav-mark.stair::after{display:block;content:attr(data-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(6px,.48vw,8px);font-weight:1000;letter-spacing:.05em;color:#fff;text-shadow:0 1px 3px #000,0 0 3px #000;opacity:1}


/* v22 — numbered stair pairs and guide-accurate gap overlays */
.nav-mark.gap{z-index:8;opacity:1;background:#20d36d;box-shadow:0 0 3px rgba(32,211,109,.95),0 0 8px rgba(32,211,109,.45)}
.nav-mark.stair{z-index:9}
.nav-mark.stair::after{font-size:clamp(8px,.62vw,11px);font-weight:1000;letter-spacing:0;color:#fff;text-shadow:0 1px 3px #000,0 0 5px #000}


/* v23 — Nothing layer + cave/garden gap */
.layer-toggle[data-layer="nothing"]{border-color:#326447;color:#9ce4b6;background:#0e1d15}
.layer-toggle[data-layer="nothing"].active{border-color:#49c879;background:#153823;color:#fff;box-shadow:0 0 12px rgba(73,200,121,.18)}
