﻿:root {
  --ink:#27261f; --paper:#f6f3eb; --muted:#77746b; --line:rgba(57,54,44,.16);
  /* Gold accent ladder (light -> deep) */
  --gold-100:#ffe9d2; --gold-200:#f0bc91; --gold-300:#dcb28c; --gold-500:#a97943; --gold-600:#8c6c47; --gold-700:#704829;
  --gold:#a97943;
  /* Lime / olive accent ladder */
  --lime-100:#e9ecdf; --lime-500:#718055; --lime-700:#4f5c38;
  --lime:#718055;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:Manrope,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  --mono:"DM Mono",ui-monospace,"SF Mono","Cascadia Code",Consolas,Menlo,monospace;
}
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); overflow-x:hidden; } button,a { font:inherit; color:inherit; } button { cursor:pointer; } .grain { pointer-events:none; position:fixed; inset:0; z-index:20; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E"); }
.loading { height:100vh; display:grid; place-items:center; font:13px var(--mono); letter-spacing:.15em; color:var(--muted); }
.nav { position:fixed; z-index:10; top:0; width:100%; mix-blend-mode:normal; background:linear-gradient(#f6f3ebf2,transparent); } .nav__row { display:flex; align-items:center; justify-content:space-between; padding:22px clamp(20px,4vw,64px) 12px; } .nav__halls { display:flex; gap:8px; padding:0 clamp(20px,4vw,64px) 15px; overflow-x:auto; scrollbar-width:none; } .nav__halls::-webkit-scrollbar { display:none; } .nav__hall { flex:none; display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border:1px solid var(--line); border-radius:9999px; color:var(--muted); font:11px var(--mono); letter-spacing:.05em; text-decoration:none; transition:border-color .2s,color .2s,background-color .2s; } .nav__hall-no { color:var(--gold); font-size:10px; } .nav__hall:hover { border-color:var(--hall,var(--gold)); color:var(--ink); } .nav__hall.is-current { background:var(--hall-bg2,#eee7da); border-color:var(--hall,var(--gold)); color:var(--hall,var(--gold-700)); cursor:default; }
.nav__mark { border:0; background:none; font:500 13px var(--mono); letter-spacing:.11em; padding:0; } .nav__mark b { color:var(--gold); font-size:18px; margin-right:7px; }
.nav__right { display:flex; align-items:center; gap:22px; } .nav__index { font:11px var(--mono); color:var(--muted); letter-spacing:.12em; } .nav__back { border:1px solid var(--line); padding:8px 12px; background:#fffdf8aa; font-size:11px; letter-spacing:.08em; text-decoration:none; } .nav__back.nav__here { color:var(--muted); background:transparent; cursor:default; }
.hero { min-height:100svh; position:relative; overflow:hidden; display:grid; align-items:end; padding:120px clamp(20px,8vw,128px) 65px; }
.hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(246,243,235,.96) 10%,rgba(246,243,235,.76) 42%,rgba(246,243,235,.12) 79%),radial-gradient(circle at 70% 42%,rgba(255,240,204,.55),transparent 35%); z-index:1; }
.hero__photo { position:absolute; inset:0; background:center 32%/cover no-repeat; filter:saturate(.86) brightness(1.05); transform:scale(1.025); animation:photoIn 2s ease-out forwards; }
.hero__grid { position:absolute; inset:0; opacity:.21; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:clamp(65px,8vw,130px) clamp(65px,8vw,130px); mask-image:linear-gradient(to bottom,transparent,black 35%,black); }
.hero__content { z-index:2; max-width:850px; } .eyebrow { font:11px var(--mono); letter-spacing:.16em; color:var(--gold); text-transform:uppercase; }.hero h1 { font:600 clamp(56px,10vw,150px)/.92 var(--serif); letter-spacing:-.08em; margin:18px 0 24px; }.hero h1 span { color:var(--gold); font-family:var(--sans); font-size:.31em; letter-spacing:.1em; vertical-align:top; }
.hero__quote { font:500 clamp(18px,2.1vw,28px)/1.5 var(--serif); max-width:600px; margin:0; }.hero__bottom { z-index:2; position:absolute; right:clamp(20px,5vw,80px); bottom:65px; text-align:right; }.scroll-hint { font:11px var(--mono); color:var(--muted); letter-spacing:.1em; writing-mode:vertical-rl; display:inline-flex; gap:12px; align-items:center; }.scroll-hint::after { content:""; height:70px; border-left:1px solid var(--gold); }
.intro { padding:clamp(90px,14vw,190px) clamp(20px,8vw,128px); display:grid; grid-template-columns:1fr 2fr; gap:50px; background:var(--paper); color:var(--ink); }.section-tag { font:11px var(--mono); letter-spacing:.12em; color:#77756d; }.intro h2 { font:600 clamp(32px,5vw,68px)/1.25 var(--serif); margin:0; max-width:850px; letter-spacing:-.045em; }.intro h2 em { font-style:normal; color:var(--gold-600); }.intro__note { grid-column:2; color:#67665e; font-size:14px; line-height:1.9; max-width:500px; }
.halls { padding:100px clamp(20px,5vw,80px) 120px; }.halls__head { display:flex; justify-content:space-between; align-items:end; border-bottom:1px solid var(--line); padding-bottom:21px; }.halls__head h2 { margin:0; font:500 clamp(34px,4.5vw,62px) var(--serif); letter-spacing:-.06em; }.halls__head p { font:11px var(--mono); color:var(--muted); margin:0; }.hall-list { margin:0; padding:0; list-style:none; }.hall { border-bottom:1px solid var(--line); position:relative; overflow:hidden; }.hall button { width:100%; color:inherit; text-align:left; border:0; background:none; padding:clamp(27px,4vw,52px) 0; display:grid; grid-template-columns:70px 1.8fr 1fr 42px; align-items:center; gap:20px; }.hall__no { font:11px var(--mono); color:var(--gold); }.hall__title { font:500 clamp(25px,3.6vw,50px) var(--serif); letter-spacing:-.05em; }.hall__desc { color:var(--muted); font-size:13px; line-height:1.65; max-width:280px; }.hall__arrow { width:32px; height:32px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; transition:.3s; }.hall button:hover .hall__arrow { color:var(--ink); background:var(--lime); border-color:var(--lime); transform:translateX(8px); }.hall__wash { position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(211,168,109,.08)); transform:translateX(-102%); transition:.7s cubic-bezier(.2,.8,.2,1); pointer-events:none; }.hall:hover .hall__wash { transform:none; }
.archive-strip { padding:clamp(50px,7vw,100px) clamp(20px,8vw,128px); background:#24271f; display:grid; grid-template-columns:1.2fr 1fr; gap:45px; align-items:center; }.archive-strip h2 { font:500 clamp(32px,4.5vw,59px)/1.2 var(--serif); margin:15px 0; letter-spacing:-.06em; }.archive-strip p { color:#b7b7ad; font-size:14px; line-height:1.8; max-width:400px; }.archive-strip button { border:0; background:var(--lime); color:var(--ink); padding:14px 20px; font-size:12px; letter-spacing:.06em; }.archive-strip__frame { min-height:220px; background:linear-gradient(135deg,#d6aa70,#766d4f 43%,#2c342c 80%); position:relative; display:grid; place-items:center; }.archive-strip__frame::after { content:"2025 / ANNUAL ARCHIVE"; font:11px var(--mono); letter-spacing:.12em; color:#fff; border:1px solid #ffffff66; padding:11px; }.footer { padding:24px clamp(20px,4vw,64px); display:flex; justify-content:space-between; color:var(--muted); font:10px var(--mono); letter-spacing:.08em; }
.hall-page { min-height:100svh; padding:145px clamp(20px,8vw,128px) 90px; }.hall-page__top { display:grid; grid-template-columns:1fr 2fr; gap:40px; padding-bottom:70px; }.hall-page h1 { font:500 clamp(46px,7vw,105px)/1.05 var(--serif); letter-spacing:-.08em; margin:16px 0; }.hall-page__lead { font:500 clamp(19px,2.1vw,27px)/1.6 var(--serif); margin:0; max-width:590px; }.hall-page__about { margin-top:27px; color:var(--muted); font-size:14px; line-height:1.85; max-width:500px; }.exhibit-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.exhibit { min-height:480px; position:relative; overflow:hidden; background:#252721; border:1px solid var(--line); display:flex; flex-direction:column; justify-content:end; padding:24px; transition:transform .35s, border-color .35s; }.exhibit:hover { transform:translateY(-8px); border-color:var(--gold); }.exhibit__image { position:absolute; inset:0; background:center/cover no-repeat; opacity:.67; transition:transform .7s,opacity .35s; }.exhibit:hover .exhibit__image { transform:scale(1.06); opacity:.86; }.exhibit::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 20%,rgba(18,20,16,.9) 87%); }.exhibit__content { position:relative; z-index:1; }.exhibit__type { font:10px var(--mono); letter-spacing:.13em; color:var(--gold); }.exhibit h2 { font:500 28px/1.3 var(--serif); letter-spacing:-.04em; margin:10px 0; }.exhibit p { font-size:13px; line-height:1.7; color:#d1d1c9; margin:0; }.exhibit__placeholder { background:radial-gradient(circle at 30% 20%,#747052,transparent 30%),linear-gradient(135deg,#31362b,#171916); }.stats { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); margin-top:80px; }.stat { padding:26px 16px; border-right:1px solid var(--line); }.stat:first-child { padding-left:0; }.stat__num { display:block; font:500 clamp(30px,4vw,50px) var(--serif); color:var(--lime); }.stat__label { color:var(--muted); font-size:12px; }
.modal { position:fixed; z-index:30; inset:0; display:grid; place-items:center; padding:20px; background:#10120fe8; }.modal[hidden] { display:none; }.modal__box { width:min(100%,860px); position:relative; background:#20221d; border:1px solid var(--line); padding:20px; }.modal video { display:block; width:100%; max-height:75vh; background:#000; }.modal__close { position:absolute; right:8px; top:-43px; border:0; background:none; font:11px var(--mono); color:var(--paper); }
.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }.reveal.is-visible { opacity:1; transform:none; } @keyframes photoIn { from { opacity:0; transform:scale(1.08) } to { opacity:1; transform:scale(1.025) } }
.hero__enter { display:inline-flex; gap:17px; align-items:center; margin-top:40px; padding:13px 0; border-bottom:1px solid var(--gold); color:var(--paper); font:11px var(--mono); letter-spacing:.11em; text-decoration:none; }.hero__enter i { color:var(--gold); font-size:18px; font-style:normal; transition:transform .25s; }.hero__enter:hover i { transform:translate(4px,-4px); }.home-note { min-height:140px; display:flex; justify-content:space-between; gap:20px; padding:32px clamp(20px,8vw,128px); background:var(--paper); color:var(--ink); }.home-note p { margin:0; font:500 18px/1.8 var(--serif); }.museum { min-height:100svh; padding:150px clamp(20px,8vw,128px) 100px; }.museum__head { max-width:820px; }.museum__head h1 { margin:18px 0; font:500 clamp(42px,6.5vw,92px)/1.1 var(--serif); letter-spacing:-.08em; }.museum__head p { max-width:430px; color:var(--muted); font-size:14px; line-height:1.8; }.museum__map { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-left:1px solid var(--line); margin-top:75px; }.museum-room { min-height:300px; padding:27px; display:flex; flex-direction:column; border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-decoration:none; position:relative; transition:.35s; }.museum-room:hover { background:var(--paper); color:var(--ink); }.museum-room__no,.museum-room__en { font:11px var(--mono); letter-spacing:.1em; color:var(--gold); }.museum-room__en { color:var(--muted); margin-top:7px; }.museum-room strong { font:500 clamp(28px,3.8vw,52px)/1.2 var(--serif); letter-spacing:-.06em; margin:auto 0 10px; }.museum-room small { color:var(--muted); font-size:13px; }.museum-room i { position:absolute; right:27px; bottom:25px; font:11px var(--mono); font-style:normal; opacity:0; transform:translateY(7px); transition:.3s; }.museum-room:hover i { opacity:1; transform:none; }.exhibit { text-decoration:none; }.exhibit__open { display:block; margin-top:18px; font:10px var(--mono); letter-spacing:.09em; color:var(--lime); }.exhibit__open b { margin-left:7px; font-size:15px; }.detail { padding:130px clamp(20px,8vw,128px) 100px; }.detail__crumb { display:inline-block; margin-bottom:35px; color:var(--muted); font:11px var(--mono); letter-spacing:.09em; text-decoration:none; }.detail__hero { display:grid; grid-template-columns:1.15fr 1fr; min-height:500px; background:#242620; }.detail__hero-image { min-height:400px; background:center/cover no-repeat; }.detail__hero-title { padding:clamp(28px,5vw,75px); align-self:end; }.detail__hero-title h1 { font:500 clamp(28px,3.4vw,46px)/1.22 var(--serif); letter-spacing:-.04em; margin:12px 0; }.detail__hero-title p { color:#cacac0; font:16px/1.8 var(--serif); margin:0; }.detail__body { display:grid; grid-template-columns:180px 1fr; gap:clamp(35px,8vw,140px); max-width:1060px; margin:90px auto 0; }.detail__body aside { display:flex; flex-direction:column; gap:11px; color:var(--muted); font:10px var(--mono); letter-spacing:.1em; }.detail__body aside b { color:var(--gold); font-weight:400; }.detail__sections { max-width:650px; }.detail__sections section { padding:0 0 50px; margin-bottom:45px; border-bottom:1px solid var(--line); }.detail__sections h2 { font:500 28px var(--serif); letter-spacing:-.04em; margin:0 0 19px; }.detail__sections p { margin:0; color:#cbcbc2; font-size:15px; line-height:1.95; }.detail__sections .detail__role { color:var(--lime); font:500 20px var(--serif); }.detail__sections ol { padding:0; margin:0; list-style:none; counter-reset:item; }.detail__sections li { counter-increment:item; padding:15px 0 15px 45px; border-top:1px solid var(--line); color:#cbcbc2; line-height:1.7; font-size:14px; position:relative; }.detail__sections li::before { content:'0' counter(item); position:absolute; left:0; color:var(--gold); font:11px var(--mono); }.result-list { display:flex; flex-wrap:wrap; gap:10px; }.result-list span { padding:11px 14px; border:1px solid var(--gold); color:var(--paper); font-size:13px; }.detail-gallery { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.detail-gallery img { width:100%; height:250px; object-fit:cover; }.detail-video { width:100%; background:#000; }
.identity-card { --card-x:50vw; --card-y:50vh; position:absolute; z-index:3; right:clamp(25px,9vw,145px); bottom:clamp(45px,11vh,110px); width:min(335px,31vw); aspect-ratio:1.46; padding:0; border:0; background:transparent; perspective:1000px; cursor:pointer; transform-style:preserve-3d; transition:width .38s ease,height .38s ease,right .38s ease,bottom .38s ease,transform .38s ease; }.identity-card__face { position:absolute; inset:0; display:flex; flex-direction:column; padding:24px; text-align:left; color:#2e2c24; background:#f7f2e7; border:1px solid rgba(67,59,47,.23); box-shadow:0 22px 45px rgba(40,34,25,.2); backface-visibility:hidden; transition:transform .7s cubic-bezier(.22,.75,.22,1); }.identity-card__front { background:linear-gradient(135deg,#f9f3e7,#e9d6b9); }.identity-card__back { background:linear-gradient(135deg,#e9e8dc,#c7d0c0); transform:rotateY(180deg); }.identity-card small { color:var(--gold-600); font:9px var(--mono); letter-spacing:.12em; }.identity-card b { margin:auto 0 2px; font:600 clamp(40px,4vw,57px)/1 var(--serif); letter-spacing:-.08em; }.identity-card strong { font:500 14px/1.5 var(--serif); }.identity-card em { margin-top:12px; color:#6e675b; font:12px/1.6 var(--sans); font-style:normal; }.identity-card i { margin-top:auto; color:var(--gold-600); font:9px var(--mono); letter-spacing:.11em; font-style:normal; }.identity-card.is-flipped .identity-card__front { transform:rotateY(-180deg); }.identity-card.is-flipped .identity-card__back { transform:rotateY(0); }.identity-card.is-docked { position:fixed; right:auto; bottom:auto; left:calc(var(--card-x) + 12px); top:calc(var(--card-y) + 12px); z-index:30; width:42px; height:42px; aspect-ratio:auto; pointer-events:none; transform:rotate(7deg); transition:left .08s linear,top .08s linear,width .35s ease,height .35s ease; }.identity-card.is-docked .identity-card__face { padding:0; display:grid; place-items:center; border-radius:50%; overflow:hidden; box-shadow:0 8px 18px rgba(40,34,25,.22); }.identity-card.is-docked .identity-card__face>* { display:none; }.identity-card.is-docked .identity-card__front::after { content:'Z'; color:var(--gold-700); font:700 17px var(--serif); }.identity-card.is-docked .identity-card__back { display:none; }
.exhibit { isolation:isolate; border-color:rgba(233,231,223,.28); }.exhibit__frame { position:absolute; z-index:1; inset:10px; border:1px solid rgba(233,231,223,.22); pointer-events:none; transition:border-color .35s,inset .35s; }.exhibit:hover .exhibit__frame { inset:16px; border-color:var(--gold); }.exhibit__content { width:100%; }.exhibit__meta { display:flex; flex-wrap:wrap; gap:7px; margin-top:17px; }.exhibit__meta span { padding:5px 8px; border:1px solid rgba(233,231,223,.38); color:#e3e2d9; font:9px var(--mono); letter-spacing:.07em; }.exhibit:hover .exhibit__meta span { border-color:rgba(211,168,109,.8); }.exhibit__placeholder::before { content:'PROCESS ARCHIVE'; position:absolute; z-index:1; left:24px; top:22px; color:var(--gold); font:10px var(--mono); letter-spacing:.12em; }
.hall-page,.museum,.detail { background:var(--paper); }.museum-room { background:#fbf9f3; }.museum-room:hover { background:#eee7da; }.exhibit { background:#e9e2d4; border-color:rgba(57,54,44,.22); box-shadow:0 10px 28px rgba(54,47,34,.06); }.exhibit::after { background:linear-gradient(180deg,rgba(246,243,235,.03) 26%,rgba(38,37,30,.76) 100%); }.exhibit:hover { border-color:var(--gold); box-shadow:0 18px 42px rgba(54,47,34,.14); }.exhibit__frame { border-color:rgba(255,255,255,.45); }.exhibit__placeholder { background:radial-gradient(circle at 24% 23%,#e4cfad,transparent 28%),linear-gradient(135deg,#c4b59c,#716d5d); }.exhibit__meta span { background:rgba(31,31,25,.26); border-color:rgba(255,255,255,.4); }.detail__hero { background:#e7ded0; }.detail__hero-title p { color:#555147; }.detail__body { color:var(--ink); }.detail__sections p,.detail__sections li { color:#555147; }.result-list span { color:var(--ink); background:#faf7f0; border-color:var(--gold-500); }.detail__body aside { color:#80796e; }.footer { background:#eee8dc; color:#777168; }.stats { border-color:var(--line); }.stat { border-color:var(--line); }.stat__num { color:var(--lime-500); }.hero__enter { color:var(--ink); }.hero__quote { color:var(--ink); }.hall-page__about { color:#716d63; }
.museum-room { padding:0; min-height:340px; display:grid; grid-template-columns:43% 57%; overflow:hidden; }.museum-room__photo { background:center/cover no-repeat; filter:saturate(.82); transition:transform .6s ease,filter .35s; }.museum-room__copy { min-width:0; padding:25px; display:flex; flex-direction:column; position:relative; }.museum-room:hover .museum-room__photo { transform:scale(1.06); filter:saturate(1); }.museum-room strong { margin:auto 0 10px; }.museum-room i { right:25px; bottom:23px; }.museum-room:hover { background:#fbf9f3; }
.museum__guide { display:flex; gap:0; margin:54px 0 -1px; border-top:1px solid var(--line); border-left:1px solid var(--line); }.museum__guide span { flex:1; padding:13px 16px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:#756e62; font:10px var(--mono); letter-spacing:.1em; text-transform:uppercase; }.museum-room em { margin-top:14px; color:var(--gold-600); font:10px var(--mono); font-style:normal; letter-spacing:.1em; }.collection { margin-top:12px; }.collection__head { display:grid; grid-template-columns:1fr auto; gap:10px 25px; align-items:end; padding:18px 0 26px; border-top:1px solid var(--line); }.collection__head span { color:var(--gold-600); font:11px var(--mono); letter-spacing:.12em; }.collection__head strong { font:500 12px var(--mono); letter-spacing:.1em; }.collection__head small { grid-column:1/-1; color:#777168; font-size:13px; }.collection .exhibit-grid { margin-top:0; }
.hall-page { max-width:1500px; margin:auto; }.exhibit-grid { grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(16px,2vw,28px); align-items:start; }.exhibit { display:grid; grid-template-rows:minmax(250px,1.25fr) auto; min-height:0; padding:0; background:#fcfaf5; border:1px solid rgba(57,54,44,.2); overflow:hidden; box-shadow:0 16px 34px rgba(63,54,37,.08); }.exhibit:nth-child(1) { grid-column:span 7; }.exhibit:nth-child(2) { grid-column:span 5; margin-top:44px; }.exhibit:nth-child(3) { grid-column:3 / span 8; margin-top:-38px; }.exhibit__image { position:relative; inset:auto; grid-row:1; min-height:260px; opacity:1; filter:saturate(.9) contrast(.98); transform:none!important; }.exhibit::after { display:none; }.exhibit__frame { z-index:2; inset:12px 12px auto auto; width:38px; height:38px; border:0; background:#fbf8f0e8; display:grid; place-items:center; }.exhibit__frame::after { content:'↗'; color:var(--ink); font-size:16px; }.exhibit__content { grid-row:2; padding:23px 25px 24px; color:var(--ink); background:#fcfaf5; }.exhibit__type { color:var(--gold-600); }.exhibit h2 { font-size:clamp(24px,2.6vw,36px); margin:9px 0 10px; }.exhibit p { color:#6c675e; max-width:44ch; }.exhibit__meta { margin-top:16px; }.exhibit__meta span { color:#746754; background:transparent; border-color:#cfc4b5; }.exhibit__open { color:var(--gold-700); margin-top:18px; }.exhibit:hover { transform:translateY(-7px); box-shadow:0 25px 50px rgba(63,54,37,.17); }.exhibit:hover .exhibit__image { filter:saturate(1.04) contrast(1.03); }.exhibit:hover .exhibit__frame { background:var(--gold); }.detail__hero { box-shadow:0 18px 45px rgba(63,54,37,.1); }.detail__hero-image { min-height:500px; }.detail-gallery img { box-shadow:0 9px 20px rgba(63,54,37,.12); }
.detail-proof { display:grid; grid-template-columns:minmax(0,360px); gap:16px; }.detail-proof img { width:100%; border:1px solid var(--line); box-shadow:0 10px 24px rgba(63,54,37,.12); }
.story-photo { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:14px; max-width:540px; margin:0 0 45px; }.story-photo img { width:100%; min-height:260px; object-fit:cover; border-radius:14px; box-shadow:0 12px 26px rgba(63,54,37,.12); }
.hero--scene { --scene-x:0; --scene-y:0; display:block; min-height:clamp(560px,calc(100svh - 130px),720px); padding:0; background:linear-gradient(135deg,#d9e7e6 0%,#f8eee1 47%,#efc2a9 100%); }.hero--scene::before { background:radial-gradient(circle at 77% 30%,rgba(255,255,255,.8),transparent 24%),linear-gradient(90deg,rgba(246,243,235,.92) 0%,rgba(246,243,235,.7) 34%,transparent 67%); }.hero--scene .hero__content { position:absolute; z-index:4; left:clamp(20px,8vw,128px); bottom:clamp(88px,13vh,150px); max-width:min(500px,44vw); }.hero--scene .hero__grid { opacity:.14; }.scene-collection { position:absolute; z-index:2; inset:74px 5vw 48px 42%; min-width:500px; }.scene-piece { position:absolute; overflow:hidden; display:block; border:1px solid rgba(35,49,55,.26); background:#fff; box-shadow:0 22px 42px rgba(46,62,70,.18); text-decoration:none; transition:box-shadow .35s ease; }.scene-piece img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.86); transition:transform .6s ease,filter .35s ease; }.scene-piece span { position:absolute; inset:auto 0 0; padding:18px; color:#fff; background:linear-gradient(transparent,rgba(27,39,45,.8)); display:flex; flex-direction:column; gap:3px; }.scene-piece small { font:9px var(--mono); letter-spacing:.1em; opacity:.9; }.scene-piece b { font:500 clamp(17px,1.8vw,25px) var(--serif); }.scene-piece i { max-height:0; overflow:hidden; font:10px var(--mono); letter-spacing:.08em; font-style:normal; opacity:0; transition:max-height .25s,opacity .25s; }.scene-piece--speak { width:46%; height:78%; left:20%; top:4%; transform:translate(calc(var(--scene-x) * -19px),calc(var(--scene-y) * -13px)) rotate(-3deg); z-index:2; }.scene-piece--team { width:48%; height:50%; right:0; bottom:1%; transform:translate(calc(var(--scene-x) * 18px),calc(var(--scene-y) * 14px)) rotate(5deg); z-index:3; }.scene-piece--make { width:42%; height:43%; left:0; bottom:2%; transform:translate(calc(var(--scene-x) * -11px),calc(var(--scene-y) * 18px)) rotate(-7deg); z-index:4; }.scene-piece:hover { z-index:6; box-shadow:0 30px 58px rgba(46,62,70,.3); }.scene-piece:hover img { transform:scale(1.06); filter:saturate(1.08); }.scene-piece:hover i { max-height:20px; opacity:1; }.hero--scene .identity-card { z-index:7; right:clamp(20px,5vw,80px); bottom:28px; width:min(295px,25vw); }.identity-card.is-docked { display:none; }
.identity-card__face { border-radius:18px; overflow:hidden; }.hero--scene:not(.is-unlocked) { min-height:100svh; background:#d9e7e6; cursor:pointer; }.hero--scene:not(.is-unlocked)::before { z-index:5; background:rgba(238,242,239,.35); backdrop-filter:blur(11px); }.hero--scene:not(.is-unlocked) .hero__grid { opacity:.07; }.hero--scene:not(.is-unlocked) .hero__content,.hero--scene:not(.is-unlocked) .scene-collection { opacity:.38; filter:blur(10px) saturate(.75); pointer-events:none; }.hero--scene:not(.is-unlocked) .identity-card { left:50%; right:auto; bottom:auto; top:46%; width:min(430px,80vw); transform:translate(-50%,-50%); }.home-intro .nav { opacity:0; pointer-events:none; }.entry-hint { position:absolute; z-index:7; left:50%; top:calc(46% + min(220px,19vw)); transform:translateX(-50%); display:flex; align-items:center; gap:10px; color:#485761; font:11px var(--mono); letter-spacing:.09em; white-space:nowrap; }.entry-hint i { color:#b56f59; font-style:normal; }.hero--scene.is-unlocked .entry-hint { opacity:0; pointer-events:none; transition:opacity .2s; }.hero--scene.is-unlocked .hero__content,.hero--scene.is-unlocked .scene-collection { animation:sceneReveal .7s .08s both; }.hero--scene.is-unlocked .identity-card.is-minimized { opacity:0; visibility:hidden; pointer-events:none; transform:scale(.94); transition:opacity .4s ease,transform .4s ease,visibility 0s linear .4s; }.scene-piece { border-radius:22px; }.scene-piece img { border-radius:21px; }.scene-piece span { border-radius:0 0 21px 21px; }.museum-room strong { white-space:nowrap; font-size:clamp(25px,3.1vw,43px); }
.hall-page__top { grid-template-columns:1fr; gap:20px; padding-bottom:40px; }.hall-page h1 { white-space:nowrap; font-size:clamp(34px,5.5vw,78px); }.hall-page__lead { max-width:720px; }.hall-page__about { margin-top:12px; }
.hall-page__note { max-width:720px; margin:18px 0 0; padding:13px 16px; border-left:3px solid var(--gold-500); background:rgba(232,219,199,.42); color:#625d54; font-size:13px; line-height:1.8; }
.online-archive { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr); gap:38px; margin:54px 0 0; padding:30px; border:1px solid #9db5ba; background:linear-gradient(120deg,#e7f0ee,#f8f3e9); }.online-archive > div > span { color:#49727e; font:10px var(--mono); letter-spacing:.11em; }.online-archive h2 { margin:11px 0; font:500 clamp(24px,3vw,36px) var(--serif); letter-spacing:-.04em; }.online-archive p { max-width:610px; margin:0; color:#5b615b; font-size:14px; line-height:1.9; }.online-archive__tags { align-content:center; display:flex; flex-wrap:wrap; gap:9px; }.online-archive__tags span { padding:9px 11px; border:1px solid rgba(73,114,126,.45); color:#3f6470; font:10px var(--mono); letter-spacing:.07em; }
.contact-room { min-height:100svh; padding:150px clamp(20px,8vw,128px) 100px; background:linear-gradient(120deg,#e6efed,#f8f2e7 62%,#efd8ca); }.contact-room header { max-width:740px; }.contact-room h1 { margin:17px 0; font:500 clamp(48px,7vw,90px)/1 var(--serif); letter-spacing:-.08em; }.contact-room header p { max-width:520px; color:#5a625e; font:17px/1.9 var(--serif); }.contact-room__choices { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:980px; margin-top:70px; }.contact-room__choices article { min-height:290px; display:flex; flex-direction:column; padding:28px; border:1px solid rgba(48,76,84,.25); background:#fbf8f0cc; box-shadow:0 14px 30px rgba(67,58,38,.1); }.contact-room__choices article:nth-child(2) { background:#315563; color:#f4f2e9; }.contact-room__choices span { font:10px var(--mono); letter-spacing:.12em; color:var(--gold-600); }.contact-room__choices article:nth-child(2) span { color:var(--gold-200); }.contact-room__choices h2 { margin:45px 0 11px; font:500 31px var(--serif); letter-spacing:-.04em; }.contact-room__choices p { max-width:370px; margin:0; color:#66635a; font-size:14px; line-height:1.85; }.contact-room__choices article:nth-child(2) p { color:#d7e0dc; }.contact-room__action,.contact-room__pending { margin-top:auto; display:inline-block; width:max-content; padding:11px 14px; border:1px solid var(--gold-500); color:var(--gold-700); font:11px var(--mono); letter-spacing:.07em; text-decoration:none; }.contact-room__action:hover { background:var(--gold-300); color:#2a2a24; }.contact-room__action--dark { border-color:var(--gold-300); color:var(--gold-100); }.contact-room__action--dark:hover { background:var(--gold-300); color:#29454d; }.contact-room__pending { color:#8f887d; border-color:#c6beb2; }.contact-room__rule { max-width:980px; margin-top:20px; padding:22px 26px; border-left:3px solid var(--gold-500); background:#f7f0e6b8; }.contact-room__rule strong { font:500 20px var(--serif); }.contact-room__rule p { max-width:680px; margin:8px 0 0; color:#635d53; font-size:13px; line-height:1.8; }
.detail__body { grid-template-columns:1fr; max-width:980px; gap:30px; }.detail__body aside { flex-direction:row; flex-wrap:wrap; align-items:center; gap:12px 22px; padding:13px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.detail__sections { max-width:none; }.detail__sections section { max-width:740px; }.detail-gallery { max-width:900px; }.detail-proof { max-width:420px; }
.hall-page { max-width:1280px; }.exhibit-grid { grid-template-columns:minmax(0,1fr); gap:24px; }.exhibit,.exhibit:nth-child(1),.exhibit:nth-child(2),.exhibit:nth-child(3) { grid-column:auto; margin:0; min-height:370px; grid-template-columns:minmax(330px,44%) minmax(0,1fr); grid-template-rows:1fr; }.exhibit__image { grid-column:1; grid-row:1; min-height:100%; }.exhibit__content { grid-column:2; grid-row:1; display:flex; flex-direction:column; justify-content:center; padding:clamp(24px,4vw,58px); }.exhibit__open { margin-top:25px; }.exhibit__frame { right:14px; top:14px; }
@media (max-width:720px) { .exhibit,.exhibit:nth-child(1),.exhibit:nth-child(2),.exhibit:nth-child(3) { grid-template-columns:1fr; grid-template-rows:235px auto; min-height:0; }.exhibit__image { grid-column:1; grid-row:1; min-height:235px; }.exhibit__content { grid-column:1; grid-row:2; padding:23px; } }
@media (max-width:720px) { .online-archive { grid-template-columns:1fr; gap:22px; padding:23px; } }
@media (max-width:720px) { .contact-room { padding-top:120px; }.contact-room__choices { grid-template-columns:1fr; margin-top:42px; }.contact-room__choices article { min-height:250px; }.contact-room__choices h2 { margin-top:28px; } }
@keyframes sceneReveal { from { opacity:0; transform:translateY(16px) } to { opacity:1; transform:none } }
@media (max-width:720px) { .nav__index { display:none; }.nav__back { padding:7px 9px; }.hero { padding-bottom:45px; }.hero__bottom { display:none; }.home-note { flex-direction:column; }.intro,.hall-page__top { grid-template-columns:1fr; gap:24px; }.intro__note { grid-column:auto; }.hall button { grid-template-columns:34px 1fr 32px; gap:12px; }.hall__desc { display:none; }.archive-strip { grid-template-columns:1fr; }.archive-strip__frame { min-height:150px; }.museum { padding-top:125px; }.museum__map { grid-template-columns:1fr; margin-top:45px; }.museum-room { min-height:240px; }.museum-room i { opacity:1; transform:none; }.exhibit-grid { grid-template-columns:1fr; }.exhibit { min-height:380px; }.stats { grid-template-columns:1fr 1fr; }.stat:nth-child(2) { border-right:0; }.detail { padding-top:105px; }.detail__hero,.detail__body { grid-template-columns:1fr; }.detail__hero-title { padding:30px 24px; }.detail__body aside { display:none; }.detail__body { margin-top:55px; }.detail-gallery img { height:180px; }.footer { gap:14px; flex-direction:column; } }
@media (max-width:720px) { .exhibit-grid { display:grid; grid-template-columns:1fr; gap:18px; }.exhibit,.exhibit:nth-child(1),.exhibit:nth-child(2),.exhibit:nth-child(3) { grid-column:auto; margin:0; min-height:0; }.exhibit__image { min-height:235px; }.exhibit__content { padding:21px; } }
@media (max-width:720px) { .museum-room { grid-template-columns:40% 60%; min-height:230px; }.museum-room__copy { padding:19px; }.museum-room strong { font-size:29px; }.museum-room i { right:19px; bottom:18px; } }
@media (max-width:720px) { .museum__guide { margin-top:35px; display:grid; grid-template-columns:1fr 1fr; }.museum__guide span:last-child { grid-column:1/-1; }.collection__head { padding-top:17px; }.collection__head strong { font-size:10px; } }
@media (max-width:720px) { .identity-card { right:20px; bottom:28px; width:190px; }.identity-card__face { padding:17px; }.identity-card b { font-size:36px; }.identity-card strong { font-size:12px; }.identity-card em { font-size:10px; }.identity-card.is-docked { width:38px; height:38px; } }
@media (max-width:720px) { .hero--scene { min-height:920px; }.hero--scene .hero__content { left:20px; right:20px; bottom:430px; max-width:none; }.scene-collection { min-width:0; inset:390px 20px 86px; }.scene-piece--speak { width:58%; height:56%; left:20%; top:0; }.scene-piece--team { width:58%; height:38%; right:0; bottom:0; }.scene-piece--make { width:52%; height:35%; left:0; bottom:4%; }.hero--scene .identity-card { right:20px; bottom:24px; width:170px; } }
@media (max-width:720px) { .hero--scene:not(.is-unlocked) .identity-card { left:50%; right:auto; top:50%; bottom:auto; width:min(86vw,360px); transform:translate(-50%,-50%); }.hall-page h1 { white-space:normal; } }
@media (max-width:720px) { .entry-hint { top:calc(50% + min(180px,23vw)); gap:6px; font-size:9px; letter-spacing:.04em; } }

/* Continue the existing layout: readable navigation and accessible entry. */
.entry-hint button { border:0; padding:8px 0; background:transparent; color:inherit; font:inherit; letter-spacing:inherit; }
a:focus-visible,button:focus-visible { outline:3px solid #2f5b7c; outline-offset:5px; }
.museum-room strong { white-space:normal; overflow-wrap:anywhere; }
.museum-room__copy { padding-bottom:64px; }
.story-photo { grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.story-photo img { min-height:0; height:auto; object-fit:contain; }
.detail-next { display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; margin:50px auto 0; padding:26px 0; max-width:980px; border-top:1px solid var(--line); }
.detail-next a { color:#2f5b7c; text-decoration:none; line-height:1.8; }
@media(max-width:720px) { .nav { background:#f6f3ebf5; }.nav__row { flex-wrap:wrap; row-gap:9px; padding:14px 20px 8px; }.nav__halls { padding:0 20px 12px; }.nav__right { margin-left:auto; gap:8px; }.museum-room__copy { padding-bottom:60px; }.museum-room strong { font-size:clamp(22px,6vw,29px); } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; }.reveal { opacity:1; transform:none; } }

/* ===== 四馆色调标识：让每馆各有冷暖，馆与馆之间“有颜色关系、有层次” ===== */
.hall--explore { --hall:#a86f96; --hall-bg:#f4e2ea; --hall-bg2:#ecd2dd; }
.hall--connect { --hall:#5c8a4e; --hall-bg:#e5eedd; --hall-bg2:#d2e2c6; }
.hall--make    { --hall:#c0783a; --hall-bg:#f2e4cf; --hall-bg2:#e9d3b0; }
.hall--now     { --hall:#6c8fa6; --hall-bg:#e4edf1; --hall-bg2:#d3e0e7; }

/* 大厅：每间房带该馆色调底，编号/英文/馆藏数用馆色，悬停加深 */
.museum-room { background:var(--hall-bg,#fbf9f3); }
.museum-room:hover { background:var(--hall-bg2,#eee7da); }
.museum-room__no,.museum-room__en,.museum-room em { color:var(--hall,var(--gold-600)); }
.museum-room i { color:var(--hall,var(--gold)); }

/* 展馆页：整页该馆色调柔和渐变；眉标与标题下的短标用馆色 */
.hall-page { background:linear-gradient(180deg,var(--hall-bg,var(--paper)) 0%,var(--paper) 46%); }
.hall-page .eyebrow { color:var(--hall,var(--gold)); }
.hall-page h1::after { content:""; display:block; width:64px; height:4px; margin-top:22px; background:var(--hall,var(--gold)); }

/* 展品卡：类型/入口/悬停反馈都跟随该馆色 */
.exhibit__type { color:var(--hall,var(--gold-600)); }
.exhibit__open { color:var(--hall,var(--gold-700)); }
.exhibit:hover { border-color:var(--hall,var(--gold)); }
.exhibit:hover .exhibit__frame { background:var(--hall,var(--gold)); }
.exhibit:hover .exhibit__meta span { border-color:var(--hall,var(--gold)); }
.collection__head span { color:var(--hall,var(--gold-600)); }

/* 详情页：顶部背景也用该馆色调 */
.detail__hero { background:var(--hall-bg,#e7ded0); }

/* ===== 面包屑：深入详情页也能快速返回大厅 / 所在馆 ===== */
.crumb { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 18px; font:11px var(--mono); letter-spacing:.06em; }
.crumb a { color:var(--muted); text-decoration:none; }
.crumb a:hover { color:var(--ink); }
.crumb i { color:var(--gold); font-style:normal; }
.crumb span { color:var(--hall,var(--gold-700)); }

/* ===== 展品探索进度 + 馆章 ===== */
.explore-progress,.hall-progress { display:flex; flex-direction:column; gap:10px; margin-top:26px; }
.hall-progress { margin-bottom:22px; }
.explore-progress { max-width:420px; }
.explore-progress__label { font:10px var(--mono); letter-spacing:.14em; color:var(--muted); text-transform:uppercase; }
.explore-progress__track { display:block; height:4px; background:rgba(57,54,44,.14); border-radius:9999px; overflow:hidden; }
.explore-progress__fill { display:block; height:100%; min-width:4px; background:var(--hall,var(--gold)); border-radius:9999px; transition:width .6s ease; }
.lobby-dots { display:flex; gap:9px; }
.lobby-room-dot { display:grid; place-items:center; width:32px; height:32px; border-radius:9999px; border:1px solid var(--line); color:var(--muted); font:11px var(--mono); letter-spacing:.04em; transition:.3s; }
.lobby-room-dot.is-collected { background:var(--hall-bg2,#eee7da); border-color:var(--hall,var(--gold)); color:var(--hall,var(--gold-700)); }
.hall-stamp { display:inline-flex; align-items:center; gap:8px; width:max-content; padding:7px 13px; border:1px solid var(--hall,var(--gold)); border-radius:9999px; color:var(--hall,var(--gold-700)); font:10px var(--mono); letter-spacing:.12em; }
.hall-stamp b { font-size:14px; }
.exhibit__seen { padding:4px 8px; border:1px solid var(--hall,var(--gold)); color:var(--hall,var(--gold-700)); font:9px var(--mono); letter-spacing:.08em; }
@media(max-width:720px){ .explore-progress,.hall-progress { margin-top:20px; } .explore-progress { max-width:none; } }

/* ===== 可读性 + 密度：调大微标签字号，收紧过长/过空页面的垂直间距 ===== */
.collection__head { padding:16px 0 20px; }
.collection__head span { font:500 14px var(--mono); letter-spacing:.12em; }
.collection__head strong { font:500 15px var(--mono); letter-spacing:.1em; }
.collection__head small { color:#6f6a60; font-size:15px; line-height:1.6; }
.explore-progress__label { font:12px var(--mono); letter-spacing:.1em; }
.hall-page__about { font-size:15px; line-height:1.8; }
.museum__head p { font-size:15px; line-height:1.8; }
.hall-page__note { font-size:14px; }
/* 收紧各段垂直间距，让页面更饱满、不显空 */
.hall-page { padding:118px clamp(20px,8vw,128px) 72px; }
.hall-page__top { gap:30px; padding-bottom:42px; }
.hall-page__about { margin-top:15px; }
.hall-page__note { padding:12px 15px; }
.museum { padding:120px clamp(20px,8vw,128px) 76px; }
.museum__map { margin-top:46px; }
.collection { margin-top:8px; }
.stats { margin-top:46px; }
.stat { padding:20px 16px; }
.exhibit__image { min-height:220px; }
.exhibit__content { padding:20px 22px 21px; }
.intro { padding:clamp(70px,10vw,120px) clamp(20px,8vw,128px); }
.halls { padding:72px clamp(20px,5vw,80px) 84px; }
@media(min-width:721px){ .exhibit:nth-child(2){ margin-top:30px; } .exhibit:nth-child(3){ margin-top:-22px; } }
/* 详情页同样收紧：顶部留白与每一节的间距 */
.detail { padding:112px clamp(20px,8vw,128px) 74px; }
.detail__hero { min-height:460px; }
.detail__hero-image { min-height:460px; }
.detail__body { margin:54px auto 0; }
.detail__sections section { padding:0 0 34px; margin-bottom:30px; }
.detail__sections h2 { margin:0 0 16px; }
.detail__sections p,.detail__sections li { line-height:1.8; }
.detail-next { margin:36px auto 0; padding:22px 0; }

/* ===== 空间化页面转场：进场"步入展厅"（纸膜淡去 + 内容上浮） ===== */
.page-veil { position:fixed; inset:0; z-index:46; background:var(--paper); pointer-events:none; animation:veilOut .7s cubic-bezier(.2,.7,.3,1) both; }
@keyframes veilOut { from { opacity:1 } to { opacity:0; visibility:hidden } }
#app > main { animation:pageIn .6s cubic-bezier(.2,.7,.3,1) .08s both; }
@keyframes pageIn { from { opacity:0; transform:translateY(14px) } to { opacity:1; transform:none } }

/* ===== 全馆庆祝：烟花 + 渐变弹出联系方式/信箱 ===== */
.fx { position:fixed; inset:0; z-index:60; pointer-events:none; }
.gratz { position:fixed; inset:0; z-index:70; display:grid; place-items:center; padding:20px; background:rgba(38,32,24,.34); backdrop-filter:blur(4px); animation:fadeIn .4s cubic-bezier(.2,.7,.3,1); }
.gratz__booth { position:relative; max-width:560px; width:100%; padding:42px clamp(28px,6vw,52px); text-align:center; background:linear-gradient(135deg,#fbefe0,#f7d9b0 58%,#e6b380); color:#3b2a1b; border-radius:18px; border:1px solid rgba(120,80,40,.3); box-shadow:0 24px 70px rgba(50,32,14,.38); animation:popBox .55s cubic-bezier(.2,.9,.3,1.15); }
.gratz__eyebrow { font:11px var(--mono); letter-spacing:.16em; color:#a4644c; text-transform:uppercase; }
.gratz__booth h2 { margin:16px 0 12px; font:600 clamp(30px,4vw,40px)/1.2 var(--serif); letter-spacing:-.04em; }
.gratz__booth p { margin:0 auto; max-width:38ch; color:#6a5038; font-size:15px; line-height:1.85; }
.gratz__actions { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:28px; }
.gratz__btn { display:inline-block; padding:12px 20px; border-radius:8px; font:500 14px var(--sans); text-decoration:none; }
.gratz__btn--primary { background:#3b2a1b; color:#fbefe0; }
.gratz__btn--primary:hover { opacity:.9; }
.gratz__btn--ghost { border:1px solid rgba(120,80,40,.5); color:#5a3c22; }
.gratz__btn--ghost:hover { background:rgba(255,255,255,.35); }
.gratz__close { position:absolute; top:-42px; right:0; border:0; background:none; color:#fbefe0; font:11px var(--mono); letter-spacing:.1em; cursor:pointer; }
@keyframes fadeIn { from { opacity:0 } to { opacity:1 } }
@keyframes popBox { from { opacity:0; transform:translateY(18px) scale(.96) } to { opacity:1; transform:none } }
@media(prefers-reduced-motion:reduce){ .page-veil,#app > main,.gratz,.gratz__booth { animation:none!important; } .fx { display:none; } }

/* ===== 展品卡：悬停微倾斜 + 跟随光斑（reduced-motion / 触摸设备自动禁用倾斜） ===== */
/* 仅在 hover 时应用 3D 倾斜，避免覆盖 .reveal 的入场位移（保留既定入场动画） */
.exhibit:hover, .exhibit.reveal.is-visible:hover { --lift:-8px; transform:perspective(1100px) rotateX(var(--tiltX,0deg)) rotateY(var(--tiltY,0deg)) translateY(var(--lift,-8px)); }
.exhibit__spot { position:absolute; inset:0; z-index:3; pointer-events:none; opacity:0; background:radial-gradient(180px circle at var(--spotX,50%) var(--spotY,50%), rgba(255,240,204,.45), transparent 60%); mix-blend-mode:screen; transition:opacity .3s; }
.exhibit:hover .exhibit__spot { opacity:1; }
@media(prefers-reduced-motion:reduce){ .exhibit:hover, .exhibit.reveal.is-visible:hover { transform:none; } .exhibit__spot { display:none; } }

/* ===== 大厅：馆藏入口 + 摇一摇 + 博物馆平面导览图 ===== */
.museum__bar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 22px; margin-top:36px; padding:16px 18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fbf9f3e6; }
.museum__bar-meta { display:flex; flex-wrap:wrap; align-items:center; gap:9px; color:#756e62; font:11px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.museum__bar-meta i { color:var(--gold); font-style:normal; }
.museum__bar-actions { display:flex; flex-wrap:wrap; gap:10px; }
.museum__tool { display:inline-flex; align-items:center; gap:8px; padding:11px 16px; border:1px solid var(--gold-500); background:var(--gold-100); color:var(--gold-700); font:12px var(--mono); letter-spacing:.06em; text-decoration:none; transition:border-color .25s,background-color .25s,color .25s,transform .25s; box-shadow:0 2px 8px rgba(63,54,37,.06); }
.museum__tool:hover { background:var(--gold-200); border-color:var(--gold-600); transform:translateY(-2px); }
.museum__tool--btn { cursor:pointer; background:var(--gold-500); color:#2a2a24; border-color:var(--gold-600); }
.museum__tool--btn:hover { background:var(--gold-600); color:#fffdf8; }
.museum__plan { margin-top:36px; }
.museum__plan-head { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:0 0 14px; border-bottom:1px solid var(--line); }
.museum__plan-head span { color:var(--gold-600); font:11px var(--mono); letter-spacing:.14em; }
.museum__plan-head em { color:var(--muted); font:11px var(--mono); font-style:normal; letter-spacing:.08em; }
.museum__plan-map { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:14px; }
.plan-room { display:flex; flex-direction:column; gap:6px; min-height:132px; padding:18px; border:1px solid var(--hall,var(--line)); background:var(--hall-bg,#fbf9f3); text-decoration:none; transition:background-color .25s,border-color .25s,box-shadow .25s,transform .25s; }
.plan-room:hover { background:var(--hall-bg2,#eee7da); border-color:var(--hall,var(--gold-500)); box-shadow:0 12px 26px rgba(63,54,37,.12); transform:translateY(-2px); }
.plan-room__no { font:10px var(--mono); letter-spacing:.12em; color:var(--hall,var(--gold-600)); }
.plan-room strong { font:500 clamp(21px,2.6vw,28px) var(--serif); letter-spacing:-.04em; color:var(--ink); }
.plan-room small { color:var(--muted); font-size:12px; line-height:1.55; }
.plan-court { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:17px 20px; border:1px dashed var(--gold-500); background:#f8f1e4; }
.plan-court b { font:12px var(--mono); letter-spacing:.14em; color:var(--gold-700); }
.plan-court span a { color:var(--gold-700); font:11px var(--mono); letter-spacing:.08em; text-decoration:none; border-bottom:1px solid var(--gold-500); }
.plan-court span a:hover { color:var(--ink); }

/* ===== 馆藏一览（collection.html）目录页 ===== */
.collection-page { min-height:100svh; padding:140px clamp(20px,8vw,128px) 90px; background:var(--paper); max-width:1500px; margin:auto; }
.cpp__head h1 { margin:16px 0 12px; font:500 clamp(40px,6vw,80px)/1.05 var(--serif); letter-spacing:-.07em; }
.cpp__head p { max-width:520px; margin:0; color:var(--muted); font-size:15px; line-height:1.85; }
.cpp__list { margin-top:44px; display:flex; flex-direction:column; gap:40px; }
.cpp-group { padding-top:26px; border-top:1px solid var(--line); }
.cpp-group__head { display:flex; align-items:center; gap:16px; padding-bottom:18px; }
.cpp-group__no { flex:none; display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--hall,var(--gold-500)); border-radius:50%; color:var(--hall,var(--gold-600)); font:11px var(--mono); letter-spacing:.08em; }
.cpp-group__head div { flex:1; min-width:0; }
.cpp-group__head h2 { margin:0 0 3px; font:500 clamp(24px,3vw,34px) var(--serif); letter-spacing:-.04em; }
.cpp-group__head em { color:var(--muted); font:10px var(--mono); font-style:normal; letter-spacing:.12em; }
.cpp-group__head a { flex:none; color:var(--hall,var(--gold-700)); font:11px var(--mono); letter-spacing:.08em; text-decoration:none; border-bottom:1px solid var(--hall,var(--gold-500)); white-space:nowrap; }
.cpp-group__head a:hover { color:var(--ink); }
.cpp-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.cpp-item { display:flex; flex-direction:column; gap:8px; padding:18px; border:1px solid var(--line); background:#fcfaf5; text-decoration:none; transition:border-color .25s,box-shadow .25s,transform .25s; }
.cpp-item:hover { border-color:var(--hall,var(--gold)); box-shadow:0 12px 26px rgba(63,54,37,.1); transform:translateY(-2px); }
.cpp-item__type { font:10px var(--mono); letter-spacing:.12em; color:var(--hall,var(--gold-600)); }
.cpp-item b { font:500 18px/1.4 var(--serif); color:var(--ink); }
.cpp-item small { color:var(--muted); font:11px var(--mono); letter-spacing:.06em; }
.cpp-item i { margin-top:auto; color:var(--hall,var(--gold-700)); font:10px var(--mono); font-style:normal; letter-spacing:.08em; }

/* ===== 首页：换一句寄语按钮 ===== */
.hero__swap { margin-top:16px; padding:6px 12px; border:1px solid var(--line); background:#fbf8f0cc; color:var(--muted); font:11px var(--mono); letter-spacing:.08em; cursor:pointer; transition:color .25s,border-color .25s,background-color .25s; }
.hero__swap:hover { color:var(--ink); border-color:var(--gold); background:var(--gold-100); }

/* ===== 摇一摇 · 抽一件馆藏（摇蛋机）===== */
.drawer { position:fixed; inset:0; z-index:80; display:grid; place-items:center; padding:20px; background:rgba(38,32,24,.5); backdrop-filter:blur(4px); animation:fadeIn .3s cubic-bezier(.2,.7,.3,1); }
.drawer__panel { position:relative; width:min(100%,760px); max-height:92vh; overflow:auto; text-align:center; background:#fbf8f0; border:1px solid rgba(57,54,44,.18); padding:28px clamp(20px,4vw,34px) 26px; box-shadow:0 24px 70px rgba(50,32,14,.34); }
.drawer__close { position:absolute; top:-42px; right:0; border:0; background:none; color:#f6f3eb; font:11px var(--mono); letter-spacing:.1em; cursor:pointer; opacity:.9; }
.drawer__close:hover { opacity:1; }
.drawer__eyebrow { font:11px var(--mono); letter-spacing:.16em; color:var(--gold-600); text-transform:uppercase; }
.drawer h2 { margin:14px 0 6px; font:600 clamp(26px,4vw,38px) var(--serif); letter-spacing:-.04em; color:var(--ink); }
.drawer__hint { margin:0; color:var(--muted); font-size:13px; }
.drawer__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:20px; text-align:left; }
.drawer__tile { min-height:84px; display:flex; flex-direction:column; gap:4px; align-items:flex-start; text-align:left; padding:11px; border:1px solid var(--hall,var(--line)); background:var(--hall-bg,#fff); color:var(--ink); cursor:pointer; transition:transform .15s,box-shadow .15s,border-color .15s; }
.drawer__tile:hover { transform:translateY(-2px); box-shadow:0 10px 20px rgba(63,54,37,.12); border-color:var(--hall,var(--gold-500)); }
.drawer__tile__no { font:9px var(--mono); letter-spacing:.1em; color:var(--hall,var(--gold-600)); }
.drawer__tile b { font:500 14px/1.35 var(--serif); letter-spacing:-.02em; }
.drawer__tile small { color:var(--muted); font-size:10px; }
.drawer__tile.is-shaking { animation:drawShake .4s ease; }
.drawer__tile.is-winner { border-color:var(--gold); box-shadow:0 0 0 3px rgba(169,121,67,.3); }
.drawer__tile.is-grow { position:fixed; inset:0; z-index:86; border:0; border-radius:0; margin:0; padding:40px; background:center/cover no-repeat; justify-content:flex-end; transform:scale(.94); animation:drawGrow .55s cubic-bezier(.2,.8,.2,1) forwards; }
.drawer__tile.is-grow::before { content:""; position:absolute; inset:0; background:linear-gradient(transparent 28%,rgba(18,16,12,.82)); }
.drawer__tile.is-grow .drawer__tile__no,.drawer__tile.is-grow b { position:relative; z-index:1; color:#fff; }
.drawer__tile.is-grow small { position:relative; z-index:1; color:#efe9df; }
@keyframes drawShake { 0%,100% { transform:translate(0,0) } 20% { transform:translate(-3px,2px) } 40% { transform:translate(3px,-2px) } 60% { transform:translate(-2px,-2px) } 80% { transform:translate(2px,2px) } }
@keyframes drawGrow { from { transform:scale(.94); opacity:.4 } to { transform:scale(1); opacity:1 } }

/* ===== 全馆达成 · 一句祝福 ===== */
.gratz__quote { margin:16px auto 0; max-width:30ch; font:500 clamp(16px,2.4vw,22px)/1.6 var(--serif); color:#5a3c22; border-left:3px solid #a4644c; padding-left:16px; text-align:left; }

/* ===== 来信档案室 · 直接联系方式 ===== */
.contact-room__contact { margin:18px 0 0; color:#66635a; font:12px var(--mono); letter-spacing:.04em; }
.contact-room__contact b { color:var(--gold-700); font-weight:600; font-size:15px; letter-spacing:.06em; }

/* ===== 暖纸氛围：环境光渐变 + 微粒尘埃 ===== */
body::before { content:""; position:fixed; inset:0; z-index:9; pointer-events:none; opacity:.5; mix-blend-mode:multiply; transition:background .6s ease; background:radial-gradient(70% 62% at 16% 10%, var(--ambient,rgba(236,214,180,.5)), transparent 60%),radial-gradient(62% 56% at 90% 95%, var(--ambient,rgba(236,214,180,.5)), transparent 58%); }
#dust { position:fixed; inset:0; z-index:19; pointer-events:none; }

/* ===== 新组件移动端适配 ===== */
@media(max-width:720px){
  .museum__bar { gap:12px; padding:12px 14px; margin-top:22px; }
  .museum__bar-meta { width:100%; }
  .museum__tool { padding:10px 14px; font-size:11px; }
  .museum__plan { margin-top:28px; }
  .museum__plan-head { flex-direction:column; align-items:flex-start; gap:5px; }
  .museum__plan-map { grid-template-columns:1fr; gap:9px; }
  .plan-room { min-height:104px; padding:14px; }
  .plan-court { padding:13px 15px; flex-wrap:wrap; }
  .cpp__list { margin-top:30px; gap:30px; }
  .cpp-group__head { gap:12px; flex-wrap:wrap; }
  .cpp-grid { grid-template-columns:1fr; gap:10px; }
  .cpp-item b { font-size:17px; }
  .collection-page { padding-top:118px; }
  .drawer { padding:14px; }
  .drawer__panel { padding:22px 16px 18px; }
  .drawer__grid { grid-template-columns:repeat(2,1fr); gap:9px; }
  .drawer__tile { min-height:72px; }
}

/* ===== 从想法到现实馆 4 件展品：纵向单列排列，每件占满整行、从上到下 ===== */
.hall--make .exhibit-grid { grid-template-columns:minmax(0,1fr); }
.hall--make .exhibit, .hall--make .exhibit:nth-child(1), .hall--make .exhibit:nth-child(2), .hall--make .exhibit:nth-child(3), .hall--make .exhibit:nth-child(4) { grid-column:1 / -1; margin:0; }
@media(max-width:720px){ .hall--make .exhibit-grid { grid-template-columns:minmax(0,1fr); } }

/* ===== 来信档案室·写信表单（服务器信箱，适配深色"匿名"卡） ===== */
.letter-form { display:grid; gap:16px; margin-top:18px; text-align:left; }
.letter-field { display:flex; flex-direction:column; gap:7px; }
.letter-field label { font:10px var(--mono); letter-spacing:.1em; color:#d7e0dc; }
.letter-field label span { color:#aebfba; }
.letter-field label b { color:var(--gold-200); }
.letter-field input,.letter-field textarea { font:15px/1.6 var(--sans); color:#2a2a24; background:#fffdf8; border:1px solid rgba(255,255,255,.3); border-radius:8px; padding:11px 13px; }
.letter-field textarea { resize:vertical; min-height:96px; }
.letter-field input::placeholder,.letter-field textarea::placeholder { color:#9c9382; }
.letter-field input:focus,.letter-field textarea:focus { border-color:#e8c980; outline:3px solid rgba(232,201,128,.28); }
.letter-check { display:flex; gap:9px; align-items:flex-start; font-size:13px; line-height:1.6; color:#e3e9e4; cursor:pointer; }
.letter-check input { margin-top:3px; accent-color:var(--gold-500); }
.letter-submit { justify-self:start; border:0; background:var(--gold-500); color:#2a2a24; padding:12px 20px; border-radius:9px; font:500 13px var(--sans); letter-spacing:.05em; cursor:pointer; }
.letter-submit:hover { background:var(--gold-300); }
.letter-status { margin:0; min-height:1.2em; font-size:13px; color:var(--gold-100); }
.letter-wall { max-width:980px; margin-top:56px; padding-top:32px; border-top:1px solid rgba(48,76,84,.25); }
.letter-wall__head { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:14px; margin-bottom:24px; }
.letter-wall__head span { font:10px var(--mono); letter-spacing:.14em; color:var(--gold-600); }
.letter-wall__head h2 { margin:8px 0 0; font:500 clamp(28px,3.4vw,42px) var(--serif); letter-spacing:-.05em; }
.letter-wall__head p { margin:6px 0 0; color:#6c6b61; font-size:13px; line-height:1.75; max-width:470px; }
.letter-wall__list { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.wall-empty { grid-column:1/-1; margin:0; padding:26px; border:1px dashed rgba(48,76,84,.3); color:#8b8779; font:14px/1.8 var(--serif); text-align:center; }
.wall-item { padding:20px; background:#fbf8f0d9; border:1px solid rgba(48,76,84,.22); box-shadow:0 10px 24px rgba(67,58,38,.08); display:flex; flex-direction:column; gap:9px; }
.wall-item b { display:block; font:600 13px var(--mono); letter-spacing:.06em; color:var(--ink); }
.wall-item p { margin:0; color:#5d5b50; font:14px/1.8 var(--serif); }.wall-item__text { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:6; overflow:hidden; white-space:pre-line; }.wall-item.is-open .wall-item__text { display:block; overflow:visible; }.wall-item__more { align-self:flex-start; margin-top:-2px; padding:2px 0; border:0; border-bottom:1px solid rgba(169,121,67,.35); background:none; color:var(--gold-600); font:11px var(--mono); letter-spacing:.1em; cursor:pointer; }.wall-item__more:hover { color:var(--gold-700); border-bottom-color:var(--gold-600); }
.wall-item time { margin-top:auto; color:#98917f; font:10px var(--mono); letter-spacing:.1em; }
@media (max-width:720px) { .letter-wall { margin-top:38px; } .letter-wall__list { grid-template-columns:1fr; } }

@media (max-width:720px) {
  /* 移动端首页 hero：垂直堆叠，避免三张场景卡互相及与标题/引文重叠 */
  .hero--scene, .hero--scene.is-unlocked { min-height:0; }
  .hero--scene .hero__content { position:relative; left:auto; right:auto; bottom:auto; max-width:none; padding:118px 20px 24px; }
  .hero--scene .hero__content h1 { white-space:normal; font-size:clamp(38px,9vw,44px); }
  .hero--scene .hero__enter { margin-top:24px; }
  .hero--scene .scene-collection { position:relative; inset:auto; min-width:0; width:auto; margin:0; padding:0 20px 8px; display:grid; grid-template-columns:1fr; gap:16px; }
  .scene-piece, .scene-piece--speak, .scene-piece--team, .scene-piece--make { position:relative; width:100%; height:200px; left:auto; right:auto; top:auto; bottom:auto; transform:none; min-height:0; }
  .scene-piece b { font-size:20px; }
  .scene-piece span { padding:15px; }
}
@media (max-width:720px) { .hero--scene.is-unlocked .identity-card.is-minimized { display:none; } }

@media (max-width:720px) {
  /* 抽签摇蛋机 & 恭喜弹窗：小屏适配，避免被裁切/溢出 */
  .drawer { padding:14px; }
  .drawer__panel { max-height:88vh; padding:24px 16px 22px; }
  .drawer__grid { grid-template-columns:repeat(2,1fr); gap:9px; }
  .drawer__close { top:-34px; }
  .gratz { padding:16px; }
  .gratz__booth { padding:30px 20px; }
}

/* ===== 展品现场照片 · 电子相册（翻页书） ===== */
.album { margin-top:80px; padding-top:26px; }
.album__head { display:flex; flex-direction:column; gap:7px; margin-bottom:28px; }
.album__head .eyebrow { font:10px var(--mono); letter-spacing:.16em; color:var(--gold-600); }
.album__head h2 { margin:0; font:500 clamp(24px,3vw,34px) var(--serif); letter-spacing:-.04em; display:flex; align-items:baseline; gap:12px; }
.album__head h2 i { font-style:normal; color:var(--gold-500); }
.album__count { margin-left:auto; font:11px var(--mono); letter-spacing:.08em; color:var(--gold-700); white-space:nowrap; }
.album__head p { margin:0; color:var(--muted); font-size:13px; }
.album__stage { position:relative; margin:0 auto; max-width:920px; min-height:360px; display:flex; align-items:center; justify-content:center; perspective:1500px; }
.album__book { position:relative; width:min(74%,620px); height:min(52vh,430px); transform-style:preserve-3d; touch-action:pan-y; user-select:none; -webkit-user-select:none; transition:transform .55s cubic-bezier(.2,.7,.25,1); }
.album__flip { position:absolute; inset:0; z-index:4; display:block; background-size:cover; background-position:center; transform-origin:left center; backface-visibility:hidden; -webkit-backface-visibility:hidden; border-radius:0 7px 7px 0; box-shadow:inset 32px 0 52px -20px rgba(0,0,0,.42); opacity:0; pointer-events:none; will-change:transform; } .album__flip.is-on { opacity:1; } .album__flip::after { content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(90deg, rgba(0,0,0,.3), transparent 34%); }
.album__cover { position:absolute; inset:0; z-index:3; border-radius:7px; overflow:hidden; background:#1c1e19; cursor:grab; box-shadow:0 28px 62px rgba(30,26,18,.36), 0 5px 16px rgba(30,26,18,.22), inset 0 0 0 1px rgba(255,255,255,.05); }
.album__cover:active { cursor:grabbing; }
.album__cover::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg, rgba(0,0,0,.16), transparent 14%, transparent 86%, rgba(0,0,0,.16)); }
.album__img { display:block; width:100%; height:100%; object-fit:cover; transition:opacity .5s ease, transform .5s ease; }
.album__spine { position:absolute; top:0; bottom:0; left:50%; width:1.4px; transform:translateX(-.7px); background:linear-gradient(90deg, transparent, rgba(0,0,0,.24) 50%, transparent); z-index:2; pointer-events:none; }
.album__fan { position:absolute; top:12px; bottom:12px; width:100px; z-index:1; pointer-events:none; }
.album__fan--left { left:-66px; }
.album__fan--right { right:-66px; }
.album__fan i { position:absolute; top:0; bottom:0; width:78px; display:block; background-size:cover; background-position:center; border-radius:4px; box-shadow:0 12px 24px rgba(30,26,18,.24); filter:saturate(.85) brightness(.92); }
.album__fan--left i { transform-origin:right center; }
.album__fan--right i { transform-origin:left center; }
.album__nav { position:absolute; top:50%; transform:translateY(-50%); z-index:6; width:46px; height:46px; border:1px solid var(--line); border-radius:50%; background:rgba(255,253,248,.94); color:var(--ink); font-size:24px; line-height:1; cursor:pointer; box-shadow:0 8px 18px rgba(57,48,30,.14); }
.album__nav:hover { border-color:var(--gold-500); color:var(--gold-700); }
.album__nav--prev { left:12px; }
.album__nav--next { right:12px; }
@media (max-width:720px) {
  .album { margin-top:54px; }
  .album__head h2 { font-size:clamp(20px,6vw,26px); gap:8px; }
  .album__stage { min-height:250px; }
  .album__book { width:88%; height:min(46vh,320px); }
  .album__fan { display:none; }
  .album__nav { width:38px; height:38px; font-size:19px; }
  .album__nav--prev { left:6px; }
  .album__nav--next { right:6px; }
}

.footer__label { display:inline-flex; align-items:center; gap:7px; }
.footer__star { font-style:normal; color:var(--gold-500); font-size:11px; }

/* ===== 展品详情 · 粘性侧栏目录（宽屏） ===== */
.detail__toc { display:none; }
@media (min-width:1180px) {
  .detail__body { grid-template-columns:190px minmax(0,1fr); gap:clamp(30px,5vw,80px); max-width:1120px; }
  .detail__toc { display:flex; flex-direction:column; gap:11px; grid-column:1; grid-row:1 / -1; position:sticky; top:100px; align-self:start; }
  .detail__body aside, .detail__body .detail__sections { grid-column:2; }
  .detail__toc__title { color:var(--gold-600); font:9px var(--mono); letter-spacing:.14em; }
  .detail__toc ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1px; border-left:1px solid var(--line); }
  .detail__toc a { display:block; margin-left:-1px; padding:6px 0 6px 13px; border-left:2px solid transparent; color:var(--muted); font:11px var(--mono); letter-spacing:.04em; text-decoration:none; transition:color .2s,border-color .2s; }
  .detail__toc a:hover { color:var(--ink); }
  .detail__toc a.is-active { color:var(--gold-700); border-left-color:var(--gold-500); }
}

/* ===== 博物馆大厅 · 四个展馆一览（拼贴板） ===== */
.collage { margin-top:62px; }
.collage__head { display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.collage__head span { color:var(--gold-600); font:11px var(--mono); letter-spacing:.14em; }
.collage__head em { color:var(--muted); font:11px var(--mono); font-style:normal; letter-spacing:.07em; }
.collage__board { position:relative; margin-top:24px; padding:clamp(22px,3.6vw,50px); border-radius:8px; background:linear-gradient(140deg,#cdb28c,#b28e5e 58%,#9d7a4c); box-shadow:inset 0 0 0 1px rgba(80,58,28,.32), inset 0 0 70px rgba(78,56,26,.24), 0 24px 52px rgba(60,45,25,.2); }
.collage__board::before { content:""; position:absolute; inset:0; border-radius:8px; opacity:.55; background-image:radial-gradient(rgba(88,63,32,.3) 1px, transparent 1.5px); background-size:8px 8px; pointer-events:none; }
.collage__grid { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:clamp(22px,3.6vw,52px); }
.collage__piece { position:relative; display:block; padding:13px 13px 17px; background:#fbf7ee; color:var(--ink); text-decoration:none; box-shadow:0 15px 30px rgba(48,35,18,.32); transform:rotate(var(--rot,0deg)); transition:transform .4s cubic-bezier(.2,.7,.25,1), box-shadow .4s; }
.collage__piece:hover { transform:rotate(0deg) translateY(-10px) scale(1.02); box-shadow:0 32px 58px rgba(48,35,18,.42); z-index:4; }
.collage__tape { position:absolute; z-index:3; top:-13px; left:50%; width:100px; height:28px; transform:translateX(-50%) rotate(-2.5deg); background:linear-gradient(180deg, rgba(234,223,192,.85), rgba(219,205,168,.72)); box-shadow:0 3px 6px rgba(0,0,0,.14); }
.collage__photo { position:relative; z-index:2; display:block; height:clamp(150px,19vw,236px); background:center/cover no-repeat; filter:saturate(.94) contrast(1.02); }
.collage__glow { position:absolute; inset:0; z-index:3; pointer-events:none; opacity:0; background:radial-gradient(66% 62% at 50% 38%, rgba(255,241,206,.7), transparent 72%); mix-blend-mode:screen; transition:opacity .32s; }
.collage__piece:hover .collage__glow { opacity:1; }
.collage__cap { position:relative; z-index:2; display:flex; flex-direction:column; gap:3px; margin-top:12px; padding:0 3px; }
.collage__no { font:10px var(--mono); letter-spacing:.12em; color:var(--hall,var(--gold-600)); }
.collage__cap strong { font:500 clamp(20px,2.6vw,31px) var(--serif); letter-spacing:-.04em; }
.collage__cap small { color:#6c675e; font-size:12px; line-height:1.5; }
.collage__cap em { margin-top:5px; color:var(--hall,var(--gold-700)); font:10px var(--mono); font-style:normal; letter-spacing:.08em; }
@media (max-width:720px) { .collage { margin-top:44px; } .collage__head { flex-direction:column; align-items:flex-start; gap:5px; } .collage__grid { grid-template-columns:1fr; gap:30px; } .collage__piece { transform:none; } .collage__piece:hover { transform:translateY(-6px); } .collage__photo { height:184px; } }

/* ===== 圆角风格 B：小圆角 / 直角 + 细线（印刷目录感） ===== */
.identity-card__face, .scene-piece, .scene-piece img, .story-photo img,
.album__cover, .album__fan i, .collage__board, .collage__board::before,
.gratz__booth, .drawer__panel, .letter-field input, .letter-field textarea,
.letter-submit, .gratz__btn { border-radius:2px; }
.scene-piece span { border-radius:0 0 2px 2px; }
.album__flip { border-radius:0 2px 2px 0; }

/* ===== 四季拼贴元素（取元素，不取音量） ===== */
.hall--explore { --season:#e9aec5; --season-ink:#8d4a68; --season-soft:#fdeef4; }
.hall--connect { --season:#a7cb84; --season-ink:#4f6b34; --season-soft:#f1f7e8; }
.hall--make    { --season:#e0a15c; --season-ink:#8a4f18; --season-soft:#fbf1e2; }
.hall--now     { --season:#9fc3db; --season-ink:#41637d; --season-soft:#eef4f8; }
.hall-page__top { position:relative; }
.season-layer { position:absolute; inset:0; z-index:2; pointer-events:none; }
.season-tape { position:absolute; right:9%; top:-4px; padding:5px 22px; background:var(--season,var(--gold-500)); color:#fffdf8; font:9px var(--mono); letter-spacing:.16em; transform:rotate(-3.4deg); box-shadow:0 4px 12px rgba(60,48,30,.16); opacity:.92; }
.season-glyph { position:absolute; font-size:30px; line-height:1; filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(0 6px 10px rgba(60,48,30,.18)); }
.season-glyph--a { right:23%; top:-26px; transform:rotate(10deg); }
.season-glyph--b { right:1%; bottom:-6px; font-size:22px; transform:rotate(-9deg); opacity:.9; }
.season-hand { display:inline-block; margin:0; padding:4px 12px 5px; background:var(--season-soft,#f6f1e6); color:var(--season-ink,#7a6a4e); font:400 19px/1.4 'Ma Shan Zheng',var(--serif); border-radius:2px; transform:rotate(-1.6deg); box-shadow:0 5px 14px rgba(60,48,30,.08); }
.season-torn { height:14px; margin:-38px 0 20px; background:var(--season,var(--gold-500)); opacity:.32; clip-path:polygon(0 44%,2% 12%,5% 58%,8% 20%,11% 64%,14% 24%,17% 60%,20% 16%,23% 62%,26% 28%,29% 66%,32% 18%,35% 58%,38% 26%,41% 64%,44% 14%,47% 60%,50% 24%,53% 62%,56% 18%,59% 58%,62% 28%,65% 64%,68% 16%,71% 60%,74% 26%,77% 62%,80% 20%,83% 58%,86% 24%,89% 64%,92% 18%,95% 58%,98% 28%,100% 52%,100% 100%,0 100%); }
.exhibit__tape { position:absolute; z-index:3; top:9px; left:12px; width:66px; height:17px; background:var(--season,var(--gold-500)); opacity:.72; transform:rotate(-3.2deg); box-shadow:0 3px 8px rgba(40,30,16,.18); }
@media (max-width:900px) { .season-layer { display:none; } .season-torn { margin:-24px 0 14px; } .season-hand { font-size:17px; } }

/* ===== 明信片（团队合影背面） ===== */
.postcard { position:relative; min-height:500px; perspective:1600px; cursor:pointer; }
.postcard__inner { position:absolute; inset:0; transform-style:preserve-3d; transition:transform .85s cubic-bezier(.4,.08,.2,1); }
.postcard.is-flipped .postcard__inner { transform:rotateY(180deg); }
.postcard__face { position:absolute; inset:0; overflow:hidden; border-radius:2px; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.postcard__front { background:center/cover no-repeat #e7ded0; }
.postcard__front figcaption { position:absolute; left:0; right:0; bottom:0; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 22px; color:#fff; background:linear-gradient(transparent,rgba(28,26,20,.72)); font:10px var(--mono); letter-spacing:.12em; }
.postcard__front figcaption b { font:500 11px var(--sans); letter-spacing:.06em; }
.postcard__back { transform:rotateY(180deg); background:linear-gradient(135deg,#fbf6ea,#f0e6d4); border:1px solid rgba(67,59,47,.22); }
.postcard__stamp { position:absolute; z-index:2; right:16px; top:16px; width:54px; height:64px; display:grid; place-items:center; color:var(--gold-600); font-size:20px; background:#fffdf6; border:1px dashed rgba(120,105,80,.5); transform:rotate(6deg); }
.postcard__paper { position:absolute; inset:clamp(22px,3.4vw,38px) clamp(78px,9vw,104px) clamp(40px,4vw,54px) clamp(22px,3.4vw,40px); display:flex; flex-direction:column; gap:9px; padding:clamp(14px,2vw,24px); border:1px dashed rgba(120,105,80,.36); background:repeating-linear-gradient(180deg,transparent 0 32px,rgba(120,105,80,.13) 32px 33px); }
.postcard__kicker { color:var(--gold-600); font:9px var(--mono); letter-spacing:.16em; }
.postcard__paper p { margin:0; color:#4b463c; font:400 clamp(15px,1.45vw,19px)/1.75 'Ma Shan Zheng',var(--serif); }
.postcard__sign { margin-top:auto; align-self:flex-end; color:var(--gold-700); font:400 17px var(--serif); }
.postcard__hint { position:absolute; left:0; right:0; bottom:0; padding:9px 22px; color:#6e675b; font:10px var(--mono); letter-spacing:.1em; text-align:right; }
.postcard:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
@media (max-width:900px) { .postcard { min-height:420px; } .postcard__paper { inset:18px 74px 42px 18px; } .postcard__paper p { font-size:15px; } }

/* ===== 桌宠：每个界面一个卓识小人儿，可点击换表情、可拖到任何地方 ===== */
.pet { position:fixed; z-index:34; left:0; top:0; height:112px; cursor:grab; touch-action:none; user-select:none; -webkit-user-drag:none; filter:drop-shadow(0 10px 18px rgba(40,34,25,.3)); transition:opacity .45s ease; }
.pet.is-dragging { cursor:grabbing; filter:drop-shadow(0 18px 28px rgba(40,34,25,.36)); }
.pet__img { display:block; height:112px; width:auto; pointer-events:none; transform-origin:50% 100%; animation:petIdle 5s ease-in-out infinite; }
.pet.is-pop .pet__img { animation:petPop .55s cubic-bezier(.2,.9,.25,1.3), petIdle 5s ease-in-out .55s infinite; }
@keyframes petIdle { 0%,100% { transform:translateY(0) rotate(-1.3deg) } 50% { transform:translateY(-5px) rotate(1.3deg) } }
@keyframes petPop { 0% { transform:scale(.92) rotate(-7deg) } 55% { transform:scale(1.09) rotate(4deg) } 100% { transform:scale(1) rotate(0) } }
.pet__hint { position:absolute; left:50%; bottom:calc(100% + 7px); transform:translateX(-50%); padding:6px 10px; border-radius:2px; background:#f7f2e7; border:1px solid rgba(67,59,47,.3); color:#5b5343; font:10px/1.4 var(--mono); letter-spacing:.06em; white-space:nowrap; box-shadow:0 8px 18px rgba(40,34,25,.18); opacity:0; pointer-events:none; animation:petHint 8s ease both; }
@keyframes petHint { 0%,3% { opacity:0; transform:translate(-50%,6px) } 12%,74% { opacity:1; transform:translate(-50%,0) } 100% { opacity:0 } }
.pet:hover .pet__hint, .pet:focus-visible .pet__hint { animation:none; opacity:1; transform:translate(-50%,0) }
.pet.is-seen .pet__hint { animation:none; opacity:0 }
.pet:focus-visible { outline:none; }
.pet:focus-visible .pet__img { filter:drop-shadow(0 0 0 3px rgba(169,121,67,.55)); border-radius:2px; }
body.home-intro .pet { opacity:0; pointer-events:none; }
@media (max-width:720px) { .pet { height:82px; } .pet__img { height:82px; } .pet__hint { font-size:9px; padding:5px 8px; } }
@media (prefers-reduced-motion: reduce) { .pet__img, .pet.is-pop .pet__img { animation:none } }

/* ===== 首页排版与配色修正（2026-09-10 第二轮）===== */

/* 1. 名片 + 首页场景图恢复圆角（风格 B 只保留其它元素） */
.identity-card__face { border-radius:18px; }
.scene-piece { border-radius:22px; }
.scene-piece img { border-radius:21px; }
.scene-piece span { border-radius:0 0 21px 21px; }

/* 2. 导航第二行（四馆胶囊条）压薄，别压到正文 */
.nav__row { padding:16px clamp(20px,4vw,64px) 8px; }
.nav__halls { padding:0 clamp(20px,4vw,64px) 10px; }
.nav__hall { padding:5px 12px; }

/* 3. 左侧标题：缩一号 + 允许换行，任何常见视口都不会顶到导航 */
@media (min-width:721px) {
  .hero--scene, .hero--scene.is-unlocked { min-height:clamp(540px,calc(100svh - 162px),720px); }
  .hero--scene .hero__content { bottom:clamp(60px,9.5vh,118px); max-width:min(470px,42vw); }
  .hero--scene .hero__content h1 { font-size:clamp(46px,7.4vw,112px); white-space:normal; margin:14px 0 16px; }
  .hero--scene .hero__quote { font-size:clamp(17px,1.7vw,22px); max-width:470px; }
  .hero--scene .hero__enter { margin-top:26px; }
}

/* 4. 底部横条：变窄、字变小 */
.home-note { min-height:82px; padding:14px clamp(20px,8vw,128px); align-items:center; }
.home-note p { font-size:15px; line-height:1.6; white-space:nowrap; }
.home-note .section-tag { font-size:10px; }

/* 5. 四馆配色：01 探索 = 春日桃花（取自参考配色），02 连接 = 夏日新绿 */
.hall--explore { --hall:#c9866f; --hall-bg:#fde2e9; --hall-bg2:#f7e3d3; }
.hall--connect { --hall:#5f7a2a; --hall-bg:#eef1e3; --hall-bg2:#dbe3c6; }
.hall--explore { --season:#e8ab96; --season-ink:#8a5544; --season-soft:#fde2e9; }
.hall--connect { --season:#96ac62; --season-ink:#4c6420; --season-soft:#eef2e2; }

/* ===== 落物退到卡片/模块之后（2026-09-10 第三轮）===== */

/* 1. 画布沉到所有内容之下：在文档流里的文字、卡片、底色都会盖住它，只有纸底在它下面 */
#dust { z-index:-1; }

/* 2. 原本是 var(--paper) 的整页底色改成透明（露出的就是 body 纸色，观感不变） */
.hall-page, .museum, .detail, .collection-page, .intro, .home-note, .contact-room { background:transparent; }

/* 3. 有色底纹挪到负 z-index 的伪元素上：落物浮在底纹之上，又低于页面内容 */
.hero--scene { background:none; }
.hero--scene::before { z-index:-2; background:radial-gradient(circle at 77% 30%,rgba(255,255,255,.8),transparent 24%),linear-gradient(90deg,rgba(246,243,235,.92) 0%,rgba(246,243,235,.7) 34%,transparent 67%),linear-gradient(135deg,#d9e7e6 0%,#f8eee1 47%,#efc2a9 100%); }
.hall-page { position:relative; }
.hall-page::before { content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,var(--hall-bg,var(--paper)) 0%,var(--paper) 46%); }
.contact-room { position:relative; }
.contact-room::before { content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(120deg,#e6efed,#f8f2e7 62%,#efd8ca); }
.footer { background:#dbe3d6; color:#465247; border-top:1px solid #bdcbb7; }
.footer a { color:inherit; }
.entry-paths { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:26px; max-width:650px; }
.entry-path { display:flex; flex-direction:column; gap:9px; padding:20px; background:#fffaf0e8; border:1px solid #b6bea9; color:#344436; text-decoration:none; box-shadow:3px 5px 0 #899c7220; }
.entry-path:nth-child(2) { background:#dbe3d6eb; }
.entry-path small,.entry-path span { font-size:14px; line-height:1.5; }.entry-path strong{font-size:20px;}
.entry-path:hover { transform:translateY(-3px); }.entry-path:focus-visible {outline:3px solid #657952;outline-offset:4px;}
.profile-page { max-width:1060px; margin:auto; padding:160px 30px 70px; color:#343c31; }
.profile-page header { max-width:760px; }.profile-page h1 {font:500 clamp(38px,6vw,68px)/1.3 var(--serif);margin:22px 0;}.profile-page h1 em{font-size:.45em;font-style:normal;color:#6b785d;}
.profile-page p,.profile-page dd {font-size:16px;line-height:1.9;}.profile-lead{font:500 clamp(23px,3vw,34px)/1.6 var(--serif)!important;}
.profile-tags{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0;}.profile-tags span{border:1px solid #aebaa0;padding:6px 13px;font-size:14px;border-radius:30px;}
.profile-numbers{display:grid;grid-template-columns:repeat(3,1fr);background:#dbe3d6;margin:35px 0 55px;padding:26px;gap:25px;}.profile-numbers div{display:flex;flex-direction:column;gap:10px;}.profile-numbers b{font:500 34px var(--mono);}.profile-numbers span{font-size:14px;line-height:1.6;}
.profile-projects{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;}.profile-projects article{position:relative;padding:28px;background:#fffcf5;border:1px solid #d5d4c5;box-shadow:4px 5px 0 #b4bfa423;}.profile-projects article:first-child{grid-column:1/-1;}.profile-projects small{font-size:14px;color:#66715c;}.profile-projects h3{font:500 25px/1.5 var(--serif);margin:15px 0;}.profile-role{color:#6e7057;}.profile-projects dt{font-weight:600;font-size:14px;margin-top:16px;}.profile-projects dd{margin:4px 0 18px;}.profile-page a{color:#486044;text-underline-offset:5px;overflow-wrap:anywhere;}.profile-contact{margin-top:50px;padding:30px;background:#e4e8db;}.profile-contact>a{display:block;margin:16px 0;}
.z-chat[hidden]{display:none;}.z-chat{position:fixed;right:24px;bottom:24px;width:min(390px,calc(100vw - 28px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column;z-index:10000;background:#fffcf4;color:#344436;border:1px solid #a8b399;border-radius:14px;box-shadow:0 15px 65px #28382433;font:16px/1.6 var(--sans,sans-serif);}.z-chat header{display:flex;justify-content:space-between;padding:17px 20px;background:#dbe3d6;border-radius:14px 14px 0 0;}.z-chat small{display:block;font-size:12px;}.z-chat button{cursor:pointer;color:inherit;border:1px solid #b7c1ab;background:#f7f6ed;border-radius:6px;padding:8px 12px;font:inherit;}.z-chat header button{font-size:24px;}.z-chat__log{overflow-y:auto;min-height:140px;max-height:40dvh;padding:14px 18px;}.z-chat__message{padding:10px 12px;background:#eff0e7;border-radius:8px;margin-bottom:12px;white-space:pre-line;overflow-wrap:anywhere;}.z-chat__message p{margin:0;}.z-chat__message a{display:block;color:#486044;margin-top:10px;font-size:14px;}.z-chat__message.visitor{background:#dbe3d6;margin-left:28px;}.z-chat__suggestions{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px;}.z-chat__suggestions button{font-size:13px;}.z-chat form{padding:14px 16px;}.z-chat label{font-size:14px;}.z-chat form>div{display:flex;gap:8px;margin-top:5px;}.z-chat input{min-width:0;flex:1;padding:10px;background:white;border:1px solid #b7c1ab;border-radius:5px;font:inherit;}.z-chat :focus-visible{outline:3px solid #758b60;outline-offset:2px;}
@media(max-width:720px){.entry-paths{grid-template-columns:1fr;max-width:100%;}.entry-path{padding:15px;}.profile-page{padding:155px 20px 40px;}.profile-numbers,.profile-projects{grid-template-columns:1fr;}.profile-projects article:first-child{grid-column:auto;}.z-chat{right:14px;bottom:14px;}.profile-numbers{gap:22px;}}

/* Sage paper footer — shared final color */
.footer { background:#dbe3d6; color:#465247; border-top:1px solid #bdcbb7; }
.project-scrap { position:relative; width:min(100%,270px); margin:10px auto 30px; padding:8px 8px 11px; background:#fffef8; border:1px solid #dedbcc; box-shadow:2px 5px 10px #403b2520; transform:rotate(-2deg); }
.project-scrap::before { content:""; position:absolute; z-index:1; top:-10px; left:35%; width:32%; height:23px; background:#b8c69db3; transform:rotate(5deg); border-left:2px dotted #fff8; border-right:2px dotted #fff8; }
.project-scrap img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.project-scrap figcaption { padding-top:9px; font:12px/1.5 var(--mono); color:#687158; letter-spacing:.05em; }
.profile-projects article:nth-child(even) .project-scrap { transform:rotate(2deg); }.profile-projects article:nth-child(even) .project-scrap::before { background:#e8ab9699;transform:rotate(-5deg); }
.profile-projects article { display:grid; grid-template-columns:minmax(0,1fr) 132px; column-gap:22px; align-content:start; }
.profile-projects article > small { grid-column:1; grid-row:1; }
.profile-projects article > h3 { grid-column:1; grid-row:2; }
.profile-projects article > .profile-role { grid-column:1; grid-row:3; margin:0 0 16px; }
.profile-projects article > .project-scrap { grid-column:2; grid-row:1 / 4; align-self:start; width:100%; box-sizing:border-box; margin:4px 0 20px; }
.profile-projects article > dl,.profile-projects article > a { grid-column:1 / -1; }
.profile-projects article > dl { margin-top:0; }
@media(min-width:721px){.profile-projects article:first-child{grid-template-columns:minmax(0,1fr) 210px;}.profile-projects article:first-child > .project-scrap{grid-row:1 / 5;}.profile-projects article:first-child > dl{grid-column:1;}}
@media(max-width:900px) and (min-width:721px){.profile-projects{grid-template-columns:1fr;}}
@media(max-width:480px){.profile-projects article{padding:22px 18px;grid-template-columns:minmax(0,1fr) 100px;column-gap:14px;}.profile-projects h3{font-size:22px;}.project-scrap{padding:5px 5px 8px;}.project-scrap figcaption{font-size:12px;letter-spacing:0;}.project-scrap::before{height:17px;top:-7px;}}
@media(prefers-reduced-motion:no-preference){.project-scrap{transition:transform .2s;}.profile-projects article:hover .project-scrap{transform:rotate(0deg);}}
/* Reading typography: system sans for content, serif for exhibition titles. */
:root { --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; }
.entry-hint { font:400 16px/1.6 var(--sans); letter-spacing:0; max-width:calc(100vw - 32px); width:max-content; white-space:normal; text-align:center; justify-content:center; }
.nav__mark { font:500 16px/1.4 var(--sans); letter-spacing:0; }
.nav__mark b { font-size:20px; }
.nav__index { font-size:12px; letter-spacing:.04em; }
.nav__back,.nav__hall { font:400 14px/1.5 var(--sans); letter-spacing:0; }
.nav__hall-no { font-size:12px; }
.detail .eyebrow,.collection-page .eyebrow { font-size:13px; letter-spacing:.06em; }
.detail__hero-title h1 { font-size:clamp(34px,4.2vw,56px); line-height:1.3; letter-spacing:0; }
.detail__hero-title p { font:400 20px/1.75 var(--sans); }
.detail .crumb { font:400 14px/1.6 var(--sans); letter-spacing:0; }
.detail__body aside { font:400 16px/1.65 var(--sans); letter-spacing:.02em; color:#625d53; gap:12px 26px; }
.detail__sections h2 { font:500 30px/1.4 var(--sans); letter-spacing:0; margin-bottom:20px; }
.detail__sections p,.detail__sections li { font:400 20px/1.8 var(--sans); letter-spacing:0; }
.detail__sections .detail__role { font:400 20px/1.75 var(--sans); }
.detail__sections li::before { font-size:14px; top:21px; }
.detail__sections section { padding-bottom:40px; margin-bottom:36px; }
.result-list span { font:400 18px/1.7 var(--sans); }
.detail__toc__title { font:500 15px/1.6 var(--sans); letter-spacing:.04em; color:var(--gold-700); }
.detail__toc a { font:400 15px/1.6 var(--sans); letter-spacing:0; }
.detail-next a { font-size:16px; }
.cpp__head h1 { font-size:clamp(40px,6vw,72px); letter-spacing:0; }
.cpp__head p { font-size:20px; line-height:1.75; }
.cpp-group__no { font-size:14px; }
.cpp-group__head h2 { font-size:clamp(28px,3vw,36px); letter-spacing:0; }
.cpp-group__head a,.cpp-item small { font:400 14px/1.6 var(--sans); letter-spacing:0; }
.cpp-group__head em,.cpp-item__type,.cpp-item i { font-size:12px; letter-spacing:.04em; }
.cpp-item b { font:500 23px/1.5 var(--sans); }
.hall-page__lead { font:400 clamp(20px,2.1vw,26px)/1.75 var(--sans); }
.hall-page__about,.exhibit p { font-size:18px; line-height:1.75; }
.exhibit h2 { font:500 26px/1.45 var(--sans); letter-spacing:0; }
.profile-page h1 { font-family:var(--sans); letter-spacing:0; }
.profile-lead { font:500 clamp(24px,3vw,32px)/1.5 var(--sans)!important; }
.profile-page p,.profile-page dd { font-size:18px; line-height:1.8; }
.profile-page h2 { font:500 30px/1.4 var(--sans); }
.profile-projects h3 { font:500 24px/1.5 var(--sans); }
.profile-projects dt { font-size:16px; font-weight:500; }
.profile-numbers b { font-family:var(--sans); font-weight:500; }
@media(max-width:720px) {
  .nav__row { flex-wrap:wrap; gap:10px; }
  .nav__right { flex-wrap:wrap; gap:10px; }
  .detail,.collection-page,.hall-page,.museum,.profile-page { padding-top:180px; }
  .detail__sections h2,.profile-page h2 { font-size:28px; }
  .detail__sections p,.detail__sections li,.detail__sections .detail__role,.detail__hero-title p,.cpp__head p { font-size:18px; }
  .cpp-item b,.profile-projects h3 { font-size:22px; }
}

/* Readable shared footer labels and contact link. */
.footer { font:400 15px/1.7 var(--sans); letter-spacing:.02em; flex-wrap:wrap; gap:16px 24px; }
.footer__label { flex-wrap:wrap; }
.footer__star { font-size:14px; }

/* 首页首屏：避开两行导航；页尾条更轻、更稳地承托信息。 */
@media (min-width:721px) {
  /* 去掉首页绿色页尾后，用留白重新平衡首屏：内容下移，仍与说明条保留呼吸空间。 */
  .hero--scene, .hero--scene.is-unlocked { min-height:clamp(620px,calc(100svh - 82px),760px); }
  .hero--scene .hero__content { bottom:clamp(68px,10vh,108px); }
  .hero--scene .scene-collection { inset:clamp(100px,14vh,120px) 5vw clamp(20px,3vh,34px) 42%; }
}
@media (max-width:720px) {
  .home-note p { white-space:normal; }
}

/* ===== 首页页尾说明行：压薄，并在页面最底边留出呼吸（不再被压到页底） ===== */
@media (min-width:721px) {
  .home-note { min-height:58px; padding:10px clamp(20px,8vw,128px) 12px; margin-bottom:26px; align-items:center; }
  /* 说明行变薄 + 底部留白后，首屏同步收一档：hero + 说明行 + 留白 仍等于 100svh（首页还是一屏） */
  .hero--scene, .hero--scene.is-unlocked { min-height:clamp(620px,calc(100svh - 84px),760px); }
}

/* ===== 大厅「摇一摇 · 随机带我逛一件」按钮：底色换浅（鼠尾草绿，与页脚/首页卡同色系） ===== */
.museum__tool--btn { background:#dbe3d6; color:#3d4a30; border-color:#8a9b6e; box-shadow:0 2px 8px rgba(63,84,55,.08); }
.museum__tool--btn:hover { background:#c8d4ba; color:#2c3623; border-color:#6e8050; }

/* ===== 来信表单：明确问一句「这封信可以公开吗？」 ===== */
.letter-ask { margin:0; padding:12px 14px 14px; border:1px solid rgba(255,255,255,.26); background:rgba(255,255,255,.06); display:flex; flex-direction:column; gap:9px; }
.letter-ask legend { padding:0 6px; font:10px var(--mono); letter-spacing:.1em; color:#d7e0dc; }
.letter-choice { display:flex; gap:10px; align-items:flex-start; cursor:pointer; color:#e5ece8; font-size:13px; }
.letter-choice input { flex:none; margin-top:4px; accent-color:var(--gold-500); }
.letter-choice span { display:flex; flex-direction:column; gap:2px; }
.letter-choice b { font-weight:500; font-size:14px; }
.letter-choice small { color:#b3c2be; font-size:12px; line-height:1.5; }
.letter-choice:hover b { color:#fff; }
.letter-choice input:checked + span b { color:#fff; }
.letter-choice input:checked + span small { color:#dbe6e1; }

/* ===== 访客回信：左下角「未读回信」胶囊 + 面板 ===== */
.inbox { display:none; position:fixed; z-index:60; left:20px; bottom:20px; font-family:var(--sans); }
.inbox.is-on { display:block; }
.inbox__pill { display:flex; align-items:center; gap:10px; padding:9px 13px 9px 11px; background:#fffcf4; color:#3d3a30; border:1px solid #d8cfbc; border-radius:9999px; box-shadow:0 10px 26px rgba(50,40,25,.16); font:13px/1.35 var(--sans); cursor:pointer; }
.inbox.has-unread .inbox__pill { background:#fff3df; border-color:var(--gold-500); box-shadow:0 12px 30px rgba(150,110,50,.26); }
.inbox__icon { flex:none; display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--gold-500); color:#fff8ec; font-size:12px; }
.inbox.has-unread .inbox__label { color:var(--gold-700); font-weight:500; }
.inbox__mark { color:var(--muted); font-size:10px; }
.inbox__panel { position:absolute; left:0; bottom:calc(100% + 10px); width:min(372px,calc(100vw - 40px)); max-height:min(62vh,470px); overflow:auto; padding:14px 16px; background:#fffcf4; border:1px solid #ddd3c0; border-radius:12px; box-shadow:0 20px 50px rgba(50,40,25,.26); }
.inbox__head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-bottom:9px; margin-bottom:10px; border-bottom:1px solid #e6ddc9; }
.inbox__head span { font:10px var(--mono); letter-spacing:.14em; color:var(--gold-600); }
.inbox__close { border:0; background:none; color:var(--muted); font:11px var(--mono); cursor:pointer; }
.inbox__close:hover { color:var(--ink); }
.inbox__item { position:relative; padding:12px 0; border-bottom:1px dashed #e6ddc9; }
.inbox__item:last-of-type { border-bottom:0; }
.inbox__item.is-unread::before { content:""; position:absolute; left:-9px; top:16px; width:6px; height:6px; border-radius:50%; background:var(--gold-500); }
.inbox__stamp { display:block; font:10px var(--mono); letter-spacing:.06em; color:#9a927f; }
.inbox__stamp--reply { margin-top:11px; color:var(--gold-700); }
.inbox__mine { margin:5px 0 0; color:#7b7568; font:13px/1.75 var(--serif); }
.inbox__reply { margin:5px 0 0; color:var(--ink); font:15px/1.85 var(--sans); white-space:pre-wrap; }
.inbox__foot { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; padding-top:12px; margin-top:4px; border-top:1px solid #e6ddc9; }
.inbox__btn { padding:8px 13px; border:1px solid var(--gold-500); background:var(--gold-500); color:#fff8ec; font:13px var(--sans); cursor:pointer; }
.inbox__btn:hover { background:var(--gold-600); }
.inbox__btn[disabled] { background:#e9e2d4; border-color:#ddd3c0; color:#8d8574; cursor:default; }
.inbox__note { color:#9a927f; font-size:11px; }
@media (max-width:720px) { .inbox { left:12px; bottom:12px; } .inbox__panel { width:min(340px,calc(100vw - 24px)); } }

/* 留言墙时间也按「年月日 时:分」显示，字号抬一点 */
.wall-item time { font-size:12px; }

/* ===== 可交互语言：可点的东西一眼看得出来，不能点的保持安静 =====
   1 光标一致 pointer；2 悬停统一给一圈主题色描边（不动布局，旋转卡片也不受影响）；
   3 按键/卡片按下有回弹；4 键盘 Tab 有金色描边环；5 文字链接静止时带金色虚线下划线。 */
a, button, [role="button"], summary, .letter-check, .letter-choice, .pet { cursor:pointer; }
input:not([type=checkbox]):not([type=radio]), textarea { cursor:text; }
input[type=checkbox], input[type=radio] { cursor:pointer; }
.pet { cursor:grab; }

/* 2. 悬停描边：所有可点元素统一信号 */
.nav__back:hover, .nav__hall:not(.is-current):hover, .hero__enter:hover, .entry-path:hover,
.museum__tool:hover, .plan-room:hover, .collage__piece:hover, .scene-piece:hover, .exhibit:hover,
.cpp-item:hover, .detail-next a:hover, .crumb a:hover, .postcard:hover, .letter-submit:hover,
.contact-room__action:hover, .gratz__btn:hover, .drawer__tile:hover {
  outline:2px solid var(--gold-500); outline-offset:3px;
}
.gratz__close:hover, .drawer__close:hover { outline:2px solid var(--gold-500); outline-offset:1px; }
.inbox__pill:hover { border-color:var(--gold-500); box-shadow:0 12px 30px rgba(150,110,50,.22); }

/* 3. 按下回弹（只给本身没有 transform 的元素加，旋转/位移类卡片跳过） */
.nav__back, .nav__hall, .hero__enter, .museum__tool, .plan-room, .cpp-item, .entry-path,
.letter-submit, .contact-room__action, .gratz__btn, .drawer__tile, .inbox__btn, .inbox__pill {
  transition:transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s, border-color .2s, background-color .2s, color .2s;
}
.nav__back:active, .nav__hall:not(.is-current):active, .hero__enter:active, .museum__tool:active,
.plan-room:active, .cpp-item:active, .entry-path:active, .letter-submit:active,
.contact-room__action:active, .gratz__btn:active, .drawer__tile:active, .inbox__btn:active, .inbox__pill:active {
  transform:translateY(2px) scale(.99);
}

/* 4. 键盘 focus 环（鼠标点击不出现，只给 Tab） */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible, summary:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline:3px solid rgba(169,121,67,.55); outline-offset:3px;
}

/* 5. 文字链接：静止时金色虚线，悬停变实线 */
.crumb a, .detail-next a, .profile-page p a { border-bottom:1px dashed rgba(169,121,67,.6); }
.crumb a:hover, .detail-next a:hover, .profile-page p a:hover { border-bottom-style:solid; border-bottom-color:var(--gold-500); }

/* 6. ↗ 角标跟着动一下，提示「点了会走」 */
.plan-room:hover em, .cpp-item:hover i, .entry-path:hover strong, .exhibit:hover .exhibit__open { text-decoration:none; }
.plan-room em, .cpp-item i { transition:transform .22s; display:inline-block; }
.plan-room:hover em, .cpp-item:hover i { transform:translate(2px,-2px); }

/* ===== 交互语言（定稿）——「静止就有标识」 =====
   静止层就是标识本体：凡是能点的东西，不悬停也看得出来 ——
   · 卡片/方块类：细金线 + 右上角一枚金色 ↗（与站内「↗ = 点了会走」一致）
   · 按钮/胶囊类：本身就是金边或底色方块（已有，不动）
   · 文字链接类：金色虚线下划线
   悬停只是把这枚标识变强（金圈加粗 + 抬起），按下下沉回弹，Tab 金色环 ——
   后面三层是「确认」，不再承担「第一次告诉你这里能点」的职责。 */

/* A. 卡片类：补上静止态的 ↗（展品卡/首页场景卡/博物馆拼贴已有各自动作，此处补馆藏卡与平面导览） */
.cpp-item, .plan-room { position:relative; }
.cpp-item::after, .plan-room::after {
  content:"↗"; position:absolute; top:9px; right:11px;
  font:11px/1 var(--mono); font-style:normal; letter-spacing:0;
  color:rgba(169,121,67,.85); pointer-events:none;
  transition:transform .22s, color .22s;
}
.cpp-item:hover::after, .plan-room:hover::after { transform:translate(2px,-2px); color:var(--gold-700); }

/* B. 卡片类：静止态也带一圈细金线（原本只有中性灰线） */
.cpp-item { border-color:rgba(169,121,67,.42); }

/* C. 文字链接类：静止态金色虚线（补全到正文/页脚/留言墙里的行内链接） */
p a[href], li a[href], small a[href], .footer a[href], .letter-wall a[href] {
  border-bottom:1px dashed rgba(169,121,67,.6);
}
p a[href]:hover, li a[href]:hover, small a[href]:hover, .footer a[href]:hover, .letter-wall a[href]:hover {
  border-bottom-style:solid; border-bottom-color:var(--gold-500);
}

/* D. 桌宠：提示气泡每 ~45 秒回来一次（静止也有标识），悬停/拖动时常显 */
/* 注：不再用 hover 方框标可点击（用户觉得那个框很奇怪），保留气泡提示与键盘 focus 描边 */
.pet__hint { animation:petHintLoop 45s ease-in-out infinite; }
.pet:hover .pet__hint, .pet.is-dragging .pet__hint { animation:none; opacity:1; transform:translateX(-50%); }
@keyframes petHintLoop {
  0%, 2% { opacity:0; transform:translate(-50%,6px); }
  6%, 17% { opacity:1; transform:translate(-50%,0); }
  24%, 100% { opacity:0; transform:translate(-50%,6px); }
}
@media (prefers-reduced-motion:reduce) { .pet__hint { animation:none; opacity:0; } }

/* 来信档案室：合并成一张「写一封信」卡（原「想收到回复」的邮箱入口降级为卡内一行小字） */
.contact-room__choices--one { grid-template-columns:minmax(0,1fr); max-width:780px; }
.contact-room__choices article.contact-room__write { background:#315563; color:#f4f2e9; }
.contact-room__write > span { color:var(--gold-200); }
.contact-room__write > h2 { color:#f7f4ea; margin:26px 0 12px; font-size:clamp(28px,3.4vw,40px); }
.contact-room__write > p { color:#d7e0dc; max-width:600px; margin:0; }
.contact-room__write > p.contact-room__alt { margin-top:22px; max-width:none; color:#b6c6c2; font-size:13px; display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.contact-room__write .contact-room__action, .contact-room__write .contact-room__pending { margin-top:0; }
@media (max-width:720px) { .contact-room__write > p { max-width:none; } }

/* ===== 光标语言：金色光标 + 「重影」回声（桌面端 + 允许动效时启用） ===== */
@media (pointer:fine) {
  html, body { cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cpath d='M6 2.5 L6 21 L10.6 16.6 L13.7 23.2 L16.6 21.8 L13.4 15.3 L19.6 15.3 Z' fill='%23a97943' stroke='%23fffaf0' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 4 3, auto; }
  a, button, [role=button], summary, label, select, .pet, .inbox__pill { cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='13' cy='13' r='8.5' fill='none' stroke='%23a97943' stroke-width='2'/%3E%3Ccircle cx='13' cy='13' r='2.4' fill='%23a97943'/%3E%3C/svg%3E") 13 13, pointer; }
  input:not([type=checkbox]):not([type=radio]), textarea { cursor:text; }
}
.cursor-echo { position:fixed; z-index:60; width:26px; height:26px; margin:-13px 0 0 -13px; border:1.5px solid rgba(169,121,67,.5); border-radius:50%; pointer-events:none; animation:cursorEcho .5s cubic-bezier(.22,.61,.36,1) forwards; }
@keyframes cursorEcho { from { opacity:.75; transform:scale(.22); } to { opacity:0; transform:scale(1.25); } }
@media (pointer:coarse) { .cursor-echo { display:none; } }
@media (prefers-reduced-motion:reduce) { .cursor-echo { display:none; } }

/* ===== 展馆页底部「延伸」链接行（替代原来的能力标签栏） ===== */
.hall-links { max-width:1180px; margin:34px auto 0; padding:0 clamp(20px,5vw,64px) 22px; }
.hall-links__head { display:flex; justify-content:space-between; align-items:baseline; gap:14px; flex-wrap:wrap; border-top:1px solid rgba(67,59,47,.18); padding-top:16px; }
.hall-links__head span { font:500 10px var(--mono); letter-spacing:.22em; color:var(--gold-600); }
.hall-links__head em { font-size:12px; color:#7a7468; font-style:normal; }
.hall-links__row { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; margin-top:14px; }
.hall-link { position:relative; display:flex; flex-direction:column; gap:4px; padding:16px 42px 16px 18px; background:rgba(255,255,255,.72); border:1px solid rgba(169,121,67,.4); border-radius:3px; text-decoration:none; color:inherit; transition:background .18s ease, border-color .18s ease, transform .18s ease; }
.hall-link:hover { background:#fff; border-color:var(--gold-500); transform:translateY(-2px); }
.hall-link b { font:600 15px var(--serif); color:#2f2a22; }
.hall-link small { font-size:12px; color:#6e675b; }
.hall-link i { position:absolute; right:16px; top:50%; transform:translateY(-50%); font-style:normal; color:var(--gold-500); }
.hall-link:hover i { transform:translate(3px,-50%); }
@media (max-width:720px) { .hall-links { margin-top:24px; } .hall-links__row { grid-template-columns:1fr; } }

/* ===== 来信表单蜜罐：正常人看不见，只有灌水脚本会填 ===== */
.letter-trap { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
