: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)}


/* v24 — beginner guide + team-chat share stage */
.beginner-guide{margin-top:14px;padding:0;overflow:hidden;border-color:#3c3030}
.beginner-guide summary{cursor:pointer;list-style:none;padding:15px 18px;font-weight:900;letter-spacing:.04em;color:#f0dddd;background:linear-gradient(90deg,#1b1112,#111518);user-select:none}
.beginner-guide summary::-webkit-details-marker{display:none}
.beginner-guide summary::after{content:'＋';float:right;color:#d95a52}.beginner-guide[open] summary::after{content:'−'}
.guide-body{padding:0 18px 18px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.guide-grid>div{border:1px solid #302a2a;background:#0d1114;border-radius:9px;padding:14px 16px}.guide-grid h3{margin:0 0 10px;color:#fff}.guide-grid p,.guide-grid li{color:#bdc3c8;line-height:1.55;font-size:13px}.guide-grid ol{margin:0;padding-left:20px}.guide-tip{border-top:1px solid #2e2929;padding-top:10px;color:#e1b5b2!important}
.share-stage{margin:18px auto 28px}.share-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.share-box{min-width:0;border:1px solid #3a2a2a;background:#0c1013;border-radius:10px;padding:14px}.share-box h3{margin:0 0 10px;color:#f2e4e3}.share-box pre{margin:0 0 12px;min-height:170px;max-height:300px;overflow:auto;padding:13px;border:1px solid #2e3439;border-radius:8px;background:#080b0d;color:#e9edef;font:600 13px/1.65 ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',monospace;white-space:pre;tab-size:2}.copy-btn{width:100%;border:1px solid #85423e;background:#321718;color:#fff;border-radius:8px;padding:10px 12px;font-weight:900;cursor:pointer}.copy-btn:hover{background:#472020;border-color:#d15d55}.copy-all{margin-top:12px;background:#501b1d;border-color:#d15d55}
@media(max-width:760px){.guide-grid,.share-grid{grid-template-columns:1fr}.share-box pre{font-size:12px;min-height:130px}}

/* v25 — Live Team Runs */
.team-run{max-width:1376px;margin:20px auto 4px;padding:18px 22px;border-color:#553132;background:linear-gradient(145deg,#171315,#101317)}
.team-run-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.team-run-head h2{font-size:22px}.team-sub{margin-top:5px;color:var(--muted);font-size:13px}.live-badge{padding:6px 10px;border-radius:999px;border:1px solid #3b444d;font-size:10px;font-weight:900;letter-spacing:.12em}.live-badge.local{color:#aab2ba}.live-badge.connecting{color:#f1ca72;border-color:#7a632d;background:#2a2314}.live-badge.live{color:#9aefb9;border-color:#357b50;background:#10291a;box-shadow:0 0 14px rgba(66,209,125,.12)}.live-badge.offline{color:#ffaaaa;border-color:#873838;background:#2b1414}
.team-setup{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(240px,1.3fr);gap:12px;align-items:end;margin-top:16px}.team-setup label,.join-row label{display:grid;gap:6px;color:#b9c0c7;font-size:11px;font-weight:800;letter-spacing:.05em}.team-setup input,.join-row input{width:100%;min-height:42px;border:1px solid #39414a;border-radius:8px;background:#0b0f12;color:#fff;padding:9px 11px;font-size:16px;outline:none}.team-setup input:focus,.join-row input:focus{border-color:#b34c47;box-shadow:0 0 0 3px rgba(211,70,66,.1)}.join-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.team-actions{display:flex;gap:8px;flex-wrap:wrap}.team-run button{min-height:42px;border:1px solid #424b54;background:#171c21;color:#eef1f3;border-radius:8px;padding:9px 13px;font-weight:850;cursor:pointer}.team-run button:hover{border-color:#7b8792;background:#20262c}.team-run .team-primary{border-color:#b84a45;background:#4a181a}.team-run .team-primary:hover{background:#662124}.team-run .team-leave{border-color:#69383a;color:#efb6b6}.invite-detected{grid-column:1/-1;color:#e8c16a;font-size:12px}
.team-connected{margin-top:16px}.room-line{display:flex;gap:28px;flex-wrap:wrap;padding:12px 14px;border:1px solid #332f31;border-radius:9px;background:#0b0e11;margin-bottom:10px}.room-line>div{display:grid;gap:2px}.room-line small{color:#7f8992;font-size:9px;letter-spacing:.13em;font-weight:900}.room-line strong{font:800 17px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}.team-columns{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(280px,1.35fr);gap:12px;margin-top:14px}.team-columns>div{border:1px solid #2d343a;border-radius:9px;background:#0b0f12;padding:12px}.team-columns h3{margin:0 0 9px;font-size:11px;letter-spacing:.1em;color:#c7cdd2}.team-columns h3 b{background:#223029;border-radius:999px;padding:2px 7px;color:#94e9b4}.online-players{display:flex;flex-wrap:wrap;gap:7px}.online-player{padding:6px 9px;border-radius:999px;background:#12261a;border:1px solid #28563a;color:#b8ebca;font-size:12px}.online-player::before{content:'●';color:#42d17d;margin-right:6px}.activity-log{max-height:190px;overflow:auto;display:grid;gap:6px}.activity-item{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:start;font-size:12px;padding:6px 7px;border-bottom:1px solid #20262b}.activity-time{color:#707a83;font-family:ui-monospace,monospace}.activity-who{color:#f0b0ac;font-weight:850}.activity-text{color:#c8ced3}.activity-empty{color:#68727b;font-size:12px;margin:4px 0}
@media(max-width:800px){.team-setup{grid-template-columns:1fr}.invite-detected{grid-column:auto}.team-columns{grid-template-columns:1fr}.team-run{margin-left:12px;margin-right:12px}.team-actions button{flex:1 1 145px}}


/* v25 — DEVOUR-safe team chat + map magnifier */
.chat-message-list{display:grid;gap:10px}.chat-message{border:1px solid #2e3439;border-radius:8px;background:#080b0d;padding:10px}.chat-message-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;color:#8f989f;font-size:10px;font-weight:900;letter-spacing:.08em}.chat-message-head b{color:#d7a29f}.chat-message pre{margin:0 0 9px;min-height:0;max-height:none;overflow:visible;padding:11px;border:1px solid #252c31;border-radius:7px;background:#06090b;color:#e9edef;font:600 13px/1.55 ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',monospace;white-space:pre-wrap;overflow-wrap:anywhere}.map-stage{position:relative}.map-magnifier{position:absolute;width:180px;height:180px;border-radius:50%;border:2px solid rgba(238,104,95,.92);box-shadow:0 0 0 4px rgba(0,0,0,.72),0 0 24px rgba(215,66,66,.35);background-repeat:no-repeat;background-color:#080a0b;pointer-events:none;z-index:50;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .08s ease;overflow:hidden}.map-magnifier.show{opacity:1;visibility:visible}@media (hover:none),(pointer:coarse){.map-magnifier{display:none}}@media(max-width:760px){.chat-message pre{font-size:12px}}

/* v25.1 — compact header controls + collapsible map tools */
.header-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.header-team{border:1px solid #5b4547;background:#171315;color:#eee;border-radius:8px;padding:10px 14px;font-weight:900;cursor:pointer}
.header-team:hover,.header-team.active{border-color:#d15d55;background:#3a1719;color:#fff;box-shadow:0 0 14px rgba(209,93,85,.14)}
.team-run[hidden]{display:none!important}
.share-collapsible{margin-top:14px;padding:0;overflow:hidden;border-color:#3c3030}
.share-collapsible>summary{cursor:pointer;list-style:none;padding:15px 18px;font-weight:900;letter-spacing:.04em;color:#f0dddd;background:linear-gradient(90deg,#1b1112,#111518);user-select:none}
.share-collapsible>summary::-webkit-details-marker{display:none}
.share-collapsible>summary::after{content:'＋';float:right;color:#d95a52}.share-collapsible[open]>summary::after{content:'−'}
.share-collapse-body{padding:14px 18px 18px}.share-note{margin:0 0 12px;color:#929ba2;font-size:12px}
.ritual-split .share-box pre{min-height:96px}
.cleaned-extra{margin-top:12px;border:1px solid #2f3438;border-radius:8px;background:#0b0f12;overflow:hidden}.cleaned-extra>summary{cursor:pointer;padding:11px 13px;color:#cbd1d5;font-weight:850}.cleaned-extra .chat-message-list{padding:0 12px 12px}

/* Magnifier now clones the complete rendered map scene, including active overlays. */
.map-magnifier{background:none!important;width:190px;height:190px}
.map-magnifier-scene{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none}
.map-magnifier-scene>img{display:block;width:100%;height:auto}
.map-magnifier-scene .map-nav-layer,.map-magnifier-scene .map-overlay{pointer-events:none}
.map-magnifier-scene .map-hotspot{pointer-events:none}
@media(max-width:620px){header{align-items:flex-start}.header-actions{gap:6px}.header-actions button{padding:9px 10px}.share-collapse-body{padding:12px}.ritual-split{grid-template-columns:1fr}}

/* v25.2 — header Beginner button + Team/Guide popup windows */
.modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.78);backdrop-filter:blur(5px)}
.modal-backdrop[hidden]{display:none!important}
body.modal-open{overflow:hidden}
.modal-window{position:relative;width:min(760px,calc(100vw - 28px));max-height:min(82vh,760px);overflow:auto;margin:0!important;padding:22px!important;border-color:#663536!important;box-shadow:0 20px 80px rgba(0,0,0,.72),0 0 28px rgba(176,38,38,.15)}
.modal-close{position:absolute;right:12px;top:10px;z-index:3;width:40px;height:40px;min-height:40px!important;padding:0!important;border:1px solid #5c3a3c!important;border-radius:9px!important;background:#1d1214!important;color:#eee!important;font-size:27px!important;line-height:1!important;cursor:pointer}
.modal-close:hover{background:#3c171a!important;border-color:#d15d55!important}
.guide-modal h2{margin:2px 48px 16px 0}
.guide-modal .guide-body{padding:0}
.guide-modal .guide-grid{margin-top:8px}
@media(max-width:760px){.modal-backdrop{padding:10px}.modal-window{width:calc(100vw - 20px);max-height:88vh;padding:18px!important}.guide-modal .guide-grid{grid-template-columns:1fr}}


/* v25.3 — Share Rituals polish, cleaned egg art, larger/cleaned map markers */
.share-stage{width:100%;max-width:none;grid-column:1/-1;margin:14px 0 28px}
.share-collapsible>summary{font-size:15px}
.cleaned-extra>summary{display:flex;align-items:center;gap:9px}
.cleaned-egg-icon{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 0 7px rgba(255,255,255,.12))}
.map-hotspot{width:clamp(34px,3.6vw,50px);height:clamp(34px,3.6vw,50px)}
.map-marker-img{width:92%;height:92%}
.map-hotspot .map-marker-img{filter:brightness(.68) saturate(1.08) drop-shadow(0 0 8px rgba(255,45,35,.78))!important;opacity:.96}
.map-hotspot.cleaned-map{border-color:#45d47e;background:rgba(13,67,37,.42);box-shadow:0 0 0 3px rgba(66,209,125,.10),0 0 18px rgba(66,209,125,.30)}
.map-hotspot.cleaned-map .map-marker-img{filter:brightness(.78) sepia(.18) hue-rotate(78deg) saturate(2.2) drop-shadow(0 0 8px rgba(66,209,125,.95)) drop-shadow(0 0 15px rgba(30,150,78,.62))!important;opacity:1}
.map-hotspot.cleaned-map.current-map-room .map-marker-img,.map-hotspot.cleaned-map.link-focus .map-marker-img{filter:brightness(.9) sepia(.16) hue-rotate(78deg) saturate(2.3) drop-shadow(0 0 11px rgba(66,209,125,1))!important}
/* Keep the LIVE/LOCAL badge clear of the modal close button. */
.team-run-head{padding-right:58px}
.team-run-head .live-badge{flex:0 0 auto;margin-right:2px}
@media(max-width:620px){.team-run-head{padding-right:48px}.team-run-head{flex-direction:column}.team-run-head .live-badge{align-self:flex-start}}


/* v25.4 — ritual state layers: red not burned, yellow cleaned, green burned */
.map-layers{flex-wrap:wrap;justify-content:flex-end}
.layer-toggle.cleaned-layer.active{border-color:#8a7326;background:#2d2713;color:#ffe47a}
.layer-toggle.burned-layer.active{border-color:#2e754a;background:#13291c;color:#9af0b8}
.map-hotspot.cleaned-map{border-color:#e2bd3f;background:rgba(82,67,13,.44);box-shadow:0 0 0 3px rgba(226,189,63,.11),0 0 18px rgba(226,189,63,.32)}
.map-hotspot.cleaned-map .map-marker-img{filter:brightness(.92) sepia(.75) hue-rotate(350deg) saturate(3.1) drop-shadow(0 0 8px rgba(255,211,62,.98)) drop-shadow(0 0 15px rgba(181,135,20,.68))!important;opacity:1}
.map-hotspot.cleaned-map.current-map-room .map-marker-img,.map-hotspot.cleaned-map.link-focus .map-marker-img{filter:brightness(1) sepia(.8) hue-rotate(350deg) saturate(3.2) drop-shadow(0 0 11px rgba(255,220,70,1))!important}
.map-hotspot.burned-map{border-color:#45d47e;background:rgba(13,67,37,.42);box-shadow:0 0 0 3px rgba(66,209,125,.10),0 0 18px rgba(66,209,125,.30)}
.map-hotspot.burned-map .map-marker-img{filter:brightness(.82) sepia(.2) hue-rotate(78deg) saturate(2.35) drop-shadow(0 0 8px rgba(66,209,125,.98)) drop-shadow(0 0 15px rgba(30,150,78,.65))!important;opacity:1}
.share-collapsible>summary{white-space:normal}
.share-collapsible>summary::after{content:'+'}
.share-collapsible[open]>summary::after{content:'−'}

/* Multi-map selection: other maps intentionally disabled until configured. */
.map-select-modal h2{margin:2px 48px 10px 0}
.map-select-help{color:var(--muted);font-size:13px;line-height:1.55;margin-bottom:16px}
.map-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.map-choice{display:flex;flex-direction:column;gap:9px;border:1px solid #353b42;border-radius:11px;padding:16px;background:#101418}
.map-choice.is-ready{border-color:#ad4545;background:#201316}
.map-choice strong{font-size:16px}
.map-choice span{font-size:12px;color:var(--muted)}
.map-choice button{margin-top:auto;border:1px solid #a94b46;border-radius:8px;background:#45191b;color:white;padding:10px;cursor:pointer;font-weight:800}
.map-choice button:disabled{border-color:#394049;background:#202429;color:#8a929b;cursor:not-allowed}
@media(max-width:540px){.map-choice-grid{grid-template-columns:1fr}}

/* DEVOUR FIX: sticky header above all map circles and magnifier */
header {
  z-index: 200;
  isolation: isolate;
}
/* Keep map markers and the magnifier beneath the sticky header. */
.map-card, .map-stage { z-index: auto; }

/* DEVOUR Lobby v2 — public browser + private invites */
.lobby-setup{margin-top:16px;display:grid;gap:14px}.lobby-setup .lobby-field{display:grid;gap:7px;color:#c0c7cf;font-size:12px;font-weight:800}.lobby-setup input,.lobby-setup select{width:100%;min-height:42px;border:1px solid #39414a;border-radius:8px;background:#0b0f12;color:#fff;padding:9px 11px;font-size:14px}.lobby-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lobby-panel{min-width:0;border:1px solid #353038;border-radius:11px;padding:15px;background:#0c1013;display:grid;gap:12px}.lobby-panel h3{font-size:15px;margin:0}.lobby-panel p{color:#9aa4ae;font-size:12px;line-height:1.5}.lobby-panel .join-row{grid-template-columns:minmax(0,1fr) auto}.lobby-panel .join-row label{min-width:0}.lobby-browser-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.public-lobby-list{display:grid;gap:8px}.lobby-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #303a40;background:#11171a;border-radius:9px;padding:10px 12px}.lobby-card>div{display:grid;gap:5px;min-width:0}.lobby-card strong{overflow-wrap:anywhere}.lobby-card small{color:#9aa4ae}.lobby-card button:disabled{opacity:.5;cursor:not-allowed}.lobby-setup .invite-detected{color:#f0c76b}.team-run .room-line{gap:18px}.team-run .room-line strong{font-size:14px;letter-spacing:0;overflow-wrap:anywhere}.team-run #closeLobby[hidden]{display:none!important}
@media(max-width:680px){.lobby-two{grid-template-columns:1fr}}

/* Lobby V3 — focused host/join views */
.lobby-home,.lobby-screen{margin-top:15px}.lobby-home[hidden],.lobby-screen[hidden],#invitePanel[hidden]{display:none!important}
.lobby-help{font-size:12px;color:#9ca5ae;line-height:1.6;margin:9px 0 14px}
.lobby-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.team-run .lobby-choice{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;min-height:140px;font-size:28px;border:1px solid #633a3d;background:#211519;border-radius:13px}
.lobby-choice strong{font-size:17px}.lobby-choice small{font-size:12px;color:#aab0b6}
.team-run .lobby-back{min-height:30px;padding:5px 9px;margin-bottom:12px;background:transparent;color:#c3cbd2}
.lobby-screen>h3{margin:0 0 16px;font-size:19px}
.lobby-screen .lobby-field{margin:10px 0 14px;display:grid;gap:7px;font-size:12px;font-weight:800;color:#c5cbd0}
.lobby-screen .lobby-field input{width:100%;min-height:43px;border:1px solid #414851;border-radius:8px;background:#0b0f12;color:#fff;padding:10px 12px;font-size:15px}
.lobby-toggle-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;font-size:12px;font-weight:800}
.team-run #lobbyVisibilityButton{min-width:135px;border-color:#4b755f;background:#102a1c;color:#a8efc2}
.team-run #lobbyVisibilityButton[aria-pressed="true"]{border-color:#8a6546;background:#302115;color:#f5ce9c}
.team-run .lobby-wide{width:100%;margin-top:8px}
.lobby-browser-head{margin:18px 0 10px}
.lobby-card{gap:12px}.lobby-card small{display:block;margin-top:5px;color:#a3abb3}
#invitePanel{border:1px solid #745936;padding:12px;border-radius:10px;margin:10px 0}
@media(max-width:540px){.lobby-choice-grid{grid-template-columns:1fr}.team-run .lobby-choice{min-height:105px}}

/* Multiplayer V4: clean joining and status */
.live-badge[hidden]{display:none!important}
.join-code-box{display:flex;gap:10px;align-items:end;padding:14px;border:1px solid #343c45;border-radius:10px;background:#0e1418;margin-top:16px}
.join-code-box .lobby-field{flex:1;margin:0!important}
.join-code-box button{white-space:nowrap}
@media(max-width:520px){.join-code-box{flex-direction:column;align-items:stretch}.join-code-box button{width:100%}}

/* Lobby V5: strictly separate screens and inline validation */
#teamSetup[hidden],#teamConnected[hidden],#lobbyHome[hidden],#lobbyHostScreen[hidden],#lobbyJoinScreen[hidden],#hostPasswordField[hidden],#joinPasswordField[hidden],#hostError[hidden],#joinError[hidden],#leaveTeam[hidden],#closeLobby[hidden]{display:none!important}
.lobby-error{padding:10px 12px;margin:10px 0;color:#ffd2d2;background:#351719;border:1px solid #a44444;border-radius:8px;font-size:13px}
.lobby-screen{max-width:640px;margin-inline:auto}.lobby-screen .lobby-field{width:100%}.lobby-screen .lobby-field input{min-width:0}
#teamSetup{display:block}.team-run-head .live-badge.local{display:none!important}
#toast{z-index:1100}
@media(max-width:620px){.lobby-card{align-items:flex-start}.lobby-card button{flex-shrink:0}}
