:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:#050711;color:#f7fbff;letter-spacing:0;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}.app{--accent: #a9e6ff;position:fixed;inset:0;background:#050711;overflow:hidden}.panorama-shell{position:absolute;inset:0;cursor:grab;touch-action:none}.panorama-shell.is-css-fallback{background-position:center;background-size:cover}.panorama-shell:active{cursor:grabbing}.panorama-shell canvas{display:block;width:100%;height:100%}.topbar{position:absolute;top:18px;left:18px;right:18px;z-index:5;display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(260px,1fr);align-items:center;gap:14px;pointer-events:none}.brand,.chapter-pill,.top-actions,.affinity-panel,.guide-panel,.dialogue,.choice-panel,.closeup-layer,.gallery-layer,.toast{pointer-events:auto}.brand,.chapter-pill,.top-actions,.affinity-panel,.guide-panel,.dialogue,.choice-panel,.gallery-layer,.toast{border:1px solid rgba(255,255,255,.16);background:#080c189e;box-shadow:0 20px 60px #0000003d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{justify-self:start;display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border-radius:8px}.brand strong{display:block;font-size:15px;line-height:1.1}.brand span{display:block;margin-top:3px;color:#eff8ffb8;font-size:12px}.chapter-pill{justify-self:center;display:flex;align-items:center;gap:8px;max-width:min(460px,42vw);padding:10px 14px;border-radius:999px;color:#f7fcffeb;white-space:nowrap}.top-actions{justify-self:end;display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px}.top-actions button,.recenter-button,.choice-panel button,.gallery-head button,.closeup-copy button{border:1px solid rgba(255,255,255,.15);background:#ffffff17;border-radius:8px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.top-actions button{display:grid;place-items:center;width:38px;height:38px;padding:0}.top-actions button:hover,.recenter-button:hover,.choice-panel button:hover,.gallery-head button:hover,.closeup-copy button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent),white 18%);background:color-mix(in srgb,var(--accent),transparent 80%)}.top-actions button.is-on{border-color:var(--accent);color:var(--accent)}.volume{display:grid;place-items:center;width:82px;height:38px}.volume input{width:76px;accent-color:var(--accent)}.affinity-panel{position:absolute;top:86px;right:18px;z-index:4;width:230px;padding:12px;border-radius:8px}.guide-panel{position:absolute;top:242px;right:18px;z-index:4;width:280px;padding:12px;border-radius:8px}.guide-title{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:13px;font-weight:800}.guide-panel p{margin:8px 0 10px;color:#eff8ffb8;font-size:12px;line-height:1.55}.guide-actions{display:grid;gap:8px}.guide-actions button{display:grid;grid-template-columns:76px 1fr;align-items:center;gap:8px;min-height:42px;padding:9px 10px;border:1px solid rgba(255,255,255,.13);border-left:3px solid var(--action-color);border-radius:8px;background:#ffffff12;cursor:pointer;text-align:left}.guide-actions button span{color:color-mix(in srgb,var(--action-color),white 20%);font-size:12px}.guide-actions button strong{min-width:0;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.guide-actions button:hover{border-color:color-mix(in srgb,var(--action-color),white 18%);background:color-mix(in srgb,var(--action-color),transparent 86%)}.affinity-row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:10px;margin:8px 0;font-size:13px}meter{width:100%;height:8px}meter::-webkit-meter-bar{background:#ffffff1f;border:0;border-radius:999px}meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,var(--accent),#fff2ac);border-radius:999px}.dialogue{position:absolute;left:50%;bottom:18px;z-index:5;width:min(720px,calc(100vw - 36px));min-height:104px;padding:13px 16px;border-radius:8px;transform:translate(-50%)}.speaker{margin-bottom:6px;font-size:13px;font-weight:800}.dialogue p{margin:0;font-size:clamp(16px,1.65vw,22px);line-height:1.42;text-wrap:pretty}.dialogue-meta{display:flex;justify-content:space-between;gap:18px;margin-top:8px;color:#eff8ffad;font-size:11px;line-height:1.5}.dialogue-meta span{min-width:0}.dialogue-meta strong{flex:none;color:#ffffffe6}.choice-panel{position:absolute;right:18px;bottom:188px;z-index:12;display:grid;gap:10px;width:min(360px,calc(100vw - 36px));padding:12px;border-radius:8px}.choice-panel button{padding:12px 14px;text-align:left;line-height:1.45}.hotspot{position:absolute;left:0;top:0;z-index:3;display:grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:50%;opacity:0;pointer-events:none;background:transparent;translate:-50% -50%;cursor:pointer}.hotspot.is-visible{opacity:1;pointer-events:auto}.hotspot span{width:18px;height:18px;border:2px solid rgba(255,255,255,.92);border-radius:50%;background:var(--accent);box-shadow:0 0 0 9px color-mix(in srgb,var(--accent),transparent 72%),0 0 24px color-mix(in srgb,var(--accent),transparent 18%);animation:pulse 1.8s ease-in-out infinite}.hotspot.is-active span{background:#fff}.hotspot-heart span{border-radius:50% 50% 45% 45%}.hotspot-gate span{border-radius:4px}.recenter-button{position:absolute;left:18px;top:88px;z-index:4;width:42px;height:42px;color:#fff}.closeup-layer,.gallery-layer{position:absolute;inset:22px;z-index:10;border-radius:8px}.closeup-layer{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:0;overflow:hidden;border:1px solid rgba(255,255,255,.18);background:#080c18;box-shadow:0 24px 90px #0000008c}.closeup-art{position:relative;min-height:0;overflow:hidden}.closeup-art img,.closeup-fallback{position:absolute;inset:0;width:100%;height:100%}.closeup-art img{z-index:2;object-fit:cover}.closeup-fallback,.thumb{display:grid;place-items:center;padding:26px;text-align:center;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.24),transparent 30%),linear-gradient(135deg,#223a68,#1b8295 42%,#ffc071)}.fallback-aqua{background:radial-gradient(circle at 58% 32%,rgba(255,255,255,.26),transparent 26%),linear-gradient(135deg,#073252,#0bbad2 55%,#fff2a5)}.fallback-market{background:radial-gradient(circle at 72% 24%,rgba(255,218,111,.34),transparent 24%),linear-gradient(135deg,#170b25,#37216b 42%,#ec59ae 72%,#ffd16e)}.fallback-fire{background:radial-gradient(circle at 52% 66%,rgba(255,190,91,.48),transparent 24%),linear-gradient(135deg,#150915,#42214b 48%,#b94842 72%,#ffd17a)}.fallback-moon{background:radial-gradient(circle at 68% 20%,rgba(220,218,255,.42),transparent 18%),linear-gradient(135deg,#030613,#17244f 52%,#6b73b7)}.fallback-sunrise{background:radial-gradient(circle at 50% 22%,rgba(255,255,255,.42),transparent 22%),linear-gradient(135deg,#15243f,#f49d68 55%,#fff0b8)}.closeup-fallback strong{align-self:end;font-size:clamp(26px,5vw,64px);text-shadow:0 2px 18px rgba(0,0,0,.42)}.closeup-fallback span{align-self:start;max-width:560px;color:#ffffffd1;line-height:1.7}.closeup-copy{display:flex;flex-direction:column;justify-content:flex-end;gap:14px;padding:28px;border-left:1px solid rgba(255,255,255,.12);background:#080c18e6}.closeup-copy span,.gallery-head span{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.closeup-copy h2,.gallery-head h2{margin:0;font-size:30px}.closeup-copy p{margin:0;color:#eff8ffc2;line-height:1.7}.sponsor-qr{display:grid;grid-template-columns:94px minmax(0,1fr);align-items:center;gap:12px;margin-top:auto;padding:12px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#ffffff0f}.sponsor-qr img{width:94px;height:94px;object-fit:cover;border-radius:6px;background:#fff}.sponsor-qr strong,.sponsor-qr small{display:block}.sponsor-qr strong{margin-bottom:4px;color:#fff;font-size:15px}.sponsor-qr small{color:#eff8ffad;line-height:1.5}.closeup-copy button,.gallery-head button{align-self:flex-start;padding:10px 16px}.gallery-layer{display:flex;flex-direction:column;gap:18px;padding:22px;overflow:hidden;background:#080c18d6;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.gallery-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;overflow:auto;padding-right:4px}.gallery-card{display:grid;gap:8px;min-width:0;padding:0 0 12px;overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:8px;background:#ffffff0f;text-align:left;cursor:pointer}.gallery-card:not(.is-unlocked){cursor:default;filter:saturate(.4)}.gallery-card strong,.gallery-card small{padding:0 12px}.gallery-card small{color:#eff8ff9e}.thumb{position:relative;aspect-ratio:16 / 9;padding:0;overflow:hidden;color:#ffffffc7;font-weight:800}.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.thumb span{position:relative;z-index:1;padding:6px 10px;border-radius:999px;background:#0000005c}.toast{position:absolute;left:50%;top:88px;z-index:20;max-width:calc(100vw - 36px);padding:11px 14px;border-radius:8px;color:#fff;transform:translate(-50%)}@keyframes pulse{0%,to{transform:scale(.92)}50%{transform:scale(1.12)}}@media(max-width:780px){.topbar{grid-template-columns:1fr auto;gap:10px}.chapter-pill{display:none}.top-actions{gap:4px}.top-actions button{width:34px;height:34px}.volume{display:none}.affinity-panel{top:78px;right:12px;width:178px;padding:8px}.guide-panel{left:12px;right:auto;top:78px;width:min(250px,calc(100vw - 214px));padding:8px}.guide-panel p{display:none}.guide-actions{gap:6px}.guide-actions button{grid-template-columns:1fr;min-height:34px;padding:7px 8px}.guide-actions button span{display:none}.affinity-row{grid-template-columns:52px 1fr;gap:6px;font-size:12px}.dialogue{bottom:12px;width:calc(100vw - 24px);min-height:96px;padding:12px}.dialogue p{font-size:16px}.dialogue-meta{display:none}.choice-panel{right:12px;bottom:158px}.closeup-layer{inset:12px;grid-template-columns:1fr;grid-template-rows:1fr auto}.closeup-copy{padding:18px;border-left:0;border-top:1px solid rgba(255,255,255,.12)}.closeup-copy h2,.gallery-head h2{font-size:24px}.gallery-layer{inset:12px;padding:14px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
