:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#243043;background:#f1f4f7;font-synthesis:none;--ink: #243043;--accent: #9e244c;--line: #d4dce5;--paper: #f1f4f7;--muted: #657184}*{box-sizing:border-box}body{margin:0;min-width:320px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;cursor:pointer;background:none}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:5px}svg{width:20px;height:20px;flex:none}button svg{pointer-events:none}button{transition:background .18s,color .18s,transform .18s}button:hover:not(:disabled){color:var(--accent)}small{display:block}header{height:108px;display:flex;align-items:center;justify-content:space-between;padding:0 4.4vw;border-bottom:1px solid var(--line);position:relative;z-index:2;background:#751b3b;color:#fff;--muted: #ead0da;--accent: #ffffff;border-bottom-color:#751b3b}.brand{display:flex;align-items:center;gap:14px;font-size:21px;letter-spacing:4px}.brand-seal{display:block;white-space:nowrap;text-align:center;flex-shrink:0;width:46px;height:49px;background:#fff;color:#751b3b;border-radius:10px;font:17px/1.3 Songti SC,SimSun,serif;letter-spacing:3px;padding:3px 0 0 3px;transform:none}.brand small{font:8px/2.7 sans-serif;letter-spacing:1.7px;color:var(--muted)}header nav{display:flex;gap:34px;height:100%;align-items:center}header nav button{height:100%;position:relative;font-size:13px;letter-spacing:1px}header nav button[aria-current]{color:var(--accent)}header nav button[aria-current]:after{position:absolute;content:"";height:2px;background:var(--accent);left:0;right:0;bottom:26px}header nav span{font-size:16px;margin-left:7px}.edition{font-size:11px;letter-spacing:2px;color:var(--muted)}main{height:calc(100svh - 218px);min-height:590px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 67% 43%,#fff,#f1f4f7 60%,#e3eaf1)}#stage{position:absolute;inset:0}#stage canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}.loading{position:absolute;inset:0;display:grid;place-content:center;color:var(--muted);font-size:14px}.intro{position:absolute;left:5.4vw;top:17%;pointer-events:none;width:330px}.eyebrow{font:10px/1.6 sans-serif;letter-spacing:2.5px;color:var(--muted);display:flex;align-items:center;gap:9px}.eyebrow>span{height:6px;width:6px;border-radius:50%;background:#c92b5b}h1{font:700 clamp(31px,3vw,46px) / 1.45 "PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:2px;font-weight:700;margin:25px 0 19px;color:#8a1e46}.intro-text{font-size:12px;line-height:2.2;color:#59677b;letter-spacing:1px;margin:0 0 27px}.primary{background:var(--accent);color:#fff!important;display:inline-flex;align-items:center;justify-content:center;gap:17px;padding:15px 23px;font-size:12px;letter-spacing:1px;border:1px solid var(--accent);border-radius:3px;cursor:pointer}.primary:hover{background:#761a39!important}.primary svg{width:17px;height:17px}.intro button{pointer-events:auto;flex-direction:row-reverse}.draft{font-size:10px;color:#6c7585;margin-top:17px;letter-spacing:1px}.tools{position:absolute;right:3.3vw;top:35px;display:flex;flex-direction:column;gap:11px}.tools button{width:43px;height:43px;display:grid;place-content:center;border:1px solid #d0dae5;background:#ffffffdf;border-radius:50%;position:relative;color:#42556c}.tools button span{position:absolute;right:53px;white-space:nowrap;top:12px;font-size:11px;opacity:0;transition:opacity .2s;background:var(--paper);padding:3px 6px;border-radius:3px}.tools button:hover span,.tools button:focus-visible span{opacity:1}.tools button[aria-pressed=true]{background:#f8dce6;color:var(--accent)}.scene-caption{position:absolute;bottom:29px;left:4.4vw;display:flex;gap:16px;align-items:center;pointer-events:none}.scene-caption>span{font:37px/1.2 Georgia,serif;color:#8b5871}.scene-caption strong{font-size:12px;font-weight:500;letter-spacing:2px}.scene-caption small{font-size:10px;color:var(--muted);letter-spacing:.7px;margin-top:7px}.actions{position:absolute;bottom:30px;left:60%;transform:translate(-50%);display:flex;gap:4px;white-space:nowrap;padding:6px;background:#ffffffeb;border:1px solid #d5dde7;box-shadow:0 5px 25px #1d315414;border-radius:30px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.actions button{font-size:11px;padding:10px 14px;border-radius:22px;display:flex;align-items:center;gap:7px}.actions button:hover{background:#f5e1e9}.actions svg{width:16px;height:16px}.actions button:first-child{background:#a1234d;color:#fff}footer{height:110px;background:#1d2b3e;color:#f1f4f8;--muted: #b7c4d5;padding:0 4.4vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);position:relative}.footer-note{font:14px Songti SC,serif;letter-spacing:2px}.footer-note small{font:8px/2.5 sans-serif;color:var(--muted);letter-spacing:1.2px}.views{display:flex;gap:10px}.views button{padding:17px 24px;font-size:12px;letter-spacing:1px;border-radius:3px;display:flex;gap:12px;border:1px solid transparent}.views button span{font:10px Georgia,serif;color:#c7b9cc}.views button[aria-pressed=true]{background:#a1234d;border-color:#bb4169;color:#fff}.footer-mark{font:13px Songti SC,serif;color:#b7c4d5;letter-spacing:2px}#toast{position:absolute;bottom:98px;left:60%;transform:translate(-50%) translateY(6px);border-radius:5px;padding:11px 18px;max-width:88%;color:#fff;background:#25354bef;opacity:0;pointer-events:none;font-size:12px;line-height:1.6;transition:.2s;z-index:4}#toast.visible{opacity:1;transform:translate(-50%)}.movement{display:none;position:absolute;bottom:100px;left:25px;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px);gap:4px}.movement button{background:#fffffff0;border:1px solid #c5d2e1;border-radius:8px;font-size:20px;touch-action:none}.movement button:first-child{grid-column:2}.movement button:nth-child(2){grid-column:1;grid-row:2}.movement button:nth-child(3){grid-column:2;grid-row:2}.movement button:nth-child(4){grid-column:3;grid-row:2}.crosshair{display:none;position:absolute;left:50%;top:50%;pointer-events:none;color:#fff;text-shadow:0 0 3px #333;font-size:30px}body[data-mode=walk] .crosshair{display:block}body[data-mode=walk] .movement{display:grid}body[data-mode=walk] .intro,body[data-mode=seated] .intro{display:none}body[data-mode=walk] .scene-caption,body[data-mode=seated] .scene-caption{bottom:auto;top:30px;background:#f5f7faed;padding:10px 15px;border-radius:5px}body[data-mode=walk] .actions,body[data-mode=seated] .actions,body[data-mode=walk] #toast,body[data-mode=seated] #toast{left:50%}dialog{border:1px solid #d1dce7;background:#fff;color:var(--ink);border-radius:9px;padding:28px 32px;max-width:900px;width:calc(100% - 48px);max-height:91svh;box-shadow:0 30px 120px #17294350}dialog::backdrop{background:#101c30b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;margin-bottom:20px}.dialog-head h2{font:29px/1.5 Songti SC,SimSun,serif;font-weight:500;margin:8px 0}.dialog-head .eyebrow{margin:0}.dialog-head>button{padding:7px;border:1px solid var(--line);border-radius:50%;width:36px;height:36px;display:grid;place-content:center}.photo-frame{position:relative;background:#edf1f5;border-radius:4px;overflow:hidden;display:grid;place-content:center;height:min(48svh,510px)}.photo-frame>img{max-width:100%;width:auto;height:100%;max-height:min(48svh,510px);object-fit:contain;display:block}.photo-frame>button{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;background:#ffffffe8;border-radius:50%;font-size:20px}#prev{left:12px}#next{right:12px}.photo-description{margin-top:18px;font-size:12px;line-height:1.8}.photo-description strong{font-weight:500}.photo-description p{color:#5d6c81;margin:4px 0 12px}.thumbnails{display:flex;gap:9px;overflow-x:auto;padding:3px}.thumbnails button{flex:0 0 70px;height:48px;padding:0;opacity:.6;border:2px solid transparent;border-radius:4px;overflow:hidden}.thumbnails img{width:100%;height:100%;object-fit:cover}.thumbnails button[aria-pressed=true]{border-color:var(--accent);opacity:1}.credit{font-size:10px;color:#657184;line-height:1.9;margin:18px 0 0}.credit a,dl a{text-decoration:underline;text-underline-offset:3px}#details{max-width:660px;padding:35px 42px}#details>p,dd{font-size:13px;line-height:2;color:#53647b}dt{font-size:12px;font-weight:600;letter-spacing:1px;color:#9e244c;margin-top:23px}dd{margin:7px 0 0}#details .primary{margin-top:15px}#postcard{max-width:850px}#postcard-image{width:100%;max-height:66svh;object-fit:contain;display:block}#postcard .primary{margin-top:16px}.night{--paper: #111d30;--ink: #edf1fa;--accent: #ff9dbc;--line: #3c4a61;--muted: #b6c3d7;color:var(--ink)}.night main{background:radial-gradient(ellipse at 67% 43%,#34435b,#1b2a40 60%,#111d30)}.night h1{color:#ffadca}.night .intro-text,.night .draft{color:#bbc9dc}.night .tools button{background:#22334ce8;color:#edf1fa;border-color:#4c607d}.night .tools button[aria-pressed=true]{background:#67213f}.night .primary{background:#ae315b;border-color:#d45a82}.night .actions{background:#203047ed;color:#edf1fa;border-color:#4c607d}.night .actions button:hover{background:#3c4d66}.night .actions button:first-child{background:#a1234d;color:#fff}.night .movement button{background:#203047ed;color:#edf1fa;border-color:#4c607d}.night[data-mode=walk] .scene-caption,.night[data-mode=seated] .scene-caption{background:#203047ed}.night dialog{background:#19273b;border-color:#4c607d}.night .photo-frame{background:#101b2e}.night .photo-frame>button{background:#25364be8;color:#fff}.night .photo-description p,.night .credit,.night #details>p,.night dd{color:#b6c3d7}.night dt{color:#ffadca}.fallback{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-left:30%;padding:30px}.fallback img{max-width:85%;max-height:70%;object-fit:contain;border-radius:6px}.fallback p{font-size:12px;line-height:1.8;padding:10px}@media(min-width:1600px){.intro{left:7vw;top:20%}.actions{left:62%}}@media(max-width:1100px){.edition,.footer-mark{display:none}.views{gap:3px}.views button{padding:16px 18px}header nav{gap:22px}.intro{width:280px;left:4vw}h1{font-size:34px}.actions{left:66%}.scene-caption{max-width:32%}.scene-caption small{line-height:1.6}}@media(max-width:700px){header{height:78px;padding:0 20px}.brand{font-size:16px;gap:9px;letter-spacing:2px}.brand-seal{width:34px;height:38px;font-size:12px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:1px}header nav{gap:14px}header nav button{font-size:10px;letter-spacing:0}header nav button[aria-current]:after{bottom:15px}header nav button:first-child{display:none}header nav span{display:none}.edition{display:none}main{height:calc(100svh - 166px);min-height:550px}.intro{left:25px;top:22px;width:90%}.eyebrow{font-size:8px;letter-spacing:2px}h1{font-size:27px;line-height:1.45;margin:11px 0;letter-spacing:1px}.intro-text{font-size:10px;line-height:1.9;margin:0 0 12px}.intro .primary{position:absolute;right:21px;top:65px;font-size:10px;padding:11px 13px;gap:7px}.intro .draft{font-size:8px;margin:6px 0}.tools{right:16px;top:196px;gap:8px}.tools button{width:34px;height:34px}.tools svg{width:16px;height:16px}.tools button span{right:43px;top:6px}.scene-caption{left:23px;bottom:83px;max-width:90%;gap:9px}.scene-caption>span{font-size:25px}.scene-caption strong{font-size:10px}.scene-caption small{font-size:8px;margin-top:4px;letter-spacing:.2px}.actions{left:50%;bottom:20px;gap:0;padding:4px}.actions button{font-size:10px;padding:10px 13px;gap:6px}.actions svg{width:15px;height:15px}footer{height:88px;padding:0 13px;justify-content:center}.footer-note{display:none}.views{width:100%;justify-content:space-between;gap:4px}.views button{flex:1;flex-direction:column;gap:8px;padding:13px 3px;font-size:10px;letter-spacing:.5px}.views button span{font-size:9px}#toast{left:50%;bottom:130px;font-size:11px;min-width:230px;text-align:center}.movement{bottom:102px;left:18px;grid-template-columns:repeat(3,35px);grid-template-rows:repeat(2,35px)}body[data-mode=walk] .scene-caption,body[data-mode=seated] .scene-caption{top:18px;left:18px;right:58px}.crosshair{font-size:24px}body[data-mode=walk] .tools,body[data-mode=seated] .tools{top:105px}dialog{width:calc(100% - 22px);padding:20px 16px;max-height:94svh}.dialog-head{margin-bottom:15px;gap:12px}.dialog-head h2{font-size:24px}.dialog-head .eyebrow{font-size:8px}.photo-frame{height:33svh}.photo-frame>img{max-height:33svh}.photo-description{font-size:11px}.thumbnails{gap:5px}.thumbnails button{flex-basis:52px;height:40px}.credit{font-size:9px}#details{padding:24px}#details>p,dd{font-size:12px}.fallback{margin-left:0;padding-top:200px}.fallback img{max-height:50%;max-width:95%}.fallback p{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.actions button:first-child:hover:not(:disabled){background:#851d40;color:#fff}.views button:hover:not(:disabled){background:#39485c;color:#fff}.views button[aria-pressed=true]:hover:not(:disabled){background:#851d40}footer button:focus-visible{outline-color:#ffadca}.draft #facade-reference{padding:0;font:inherit;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
