
:root{color-scheme:dark;--bg:#05141e;--ink:#ecf8f6;--muted:#8ca7b4;--cyan:#65e7e3;--line:rgba(117,197,212,.20)}*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);font-family:Inter,system-ui,sans-serif;color:var(--ink)}button,input{font:inherit}button{cursor:pointer}#app{display:grid;grid-template-columns:minmax(0,1fr) 390px;height:100vh;min-height:600px}#stage{min-height:0;position:relative;overflow:hidden;background:radial-gradient(circle at 40% 45%,#124054,#02111d 85%)}#scene{display:block;width:100%;height:100%;outline:none}#environment{pointer-events:none;display:flex;justify-content:space-between;align-items:center;position:absolute;top:27px;left:33px;right:29px;color:#8adddd;font:11px 'DM Mono',monospace;letter-spacing:.11em}#fps{background:#071d2aa8;border:1px solid #33727a88;padding:9px 12px;border-radius:6px}.camera-panel{position:absolute;left:25px;right:25px;bottom:25px;display:flex;gap:7px;justify-content:center;flex-wrap:wrap}.camera-btn{font-family:'DM Mono',monospace;border:1px solid #346575a6;color:#e7ffff;background:#071d2dd9;border-radius:7px;padding:12px 15px;min-width:85px;font-size:12px;transition:.2s}.camera-btn:hover,.camera-btn:focus-visible{border-color:var(--cyan);background:#154d60}.camera-btn span{color:#9abbc7;font:12px Inter,sans-serif;margin-left:5px}#loading{position:absolute;inset:0;z-index:6;background:#051a25ee;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;text-align:center}#loading strong{font-size:20px}#loading small{color:var(--muted)}.spinner{height:48px;width:48px;border:3px solid #276a7a;border-top-color:#6af1e9;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}#focus-label{position:absolute;bottom:110px;left:30px;max-width:345px;background:#051926ee;border:1px solid #3996a2aa;border-left:3px solid #75ebeb;border-radius:8px;padding:16px 40px 16px 16px;box-shadow:0 18px 50px #0008}#focus-name{font-size:15px;font-weight:700;margin-bottom:7px}#focus-desc{font-size:12px;color:#a9c7cd;line-height:1.6}#focus-close{position:absolute;right:7px;top:7px;border:0;background:none;color:#e5ffff;font-size:23px}aside{height:100%;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#1e5566 transparent;background:linear-gradient(180deg,#0a202d,#06131f);border-left:1px solid #35708088;padding:25px 25px 15px;display:flex;flex-direction:column;gap:19px}.brand{font:11px 'DM Mono',monospace;color:#b1dedb;letter-spacing:.14em}.brand em{color:#ffac6a}.title-row{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:20px}.eyebrow{font:9px 'DM Mono',monospace;color:#70afb8;letter-spacing:.06em}h1{font:700 34px/1 'Barlow Condensed',sans-serif;letter-spacing:.01em;margin:8px 0 0}h1 span{color:#6aede5}.status{white-space:nowrap;font:10px 'DM Mono',monospace;color:#84d9cf;border:1px solid #2f656c;border-radius:30px;padding:6px}.status-dot{display:inline-block;background:#70e0c8;height:5px;width:5px;border-radius:50%;margin:1px 5px 1px 0;box-shadow:0 0 10px #6beac5}.intro{font-size:12px;line-height:1.65;color:#a7bfca;margin:14px 0 0}.control-group{border-top:1px solid var(--line);padding-top:17px}.group-title{font:11px 'DM Mono',monospace;color:#ddedef;letter-spacing:.10em;display:flex;justify-content:space-between;margin-bottom:15px}.group-title>span{color:#699aaa}.subheading{margin-top:17px;margin-bottom:9px;font-size:10px;color:#8bacbb}.segment{display:flex;padding:4px;border:1px solid #2d5260;border-radius:9px;background:#071824;gap:3px}.segment button{flex:1;background:transparent;border:0;color:#83a3b1;font-size:12px;padding:10px 7px;border-radius:6px}.segment button.active{color:#ecffff;background:#196577;box-shadow:inset 0 0 0 1px #2a99a1}.model-summary{font:10px 'DM Mono',monospace;color:#75b0b4;margin-top:11px}.control-row{display:flex;justify-content:space-between;color:#aac0c9;font-size:12px;margin:11px 0 8px}.control-row output{font-family:'DM Mono',monospace;color:#68dfdf}input[type=range]{display:block;width:100%;accent-color:#6be8e0;height:6px;margin-bottom:12px;cursor:pointer}.buttons{display:flex;gap:8px;margin-top:8px}.buttons button,.tiny-btn{border:1px solid #34727b;background:#103b4c;color:#aee6e4;border-radius:6px;padding:10px 13px;font:11px 'DM Mono',monospace}.buttons button.on{background:#245f50;color:#cbffe8}.tiny-btn{padding:2px 8px;font-size:10px}.checkrow{display:block;font-size:12px;color:#acc3cd;margin-top:14px;cursor:pointer}.checkrow input{accent-color:#5ddac9;margin-right:8px}.flex-grow{flex:1;min-height:150px;display:flex;flex-direction:column}#parts-filter{width:100%;background:#071925;color:#daf3f4;border:1px solid #284e60;padding:11px 12px;border-radius:6px;font-size:12px;outline:none}#parts-filter:focus{border-color:#64cdc9}.part-list{max-height:245px;min-height:110px;overflow:auto;margin-top:8px;scrollbar-width:thin}.part-item{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:7px;background:transparent;border:0;border-bottom:1px solid #1a394744;color:#bed3dc;padding:10px 6px;font-size:12px}.part-item:hover{background:#16404a}.part-item small{font:10px 'DM Mono',monospace;color:#649caa}.metric-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}.metric-grid div{border:1px solid #25485a;border-radius:7px;padding:11px 7px}.metric-grid span{font:9px 'DM Mono',monospace;color:#6798aa;display:block;white-space:nowrap}.metric-grid strong{display:block;font:600 21px 'Barlow Condensed',sans-serif;margin-top:6px}.metric-grid small{font-size:11px;color:#7fabb2}footer{border-top:1px solid var(--line);padding-top:14px}footer p{color:#7d9eab;font-size:10px;line-height:1.5}footer a{color:#6ee7da;font:11px 'DM Mono',monospace;text-decoration:none}footer a:hover{text-decoration:underline}@media(max-width:1000px){#app{grid-template-columns:1fr;grid-template-rows:minmax(480px,65vh) auto;height:auto}aside{height:auto;overflow:visible}#stage{min-height:480px}.part-list{max-height:260px}}@media(max-width:520px){.camera-btn{min-width:0;padding:9px}.camera-btn span{display:none}#environment{left:15px;right:15px;top:16px;font-size:9px}#focus-label{left:15px;right:15px;bottom:85px}.camera-panel{bottom:12px}aside{padding:20px}h1{font-size:31px}}
