@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#101514;--panel:#171d1b;--cream:#f4f1e8;--muted:#9ba8a1;--line:#364039;--lime:#dcff72;--orange:#ef9f6e;--blue:#9dc7ce;--green:#b7ceab;font-family:'DM Sans',sans-serif;color:var(--cream);background:var(--bg)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;max-width:1920px;margin:auto;background:radial-gradient(ellipse 70% 80% at 55% 40%,#1c2822 0%,var(--bg) 70%)}.topbar{height:66px;border-bottom:1px solid #ffffff22;padding:0 3.2%;display:flex;align-items:center;justify-content:space-between;font:500 11px 'DM Mono',monospace;letter-spacing:.13em}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:28px;height:28px;border:1px solid var(--lime);display:grid;place-items:center;color:var(--lime);font:700 17px 'Space Grotesk';letter-spacing:-.12em;transform:rotate(-8deg)}.brand-mark span{font-size:8px;align-self:start;margin-top:3px}.brand i{color:#758078;font-style:normal;margin:0 4px}.topbar-right{display:flex;align-items:center;gap:10px;color:#bec9bd}.status-light{width:6px;height:6px;background:var(--lime);border-radius:50%;box-shadow:0 0 12px var(--lime)}.topbar-rule{width:1px;height:16px;background:#ffffff35;margin:0 13px}.layout{display:grid;grid-template-columns:minmax(250px,23%) minmax(450px,1fr) minmax(295px,24%);gap:0;min-height:calc(100vh - 116px)}.intro{padding:70px 8% 40px 14%;border-right:1px solid #ffffff20;display:flex;flex-direction:column}.eyebrow,.section-kicker,.viewer-heading,.stage-instructions,.separation-label,.control-actions,.part-number,.part-bottom,.download-all,.print-note,.footer,.intro-facts span{font-family:'DM Mono',monospace}.eyebrow{color:var(--lime);font-size:10px;letter-spacing:.15em;display:flex;align-items:center;gap:10px;white-space:nowrap}.eyebrow-line{display:block;width:20px;height:1px;background:var(--lime)}h1,h2,h3,p{margin:0}h1{font-family:'Space Grotesk';font-size:clamp(48px,5vw,96px);font-weight:700;line-height:.93;letter-spacing:-.09em;margin-top:44px;margin-left:-5px}h1 span{display:block;color:var(--lime)}h1 sup{font:400 14px 'DM Mono';letter-spacing:0;vertical-align:top;margin-left:9px;color:var(--lime)}.subtitle{font:500 clamp(21px,2vw,35px)/1.14 'Space Grotesk';letter-spacing:-.04em;margin-top:35px}.subtitle em,.part-panel h2 em{color:var(--lime);font-style:normal}.intro-copy{font-size:14px;line-height:1.7;color:#b5c0b8;max-width:270px;margin-top:25px}.intro-facts{border-top:1px solid var(--line);margin-top:auto;padding-top:30px;display:grid;gap:22px}.intro-facts div{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.intro-facts strong{font:600 39px 'Space Grotesk';line-height:1;letter-spacing:-.07em}.intro-facts .unit{font-size:16px;margin-left:3px}.intro-facts span{font-size:10px;color:#aab5ad;letter-spacing:.1em;text-align:right}.viewer-panel{padding:23px 26px 30px;min-width:0;display:flex;flex-direction:column}.viewer-heading{height:40px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.13em;color:#bdc6be}.viewer-heading .crosshair{color:var(--lime);font-size:17px;font-style:normal;margin-right:8px;vertical-align:-1px}.viewer-heading #view-mode{color:var(--lime)}.stage{position:relative;min-height:470px;flex:1;overflow:hidden;border:1px solid #495347;border-radius:3px;background:radial-gradient(ellipse 65% 65% at 52% 43%,#354138 0%,#222e27 48%,#18211d 100%)}.stage-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#d8f3c411 1px,transparent 1px),linear-gradient(90deg,#d8f3c411 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,transparent 3%,#000 85%);opacity:.5}.stage-glow{position:absolute;left:50%;top:53%;width:360px;height:360px;transform:translate(-50%,-50%);border-radius:50%;background:#b8cf9136;filter:blur(90px);pointer-events:none}.canvas-host{position:absolute;inset:0}.canvas-host canvas{display:block;width:100%;height:100%;touch-action:none}.stage-instructions{position:absolute;bottom:20px;left:20px;right:20px;display:flex;justify-content:center;gap:25px;pointer-events:none;color:#c5d0c3;font-size:10px;letter-spacing:.08em}.reset-view{position:absolute;top:18px;right:18px;width:35px;height:35px;border:1px solid #aab9aa7a;color:var(--cream);background:#18231dd9;border-radius:50%;font-size:23px;line-height:30px}.reset-view:hover{background:#364739}.loading{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;gap:16px;background:#1c2922df;font:11px 'DM Mono';letter-spacing:.15em;z-index:5}.loading[hidden],.model-error[hidden]{display:none}.loading b{color:var(--lime);margin-left:8px}.loading-ring{width:25px;height:25px;border:2px solid #dfff7140;border-top-color:var(--lime);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.model-error{position:absolute;inset:20%;display:grid;place-items:center;text-align:center;background:#202a24e8;color:var(--cream);z-index:6}.model-label{position:absolute;display:flex;align-items:center;gap:8px;transform:translate(-50%,-50%);pointer-events:none;font:500 9px 'DM Mono';letter-spacing:.1em;white-space:nowrap;color:var(--cream);text-shadow:0 1px 8px #000}.model-label b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--lime);color:#172019;font-size:10px;text-shadow:none}.model-label span{padding:7px 9px;background:#152019c7;border:1px solid #adc28e70}.control-bar{padding-top:23px}.separation-label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;color:#c9d3c8}.separation-label strong{color:var(--lime);font-size:11px}.control-bar input[type=range]{width:100%;margin:16px 0 20px;appearance:none;background:#596658;height:2px;cursor:pointer}.control-bar input[type=range]::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--lime);border:4px solid #243027;box-shadow:0 0 0 1px var(--lime)}.control-bar input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--lime);border:3px solid #243027}.control-actions{display:flex;gap:7px}.control-actions button{border:1px solid #596558;padding:10px 12px;background:transparent;color:#d7dfd4;font-size:10px;letter-spacing:.07em;white-space:nowrap;flex:1}.control-actions button.active,.control-actions button:hover{background:var(--lime);border-color:var(--lime);color:#1b251b}.control-actions #spin{margin-left:auto}.control-actions #spin span{font-size:15px;margin-left:4px}.part-panel{padding:70px 9% 36px;border-left:1px solid #ffffff20;display:flex;flex-direction:column}.section-kicker{font-size:10px;letter-spacing:.15em;color:var(--lime);display:flex;justify-content:space-between}.section-kicker span{color:#839087}.part-panel h2{font:500 clamp(26px,2.6vw,45px)/1.04 'Space Grotesk';letter-spacing:-.065em;margin-top:28px}.part-panel-copy{font-size:13px;line-height:1.6;color:#adb8ad;margin-top:21px;max-width:300px}.parts{margin-top:28px;border-top:1px solid var(--line)}.part-card{border-bottom:1px solid var(--line);padding:16px 0;cursor:pointer;transition:opacity .2s,background .2s}.part-card:hover,.part-card.focused{background:#24312899}.part-card.muted{opacity:.45}.part-top{display:flex;justify-content:space-between;align-items:center}.part-number{font-size:12px;color:var(--lime);display:flex;align-items:center;gap:9px}.part-swatch{width:8px;height:8px;border-radius:50%;display:inline-block}.swatch-head{background:var(--orange)}.swatch-torso{background:var(--blue)}.swatch-legs{background:var(--green)}.part-eye{border:0;background:none;color:#cbd4c7;font-size:18px;padding:2px}.part-card h3{font:500 21px 'Space Grotesk';letter-spacing:-.045em;margin:8px 0 3px}.part-card h3 span{color:#728175}.part-card p{font-size:11px;color:#a9b5a8;line-height:1.45}.part-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:10px;color:#b2bfb1;letter-spacing:.07em}.part-bottom a{color:var(--lime);padding:5px 0 5px 8px}.part-bottom a:hover{text-decoration:underline}.part-bottom a span{font-size:14px}.download-all{background:var(--lime);color:#172019;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-size:11px;letter-spacing:.08em;font-weight:500;margin-top:25px}.download-all:hover{background:#eaff9e}.download-all strong{font-size:18px}.print-note{color:#8c9a8d;font-size:9px;line-height:1.6;letter-spacing:0;margin-top:16px}.footer{height:50px;border-top:1px solid #ffffff22;padding:0 3.2%;display:flex;align-items:center;justify-content:space-between;color:#87968a;font-size:9px;letter-spacing:.1em}@media(max-width:1180px){.layout{grid-template-columns:minmax(220px,26%) minmax(400px,1fr)}.part-panel{grid-column:1/-1;border-left:0;border-top:1px solid #ffffff20;padding:35px 4%;display:grid;grid-template-columns:1fr 2fr;gap:12px 35px}.part-panel h2{grid-column:1}.part-panel-copy{grid-column:1}.parts{grid-column:2;grid-row:1/5;margin:0}.download-all,.print-note{grid-column:1}.intro{padding-left:10%}.stage{min-height:560px}}@media(max-width:740px){.topbar{height:58px;padding:0 20px}.topbar-right{font-size:0}.topbar-right .status-light{display:block}.topbar-rule{display:none}.layout{display:block}.intro{border-right:0;padding:45px 24px 30px}.intro h1{font-size:67px;margin-top:27px}.subtitle{margin-top:19px}.intro-copy{margin-top:15px;max-width:520px}.intro-facts{margin-top:25px;display:flex;gap:24px;border:0;padding:0}.intro-facts div{display:block}.intro-facts strong{font-size:25px;display:block}.intro-facts span{font-size:8px}.viewer-panel{padding:8px 12px 28px}.viewer-heading{padding:0 10px}.stage{min-height:510px}.stage-instructions{gap:10px;font-size:8px}.stage-instructions span:last-child{display:none}.control-bar{padding:20px 12px 0}.control-actions{flex-wrap:wrap}.control-actions button{padding:10px 8px;font-size:9px}.part-panel{display:block;padding:38px 24px}.part-panel h2{font-size:38px}.part-panel-copy{max-width:500px}.parts{margin-top:24px}.footer{padding:0 20px}.footer span:nth-child(2){display:none}}@media(max-width:420px){.intro h1{font-size:57px}.stage{min-height:430px}.model-label span{display:none}.stage-instructions{justify-content:flex-start}.footer{font-size:8px}}
