:root{
  --ink:#12100d;
  --velvet:#17120e;
  --walnut:#4b2918;
  --walnut2:#2a160d;
  --brass:#c89a47;
  --brass2:#f0cf85;
  --ivory:#f2eee4;
  --ivory2:#d9d0bd;
  --museum-white:#f6f2e8;
  --shadow:rgba(0,0,0,.48);
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
html{background:#0d0b09}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:#0d0b09;color:#fff}
button,a{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}

/* ---------- entrance ---------- */
.museum-entry{
  position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:hidden;
  background:
    radial-gradient(circle at 50% 18%,rgba(255,231,174,.18),transparent 26%),
    linear-gradient(180deg,#100d0a 0%,#1a140f 56%,#0e0b09 100%);
  transition:opacity .5s ease;
}
.museum-entry.is-gone{opacity:0;visibility:hidden;pointer-events:none}
.entry-architecture{position:absolute;inset:0;pointer-events:none}
.entry-architecture:before,.entry-architecture:after{content:"";position:absolute;top:0;bottom:0;width:35%;opacity:.55}
.entry-architecture:before{left:0;background:linear-gradient(90deg,#21160f,transparent);clip-path:polygon(0 0,100% 10%,72% 90%,0 100%)}
.entry-architecture:after{right:0;background:linear-gradient(-90deg,#21160f,transparent);clip-path:polygon(0 10%,100% 0,100% 100%,28% 90%)}
.entry-door{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-43%);width:min(76vw,760px);height:min(72vh,690px);
  border:1px solid rgba(224,190,112,.3);box-shadow:0 0 0 18px rgba(65,42,25,.18),0 40px 100px #0008;
  background:linear-gradient(180deg,rgba(242,238,228,.07),rgba(242,238,228,.015));
}
.entry-door:before,.entry-door:after{content:"";position:absolute;top:-32px;bottom:-32px;width:34px;background:linear-gradient(90deg,#2b1a10,#7a4a25 45%,#2b1a10);box-shadow:0 0 0 1px #d2a65855}
.entry-door:before{left:-34px}.entry-door:after{right:-34px}
.entry-floor{position:absolute;left:15%;right:15%;bottom:-9%;height:36%;transform:perspective(650px) rotateX(66deg);transform-origin:center bottom;background:repeating-linear-gradient(90deg,#34251a 0 8%,#24180f 8% 16%);opacity:.5;filter:blur(.2px)}
.entry-card{position:relative;z-index:3;text-align:center;width:min(92vw,900px);padding:56px 24px}
.entry-mark{display:inline-flex;align-items:center;gap:14px;font:600 .72rem/1 Inter;letter-spacing:.28em;text-transform:uppercase;color:#e6c77e;margin-bottom:24px}
.entry-mark:before,.entry-mark:after{content:"";width:58px;height:1px;background:linear-gradient(90deg,transparent,#c89a47)}.entry-mark:after{transform:scaleX(-1)}
.entry-card h1{font-family:Georgia,"Times New Roman",serif;font-weight:600;font-size:clamp(3.3rem,8.5vw,7.5rem);line-height:.86;letter-spacing:.01em;margin:0;text-shadow:0 12px 40px #000}
.entry-card h1 span{display:block;color:#f4efe4}.entry-card h1 em{display:block;font-style:normal;color:#d6aa59;font-family:Tahoma,Arial,sans-serif;font-size:.42em;line-height:1.5;margin-top:18px}
.entry-sub{max-width:680px;margin:26px auto 0;color:#c9c0b2;line-height:1.75;font-size:clamp(.96rem,1.6vw,1.1rem)}
.enter-btn{margin-top:34px;border:1px solid #e6c77e;background:linear-gradient(180deg,#d7ad60,#a8782d);color:#1b120a;border-radius:999px;padding:15px 30px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 15px 40px #0008, inset 0 1px #fff8;transition:.25s ease}
.enter-btn:hover{transform:translateY(-2px);box-shadow:0 20px 50px #0009,0 0 0 5px #d7ad6018}
.entry-note{display:block;margin-top:17px;color:#867a6c;font-size:.76rem;letter-spacing:.04em}

/* ---------- shell / hud ---------- */
.museum-shell{position:relative;min-height:100vh;background:
    radial-gradient(ellipse 1200px 700px at 50% -8%,rgba(216,175,105,.14),transparent 60%),
    radial-gradient(ellipse 900px 600px at 90% 15%,rgba(159,111,45,.10),transparent 55%),
    linear-gradient(175deg,#181310 0%,#100d0a 45%,#0b0908 100%);
  opacity:1;transition:opacity .5s ease;overflow-x:hidden}
.museum-shell.is-hidden{opacity:0;pointer-events:none}
.gallery-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-glow{position:absolute;top:-10%;left:50%;width:1400px;height:900px;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(233,196,128,.10),transparent 62%)}
.bg-grain{position:absolute;inset:0;opacity:.05;background-image:radial-gradient(circle at 1px 1px,#fff 1px,transparent 0);background-size:3px 3px}
.hud{position:sticky;z-index:80;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:linear-gradient(180deg,rgba(10,8,6,.92),rgba(10,8,6,.78));backdrop-filter:blur(10px);border-bottom:1px solid rgba(200,154,71,.16)}
.museum-brand{display:flex;align-items:center;gap:13px}.brand-seal{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid #d1a75a88;color:#d5b56f;font-family:Georgia,"Times New Roman",serif;font-size:1.4rem;background:#17110caa;box-shadow:inset 0 0 0 5px #d1a75a11;flex-shrink:0}.brand-copy strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.3rem;letter-spacing:.04em}.brand-copy span{display:block;color:#aa9b8b;font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;margin-top:2px}
.hud-count{color:#c9b78f;font-size:.78rem;letter-spacing:.06em;white-space:nowrap}

/* ---------- room tabs ---------- */
.room-tabs{position:sticky;top:74px;z-index:70;display:flex;gap:9px;overflow-x:auto;padding:14px 20px;background:linear-gradient(180deg,rgba(12,10,8,.88),rgba(12,10,8,.55));backdrop-filter:blur(8px);border-bottom:1px solid rgba(200,154,71,.1);scrollbar-width:thin}
.room-tabs::-webkit-scrollbar{height:4px}.room-tabs::-webkit-scrollbar-thumb{background:#5a4324;border-radius:4px}
.room-tab{flex:0 0 auto;border:1px solid rgba(220,190,123,.28);background:#17130fbf;color:#dccdac;padding:9px 16px;border-radius:999px;font-size:.82rem;font-weight:600;white-space:nowrap;transition:.18s ease}
.room-tab i{font-style:normal;color:#9a8264;margin-left:6px;font-size:.75em}
.room-tab:hover{border-color:#d5b46d;background:#241c14}
.room-tab.active{background:linear-gradient(180deg,#d7ad60,#a8782d);border-color:#e6c77e;color:#1b120a;box-shadow:0 6px 18px #0006}
.room-tab.active i{color:#4a3311}

/* ---------- gallery grid ---------- */
.gallery-wrap{position:relative;z-index:1;max-width:1440px;margin:0 auto;padding:30px 24px 80px}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
.photo-card{display:flex;flex-direction:column;border:0;padding:0;background:transparent;text-align:left;border-radius:14px;overflow:hidden;transition:transform .2s ease}
.photo-card:hover{transform:translateY(-4px)}
.photo-frame{position:relative;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:linear-gradient(160deg,#3a2a18,#1c140c);box-shadow:0 3px 0 #0006 inset,0 14px 34px rgba(0,0,0,.45),0 0 0 1px rgba(213,170,91,.35)}
.photo-frame:before{content:"";position:absolute;inset:8px;border:1px solid rgba(236,207,142,.35);z-index:2;pointer-events:none;border-radius:8px}
.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:center 32%;display:block;background:#241c14;transition:transform .35s ease}
.photo-card:hover .photo-frame img{transform:scale(1.05)}
.photo-title{margin-top:10px;padding:0 2px;color:#dcccac;font-family:Georgia,"Times New Roman",serif;font-size:.92rem;line-height:1.4;letter-spacing:.01em}
.load-more{display:inline-flex;margin:36px auto 0;border:1px solid #d5b46d;background:#1c150e;color:#eadfc8;padding:13px 26px;border-radius:999px;font-weight:700;font-size:.85rem;letter-spacing:.04em}
.load-more:hover{background:#2a2015}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:500;background:#050403f5;display:grid;place-items:center;opacity:0;visibility:hidden}.lightbox.open{opacity:1;visibility:visible}.lightbox-inner{width:min(94vw,1500px);height:min(90vh,940px);display:grid;grid-template-columns:1fr;place-items:center;position:relative}.lightbox img{max-width:100%;max-height:84vh;object-fit:contain;box-shadow:0 30px 90px #000;border:10px solid #2a160c;outline:2px solid #c69a4a}.lb-close,.lb-prev,.lb-next{position:fixed;z-index:2;border:1px solid #d1aa5d55;background:#1f1711dd;color:#f1e2c6;border-radius:50%;width:48px;height:48px;font-size:1.5rem}.lb-close{right:24px;top:20px}.lb-prev{left:24px;top:50%;transform:translateY(-50%)}.lb-next{right:24px;top:50%;transform:translateY(-50%)}.lb-caption{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);max-width:80vw;color:#cbbca8;font-family:Georgia,"Times New Roman",serif;font-size:1.15rem;text-align:center;text-shadow:0 2px 12px #000}

/* ---------- mobile ---------- */
@media(max-width:820px){
  .hud{padding:12px 16px}.brand-copy span{display:none}.brand-seal{width:36px;height:36px}.brand-copy strong{font-size:1.05rem}
  .room-tabs{top:66px;padding:11px 16px}
  .gallery-wrap{padding:20px 14px 60px}
  .gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
  .photo-title{font-size:.82rem}
  .entry-card{padding:30px 18px}.entry-card h1{font-size:clamp(3rem,17vw,5.2rem)}.entry-door{width:84vw;height:64vh}.entry-sub{font-size:.9rem}
  .lb-prev{left:8px}.lb-next{right:8px}.lb-close{right:10px;top:10px}
}
@media(max-width:520px){
  .entry-mark:before,.entry-mark:after{width:28px}.entry-card h1 em{font-size:.35em}
  .gallery-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
