/* 珠乡有礼 V2：玻璃/纤维树脂质感视觉层；模型并非史料复原。 */
:root{--deep:#0a2630;--deep2:#071f27;--gold:#dfc59d;--paper:#f4f5f1;--ink:#17343a;--line:#dde4de;--shadow:0 20px 60px rgba(9,34,38,.14)}
body{background:linear-gradient(160deg,#e8efeb 0%,#f7f8f4 48%,#e6f0ec 100%)}
.sidebar{background:linear-gradient(157deg,#092730 0%,#113d41 58%,#09252c 100%);border-right:1px solid rgba(221,240,235,.16);box-shadow:14px 0 45px rgba(3,28,32,.08)}
.brand-sigil{background:rgba(240,233,213,.08);border:1px solid rgba(236,212,171,.4);color:#e9d4b4;box-shadow:inset 0 0 18px rgba(255,255,255,.07)}
.brand-lockup b{color:#f7f1e8}.brand-lockup small{color:#9fbdbb}.side-caption{color:#85abae}.side-nav .nav-btn{color:#b4cbcc}.side-nav .nav-btn:hover,.side-nav .nav-btn.active{color:#ffe9c4;background:rgba(220,242,244,.10);box-shadow:inset 0 0 0 1px rgba(223,236,238,.10);backdrop-filter:blur(18px)}
.nav-count{color:#f4d3a6;background:rgba(240,224,197,.14)}.side-divider{background:rgba(233,243,240,.15)}.side-assistant{background:rgba(255,255,255,.055);border-color:rgba(223,242,242,.17);color:#e8f0e7}.side-assistant small,.sidebar-bottom small{color:#93b8b8}.assistant-mark{background:rgba(237,231,211,.13);color:#efdeb9}.sidebar-bottom{color:#c3d2c8;border-color:rgba(218,238,236,.18)}
.topbar{background:rgba(247,250,246,.74);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-color:rgba(230,235,230,.75)}
.hero-shell{min-height:608px;grid-template-columns:.98fr 1.12fr;border:1px solid rgba(237,228,202,.21);border-radius:23px;box-shadow:0 28px 90px rgba(2,29,35,.23);background:radial-gradient(ellipse at 80% 37%,rgba(64,115,124,.27) 0%,transparent 43%),linear-gradient(132deg,#0a252d 0%,#113a42 50%,#091f2a 100%)}
.hero-shell:before{background:radial-gradient(circle at 76% 48%,rgba(210,232,227,.09),transparent 41%),repeating-linear-gradient(105deg,transparent 0 54px,rgba(255,255,255,.012) 55px 56px,transparent 58px 114px);opacity:1}
.hero-shell:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px rgba(255,255,255,.22),inset 0 0 0 1px rgba(255,255,255,.045);pointer-events:none;z-index:4}
.hero-copy{padding:76px 0 70px clamp(30px,5vw,76px);z-index:3}.hero-sub{margin-top:50px;color:#b4d3d1}.hero-copy h1{font-size:clamp(39px,3.8vw,67px);text-shadow:0 10px 40px rgba(2,15,20,.30)}.hero-copy h1 em{color:#e4c596}.hero-description{color:#bad0cb;max-width:350px}.eyebrow{color:#dfc69e;letter-spacing:2.5px}.btn-gold{background:linear-gradient(145deg,#eddcb9,#caad77);color:#153335;box-shadow:0 10px 25px rgba(0,0,0,.13);border-radius:8px}.btn-ghost-light{background:rgba(227,247,249,.05);border:1px solid rgba(226,235,234,.22);border-radius:8px;backdrop-filter:blur(14px)}
.hero-illustration.hero-3d-shell{display:flex;flex-direction:column;align-items:stretch;justify-content:center;position:relative;min-width:0;min-height:570px;padding:58px 10px 75px 0;overflow:visible;isolation:isolate}
.glass-halo{position:absolute;left:4%;right:1%;top:16%;bottom:12%;border-radius:50%;background:radial-gradient(ellipse,rgba(90,170,166,.20),rgba(52,122,142,.055) 54%,transparent 68%);filter:blur(4px);pointer-events:none;z-index:-1}
.glass-halo:after{content:"";position:absolute;inset:9%;border-radius:50%;border:1px solid rgba(211,236,226,.10);box-shadow:0 0 0 25px rgba(215,245,240,.018),0 0 90px rgba(99,215,210,.13)}
.exhibit-tag{align-self:flex-end;margin:0 24px 6px 0;display:flex;align-items:center;gap:9px;padding:9px 13px;border-radius:10px;background:rgba(235,242,245,.08);border:1px solid rgba(234,247,244,.17);box-shadow:inset 0 1px rgba(255,255,255,.10),0 8px 32px rgba(0,0,0,.13);backdrop-filter:blur(17px);font-size:9px;letter-spacing:1.1px;color:#a8c6c4;z-index:2}
.exhibit-tag b{font-size:10px;color:#f4dfb5;letter-spacing:0;font-weight:500}.tag-dot{display:block;height:5px;width:5px;border-radius:50%;background:#eecb91;box-shadow:0 0 12px #ecb97a}
.boat-stage{height:388px;width:100%;position:relative;touch-action:none;isolation:isolate}.boat-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline:none}.boat-stage canvas:active{cursor:grabbing}
.boat-stage:after{content:"";position:absolute;left:17%;right:7%;height:45px;bottom:25px;border-radius:50%;background:radial-gradient(ellipse,rgba(55,126,138,.18),transparent 75%);filter:blur(10px);pointer-events:none;z-index:-1}
.model-hotspot{position:absolute;z-index:5;transform:translate(-50%,-50%);width:27px;height:27px;line-height:1;border-radius:50%;border:1px solid rgba(255,255,255,.95);background:rgba(216,167,94,.91);color:#16333a;font:700 10px system-ui;box-shadow:0 0 0 6px rgba(223,195,140,.13),0 0 24px rgba(230,199,137,.45);transition:scale .2s;cursor:pointer}
.model-hotspot:hover{scale:1.2}.model-hotspot:focus-visible{outline:3px solid #f5e1bd;outline-offset:4px}
.hotspot-panel[hidden]{display:none}.hotspot-panel{position:absolute;z-index:12;left:50%;transform:translateX(-50%);bottom:18px;width:min(90%,335px);padding:18px 19px;background:rgba(8,35,41,.89);color:#eaf4ee;border:1px solid rgba(231,221,195,.32);border-radius:13px;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);box-shadow:0 20px 44px rgba(1,11,17,.55),inset 0 1px rgba(255,255,255,.16)}
.hotspot-panel span{font-size:9px;letter-spacing:2px;color:#e9cc94}.hotspot-panel b{font-family:"Songti SC",serif;font-size:19px;font-weight:500;display:block;margin:3px 0}.hotspot-panel p{font-size:11px;line-height:1.8;color:#c2d5d1;margin:5px 0 8px}.hotspot-panel small{font-size:9px;color:#93b3b5}.hotspot-panel button{position:absolute;top:7px;right:11px;font-size:23px;background:transparent;border:0;color:#e0ebe6}
.model-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px;margin:8px 23px 0 0;z-index:2}.model-controls button{border:1px solid rgba(230,246,241,.22);border-radius:7px;background:rgba(255,255,255,.055);color:#d6e9e6;padding:7px 9px;font-size:10px;backdrop-filter:blur(16px)}.model-controls button:hover{background:rgba(255,255,255,.14)}.model-hint{font-size:10px;color:#9cb5b8;margin-right:auto}.model-hint i{opacity:.45;margin:0 4px;font-style:normal}.model-status{position:absolute;left:20px;bottom:19px;color:#afc3c0;letter-spacing:1.2px;font-size:9px}.illustration-label{position:absolute;bottom:6px;right:20px;font-size:8px;color:#80999b;letter-spacing:.5px}.hero-deco{top:30px;right:18px;color:#cda86c}
.stats-row{background:rgba(255,255,255,.54);border:1px solid rgba(221,231,227,.8);border-radius:13px;margin-top:19px;padding:24px 4px;box-shadow:inset 0 1px #fff;backdrop-filter:blur(12px)}.stat-number{color:#124b4d}.feature-grid{gap:14px}.feature-card{border:1px solid rgba(255,255,255,.28);border-radius:15px;box-shadow:inset 0 1px rgba(255,255,255,.32),0 17px 38px rgba(17,45,45,.10)}
.feature-dark{background:linear-gradient(145deg,#143c42 0%,#1f5d5c 100%)}.feature-clay{background:linear-gradient(145deg,#f4e7d9,#e8d1bc)}.feature-sand{background:linear-gradient(145deg,#edf3ed,#d7e6dd)}.feature-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(10,52,56,.16)}
.rite-card,.story-card,.evidence-box,.source-card,.lookup-panel,.quiz-card,.note-strip,.detail-modal{border-radius:12px;box-shadow:inset 0 1px rgba(255,255,255,.8),0 12px 38px rgba(22,59,57,.055)}
.version-indicator{background:#c6bd85}
@media(max-width:1150px){.hero-shell{grid-template-columns:1fr 1.1fr}.hero-copy{padding:65px 0 60px 31px}.hero-copy h1{font-size:44px}.hero-illustration.hero-3d-shell{padding:50px 0 57px 0}.model-controls{margin-right:13px}.model-hint{font-size:9px}}
@media(max-width:720px){.topbar{background:rgba(247,250,247,.86)}.hero-shell{min-height:805px;display:flex;flex-direction:column;border-radius:19px}.hero-copy{padding:34px 24px 0;flex-shrink:0}.hero-sub{margin:21px 0 8px;font-size:10px;letter-spacing:4px}.hero-copy h1{font-size:clamp(38px,10.3vw,49px)}.hero-description{font-size:11px;line-height:1.8;max-width:330px;margin:14px 0 15px}.hero-actions{gap:8px}.hero-illustration.hero-3d-shell{position:relative;bottom:auto;right:auto;align-items:stretch;width:100%;height:auto;min-height:405px;margin:0;padding:7px 7px 48px}.exhibit-tag{align-self:flex-end;margin:4px 14px 0;padding:6px 9px;font-size:8px}.exhibit-tag b{font-size:9px}.boat-stage{height:324px;width:100%}.model-controls{justify-content:center;margin:0 10px}.model-controls button{font-size:9px;padding:6px 7px}.model-hint{flex-basis:100%;text-align:center;margin:0 0 3px}.model-status{bottom:7px;left:12px;font-size:8px}.illustration-label{right:12px;bottom:-2px;font-size:7px}.hero-deco{display:none}.stats-row{padding:21px 4px;margin-top:13px}.feature-card{border-radius:13px}.hotspot-panel{bottom:4px;width:90%}.feature-sand{color:#355149}.mobile-dock{background:rgba(248,250,245,.95);backdrop-filter:blur(18px);border-top:1px solid #e2ebe3}}
@media(max-width:390px){.hero-shell{min-height:795px}.hero-copy{padding:31px 19px 0}.hero-copy h1{font-size:38px}.hero-description{font-size:10.5px}.hero-illustration.hero-3d-shell{padding-top:3px}.boat-stage{height:310px}.model-controls{gap:4px}.model-controls button{padding:5px}.hero-sub{margin-top:17px}}
@media(prefers-reduced-motion:reduce){.feature-card,.model-hotspot{transition:none}}

.boat-fallback[hidden]{display:none}.boat-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.boat-fallback .boat-svg{width:95%;max-height:99%;filter:drop-shadow(0 18px 29px rgba(3,10,18,.25))}.model-hotspot[hidden],.model-controls[hidden]{display:none!important}
