:root{color-scheme:dark;--bg:#080d15;--gold:#ddbc83;--gold-bright:#f0d2a3;--text:#f5f0e6;--muted:#c2b9a8;--line:rgba(241,213,173,.25);--easing:cubic-bezier(.22,1,.36,1);font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,[role="button"]:focus-visible{outline:2px solid #f2d29b;outline-offset:4px}button[hidden], [hidden]{display:none!important}.app{position:relative;width:100%;height:100vh;height:100dvh;min-height:380px;isolation:isolate;overflow:hidden;background:#080d15;user-select:none;touch-action:manipulation}
.visual{position:absolute;inset:0;overflow:hidden;transform:translateZ(0);will-change:transform,opacity}.visual--home{z-index:1}.visual--detail{z-index:2;opacity:0;visibility:hidden}.visual__ambience{position:absolute;inset:-42px;background-size:cover;background-position:center;filter:blur(24px) brightness(.42) saturate(.8);transform:scale(1.08);pointer-events:none}.visual__art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;display:block;pointer-events:none;image-rendering:auto}.visual__incoming{opacity:0;visibility:hidden;z-index:2}.hotspot-svg{position:absolute;inset:0;width:100%;height:100%;z-index:3;overflow:visible}.portal{cursor:pointer;outline:none}.portal__shape{fill:transparent;stroke:transparent;stroke-width:2;vector-effect:non-scaling-stroke;transition:fill .25s ease,stroke .25s ease,filter .3s ease;pointer-events:all}.portal__edge{fill:none;stroke:rgba(242,204,145,0);stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none;transition:stroke .28s ease}.portal:hover .portal__shape,.portal:focus .portal__shape,.portal.is-active .portal__shape{fill:url(#portalSheen);stroke:rgba(249,219,169,.85);filter:url(#portalGlow)}.portal:hover .portal__edge,.portal:focus .portal__edge,.portal.is-active .portal__edge{stroke:rgba(249,219,169,.48)}.portal__waypoint{pointer-events:none;opacity:.72;transition:opacity .25s ease,transform .25s ease;transform-box:fill-box;transform-origin:center}.portal:hover .portal__waypoint,.portal:focus .portal__waypoint,.portal.is-active .portal__waypoint{opacity:1;transform:scale(1.17)}.portal__waypoint .waypoint-pulse{fill:rgba(225,188,131,.18);stroke:rgba(255,225,174,.26);stroke-width:1.5}.portal__waypoint .waypoint-center{fill:rgba(10,15,23,.8);stroke:rgba(239,200,139,.82);stroke-width:1.2}.portal__waypoint .waypoint-arrow{fill:none;stroke:var(--gold-bright);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.portal__waypoint .waypoint-pulse{animation:waypointPulse 3.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes waypointPulse{0%,100%{opacity:.25;transform:scale(.85)}50%{opacity:.82;transform:scale(1.16)}}body.is-transitioning .hotspot-svg{pointer-events:none}body.is-transitioning .portal__waypoint{animation:none;opacity:0}
.vignette{pointer-events:none;position:absolute;z-index:3;inset:0;background:linear-gradient(180deg,rgba(3,8,15,.46),transparent 20%,transparent 67%,rgba(2,8,14,.6) 100%),linear-gradient(90deg,rgba(0,3,8,.29),transparent 25%,transparent 75%,rgba(0,3,8,.22));mix-blend-mode:multiply}.cinematic-veil{position:absolute;inset:0;z-index:9;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,rgba(8,11,17,.08) 8%,rgba(7,10,16,.6) 68%,rgba(3,5,9,.9) 100%)}.safe-frame{position:absolute;inset:23px;z-index:4;pointer-events:none;opacity:.45}.safe-frame span{position:absolute;width:12px;height:12px;border-color:rgba(228,195,146,.54);border-style:solid}.safe-frame span:nth-child(1){top:0;left:0;border-width:1px 0 0 1px}.safe-frame span:nth-child(2){top:0;right:0;border-width:1px 1px 0 0}.safe-frame span:nth-child(3){bottom:0;left:0;border-width:0 0 1px 1px}.safe-frame span:nth-child(4){bottom:0;right:0;border-width:0 1px 1px 0}
.header{position:absolute;z-index:8;top:0;left:0;right:0;min-height:86px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:30px clamp(25px,4.8vw,75px);transition:opacity .3s ease}.header__identity{display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:70%}.header__floor{font-size:13px;letter-spacing:.18em;color:var(--gold-bright);font-weight:700}.header__line{width:23px;height:1px;background:var(--gold)}.header__name{font-size:14px;font-weight:550;letter-spacing:.14em}.header__english{font-size:9px;letter-spacing:.14em;color:#e2d4be;opacity:.62}.header__actions{display:flex;align-items:center;gap:9px}.top-action,.icon-action{border:1px solid var(--line);background:rgba(10,16,24,.5);backdrop-filter:blur(18px);display:flex;align-items:center;gap:7px;padding:10px 15px;border-radius:6px;color:#f3eee7;font-size:12px;letter-spacing:.06em;white-space:nowrap;transition:background .25s,border-color .25s}.top-action:hover,.icon-action:hover{background:rgba(38,35,31,.82);border-color:var(--gold)}.top-action svg,.icon-action svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.icon-action{width:37px;height:37px;padding:10px;justify-content:center}.fullscreen-close{display:none}.is-fullscreen .fullscreen-open{display:none}.is-fullscreen .fullscreen-close{display:block}
.home-caption,.scene-caption{position:absolute;z-index:6;left:clamp(28px,5vw,80px);bottom:clamp(64px,11vh,115px);max-width:min(630px,65vw);text-shadow:0 3px 20px rgba(0,0,0,.4)}.home-caption{transition:opacity .42s,transform .6s var(--easing);pointer-events:none}.eyebrow{display:inline-flex;align-items:center;gap:10px;color:#efd6b3;font-size:10px;font-weight:550;letter-spacing:.23em}.eyebrow__dot{width:5px;height:5px;background:#dfbe85;box-shadow:0 0 14px #f3d19a;border-radius:100%}.home-caption h1{font-size:clamp(23px,2.55vw,41px);line-height:1.32;letter-spacing:.035em;font-weight:500;margin:14px 0 11px}.home-caption p{margin:0;color:#e4dcd0;font-size:13px;line-height:1.75;letter-spacing:.07em}.mouse-hint{display:inline-flex;gap:9px;align-items:center;margin-top:26px;color:#e9d9c6;font-size:11px;letter-spacing:.08em;opacity:.9}.mouse-hint svg{width:16px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}.mouse-hint svg path{animation:scrollHint 2s ease-in-out infinite}@keyframes scrollHint{0%,100%{transform:translateY(-1px)}60%{transform:translateY(3px)}}
.portal-tooltip{pointer-events:none;position:absolute;z-index:7;left:0;top:0;display:flex;align-items:center;gap:13px;padding:12px 17px;border-radius:4px;background:rgba(8,13,20,.86);border:1px solid rgba(230,193,133,.55);box-shadow:0 17px 55px rgba(0,0,0,.5);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transform:translate(-50%,-100%) translateY(4px);transition:opacity .2s,transform .25s var(--easing),visibility .2s;min-width:172px;white-space:nowrap}.portal-tooltip.is-visible{opacity:1;visibility:visible;transform:translate(-50%,-100%) translateY(-8px)}.portal-tooltip__number{font-family:Georgia,serif;color:var(--gold);font-size:18px;border-right:1px solid var(--line);padding-right:12px}.portal-tooltip strong{display:block;color:#fff;font-size:13px;font-weight:550;letter-spacing:.1em}.portal-tooltip small{display:block;margin-top:3px;color:var(--muted);font-size:10px;letter-spacing:.08em}.portal-tooltip small span{color:var(--gold)}
.scene-caption{opacity:0;visibility:hidden;transform:translateY(18px);max-width:475px;pointer-events:none;transition:opacity .5s ease,transform .55s var(--easing),visibility .5s}.scene-caption.is-visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.scene-caption__head{display:flex;align-items:center;gap:13px;color:var(--gold-bright)}.scene-number{font-family:Georgia,serif;font-size:14px;letter-spacing:.1em}.caption-rule{height:1px;width:29px;background:var(--gold)}.scene-english{font-size:10px;letter-spacing:.14em}.scene-caption h1{font-weight:520;font-size:clamp(28px,3.4vw,48px);margin:14px 0;letter-spacing:.12em;line-height:1.3}.scene-caption p{font-size:13px;line-height:1.95;color:#ede7dc;max-width:420px;margin:0;letter-spacing:.03em}.scene-features{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.scene-features span{border:1px solid rgba(241,219,184,.4);border-radius:2px;background:rgba(5,12,20,.23);padding:7px 10px;font-size:11px;letter-spacing:.08em;color:#f3e0c6;backdrop-filter:blur(4px)}.scene-caption__footer{display:flex;gap:22px;align-items:center;margin-top:25px}.caption-back{border:0;border-bottom:1px solid var(--gold);border-radius:0;background:transparent;color:#ffdfa9;padding:6px 0;font-size:12px;letter-spacing:.08em}.caption-back:hover{color:#fff}.scene-caption__footer>span{font-size:10px;color:rgba(238,227,208,.7);letter-spacing:.1em}
/* 场景内子空间热点（国际联号品牌展厅）：锚定画面实物，脉冲光环提示可点击。 */
.zone-svg{position:absolute;inset:0;width:100%;height:100%;z-index:4;overflow:visible;pointer-events:none}
.scene-zone-marker{cursor:pointer;pointer-events:auto;outline:none;animation:zoneMarkerIn .7s ease both}
.scene-zone-marker__pulse{fill:rgba(225,188,131,.16);stroke:rgba(255,225,174,.32);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:zoneMarkerPulse 2.6s ease-out infinite}
.scene-zone-marker__core{fill:rgba(10,15,23,.85);stroke:rgba(239,200,139,.85);stroke-width:1.6;transform-box:fill-box;transform-origin:center;transition:transform .25s ease,stroke .25s ease}
.scene-zone-marker__arrow{fill:none;stroke:var(--gold-bright);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.scene-zone-marker__label rect{fill:rgba(8,13,20,.82);stroke:rgba(230,193,133,.5);stroke-width:1.2;transition:stroke .25s ease}
.scene-zone-marker__label text{fill:#f3e8d5;font-size:17px;letter-spacing:.14em;transition:fill .25s ease}
.scene-zone-marker:hover .scene-zone-marker__core,.scene-zone-marker:focus .scene-zone-marker__core,.scene-zone-marker.is-active .scene-zone-marker__core{transform:scale(1.22);stroke:#ffd9a0}
.scene-zone-marker:hover .scene-zone-marker__label rect,.scene-zone-marker:focus .scene-zone-marker__label rect,.scene-zone-marker.is-active .scene-zone-marker__label rect{stroke:rgba(246,216,168,.9)}
.scene-zone-marker:hover .scene-zone-marker__label text,.scene-zone-marker:focus .scene-zone-marker__label text,.scene-zone-marker.is-active .scene-zone-marker__label text{fill:#fff4e2}
@keyframes zoneMarkerPulse{0%{transform:scale(.5);opacity:.95}70%{transform:scale(1.4);opacity:0}100%{transform:scale(1.4);opacity:0}}
@keyframes zoneMarkerIn{from{opacity:0}to{opacity:1}}
.bottom-indicator{position:absolute;z-index:6;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:11px;white-space:nowrap;color:#e7d7c0;font-size:9px;letter-spacing:.19em;text-transform:uppercase;opacity:.8}.bottom-indicator__stroke{width:20px;height:1px;background:rgba(228,187,127,.6)}
.directory-scrim{position:absolute;inset:0;z-index:12;background:rgba(2,6,12,.58);backdrop-filter:blur(5px);opacity:0;transition:opacity .35s}.directory-scrim.is-open{opacity:1}.directory{position:absolute;z-index:13;right:0;top:0;bottom:0;width:min(470px,100vw);overflow:auto;background:linear-gradient(145deg,#17202a 0%,#0a111b 64%,#070c12 100%);border-left:1px solid rgba(238,195,130,.22);box-shadow:-20px 0 80px rgba(0,0,0,.45);padding:45px 35px 25px;transform:translateX(100%);transition:transform .55s var(--easing);visibility:hidden}.directory.is-open{transform:translateX(0);visibility:visible}.directory__top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:25px;border-bottom:1px solid rgba(225,195,151,.18)}.directory__top h2{font-weight:500;font-size:30px;letter-spacing:.1em;margin:10px 0 8px}.directory__top p{margin:0;color:#bdb4a8;font-size:12px}.directory__close{font-size:29px;font-weight:200;border:1px solid var(--line);width:34px;height:34px;border-radius:50%;background:transparent;line-height:1;display:flex;align-items:center;justify-content:center}.directory__close:hover{border-color:var(--gold);background:rgba(221,188,131,.08)}.directory__list{padding:15px 0 25px;display:grid;gap:10px}.directory-item{display:grid;grid-template-columns:96px 1fr 15px;gap:13px;align-items:center;text-align:left;width:100%;min-height:78px;background:rgba(255,255,255,.025);border:1px solid rgba(221,191,145,.15);padding:9px;color:inherit;border-radius:3px;transition:background .25s,border-color .25s,transform .25s}.directory-item:hover,.directory-item:focus-visible{background:rgba(227,179,116,.11);border-color:rgba(237,194,130,.6);transform:translateX(-3px)}.directory-item.is-current{border-color:var(--gold);background:rgba(227,179,116,.12)}.directory-item img{width:96px;height:57px;object-fit:cover;display:block;border-radius:2px}.directory-item__number{color:var(--gold);font-family:Georgia,serif;font-size:10px;letter-spacing:.1em;margin-bottom:4px}.directory-item strong{display:block;font-size:13px;letter-spacing:.08em;font-weight:500}.directory-item small{display:block;font-family:Georgia,serif;font-size:10px;color:#c1b8a8;margin-top:5px;letter-spacing:.03em}.directory-item__arrow{color:#e2b77c}.directory__foot{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);color:#a6a095;font-size:9px;letter-spacing:.07em;padding-top:19px}.toast{position:absolute;z-index:15;left:50%;bottom:60px;transform:translateX(-50%) translateY(12px);background:rgba(8,14,22,.89);border:1px solid var(--line);padding:11px 17px;border-radius:4px;color:#eee2d0;font-size:12px;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;white-space:nowrap}.toast.is-visible{transform:translateX(-50%) translateY(0);opacity:1}
body.show-hotspots .portal__shape{fill:rgba(242,178,84,.09);stroke:rgba(248,194,110,.9);stroke-width:2}
@media(max-width:900px){.header__english{display:none}.home-caption h1{font-size:24px}.home-caption{bottom:75px}.scene-caption{bottom:75px}.portal-tooltip{min-width:140px}.portal-tooltip strong{font-size:11px}}
@media(max-width:640px){.header{padding:17px 17px}.header__name{font-size:12px}.header__line,.header__english{display:none}.header__identity{gap:7px;max-width:48%}.header__floor{font-size:12px}.header__actions{gap:5px}.top-action{padding:8px 10px}.top-action span{display:none}.icon-action{width:33px;height:33px;padding:8px}.safe-frame{inset:12px}.home-caption,.scene-caption{left:20px;bottom:75px;max-width:calc(100vw - 38px)}.home-caption h1{font-size:22px}.home-caption p{font-size:11px}.eyebrow{font-size:9px}.mouse-hint{margin-top:12px;font-size:10px}.scene-caption h1{font-size:27px}.scene-caption p{font-size:12px;line-height:1.75}.scene-features{margin-top:12px}.scene-features span{font-size:10px;padding:5px 8px}.scene-caption__footer{margin-top:12px}.directory{padding:33px 20px 24px}.bottom-indicator{font-size:8px;bottom:16px;letter-spacing:.1em}.portal-tooltip{padding:8px 11px;gap:9px;min-width:0}.portal-tooltip__number{font-size:15px}.portal-tooltip small{font-size:9px}}
@media(max-height:580px){.header{padding-top:16px}.home-caption,.scene-caption{bottom:46px}.home-caption h1{font-size:21px;margin:8px 0}.home-caption p{font-size:11px}.mouse-hint{margin-top:10px}.scene-caption h1{font-size:25px;margin:7px 0}.scene-caption p{font-size:11px;line-height:1.6}.scene-features{margin-top:8px}.scene-caption__footer{margin-top:8px}.bottom-indicator{bottom:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* 首屏大门：左右半幅共用同一张写实门景，点击后分扇打开，露出大厅。 */
.gate-screen{position:absolute;inset:0;z-index:20;overflow:hidden;isolation:isolate;background:#07090d;perspective:1500px;}
.gate-screen[hidden]{display:none!important}
.gate__ambience{position:absolute;inset:-35px;background-size:cover;background-position:center;filter:blur(22px) brightness(.24) saturate(.72);transform:scale(1.08);}
.gate__frame{position:absolute;left:50%;top:50%;width:min(100vw,177.7778vh);height:min(100vh,56.25vw);aspect-ratio:16/9;overflow:hidden;isolation:isolate;transform:translate(-50%,-50%);}
.gate__leaf{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;z-index:1;backface-visibility:hidden;will-change:transform,opacity;box-shadow:0 0 50px rgba(0,0,0,.26);transition:transform 1.06s cubic-bezier(.68,0,.2,1),opacity .9s ease;}
.gate__leaf--left{left:0;transform-origin:100% 50%;border-right:1px solid rgba(230,190,125,.46)}
.gate__leaf--right{left:50%;transform-origin:0 50%;border-left:1px solid rgba(230,190,125,.46)}
.gate__leaf img{position:absolute;top:0;left:0;width:200%;height:100%;max-width:none;object-fit:cover;object-position:center;display:block;user-select:none;-webkit-user-drag:none;}
.gate__leaf--right img{left:-100%}
.gate__light{position:absolute;z-index:2;inset:0;pointer-events:none;background:radial-gradient(ellipse 13% 74% at 50% 51%,rgba(235,185,105,.16),rgba(208,151,79,.055) 35%,transparent 73%),linear-gradient(180deg,rgba(4,6,10,.08),transparent 26%,transparent 74%,rgba(3,5,8,.34));mix-blend-mode:screen;transition:opacity .55s ease;}
.gate__trigger{position:absolute;z-index:3;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;color:inherit;text-align:center;}
.gate__trigger:focus-visible{outline:none}
.gate__copy{position:absolute;left:50%;bottom:clamp(46px,9vh,96px);display:grid;justify-items:center;gap:11px;transform:translateX(-50%);white-space:nowrap;text-shadow:0 2px 24px rgba(0,0,0,.85);transition:opacity .35s ease,transform .45s cubic-bezier(.22,1,.36,1);}
.gate__eyebrow{color:rgba(242,219,184,.82);font-size:9px;letter-spacing:.25em;}
.gate__title{font-size:clamp(22px,2.1vw,32px);font-weight:450;letter-spacing:.22em;color:#fff4e4;}
.gate__hint{display:flex;align-items:center;gap:9px;margin-top:5px;color:rgba(237,224,205,.82);font-size:11px;letter-spacing:.12em;}
.gate__hint i{display:block;width:19px;height:27px;border:1px solid rgba(239,211,169,.75);border-radius:12px;position:relative;}
.gate__hint i::after{content:"";position:absolute;top:5px;left:8px;width:1px;height:6px;background:#f2d2a1;animation:gateScroll 1.8s ease-in-out infinite;}
@keyframes gateScroll{0%,100%{transform:translateY(0);opacity:.55}55%{transform:translateY(4px);opacity:1}}
.gate-screen.is-opening .gate__leaf--left{transform:translateX(-103%) rotateY(13deg);opacity:.16;}
.gate-screen.is-opening .gate__leaf--right{transform:translateX(103%) rotateY(-13deg);opacity:.16;}
.gate-screen.is-opening .gate__light{opacity:.08;}
.gate-screen.is-opening .gate__ambience{opacity:0;transition:opacity .5s ease;}
.gate-screen.is-opening .gate__copy{opacity:0;transform:translate(-50%,12px);}
.is-gate-active .home-caption{opacity:0;visibility:hidden;}
.is-gate-opening .home-caption{visibility:visible;}
@media(max-width:640px){.gate__leaf{transition-duration:.92s}.gate__copy{bottom:clamp(38px,8vh,68px);gap:9px}.gate__eyebrow{font-size:8px;letter-spacing:.17em}.gate__title{font-size:23px}.gate__hint{font-size:10px}}
@media(prefers-reduced-motion:reduce){.gate__leaf,.gate__light,.gate__copy{transition-duration:.01ms!important}.gate__hint i::after{animation:none}}

/* 满屏铺展预览：大门与全部室内场景共用同一视口cover裁切模式。 */
.visual__art{object-fit:cover}
.gate__frame{inset:0;left:0;top:0;width:100%;height:100%;aspect-ratio:auto;transform:none}
.visual--reception{z-index:2;opacity:0;visibility:hidden}
.visual--detail{z-index:3}
.reception-caption{position:absolute;z-index:8;top:30px;right:calc(clamp(25px,4.8vw,75px) + 47px);left:auto;bottom:auto;max-width:none;opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;transition:opacity .5s ease,transform .55s var(--easing),visibility .5s}
body.is-reception-active .home-caption{opacity:0;visibility:hidden;pointer-events:none}
body.is-reception-active .reception-caption{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
body.is-reception-active #directoryButton{display:none}
.reception-intro{position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}
body.is-reception-active .reception-intro{opacity:1;visibility:visible}
/* 会客厅引导层：横幅与四个入口统一为深色玻璃 + 香槟金描边，与场景的暖金灯光同调。 */
.reception-intro__banner{position:absolute;top:clamp(88px,11.6vh,120px);left:50%;transform:translate(-50%,10px);opacity:0;width:min(780px,88vw);background:linear-gradient(180deg,rgba(26,31,40,.86),rgba(9,13,19,.82));backdrop-filter:blur(20px) saturate(1.05);-webkit-backdrop-filter:blur(20px) saturate(1.05);border:1px solid rgba(232,199,146,.34);border-radius:3px;padding:17px 34px;box-shadow:0 24px 60px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,232,196,.1);pointer-events:auto}
.reception-intro__banner::after{content:"";position:absolute;top:-1px;left:50%;width:46%;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(246,216,168,.85),transparent)}
/* 会客厅出场：横幅 → 左二 → 右二 → 场景按钮，统一「淡入 + 上浮」按层级错开，
   与开门动画同帧启动，避免有的元素瞬间出现、有的慢慢淡入。 */
body.is-reception-active .reception-intro__banner{opacity:1;transform:translate(-50%,0)}
.reception-intro__banner p{margin:0;font-size:clamp(14.5px,1.05vw,16.5px);line-height:1.95;letter-spacing:.05em;color:#f1e7d7;text-align:center}
.reception-intro__column{position:absolute;top:48.5%;transform:translateY(-50%);display:flex;flex-direction:column;gap:clamp(26px,3.4vh,40px);pointer-events:auto}
.reception-intro__column--left{left:clamp(28px,calc(50vw - 660px),330px)}
.reception-intro__column--right{right:clamp(28px,calc(50vw - 660px),330px)}
.intro-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:clamp(196px,17vw,300px);height:clamp(50px,6.2vh,64px);padding:0 26px;border:1px solid rgba(226,190,133,.4);border-radius:3px;background:linear-gradient(180deg,rgba(28,33,42,.7),rgba(9,13,20,.68));backdrop-filter:blur(16px) saturate(1.1);-webkit-backdrop-filter:blur(16px) saturate(1.1);color:#f7ecda;font-size:clamp(15px,1.02vw,17.5px);font-weight:500;letter-spacing:.16em;white-space:nowrap;box-shadow:0 16px 38px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,232,196,.1);opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .6s var(--easing),background .28s ease,border-color .28s ease,color .28s ease,box-shadow .28s ease}
body.is-reception-active .intro-button{opacity:1;transform:translateY(0)}
.intro-button::before{content:"";position:absolute;top:0;left:16%;right:16%;height:1px;background:linear-gradient(90deg,transparent,rgba(244,214,166,.8),transparent);transition:opacity .28s ease}
.intro-button:hover{background:linear-gradient(180deg,rgba(86,66,37,.82),rgba(28,22,14,.78));border-color:rgba(246,216,168,.88);color:#fff7ec;transform:translateY(-2px);box-shadow:0 22px 46px rgba(0,0,0,.5),0 0 26px rgba(232,183,110,.18),inset 0 1px 0 rgba(255,240,214,.2);transition-delay:0s}
.intro-button:active{transform:translateY(0);transition-delay:0s}
.intro-modal{position:absolute;inset:0;z-index:14;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}.intro-modal.is-open{opacity:1;visibility:visible}.intro-modal__scrim{position:absolute;inset:0;background:rgba(2,6,12,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.intro-modal__panel{position:relative;max-width:min(660px,100%);background:linear-gradient(150deg,rgba(23,32,42,.97),rgba(7,12,18,.97));border:1px solid rgba(238,195,130,.35);border-radius:6px;box-shadow:0 30px 90px rgba(0,0,0,.55);padding:44px 48px 40px;transform:translateY(16px) scale(.985);transition:transform .35s var(--easing)}.intro-modal.is-open .intro-modal__panel{transform:translateY(0) scale(1)}.intro-modal__close{position:absolute;top:16px;right:16px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:transparent;color:#e7ddcd;font-size:24px;font-weight:200;line-height:1;display:flex;align-items:center;justify-content:center;transition:border-color .25s,background .25s}.intro-modal__close:hover{border-color:var(--gold);background:rgba(221,188,131,.08)}.intro-modal__eyebrow{font-size:10px;font-weight:550;letter-spacing:.23em;color:#efd6b3}.intro-modal h2{margin:13px 0 7px;font-size:clamp(24px,3vw,32px);font-weight:500;letter-spacing:.1em;color:#fdf8ef}.intro-modal__english{margin:0;font-family:Georgia,serif;font-size:11px;letter-spacing:.16em;color:var(--muted)}.intro-modal__divider{height:1px;width:46px;background:var(--gold);margin:22px 0 20px}
.intro-modal__body{max-height:min(54vh,500px);overflow:auto;padding-right:4px}
.intro-modal__text{margin:0 0 14px;font-size:13.5px;line-height:2.05;letter-spacing:.05em;color:#ece5d8;text-align:justify}.intro-modal__text:last-child{margin-bottom:0}
.intro-modal__note{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:8px 13px;border:1px solid rgba(241,219,184,.3);border-radius:4px;background:rgba(221,188,131,.07);color:#e9d9c4;font-size:11px;letter-spacing:.1em}.intro-modal__note svg{width:11px;height:12px;fill:var(--gold-bright);stroke:none}
.intro-section{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid rgba(241,213,173,.12)}.intro-section:last-child{border-bottom:0;padding-bottom:2px}.intro-section__number{font-family:Georgia,serif;color:var(--gold);font-size:15px;padding-top:2px}.intro-section h3{margin:0 0 7px;font-size:14px;font-weight:550;letter-spacing:.06em;color:#f7efe0}.intro-section__tag{margin-left:10px;font-size:10px;letter-spacing:.12em;color:var(--gold-bright);border:1px solid rgba(241,219,184,.35);border-radius:2px;padding:3px 7px;vertical-align:2px}.intro-section p{margin:0;font-size:12px;line-height:1.9;color:#ddd5c6;text-align:justify}
@media(max-width:640px){.reception-caption{top:17px;right:60px}.reception-intro__banner{top:84px;width:calc(100vw - 28px);padding:13px 16px}.reception-intro__banner p{font-size:12.5px;line-height:1.85}.reception-intro__column{gap:16px;transform:translateY(-40%)}.reception-intro__column--left{left:12px}.reception-intro__column--right{right:12px}.intro-button{width:41vw;height:46px;padding:0 10px;font-size:13px;letter-spacing:.06em}.intro-modal{padding:16px}.intro-modal__panel{padding:34px 26px 30px}.intro-modal__text{font-size:12.5px;line-height:1.9}.intro-section{grid-template-columns:28px 1fr;gap:10px;padding:12px 0}.intro-section h3{font-size:13px}.intro-section__tag{margin-left:8px;padding:2px 5px;font-size:9px}.intro-section p{font-size:11.5px;line-height:1.85}}
/* 手机端会客厅：窄屏顶部只保留楼层标记，把宽度让给“返回大门 / 进入中央大厅”，避免文字互相压叠。 */
@media(max-width:640px){body.is-reception-active .header__name{display:none}}

/* 会客厅场景内「进入中央大厅」按钮：外层 .cover-anchor 按 cover 裁切规则与图片同步缩放，
   按钮锚定中央水牌前方地面，任何窗口比例下都落在画面同一位置。 */
.cover-anchor{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,177.68vh);height:max(100%,56.23vw);z-index:3;pointer-events:none}
.enter-hall-button{position:absolute;left:55.62%;top:56.1%;transform:translate(-50%,-50%) scale(.97);opacity:0;pointer-events:auto;display:inline-flex;align-items:center;gap:13px;padding:15px 32px;border:1px solid rgba(240,210,163,.82);border-radius:999px;background:rgba(8,13,20,.76);backdrop-filter:blur(16px) saturate(1.05);-webkit-backdrop-filter:blur(16px) saturate(1.05);color:#f7ecda;font-size:clamp(15px,1.15vw,23px);font-weight:550;letter-spacing:.14em;line-height:1;white-space:nowrap;box-shadow:0 14px 38px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,232,196,.12);transition:opacity .5s ease,transform .6s var(--easing),background .28s ease,border-color .28s ease,color .28s ease,box-shadow .28s ease}
.enter-hall-button span{padding-left:.14em} /* 抵消末字后的字距，让文字视觉居中 */
.enter-hall-button svg{width:clamp(15px,1.05vw,20px);height:auto;flex:none;fill:none;stroke:var(--gold-bright);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .28s ease}
.enter-hall-button::after{content:"";position:absolute;inset:-6px;border-radius:inherit;border:1px solid rgba(240,210,163,.5);pointer-events:none;animation:enterHallPulse 2.8s ease-out infinite}
.enter-hall-button:hover,.enter-hall-button:focus-visible{background:rgba(64,48,26,.9);border-color:#ffdca6;color:#fff8ec;box-shadow:0 18px 46px rgba(0,0,0,.55),0 0 26px rgba(232,183,110,.22),inset 0 1px 0 rgba(255,240,214,.2);transition-delay:0s}
.enter-hall-button:hover svg,.enter-hall-button:focus-visible svg{stroke:#ffe9c4}
body.is-reception-active .enter-hall-button{opacity:1;transform:translate(-50%,-50%) scale(1)}
body:not(.is-reception-active) #returnGateButton{display:none}
@keyframes enterHallPulse{0%{transform:scale(.97);opacity:.85}70%{transform:scale(1.09);opacity:0}100%{transform:scale(1.09);opacity:0}}
/* 手机上会客厅两侧的介绍按钮更靠上，把场景按钮略微下移并收小，避免压叠。 */
@media(max-width:640px){.enter-hall-button{padding:11px 20px;gap:9px;font-size:14px;letter-spacing:.1em;top:63%}}

/* 多语言切换：与顶部按钮同一套玻璃描边，激活态香槟金高亮。 */
.lang-switch{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:6px;background:rgba(10,16,24,.5);backdrop-filter:blur(18px)}
.lang-btn{border:0;border-radius:4px;background:transparent;color:#d8cfc0;font-size:11px;font-weight:500;letter-spacing:.08em;padding:6px 10px;line-height:1;transition:background .25s ease,color .25s ease}
.lang-btn:hover{color:#fff}
.lang-btn.is-active{background:rgba(221,188,131,.18);color:var(--gold-bright)}
@media(max-width:640px){.lang-switch{padding:2px;gap:2px}.lang-btn{padding:5px 7px;font-size:10px}}
