:root{color:#f3e4bd;font-synthesis:none;--paper:#e8d5a7;--ink:#2c1e13;--gold:#c9a460;--copper:#b96b33;--jade:#3f786c;--leaf:#6d863f;--safe-bottom:max(18px, env(safe-area-inset-bottom));background:#100b08;font-family:PingFang SC,Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:#0d0907;min-width:320px;min-height:100dvh}button,a{font:inherit}button{color:inherit}.hall-shell{isolation:isolate;background:#120c08;width:min(100%,1280px);min-height:100dvh;margin:0 auto;position:relative;overflow:hidden}.scene-image{z-index:-2;object-fit:cover;object-position:50% 34%;filter:brightness(.76)saturate(.88);width:100%;height:100%;position:absolute;inset:0}.hall-shell:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#08050361 0%,#0000 24% 58%,#070403bd 100%);position:absolute;inset:0}.scene-fallback .scene-image{display:none}.scene-fallback{background:radial-gradient(circle at 50% 22%,#2f251c 0,#15100c 48%,#0b0806 100%)}.hall-header{z-index:5;min-height:60px;padding:max(8px, env(safe-area-inset-top)) 14px 8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d0805e0;border-bottom:1px solid #c9a46073;grid-template-columns:46px 1fr 78px;align-items:center;display:grid;position:relative}.hall-header strong{letter-spacing:.18em;text-align:center;color:#f1dfb3;font:700 25px/1 STSong,Songti SC,Noto Serif SC,serif}.hall-header>span:last-child{text-align:right;color:#d7bc7e;font:600 12px/1.3 STSong,Songti SC,serif}.brand-seal{color:#eed99f;border:1px solid #d1ad5e;place-items:center;width:38px;height:38px;font:700 13px/1.05 STSong,serif;display:grid}.hall-stage{min-height:calc(100dvh - 60px);padding:18px 12px var(--safe-bottom);flex-direction:column;display:flex}.scene-portals{grid-template-columns:1fr 1fr 1fr;gap:7px;width:100%;max-width:920px;margin:0 auto;display:grid}.portal{cursor:pointer;background:#100a07b8;border:1px solid #caa96457;border-radius:0;place-items:center;min-height:48px;padding:0;transition:border-color .22s,box-shadow .22s,background .22s;display:grid;position:relative}.portal span{letter-spacing:.14em;text-shadow:0 1px 2px #000;font:700 18px/1 STSong,Songti SC,serif}.portal-furnace span{color:#e7a166}.portal-acupuncture span{color:#8ec3b5}.portal-baicao span{color:#a9c879}.portal.is-active{background:#22160dd6;border-color:currentColor;box-shadow:inset 0 0 18px #eec2691f,0 0 16px #c389412e}.route-desk{width:100%;max-width:920px;margin:auto auto 0;padding-top:min(31vh,245px)}.desk-paper{color:var(--ink);background:linear-gradient(92deg,#efdeb4f7,#dcc28bf7);border:1px solid #b69456;padding:18px 12px 12px;position:relative;box-shadow:0 8px 28px #00000085,inset 0 0 24px #6f481b24}.desk-paper:before{content:"";pointer-events:none;border:1px solid #67431b3b;position:absolute;inset:5px}.desk-paper h1{text-align:center;letter-spacing:.04em;margin:0 0 14px;font:700 clamp(19px,5.2vw,27px)/1.35 STSong,Songti SC,serif;position:relative}.route-choices{grid-template-columns:repeat(3,1fr);gap:7px;display:grid;position:relative}.route-slip{color:#46301f;cursor:pointer;background:#faeecd75;border:1px solid #4b301873;border-radius:2px;min-height:68px;padding:8px 4px;transition:transform .22s,box-shadow .22s,background .22s}.route-slip span{letter-spacing:.05em;font:700 16px/1.25 STSong,Songti SC,serif;display:block}.route-slip small{letter-spacing:.06em;margin-top:5px;font-size:13px;display:block}.route-slip[aria-checked=true]{background:#f2deb0;transform:translateY(-2px);box-shadow:0 4px #64371847,0 0 0 2px #91552775}.route-slip-furnace[aria-checked=true]{color:#6f351b;border-color:var(--copper)}.route-slip-acupuncture[aria-checked=true]{color:#174f46;border-color:var(--jade)}.route-slip-baicao[aria-checked=true]{color:#3f5520;border-color:var(--leaf)}.route-description{text-align:center;min-height:22px;margin:13px 0 9px;font:600 14px/1.5 STSong,Songti SC,serif;position:relative}.primary-route{color:#fff1c9;letter-spacing:.1em;background:#7c411f;border:1px solid #75401f;border-radius:3px;place-items:center;width:min(240px,78%);min-height:50px;margin:0 auto;font:700 18px/1 STSong,serif;text-decoration:none;display:grid;position:relative;box-shadow:inset 0 0 0 2px #f4d08538,0 3px #4b2a17}.route-acupuncture .primary-route{background:#285f56;border-color:#1c443e;box-shadow:inset 0 0 0 2px #bee5d52e,0 3px #183b35}.route-baicao .primary-route{background:#536c2f;border-color:#35471e;box-shadow:inset 0 0 0 2px #dce8ab2e,0 3px #2c3a19}.archive-button{color:#4a3423;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #6d4b2e;min-width:112px;min-height:44px;margin:11px auto 0;padding:0 16px;font:600 14px/1 STSong,serif;display:block;position:relative}.hall-promise{letter-spacing:.12em;color:#dac18a;text-align:center;margin:15px auto 0;font:500 13px/1.4 STSong,serif}.recovery-notice{z-index:6;background:#18100af0;border:1px solid #9b7742;align-items:center;gap:8px;margin:8px 12px -4px;padding:9px 10px;display:flex;position:relative}.recovery-notice div{flex:1}.recovery-notice strong,.recovery-notice span{display:block}.recovery-notice strong{color:#f0daa8;font:700 13px/1.4 STSong,serif}.recovery-notice span{color:#c7b38b;margin-top:2px;font-size:13px;line-height:1.35}.recovery-notice button{color:#f1dca8;cursor:pointer;background:#392719;border:1px solid #b99454;min-height:44px;padding:0 10px}.drawer-backdrop{z-index:20;background:#050302b8;place-items:end center;padding-top:60px;display:grid;position:fixed;inset:0}.archive-drawer{width:min(100%,560px);max-height:calc(100dvh - 72px);padding:28px 24px calc(26px + env(safe-area-inset-bottom));color:var(--ink);background:#e5d1a2;border:1px solid #c09a57;border-bottom:0;position:relative;overflow-y:auto;box-shadow:0 -12px 42px #000}.archive-drawer h2{text-align:center;margin:0 0 12px;font:700 28px/1.2 STSong,serif}.archive-drawer p{font-size:14px;line-height:1.7}.archive-lead{text-align:center;font:700 17px/1.55 STSong,serif}.book-mark{border:1px solid #76512d;place-items:center;width:44px;height:44px;margin:0 auto 12px;font:700 18px/1 STSong,serif;display:grid;transform:rotate(45deg)}.book-mark span{transform:rotate(-45deg)}.close-button{color:#49311f;cursor:pointer;background:0 0;border:0;width:44px;height:44px;font-size:28px;position:absolute;top:8px;right:10px}.archive-drawer ul{border-top:1px solid #5e3c1d47;margin:18px 0;padding:0;list-style:none}.archive-drawer li{border-bottom:1px solid #5e3c1d47;justify-content:space-between;gap:12px;padding:13px 0;display:flex}.archive-drawer li span{font:700 17px/1.3 STSong,serif}.archive-drawer li small{color:#765c3d;text-align:right}.drawer-primary{color:#fff0c8;cursor:pointer;background:#335f54;border:1px solid #4f3824;width:min(250px,100%);min-height:48px;margin:20px auto 0;font-weight:700;display:block}.loader-screen{text-align:center;background:radial-gradient(circle at 50% 38%,#2b2117,#100b08 60%);place-content:center;justify-items:center;gap:12px;min-height:100dvh;padding:24px;display:grid}.loader-screen h1{letter-spacing:.18em;margin:6px 0 0;font:700 34px/1.2 STSong,serif}.loader-screen p{color:#d3be8d;margin:0}.loader-screen progress{accent-color:#b18a4c}.loader-screen div{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.loader-screen button{color:#f3dfae;cursor:pointer;background:#392719;border:1px solid #b28d50;min-height:46px;padding:0 16px}.scene-preload{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed}:focus-visible{outline-offset:3px;outline:3px solid #fff0a8}@media (width>=700px){.hall-header{grid-template-columns:56px 1fr 100px;min-height:68px;padding-inline:max(26px,50% - 460px)}.hall-header strong{font-size:29px}.hall-stage{min-height:calc(100dvh - 68px);padding:28px max(26px,50% - 460px) 24px}.scene-portals{gap:18px}.portal{min-height:58px}.portal span{font-size:22px}.route-desk{padding-top:min(34vh,280px)}.desk-paper{padding:24px 42px 18px}.route-slip{min-height:74px}.route-slip span{font-size:19px}.scene-image{object-position:50% 30%}}@media (height<=720px){.hall-stage{padding-top:10px}.route-desk{padding-top:16vh}.portal{min-height:44px}.desk-paper{padding-top:14px}.route-slip{min-height:60px}.hall-promise{margin-top:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
