.audio-overlay{z-index:50;color:#fff;letter-spacing:.08em;text-transform:lowercase;cursor:pointer;-webkit-backdrop-filter:blur(8px);background:#00000080;border:1px solid #ffffff40;align-items:center;gap:10px;padding:10px 18px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;transition:border-color .25s,background .25s,opacity .5s;animation:2.6s ease-in-out infinite audio-overlay-pulse;display:inline-flex;position:fixed;top:22px;right:22px}.audio-overlay:hover{background:#ffffff14;border-color:#ffffffb3}@keyframes audio-overlay-pulse{0%,to{box-shadow:0 0 #fff0}50%{box-shadow:0 0 0 6px #ffffff0a}}.audio-overlay__icon{text-align:center;width:14px;font-size:13px;font-style:italic;display:inline-block}.audio-overlay--mute{animation:none}.audio-overlay.is-muted{opacity:.4}.loading-screen{z-index:1000;opacity:1;pointer-events:auto;background:#000;justify-content:center;align-items:center;transition:opacity 1.5s ease-out;display:flex;position:fixed;inset:0}.loading-screen.fading{opacity:0;pointer-events:none}.loading-inner{text-align:center;color:#fff;font-family:JetBrains Mono,ui-monospace,monospace}.loading-title{letter-spacing:.08em;opacity:.9;margin-bottom:32px;font-size:24px;font-weight:400}.loading-bar{background:#ffffff26;width:240px;height:1px;margin:0 auto 16px;position:relative;overflow:hidden}.loading-bar-fill{background:linear-gradient(90deg,#0000,#ffffffd9,#0000);width:50%;animation:1.6s ease-in-out infinite loading-sweep;position:absolute;inset:0}@keyframes loading-sweep{0%{transform:translate(-100%)}to{transform:translate(300%)}}.loading-hint{letter-spacing:.12em;opacity:.4;text-transform:lowercase;font-size:11px}.interaction-pulse{z-index:50;color:#fff;letter-spacing:.08em;text-transform:lowercase;-webkit-backdrop-filter:blur(8px);pointer-events:none;background:#00000073;border:1px solid #ffffff2e;align-items:center;gap:10px;padding:10px 18px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;transition:opacity .4s ease-out;display:inline-flex;position:fixed;bottom:22px;right:22px}.interaction-pulse__dot{background:#fff;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite interaction-pulse-glow;display:inline-block;box-shadow:0 0 8px #fff9}@keyframes interaction-pulse-glow{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{color:#fff;-webkit-font-smoothing:antialiased;background:#000;width:100%;height:100%;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}canvas{cursor:crosshair;display:block}.app{background:#000;position:fixed;inset:0}.overlay{pointer-events:none;z-index:10;color:#fff;font-family:JetBrains Mono,ui-monospace,monospace;font-weight:400;position:fixed;inset:0}.watermark{letter-spacing:.04em;opacity:.85;font-size:12px;position:absolute;top:18px;left:18px}.hint{letter-spacing:.06em;opacity:.55;text-transform:lowercase;font-size:11px;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.labels{letter-spacing:.05em;grid-template-columns:1fr 1fr 1fr;align-items:end;padding:0 24px;font-size:13px;display:grid;position:absolute;bottom:20px;left:0;right:0}.label{white-space:nowrap;align-items:baseline;gap:8px;display:inline-flex}.label--left{justify-self:start}.label--center{justify-self:center}.label--right{justify-self:end}.label__slash{transform-origin:50%;border-bottom:1px solid #fff9;border-left:1px solid #fff9;flex-shrink:0;width:14px;height:14px;display:inline-block;transform:translateY(2px)rotate(45deg)}.label__text{text-shadow:0 0 6px #000000d9}.mobile-fallback{color:#fff;text-align:center;background:#000;flex-direction:column;justify-content:center;align-items:center;padding:0 32px;font-family:JetBrains Mono,ui-monospace,monospace;display:flex;position:fixed;inset:0}.mobile-fallback__title{letter-spacing:.06em;opacity:.9;margin-bottom:14px;font-size:22px}.mobile-fallback__hint{opacity:.55;max-width:280px;font-size:12px;line-height:1.6}.exhibit-app.is-kiosk{cursor:none;-webkit-user-select:none;user-select:none}.exhibit-brand{text-align:right;pointer-events:none;z-index:5;position:fixed;top:28px;right:32px}.exhibit-brand__cn{letter-spacing:.5em;color:#ffffffd9;margin-right:-.5em;font-family:Songti SC,Noto Serif SC,STSong,serif;font-size:22px}.exhibit-brand__en{letter-spacing:.22em;color:#ffffff61;margin-top:6px;font-family:SF Mono,Menlo,monospace;font-size:10px}.chapter-card{text-align:center;pointer-events:none;z-index:6;opacity:0;flex-direction:column;justify-content:center;align-items:center;transition:opacity 1.6s,transform 1.6s;display:flex;position:fixed;inset:0;transform:translateY(10px)}.chapter-card.is-visible{opacity:1;transform:translateY(0)}.chapter-card__hours{letter-spacing:.3em;color:#fff6;margin-bottom:18px;font-family:SF Mono,Menlo,monospace;font-size:11px}.chapter-card__branch{color:var(--ch,#8cc4ff);text-shadow:0 0 42px color-mix(in srgb, var(--ch,#8cc4ff) 55%, transparent), 0 2px 24px #000c;font-family:Songti SC,Noto Serif SC,STSong,serif;font-size:clamp(96px,14vh,168px);line-height:1}.chapter-card__name{letter-spacing:.28em;color:#ffffffeb;margin-top:26px;font-family:Songti SC,Noto Serif SC,STSong,serif;font-size:24px}.chapter-card__en{letter-spacing:.08em;color:#ffffff73;font-size:15px}.chapter-card__poem{letter-spacing:.14em;color:#ffffffa8;margin-top:22px;font-family:Songti SC,Noto Serif SC,STSong,serif;font-size:16px}.chapter-card__data{color:#fff6;max-width:520px;margin-top:14px;padding:0 24px;font-size:12.5px;line-height:1.9}.chapter-card__sound{letter-spacing:.28em;text-transform:uppercase;color:#ffffff4d;margin-top:26px;font-family:SF Mono,Menlo,monospace;font-size:10px}.clock-strip{z-index:5;pointer-events:none;font-family:SF Mono,Menlo,monospace;position:fixed;bottom:30px;left:32px}.clock-strip__row{align-items:baseline;gap:12px;display:flex}.clock-strip__branch{color:var(--ch,#8cc4ff);text-shadow:0 0 18px color-mix(in srgb, var(--ch,#8cc4ff) 45%, transparent);font-family:Songti SC,Noto Serif SC,STSong,serif;font-size:34px;line-height:1}.clock-strip__name{letter-spacing:.2em;color:#fffc;font-family:Songti SC,Noto Serif SC,STSong,serif;font-size:15px}.clock-strip__clock{letter-spacing:.12em;color:#ffffff73;font-size:12px}.clock-strip__mic{color:var(--ch,#8cc4ff);font-size:10px;animation:2.4s ease-in-out infinite mic-blink}@keyframes mic-blink{0%,to{opacity:.35}50%{opacity:1}}.clock-strip__bar{background:#ffffff24;border-radius:1px;width:148px;height:2px;margin-top:10px;overflow:hidden}.clock-strip__fill{background:var(--ch,#8cc4ff);height:100%;box-shadow:0 0 8px var(--ch,#8cc4ff);transition:width .8s linear}.clock-strip__next{letter-spacing:.14em;color:#ffffff59;margin-top:8px;font-size:10px}.clock-strip__pinned{color:#ffd68cbf}.clock-strip--kiosk{bottom:38px;left:40px}.info-toggle{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ffffffbf;cursor:pointer;background:#0006;border:1px solid #ffffff47;border-radius:50%;width:30px;height:30px;font-family:JetBrains Mono,monospace;font-size:13px;font-style:italic;line-height:1;transition:border-color .25s,color .25s;position:fixed;bottom:118px;left:40px}.info-toggle:hover{color:#fff;border-color:#ffffffb3}.app.cursor-ghosted,.app.cursor-ghosted *{cursor:none!important}.mic-chip{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ffffffb3;letter-spacing:.12em;cursor:pointer;background:#00000059;border:1px solid #ffffff38;border-radius:999px;padding:8px 14px;font-family:SF Mono,Menlo,monospace;font-size:11px;transition:border-color .25s,color .25s;position:fixed;bottom:30px;right:32px}.mic-chip:hover{color:#fffffff2;border-color:#ffffff8c}.mic-chip--live{cursor:default;pointer-events:none;color:#a0d2ffe6;border-color:#8cc4ff66}.credits-overlay{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b8;justify-content:center;align-items:center;animation:.35s credits-fade;display:flex;position:fixed;inset:0}@keyframes credits-fade{0%{opacity:0}to{opacity:1}}.credits-modal{background:#080a10eb;border:1px solid #ffffff1f;border-radius:4px;width:min(680px,100vw - 48px);max-height:calc(100vh - 96px);padding:40px 44px 36px;position:relative;overflow-y:auto}.credits-modal__close{color:#fff6;letter-spacing:.15em;cursor:pointer;background:0 0;border:none;font-family:SF Mono,Menlo,monospace;font-size:11px;position:absolute;top:16px;right:18px}.credits-modal__close:hover{color:#fff}.credits-modal__title{letter-spacing:.12em;color:#fffffff0;font-family:Songti SC,Noto Serif SC,STSong,serif;font-size:26px}.credits-modal__subtitle{letter-spacing:.2em;color:#fff6;margin-top:6px;font-size:12px}.credits-modal__section{margin-top:30px}.credits-modal__heading{letter-spacing:.3em;text-transform:uppercase;color:#ffffff61;margin-bottom:14px;font-family:SF Mono,Menlo,monospace;font-size:10px}.credits-modal__para{color:#ffffffb8;margin:0 0 12px;font-size:14px;line-height:2}.credits-modal__para--dim{color:#ffffff80;font-size:13px}.credits-modal__list{color:#ffffff8c;margin:0;padding-left:18px;font-size:12.5px;line-height:2}.chapter-list{grid-template-columns:repeat(3,1fr);gap:6px 18px;display:grid}.chapter-list__item{border-radius:3px;align-items:baseline;gap:10px;padding:5px 8px;transition:background .25s;display:flex}.chapter-list__item.is-current{background:#ffffff12}.chapter-list__branch{color:var(--ch,#8cc4ff);font-family:Songti SC,Noto Serif SC,STSong,serif;font-size:18px}.chapter-list__item.is-current .chapter-list__branch{text-shadow:0 0 12px var(--ch,#8cc4ff)}.chapter-list__name{letter-spacing:.12em;color:#ffffffa6;flex:1;font-size:12px}.chapter-list__time{color:#ffffff52;font-family:SF Mono,Menlo,monospace;font-size:10px}.sound-presets{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.sound-preset{text-align:left;cursor:pointer;background:#ffffff08;border:1px solid #ffffff24;border-radius:3px;flex-direction:column;gap:4px;padding:10px 12px;transition:border-color .25s,background .25s;display:flex}.sound-preset:hover{border-color:#fff6}.sound-preset.is-active{background:#8cc4ff14;border-color:#8cc4ffa6}.sound-preset__label{letter-spacing:.06em;color:#ffffffd9;font-size:12.5px}.sound-preset.is-active .sound-preset__label{color:#bfe0ff}.sound-preset__desc{color:#ffffff61;font-size:10.5px}
