:root{
  --bg: #f5f7fa;
  --glass: rgba(15,23,32,0.04); /* subtle translucent card on light bg */
  --glass-2: rgba(15,23,32,0.06);
  --accent: #ff8c42;
  --muted: rgba(11,23,32,0.6);
  --text: #0f1720;
  --radius:16px;
  --card-padding:18px;
}

*{box-sizing:border-box}
html,body{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial}

#bg-overlay{position:fixed;inset:0;background-size:cover;background-position:center;filter:brightness(.85);transition:background 1s ease,filter 1.2s ease;z-index:-1;overflow:hidden}
#bg-overlay::before{content:'';position:absolute;inset:0;background-image:url('https://images.livspace-cdn.com/w:3840/plain/https://d3gq2merok8n5r.cloudfront.net/abhinav/ond-1634120396-Obfdc/1-2025-1736068988-NDPD1/jas-1751884202-slYBH/dd-1752386609-yACiK/dd0-1758693578-AOkxo.jpg');background-size:cover;background-position:center;filter:blur(10px) brightness(1.05) saturate(.98);transform:scale(1.03);opacity:1;z-index:-2;pointer-events:none;transition:filter .45s ease,opacity .3s ease}
#bg-overlay::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0.65),rgba(255,255,255,0.60));z-index:-1;pointer-events:none;transition:background .25s ease}
@media (max-width:600px){#bg-overlay::before{filter:blur(8px) brightness(.5);}}

.entry-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.85);z-index:9999;padding:20px;backdrop-filter:blur(6px)}
.entry-card{background:linear-gradient(180deg,rgba(255,255,255,0.98),rgba(250,250,250,0.96));border-radius:var(--radius);padding:clamp(16px,3vw,var(--card-padding));max-width:640px;width:100%;text-align:center;box-shadow:0 8px 24px rgba(15,23,32,0.08);border:1px solid rgba(15,23,32,0.06)}
.entry-door{width:100%;height:clamp(120px,22vh,220px);object-fit:cover;border-radius:12px;margin-bottom:14px}
.entry-form input{width:100%;padding:12px;border-radius:10px;border:1px solid rgba(255,255,255,0.06);background:rgba(255,255,255,0.02);color:var(--text);margin-top:8px}
.entry-overlay.shake{animation:shake .6s}
@keyframes shake{0%{transform:translateY(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}100%{transform:translateX(0)}}

/* Background overlays (the actual image is unified in #bg-overlay::before so the image remains consistent across rooms) */
.hall-bg{background:linear-gradient(180deg,rgba(255,255,255,0.18),rgba(255,255,255,0.18));background-size:cover}
.kitchen-bg{background:linear-gradient(180deg,rgba(255,255,255,0.20),rgba(255,255,255,0.18));background-size:cover}
.music-bg{background:linear-gradient(180deg,rgba(255,255,255,0.20),rgba(255,255,255,0.18));background-size:cover}
.library-bg{background:linear-gradient(180deg,rgba(255,255,255,0.20),rgba(255,255,255,0.18));background-size:cover}

.app-inner{width:100%;max-width:1100px}
#app{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:48px 24px}
.hall-header{max-width:960px;text-align:center}
.hall-header h1{margin:0;font-weight:600;font-size:clamp(28px,4vw,40px);letter-spacing:0.4px}
.sub{margin-top:6px;color:var(--muted);font-size:14px}

/* ensure content stays in a centered column */
.app-inner{display:flex;flex-direction:column;align-items:center;width:100%}

.room-selector{display:flex;gap:18px;justify-content:center;margin-top:30px;flex-wrap:wrap}
.door{background:var(--glass);backdrop-filter:blur(8px);border:1px solid rgba(15,23,32,0.06);padding:16px 20px;border-radius:14px;cursor:pointer;width:clamp(140px,22vw,220px);display:flex;flex-direction:column;align-items:center;transition:transform .28s ease,box-shadow .28s ease}
.door:hover{transform:translateY(-8px);box-shadow:0 10px 30px rgba(2,6,23,.45);border-color:var(--accent)}
.door:active{transform:translateY(-2px)}
.icon{font-size:34px;margin-bottom:8px}
.label{font-weight:600}

.hidden{display:none;opacity:0}

#room-content{position:relative;width:min(1100px,96%);background:linear-gradient(180deg,rgba(255,255,255,0.98),rgba(255,255,255,0.96));border-radius:20px;padding:28px;padding-top:44px;box-shadow:0 8px 30px rgba(15,23,32,0.06);animation:pop .4s ease both;margin-top:18px}
.back-btn{position:absolute;left:12px;top:12px;background:transparent;border:1px solid rgba(15,23,32,0.08);color:var(--text);padding:8px 14px;border-radius:999px;cursor:pointer;transition:transform .18s}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.995)}to{opacity:1;transform:none}}

.back-btn{position:absolute;left:20px;top:20px;background:transparent;border:1px solid rgba(255,255,255,0.08);color:var(--text);padding:8px 14px;border-radius:999px;cursor:pointer;transition:transform .18s}
.back-btn:hover{transform:translateY(-3px)}

.inner-ui{min-height:320px}

.room .room-head{display:flex;align-items:flex-start;gap:20px;margin-bottom:14px}
.room .room-head h2{margin:0;font-size:20px}
.room .desc{color:var(--muted);margin:0}

.kitchen-grid{display:grid;grid-template-columns:1fr minmax(260px,360px);gap:18px;align-items:start}
.hall-window{display:flex;gap:16px;align-items:center}
.hall-image{width:320px;height:180px;border-radius:12px;background-image:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.25)),url('https://images.unsplash.com/photo-1504674900247-0877df9cc836?q=80&w=1200&auto=format&fit=crop&ixlib=rb-4.0.3&s=');background-size:cover;background-position:center;border:1px solid rgba(255,255,255,0.04)}
.hall-text{flex:1}
.kitchen-image{min-height:220px;border-radius:14px;background-image:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.25)),url('https://images.unsplash.com/photo-1544016565-3a7a6c0f0d40?q=80&w=1200&auto=format&fit=crop&ixlib=rb-4.0.3&s=');background-size:cover;background-position:center;border:1px solid rgba(255,255,255,0.04)}

.flavor-log input,.flavor-log textarea{width:100%;padding:12px;margin-bottom:10px;border-radius:10px;border:1px solid rgba(255,255,255,0.06);background:rgba(255,255,255,0.02);color:var(--text);resize:vertical}
.form-actions{display:flex;gap:10px;align-items:center}
.btn{padding:8px 12px;border-radius:10px;border:0;cursor:pointer;background:rgba(255,255,255,0.04);color:var(--text)}
.btn.primary{background:linear-gradient(90deg,var(--accent),#ffb703);color:#071018;font-weight:700}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.06)}
.btn.small{padding:6px 8px;font-size:13px}

.log-list{list-style:none;padding:12px;margin:0;border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01));max-height:240px;overflow:auto}
.log-item{padding:10px;border-bottom:1px dashed rgba(255,255,255,0.03)}
.log-item:last-child{border-bottom:0}
.log-item .meta{color:var(--muted);font-size:12px;margin-top:6px}
.empty{color:var(--muted);padding:14px;text-align:center}

.music-grid{display:grid;grid-template-columns:1fr minmax(240px,300px);gap:18px}
.embed{border-radius:12px;display:block;background:linear-gradient(180deg,rgba(0,0,0,0.03),rgba(0,0,0,0.06));border:1px solid rgba(15,23,32,0.04);overflow:hidden}
.embed iframe{width:100%;height:clamp(220px,36vh,380px);border:0;display:block}
.embed-box{color:var(--muted);padding:24px}

.playlist-titles{list-style:none;padding:8px;margin:12px 0 0 0;max-height:220px;overflow:auto}
.playlist-titles li{padding:6px 8px;border-bottom:1px dashed rgba(255,255,255,0.03);cursor:pointer}
.playlist-titles li:hover{background:rgba(255,255,255,0.02)}
.song-widget{padding:12px}
.song-of-hour h3{margin:0 0 6px 0}
.lyric{color:var(--muted);margin:0 0 10px 0}
.song-controls{display:flex;gap:8px;align-items:center}
.pop{transform:translateY(-6px);transition:transform .35s}

.library-grid{display:grid;grid-template-columns:220px 1fr;gap:18px;align-items:start}
.artifact{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.muted{color:var(--muted)}
.search-row{display:flex;gap:8px}
.search-row input{flex:1;padding:10px;border-radius:10px;border:1px solid rgba(255,255,255,0.05);background:rgba(255,255,255,0.02);color:var(--text)}
.search-results{list-style:none;padding:0;margin-top:10px}
.search-results li{padding:10px;border-bottom:1px solid rgba(255,255,255,0.03)}
.search-results a{color:var(--accent);font-weight:600;text-decoration:none}
.search-results .snippet{color:var(--muted);font-size:13px;margin:6px 0 0}

/* Layout fixes to prevent overlapping and improve spacing */
.kitchen-grid{gap:24px;align-items:start}
.flavor-log{display:flex;flex-direction:column;gap:12px;min-width:0}
.flavor-log .log-list{max-height:320px;overflow:auto}
#recipeResults img{display:block;height:auto;max-width:100%;border-radius:8px}

/* Give the room content and inner UI a little more vertical room so long content doesn't collide with footer */
.inner-ui{min-height:min(60vh,620px)}
#room-content{padding-bottom:40px}

/* Make the wiki chain take full width so it doesn't get constrained by the two-column grid */
.wiki-chain-wrap{grid-column:1 / -1;margin-top:14px}
.chain-container{align-items:flex-start;gap:20px;padding:12px}
.layer{min-width:160px}
.wiki-node{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;display:inline-block}
.connector{max-width:240px;text-align:center}

/* Responsive */
@media (max-width:900px){
  .kitchen-grid,.music-grid{grid-template-columns:1fr}
  .library-grid{grid-template-columns:1fr}
  .room-selector{gap:12px}
  .door{width:150px}
}

/* Small utilities */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Home quote footer */
.home-quote{margin-top:auto;padding:18px;border-top:1px solid rgba(255,255,255,0.04);color:var(--muted);border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,0.01),transparent);text-align:left}
.home-quote blockquote{margin:0;font-style:italic;line-height:1.6;font-size:15px;color:var(--text)}
.home-quote .cite{margin-top:10px;color:var(--muted);font-size:13px}
.home-quote .work{color:var(--accent);font-weight:600}

@media (max-width:600px){
    .home-quote{font-size:14px;padding:14px}
    .home-quote blockquote{font-size:14px}
}

/* Mobile tweaks for entry and components */
@media (max-width:480px){
  .entry-card{padding:12px;max-width:92%}
  .entry-door{height:120px}
  .door{width:clamp(110px,30vw,140px)}
  .embed iframe{height:220px}
  .kitchen-grid,.music-grid{grid-template-columns:1fr}
  #room-content{padding-top:32px}
  .back-btn{left:10px;top:10px;padding:7px 12px}
}

/* Wiki Connection Chain styles */
.wiki-chain-wrap{margin-top:18px}
.chain-container{display:flex;flex-direction:row-reverse;align-items:center;gap:24px;max-width:100%;overflow-x:auto;padding:12px}
.layer{display:flex;flex-direction:column;gap:10px;align-items:center}
.connector{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);max-width:220px;text-align:center}
  .wiki-node{background:linear-gradient(180deg,#ffffff,#f6f8fa);border:1px solid rgba(15,23,32,0.06);padding:12px 20px;border-radius:8px;text-decoration:none;color:var(--text);font-weight:600;box-shadow:0 6px 18px rgba(15,23,32,0.06);transition:transform .18s,box-shadow .18s}
.wiki-node:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 10px 28px rgba(15,23,32,0.08);background:linear-gradient(180deg,#fff8f3,#fff6ef)}
.link-info{color:var(--muted);font-size:0.92em}
.arrow{font-size:20px}
.explanation{font-style:italic;color:var(--muted);font-size:0.92em}
button#refreshChain{margin:8px 0 12px 0;padding:8px 14px;background:var(--accent);color:#071018;border-radius:8px;border:0;cursor:pointer}
.loading{color:var(--muted);font-style:italic}
