/* 珠乡有礼 V3 · 玻璃质感、原创三幕图释与声音交互。手机优先。 */
:root{--zx-deep:#102f30;--zx-bronze:#d5af7c;--zx-soft:#f6ede0}
.zx-rite-card{position:relative;padding:14px!important;min-height:342px!important;overflow:hidden;isolation:isolate;transition:transform .26s ease,box-shadow .26s ease!important}
.zx-rite-card:before{content:"";position:absolute;inset:0;background:linear-gradient(143deg,rgba(245,242,234,.5),transparent 65%);pointer-events:none;z-index:-1}
.zx-rite-card .ritetop{padding:0 3px 6px;align-items:center}
.zx-rite-card .ritetop .zx-card-type{font-family:system-ui,sans-serif!important;font-size:8px!important;letter-spacing:1.3px;color:#989c8e!important}
.zx-rite-card h3{margin:13px 3px 6px!important;font-size:23px!important;color:#16443f}
.zx-rite-card p{margin:0 3px 12px!important;font-size:11px!important;line-height:1.8}
.zx-rite-card .ritebottom{margin:0 3px;padding-top:9px;gap:8px}
.zx-rite-thumbnail{position:relative;min-height:139px;background:radial-gradient(circle at 70% 0%,rgba(166,208,186,.12),transparent 55%),linear-gradient(130deg,#153f40,#204e49 60%,#123235);border:1px solid rgba(255,255,255,.13);border-radius:11px;overflow:hidden;display:flex;align-items:center;box-shadow:inset 0 1px rgba(255,255,255,.1),0 9px 18px rgba(22,58,53,.12)}
.zx-rite-thumbnail:after{content:"";position:absolute;top:-85%;left:-40%;width:43%;height:260%;transform:rotate(27deg) translateX(-190%);background:linear-gradient(90deg,transparent,rgba(246,232,196,.10),transparent);transition:transform .7s ease;pointer-events:none}
.zx-rite-card:hover .zx-rite-thumbnail:after,.zx-rite-card:focus-visible .zx-rite-thumbnail:after{transform:rotate(27deg) translateX(750%)}
.zx-thumbnail-tag{position:absolute;bottom:9px;left:10px;color:rgba(241,219,183,.65);font-size:8px;letter-spacing:.5px}
.zx-diagram-svg{display:block;width:100%;height:auto;overflow:visible}
.zx-rite-thumbnail .zx-diagram-svg{width:112%;max-width:none;transform:translateX(-5%)}
.zx-diagram-compact text{display:none}
.zx-scene-graphic{overflow:hidden;position:relative;border-radius:14px;background:radial-gradient(circle at 17% 12%,rgba(230,194,138,.14),transparent 32%),radial-gradient(circle at 82% 72%,rgba(114,175,151,.15),transparent 45%),linear-gradient(128deg,#0e3033,#1b4a47 65%,#0d3336);border:1px solid rgba(213,175,124,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 19px 50px rgba(3,31,31,.16)}
.zx-scene-graphic:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(105deg,rgba(255,255,255,.012),rgba(255,255,255,.012) 2px,transparent 2px,transparent 9px);pointer-events:none}
.zx-scene-graphic .zx-diagram-svg{min-height:210px}
.zx-scene-halo{fill:rgba(225,194,147,.015);stroke:rgba(247,228,194,.22);stroke-width:1;stroke-dasharray:2 7;transition:all .45s ease}
.zx-scene-ring{fill:rgba(249,239,213,.035);stroke:rgba(213,178,131,.29);stroke-width:1.6;transition:all .5s ease}
.zx-scene-group{opacity:.42;transform-box:fill-box;transform-origin:center;transition:opacity .4s ease,filter .4s ease}
.zx-art-icon{transform-box:fill-box;transform-origin:center;transition:transform .48s cubic-bezier(.2,.9,.3,1)}
.zx-flow-line{stroke-dasharray:3 11;animation:zxFlow 11s linear infinite}
.zx-rite-thumbnail .zx-scene-group{opacity:.91}
.zx-rite-thumbnail .zx-scene-group .zx-scene-ring{fill:rgba(249,239,213,.09)}
.zx-scene-graphic[data-step="1"] .zx-sg1,.zx-scene-graphic[data-step="2"] .zx-sg2,.zx-scene-graphic[data-step="3"] .zx-sg3{opacity:1;filter:drop-shadow(0 0 10px rgba(250,222,177,.24))}
.zx-scene-graphic[data-step="1"] .zx-sg1 .zx-scene-halo,.zx-scene-graphic[data-step="2"] .zx-sg2 .zx-scene-halo,.zx-scene-graphic[data-step="3"] .zx-sg3 .zx-scene-halo{fill:rgba(255,222,169,.09);stroke:#d7b786;stroke-width:1.4}
.zx-scene-graphic[data-step="1"] .zx-sg1 .zx-scene-ring,.zx-scene-graphic[data-step="2"] .zx-sg2 .zx-scene-ring,.zx-scene-graphic[data-step="3"] .zx-sg3 .zx-scene-ring{fill:rgba(247,218,176,.15);stroke:#ead3a3;stroke-width:2.5}
.zx-scene-graphic[data-step="1"] .zx-sg1 .zx-art-icon,.zx-scene-graphic[data-step="2"] .zx-sg2 .zx-art-icon,.zx-scene-graphic[data-step="3"] .zx-sg3 .zx-art-icon{animation:zxObject 2.3s ease-in-out infinite}
.zx-scene-graphic[data-step="1"] .zx-sg1 .fig-flame,.zx-scene-graphic[data-step="2"] .zx-sg2 .fig-flame{animation:zxFlame 1.3s ease-in-out infinite}
.fig-note{animation:zxNote 2.3s ease-in-out infinite}
.fig-steam{animation:zxSteam 2.8s ease-in-out infinite}
@keyframes zxFlow{to{stroke-dashoffset:-140}}
@keyframes zxObject{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes zxFlame{50%{opacity:.65;transform:scale(.85)}}
@keyframes zxNote{50%{opacity:.15;transform:translateY(-10px)}}
@keyframes zxSteam{50%{opacity:.24;transform:translateY(-8px)}}
.zx-scene-widget{padding:16px 16px 13px;margin:20px 0 24px;border-radius:19px;background:linear-gradient(145deg,rgba(228,235,221,.70),rgba(251,247,237,.90));border:1px solid #e8e4d8;box-shadow:inset 0 1px rgba(255,255,255,.9)}
.zx-step-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:14px 0 11px}
.zx-step-choice{border-radius:9px;padding:10px 7px;border:1px solid #dedad0;color:#64766f;background:rgba(255,255,255,.56);font-size:11px;text-align:center;min-height:47px;transition:all .2s}
.zx-step-choice span{font-size:9px;color:#b28063;margin-right:5px;font-family:Georgia,serif}
.zx-step-choice.selected{background:linear-gradient(145deg,#15423f,#266057);border-color:#3a6b5f;color:#fff;box-shadow:0 7px 15px rgba(23,71,63,.17)}
.zx-step-choice.selected span{color:#e3c898}
.zx-scene-copy{min-height:116px;padding:10px 15px 11px;background:rgba(255,255,255,.7);border:1px solid #e8e6dc;border-radius:11px}
.zx-scene-count{font-size:10px;letter-spacing:1px;color:#a67157}
.zx-scene-title{font-family:"Noto Serif CJK SC","Songti SC",serif;font-size:17px;color:#18443f;margin:3px 0}
.zx-scene-description{font-size:12px;line-height:1.85;color:#65746a;margin:0}
.zx-scene-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}
.zx-scene-bottom small{font-size:9px;color:#8b968a;max-width:60%;line-height:1.6}
.zx-play-sequence{border:1px solid rgba(28,76,66,.18);background:#dceae2;color:#28584b;border-radius:20px;padding:8px 13px;white-space:nowrap;font-size:11px}
.zx-play-sequence:hover{background:#c9e0d2}
.detail-modal{width:min(820px,100%)}
.detail-modal .zx-scene-widget{margin-top:20px}
#modal-backdrop .detail-summary{padding-bottom:15px}
/* Voices: editorial exhibit strips, individual player per story */
.stories-list{display:grid;grid-template-columns:1fr;gap:25px}
.zx-story-card{min-width:0;padding:25px;min-height:0;border-radius:19px!important;background:linear-gradient(130deg,#fffefa,#f6f4eb 93%);box-shadow:0 19px 50px rgba(28,61,53,.09)!important}
.zx-story-layout{display:grid;grid-template-columns:minmax(230px,.83fr) minmax(350px,1.17fr);gap:24px;align-items:start;margin-top:5px}
.zx-story-narrative{display:flex;flex-direction:column;min-width:0;height:100%}
.zx-story-narrative .story-index{margin:3px 0 5px;font-size:44px}
.zx-story-narrative .story-text{font-size:13px;line-height:2.05;flex:0;margin:19px 0}
.zx-story-card .zx-scene-widget{margin:5px 0 0;padding:10px;border-radius:15px}
.zx-story-card .zx-scene-graphic .zx-diagram-svg{min-height:140px}
.zx-story-card .zx-step-buttons{gap:5px;margin:8px 0}
.zx-story-card .zx-step-choice{font-size:10px;padding:8px 4px;min-height:41px}
.zx-story-card .zx-scene-copy{min-height:120px;padding:10px}
.zx-story-card .zx-scene-bottom{margin-top:7px}
.zx-story-card .zx-scene-bottom small{font-size:9px}
.zx-story-source{display:flex;gap:13px;flex-wrap:wrap;align-items:center;margin-top:auto;padding:13px 0 0;border-top:1px solid #e7e4d9}
.zx-story-source a,.zx-story-source button{color:#9f7256;font-size:10px;border:0;background:transparent;padding:0;text-decoration:underline;text-underline-offset:3px}
.zx-sound-control{margin-top:21px;padding:19px;background:linear-gradient(115deg,#143f3f,#214e48);color:#f5e9d5;border:1px solid rgba(238,225,202,.19);border-radius:13px;box-shadow:inset 0 1px rgba(255,255,255,.09)}
.zx-sound-heading{display:flex;gap:13px;align-items:center}
.zx-sound-icon{width:41px;height:41px;border:1px solid rgba(245,226,183,.4);border-radius:50%;display:grid;place-items:center;color:#e8c9a4;font-size:23px}
.zx-sound-heading b{font-size:12px;font-weight:600}
.zx-sound-heading p{font-size:10px;margin:1px 0 0;color:#b9d1c6}
.zx-sound-waves{margin-left:auto;display:flex;gap:3px;align-items:center;height:34px}
.zx-sound-waves i{width:3px;height:calc(5px + (var(--j) * 1.5px));border-radius:5px;background:#b9dbcd;opacity:.55;transform-origin:center;transition:height .2s}
.zx-story-card.is-speaking .zx-sound-waves i{animation:zxBars calc(.45s + var(--j) * .06s) ease-in-out infinite alternate}
@keyframes zxBars{to{height:5px;opacity:.45}from{height:calc(8px + var(--j) * 2px);opacity:1}}
.zx-sound-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:16px}
.zx-sound-actions button{background:rgba(255,255,255,.12);color:#e8e4d4;border:1px solid rgba(255,255,255,.21);padding:10px 13px;border-radius:8px;font-size:11px;min-height:38px}
.zx-sound-actions button:first-child{background:#e7c89d;color:#1e4038;border-color:#e7c89d;font-weight:700;min-width:108px}
.zx-sound-actions button:hover:not(:disabled){filter:brightness(1.12)}
.zx-sound-actions button:disabled{opacity:.33;cursor:not-allowed}
.zx-sound-actions label{display:flex;align-items:center;gap:7px;font-size:11px;margin-left:auto;white-space:nowrap;color:#e8d5b8}
.zx-sound-actions select{background:#244e47;border:1px solid rgba(255,255,255,.25);border-radius:7px;padding:8px;color:#fff;min-height:38px}
.zx-voice-note{display:block;color:#a7bfb1;font-size:9px;margin-top:12px;line-height:1.65}
@media (max-width:1100px){.zx-story-layout{grid-template-columns:1fr}.zx-story-narrative .story-text{margin:13px 0}.zx-story-narrative{height:auto}.zx-story-card .zx-scene-widget{margin:10px 0}}
@media (max-width:720px){.zx-rite-card{min-height:280px!important;padding:10px!important}.zx-rite-card .ritetop .zx-card-type{font-size:6px!important;letter-spacing:.3px}.zx-rite-thumbnail{min-height:87px;border-radius:7px}.zx-rite-thumbnail .zx-diagram-svg{width:116%}.zx-thumbnail-tag{font-size:6px;bottom:5px;left:5px}.zx-rite-card h3{font-size:18px!important;margin:7px 3px 4px!important}.zx-rite-card p{font-size:10px!important}.zx-rite-card .ritebottom{flex-wrap:wrap}.zx-step-choice{font-size:10px;line-height:1.5;padding:7px 4px}.zx-step-choice span{display:block;margin:0}.zx-scene-graphic .zx-diagram-svg{min-height:158px}.zx-scene-widget{padding:10px;margin:14px 0}.zx-scene-copy{min-height:130px}.zx-scene-bottom small{max-width:52%;font-size:8px}.zx-play-sequence{font-size:10px;padding:8px}.zx-story-card{padding:14px;border-radius:12px!important}.zx-story-layout{gap:6px}.zx-story-card .zx-scene-widget{padding:8px}.zx-story-card .zx-scene-copy{min-height:140px}.zx-sound-control{padding:13px}.zx-sound-actions{gap:7px}.zx-sound-actions button{min-height:40px}.zx-sound-actions label{margin-left:0}.zx-sound-waves i{width:2px}.story-card .story-meta{gap:9px;flex-wrap:wrap}.zx-story-narrative .story-text{font-size:12px}}
@media (max-width:390px){.zx-scene-copy{min-height:147px}.zx-rite-card{min-height:300px!important}}
@media (prefers-reduced-motion:reduce){.zx-flow-line,.zx-art-icon,.fig-note,.fig-steam,.fig-flame,.zx-story-card.is-speaking .zx-sound-waves i{animation:none!important}.zx-rite-thumbnail:after{display:none}}
