:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#e4eee8;background:#102b33;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;background:#24434a;color:#e8eee4;border:1px solid #587075;border-radius:8px;padding:10px 15px}button:hover{background:#35565d}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #f8c19b;outline-offset:3px}main{min-height:100vh;padding:36px 4vw}header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}small{color:#eaa68f;letter-spacing:.17em;font-size:11px;font-weight:700}h1{font-size:clamp(32px,4vw,62px);line-height:1.04;letter-spacing:-.04em;margin:12px 0}em{font-family:Georgia,serif;font-weight:400;color:#efbca6}header p{color:#a5bbb9;line-height:1.7}h2{font-family:Georgia,serif;font-size:27px;font-weight:400}.stage{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:24px}.specimen{border:1px solid #3b565d;border-radius:18px;background:radial-gradient(ellipse at center,#31545b,#18353d 67%);overflow:hidden;position:relative}.tag{padding:22px;font-family:Georgia,serif;font-size:22px}.tag span{display:block;font-family:system-ui;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#9ab7b6;margin-top:6px}.scene{min-height:380px;width:min(100%,600px);aspect-ratio:1;margin:auto;position:relative}.scene canvas{display:block;width:100%;height:100%;touch-action:manipulation}.scene-error{position:absolute;bottom:20px;left:20px;right:20px;font-size:12px;background:#102b33;padding:15px}.orbit{padding:20px;display:flex;justify-content:space-between;gap:16px;align-items:center;color:#a4c0be;font-size:12px}.orbit input{width:120px}aside{padding:28px;background:#1c3940;border:1px solid #39545b;border-radius:18px;max-height:800px;overflow:auto}label{display:block;font-size:12px;color:#bdd0cb;margin:10px 0}input,select,textarea{background:#112c33;border:1px solid #54716f;color:#edf0e6;border-radius:5px;padding:8px;width:100%;margin-top:6px}input[type=color]{height:36px}.row{display:flex;gap:12px}.row>*{flex:1;min-width:0}fieldset{border:1px solid #496365;border-radius:9px;margin-top:18px}legend{font-size:12px;color:#efb79c}.hint{font-size:12px;line-height:1.7;color:#aac2bd}.lower{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:42px}.components{max-height:410px;overflow:auto}.components button{display:flex;width:100%;gap:10px;text-align:left;margin:6px 0;font-size:12px;align-items:center}.components button span{width:10px;height:10px;border-radius:50%;flex-shrink:0}.components b{margin-left:auto;color:#aac2bd}.components .selected{border-color:#efb79c;background:#385054}textarea{height:320px;resize:vertical;font:12px/1.6 ui-monospace,monospace;tab-size:2}.actions,.exports{display:flex;flex-wrap:wrap;gap:8px}.exports{margin:32px 0 14px}.status{color:#f1c0a7;min-height:22px}footer{border-top:1px solid #3a565d;margin-top:32px;padding-top:16px;font-size:11px;color:#9fb9b5;line-height:1.7}footer button{font-size:11px;margin-right:8px}.focus .lower,.focus aside{display:none}.focus .stage{grid-template-columns:1fr}.focus .specimen{min-height:75vh}@media(max-width:800px){main{padding:20px}.stage,.lower{grid-template-columns:1fr}header p{display:none}.scene{min-height:250px}aside{max-height:none}header{align-items:start}.orbit{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
