:root{--bg:#090909;--bg-soft:#121212;--card:#171717;--card-2:#1d1d1d;--text:#f4f4f4;--muted:#c8c8c8;--muted-soft:#a6a6a6;--line:#ffffff1f;--accent:#ff7a1a;--accent-2:#ff9a4d;--link:#7fd7ff;--ok:#6ee7a8;--warn:#ffcc80;--shadow:0 18px 50px #00000059;--radius:22px;--max:1120px}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--text);letter-spacing:.01em;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 100% 0,#ff7a1a24,#0000 22%),linear-gradient(#0a0a0a 0%,#090909 45%,#070707 100%);margin:0;font-family:Inter,Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.68}h1,h2,h3{letter-spacing:-.03em;text-wrap:balance;line-height:1.12}button{font-family:inherit}.app-shell{width:min(100% - 40px, var(--max));margin:0 auto;padding:clamp(30px,5vw,56px) 0 68px}.app-header{margin-bottom:20px;animation:.34s ease-out fade-up}.app-header h1{margin:0;font-size:clamp(1.7rem,4.2vw,2.75rem)}.subtitle{color:var(--muted);max-width:700px;margin:8px 0 0}.eyebrow{color:#ffb37d;text-transform:uppercase;letter-spacing:.02em;background:#ff7a1a1f;border:1px solid #ff7a1a33;border-radius:999px;align-items:center;margin:0 0 10px;padding:8px 12px;font-size:.76rem;font-weight:700;display:inline-flex}.game-grid{grid-template-columns:minmax(0,1.9fr) minmax(290px,1fr);gap:18px;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(#ffffff08,#ffffff05)}.engine-panel{min-height:620px;padding:14px;animation:.42s ease-out both fade-up}.hud-panel{flex-direction:column;gap:12px;padding:14px;animation:.52s ease-out both fade-up;display:flex}.engine-stage{flex-direction:column;gap:8px;width:100%;height:100%;display:flex}.engine-canvas{border:1px solid var(--line);background:linear-gradient(160deg,#131313,#0f0f0f);border-radius:14px;width:100%;height:min(64vh,620px);min-height:520px;position:relative;overflow:hidden}.engine-canvas .engine-main-canvas{z-index:1;cursor:grab;touch-action:none;display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.engine-zoom-controls{z-index:4;flex-direction:column;gap:8px;display:flex;position:absolute;top:12px;right:12px}.engine-orientation-readout{z-index:4;border:1px solid var(--line);background:#171717e6;border-radius:10px;max-width:300px;padding:8px 10px;position:absolute;top:12px;left:12px}.engine-orientation-title{text-transform:uppercase;letter-spacing:.09em;color:var(--muted-soft);margin:0;font-size:.71rem;font-weight:700}.engine-orientation-value{color:#f2f7fd;margin:4px 0 0;font-size:.86rem;font-weight:700;line-height:1.3}.engine-orientation-note{color:var(--muted);margin:4px 0 0;font-size:.75rem}.zoom-button{border:1px solid var(--line);width:40px;height:40px;color:var(--text);cursor:pointer;background:#ffffff08;border-radius:10px;font-size:1.15rem;font-weight:700;line-height:1;transition:transform .12s,border-color .15s,background .15s}.zoom-button:hover{background:#ffffff0f;border-color:#ff7a1a6b;transform:translateY(-1px)}.zoom-button:active{transform:translateY(0)}.engine-canvas .engine-main-canvas:active{cursor:grabbing}.engine-orbit-hint{border:1px solid var(--line);color:var(--muted);background:#ffffff08;border-radius:10px;margin:0;padding:7px 10px;font-size:.84rem}.engine-svg{transform-origin:52% 45%;background:#151b23;border:1px solid #3a4350;border-radius:12px;width:100%;height:auto;transform:perspective(1500px)rotateY(-6deg)rotateX(4deg)}.engine-assembly{filter:drop-shadow(0 14px 16px #00000047)}.engine-base .base-backplate{fill:#1f2833}.engine-base .base-block{fill:#31404f}.engine-base .base-head{fill:#56606d}.engine-base .base-oil-pan{fill:#3a4654}.engine-base .base-front-drive{fill:#414e5d}.engine-base .base-intake-side{fill:#667180}.engine-base .base-exhaust-side{fill:#78553f}.engine-base .base-front-pulley{fill:#2f3844}.engine-base .base-front-pulley-core{fill:#4d5866}.engine-base .base-mid-pulley{fill:#3a4656}.engine-base .base-upper-pulley{fill:#455365}.engine-base .base-rail{fill:#2a3340}.engine-base .base-shadow{fill:#00000054}.orientation-label{fill:#b6c1ce;letter-spacing:.04em;font-size:13px}.orientation-line{stroke:#6f7d8c;stroke-width:2px}.engine-part{cursor:pointer;will-change:transform, opacity;transform-box:fill-box;transform-origin:50%;touch-action:manipulation;transition:opacity .36s cubic-bezier(.2,.8,.2,1),transform .36s cubic-bezier(.2,.8,.2,1),filter .22s}.engine-part .part-fill{fill:var(--part-fill);stroke:#ffffff26;stroke-width:2px;vector-effect:non-scaling-stroke;transition:fill .2s,stroke .2s}.engine-part .part-depth-fill{fill:var(--part-fill);filter:brightness(.58)saturate(.9);opacity:.9;stroke:#00000057;stroke-width:2px;vector-effect:non-scaling-stroke}.engine-part .part-highlight-fill{fill:none;stroke:#ffffff38;stroke-width:1.4px;vector-effect:non-scaling-stroke}.engine-part .part-line{stroke:#181f29d6;stroke-width:4px;stroke-linecap:round;vector-effect:non-scaling-stroke}.engine-part .part-highlight-line{stroke:#ffffff47;stroke-width:1.6px;stroke-linecap:round;vector-effect:non-scaling-stroke}.engine-part--eligible .part-fill{stroke:#8edcff;filter:drop-shadow(0 0 7px #3aaaff54)}.engine-part--blocked .part-fill{opacity:.54}.engine-part--blocked .part-depth-fill{opacity:.55}.engine-part--blocked{cursor:not-allowed}.engine-part--challenge.engine-part--eligible .part-fill{stroke:#f3bf66;filter:drop-shadow(0 0 6px #e2980f59)}.engine-part:hover .part-fill{stroke-width:2.6px}.engine-part:focus-visible{outline-offset:2px;outline:2px solid #f7d381}.eligible-label text{fill:#f7f5f1;paint-order:stroke;stroke:#0f141cbd;stroke-width:4px;font-size:13px;font-weight:600}.eligible-label circle{fill:#ffcc74}.engine-part--removing{opacity:0;transform:translate(var(--remove-x), var(--remove-y)) scale(.92);pointer-events:none}.mode-switch h2,.progress-panel h2,.message-area h2,.checklist h2{margin:0 0 8px;font-size:1rem}.reset-button{appearance:none;background:linear-gradient(180deg, var(--accent), #e46300);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:14px;min-height:48px;padding:12px 14px;font-size:.95rem;font-weight:700;line-height:1.2;transition:transform .2s,box-shadow .2s;box-shadow:0 10px 30px #ff7a1a40}.reset-button:hover{transform:translateY(-1px);box-shadow:0 14px 30px #ff7a1a4d}.progress-panel{border:1px solid var(--line);background:#ffffff06;border-radius:12px;padding:10px}.progress-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 6px;font-size:.9rem;display:grid}.progress-metrics p{margin:0}.progress-bar{background:#2a3643;border-radius:999px;height:10px;margin-top:10px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg,#ff8c36,#ffc267);height:100%;transition:width .26s}.progress-percent{color:var(--muted);margin:8px 0 0;font-size:.83rem}.message-area{border:1px solid var(--line);border-radius:12px;padding:10px}.message-area p{margin:0;line-height:1.35}.message-info{background:#2e4f6e40}.message-success{background:#487d5947}.message-blocked{background:#8748484d}.message-win{background:#b07e1c52}.guided-next{border:1px dashed var(--line);background:#ffffff05;border-radius:10px;margin:0;padding:8px 10px;font-size:.9rem}.interaction-tip{border:1px solid var(--line);background:#ffffff05;border-radius:10px;padding:9px 10px}.interaction-tip h2{margin:0 0 6px;font-size:1rem}.interaction-tip p{color:var(--muted);margin:0;font-size:.86rem}.checklist{border:1px solid var(--line);background:#ffffff05;border-radius:12px;min-height:220px;padding:10px}.checklist ul{gap:6px;max-height:294px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.checklist li{border:1px solid var(--line);background:#ffffff06;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;font-size:.83rem;display:grid}.checklist li.done{opacity:.65}.checklist li.removing{border-color:#8edcff;box-shadow:inset 0 0 0 1px #8edcff40}.checklist li.hidden{opacity:.5;border-style:dashed}.checklist li.next{border-color:#ff7a1a6b}.checklist-order{background:#324255;border-radius:999px;place-items:center;width:18px;height:18px;font-weight:700;display:grid}.checklist-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.checklist-state{color:var(--muted)}.control-row{gap:8px;display:flex}.reset-button{width:100%}.reset-button.secondary{border-color:var(--line);color:var(--text);box-shadow:none;background:#ffffff08}.mode-copy{color:var(--muted);margin:0;font-size:.82rem}.completion-overlay{background:#090d14b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.completion-card{border-radius:var(--radius);border:1px solid var(--line);width:min(460px,100%);box-shadow:var(--shadow);background:linear-gradient(#ffffff0a,#ffffff06);padding:20px}.completion-card h2{margin:0 0 8px}.completion-card p{margin:0 0 10px}.completion-actions{gap:10px;display:flex}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1050px){.game-grid{grid-template-columns:1fr}.engine-panel{min-height:460px}.progress-metrics{grid-template-columns:1fr}}@media (width<=620px){.app-shell{width:min(100% - 20px, var(--max));padding:18px 0 22px}.engine-panel,.hud-panel{padding:10px}.engine-canvas{height:54vh;min-height:360px}.engine-orientation-readout{max-width:calc(100% - 78px)}.completion-actions{flex-direction:column}.checklist ul{max-height:220px}.eligible-label text{font-size:12px}}
