*{box-sizing:border-box}body{margin:0;background:#080e19;color:#ecebe6;font-family:"Microsoft YaHei",Arial,sans-serif}button{font:inherit;cursor:pointer}header{height:88px;padding:0 36px;display:flex;align-items:center;border-bottom:1px solid #ffffff13;gap:24px}.brand{display:flex;gap:14px;align-items:center;font-size:22px;letter-spacing:3px}.mark{border:1px solid #b89b62;color:#e1c790;font-family:serif;font-size:30px;padding:3px 10px}.brand small{display:block;font-size:8px;letter-spacing:2px;color:#8390a2;margin-top:7px}.edition{margin-left:auto;font-family:serif;color:#ddc28f;font-size:30px}.edition span{font:12px "Microsoft YaHei";color:#9da6b7;margin-left:14px}.draft{border:1px solid #bca67640;padding:7px 12px;color:#cbb786;font-size:11px;border-radius:30px}main{display:flex;height:calc(100svh - 88px);min-height:620px}aside{width:320px;flex-shrink:0;padding:32px 26px;overflow:auto;border-right:1px solid #ffffff13;background:#0b121f}.eyebrow{font-size:9px;letter-spacing:2px;color:#a78f63}h1{font-size:35px;font-weight:500;line-height:1.5;margin:12px 0 15px;letter-spacing:3px}h1 em{font-style:normal;color:#dbc28e}.intro{color:#8d9aae;font-size:12px;line-height:1.9;margin:0 0 25px}.tabs{display:flex;border-bottom:1px solid #ffffff15;margin-bottom:12px}.tabs button{background:none;color:#8b98aa;border:0;padding:10px 0;flex:1;font-size:12px}.tabs .active{color:#e8d1a0;border-bottom:2px solid #d5b777}.zone{display:flex;width:100%;align-items:center;background:transparent;border:1px solid transparent;color:#bac5d4;padding:11px 10px;border-radius:7px;text-align:left;font-size:12px;margin:3px 0;gap:10px}.zone:hover,.zone.selected{background:#ffffff08;border-color:#ffffff19;color:white}.swatch{width:9px;height:9px;border-radius:3px;box-shadow:0 0 14px var(--color);background:var(--color)}.zone span:last-child{margin-left:auto;color:#6f7b8b}article{margin-top:22px;padding:18px 0;border-top:1px solid #ffffff12}h2{font-size:18px;font-weight:500;margin:10px 0}article p{font-size:12px;line-height:1.9;color:#96a3b7;margin:0}.notice{font-size:10px;line-height:1.9;color:#bb9d69;margin-top:16px}.notice span{color:#667487}.viewport{position:relative;overflow:hidden;flex:1;background:radial-gradient(ellipse at 55% 50%,#19263b,#080e19 75%)}canvas{display:block;width:100%;height:100%;touch-action:none}.scene-head{position:absolute;left:25px;top:25px;font-size:11px;color:#b9c4d4;pointer-events:none}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#d6b87d;margin-right:6px}.divider{margin:0 10px;color:#485770}.tools{position:absolute;right:20px;top:18px;display:flex;background:#0c1624d9;padding:4px;border:1px solid #ffffff19;border-radius:8px;gap:3px}.tools button,.zoom button{background:transparent;color:#aebbd0;border:0;border-radius:5px;font-size:11px;padding:10px}.tools button:hover,.tools button.on{background:#d9bd8120;color:#e3c88f}.zoom{position:absolute;right:22px;bottom:65px;display:grid;border:1px solid #ffffff20;border-radius:8px;background:#101a29}.zoom button{font-size:20px;padding:7px 13px}.hint{position:absolute;bottom:24px;width:100%;text-align:center;font-size:10px;color:#7c8ba0;pointer-events:none}.hint b{margin:0 12px;color:#b89b62}.north{position:absolute;right:30px;bottom:180px;font-size:10px;color:#c4ae7d}.north span{display:block;font-size:26px}#labels{position:absolute;inset:0;pointer-events:none}.label{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;border:1px solid #bda47555;background:#09111edc;backdrop-filter:blur(6px);border-radius:5px;color:#eedab1;padding:6px 10px;font-size:11px;pointer-events:auto;box-shadow:0 4px 12px #0005}.label.service{color:#c8dbde;border-color:#72b7b955;font-size:10px}.label.selected{background:#80622b;color:white;border-color:#f5d48d}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#0b1220;color:#d9bd81;font-size:14px}@media(max-width:1100px){.scene-head{top:70px}.tools{left:20px;right:auto}}@media(max-width:700px){header{height:70px;padding:0 16px}.brand{font-size:17px}.brand small{font-size:6px}.edition{font-size:21px}.edition span,.draft{display:none}main{height:auto;min-height:0;flex-direction:column}.viewport{height:62vh;height:62svh;min-height:430px;order:-1;flex:none}aside{width:100%;padding:22px;border-right:0}h1{font-size:25px}h1 br{display:none}.intro{margin-bottom:12px}#list{display:grid;grid-template-columns:1fr 1fr;gap:2px}.label{font-size:9px;padding:4px 6px}.label.service{font-size:8px}.hint{font-size:9px}.scene-head{left:20px}.tools button{padding:9px}.notice{margin-bottom:10px}}

.detail-tools{position:absolute;bottom:62px;left:24px;display:flex;gap:6px;z-index:2}.detail-tools button{background:#111927db;color:#c1ad86;border:1px solid #b7985a55;border-radius:6px;padding:9px 12px;font-size:11px}.detail-tools button:hover,.detail-tools .on{color:#f6ddad;background:#362d20e0}.label{font-size:10px;padding:5px 8px;background:#090e19d9}.viewport{background:radial-gradient(ellipse at center,#151d2b,#060a11)}aside{scrollbar-width:thin;scrollbar-color:#39404a #0b121f}@media(max-width:700px){.detail-tools{bottom:46px;left:14px;gap:4px}.detail-tools button{font-size:10px;padding:7px 9px}.label{font-size:8px;padding:4px}.hint{bottom:16px;font-size:8px}.viewport{min-height:460px}}
.brand-logo{width:72px;height:54px;object-fit:contain;display:block;flex-shrink:0}.home-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 17px;color:#efcf91;background:linear-gradient(135deg,#b88b3322,#8d68230d);border:1px solid #bd985c88;border-radius:7px;text-decoration:none;font-size:12px;white-space:nowrap;transition:background .2s,border-color .2s}.home-link:hover{background:#b88b3338;border-color:#edc580}.home-link:focus-visible{outline:2px solid #f6dba1;outline-offset:4px}.home-link span{font-size:19px}@media(max-width:950px){header{gap:14px;padding:0 20px}.draft{display:none}.edition span{display:none}}@media(max-width:700px){header{gap:8px;padding:0 12px}.brand{gap:9px;font-size:16px;letter-spacing:1px}.brand-logo{width:52px;height:43px}.edition{display:none}.home-link{margin-left:auto;padding:0 11px;min-height:36px;font-size:11px;gap:6px}.brand small{font-size:6px;letter-spacing:1px}}
/* Visual identity aligned with srnh777.com ticketing site. */
:root{--ticket-bg:#0b090f;--ticket-panel:#151119;--ticket-gold:#e2c17b;--ticket-white:#f4f1ed;--ticket-muted:#aaa3b0;--ticket-line:#b9a68b26}
body{background:var(--ticket-bg);color:var(--ticket-white);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif}header{background:#09090d;border-color:#c9b58b38;height:86px;padding:0 30px;gap:22px}.brand{font-size:21px;font-weight:700;letter-spacing:2px}.brand small{font-weight:400;font-size:10px;color:#aaa3ae;letter-spacing:2px;line-height:1.5;margin-top:4px}.brand-logo{width:58px;height:48px}.edition{color:#d7c198;font-size:24px;letter-spacing:1px}.edition span{font-size:9px;letter-spacing:2px;color:#aaa2b0}.draft{border-radius:2px;border-color:#c4af7d3d;color:#c9b584;font-size:9px;letter-spacing:1px}.home-link{color:#100c08;border:1px solid #e9cb89;background:linear-gradient(110deg,#f0d699,#d2aa60);border-radius:2px;font-size:12px;font-weight:700;min-height:41px;padding:0 19px;box-shadow:0 0 24px #d5a8520c}.home-link:hover{background:linear-gradient(110deg,#ffe8b5,#e6bc73);border-color:#f8dfa3}.home-link span{font-weight:400}
main{height:calc(100svh - 86px)}aside{width:320px;background:radial-gradient(ellipse at 0 0,#36204455,transparent 45%),linear-gradient(160deg,#18121e,#110f16 75%);border-color:var(--ticket-line);padding:30px 25px;scrollbar-color:#514452 #131017}.eyebrow{color:#d2b374;font-size:9px;font-weight:600;letter-spacing:2.1px}.scream-title{font-family:"STKaiti","KaiTi","Microsoft YaHei",serif;font-size:51px;font-weight:900;font-style:italic;line-height:1.3;letter-spacing:0;margin:18px 0 2px;transform:skew(-5deg);background:linear-gradient(155deg,#fff4d3 12%,#cfaa5d 45%,#fff1cd 65%,#b58c49 95%);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(2px 3px 0 #7445a94a)}.scream-en{font-size:13px;font-weight:900;letter-spacing:5px;color:#e5c786;margin:2px 0 27px;transform:rotate(-3deg);transform-origin:left}.venue-heading{font-size:18px;font-weight:700;letter-spacing:.4px;margin-bottom:10px}.intro{font-size:11px;color:#a9a1af;line-height:1.9;margin:0 0 23px}
.tabs{border-color:#b9a68b2b}.tabs button{font-size:12px;color:#a8a0ad;padding:12px 0}.tabs .active{color:#ecd093;border-bottom-color:#d7b772}.zone{border-radius:2px;border-color:#b7a7bc16;background:#ffffff02;font-size:12px;margin:6px 0;padding:11px 12px;color:#cfc8d5}.zone:hover{background:#a284c01a;border-color:#bb97d443;color:#fff}.zone.selected{background:linear-gradient(110deg,#d9b77820,#7b4c9b13);border-color:#d5b47777;color:#f0dab0}.swatch{box-shadow:none;width:7px;height:7px;border-radius:1px}.zone span:last-child{color:#c8b080}article{border-color:var(--ticket-line);background:linear-gradient(120deg,#dcc39108,#bda1d608);padding:16px 14px;border:1px solid var(--ticket-line);margin-top:19px}h2{font-weight:700;font-size:16px;color:#f1edee}article p{color:#aaa2b1;font-size:11px;line-height:1.9}.booking-link{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(110deg,#efdaaa,#d2ae69);padding:13px 16px;color:#1b1410;text-decoration:none;font-size:12px;font-weight:700;border-radius:2px;margin-top:17px}.booking-link:hover{filter:brightness(1.1)}.booking-link span{font-size:19px}.notice{color:#bfaa80;font-size:9px;line-height:1.9;margin-top:16px}.notice span{color:#807586}
.viewport{background:radial-gradient(ellipse at 70% 10%,#43225944,transparent 55%),#0d0a13}.scene-head{color:#c2b6c9;font-size:10px;letter-spacing:1px}.live-dot{background:#dfbc75;box-shadow:0 0 8px #dfbc7570}.tools{background:#17111ddf;border-color:#c1a0d431;border-radius:3px;gap:2px}.tools button{border-radius:2px;color:#bfb2c8;font-size:10px;padding:10px 12px}.tools button:hover,.tools button.on{color:#f3d9a2;background:#c7a56425}.detail-tools button{border-radius:2px;background:#17111de8;border-color:#bda3cd38;color:#c7b8cf;font-size:10px;letter-spacing:.6px}.detail-tools button:hover,.detail-tools .on{color:#e9ce95;background:#6b4a213b;border-color:#d9b36a70}.label{border-radius:2px;background:#160f1de8;border:1px solid #b9a4ca50;color:#ead3a8;box-shadow:0 3px 12px #0005;font-size:10px}.label.service{background:#150f1de3;border-color:#ae91c64d;color:#cbbbd7;font-size:9px}.label.selected{background:#654725;border-color:#e9c47e;color:#fff0d0}.zoom{background:#18111fdf;border-color:#b89cc23d;border-radius:3px}.zoom button{color:#dbc398}.hint{color:#8b7e96;font-size:9px;letter-spacing:.6px}.north{color:#c8b278}
@media(max-width:1100px){header{gap:14px;padding:0 22px}.edition span{display:none}}
@media(max-width:700px){header{height:70px;padding:0 14px;gap:8px}.brand{font-size:16px;letter-spacing:1px;gap:9px}.brand-logo{width:47px;height:41px}.brand small{font-size:8px;letter-spacing:1px}.home-link{font-size:11px;padding:0 11px;min-height:35px}.edition,.draft{display:none}main{height:auto}.viewport{min-height:460px}aside{width:100%;padding:26px 20px}.scream-title{font-size:47px;margin-top:14px}.scream-en{font-size:12px;margin-bottom:22px}.venue-heading{font-size:19px}.intro{font-size:12px}.label{font-size:8px;padding:4px 5px}.label.service{font-size:7px}.tools button{padding:9px 10px}.scene-head{font-size:9px}.zone{margin:3px 0}.booking-link{max-width:420px}.notice{max-width:440px}}

/* Stable mobile viewport prevents toolbar scrolling from resizing the WebGL buffers. */
@media(max-width:700px){.viewport{height:62vh;height:62svh;contain:layout paint}.label{backdrop-filter:none;-webkit-backdrop-filter:none}}

/* Disable double-tap page zoom while retaining native panning/pinch zoom.
   The WebGL canvas keeps its existing custom rotation and pinch controls. */
html,body,main,aside,.viewport,button,a,.label{touch-action:manipulation}
#scene{touch-action:none}

/* Venue gestures must not initiate page scrolling, even over floating labels. */
.viewport,.viewport *{touch-action:none;overscroll-behavior:contain}.viewport{-webkit-user-select:none;user-select:none}.viewport button{user-select:none}

.zone.selected{border-color:#ebca87;background:linear-gradient(110deg,#d9b77830,#70429e24);box-shadow:inset 3px 0 #e6c27c}.label.selected{background:#67471fea;border-color:#ffe1a0;box-shadow:0 0 14px #dfb56960;color:#fff3d1}
