:root{
  --bg-start:#071022; --bg-end:#081827; --card:#0b1220; --accent:#f59e0b; --muted:#9ca3af; color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial;background:linear-gradient(180deg,var(--bg-start) 0%,var(--bg-end) 60%);color:#e6eef8}
header{padding:20px;text-align:center}
.tag{margin:4px 0;color:var(--muted)}
main{max-width:980px;margin:12px auto;padding:12px}
.controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
#askBtn{background:var(--accent);color:#081827;border:0;padding:8px 12px;border-radius:8px;cursor:pointer}
.answer{padding:8px 12px;background:rgba(255,255,255,0.03);border-radius:8px}
.status{color:var(--muted)}
.dir-controls{display:flex;gap:8px;margin-left:6px}
.dir-btn{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.04);color:inherit;padding:6px 10px;border-radius:6px;cursor:pointer}
.dir-btn:active{transform:translateY(1px)}
.rooms-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:140px;gap:12px}
.room{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(0,0,0,0.08)); padding:8px;border-radius:8px;position:relative;overflow:hidden}
.room h3{margin:0 0 6px 0;font-size:14px}
.furniture{font-size:12px;color:var(--muted);line-height:1.3}
.furniture-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.furniture-item{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.02);padding:6px 8px;border-radius:6px;font-size:12px}
.furniture-item img{width:36px;height:36px;flex:0 0 36px;border-radius:4px;background:rgba(255,255,255,0.02);padding:4px}
.furniture-item svg{width:36px;height:36px;flex:0 0 36px;border-radius:4px;background:rgba(255,255,255,0.02);padding:4px}
.furniture-placeholder{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.02);border-radius:4px}
.furniture-hidden{padding:12px;color:var(--muted);font-style:italic;background:rgba(255,255,255,0.01);border-radius:6px}

/* Reveal animation for furniture when a room becomes visited */
@keyframes revealUp {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.room { transition: box-shadow .16s ease, transform .12s ease; }
.room.visited { box-shadow: 0 6px 18px rgba(0,0,0,0.35); }
.room .furniture-list{opacity:0;transform:translateY(8px)}
.room.visited .furniture-list{animation: revealUp .34s ease-out both}

/* Exit badge hidden until room visited (also supports when badge is present) */
.exit-badge{opacity:0;transform:scale(.92);transition:opacity .24s ease, transform .24s ease}
.room.visited .exit-badge{opacity:1;transform:scale(1)}
.exit-badge{position:absolute;top:8px;right:8px;background:var(--accent);color:#081827;padding:4px 6px;border-radius:6px;font-weight:600;font-size:12px}
.stickman{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34px;height:34px;pointer-events:none}
.stickman svg{width:100%;height:100%}
.legend{margin-top:12px;color:var(--muted);font-size:13px}
footer{text-align:center;padding:12px;color:var(--muted);font-size:13px}

/* Fireworks canvas overlay */
.fireworks-canvas{position:fixed;inset:0;pointer-events:none;z-index:9999;mix-blend-mode:screen}


/* 8-Ball fog-in animation: appears from the mist */
@keyframes fogIn {
  from { opacity: 0; transform: translateY(8px) scale(.99); filter: blur(8px); }
  60%  { opacity: 0.8; filter: blur(2px); }
  to   { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
.answer.fog-in{animation: fogIn .48s cubic-bezier(.2,.9,.2,1) both}

