.scene-axis-label{color:var(--text-secondary);letter-spacing:.06em;white-space:nowrap;pointer-events:none;align-items:center;gap:7px;font-size:14px;font-weight:600;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.scene-axis-tick{width:18px;height:18px;color:var(--cube-selected);stroke-width:2.5px}.scene-axis-label[data-previewing=true] .scene-axis-tick{display:none}.scene-inline-feedback,.scene-wall-hint,.scene-completion{z-index:2;visibility:hidden;pointer-events:none;max-width:260px;position:absolute}.scene-inline-feedback,.scene-wall-hint{color:var(--text-secondary);text-align:center;overflow-wrap:anywhere;background:#fcfcfdf0;border:1px solid #91b9e047;border-radius:8px;margin:0;padding:7px 11px;font-size:12px;line-height:1.5;box-shadow:0 2px 8px #34404e0a}.scene-inline-feedback[data-tone=error]{color:var(--interaction-invalid);border-color:#b85f543d}.scene-wall-hint{color:var(--text-accent);white-space:nowrap;font-weight:600}.scene-wall-hint:before{content:"";vertical-align:2px;background:currentColor;border-radius:50%;width:5px;height:5px;margin-right:6px;display:inline-block}.scene-height-cue{visibility:hidden;z-index:2;pointer-events:none;color:var(--text-accent);white-space:nowrap;background:#fcfcfde0;border-radius:5px;padding:3px 6px;font-size:11px;line-height:1.5;position:absolute}.scene-completion{max-width:290px;color:var(--text-primary);white-space:nowrap;align-items:center;gap:15px;display:flex}.scene-completion-status{align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.scene-completion-status svg{width:18px;height:18px;color:var(--cube-selected);stroke-width:2.5px}.scene-completion-action{background:var(--bg-surface);min-width:112px;min-height:48px;color:var(--text-primary);font:inherit;cursor:pointer;pointer-events:auto;touch-action:manipulation;border:1px solid #5296d947;border-radius:10px;justify-content:center;align-items:center;gap:12px;padding:0 17px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 3px 10px #34404e0a}.scene-completion-action svg{width:15px;height:15px;color:var(--cube-selected)}.scene-completion-action:hover{border-color:var(--cube-selected);background:#f0f6fc}.scene-completion-action:focus-visible{outline:2px solid var(--cube-selected);outline-offset:4px}.scene-completion-action:active{background:#e5eff9}.scene-error{text-align:center;color:var(--text-secondary);pointer-events:none;font-size:14px;position:absolute;top:45%;left:15%;right:15%}@media (max-width:820px){.scene-inline-feedback{max-width:225px}.scene-completion{gap:12px}}@media (max-width:699px),(max-height:540px) and (orientation:landscape){.scene-inline-feedback,.scene-wall-hint{max-width:210px;padding:6px 9px;font-size:11px}.scene-completion{gap:9px;max-width:232px}.scene-completion-status{font-size:12px}.scene-completion-action{min-width:104px;min-height:44px;padding:0 13px;font-size:12px}.scene-axis-tick{width:16px;height:16px}}:root{--bg-canvas:#eff0f2;--bg-surface:#fcfcfd;--scene-white:#f0f0f2;--text-primary:#172335;--text-secondary:#566173;--text-muted:#626d7e;--cube-primary:#91b9e0;--cube-selected:#5296d9;--text-accent:#306ca8;--interaction-preview:#83bdee;--interaction-invalid:#b85f54;--border-default:#dce0e7;--border-strong:#8996a9;--grid-line:#c1c8d2;--target-fill:#81786c;--target-recess:#ddd7ce;--target-covered:#737c77;--hatch-color:#b85f54;--surface-glass:#fcfcfddb;--button-dark:#1c2631;--font-display:"Songti SC","STSong","Noto Serif CJK SC",serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-button:8px;--radius-card:12px;--radius-panel:16px;--motion-fast:.14s;--motion-normal:.2s;--motion-camera:.32s;--shadow-float:0 14px 44px #232e3f13;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;color:var(--text-primary);background:var(--bg-canvas);font-variant-numeric:tabular-nums;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,system-ui,sans-serif}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0s;--motion-normal:0s;--motion-camera:0s}}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html,body,#root{width:100%;min-height:100%;margin:0}body{overscroll-behavior:none;overflow:hidden}button,input,select{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:background var(--motion-fast), color var(--motion-fast), opacity var(--motion-fast), border-color var(--motion-fast);border:0}button:disabled{cursor:default;opacity:.38}button:focus-visible,summary:focus-visible{outline:2px solid var(--text-accent);outline-offset:3px}button svg{flex:none}h1,h2,h3,p{margin:0}.app-shell{background:var(--bg-canvas);width:100%;height:100dvh;min-height:0}.app-content{width:100%;height:100%;position:relative}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.icon-button{border-radius:var(--radius-button);min-width:48px;min-height:48px;color:var(--text-secondary);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover:not(:disabled),.text-button:hover:not(:disabled){color:var(--text-primary);background:color-mix(in srgb, var(--border-default) 46%, transparent)}.text-button{border-radius:var(--radius-button);min-height:48px;color:var(--text-secondary);background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;display:inline-flex}.primary-button{background:var(--button-dark);min-width:112px;min-height:48px;color:var(--bg-surface);border-radius:var(--radius-button);justify-content:center;align-items:center;gap:24px;padding:0 22px;font-size:15px;display:inline-flex}.primary-button:hover:not(:disabled){background:var(--text-primary)}.brand-word{font-family:var(--font-display);letter-spacing:.13em;white-space:nowrap;font-size:36px;font-weight:500}.brand-small{font-size:26px}.home-page{background:var(--bg-surface);height:100%;position:relative;overflow:hidden}.hero-image{object-fit:cover;object-position:center;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.home-header{z-index:1;justify-content:space-between;align-items:center;height:110px;padding:0 56px;display:flex;position:relative}.home-edition{color:var(--text-muted);letter-spacing:.16em;font-size:11px}.home-header>div{align-items:center;gap:24px;display:flex}.home-side-note{color:var(--text-secondary);letter-spacing:.03em;font-size:12px;line-height:1.85}.home-copy{z-index:2;width:35%;position:absolute;top:22%;left:8%}.home-brand{font-family:var(--font-display);letter-spacing:.09em;font-size:clamp(86px,7.6vw,114px);font-weight:400;line-height:1.15}.brand-subtitle{letter-spacing:.36em;color:var(--text-primary);white-space:nowrap;margin-top:16px;font-size:12px}.home-rule{border-top:1px solid var(--text-secondary);width:25px;margin-top:35px;display:block}.home-tagline{color:var(--text-secondary);letter-spacing:.09em;margin-top:20px;font-size:18px;line-height:1.8}.home-start{border-radius:24px;justify-content:space-between;min-width:172px;margin-top:35px;padding:0 28px}.home-links{gap:4px;margin-top:12px;margin-left:-14px;display:flex}.home-links .text-button{font-size:13px}.home-footer{z-index:2;color:var(--text-muted);justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:29px;left:56px;right:56px}.home-sequence{align-items:center;gap:15px;font-size:12px;display:flex}.home-sequence i{color:var(--text-secondary);font-style:normal}.home-signature{letter-spacing:.1em;text-align:right;font-size:10px;line-height:1.55}.home-footer>.text-button{margin-left:30px;margin-right:auto;font-size:12px}.simple-header{flex:0 0 96px;justify-content:space-between;align-items:center;height:96px;padding:0 44px;display:flex}.levels-page{touch-action:pan-x pan-y pinch-zoom;background:radial-gradient(ellipse at 50% 30%, var(--bg-surface), var(--bg-canvas) 82%);flex-direction:column;height:100%;display:flex;overflow-y:auto}.levels-content{width:min(840px,100% - 112px);margin:35px auto 0}.levels-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.section-eyebrow{color:var(--text-muted);letter-spacing:.19em;margin-bottom:10px;font-size:11px}.levels-heading h1{letter-spacing:.02em;font-size:28px;font-weight:500}.chapter-completion{color:var(--text-muted);padding-bottom:4px;font-size:12px}.chapter-selector{border-bottom:1px solid var(--border-default);grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.chapter-selector>button{text-align:left;min-width:48px;min-height:70px;color:var(--text-secondary);border-radius:var(--radius-button) var(--radius-button) 0 0;background:0 0;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;padding:11px 6px 14px;display:flex;position:relative}.chapter-selector>button>small{letter-spacing:.1em;color:var(--text-muted);font-size:10px}.chapter-selector>button>span{white-space:nowrap;font-size:13px}.chapter-selector>button[aria-selected=true]{color:var(--text-primary)}.chapter-selector>button[aria-selected=true]:after{content:"";background:var(--text-primary);height:2px;position:absolute;bottom:-1px;left:6px;right:6px}.chapter-selector>button:hover{background:color-mix(in srgb, var(--bg-surface) 70%, transparent)}.chapter-description{color:var(--text-muted);justify-content:space-between;align-items:center;gap:20px;min-height:20px;margin:18px 0;font-size:12px;display:flex}.chapter-description p{line-height:1.7}.chapter-description>span{white-space:nowrap}.level-list{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.level-entry{border:1px solid color-mix(in srgb, var(--border-default) 68%, transparent);border-radius:var(--radius-card);background:var(--bg-surface);text-align:left;min-height:150px;box-shadow:0 5px 20px color-mix(in srgb, var(--text-primary) 2%, transparent);flex-direction:column;padding:22px;display:flex}.level-entry:hover:not(:disabled){border-color:var(--border-strong)}.level-entry.is-current{background:color-mix(in srgb, var(--cube-primary) 23%, var(--bg-surface));border-color:color-mix(in srgb, var(--cube-primary) 65%, var(--border-default))}.level-entry-top,.level-entry-bottom{justify-content:space-between;align-items:center;display:flex}.level-entry-top{flex:1;align-items:flex-start}.level-number{letter-spacing:-.02em;font-size:30px;font-weight:400;line-height:1}.level-thumbnail{opacity:.7;align-items:flex-end;gap:7px;padding-top:5px;display:flex}.level-thumbnail svg{max-width:40px;max-height:40px}.thumbnail-filled{fill:var(--target-fill)}.thumbnail-empty{fill:#0000;stroke:var(--border-strong);stroke-width:.5px}.level-entry-bottom{gap:12px;margin-top:27px}.level-entry-title{font-size:14px}.level-entry-status{color:var(--text-muted);display:flex}.level-entry.is-finished .level-entry-status{color:var(--text-accent)}.sandbox-link{border:1px solid var(--border-default);border-radius:var(--radius-card);text-align:left;width:100%;min-height:76px;color:var(--text-secondary);background:0 0;align-items:center;gap:18px;margin-top:20px;padding:17px 21px;display:flex}.sandbox-link:hover:not(:disabled){background:var(--bg-surface)}.sandbox-link>span{flex-direction:column;gap:7px;display:flex}.sandbox-link strong{color:var(--text-primary);font-size:14px;font-weight:500}.sandbox-link small{color:var(--text-muted);font-size:12px}.sandbox-link>svg:last-child{margin-left:auto}.levels-footer{width:min(840px,100% - 112px);color:var(--text-muted);justify-content:space-between;align-items:center;margin:auto auto 0;padding:36px 0 30px;display:flex}.levels-footer>span:first-child{font-family:var(--font-display);letter-spacing:.15em;font-size:21px}.levels-footer>span:last-child{letter-spacing:.2em;font-size:10px}.game-page{height:100%;position:relative}.game-header{z-index:10;background:var(--surface-glass);border:1px solid color-mix(in srgb, var(--bg-surface) 80%, transparent);border-radius:var(--radius-card);min-height:76px;box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);align-items:center;gap:24px;padding:12px 22px;display:flex;position:absolute;top:24px;left:28px;right:28px}.menu-button{border-right:1px solid var(--border-default);border-radius:0;width:60px;padding-right:16px}.game-title{flex:1;min-width:0}.game-title h1{letter-spacing:.015em;align-items:center;gap:14px;font-size:18px;font-weight:500;line-height:1.4;display:flex}.game-title h1>span:first-child{font-weight:500}.title-separator{color:var(--text-muted);font-weight:400}.game-title p{color:var(--text-secondary);margin-top:4px;font-size:12px;line-height:1.5}.header-actions{align-items:center;gap:19px;display:flex}.header-command{border-radius:var(--radius-button);min-width:72px;min-height:48px;color:var(--text-secondary);background:0 0;justify-content:center;align-items:center;gap:10px;font-size:12px;display:flex}.header-command:hover:not(:disabled){background:var(--bg-canvas)}.settings-button{border-left:1px solid var(--border-default);border-radius:0;width:60px;padding-left:15px}.game-stage{background:radial-gradient(ellipse at 42% 45%, var(--bg-surface), var(--bg-canvas) 82%);width:100%;height:100%;position:relative;overflow:hidden}.scene-layer{position:absolute;inset:0}.scene-layer canvas{outline:none;display:block}.scene-safe-area{pointer-events:none;position:absolute;inset:124px 100px 132px 158px}.scene-tools{z-index:5;pointer-events:none;width:84px;position:absolute;top:176px;left:36px}.material-group{pointer-events:auto;flex-direction:column;align-items:stretch;gap:12px;display:flex}.material-button,.repair-material{border:1px solid color-mix(in srgb, var(--bg-surface) 80%, transparent);background:var(--surface-glass);border-radius:var(--radius-card);width:100%;min-height:132px;box-shadow:0 8px 30px color-mix(in srgb, var(--text-primary) 3%, transparent);color:var(--text-primary);flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:20px 8px 17px;display:flex}.material-button{pointer-events:auto;touch-action:none;cursor:grab}.material-button:active{cursor:grabbing}.material-button>svg,.repair-material>svg{color:var(--text-accent);fill:color-mix(in srgb, var(--cube-primary) 28%, transparent);margin-bottom:2px}.material-button>strong,.repair-material>strong{font-size:24px;font-weight:500;line-height:1}.material-button>span,.repair-material>span{color:var(--text-muted);font-size:11px}.material-button:hover:not(:disabled){background:var(--bg-surface);border-color:var(--cube-primary)}.tool-tile{border:1px solid color-mix(in srgb, var(--bg-surface) 80%, transparent);border-radius:var(--radius-card);background:var(--surface-glass);width:100%;min-width:48px;min-height:78px;color:var(--text-secondary);pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:11px 6px;display:flex}.tool-tile>span{white-space:nowrap;font-size:11px}.tool-tile:hover:not(:disabled){background:var(--bg-surface)}.tool-tile.is-active{color:var(--text-accent);background:color-mix(in srgb, var(--cube-primary) 18%, var(--bg-surface));border-color:var(--cube-primary)}.spatial-tools{flex-direction:column;align-items:stretch;gap:12px;margin-top:12px;display:flex}.projection-announcements{--projection-cell-size:36px}.projection-panel{padding-bottom:24px;position:relative}.projection-panel+.projection-panel{border-top:1px solid var(--border-default);padding-top:24px;padding-bottom:0}.projection-heading{justify-content:space-between;align-items:baseline;gap:8px;min-height:20px;margin-bottom:15px;display:flex}.projection-heading h2{font-size:14px;font-weight:500}.projection-heading>span{color:var(--text-secondary);white-space:nowrap;font-size:11px}.projection-grid-frame{justify-content:center;align-items:center;display:flex}.projection-grid{flex:none;display:block;overflow:visible}.projection-cell-grid{fill:#0000;stroke:var(--border-strong);stroke-width:.5px;opacity:.75}.projection-cell{transition:fill var(--motion-normal), stroke var(--motion-normal)}.projection-cell-missing{fill:var(--target-recess);stroke:var(--target-fill);stroke-width:1.3px}.projection-cell-covered{fill:var(--target-covered);stroke:var(--target-fill);stroke-width:.65px}.projection-cell-extra{stroke:var(--hatch-color);stroke-width:.8px}.projection-hatch{fill:none;stroke:var(--hatch-color);stroke-width:1px}.projection-preview{fill:#0000;stroke:var(--interaction-preview);stroke-width:2px}.projection-preview-remove{stroke-dasharray:3 2}.depth-tools{z-index:6;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-card);width:168px;box-shadow:var(--shadow-float);pointer-events:auto;grid-template-columns:48px 1fr 1fr;padding:5px;display:grid;position:absolute;bottom:28px;right:100px}.depth-counter{text-align:center;white-space:nowrap;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font-size:12px;display:flex}.depth-counter>span{color:var(--text-muted);font-size:12px}.depth-button{border-radius:var(--radius-button);min-width:48px;min-height:48px;color:var(--text-secondary);touch-action:none;background:0 0;justify-content:center;align-items:center;gap:7px;font-size:14px;display:flex}.depth-button:hover{background:var(--bg-canvas)}.help-tools{z-index:5;align-items:center;gap:2px;display:flex;position:absolute;bottom:28px;left:33px}.hint-button{min-width:48px;padding:0 8px;font-size:12px}.dialog-backdrop{z-index:30;background:color-mix(in srgb, var(--bg-canvas) 55%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.dialog-panel{touch-action:pan-y pinch-zoom;background:var(--bg-surface);border:1px solid color-mix(in srgb, var(--bg-surface) 90%, transparent);border-radius:var(--radius-panel);width:460px;max-height:calc(100dvh - 64px);box-shadow:var(--shadow-float);animation:fade-in var(--motion-normal) ease-out;padding:22px 28px 28px;overflow-y:auto}.dialog-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;display:flex}.dialog-header h2{letter-spacing:-.02em;font-size:24px;font-weight:500}.dialog-header .icon-button{margin-right:-10px}.settings-dialog{width:430px;padding:22px 26px 24px}.settings-list{border-bottom:1px solid var(--border-default);flex-direction:column;padding:8px 0 17px;display:flex}.setting-row{justify-content:space-between;align-items:center;gap:20px;min-height:72px;font-size:14px;display:flex}.setting-label{color:var(--text-primary);align-items:center;gap:16px;display:inline-flex}.setting-label>svg{color:var(--text-secondary)}.switch{background:0 0;justify-content:center;align-items:center;min-width:64px;min-height:48px;padding:11px 8px;display:flex;position:relative}.switch:before{content:"";border:1px solid var(--border-strong);background:var(--bg-canvas);width:40px;height:24px;transition:background var(--motion-fast);border-radius:12px;position:absolute}.switch>span{z-index:1;background:var(--text-secondary);width:16px;height:16px;transition:transform var(--motion-fast);border-radius:50%;transform:translate(-8px)}.switch[aria-checked=true]:before{background:var(--text-accent);border-color:var(--text-accent)}.switch[aria-checked=true]>span{background:var(--bg-surface);transform:translate(8px)}.settings-actions{flex-direction:column;align-items:flex-start;gap:1px;margin:16px -10px 0;display:flex}.settings-actions .text-button{gap:14px;min-height:50px;font-size:13px}.dialog-brand{color:var(--text-muted);justify-content:flex-end;align-items:center;gap:10px;margin-top:28px;font-size:11px;display:flex}.dialog-brand>span{border-top:1px solid var(--border-strong);width:24px}.dialog-brand>small{letter-spacing:.08em;font-size:9px}.help-dialog{width:540px;padding:20px 26px 24px}.help-dialog .dialog-header{margin-bottom:0}.guide-navigation{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.guide-navigation>span{color:var(--text-muted);font-size:12px}.guide-navigation>div{align-items:center;gap:3px;display:flex}.guide-navigation output{text-align:center;min-width:36px;color:var(--text-secondary);font-size:12px}.guide-picture{border-radius:var(--radius-card);background:var(--bg-canvas);border:1px solid color-mix(in srgb, var(--border-default) 40%, transparent);height:260px;position:relative;overflow:hidden}.tutorial-diagram{width:100%;height:100%;display:block}.diagram-shadow{fill:var(--border-strong);opacity:.1}.diagram-plinth{fill:var(--bg-surface);stroke:var(--border-default);stroke-width:1px}.diagram-plinth-edge{fill:var(--scene-white);stroke:var(--border-default);stroke-width:1px}.diagram-wall{fill:var(--bg-surface);stroke:var(--border-default);stroke-width:1px}.diagram-wall.is-emphasized{stroke:var(--border-strong)}.diagram-wall-cell{fill:#0000;stroke:var(--border-default);stroke-width:.8px}.diagram-wall-cell.is-covered{fill:var(--target-covered);stroke:var(--target-fill);stroke-width:.8px}.diagram-wall-cell.is-missing{fill:var(--target-recess);stroke:var(--target-fill);stroke-width:1.6px}.diagram-wall-cell.is-extra{stroke:var(--hatch-color);stroke-width:1.5px}.diagram-hatch{fill:none;stroke:var(--hatch-color);stroke-width:1.4px}.diagram-projection{opacity:.7}.diagram-projection.is-emphasized{opacity:1}.diagram-match{fill:var(--text-accent);font-size:19px}.diagram-board-grid{stroke:var(--grid-line);stroke-width:.8px;opacity:.7}.diagram-placement-layer{fill:color-mix(in srgb, var(--interaction-preview) 9%, transparent);stroke:var(--interaction-preview);stroke-width:1px;stroke-dasharray:4 3}.diagram-cube polygon{stroke:var(--border-strong);stroke-width:.9px;stroke-linejoin:round}.diagram-cube-top{fill:var(--bg-surface)}.diagram-cube-left{fill:var(--scene-white)}.diagram-cube-right{fill:color-mix(in srgb, var(--border-default) 36%, var(--bg-surface))}.diagram-cube-selected .diagram-cube-top{fill:color-mix(in srgb, var(--cube-primary) 55%, var(--bg-surface))}.diagram-cube-selected .diagram-cube-left{fill:var(--cube-primary)}.diagram-cube-selected .diagram-cube-right{fill:var(--cube-selected)}.diagram-cube-selected polygon{stroke:var(--text-accent)}.diagram-cube-ghost polygon{fill:color-mix(in srgb, var(--interaction-preview) 26%, transparent);stroke:var(--text-accent);stroke-width:1.8px;stroke-dasharray:4 3}.diagram-action{fill:var(--text-accent);font-size:15px}.diagram-action path,.tutorial-diagram marker path{fill:none;stroke:var(--text-accent);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.diagram-action>path{stroke-width:2px}.diagram-finish{fill:var(--text-accent);font-size:13px}.diagram-free-label{fill:var(--text-accent);font-size:14px}.diagram-caption{fill:var(--text-muted);letter-spacing:1px;font-size:11px}.guide-instruction{align-items:flex-start;gap:15px;padding:22px 4px 3px;display:flex}.guide-step-number{background:var(--text-primary);height:28px;color:var(--bg-surface);border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.guide-instruction h3{margin-bottom:6px;font-size:18px;font-weight:500;line-height:1.5}.guide-instruction p{color:var(--text-secondary);max-width:382px;min-height:48px;font-size:13px;line-height:1.85}.guide-dots{justify-content:center;margin:5px 0 3px;display:flex}.guide-dots>button{border-radius:var(--radius-button);background:0 0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.guide-dots span{background:var(--border-default);border-radius:3px;width:5px;height:5px}.guide-dots [aria-current=step] span{background:var(--border-strong);width:20px}.projection-legend{border-top:1px solid var(--border-default);flex-wrap:wrap;justify-content:center;gap:13px 20px;padding:14px 0;display:flex}.projection-legend>span{color:var(--text-secondary);align-items:center;gap:7px;font-size:11px;display:inline-flex}.projection-legend i{width:14px;height:14px;display:block}.legend-missing{border:1.3px solid var(--target-fill);background:var(--target-recess)}.legend-covered{background:var(--target-covered);border:1px solid var(--target-fill)}.legend-extra{background:repeating-linear-gradient(-45deg, transparent, transparent 3px, var(--hatch-color) 3px, var(--hatch-color) 4px);border:1px solid var(--hatch-color)}.legend-preview{border:2px solid var(--interaction-preview)}.keyboard-help{color:var(--text-secondary);border-top:1px solid var(--border-default);font-size:13px}.keyboard-help summary{cursor:pointer;align-items:center;gap:8px;min-height:48px;display:flex}.keyboard-help summary:before{content:"+";font-size:17px}.keyboard-help[open] summary:before{content:"−"}.keyboard-help p{padding-bottom:8px;font-size:12px;line-height:2}.keyboard-piece-list{flex-wrap:wrap;gap:4px;margin-top:12px;display:flex}.keyboard-piece-list button{padding:0 10px;font-size:12px}.dialog-description{color:var(--text-secondary);margin:0 0 23px;font-size:14px;line-height:1.85}.dialog-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:24px;display:flex}.keyboard-placement{flex-direction:column;gap:4px;display:flex}.placement-row{color:var(--text-secondary);justify-content:space-between;align-items:center;min-height:56px;font-size:14px;display:flex}.placement-row>div{align-items:center;gap:7px;display:flex}.placement-row output{text-align:center;width:22px;color:var(--text-primary);font-size:16px}.placement-reason{color:var(--text-secondary);min-height:24px;margin-top:18px;font-size:13px}.save-notice,.recovery-notice{z-index:22;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-button);max-width:calc(100% - 48px);box-shadow:var(--shadow-float);color:var(--text-secondary);justify-content:space-between;align-items:center;gap:12px;padding:4px 14px;font-size:13px;display:flex;position:fixed;top:108px;left:50%;transform:translate(-50%)}.save-notice>span,.recovery-notice>span{padding:12px 0}.recovery-notice{top:166px}.save-notice .text-button{color:var(--text-accent);padding:0 6px;font-size:13px}.webgl-notice{z-index:24;border-radius:var(--radius-panel);background:var(--bg-surface);width:360px;max-width:calc(100% - 48px);box-shadow:var(--shadow-float);border:1px solid var(--border-default);padding:28px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.webgl-notice h2{margin-bottom:16px;font-size:20px;font-weight:500}.webgl-notice p{color:var(--text-secondary);margin-top:8px;font-size:14px;line-height:1.85}.loading-indicator{z-index:25;color:var(--text-secondary);font-size:13px;position:fixed;bottom:36px;left:50%;transform:translate(-50%)}.layer-tools{z-index:6;border-radius:var(--radius-card);border:1px solid var(--border-default);background:var(--surface-glass);width:60px;box-shadow:var(--shadow-float);flex-direction:column;align-items:stretch;gap:4px;padding:7px;display:flex;position:absolute;top:158px;right:30px}.layer-tools-label{color:var(--text-secondary);text-align:center;padding:5px 0 7px;font-size:11px}.layer-button{border-radius:var(--radius-button);min-width:44px;min-height:44px;color:var(--text-secondary);background:0 0;justify-content:center;align-items:baseline;gap:3px;display:flex}.layer-button>span{font-size:18px;font-weight:500}.layer-button>small{font-size:10px}.layer-button[aria-pressed=true]{background:var(--button-dark);color:var(--bg-surface)}.layer-button:hover:not([aria-pressed=true]){background:var(--bg-canvas)}.placement-tools{z-index:7;border:1px solid var(--border-default);border-radius:var(--radius-card);background:var(--surface-glass);max-width:calc(100% - 48px);box-shadow:var(--shadow-float);justify-content:center;align-items:center;gap:5px;padding:5px;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.placement-adjust{position:relative}.placement-adjust>summary{border-radius:var(--radius-button);min-width:72px;min-height:48px;color:var(--text-secondary);cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:13px;list-style:none;display:flex}.placement-adjust>summary::-webkit-details-marker{display:none}.placement-adjust[open]>summary{background:var(--bg-canvas);color:var(--text-primary)}.placement-nudges{border:1px solid var(--border-default);border-radius:var(--radius-card);background:var(--bg-surface);box-shadow:var(--shadow-float);gap:4px;padding:5px;display:flex;position:absolute;bottom:calc(100% + 13px);left:0}.placement-cancel{min-width:80px;padding:0 9px;font-size:13px}.placement-confirm{min-width:100px;padding:0 22px;font-size:14px}.reduced-motion *,.reduced-motion :before,.reduced-motion :after{transition:none!important;animation:none!important}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (max-width:1180px){.home-copy{width:39%;top:20%;left:7%}.home-brand{font-size:90px}.home-header{height:94px;padding:0 40px}.home-footer{bottom:24px;left:40px;right:40px}.home-sequence{gap:12px}.home-footer>.text-button{margin-left:16px}.levels-content{margin-top:20px}.level-entry{min-height:136px;padding:19px}.level-entry-bottom{margin-top:22px}.game-header{gap:20px;min-height:72px;padding:10px 16px;top:20px;left:22px;right:22px}.header-actions{gap:12px}.game-title h1{font-size:17px}.scene-safe-area{inset:112px 92px 132px 124px}.scene-tools{width:76px;top:144px;left:24px}.material-button,.repair-material{min-height:122px}.tool-tile{min-height:72px}.layer-tools{top:144px;right:22px}.depth-tools{right:94px}.help-tools{bottom:20px;left:20px}}@media (min-width:700px) and (orientation:portrait){.hero-image{object-fit:cover;object-position:90% center;width:100%;max-width:none;height:100%;inset:0}.home-header{height:90px;padding:0 40px}.home-copy{width:72%;top:15%;left:8.3%}.home-brand{font-size:94px}.brand-subtitle{margin-top:14px;font-size:11px}.home-rule{margin-top:25px}.home-tagline{margin-top:17px;font-size:17px}.home-start{margin-top:28px}.home-footer{bottom:25px;left:34px;right:34px}.home-sequence{gap:9px;font-size:11px}.home-signature{font-size:9px}.home-footer>.text-button{margin-left:8px}.simple-header{flex-basis:90px;height:90px;padding:0 32px}.levels-content{width:calc(100% - 88px);margin-top:35px}.levels-heading{margin-bottom:25px}.chapter-selector{gap:3px}.chapter-selector>button>span{font-size:12px}.level-list{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:20px}.level-entry{min-height:146px;padding:21px}.levels-footer{width:calc(100% - 88px)}.game-header{gap:15px;min-height:72px;padding:10px 13px;top:20px;left:20px;right:20px}.menu-button{width:50px;padding-right:8px}.header-actions{gap:4px}.header-command{min-width:52px}.header-command>span{display:none}.settings-button{width:50px;padding-left:7px}.game-title h1{gap:10px;font-size:16px}.game-title p{font-size:11px}.scene-tools{width:64px;top:172px;left:20px}.material-button,.repair-material{gap:9px;min-height:112px;padding:16px 5px}.material-button>svg,.repair-material>svg{width:29px;height:29px}.material-button>strong,.repair-material>strong{font-size:22px}.material-button>span,.repair-material>span{font-size:10px}.tool-tile{min-height:72px;padding:10px 4px}.tool-tile>span{font-size:10px}.projection-heading{gap:5px;margin-bottom:13px}.projection-heading h2{font-size:12px}.projection-heading>span{font-size:10px}.projection-panel{padding-bottom:20px}.projection-panel+.projection-panel{padding-top:20px}.scene-safe-area{inset:112px 88px 124px 104px}.layer-tools{top:154px;right:18px}.depth-tools{right:90px}.help-tools{flex-direction:column;gap:2px;bottom:28px;left:18px}}@media (max-width:699px){.home-header{height:68px;padding:0 20px}.home-header>div{gap:8px}.home-side-note{display:none}.home-edition{font-size:10px}.hero-image{object-position:88% center}.home-copy{width:84%;top:13%;left:8%}.home-brand{font-size:72px}.brand-subtitle{letter-spacing:.26em;margin-top:11px;font-size:10px}.home-rule{margin-top:22px}.home-tagline{margin-top:14px;font-size:15px}.home-start{min-width:160px;min-height:48px;margin-top:25px}.home-footer{left:18px;right:18px;bottom:max(12px, env(safe-area-inset-bottom))}.home-sequence,.home-signature{display:none}.home-footer>.text-button{margin-left:0}.simple-header{flex-basis:64px;height:64px;padding:0 16px}.levels-content{width:calc(100% - 32px);margin-top:18px}.levels-heading{gap:12px;margin-bottom:14px}.levels-heading h1{font-size:25px}.section-eyebrow{margin-bottom:7px;font-size:10px}.chapter-completion{font-size:11px}.chapter-selector{overscroll-behavior-x:contain;touch-action:pan-x pinch-zoom;scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.chapter-selector::-webkit-scrollbar{display:none}.chapter-selector>button{flex:none;min-width:110px;min-height:62px;padding:10px 6px 12px}.chapter-selector>button>span{font-size:12px}.chapter-description{gap:12px;margin:14px 0;font-size:11px}.level-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.level-entry{min-width:0;min-height:126px;padding:15px 12px}.level-number{font-size:26px}.level-thumbnail{gap:4px}.level-thumbnail svg{max-width:25px;max-height:30px}.level-entry-bottom{gap:4px;margin-top:21px}.level-entry-title{font-size:12px}.level-entry-status svg{width:15px}.sandbox-link{gap:12px;margin-top:15px;padding:14px 12px}.sandbox-link small{font-size:11px}.levels-footer{width:calc(100% - 32px);padding:26px 0 max(20px, env(safe-area-inset-bottom))}.levels-footer>span:last-child{font-size:8px}.game-header{top:max(8px, env(safe-area-inset-top));border-radius:12px;gap:6px;min-height:56px;padding:4px;left:8px;right:8px}.menu-button,.settings-button{width:44px;min-width:44px;min-height:44px;padding:0}.header-actions{gap:1px}.header-command{min-width:44px;min-height:44px}.header-command>span{display:none}.game-title h1{white-space:nowrap;text-overflow:ellipsis;font-size:13px;line-height:1.5;display:block;overflow:hidden}.title-separator{margin:0 5px}.game-title p{white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:10px;overflow:hidden}.scene-safe-area{inset:calc(78px + env(safe-area-inset-top)) 72px calc(212px + env(safe-area-inset-bottom)) 12px}.scene-tools{top:auto;left:12px;bottom:calc(12px + env(safe-area-inset-bottom));align-items:stretch;gap:4px;width:calc(100% - 112px);display:flex}.material-group,.spatial-tools{flex-direction:row;gap:4px;margin:0;display:flex}.material-button,.repair-material{border-radius:10px;gap:1px;width:52px;min-width:52px;min-height:56px;padding:3px}.material-button>svg,.repair-material>svg{width:19px;height:19px;margin:0}.material-button>strong,.repair-material>strong{font-size:15px}.material-button>span,.repair-material>span{font-size:8px}.tool-tile{border-radius:10px;gap:4px;width:44px;min-width:44px;min-height:56px;padding:4px 1px}.tool-tile>svg{width:19px;height:19px}.tool-tile>span{font-size:9px}.tool-tile[aria-label=检查内部]>span,.tool-tile[aria-label=复位视角]>span{font-size:8px}.help-tools{left:auto;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));gap:0;height:56px}.help-tools>button{min-width:44px;min-height:56px;padding:0 3px}.layer-tools{width:58px;right:10px;top:calc(92px + env(safe-area-inset-top));padding:6px}.layer-tools-label{padding:4px 0 6px;font-size:10px}.placement-tools{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom));max-width:none;transform:none}.placement-adjust>summary{min-width:72px;min-height:44px}.placement-cancel,.placement-confirm{min-height:44px}.placement-nudges .icon-button{min-width:44px;min-height:44px}.depth-tools{left:auto;right:78px;bottom:calc(80px + env(safe-area-inset-bottom));width:162px}.depth-button{min-width:44px;min-height:44px}.dialog-backdrop{padding:12px}.dialog-panel,.settings-dialog,.help-dialog{width:100%;max-width:480px;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:16px 18px 20px}.dialog-header{gap:12px;margin-bottom:12px}.dialog-header h2{font-size:22px}.dialog-header .icon-button{margin-right:-7px}.guide-navigation{gap:6px;margin-bottom:9px}.guide-navigation>span{font-size:10px}.guide-navigation .icon-button{min-width:44px;min-height:44px}.guide-picture{height:210px}.guide-instruction{gap:10px;padding:16px 0 3px}.guide-instruction h3{font-size:16px}.guide-instruction p{min-height:0;font-size:12px;line-height:1.8}.guide-step-number{flex-basis:25px;height:25px;font-size:12px}.projection-legend{gap:10px;padding:12px 0}.projection-legend>span{gap:5px;font-size:10px}.projection-legend i{width:12px;height:12px}.setting-row{min-height:62px;font-size:13px}.setting-label{gap:11px}.dialog-actions{gap:5px}.dialog-actions .primary-button{padding:0 15px}.save-notice,.recovery-notice{top:calc(76px + env(safe-area-inset-top));gap:6px;width:max-content;max-width:calc(100% - 24px);padding:3px 10px;font-size:11px}.recovery-notice{top:calc(132px + env(safe-area-inset-top))}}@media (max-height:540px) and (orientation:landscape){.home-header{height:52px;padding:0 max(22px, env(safe-area-inset-left))}.home-side-note,.home-rule,.home-sequence,.home-signature{display:none}.hero-image{object-position:center 76%}.home-copy{left:max(6%, env(safe-area-inset-left));width:45%;top:62px}.home-brand{font-size:48px}.brand-subtitle{letter-spacing:.25em;margin-top:7px;font-size:9px}.home-tagline{margin-top:12px;font-size:13px;line-height:1.65}.home-start{min-width:154px;min-height:44px;margin-top:16px}.home-links{margin-top:3px}.home-links .text-button{min-height:44px;font-size:12px}.home-footer{left:auto;right:max(22px, env(safe-area-inset-right));bottom:max(8px, env(safe-area-inset-bottom))}.home-footer>.text-button{min-height:44px;margin:0}.simple-header{height:60px;padding:0 max(24px, env(safe-area-inset-left));flex-basis:60px}.levels-content{width:min(740px,100% - 48px);margin-top:8px}.levels-heading{margin-bottom:14px}.levels-heading h1{font-size:24px}.chapter-selector>button{min-height:58px;padding-top:8px;padding-bottom:10px}.level-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.level-entry{min-height:118px;padding:15px}.level-entry-bottom{margin-top:18px}.game-header{top:max(6px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));border-radius:12px;gap:10px;min-height:50px;padding:3px 8px}.menu-button,.settings-button{width:44px;min-width:44px;min-height:44px;padding:0}.header-command{min-width:44px;min-height:44px}.header-command>span{display:none}.header-actions{gap:4px}.game-title h1{gap:8px;font-size:14px}.game-title p{margin-top:0;font-size:10px}.scene-safe-area{inset:calc(66px + env(safe-area-inset-top)) calc(76px + env(safe-area-inset-right)) calc(78px + env(safe-area-inset-bottom)) calc(74px + env(safe-area-inset-left))}.scene-tools{top:66px;left:max(12px, env(safe-area-inset-left));width:48px;display:block;bottom:auto}.material-group,.spatial-tools{flex-direction:column;gap:4px;display:flex}.spatial-tools{margin-top:4px}.material-button,.repair-material{border-radius:9px;gap:1px;width:48px;min-width:48px;min-height:52px;padding:3px}.material-button>svg,.repair-material>svg{width:18px;height:18px;margin:0}.material-button>strong,.repair-material>strong{font-size:15px}.material-button>span,.repair-material>span{font-size:8px}.tool-tile{border-radius:9px;gap:3px;width:48px;min-width:44px;min-height:44px;padding:3px 1px}.tool-tile>svg{width:17px;height:17px}.tool-tile>span{font-size:8px}.help-tools{top:auto;bottom:max(8px, env(safe-area-inset-bottom));left:max(12px, env(safe-area-inset-left));flex-direction:row;gap:1px;height:auto;right:auto}.help-tools>button{min-width:44px;min-height:44px;padding:0 3px}.layer-tools{top:74px;right:max(12px, env(safe-area-inset-right));width:58px;padding:6px}.layer-tools-label{padding:3px 0 5px;font-size:10px}.layer-button{min-width:44px;min-height:44px}.placement-tools{bottom:max(8px, env(safe-area-inset-bottom));max-width:calc(100% - 228px);left:50%;right:auto;transform:translate(-50%)}.placement-adjust>summary,.placement-cancel,.placement-confirm{min-height:44px}.placement-adjust[open]{min-width:264px}.placement-adjust[open]>summary{float:left}.placement-nudges{box-shadow:none;background:0 0;border:0;padding:0;position:static}.placement-nudges .icon-button{min-width:44px;min-height:44px}.depth-tools{left:auto;right:max(90px, env(safe-area-inset-right));bottom:max(8px, env(safe-area-inset-bottom));width:162px}.depth-button{min-width:44px;min-height:44px}.dialog-backdrop{padding:10px}.dialog-panel,.settings-dialog,.help-dialog{max-height:calc(100dvh - 20px);padding:14px 22px 20px}.help-dialog{width:640px;max-width:calc(100vw - 32px)}.dialog-header{margin-bottom:6px}.dialog-header h2{font-size:21px}.guide-navigation{margin-bottom:6px}.guide-picture{height:160px}.guide-instruction{padding-top:12px}.guide-instruction h3{font-size:16px}.guide-instruction p{min-height:0;font-size:12px}.setting-row{min-height:56px}.save-notice{top:62px}.recovery-notice{top:118px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
