:root{color:#e9e3d3;font-synthesis:none;text-rendering:optimizelegibility;background:#111719;font-family:Avenir Next,PingFang SC,Noto Sans CJK SC,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:0;height:100%;min-height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--ui-focus);outline-offset:3px}.game-shell{--ui-shell:var(--shell);--ui-text:var(--ink);--ui-muted:var(--muted);--ui-rail:var(--panel-solid);--ui-rail-solid:var(--panel-solid);--ui-border:var(--line);--ui-active:var(--accent);--ui-active-text:var(--accent-ink);--ui-shadow:var(--shadow);--ui-overlay:var(--overlay);--ui-focus:var(--focus);--ui-safe:var(--safe);--ui-button:var(--button);--ui-button-hover:var(--button-hover);--ui-dock:var(--dock);--ui-dock-strong:var(--dock-strong);--ui-dock-text:var(--dock-text);--ui-dock-muted:var(--dock-muted);--ui-danger:var(--danger);--ui-danger-text:var(--danger-ink);--ui-sheet:var(--paper);width:100%;height:100dvh;min-height:0;padding-top:env(safe-area-inset-top);color:var(--ui-text);background-color:var(--ui-shell);isolation:isolate;transition:color var(--theme-transition-duration,.42s) ease, background-color var(--theme-transition-duration,.42s) ease;grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:relative;overflow:hidden}.game-shell:before{content:"";z-index:-1;pointer-events:none;opacity:.4;background:radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--ui-text) 5%, transparent) 0 1px, transparent 1.5px), linear-gradient(115deg, transparent 42%, color-mix(in srgb, var(--ui-text) 3%, transparent) 43%, transparent 44%);background-size:23px 27px,180px 180px;position:absolute;inset:0}.game-shell[data-theme=night]:before{opacity:.6;background:linear-gradient(color-mix(in srgb, var(--ui-border) 35%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ui-border) 35%, transparent) 1px, transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(#000,#0000 72%);mask-image:linear-gradient(#000,#0000 72%)}.hud{z-index:20;border:1px solid var(--ui-border);min-height:58px;color:var(--ui-text);background:var(--ui-rail);box-shadow:0 8px 22px var(--ui-shadow), inset 0 1px 0 color-mix(in srgb, var(--ui-text) 10%, transparent);border-radius:10px;grid-template-columns:minmax(250px,1fr) auto;align-items:center;gap:14px;margin:12px 16px 0;padding:6px 8px 6px 12px;display:grid;position:relative}.game-shell[data-theme=day] .hud{border-bottom:2px solid color-mix(in srgb, var(--ui-active) 34%, var(--ui-border))}.game-shell[data-theme=night] .hud{box-shadow:0 8px 28px var(--ui-shadow), inset 0 1px 0 #ffffff0b, inset 0 -2px 0 #0c1010}.hud-identity,.hud-actions,.quick-actions,.desktop-actions,.view-actions{align-items:center;display:flex}.hud-identity{gap:14px;min-width:0}.brand-lockup{min-width:0;color:var(--ui-text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;padding:2px 8px 2px 2px;display:inline-flex}.brand-lockup:hover{background:var(--ui-button-hover)}.brand-mark{width:34px;height:34px;color:var(--ui-active-text);border:1px solid color-mix(in srgb, var(--ui-active) 80%, var(--ui-border));background:var(--ui-active);border-radius:7px;flex:none;place-content:center;display:grid;box-shadow:inset 0 1px #ffffff2e}.brand-mark svg{width:20px;height:20px}.brand-name strong,.brand-name small{white-space:nowrap;display:block}.brand-name strong{letter-spacing:.2em;font-size:10px}.brand-name small{letter-spacing:.08em;margin-top:1px;font-family:Songti SC,STSong,Georgia,serif;font-size:13px}.level-readout{border-left:1px solid var(--ui-border);min-width:118px;height:34px;color:var(--ui-muted);grid-template-columns:1fr auto auto;align-items:center;gap:7px;padding-inline:13px;display:grid}.level-readout span,.level-readout small{letter-spacing:.13em;white-space:nowrap;font-size:9px;font-weight:700}.level-readout strong{color:var(--ui-active);font-variant-numeric:tabular-nums;font-family:Avenir Next Condensed,Arial Narrow,sans-serif;font-size:18px}.hud-actions{justify-content:flex-end;gap:8px}.quick-actions,.desktop-actions,.view-actions{gap:5px}.desktop-actions,.view-actions{border-left:1px solid var(--ui-border);padding-left:8px}.control-button,.camera-toggle{min-width:40px;height:40px;color:var(--ui-text);background:var(--ui-button);cursor:pointer;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 10px;transition:color .16s,background-color .16s,border-color .16s,transform .16s;display:inline-flex}.control-button svg{flex:none;width:18px;height:18px}.control-label{letter-spacing:.05em;white-space:nowrap;font-size:10px;font-weight:700}.control-button:hover,.camera-toggle:hover{border-color:var(--ui-border);background:var(--ui-button-hover)}.control-button:active,.camera-toggle:active,.tray-tools button:active{transform:translateY(1px)}.hint-control{color:var(--ui-active)}.sound-control{padding-inline:8px}.camera-toggle{gap:2px;min-width:82px;padding:3px}.camera-toggle span{min-width:35px;height:32px;color:var(--ui-muted);letter-spacing:.06em;border-radius:5px;place-content:center;font-family:Avenir Next Condensed,Arial Narrow,sans-serif;font-size:11px;font-weight:800;display:grid}.camera-toggle span.active{color:var(--ui-active-text);background:var(--ui-active);box-shadow:inset 0 1px #ffffff2e}.theme-toggle{min-width:62px}.utility-menu{position:relative}.utility-trigger{display:none}.utility-popover{z-index:60;width:min(276px,100vw - 24px);color:var(--ui-text);border:1px solid var(--ui-border);background:var(--ui-sheet);box-shadow:0 18px 48px var(--ui-shadow), inset 0 1px 0 color-mix(in srgb, var(--ui-text) 8%, transparent);border-radius:10px;padding:12px;position:absolute;top:calc(100% + 10px);right:0}.utility-heading{margin:1px 36px 10px 2px}.utility-heading span,.utility-heading small{display:block}.utility-heading span{font-family:Songti SC,STSong,Georgia,serif;font-size:16px}.utility-heading small{color:var(--ui-muted);letter-spacing:.11em;margin-top:2px;font-size:9px}.utility-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.utility-actions button{min-height:48px;color:var(--ui-text);border:1px solid var(--ui-border);background:var(--ui-button);cursor:pointer;text-align:left;border-radius:7px;align-items:center;gap:8px;padding:8px 9px;display:flex}.utility-actions button:last-child{grid-column:1/-1}.utility-actions button:hover{background:var(--ui-button-hover)}.utility-actions svg{width:18px;height:18px;color:var(--ui-active)}.utility-actions span{font-size:11px;font-weight:700}.utility-close{width:44px;height:44px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;place-content:center;display:grid;position:absolute;top:4px;right:4px}.utility-close svg{width:18px;height:18px}.scene-wrap{z-index:1;isolation:isolate;min-width:0;min-height:0;margin:0;position:relative;overflow:hidden}.game-shell[data-camera-mode="2d"] .scene-wrap{margin-inline:12px}.scene-wrap canvas{touch-action:none;display:block;width:100%!important;height:100%!important}.clue-legend{left:max(20px, env(safe-area-inset-left));color:var(--ui-muted);letter-spacing:.08em;pointer-events:none;gap:14px;font-size:9px;display:flex;position:absolute;bottom:14px}.clue-legend span{border-left:2px solid var(--ui-active);padding-left:8px}.conflict-toast{z-index:8;max-width:calc(100% - 28px);color:var(--ui-danger-text);border:1px solid color-mix(in srgb, var(--ui-danger) 70%, var(--ui-danger-text));background:var(--ui-danger);box-shadow:0 10px 26px var(--ui-shadow);letter-spacing:.04em;white-space:nowrap;border-radius:7px;padding:9px 13px;font-size:11px;font-weight:700;animation:.2s both toast-in;position:absolute;top:14px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}}.clue-html{-webkit-user-select:none;user-select:none;pointer-events:none!important}.clue-html span{width:28px;height:28px;color:var(--clue);text-shadow:0 2px 8px color-mix(in srgb, currentColor 36%, transparent);transform:scale(var(--clue-scale,1));place-content:center;font:700 17px Georgia,serif;display:grid}.piece-tray{z-index:18;width:min(650px,100% - 32px);min-height:82px;margin:-4px 16px max(12px, env(safe-area-inset-bottom));color:var(--ui-dock-text);border:1px solid color-mix(in srgb, var(--ui-dock-text) 20%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--ui-dock) 92%, white), var(--ui-dock-strong));box-shadow:0 12px 28px var(--ui-shadow), inset 0 1px 0 #ffffff14, inset 0 -2px 0 #00000059;border-radius:10px;grid-template-columns:156px minmax(0,1fr);justify-self:center;align-items:center;gap:8px;padding:8px;display:grid;position:relative}.game-shell[data-theme=day] .piece-tray{box-shadow:0 10px 24px var(--ui-shadow), inset 0 1px 0 #ffffff1f, inset 0 -3px 0 #1d211a;border-color:#77674d}.tray-label{border-right:1px solid color-mix(in srgb, var(--ui-dock-text) 16%, transparent);padding:3px 10px}.tray-label span,.tray-label small{display:block}.tray-label span{letter-spacing:.12em;font-family:Songti SC,STSong,Georgia,serif;font-size:15px}.tray-label small{color:var(--ui-dock-muted);margin-top:4px;font-size:9px;line-height:1.4}.tray-tools{grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;min-width:0;display:grid}.tray-tools button{min-width:0;min-height:64px;color:var(--ui-dock-muted);border:1px solid color-mix(in srgb, var(--ui-dock-text) 14%, transparent);cursor:pointer;background:#ffffff06;border-radius:7px;grid-template-rows:28px auto;place-items:center;gap:2px;padding:7px 6px;transition:color .16s,border-color .16s,background-color .16s,transform .16s;display:grid;position:relative;box-shadow:inset 0 1px #ffffff09}.tray-tools button:hover:not(:disabled){color:var(--ui-dock-text);border-color:color-mix(in srgb, var(--ui-dock-text) 30%, transparent);background:#ffffff0d}.tray-tools button.selected{color:var(--ui-dock-text);border-color:var(--ui-active);background:color-mix(in srgb, var(--ui-active) 15%, var(--ui-dock-strong));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ui-active) 28%, transparent)}.tray-tools button.selected:after{content:"";background:var(--ui-active);border-radius:2px;height:2px;position:absolute;bottom:4px;left:14px;right:14px}.game-shell[data-theme=night] .tray-tools button.selected:after{box-shadow:0 0 7px color-mix(in srgb, var(--ui-active) 78%, transparent)}.tray-tools button:disabled{opacity:.42;cursor:not-allowed}.tray-tools b{letter-spacing:.04em;white-space:nowrap;min-width:0;font-size:10px;line-height:1}.tray-tools b small{color:inherit;font-size:9px}.tool-icon{height:26px;color:var(--ui-active);justify-content:center;align-items:center;display:flex}.tool-icon svg{width:25px;height:25px}.double-tent{transform-origin:50%;gap:0}.double-tent svg{width:19px;height:19px;margin-inline:-2px}.double-tent.vertical{transform:rotate(90deg)}.exclude-tool{color:#91a484}.selected .tool-icon{color:var(--ui-active)}.hint-panel,.tutorial-card,.completion-card{z-index:40;width:min(410px,100% - 32px);color:var(--ui-text);border:1px solid var(--ui-border);background:var(--ui-sheet);box-shadow:0 18px 48px var(--ui-shadow), inset 0 1px 0 color-mix(in srgb, var(--ui-text) 8%, transparent);border-radius:10px;position:absolute;left:50%;transform:translate(-50%)}.game-shell[data-theme=day] .hint-panel,.game-shell[data-theme=day] .tutorial-card,.game-shell[data-theme=day] .completion-card{border-top:3px solid #657052}.game-shell[data-theme=night] .hint-panel,.game-shell[data-theme=night] .tutorial-card,.game-shell[data-theme=night] .completion-card{border-left:3px solid var(--ui-active);box-shadow:0 20px 56px var(--ui-shadow), inset 0 1px 0 #ffffff0b}.hint-panel{bottom:max(102px, calc(90px + env(safe-area-inset-bottom)));padding:18px 44px 17px 18px;animation:.22s both panel-up}.hint-panel>button[aria-label]{width:44px;height:44px;color:var(--ui-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;place-content:center;display:grid;position:absolute;top:3px;right:4px}.hint-panel>button[aria-label] svg{width:19px;height:19px}.hint-step,.tutorial-card>span{color:var(--ui-active);letter-spacing:.11em;align-items:center;gap:6px;font-size:10px;font-weight:800;display:flex}.hint-step svg,.tutorial-card>span svg{width:15px;height:15px}.hint-panel h2{margin:8px 0 5px;font-family:Songti SC,STSong,Georgia,serif;font-size:21px;font-weight:600}.hint-panel p{color:var(--ui-muted);margin:0;font-size:13px;line-height:1.55}.hint-deeper,.tutorial-card button,.next-level{min-height:42px;color:var(--ui-active-text);border:1px solid color-mix(in srgb, var(--ui-active) 80%, var(--ui-border));background:var(--ui-active);cursor:pointer;border-radius:7px;padding:9px 13px;font-size:11px;font-weight:800}.hint-deeper{margin-top:13px}.tutorial-card{bottom:max(102px, calc(90px + env(safe-area-inset-bottom)));padding:17px 18px;animation:.22s both panel-up}.tutorial-card p{color:var(--ui-text);margin:8px 0 12px;font-size:13px;line-height:1.55}@keyframes panel-up{0%{opacity:0;transform:translate(-50%,10px)}}.completion-card{text-align:center;padding:24px;animation:.32s cubic-bezier(.2,.8,.2,1) both complete-in;top:50%;transform:translate(-50%,-50%)}.completion-mark{width:50px;height:50px;color:var(--ui-active);place-content:center;margin:0 auto 10px;display:grid}.completion-mark svg{width:44px;height:44px}.completion-card small{color:var(--ui-active);letter-spacing:.18em;font-size:9px;font-weight:800}.completion-card h2{margin:6px 0;font-family:Songti SC,STSong,Georgia,serif;font-size:27px;font-weight:600}.completion-card p{max-width:34ch;color:var(--ui-muted);margin:0 auto;font-size:12px;line-height:1.55}.next-level{margin-top:14px}.next-level:disabled{opacity:.45;cursor:not-allowed}.feedback-row{justify-content:center;gap:5px;margin-top:13px;display:flex}.feedback-row button{min-height:38px;color:var(--ui-text);border:1px solid var(--ui-border);background:var(--ui-button);cursor:pointer;border-radius:7px;padding:7px 9px;font-size:10px}@keyframes complete-in{0%{opacity:0;transform:translate(-50%,-47%)scale(.97)}}.modal-backdrop{z-index:80;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));background:var(--ui-overlay);place-content:center;display:grid;position:absolute;inset:0}.level-map{overscroll-behavior:contain;width:min(760px,100vw - 36px);max-height:min(760px,100dvh - 36px);color:var(--ui-text);border:1px solid var(--ui-border);background:var(--ui-rail-solid);box-shadow:0 26px 76px var(--ui-shadow), inset 0 1px 0 color-mix(in srgb, var(--ui-text) 8%, transparent);border-radius:10px;padding:22px;overflow:auto}.game-shell[data-theme=night] .level-map{border-top:3px solid var(--ui-active)}.game-shell[data-theme=day] .level-map{border-top:3px solid #657052}.level-map header{justify-content:space-between;align-items:start;display:flex}.level-map header span{color:var(--ui-active);letter-spacing:.17em;font-size:9px;font-weight:800}.level-map h2{margin:4px 0 17px;font-family:Songti SC,STSong,Georgia,serif;font-size:27px;font-weight:600}.level-map header button{width:44px;height:44px;color:var(--ui-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;place-content:center;display:grid}.level-map header button:hover{border-color:var(--ui-border);background:var(--ui-button-hover)}.level-map header svg{width:22px;height:22px}.chapter-labels{color:var(--ui-muted);letter-spacing:.09em;grid-template-columns:5fr 15fr 10fr;margin-bottom:8px;font-size:9px;display:grid}.level-grid{grid-template-columns:repeat(10,minmax(48px,1fr));gap:7px;display:grid}.level-grid button{min-width:48px;min-height:50px;color:var(--ui-text);border:1px solid var(--ui-border);background:var(--ui-button);cursor:pointer;border-radius:7px;place-content:center;display:grid}.level-grid button:hover:not(:disabled){background:var(--ui-button-hover)}.level-grid button strong,.level-grid button small{display:block}.level-grid button strong{font-variant-numeric:tabular-nums;font-family:Avenir Next Condensed,Arial Narrow,sans-serif;font-size:15px;font-weight:700}.level-grid button small{min-height:12px;color:var(--ui-muted);place-content:center;font-size:8px;display:grid}.level-grid button small svg{width:12px;height:12px}.level-grid button.current{outline:2px solid var(--ui-active);outline-offset:2px}.level-grid button.done{color:var(--ui-active-text);border-color:var(--ui-active);background:var(--ui-active)}.level-grid button.done small{color:var(--ui-active-text)}.level-grid button:disabled{opacity:.34;cursor:not-allowed}.accessible-grid{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:fixed;overflow:hidden}@media (width<=900px){.hud{grid-template-columns:auto minmax(0,1fr);gap:4px;min-height:54px;margin:8px 8px 0;padding:4px}.hud-identity{gap:4px}.brand-lockup{min-width:44px;min-height:44px;padding-right:2px}.brand-mark{width:40px;height:40px}.brand-name{display:none}.level-readout{border-left:0;min-width:0;height:36px;padding:0 6px;display:block}.level-readout span{margin-top:4px;font-size:8px;display:block}.level-readout small{display:none}.level-readout strong{margin-top:-1px;font-size:13px;display:block}.hud-actions{gap:4px;min-width:0}.desktop-actions{display:none}.quick-actions,.view-actions{gap:4px}.view-actions{padding-left:4px}.control-button,.camera-toggle{min-width:44px;height:44px}.quick-actions .control-label{display:none}.quick-actions .control-button{padding:0}.camera-toggle{min-width:76px;padding:3px}.camera-toggle span{min-width:32px;height:36px}.theme-toggle{min-width:44px;padding:0}.theme-toggle .control-label{display:none}.utility-trigger{padding:0;display:inline-flex}.scene-wrap{margin:0}.game-shell[data-camera-mode="2d"] .scene-wrap{margin:0 12px}.clue-legend{bottom:8px;left:14px}.piece-tray{width:calc(100% - 16px);min-height:76px;margin:-2px 8px max(8px, env(safe-area-inset-bottom));grid-template-columns:1fr;padding:6px}.tray-label{display:none}.tray-tools{gap:5px}.tray-tools button{min-height:62px}.hint-panel,.tutorial-card{bottom:max(94px, calc(84px + env(safe-area-inset-bottom)))}.hint-deeper,.tutorial-card button,.next-level,.feedback-row button{min-height:44px}.level-map{padding:16px}.level-grid{grid-template-columns:repeat(5,minmax(48px,1fr));gap:6px}.chapter-labels{display:none}}@media (width<=430px){.game-shell:before{opacity:.24}.hud{margin-inline:6px}.brand-mark{width:38px;height:38px}.level-readout{padding-inline:3px}.control-button,.camera-toggle{height:44px}.quick-actions,.view-actions,.hud-actions{gap:2px}.view-actions{padding-left:2px}.camera-toggle{min-width:72px}.camera-toggle span{min-width:30px}.clue-legend{display:none}.conflict-toast{font-size:10px;top:8px}.piece-tray{width:calc(100% - 12px);margin-inline:6px}.tray-tools button{padding-inline:3px}.tray-tools b{letter-spacing:0;font-size:9px}.tool-icon svg{width:23px;height:23px}.hint-panel,.tutorial-card{width:calc(100% - 24px)}.completion-card{width:calc(100% - 24px);padding:21px 18px}.modal-backdrop{padding:12px}.level-map{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.level-grid{grid-template-columns:repeat(5,minmax(44px,1fr))}.level-grid button{min-width:44px;min-height:48px}}@media (width<=370px){.hud{gap:2px}.brand-lockup{display:none}.level-readout{min-width:42px;padding-left:5px}.hud-actions{justify-self:end}.camera-toggle{min-width:70px}.piece-tray{padding:5px}.tray-tools{gap:4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.game-shell:before{background-attachment:initial}}.game-shell[data-reduced-motion=true] *,.game-shell[data-reduced-motion=true] :before,.game-shell[data-reduced-motion=true] :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
