:root{--bg:#10151e;--panel:#151c27;--line:#293241;--text:#f2f1eb;--muted:#96a3b5;--accent:#a9e6cd;--ink:#14291f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit;background:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}button:disabled{opacity:.4;cursor:wait}header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:14px;align-items:center;color:var(--text);text-decoration:none;font-weight:650;font-size:14px;letter-spacing:2px}.mark{height:38px;width:38px;border:1px solid #5d736b;border-radius:50%;display:grid;place-content:center;position:relative;color:var(--accent);font-size:23px;letter-spacing:-5px;padding-right:5px}.mark span{position:absolute;left:19px;top:2px}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:2px;margin-top:5px}.course{font-size:10px;letter-spacing:1.9px;color:#b7c1cf;display:flex;align-items:center;gap:12px}.dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%}.slash{color:#566473;padding:0 5px}.quiet{font-size:12px;color:#c4cbd6}.quiet span{border:1px solid #485366;border-radius:50%;display:inline-grid;place-content:center;width:20px;height:20px;margin-left:12px}main{display:grid;grid-template-columns:244px minmax(320px,1fr) 296px;height:calc(100dvh - 136px);min-height:540px}.parts-panel{padding:28px 22px 16px;display:flex;flex-direction:column;border-right:1px solid var(--line);overflow:hidden}.eyebrow{font-size:9px;font-weight:650;color:var(--muted);letter-spacing:1.8px}.parts-panel h1{font-size:29px;font-weight:500;letter-spacing:-1.1px;margin:15px 0 12px;line-height:1.1}.parts-panel h1 span{color:var(--accent)}.intro{font-size:12px;color:var(--muted);line-height:1.7;margin:0 0 24px}.progress-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted)}.progress-label b{font-size:10px;font-weight:500;color:var(--accent)}.progress{height:3px;background:#303845;margin:10px 0 22px}.progress>div{height:100%;width:0;background:var(--accent);transition:width .3s}nav{overflow:auto;flex:1;margin:0 -10px;padding:0 8px 0 2px;scrollbar-width:thin;scrollbar-color:#3b4758 transparent}.group-label{font-size:8px;letter-spacing:1.5px;color:#78889e;margin:15px 8px 9px}.group-label:first-child{margin-top:0}.part-button{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:9px 8px;border-radius:5px;color:#b6c0ce;font-size:11px;line-height:1.25;margin:2px 0}.part-button:hover{background:#202c3a;color:white}.part-button.current{background:#263c38;color:#d3f3e5}.part-button .number{font-size:9px;color:#708097;min-width:16px}.part-button .tick{font-size:10px;color:var(--accent);margin-left:auto;opacity:0}.part-button.visited .tick{opacity:1}.part-button.current .number{color:var(--accent)}.model-note{font-size:9px;line-height:1.6;color:#69788c;border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.viewport{position:relative;min-width:0;overflow:hidden;background:#11151e}#unity-canvas{width:100%;height:100%;display:block;touch-action:none}.view-top{position:absolute;left:26px;right:26px;top:25px;display:flex;justify-content:space-between;pointer-events:none;z-index:2}.view-badge{font-size:9px;letter-spacing:1.6px;color:#c3cedb;display:flex;gap:9px;align-items:center}.view-badge i{width:5px;height:5px;background:var(--accent);border-radius:50%}.view-tag{font-size:8px;letter-spacing:1.2px;color:#8a9bb0}.view-bottom{position:absolute;bottom:18px;left:10px;right:10px;display:flex;align-items:center;flex-direction:column;gap:14px;pointer-events:none}.orientation,.tools{pointer-events:auto;border:1px solid #354254;background:#18212cea;display:flex;padding:4px;border-radius:7px;max-width:100%}.orientation button{font-size:10px;color:#a8b6c7;border-radius:4px;padding:8px 12px}.orientation button:hover,.orientation button.active{color:#e8f5ee;background:#364a49}.tools{padding:4px 7px;gap:4px}.tools button{height:28px;width:29px;font-size:20px;line-height:1;border-radius:3px;color:#c6d4e0}.tools button:hover,.tools button[aria-pressed=true]{background:#364a49;color:var(--accent)}.tools span{width:1px;background:#3e4b5c;margin:5px 3px}.gesture-hint{font-size:10px;color:#8192a8;margin:0;display:flex;gap:10px;align-items:center}.gesture-hint span{font-size:16px;color:#b3c9d8}.gesture-hint i{font-style:normal;color:#546478}#hoverLabel{display:none;position:absolute;left:50%;transform:translateX(-50%);bottom:163px;background:#e0f6ec;color:#16372a;padding:10px 15px;border-radius:5px;pointer-events:none;text-align:center;z-index:3;box-shadow:0 5px 20px #0003}#hoverLabel span{font-size:12px;font-weight:600;display:block}#hoverLabel small{font-size:9px;opacity:.6;display:block;margin-top:3px}.detail-panel{padding:29px 25px 20px;border-left:1px solid var(--line);display:flex;flex-direction:column;background:var(--panel);overflow:auto}.part-number{font-size:62px;font-weight:300;color:#a9b9cb;letter-spacing:-3px;margin:30px 0 22px;line-height:1}.part-number span{font-size:13px;letter-spacing:0;color:#687a91;margin-left:8px}.category{font-size:8px;color:var(--accent);letter-spacing:1.6px;margin-bottom:12px}.detail-panel h2{font-size:28px;letter-spacing:-.7px;font-weight:500;line-height:1.16;margin:0 0 16px}.detail-panel>p{font-size:12px;line-height:1.85;color:#aab7c8;margin:0 0 22px}.try-card{border-left:2px solid #81bda3;padding:3px 0 3px 14px;margin-bottom:22px}.try-card .eyebrow{font-size:8px;color:#c7d8ce}.try-card p{font-size:11px;line-height:1.7;color:#8e9eb1;margin:8px 0 0}.secondary{border:1px solid #465449;border-radius:4px;color:#d3e5dc;font-size:10px;padding:11px;text-align:left;display:flex;justify-content:space-between;gap:10px}.secondary:hover{background:#253c32}.detail-spacer{flex:1;min-height:26px}.guide-label{display:flex;align-items:center;gap:7px;font-size:8px;color:#8c9eae;letter-spacing:1px;margin-bottom:12px}.guide-label .dot{width:4px;height:4px}.primary{background:var(--accent);color:var(--ink);padding:14px 13px;border-radius:4px;font-size:11px;font-weight:600;text-align:left;display:flex;justify-content:space-between;width:100%}.primary:hover{background:#c4f0dd}.primary span{font-size:15px}.detail-panel .completion{font-size:10px;color:var(--accent);margin:8px 0 0;line-height:1.5}footer{height:48px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:#708095;font-size:9px}footer>span:first-child{font-size:8px;letter-spacing:1.7px}footer b{color:#465669;padding:0 8px;font-weight:400}footer button{font-size:9px;color:#9eacba}#loading{position:absolute;inset:0;background:#11151e;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:5}#loading h2{font-size:22px;font-weight:400;letter-spacing:-.5px;margin-top:26px}#loading p{font-size:12px;color:#8b9baf}#loadPercent{font-size:10px;color:var(--accent);margin-top:12px}.load-track{background:#293649;width:180px;height:3px;margin-top:18px}.load-track>div{height:100%;background:var(--accent);transition:width .2s}.loading-orbit{width:55px;height:55px;border:1px solid #3a5c50;border-top:2px solid var(--accent);border-radius:50%;animation:spin 2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#loadError{max-width:85%;line-height:1.6;color:#ffc8b6!important;overflow-wrap:anywhere}dialog{background:#18222d;color:var(--text);border:1px solid #3c4d5d;border-radius:12px;padding:36px;width:min(470px,92vw);max-height:90dvh}dialog::backdrop{background:#040b13bd;backdrop-filter:blur(5px)}dialog h2{font-weight:400;font-size:34px;letter-spacing:-1px;line-height:1.15}.close{position:absolute;right:16px;top:12px;font-size:27px;color:#8294a6}.help-row{display:flex;gap:18px;margin:18px 0}.help-row b{font-size:12px;font-weight:400;color:var(--accent);padding-top:3px}.help-row p{font-size:12px;line-height:1.65;color:#a7b6c6;margin:0}.help-row strong{display:block;color:#e3ece7;font-size:13px;font-weight:500;margin-bottom:4px}.help-note{font-size:10px;line-height:1.6;color:#75889d;border-top:1px solid #334457;padding-top:14px;margin:22px 0}body:not(.ready) .view-bottom button,body:not(.ready) .parts-panel button,body:not(.ready) .detail-panel button{pointer-events:none;opacity:.45}@media(min-width:1600px){main{grid-template-columns:270px minmax(400px,1fr) 330px}.parts-panel{padding-left:30px;padding-right:30px}.detail-panel{padding-left:30px;padding-right:30px}}@media(max-width:1050px){header{padding:0 20px}.course{display:none}main{grid-template-columns:195px minmax(280px,1fr) 245px}.parts-panel{padding:24px 15px}.detail-panel{padding:24px 18px}.parts-panel h1{font-size:25px}.detail-panel h2{font-size:25px}.orientation button{padding:8px}.gesture-hint{font-size:8px;gap:6px}.view-top{left:16px;right:16px}.view-tag{display:none}}@media(max-width:760px){header{height:68px;padding:0 16px}.brand{font-size:11px}.brand small{font-size:7px}.quiet{font-size:10px}.quiet span{margin-left:5px}main{height:auto;min-height:0;grid-template-columns:1fr;display:flex;flex-direction:column}.viewport{order:0;height:65dvh;min-height:400px}.parts-panel{order:2;max-height:480px;border-right:0;border-top:1px solid var(--line);padding:24px}.parts-panel nav{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px;max-height:260px}.group-label{grid-column:1/-1}.parts-panel .intro{display:none}.parts-panel h1{margin-bottom:20px}.detail-panel{order:1;position:relative;padding:24px;border-left:0;border-top:1px solid var(--line)}.part-number{position:absolute;right:24px;top:20px;font-size:35px;margin:0}.part-number span{font-size:10px}.detail-panel .category{margin-top:25px}.detail-panel h2{font-size:27px;max-width:80%}.detail-spacer{min-height:20px}.try-card{margin-bottom:14px}.detail-panel>p{margin-bottom:16px}.guide-label{margin-top:4px}.model-note{margin-bottom:0}footer{height:55px;padding:0 20px}footer>span:nth-child(2){display:none}.view-bottom{gap:10px}.orientation button{padding:8px 12px}.gesture-hint{font-size:9px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

