@import url('https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng&family=Noto+Sans+SC:wght@500;600;700&family=Noto+Serif+SC:wght@400;600;700&display=swap');
:root{font-family:'Noto Serif SC','SimSun',serif;color:#e8dfcf;background:#07090b;--gold:#bfa274;--red:#b84732;--ink:rgba(8,10,11,.89)}*{box-sizing:border-box}body{margin:0;overflow:hidden}.game-shell{height:100vh;min-height:640px;position:relative;overflow:hidden;background:#080b0e}.backdrop{position:absolute;inset:0;background:url('../assets/palace-rain.png') center/cover no-repeat;transform:scale(1.01);animation:reveal 1.2s ease-out both}.backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,6,9,.65),transparent 32%,transparent 70%,rgba(3,5,7,.18)),linear-gradient(0deg,rgba(4,6,8,.7),transparent 48%)}.rain{position:absolute;inset:-80px;background:repeating-linear-gradient(103deg,transparent 0 22px,rgba(184,216,229,.15) 23px 24px);animation:rain .8s linear infinite;pointer-events:none}.topbar{height:68px;position:relative;z-index:4;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 30px;background:linear-gradient(180deg,rgba(4,6,8,.96),rgba(5,7,9,.82));border-bottom:1px solid rgba(191,162,116,.34)}.brand{display:flex;align-items:center;gap:28px}.brand strong{font-family:'Ma Shan Zheng',cursive;font-size:31px;font-weight:400;color:#d6c29e}.brand span{font-size:14px;color:#c9b792}.stats{display:flex;gap:38px}.stats span{color:#b8a88f;font-size:14px}.stats b{font-size:20px;color:#f2e7d2;margin-left:8px}.topbar nav{justify-self:end;display:flex;gap:10px}.topbar button{color:#d7c4a2;border:1px solid rgba(191,162,116,.5);background:rgba(11,13,14,.55);padding:9px 17px;font-family:inherit;cursor:pointer}.topbar button:hover{background:rgba(184,71,50,.26);border-color:#c48268}.chapter-rail{position:absolute;z-index:3;left:34px;top:115px;display:flex;flex-direction:column;gap:34px}.chapter-step{display:flex;align-items:center;gap:14px;opacity:.55}.chapter-step i{width:30px;height:30px;border:1px solid #7c7468;border-radius:50%;display:grid;place-items:center;font-style:normal}.chapter-step span{font-size:13px}.chapter-step b{display:block;font-size:15px;margin-top:3px}.chapter-step.active{opacity:1;color:#ead9bc}.chapter-step.active i{border-color:#d06149;box-shadow:0 0 18px rgba(208,97,73,.55);color:#e36d52}.chapter-step.active b{color:#dc654c}.chapter-step.locked b:before{content:'锁定 · ';font-size:10px;color:#777}.objective{position:absolute;z-index:4;left:30px;bottom:24px;padding-left:14px;border-left:2px solid var(--red);text-shadow:0 2px 8px #000}.objective span{display:block;color:#bd9f70;font-size:12px}.objective strong{font-size:14px}.dialogue-panel{position:absolute;z-index:4;left:14%;right:3%;bottom:28px;min-height:235px;padding:22px 30px 24px;background:linear-gradient(90deg,rgba(7,9,10,.96),rgba(12,13,13,.86));border:1px solid rgba(191,162,116,.55);box-shadow:0 15px 50px rgba(0,0,0,.55);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px)}.speaker{font-family:'Ma Shan Zheng',cursive;color:#d9bd8d;font-size:27px;margin-left:16px}.line{font-size:17px;line-height:1.8;margin:8px 16px 18px;color:#eee5d6}.choice-list{display:flex;gap:14px}.choice-list button{flex:1;min-height:66px;display:flex;align-items:center;gap:12px;padding:10px 14px;color:#e3d8c6;background:rgba(32,34,32,.75);border:1px solid rgba(191,162,116,.55);font-family:inherit;font-size:14px;text-align:left;cursor:pointer;transition:.2s}.choice-list button:hover,.choice-list button.selected{transform:translateY(-2px);background:rgba(90,45,35,.8);border-color:#d26c53}.choice-list em{width:29px;height:29px;display:grid;place-items:center;border:1px solid #8f826f;transform:rotate(45deg);font-style:normal}.choice-list em::first-line{transform:rotate(-45deg)}.choice-list span{flex:1}.choice-list i{font-style:normal;color:#806f59;font-size:11px}.toast{position:absolute;z-index:8;top:85px;left:50%;transform:translate(-50%,-20px);opacity:0;padding:9px 22px;background:#151614;border:1px solid #7e6849;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}dialog.modal{width:min(520px,90vw);color:#e5d9c6;background:#121412;border:1px solid #8d7451;padding:28px;box-shadow:0 20px 90px #000}dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(6px)}.modal h2{font-family:'Ma Shan Zheng';font-size:30px;color:#d5ba8d;font-weight:400;margin-top:0}.close{position:absolute;right:14px;top:10px;background:none;border:0;color:#aaa;font-size:24px}.map-row{display:flex;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid #36342e}.map-row>b{color:#a84533}.map-row span{flex:1}.map-row span strong{display:block}.map-row small{color:#887a66}.modal label{display:block;margin:18px 0}.modal input{float:right}.modal code{color:#d16c54}@keyframes rain{to{transform:translateY(45px)}}@keyframes reveal{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1.01)}}@media(max-width:800px){body{overflow:auto}.game-shell{min-height:760px}.topbar{height:92px;grid-template-columns:1fr auto;padding:10px 14px}.brand{display:block}.brand strong{font-size:24px}.brand span{display:block;margin-top:3px}.stats{grid-row:2;grid-column:1/3;justify-content:center;gap:22px}.topbar nav button:first-child,.topbar nav button:last-child{display:none}.chapter-rail{top:118px;left:14px;right:14px;flex-direction:row;justify-content:space-between;gap:4px}.chapter-step span{display:none}.chapter-step i{width:25px;height:25px}.objective{left:16px;bottom:328px}.dialogue-panel{left:12px;right:12px;bottom:12px;min-height:298px;padding:18px}.speaker{font-size:24px}.line{font-size:15px}.choice-list{display:grid;gap:8px}.choice-list button{min-height:51px}.backdrop{background-position:58% center}}@media(prefers-reduced-motion:reduce){.rain,.backdrop{animation:none}}
html,body,#root{width:100%;height:100%;background:#020304}body{display:grid;place-items:center}.game-shell.canvas-landscape{width:min(100vw,177.7778vh);height:min(100vh,56.25vw);min-height:0}.game-shell.canvas-portrait{width:min(100vw,56.25vh);height:min(100vh,177.7778vw);min-height:0}.scene-hotspot-layer{position:absolute;inset:0;z-index:7;pointer-events:none}.scene-hotspot-layer[hidden]{display:none}.scene-hotspot{--hit-size:8%;position:absolute;width:max(var(--hit-size),56px);aspect-ratio:1;transform:translate(-50%,-50%);padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.04);cursor:pointer;pointer-events:auto}.scene-hotspot::before,.scene-hotspot::after{content:'';position:absolute;inset:25%;border:1px solid rgba(255,255,255,.88);border-radius:50%;animation:hotspotPulse 1.4s ease-out infinite}.scene-hotspot::after{inset:39%;background:#fff;box-shadow:0 0 16px 5px rgba(255,255,255,.48)}.scene-hotspot i{position:absolute;inset:8%;border:1px solid rgba(255,255,255,.22);border-radius:50%}.scene-hotspot-prompt{position:absolute;transform:translate(-50%,0);padding:5px 10px;border-radius:14px;color:#fff;background:rgba(5,8,12,.65);font:12px 'Noto Sans SC','Microsoft YaHei',sans-serif;white-space:nowrap;text-shadow:0 1px 4px #000;pointer-events:none}.canvas-portrait .topbar{padding-inline:14px}.canvas-portrait .topbar nav{display:none}.canvas-portrait .brand span{display:none}.canvas-portrait .stats{gap:12px}.canvas-portrait .chapter-rail{left:14px;right:14px;top:90px;flex-direction:row;justify-content:space-between}.canvas-portrait .chapter-step span{display:none}.canvas-portrait .objective{bottom:290px}.canvas-portrait .dialogue-panel{left:5%;right:5%;width:auto;transform:none;bottom:max(16px,env(safe-area-inset-bottom));padding:26px 20px 18px}.canvas-portrait .choice-list{display:grid}.canvas-portrait .line{font-size:15px}.canvas-portrait.dialogue-panel{max-width:none}@keyframes hotspotPulse{0%{opacity:.9;transform:scale(.65)}80%,100%{opacity:0;transform:scale(1.5)}}@media(max-width:800px){.game-shell.canvas-landscape,.game-shell.canvas-portrait{min-height:0}.game-shell.canvas-portrait{height:min(100vh,177.7778vw)}}
.game-shell .backdrop{transform:none;animation:revealCanvas .7s ease-out both}@keyframes revealCanvas{from{opacity:0}to{opacity:1}}
.scene-choice-hotspot{background:rgba(8,12,17,.12);border:1px solid rgba(255,255,255,.2)}.scene-choice-hotspot:hover,.scene-choice-hotspot:focus-visible{background:rgba(196,146,77,.18);box-shadow:0 0 0 5px rgba(216,189,138,.14);outline:none}.scene-choice-prompt{z-index:2;background:rgba(5,8,12,.78);border:1px solid rgba(216,189,138,.38);font-size:13px}.scene-hotspot-layer:has(.scene-choice-hotspot){z-index:8}
.haptic-setting{display:flex!important;align-items:center;justify-content:space-between;gap:24px;padding:14px 16px;border:1px solid rgba(191,162,116,.28);background:rgba(255,255,255,.025)}.haptic-setting span{display:block}.haptic-setting b,.haptic-setting small{display:block}.haptic-setting small{margin-top:5px;color:#918675;font-size:12px}.haptic-setting input{float:none!important;width:20px;height:20px;accent-color:#bfa274}.haptic-setting input:disabled{opacity:.4}
.inspection-layer{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:rgba(2,4,7,.88);backdrop-filter:blur(10px)}.inspection-layer[hidden]{display:none}.inspection-card{position:relative;overflow:hidden;background:#050709;border:1px solid rgba(216,189,138,.48);box-shadow:0 22px 80px rgba(0,0,0,.72)}.inspection-fullscreen .inspection-card{width:100%;height:100%;border:0;box-shadow:none}.inspection-modal .inspection-card{width:76%;height:76%;max-width:1180px;max-height:760px}.inspection-media{width:100%;height:100%;display:grid;place-items:center;background:#030405}.inspection-content{display:block;width:100%;height:100%;object-fit:contain;background:#030405}.inspection-return{position:absolute;right:max(20px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));z-index:2;min-width:86px;padding:10px 20px;color:#f0dfc2;background:rgba(7,9,11,.84);border:1px solid var(--dialogue-border,#d8bd8a);font:600 14px 'Noto Sans SC','Microsoft YaHei',sans-serif;cursor:pointer;backdrop-filter:blur(8px)}.inspection-return:hover,.inspection-return:focus-visible{background:rgba(75,53,32,.92);outline:2px solid rgba(255,255,255,.35);outline-offset:2px}.canvas-portrait .inspection-modal .inspection-card{width:88%;height:72%;max-width:none;max-height:none}.canvas-portrait .inspection-return{right:max(14px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));min-width:72px;padding:9px 15px}.inspection-continue{z-index:3}

.inspection-floating{display:block;background:rgba(2,4,7,.55);backdrop-filter:blur(5px);perspective:1100px}.inspection-floating .inspection-card{position:absolute;transform:translate(-50%,-50%) perspective(950px) rotateX(1.5deg) rotateY(var(--inspection-tilt,-1.5deg));animation:inspectionFloatIn .36s cubic-bezier(.18,.82,.24,1);overflow:hidden;background:linear-gradient(145deg,rgba(15,21,29,.97),rgba(3,5,8,.96));box-shadow:0 32px 100px rgba(0,0,0,.78),0 0 0 1px rgba(255,255,255,.08),inset 0 1px rgba(255,255,255,.08)}.inspection-copy{position:absolute;left:0;right:0;bottom:0;padding:clamp(18px,4%,34px);color:#fff;background:linear-gradient(0deg,rgba(3,5,8,.98),rgba(3,5,8,.72),transparent);text-shadow:0 2px 5px #000}.inspection-copy strong{display:block;margin-bottom:9px;color:var(--dialogue-border,#d8bd8a);font-size:clamp(14px,2vw,24px)}.inspection-copy p{margin:0;font-size:clamp(14px,2.1vw,25px);line-height:1.65;white-space:pre-wrap}.inspection-media:not(:has(.inspection-content)) .inspection-copy{inset:0;display:grid;align-content:center;background:linear-gradient(135deg,rgba(17,24,34,.98),rgba(4,7,11,.96));padding:10%}.inspection-floating .inspection-return{top:12px;right:12px}.canvas-portrait .inspection-floating .inspection-card{min-width:48%;min-height:18%}@keyframes inspectionFloatIn{from{opacity:0;transform:translate(-50%,-44%) perspective(950px) rotateX(9deg) rotateY(var(--inspection-tilt,-1.5deg)) scale(.88)}}

/* 3D_SPACE_CARD_V2 */
.inspection-floating{overflow:hidden;perspective:1300px;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,42%),rgba(71,151,255,.14),transparent 36%),rgba(2,4,7,.6)}
.inspection-floating .inspection-card{transform-style:preserve-3d;isolation:isolate;overflow:visible!important;border:1px solid rgba(164,210,255,.43);background:linear-gradient(145deg,rgba(18,28,41,.95),rgba(3,6,11,.97));transform:translate(-50%,-50%) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));transition:transform .16s ease-out;box-shadow:0 48px 130px rgba(0,0,0,.84),0 0 42px rgba(69,149,255,.16),inset 0 1px rgba(255,255,255,.17)}
.inspection-floating .inspection-card::before{content:'';position:absolute;inset:-12px;z-index:-2;transform:translateZ(-48px) scale(1.04);border:1px solid rgba(105,181,255,.3);background:linear-gradient(135deg,rgba(39,93,151,.25),rgba(3,7,13,.86));box-shadow:0 30px 65px rgba(0,0,0,.76)}
.inspection-floating .inspection-card::after{content:'';position:absolute;inset:0;z-index:6;pointer-events:none;transform:translateZ(54px);background:linear-gradient(112deg,transparent 20%,rgba(255,255,255,.17) 42%,transparent 58%);opacity:calc(.25 + var(--shine-power,.3));mix-blend-mode:screen}
.inspection-floating .inspection-media{overflow:visible;transform-style:preserve-3d;background:transparent}
.inspection-floating .inspection-content{transform:translateZ(28px);background:#030507;box-shadow:0 16px 38px rgba(0,0,0,.42)}
.inspection-floating .inspection-copy{z-index:7;transform:translateZ(62px);border-top:1px solid rgba(184,220,255,.2);box-shadow:0 -18px 42px rgba(0,0,0,.34)}
.inspection-floating .inspection-return{z-index:9;transform:translateZ(86px);box-shadow:0 10px 28px rgba(0,0,0,.48)}
.inspection-floating.is-settling .inspection-card{transition:transform .45s cubic-bezier(.2,.8,.2,1)}
@media(prefers-reduced-motion:reduce){.inspection-floating .inspection-card{transition:none;animation:none!important}.inspection-floating .inspection-card::after{display:none}}

/* AUTO_PLAY_CONTROL_V1 */
.auto-play{position:absolute;right:max(14px,calc(env(safe-area-inset-right) + 10px));bottom:max(12px,calc(env(safe-area-inset-bottom) + 8px));z-index:18;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:48px;height:30px;padding:0 10px;border:1px solid rgba(216,189,138,.42);border-radius:15px;background:rgba(5,8,12,.68);color:rgba(245,239,226,.74);font:600 12px 'Noto Sans SC','Microsoft YaHei',sans-serif;letter-spacing:.08em;cursor:pointer;backdrop-filter:blur(8px);box-shadow:0 5px 18px rgba(0,0,0,.3);transition:.18s ease}
.auto-play:hover,.auto-play:focus-visible{color:#fff;border-color:rgba(235,207,151,.78);background:rgba(18,16,14,.86);outline:none}
.auto-play small{padding-left:5px;border-left:1px solid rgba(216,189,138,.38);color:#e6c98d;font:700 11px/1 sans-serif;letter-spacing:0}
.auto-play small[hidden]{display:none}.auto-play.is-active{color:#f6e8c9;border-color:#d8bd8a;background:linear-gradient(180deg,rgba(70,52,29,.9),rgba(24,19,13,.92));box-shadow:0 6px 22px rgba(0,0,0,.38),0 0 15px rgba(216,189,138,.12)}
.cover-screen:not(.is-hidden)~.auto-play{visibility:hidden}
@media(max-height:600px) and (orientation:landscape){.auto-play{right:max(10px,calc(env(safe-area-inset-right) + 8px));bottom:max(8px,calc(env(safe-area-inset-bottom) + 5px));height:26px;min-width:42px;padding:0 8px;font-size:10px}.auto-play small{font-size:10px}}

/* INSPECTION_RETURN_BUTTON_V2 */
.inspection-return{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:88px;height:38px;padding:0 17px 0 14px;overflow:hidden;border:1px solid color-mix(in srgb,var(--dialogue-border,#d8bd8a) 68%,transparent);border-radius:999px;background:linear-gradient(180deg,rgba(21,27,35,.82),rgba(6,9,14,.92));color:#f7ead0;font:600 13px/1 'Noto Sans SC','Microsoft YaHei',sans-serif;letter-spacing:.1em;cursor:pointer;backdrop-filter:blur(12px) saturate(1.15);box-shadow:inset 0 1px rgba(255,255,255,.13),0 9px 28px rgba(0,0,0,.45);transition:transform .18s ease,border-color .18s ease,background .18s ease}
.inspection-return::before{content:'';flex:0 0 auto;width:9px;height:9px;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .18s ease}
.inspection-return::after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.15) 48%,transparent 74%);transform:translateX(-110%);transition:transform .4s ease}
.inspection-return:hover,.inspection-return:focus-visible{color:#fff;border-color:var(--dialogue-border,#d8bd8a);background:linear-gradient(180deg,rgba(67,51,30,.92),rgba(19,15,10,.96));outline:none}
.inspection-return:hover::before,.inspection-return:focus-visible::before{transform:translateX(-3px) rotate(45deg)}.inspection-return:hover::after,.inspection-return:focus-visible::after{transform:translateX(110%)}
.inspection-floating .inspection-return:hover,.inspection-floating .inspection-return:focus-visible{transform:translateY(-1px) translateZ(90px)}
.canvas-portrait .inspection-return{min-width:76px;height:34px;padding:0 14px 0 12px;font-size:12px}
@media(max-height:600px) and (orientation:landscape){.inspection-return{min-width:72px;height:32px;padding:0 13px 0 11px;font-size:11px}}

/* HOLOGRAM_SCAN_ENTRANCE_V1 */
.has-hologram-intro{overflow:hidden!important;background:radial-gradient(circle at 50% 82%,rgba(171,237,255,.2),transparent 32%),rgba(2,5,9,.66)!important}
.inspection-card-pending{opacity:0!important;pointer-events:none!important;filter:blur(9px) brightness(1.8)!important;transform:translate(-50%,-38%) perspective(950px) rotateX(18deg) scale(.58)!important}
.inspection-card-revealed{animation:holoCardReveal .52s cubic-bezier(.16,.82,.24,1) both!important}
.hologram-scan-intro{position:absolute;inset:0;z-index:28;pointer-events:none;perspective:900px;overflow:hidden}
.holo-disc{position:absolute;left:50%;bottom:5%;width:min(38vw,280px);aspect-ratio:1;transform:translateX(-50%) rotateX(68deg);border:2px solid rgba(212,250,255,.92);border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 12%,rgba(204,247,255,.44) 12.6% 13.2%,transparent 13.8% 21%),conic-gradient(from 15deg,transparent 0 8%,rgba(221,252,255,.72) 9% 11%,transparent 12% 25%,rgba(203,244,255,.58) 26% 28%,transparent 29% 100%);box-shadow:0 0 18px rgba(199,244,255,.9),0 0 56px rgba(114,219,255,.55),inset 0 0 25px rgba(208,250,255,.62);animation:holoDiscSpin .9s linear infinite,holoDiscRise .72s cubic-bezier(.2,.75,.2,1) both}
.holo-disc::before,.holo-disc::after{content:'';position:absolute;border-radius:50%;inset:18%;border:1px dashed rgba(220,253,255,.86);box-shadow:0 0 12px rgba(177,236,255,.75)}.holo-disc::after{inset:36%;border-style:solid;background:radial-gradient(circle,rgba(255,255,255,.95) 0 6%,rgba(169,233,255,.55) 7% 23%,transparent 25%)}
.holo-beam{position:absolute;left:50%;bottom:8%;width:min(48vw,360px);height:64%;transform:translateX(-50%);clip-path:polygon(41% 100%,59% 100%,86% 0,14% 0);background:linear-gradient(90deg,transparent,rgba(183,238,255,.12) 28%,rgba(226,252,255,.34) 50%,rgba(177,234,255,.12) 72%,transparent);filter:blur(1px);animation:holoBeamIgnite .75s ease-out both}
.holo-grid{position:absolute;left:50%;bottom:9%;width:min(62vw,460px);height:58%;transform:translateX(-50%);background:repeating-linear-gradient(0deg,transparent 0 17px,rgba(194,244,255,.16) 18px 19px),repeating-linear-gradient(90deg,transparent 0 27px,rgba(194,244,255,.11) 28px 29px);mask-image:linear-gradient(transparent,rgba(0,0,0,.8) 42%,#000);opacity:.55;clip-path:polygon(22% 100%,78% 100%,92% 0,8% 0);animation:holoGridScan .92s ease-out both}
.hologram-scan-intro span{position:absolute;left:50%;bottom:10%;transform:translateX(-50%);color:rgba(229,252,255,.95);font:600 11px/1 'Noto Sans SC','Microsoft YaHei',sans-serif;letter-spacing:.34em;text-indent:.34em;text-shadow:0 0 10px rgba(185,239,255,.95);animation:holoTextBlink .55s steps(2,end) infinite}
.hologram-scan-intro.is-complete{animation:holoIntroLeave .36s ease .08s forwards}
@keyframes holoDiscSpin{to{rotate:0 0 1 360deg}}@keyframes holoDiscRise{from{opacity:0;scale:.42;filter:blur(8px)}to{opacity:1;scale:1;filter:blur(0)}}@keyframes holoBeamIgnite{from{opacity:0;scale:.15 0;transform-origin:50% 100%}45%{opacity:.95}to{opacity:.72;scale:1 1}}@keyframes holoGridScan{from{opacity:0;transform:translateX(-50%) translateY(42%)}to{opacity:.55;transform:translateX(-50%) translateY(0)}}@keyframes holoTextBlink{50%{opacity:.45}}@keyframes holoIntroLeave{to{opacity:0;filter:blur(5px);visibility:hidden}}@keyframes holoCardReveal{0%{opacity:0;filter:blur(10px) brightness(2);transform:translate(-50%,-35%) perspective(950px) rotateX(20deg) scale(.58)}60%{opacity:1;filter:blur(0) brightness(1.25);transform:translate(-50%,-52%) perspective(950px) rotateX(-2deg) scale(1.025)}100%{opacity:1;filter:none}}
.canvas-portrait .holo-disc{width:min(58vw,260px);bottom:7%}.canvas-portrait .holo-beam{width:72vw;height:58%;bottom:10%}.canvas-portrait .holo-grid{width:82vw;height:54%;bottom:10%}.canvas-portrait .hologram-scan-intro span{bottom:12%}
@media(prefers-reduced-motion:reduce){.hologram-scan-intro{display:none}.inspection-card-pending{opacity:1!important;filter:none!important;transform:none!important}.inspection-card-revealed{animation:none!important}}

/* HOTSPOT_HOLD_SCAN_V1 */
.scene-hotspot.hold-hotspot{--hold-progress:0;touch-action:none;user-select:none;-webkit-user-select:none;background:rgba(6,18,26,.3);box-shadow:0 0 0 1px rgba(189,239,255,.16),0 0 24px rgba(123,218,255,.13)}
.scene-hotspot.hold-hotspot::before,.scene-hotspot.hold-hotspot::after{animation:none}
.hold-progress{position:absolute;inset:7%;display:grid;place-items:center;border-radius:50%;background:conic-gradient(from -90deg,rgba(211,250,255,.98) calc(var(--hold-progress)*1turn),rgba(173,232,255,.12) 0);filter:drop-shadow(0 0 7px rgba(161,231,255,.8));pointer-events:none}
.hold-progress::before{content:'';position:absolute;inset:7%;border-radius:50%;background:radial-gradient(circle,rgba(182,239,255,.24),rgba(4,14,21,.86) 64%);border:1px solid rgba(211,250,255,.4)}
.hold-progress em{position:relative;width:26%;aspect-ratio:1;border-radius:50%;background:#e9fdff;box-shadow:0 0 12px 5px rgba(166,231,255,.68)}
.hold-hotspot.is-holding{scale:1.06}.hold-hotspot.is-holding .hold-progress{animation:holdScannerPulse .7s ease-in-out infinite alternate}.hold-hotspot.hold-complete .hold-progress{background:#ecfdff;animation:holdCompleteFlash .32s ease-out both}
.hold-hotspot.is-rewinding .hold-progress{transition:background .05s linear}
@keyframes holdScannerPulse{to{filter:drop-shadow(0 0 13px rgba(180,241,255,1))}}@keyframes holdCompleteFlash{50%{scale:1.25;box-shadow:0 0 35px rgba(205,249,255,.95)}to{opacity:0;scale:1.55}}
.hotspot-hold-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:8px 0;padding:9px;border:1px solid rgba(126,188,214,.32);background:rgba(11,24,33,.72)}.hotspot-hold-settings label{margin:0!important}.hotspot-hold-settings .inspection-muted{grid-column:1/-1}
@media(max-width:700px){.hotspot-hold-settings{grid-template-columns:1fr}}

/* SCRATCH_REVEAL_RUNTIME_V1 */
.scene-hotspot-layer:has(.scratch-reveal-canvas){z-index:9;background:transparent;pointer-events:auto;overflow:hidden}.scratch-reveal-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:auto;touch-action:none;cursor:grab;transition:opacity .52s ease,filter .52s ease}.scratch-reveal-canvas:active{cursor:grabbing}.scratch-reveal-canvas.scratch-complete{opacity:0;filter:blur(12px) brightness(1.2)}.scratch-reveal-status{position:absolute;left:50%;bottom:max(9%,calc(env(safe-area-inset-bottom) + 20px));transform:translateX(-50%);display:flex;align-items:center;gap:11px;padding:8px 14px;border:1px solid rgba(255,255,255,.36);border-radius:20px;background:rgba(6,9,12,.66);color:#fff;font:12px 'Noto Sans SC','Microsoft YaHei',sans-serif;letter-spacing:.06em;pointer-events:none;backdrop-filter:blur(9px);box-shadow:0 8px 25px rgba(0,0,0,.36);transition:.3s}.scratch-reveal-status b{font-weight:500}.scratch-reveal-status span{min-width:34px;color:#dff8ff;text-align:right}.scratch-reveal-status.is-complete{bottom:50%;transform:translate(-50%,50%) scale(1.08);border-color:rgba(215,248,255,.75);background:rgba(8,25,31,.78);box-shadow:0 0 34px rgba(151,231,255,.28)}.canvas-portrait .scratch-reveal-status{bottom:max(12%,calc(env(safe-area-inset-bottom) + 24px))}@media(prefers-reduced-motion:reduce){.scratch-reveal-canvas,.scratch-reveal-status{transition:none}}
/* CLUE_SEARCH_RUNTIME_V1 */
.scene-hotspot-layer.clue-search-layer{z-index:9;pointer-events:auto;overflow:hidden}.clue-search-lens{--lens-size:22%;--lock-duration:500ms;position:absolute;width:var(--lens-size);height:auto;aspect-ratio:1;transform:translate(-50%,-50%);padding:0;border:2px solid rgba(193,238,250,.72);border-radius:50%;background:radial-gradient(circle,rgba(171,229,244,.035),rgba(20,46,58,.12) 66%,rgba(130,215,239,.14));box-shadow:0 0 0 6px rgba(130,215,239,.07),inset 0 0 28px rgba(177,237,252,.11),0 12px 34px rgba(0,0,0,.38);cursor:grab;pointer-events:auto;touch-action:none;transition:left .25s ease,top .25s ease,transform .28s ease,opacity .28s ease,border-color .2s ease,box-shadow .2s ease}.clue-search-lens.is-dragging{cursor:grabbing;transition:border-color .2s ease,box-shadow .2s ease}.clue-search-lens i{position:absolute;inset:10%;border:1px dashed rgba(216,248,255,.56);border-radius:50%}.clue-search-lens i::before,.clue-search-lens i::after{content:'';position:absolute;left:50%;top:50%;background:rgba(223,250,255,.6);transform:translate(-50%,-50%)}.clue-search-lens i::before{width:32%;height:1px}.clue-search-lens i::after{width:1px;height:32%}.clue-search-lens b{position:absolute;inset:44%;border-radius:50%;background:#e9fcff;box-shadow:0 0 13px rgba(178,239,255,.8)}.clue-search-lens.is-near{border-color:#e6fcff;box-shadow:0 0 0 8px rgba(180,238,253,.13),0 0 38px rgba(137,225,250,.68),inset 0 0 34px rgba(195,243,255,.2)}.clue-search-lens.is-locking::after{content:'';position:absolute;inset:-8px;border:3px solid transparent;border-top-color:#edfdff;border-right-color:rgba(205,247,255,.74);border-radius:50%;animation:clueRuntimeLock var(--lock-duration) linear infinite}.clue-search-lens.is-found{pointer-events:none;transform:translate(-50%,-50%) scale(.26);opacity:.96;border-color:#fff;background:#effdff;box-shadow:0 0 48px 24px rgba(176,239,255,.88)}.clue-search-status{position:absolute;left:50%;bottom:max(8%,calc(env(safe-area-inset-bottom) + 16px));transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:8px 14px;border:1px solid rgba(175,223,237,.32);border-radius:20px;background:rgba(5,13,18,.68);color:#e6f7fb;font:12px 'Noto Sans SC','Microsoft YaHei',sans-serif;letter-spacing:.05em;pointer-events:none;backdrop-filter:blur(9px);transition:.25s}.clue-search-status em{color:#85c9de;font-style:normal}.clue-search-status.is-near{border-color:rgba(204,246,255,.7);box-shadow:0 0 24px rgba(134,220,245,.2)}.clue-search-status.is-found{bottom:50%;transform:translate(-50%,50%) scale(1.08);background:rgba(7,27,35,.82);border-color:#d8f7ff;box-shadow:0 0 35px rgba(145,227,250,.3)}.clue-search-status.is-found span{color:#fff}.clue-search-status.is-found em{color:#aeeaff}@keyframes clueRuntimeLock{to{transform:rotate(360deg)}}.canvas-portrait .clue-search-status{bottom:max(11%,calc(env(safe-area-inset-bottom) + 22px))}@media(prefers-reduced-motion:reduce){.clue-search-lens,.clue-search-status{transition:none}.clue-search-lens.is-locking::after{animation:none}}
/* CLUE_SEARCH_MAGNIFIER_V1 */
.clue-search-lens.is-magnifier{border:5px solid #b9a273;background:rgba(240,232,207,.07);box-shadow:0 0 0 2px #4d412b,inset 0 0 22px rgba(255,247,220,.18),0 12px 28px rgba(0,0,0,.42)}.clue-search-lens.is-magnifier::before{content:'';position:absolute;z-index:-1;width:52%;height:18%;left:79%;top:79%;border:3px solid #34291a;border-radius:0 13px 13px 0;background:linear-gradient(180deg,#a68c5d,#55452d 52%,#302519);box-shadow:0 4px 9px rgba(0,0,0,.38);transform:rotate(45deg);transform-origin:left center}.clue-search-lens.is-magnifier i{border:1px solid rgba(255,246,218,.5)}.clue-search-lens.is-magnifier b{background:#fff4cc;box-shadow:0 0 12px rgba(255,221,140,.75)}.clue-search-lens.is-magnifier.is-near{border-color:#f6d88b;box-shadow:0 0 0 3px #554529,0 0 34px rgba(255,208,104,.68),inset 0 0 28px rgba(255,236,177,.24)}
/* HOLOGRAM_HOLD_HOTSPOT_V1 */
.scene-hotspot.hologram-hold-hotspot{--holo-progress:0deg;width:176px;height:88px;aspect-ratio:auto;border:0;border-radius:50%;background:transparent;box-shadow:none;touch-action:none;user-select:none;-webkit-user-select:none}
.scene-hotspot.hologram-hold-hotspot::before,.scene-hotspot.hologram-hold-hotspot::after{display:none}
.hologram-hold-hotspot .holo-hotspot-disc{position:absolute;inset:5px;border:1px solid rgba(255,255,255,.58);border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.2) 0 5%,transparent 7% 27%,rgba(255,255,255,.12) 28% 29%,transparent 31% 49%,rgba(255,255,255,.08) 50% 51%,transparent 53%),radial-gradient(ellipse,rgba(232,246,250,.11),rgba(185,211,220,.035) 63%,transparent 73%);box-shadow:0 0 0 5px rgba(255,255,255,.025),0 0 20px rgba(230,248,252,.16),inset 0 0 20px rgba(255,255,255,.09);backdrop-filter:blur(2px);pointer-events:none;transition:.18s}
.hologram-hold-hotspot .holo-hotspot-disc::before{content:'';position:absolute;inset:-5px;border-radius:50%;background:conic-gradient(from -90deg,rgba(255,255,255,.98) 0 var(--holo-progress),rgba(255,255,255,.07) var(--holo-progress) 360deg);-webkit-mask:radial-gradient(ellipse,transparent 65%,#000 67% 72%,transparent 74%);mask:radial-gradient(ellipse,transparent 65%,#000 67% 72%,transparent 74%);filter:drop-shadow(0 0 5px rgba(255,255,255,.75))}
.hologram-hold-hotspot .holo-hotspot-disc::after{content:'';position:absolute;inset:29% 36%;border:1px solid rgba(255,255,255,.52);border-radius:50%;background:radial-gradient(ellipse,#fff 0 7%,transparent 10%);box-shadow:0 0 10px rgba(255,255,255,.18)}
.hologram-hold-hotspot .holo-hotspot-label{position:absolute;z-index:2;inset:31px 55px;color:rgba(255,255,255,.94);font:600 11px/26px 'Noto Sans SC','Microsoft YaHei',sans-serif;font-style:normal;letter-spacing:.14em;text-indent:.14em;text-shadow:0 0 8px rgba(255,255,255,.72);pointer-events:none}
.hologram-hold-hotspot .holo-hotspot-beam{position:absolute;z-index:-1;left:50%;bottom:50%;width:128px;height:205px;transform:translateX(-50%) scaleY(.02);transform-origin:50% 100%;clip-path:polygon(36% 100%,64% 100%,82% 0,18% 0);opacity:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.16) 42%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.16) 58%,transparent);filter:blur(8px) drop-shadow(0 0 18px rgba(255,255,255,.25));pointer-events:none}
.hologram-hold-hotspot.is-holding .holo-hotspot-disc{transform:scale(.97);filter:brightness(1.28);box-shadow:0 0 0 6px rgba(255,255,255,.04),0 0 28px rgba(240,252,255,.3),inset 0 0 24px rgba(255,255,255,.14)}
.hologram-hold-hotspot.hold-complete .holo-hotspot-disc{animation:holoHotspotComplete .58s ease both,holoHotspotLightHold 1.8s .58s ease-in-out infinite}.hologram-hold-hotspot.hold-complete .holo-hotspot-beam{animation:holoHotspotBeam .58s ease-out both,holoHotspotBeamHold 1.8s .58s ease-in-out infinite}
.canvas-portrait .scene-hotspot.hologram-hold-hotspot{width:160px;height:80px}.canvas-portrait .hologram-hold-hotspot .holo-hotspot-label{inset:27px 48px}
@keyframes holoHotspotComplete{40%{filter:brightness(1.75);transform:scale(1.05)}to{filter:brightness(1.1);transform:scale(.98)}}@keyframes holoHotspotBeam{0%{opacity:0;transform:translateX(-50%) scaleY(.02)}45%{opacity:.82}100%{opacity:.14;transform:translateX(-50%) scaleY(1)}}
/* INSPECTION_GALLERY_V1 */
.inspection-gallery-mode .inspection-media{overflow:hidden}.inspection-gallery{position:relative;width:100%;height:100%;overflow:hidden;background:#030405;touch-action:pan-y;user-select:none}.inspection-gallery-track{display:flex;width:100%;height:100%;transition:transform .38s cubic-bezier(.2,.72,.2,1);will-change:transform}.inspection-gallery-slide{flex:0 0 100%;width:100%;height:100%;object-fit:contain;background:#030405}.inspection-gallery-prev,.inspection-gallery-next{position:absolute;z-index:5;top:50%;width:44px;height:60px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.35);color:#fff;background:rgba(3,7,11,.56);font:300 38px/1 sans-serif;cursor:pointer;backdrop-filter:blur(8px)}.inspection-gallery-prev{left:14px}.inspection-gallery-next{right:14px}.inspection-gallery-prev:disabled,.inspection-gallery-next:disabled{opacity:.2;cursor:default}.inspection-gallery-footer{position:absolute;z-index:5;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:7px 12px;border-radius:20px;color:#fff;background:rgba(3,7,11,.62);font:12px 'Noto Sans SC','Microsoft YaHei',sans-serif;backdrop-filter:blur(8px)}.inspection-gallery-dots{display:flex;gap:7px}.inspection-gallery-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.34);cursor:pointer}.inspection-gallery-dots button.active{background:#fff;box-shadow:0 0 8px rgba(255,255,255,.8)}.inspection-gallery-caption{position:absolute;z-index:4;left:8%;right:8%;bottom:58px;margin:0;padding:10px 14px;color:#fff;background:linear-gradient(90deg,transparent,rgba(0,0,0,.65) 18%,rgba(0,0,0,.65) 82%,transparent);font:14px/1.6 'Noto Sans SC','Microsoft YaHei',sans-serif;text-align:center;text-shadow:0 2px 5px #000}.canvas-portrait .inspection-gallery-prev,.canvas-portrait .inspection-gallery-next{width:38px;height:54px}.canvas-portrait .inspection-gallery-prev{left:8px}.canvas-portrait .inspection-gallery-next{right:8px}.canvas-portrait .inspection-gallery-footer{bottom:max(14px,env(safe-area-inset-bottom))}
.gallery-editor-settings{margin:10px 0;padding:12px;border:1px solid rgba(121,176,208,.38);background:rgba(7,18,27,.76)}.gallery-editor-settings>b,.gallery-editor-settings>small{display:block}.gallery-editor-settings>b{color:#cdeeff}.gallery-editor-settings>small{margin:4px 0 10px;color:#8fa5b0}.gallery-editor-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,1fr) auto;gap:7px;align-items:end;margin:7px 0}.gallery-editor-row label{margin:0!important}.gallery-editor-actions{display:flex;gap:4px}.gallery-editor-actions button{min-width:34px;padding:7px}.add-gallery-image{width:100%;margin-top:8px}@media(max-width:720px){.gallery-editor-row{grid-template-columns:1fr}.gallery-editor-actions button{flex:1}}
/* CUSTOM_HOLOGRAM_IMAGE_V1 */
.hologram-hold-hotspot{--holo-image-reveal:0}
.hologram-hold-hotspot .holo-hotspot-image{position:absolute;z-index:0;left:calc(50% + var(--holo-image-x,0px));bottom:calc(50% + var(--holo-image-y,92px));width:var(--holo-image-size,100%);height:auto;max-width:none;transform:translate(-50%,18px) perspective(700px) rotateX(-5deg) scale(.82);transform-origin:50% 100%;opacity:0;filter:grayscale(.15) brightness(1.35) contrast(1.08) drop-shadow(0 0 var(--holo-image-glow,20px) rgba(235,250,255,.92)) drop-shadow(0 0 calc(var(--holo-image-glow,20px) * .55) rgba(190,232,255,.72));mix-blend-mode:screen;pointer-events:none;transition:opacity .12s linear,transform .18s ease;will-change:opacity,transform,filter}
.hologram-hold-hotspot.is-holding .holo-hotspot-image{transform:translate(-50%,calc(18px - 12px * var(--holo-image-reveal,0))) perspective(700px) rotateX(-3deg) scale(calc(.82 + .18 * var(--holo-image-reveal,0)))}
.hologram-hold-hotspot.hold-complete .holo-hotspot-image{opacity:var(--holo-image-opacity,.82);animation:holoCustomImageComplete .58s ease-out both}
@keyframes holoCustomImageComplete{0%{transform:translate(-50%,6px) perspective(700px) rotateX(-3deg) scale(1);filter:brightness(1.35) drop-shadow(0 0 var(--holo-image-glow,20px) rgba(235,250,255,.92))}48%{transform:translate(-50%,-7px) perspective(700px) rotateX(0) scale(1.06);filter:brightness(1.8) drop-shadow(0 0 calc(var(--holo-image-glow,20px) * 1.35) #fff)}100%{transform:translate(-50%,-2px) perspective(700px) rotateX(0) scale(1);filter:brightness(1.42) drop-shadow(0 0 var(--holo-image-glow,20px) rgba(235,250,255,.95))}}

/* HOLOGRAM_LIGHT_PERSISTS_WITH_IMAGE_V1 */
@keyframes holoHotspotLightHold{0%,100%{filter:brightness(1.38);box-shadow:0 0 0 7px rgba(255,255,255,.07),0 0 32px rgba(240,252,255,.42),inset 0 0 26px rgba(255,255,255,.18)}50%{filter:brightness(1.65);box-shadow:0 0 0 9px rgba(255,255,255,.1),0 0 46px rgba(240,252,255,.58),inset 0 0 32px rgba(255,255,255,.24)}}@keyframes holoHotspotBeamHold{0%,100%{opacity:.38;filter:blur(8px) drop-shadow(0 0 20px rgba(255,255,255,.32))}50%{opacity:.58;filter:blur(7px) drop-shadow(0 0 30px rgba(255,255,255,.5))}}

/* FLOATING_MEDIA_CONTAINMENT_V1 */
.inspection-floating .inspection-media{position:absolute;inset:0;width:100%;height:100%;overflow:hidden!important;transform-style:flat;background:rgba(3,5,7,.9)}.inspection-floating .inspection-content{display:block;box-sizing:border-box;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;transform:translateZ(2px);background:transparent;box-shadow:none}
