/* 봉인된 자연사박물관 — museum.hit1t.com (시안 C4 확정, 2026-10-17) */

:root{--bg:#040608;--panel:#0C141B;--bone:#ECE6DA;--mute:#8E9AA4;--wax:#A3231C;--waxl:#C8392F;--line:rgba(236,230,218,.14)}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--bone);font-family:Pretendard,system-ui,sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--bone);outline-offset:3px}
.pad{padding-left:max(16px,4vw);padding-right:max(16px,4vw)}
/* 봉인 로딩 */
.intro{position:fixed;inset:0;z-index:60;background:var(--bg);display:grid;place-items:center;transition:opacity .8s ease .1s}
.intro .ring{position:relative;width:120px;height:120px;display:grid;place-items:center}
.intro .ring::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(236,230,218,.12);border-top-color:var(--waxl);animation:spin 1s linear infinite}
.intro img{width:78px;transition:transform .8s cubic-bezier(.3,1.4,.5,1),opacity .6s}
.intro p{position:absolute;top:calc(50% + 78px);left:0;right:0;text-align:center;font-size:13px;color:var(--mute);letter-spacing:.04em}
@keyframes spin{to{transform:rotate(360deg)}}
body.open .intro{opacity:0;pointer-events:none}body.open .intro img{transform:scale(1.6) rotate(-20deg);opacity:0}
/* 머리 */
.top{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;height:64px;background:linear-gradient(rgba(4,6,8,.75),transparent);transition:background .3s}
.brand{display:flex;gap:10px;align-items:center}.brand img{width:30px}.brand b{font-weight:800;font-size:16px;letter-spacing:-.01em}
.menu{display:flex;gap:4px;background:rgba(236,230,218,.08);border:1px solid var(--line);border-radius:99px;padding:3px;backdrop-filter:blur(10px)}
.menu a{padding:6px 14px;border-radius:99px;font-size:14px;color:rgba(236,230,218,.82)}.menu a.on{background:var(--bone);color:var(--bg);font-weight:700}
.top .r{font-size:14px;color:rgba(236,230,218,.8)}
@media(max-width:760px){.menu{display:none}}
/* 첫 화면 */
.hero{position:relative;height:100svh;min-height:620px;max-height:1040px;overflow:hidden}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}.slide.on{opacity:1}
.slide video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* 사진만 있는 소장품: 천천히 확대했다가 되돌아옴 (켄 번즈) — --kf 확대 중심, --kz 최대 배율 */
.kb{position:absolute;inset:0;overflow:hidden}
.kb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--kf,50% 50%);transform-origin:var(--kf,50% 50%);animation:kb 16s ease-in-out infinite alternate;will-change:transform}
@keyframes kb{from{transform:scale(1)}to{transform:scale(var(--kz,1.14))}}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
 background:linear-gradient(90deg,rgba(4,6,8,.92) 0%,rgba(4,6,8,.6) 30%,rgba(4,6,8,0) 62%),linear-gradient(180deg,rgba(4,6,8,0) 55%,rgba(4,6,8,.75) 82%,var(--bg) 100%)}
.copy{position:absolute;z-index:3;left:0;right:0;bottom:calc(min(22vh,230px) + 64px);max-width:860px}
.copy [data-copy],.copy .stack{display:grid;gap:14px}.copy [data-copy][hidden]{display:none}
.copy .stack>*,.copy [data-copy]>*{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
body.ui .copy .stack>*,body.ui .copy [data-copy]>*{opacity:1;transform:none}
.copy [data-copy].out>*{opacity:0!important;transform:translateY(-8px)!important;transition-duration:.4s!important;transition-delay:0s!important}
.copy [data-copy].pre>*{opacity:0!important;transform:translateY(14px)!important;transition:none!important}body.ui .copy [data-copy]>*:nth-child(2){transition-delay:.08s}body.ui .copy [data-copy]>*:nth-child(3){transition-delay:.16s}body.ui .copy [data-copy]>*:nth-child(4){transition-delay:.24s}
.chip{display:inline-flex;gap:8px;align-items:center;width:max-content;border:1px solid rgba(236,230,218,.45);border-radius:99px;padding:3px 12px;font-size:13px;font-weight:600;background:rgba(4,6,8,.35)}
.chip i{width:7px;height:7px;border-radius:50%;background:var(--waxl)}
.chip span{color:var(--mute);font-weight:500}
.ttl{margin:0;font-weight:800;font-size:clamp(60px,10.5vw,150px);line-height:.9;letter-spacing:-.05em;text-shadow:0 4px 40px rgba(0,0,0,.35)}
.ttl small{display:block;font-family:'Noto Serif KR';font-style:italic;font-weight:500;font-size:clamp(15px,1.4vw,19px);letter-spacing:0;color:var(--mute);margin-top:14px}
.desc{margin:0;font-family:'Noto Serif KR';font-size:clamp(16px,1.5vw,20px);max-width:36ch;color:rgba(236,230,218,.92)}
.acts{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:8px;font-weight:700;background:var(--bone);color:var(--bg)}
.btn.ghost{background:rgba(236,230,218,.14);color:var(--bone);backdrop-filter:blur(8px)}
.btn.ghost b{font-variant-numeric:tabular-nums}
.dots{position:absolute;z-index:3;right:max(16px,4vw);bottom:calc(min(22vh,230px) + 70px);display:flex;gap:6px}
.dots button{width:34px;height:4px;border:0;border-radius:2px;background:rgba(236,230,218,.25);padding:0;cursor:pointer;overflow:hidden;position:relative}
.dots button.on::after{content:"";position:absolute;inset:0;background:var(--bone);transform-origin:left;animation:fill 9s linear forwards}
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.slide .credit{position:absolute;z-index:4;right:max(16px,4vw);top:72px;font-size:10px;color:rgba(255,255,255,.55)}
/* 아래 줄들 — 첫 화면 아래쪽에 겹쳐 올라옴 */
.rows{position:relative;z-index:5;margin-top:calc(-1 * min(22vh,230px));opacity:0;transform:translateY(40px);transition:opacity .8s ease .3s,transform .8s ease .3s}
body.ui .rows{opacity:1;transform:none}
.row{margin-bottom:34px}.row h2{font-size:18px;font-weight:700;margin:0 0 10px}.row h2 span{font-weight:400;color:var(--mute);font-size:14px;margin-left:8px}
.track{display:grid;grid-auto-flow:column;gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
.halls{grid-auto-columns:minmax(200px,1fr)}
.hall{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;display:grid;place-items:center;border:1px solid var(--line);background:var(--panel);isolation:isolate}
.hall img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:brightness(.5) saturate(.85)}
.hall::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,rgba(4,6,8,.15),rgba(4,6,8,.65))}
.hall b{font-size:clamp(18px,1.6vw,22px);font-weight:800;letter-spacing:-.01em}.hall small{position:absolute;left:10px;top:8px;font-size:12px;color:rgba(236,230,218,.75);font-weight:700}
.hall:hover{border-color:rgba(236,230,218,.6)}
.hall.v small{color:var(--waxl)}
.posters{grid-auto-columns:minmax(150px,190px)}
.po{position:relative;aspect-ratio:2/3;border-radius:8px;overflow:hidden;background:var(--panel)}
.po img.b{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.po::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(4,6,8,.92))}
.po .t{position:absolute;z-index:2;left:10px;right:10px;bottom:10px;font-size:13px;color:var(--mute)}.po .t b{display:block;color:var(--bone);font-size:16px;line-height:1.3}
.po.lock img.b{filter:blur(10px) brightness(.5) saturate(.5);transform:scale(1.2)}
.po.lock img.s{position:absolute;z-index:2;left:50%;top:42%;width:64px;transform:translate(-50%,-50%) rotate(-8deg);filter:drop-shadow(0 6px 10px rgba(0,0,0,.6))}
.po.lock .q{position:absolute;z-index:2;left:10px;right:10px;top:10px;font-size:13px;font-weight:600;line-height:1.4}
/* 상세 */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts div{padding:16px 4px}.facts dt{color:var(--mute);font-size:13px}.facts dd{margin:2px 0 0;font-weight:700}
.art{max-width:680px;margin:0 auto;padding-top:20px}.art p{font-family:'Noto Serif KR';font-size:18px;line-height:1.95;margin:0 0 18px}
.art h3{font-size:14px;color:var(--waxl);margin:40px 0 8px}
.pull{font-family:'Noto Serif KR';font-size:clamp(22px,3vw,28px);line-height:1.55;margin:40px 0;padding-left:20px;border-left:3px solid var(--wax)}.pull small{display:block;font-family:Pretendard;font-size:13px;color:var(--mute);margin-top:8px}
.size .rw{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;margin:14px 0}.size i{display:block;height:10px;border-radius:99px;background:rgba(236,230,218,.35)}.size .me i{background:var(--waxl);height:14px}.size em{font-style:normal;color:var(--mute);font-size:13px}
.src{color:var(--mute);font-size:14px}
footer{border-top:1px solid var(--line);padding:26px 0 44px;color:var(--mute);font-size:13px;margin-top:30px}footer p{max-width:72ch}
@media(max-width:760px){.hero{height:92svh}.copy{bottom:calc(10vh + 40px)}.dots{bottom:calc(10vh + 14px)}.rows{margin-top:-10vh}}
@media(prefers-reduced-motion:reduce){.intro{display:none}.copy>*,.rows{opacity:1!important;transform:none!important}video{display:none}.slide{background:#0c141b}.kb img{animation:none}}

:root{--parch:#EFE6D2;--ink:#2A2118;--brass:#C9A45C}
/* 첫 화면 소장품 라벨 (A) */
.copy{max-width:none}
.label{position:absolute;right:max(16px,4vw);bottom:0;width:300px;background:var(--parch);color:var(--ink);border-radius:3px;padding:16px 18px 14px;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.label .no{display:flex;justify-content:space-between;font-size:12px;color:#6b5a44}.label .no b{font-family:'Cormorant Garamond';font-size:15px}
.label h3{margin:4px 0 0;font-family:'Noto Serif KR';font-weight:900;font-size:24px;letter-spacing:-.02em}
.label .sci{font-family:'Cormorant Garamond';font-style:italic;font-size:16px;color:#5b4b37;margin:0 0 10px}
.label dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:0;font-size:13px;border-top:1px solid #d6cab0;padding-top:10px}.label dt{color:#7a6a52}.label dd{margin:0;font-weight:600}
.dots{position:static;margin-top:6px}
.copy .dotsrow{display:flex;gap:6px}
@media(max-width:1000px){.label{display:none}}
/* 층별 안내판 (A) */
.board{display:grid;grid-template-columns:repeat(7,1fr);background:rgba(12,20,27,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(201,164,92,.38);border-radius:12px;overflow:hidden}
.board a{display:block;padding:16px 16px 14px;border-left:1px solid rgba(201,164,92,.16)}.board a:first-child{border-left:0}
.board a:hover{background:rgba(201,164,92,.08)}
.board .fl{font-family:'Cormorant Garamond';font-weight:700;font-size:30px;line-height:1;color:var(--brass)}
.board b{display:block;font-size:17px;font-weight:800;margin-top:8px}.board small{display:block;color:var(--mute);font-size:12.5px;line-height:1.45;margin-top:2px}
.board .n{display:block;font-size:12px;color:var(--brass);margin-top:10px}
.board a.v .fl{color:var(--waxl)}.board a.v .n{color:var(--waxl)}
@media(max-width:1000px){.board{grid-template-columns:1fr}.board a{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;border-left:0;border-top:1px solid rgba(201,164,92,.16);padding:12px 16px}.board a:first-child{border-top:0}.board b{margin:0}.board .n{margin:0}.board .fl{font-size:24px;text-align:center}}
/* 가린 단어 힌트 (B) */
.posters.hint{grid-auto-columns:minmax(190px,220px)}
.po.lock .when{position:absolute;z-index:2;left:10px;top:10px;font-size:12px;font-weight:700;background:rgba(4,6,8,.6);border:1px solid var(--line);border-radius:99px;padding:2px 9px}
.po.lock img.s{top:34%}
.po.lock ul{position:absolute;z-index:2;left:10px;right:10px;bottom:30px;margin:0;padding-left:16px;font-size:12.5px;line-height:1.5;color:var(--bone)}
.po.lock ul li::marker{color:var(--waxl)}
.po.lock .guess{position:absolute;z-index:2;left:10px;bottom:9px;font-size:11.5px;color:var(--mute)}
.rd{background:var(--bone);color:transparent;border-radius:2px;padding:0 2px;-webkit-user-select:none;user-select:none}
/* 상세: 영상 아래에 겹치는 소장품 라벨 */
.dlabel{position:relative;z-index:6;margin:-70px 0 0;max-width:640px;background:var(--parch);color:var(--ink);border-radius:3px;padding:20px 22px;box-shadow:0 22px 50px rgba(0,0,0,.5)}
.dlabel .no{display:flex;justify-content:space-between;font-size:13px;color:#6b5a44}.dlabel .no b{font-family:'Cormorant Garamond';font-size:16px}
.dlabel h2{margin:4px 0 0;font-family:'Noto Serif KR';font-weight:900;font-size:30px;letter-spacing:-.02em}
.dlabel .sci{font-family:'Cormorant Garamond';font-style:italic;font-size:18px;color:#5b4b37;margin:0 0 12px}
.dlabel dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:14px;border-top:1px solid #d6cab0;padding-top:12px}.dlabel dt{color:#7a6a52}.dlabel dd{margin:0;font-weight:600}

/* 층별 안내 — 각 층에 배경 사진 */
.board a{position:relative;isolation:isolate;overflow:hidden;min-height:150px}
.board a img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:brightness(.42) saturate(.8);transition:transform .5s ease,filter .5s ease}
.board a::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,6,8,.25) 0%,rgba(4,6,8,.78) 100%)}
.board a:hover img.bg{transform:scale(1.06);filter:brightness(.55) saturate(.9)}
.board a.v img.bg{filter:brightness(.38) saturate(.4) blur(2px)}
@media(max-width:1000px){.board a{min-height:84px}.board a::after{background:linear-gradient(90deg,rgba(4,6,8,.88) 0%,rgba(4,6,8,.45) 100%)}}
/* 광고 칸 (ADS 켜면 나타남) */
.adslot{position:relative;margin:4px 0 38px;min-height:100px;padding-top:18px}
.adslot::before{content:"광고";position:absolute;left:0;top:0;font-size:11px;letter-spacing:.04em;color:var(--mute)}
.adslot.inart{margin:30px 0}

/* 고정 페이지·전시실 목록 */
.page{max-width:760px;margin:0 auto;padding:110px 0 20px}.page h1{font-size:clamp(28px,4vw,40px);font-weight:800;letter-spacing:-.02em;margin:0 0 18px}
.page h2{font-size:19px;margin:34px 0 8px}.page p,.page li{font-family:'Noto Serif KR';font-size:17px;line-height:1.85;color:rgba(236,230,218,.92)}.page a{text-decoration:underline}
.hallhead{padding:110px 0 10px}.hallhead .fl{font-family:'Cormorant Garamond';font-weight:700;font-size:44px;color:var(--brass);line-height:1}
.hallhead h1{font-size:clamp(32px,5vw,56px);font-weight:800;margin:6px 0 4px;letter-spacing:-.03em}.hallhead p{color:var(--mute);margin:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.empty{color:var(--mute);font-family:'Noto Serif KR'}
.foot nav{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px}.foot nav a{color:var(--bone);text-decoration:underline}
