:root{color:#c8f8e8;font-synthesis:none;text-rendering:geometricprecision;--ink:#c8f8e8;--muted:#89bcad;--dim:#74a394;--line:#215d50;--control-line:#286e5e;--line-bright:#3a9b82;--panel:#04120ff5;--panel-light:#081f19f0;--cyan:#74f7d2;--amber:#f2b84b;--danger:#ef7769;--font-micro:10px;--font-caption:11px;--font-control:12px;--font-body:13px;--font-accent:14px;background:#020705;font-family:Courier New,Courier,monospace}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0}body{overflow:hidden}button,input,select{color:inherit;font:inherit}button,select{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.68}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:1px solid var(--amber);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{background:#020705;grid-template:"header header header"68px"tools viewport inspector"minmax(0,1fr)/210px minmax(0,1fr) 292px;width:100%;height:100%;display:grid}.command-header{z-index:20;border-bottom:1px solid var(--line-bright);background:linear-gradient(90deg,#74f7d212,#0000 32%),#061511;grid-area:header;grid-template-columns:220px minmax(360px,1fr) auto;align-items:center;min-width:0;display:grid;box-shadow:0 1px 16px #010f0cd9}.wordmark{border-right:1px solid var(--line);align-items:center;gap:11px;min-width:0;height:100%;padding:0 15px;display:flex}.wordmark-mark,.auth-mark{border:1px solid var(--line-bright);width:38px;height:38px;color:var(--cyan);background:linear-gradient(135deg,#74f7d21f,#0000 60%),#061511;place-items:center;display:grid;box-shadow:inset 0 0 12px #74f7d20f}.wordmark-mark svg,.auth-mark svg{width:58%;height:58%}.wordmark div{min-width:0}.wordmark strong{color:var(--cyan);letter-spacing:.12em;font-size:18px;line-height:1;display:block}.design-controls{align-items:center;gap:8px;min-width:0;padding:0 14px;display:flex}.design-name-field{flex:220px;min-width:130px;max-width:360px}.design-name-field input,.design-controls select{border:1px solid var(--control-line);width:100%;height:34px;color:var(--ink);background:#010a08bf;border-radius:0}.design-name-field input{font-size:var(--font-body);letter-spacing:.08em;padding:0 10px;font-weight:700}.design-controls select{color:var(--muted);font-size:var(--font-control);flex:0 168px;padding:0 7px}.header-status{border-left:1px solid var(--line);flex-direction:column;justify-content:center;gap:5px;min-width:170px;height:100%;padding:0 15px;display:flex}.status-lamp{color:var(--muted);font-size:var(--font-caption);letter-spacing:.07em;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;font-weight:700;display:flex;overflow:hidden}.status-lamp i{background:currentColor;border:1px solid;flex:none;width:6px;height:6px;box-shadow:0 0 7px}.status-lamp.green i{color:var(--cyan)}.status-lamp.amber i{color:var(--amber)}.tool-rail,.inspector{z-index:10;background:var(--panel);min-height:0}.tool-rail{border-right:1px solid var(--line);flex-direction:column;grid-area:tools;display:flex}.inspector{border-left:1px solid var(--line);flex-direction:column;grid-area:inspector;display:flex;overflow:hidden}.inspector-tabs{border-bottom:1px solid var(--line);background:#74f7d209;grid-template-columns:1fr 1fr;min-height:36px;display:grid}.inspector-tabs button{min-width:0;color:var(--dim);font-size:var(--font-caption);letter-spacing:.1em;background:0 0;border:0;border-bottom:2px solid #0000;justify-content:center;align-items:center;gap:7px;padding:0 8px;font-weight:700;display:flex}.inspector-tabs button+button{border-left:1px solid var(--line)}.inspector-tabs button:hover,.inspector-tabs button.active{border-bottom-color:var(--amber);color:var(--cyan);background:#74f7d20d}.inspector-tabs b{min-width:18px;color:var(--amber);font-size:var(--font-micro);letter-spacing:0;text-align:center;background:#f2b84b1a;padding:2px 4px;font-weight:700}.inspector-panel{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.panel-heading{border-bottom:1px solid var(--line);min-height:36px;color:var(--muted);font-size:var(--font-caption);letter-spacing:.13em;background:#74f7d209;justify-content:space-between;align-items:center;padding:0 12px;font-weight:700;display:flex}.panel-heading b{color:var(--cyan);font-size:var(--font-caption);font-weight:400}.rail-label{color:var(--dim);font-size:var(--font-caption);letter-spacing:.13em;margin:12px 12px 7px;font-weight:700}.shape-tools{gap:5px;padding:0 8px 12px;display:grid}.shape-button{border:1px solid var(--control-line);height:45px;color:var(--ink);text-align:left;background:#091e199e;border-radius:0;grid-template-columns:38px 1fr auto;align-items:center;padding:0 9px 0 6px;display:grid}.shape-button:hover{border-color:var(--line-bright);color:#fff;background:#1c524459}.shape-button>span:nth-child(2){font-size:var(--font-control);letter-spacing:.04em;text-transform:uppercase;font-weight:700;line-height:1.2}.shape-button small{color:var(--dim);font-size:var(--font-micro)}.shape-icon{width:28px;height:28px;color:var(--cyan);fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.9;shape-rendering:geometricprecision;display:block;overflow:visible}.shape-icon__face{fill:currentColor;fill-opacity:.13}.shape-icon__detail{fill:none;opacity:.68}.shape-button:hover .shape-icon{color:#b5ffea;opacity:1}.component-list-heading{border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:34px;color:var(--dim);font-size:var(--font-caption);letter-spacing:.13em;justify-content:space-between;align-items:center;padding:0 9px 0 12px;font-weight:700;display:flex}.component-list-heading button,.readout-heading button{color:var(--muted);font-size:var(--font-caption);background:0 0;border:0;padding:4px 6px;font-weight:700}.component-list{flex:1;min-height:0;padding:5px 6px;overflow:auto}.component-list>p{color:var(--dim);font-size:var(--font-caption);margin:18px 7px}.component-list>button{width:100%;min-height:38px;color:var(--muted);text-align:left;background:0 0;border:0;border-left:2px solid #0000;align-items:center;gap:8px;padding:4px 7px;display:flex}.component-list>button:hover,.component-list>button.active{border-left-color:var(--amber);color:var(--ink);background:#f2b84b12}.component-list>button>span{color:var(--dim);font-size:var(--font-micro)}.component-list>button div{min-width:0}.component-list strong,.component-list small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.component-list strong{font-size:var(--font-control);font-weight:700}.component-list small{color:var(--dim);font-size:var(--font-caption);text-transform:uppercase;margin-top:3px}.viewport-panel{background:#010403;grid-area:viewport;min-width:0;min-height:0;padding:9px;position:relative}.viewport-frame{border:1px solid var(--line-bright);background:#020907;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 45px #105e4a24,0 0 20px #0b5f4817}.viewport-frame canvas{cursor:crosshair;display:block;width:100%!important;height:100%!important}.viewport-label{z-index:5;color:var(--dim);font-size:var(--font-caption);letter-spacing:.1em;pointer-events:none;justify-content:space-between;gap:16px;font-weight:700;display:flex;position:absolute;bottom:16px;left:24px;right:24px}.viewport-label span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.viewport-label span:last-child{color:var(--muted);flex:none}.viewport-controls{z-index:7;align-items:stretch;gap:7px;display:flex;position:absolute;top:23px;right:23px}.view-modes{border:1px solid var(--line-bright);background:#020b09db;display:flex}.canvas-color-control{border:1px solid var(--line-bright);height:30px;color:var(--dim);background:linear-gradient(135deg,#74f7d214,#0000 62%),#020b09e6;align-items:center;display:flex;position:relative}.canvas-color-control>span{place-items:center;width:31px;height:28px;display:grid}.canvas-color-control input{border:0;border-left:1px solid var(--line);cursor:pointer;background:0 0;width:31px;height:28px;padding:5px}.canvas-color-control input::-webkit-color-swatch-wrapper{padding:0}.canvas-color-control input::-webkit-color-swatch{border:1px solid #c8f8e8ad;border-radius:0}.canvas-color-control input::-moz-color-swatch{border:1px solid #c8f8e8ad;border-radius:0}.edit-actions{z-index:7;gap:7px;display:flex;position:absolute;top:23px;left:23px}.viewport-controls,.edit-actions{border:1px solid var(--line);background:#061511;padding:5px;box-shadow:inset 0 0 12px #74f7d20a,0 0 14px #010a08b8}.icon-button{border:1px solid var(--line-bright);width:34px;height:34px;color:var(--muted);background:linear-gradient(135deg,#74f7d21a,#0000 58%),#020b09e6;border-radius:0;place-items:center;padding:0;display:grid;position:relative;box-shadow:inset 0 0 10px #74f7d20a,0 0 10px #020b09b3}.icon-button:before{content:"";opacity:.55;pointer-events:none;border-top:1px solid;border-right:1px solid;width:4px;height:4px;position:absolute;top:3px;right:3px}.icon-button:hover:not(:disabled){border-color:var(--amber);color:var(--amber);background:#f2b84b17;box-shadow:inset 0 0 12px #f2b84b14,0 0 12px #f2b84b1a}.icon-button svg{pointer-events:none}.design-action-button{flex:0 0 34px}.design-action-save{border-color:var(--amber);color:var(--amber)}.design-action-delete{color:var(--danger);border-color:#ef77698c}.design-action-delete:hover:not(:disabled){border-color:var(--danger);color:#ffd5cf;background:#ef77691f;box-shadow:inset 0 0 12px #ef776914,0 0 12px #ef77691a}.view-modes button{height:28px;color:var(--dim);font-size:var(--font-caption);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;padding:0 10px;font-weight:700}.view-modes button+button{border-left:1px solid var(--line)}.view-modes button:hover,.view-modes button.active{color:#08130f;background:var(--cyan)}.view-solid .scanlines{opacity:.045}.view-solid .reticle{opacity:.45}.reticle{z-index:4;pointer-events:none;border:1px solid #74f7d238;width:34px;height:34px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.reticle:before,.reticle:after{content:"";background:#74f7d24d;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.reticle:before{width:52px;height:1px}.reticle:after{width:1px;height:52px}.reticle i{border:1px solid #f2b84b73;position:absolute;inset:11px}.scanlines{z-index:3;opacity:.13;pointer-events:none;background:repeating-linear-gradient(#0000 0 3px,#6effd83d 4px);position:absolute;inset:0}.empty-frame{z-index:6;border:1px solid var(--line-bright);width:260px;color:var(--muted);text-align:center;pointer-events:none;background:#03120ee0;padding:19px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.canvas-loading{z-index:2;color:var(--cyan);font-size:var(--font-caption);letter-spacing:.14em;background-color:#020907;background-image:linear-gradient(#74f7d20a 1px,#0000 1px),linear-gradient(90deg,#74f7d20a 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;place-items:center;display:grid;position:absolute;inset:0}.empty-frame span{color:var(--amber);font-size:var(--font-accent);letter-spacing:.12em;font-weight:700}.empty-frame p{font-size:var(--font-control);margin:8px 0 0}.transform-modes{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:4px;padding:9px;display:grid}.transform-modes button{border:1px solid var(--control-line);height:50px;color:var(--dim);font-size:var(--font-caption);text-transform:uppercase;background:#041612b3;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-weight:700;display:flex}.transform-modes button span{color:var(--muted);font-size:var(--font-accent);font-weight:700}.transform-modes button:hover,.transform-modes button.active{border-color:var(--amber);color:var(--amber);background:#f2b84b14}.transform-modes button.active span{color:var(--amber)}.part-inspector{padding:12px 10px}.part-name-input>span,.color-field>span,.texture-field>span{color:var(--dim);font-size:var(--font-caption);letter-spacing:.12em;margin-bottom:6px;font-weight:700;display:block}.part-name-input input{border:1px solid var(--control-line);width:100%;height:31px;color:var(--ink);font-size:var(--font-control);background:#020b09;border-radius:0;padding:0 8px}.part-id{color:var(--dim);font-size:var(--font-micro);letter-spacing:.05em;padding:6px 2px 12px}.vector-field{border:0;min-width:0;margin:0 0 12px;padding:0}.vector-field legend{color:var(--dim);font-size:var(--font-caption);letter-spacing:.12em;margin-bottom:6px;font-weight:700}.vector-field>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.vector-field label{border:1px solid var(--control-line);background:#020b09;grid-template-columns:16px minmax(0,1fr);align-items:center;height:29px;display:grid;position:relative}.vector-field label>span{border-right:1px solid var(--line);color:var(--amber);font-size:var(--font-caption);align-self:stretch;place-items:center;display:grid}.vector-field input{width:100%;min-width:0;color:var(--ink);font-size:var(--font-caption);appearance:textfield;background:0 0;border:0;outline:0;padding:0 2px 0 5px}.vector-field input::-webkit-inner-spin-button{appearance:none;margin:0}.vector-field input::-webkit-outer-spin-button{appearance:none;margin:0}.vector-field label i{color:var(--dim);font-size:var(--font-micro);pointer-events:none;font-style:normal;position:absolute;right:4px}.shape-features{border:0;min-width:0;margin:0 0 12px;padding:0}.shape-features legend{color:var(--dim);font-size:var(--font-caption);letter-spacing:.12em;margin-bottom:6px;font-weight:700}.shape-features label{border:1px solid var(--control-line);height:32px;color:var(--muted);font-size:var(--font-control);cursor:pointer;background:#020b09;justify-content:space-between;align-items:center;padding:0 8px;display:flex;position:relative}.shape-features input{opacity:0;width:1px;height:1px;position:absolute}.shape-features i{border:1px solid var(--line-bright);background:#041612e6;width:28px;height:14px;position:relative}.shape-features i:after{content:"";background:var(--muted);width:8px;height:8px;transition:transform .12s;position:absolute;top:2px;left:2px}.shape-features input:checked+i{border-color:var(--amber);background:#f2b84b17}.shape-features input:checked+i:after{background:var(--amber);transform:translate(14px)}.shape-features input:focus-visible+i{outline:1px solid var(--amber);outline-offset:2px}.color-field{margin-top:3px;display:block}.color-field>div{border:1px solid var(--control-line);background:#020b09;align-items:center;gap:8px;height:32px;padding:4px 7px;display:flex}.color-field input{background:0 0;border:0;width:24px;height:20px;padding:0}.color-field code{color:var(--muted);font-size:var(--font-caption)}.texture-field{margin-top:12px;display:block}.texture-field select{border:1px solid var(--control-line);width:100%;height:32px;color:var(--ink);font-size:var(--font-control);background:#020b09;border-radius:0;padding:0 8px}.delete-part{width:100%;height:30px;color:var(--danger);font-size:var(--font-caption);letter-spacing:.1em;background:#ef77690a;border:1px solid #ef776973;margin-top:12px;font-weight:700}.inspector-empty{min-height:160px;color:var(--dim);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.selection-box{border:1px solid var(--line);width:42px;height:42px;margin-bottom:15px;transform:rotate(45deg)}.inspector-empty strong{color:var(--muted);font-size:var(--font-control);letter-spacing:.1em}.inspector-empty p{max-width:180px;font-size:var(--font-caption);margin:8px 0;line-height:1.5}.camera-readout{border-top:1px solid var(--line);background:#74f7d206;margin-top:auto;padding:10px}.readout-heading{color:var(--dim);font-size:var(--font-caption);letter-spacing:.1em;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:700;display:flex}.camera-readout code,.camera-readout small{color:var(--cyan);font-size:var(--font-caption);display:block}.camera-readout small{color:var(--muted);margin-top:6px}.webmcp-log-heading{border-bottom:1px solid var(--line);min-height:38px;color:var(--dim);font-size:var(--font-caption);letter-spacing:.1em;justify-content:space-between;align-items:center;padding:0 10px 0 12px;font-weight:700;display:flex}.webmcp-log-heading button{color:var(--muted);font-size:var(--font-caption);background:0 0;border:0;padding:4px 6px;font-weight:700}.webmcp-log-heading button:hover{color:var(--amber)}.webmcp-log-empty{min-height:160px;color:var(--dim);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.webmcp-log-empty strong{color:var(--muted);font-size:var(--font-control);letter-spacing:.1em}.webmcp-log-empty p{font-size:var(--font-caption);margin:8px 0}.webmcp-log ol{gap:8px;margin:0;padding:9px;list-style:none;display:grid}.webmcp-log li{border:1px solid var(--control-line);background:#020b09;min-width:0}.webmcp-log li>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px;display:flex}.webmcp-log li code{min-width:0;color:var(--cyan);font-size:var(--font-caption);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.webmcp-log time{color:var(--dim);font-size:var(--font-micro);flex:none}.webmcp-log pre{max-height:240px;color:var(--muted);font-family:inherit;font-size:var(--font-micro);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:8px;line-height:1.55;overflow:auto}.notice{z-index:50;border:1px solid var(--amber);color:#201703;max-width:380px;font-size:var(--font-body);background:var(--amber);padding:11px 14px;font-weight:700;position:fixed;bottom:25px;right:310px;box-shadow:0 8px 28px #0000008c}.confirmation-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000705c7;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirmation-dialog{border:1px solid var(--danger);width:min(100%,390px);color:var(--ink);background:#061511;padding:22px;box-shadow:inset 0 0 20px #ef77690d,0 18px 50px #000000b8}.confirmation-dialog h2{color:var(--danger);letter-spacing:.06em;margin:0;font-size:18px}.confirmation-dialog p{color:var(--muted);font-size:var(--font-body);margin:14px 0 20px;line-height:1.6}.confirmation-dialog strong{color:var(--ink)}.confirmation-actions{justify-content:flex-end;gap:8px;display:flex}.confirmation-actions button{border:1px solid var(--line-bright);height:34px;color:var(--muted);font-size:var(--font-control);letter-spacing:.08em;background:0 0;padding:0 12px;font-weight:700}.confirmation-actions button:hover:not(:disabled){color:var(--ink);background:#74f7d21a}.confirmation-actions .confirmation-delete{border-color:var(--danger);color:#1e0907;background:var(--danger)}.confirmation-actions .confirmation-delete:hover:not(:disabled){color:#160504;background:#ff9488}.auth-screen{background:radial-gradient(circle,#0a2d23 0,#020705 60%);place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.auth-grid{opacity:.35;background-color:#0000;background-image:linear-gradient(#74f7d21f 1px,#0000 1px),linear-gradient(90deg,#74f7d21f 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:48px 48px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:-20%;transform:perspective(500px)rotateX(58deg)translateY(28%)}.auth-screen section{z-index:2;border:1px solid var(--line-bright);text-align:center;background:#03130fed;width:min(420px,100% - 40px);padding:38px;box-shadow:0 0 60px #30b89329}.auth-mark{width:54px;height:54px;margin:0 auto 22px}.auth-screen h1{color:var(--cyan);letter-spacing:.16em;margin:0;font-size:30px}.auth-screen p{color:var(--muted);font-size:var(--font-body);margin:13px 0 25px;line-height:1.6}.auth-screen a{border:1px solid var(--amber);color:#1d1504;height:38px;font-size:var(--font-control);background:var(--amber);place-items:center;padding:0 18px;font-weight:700;text-decoration:none;display:inline-grid}.auth-screen small{color:var(--danger);font-size:var(--font-caption);margin-top:15px;display:block}@media (width<=1180px){.app-shell{grid-template-columns:184px minmax(0,1fr) 252px}.command-header{grid-template-columns:194px minmax(320px,1fr) 145px}.wordmark strong{letter-spacing:.08em;font-size:16px}.header-status{min-width:0;padding-inline:10px}.design-controls{padding-inline:9px}.design-controls select{flex-basis:126px;min-width:90px}.notice{right:270px}}@media (width<=850px){.app-shell{grid-template:"header"62px"viewport"minmax(0,1fr)"tools"118px/minmax(0,1fr)}.command-header{grid-template-columns:160px minmax(0,1fr)}.wordmark{padding-inline:10px}.wordmark-mark{width:32px;height:32px}.wordmark strong{letter-spacing:.08em;font-size:14px}.header-status{display:none}.design-controls{justify-content:flex-end}.design-name-field{min-width:80px;max-width:none}.design-controls select{flex-basis:118px}.tool-rail{border-top:1px solid var(--line);border-right:0;flex-direction:row;overflow-x:auto}.tool-rail .panel-heading,.rail-label,.component-list-heading,.component-list{display:none}.shape-tools{flex:1;gap:6px;min-width:1280px;padding:8px;display:flex}.shape-button{flex:1;grid-template-columns:32px 1fr;height:100%}.shape-button small{display:none}.inspector{z-index:25;background:#04120fed;width:264px;position:fixed;top:62px;bottom:118px;right:0}.viewport-panel{padding:5px}.viewport-label span:first-child{display:none}.viewport-label{justify-content:flex-start}.notice{bottom:134px;right:280px}}@media (width<=570px){.command-header{grid-template-columns:58px minmax(0,1fr)}.wordmark{justify-content:center;padding:0}.wordmark>div{display:none}.design-controls{gap:5px;padding-inline:6px}.design-name-field input{font-size:var(--font-control)}.viewport-controls{top:75px;left:23px;right:auto}.inspector{display:none}.notice{bottom:134px;left:14px;right:14px}}@media (width<=430px){.design-name-field{display:none}.design-controls select{flex:auto;min-width:0}.canvas-color-control>span{display:none}}@media (width<=360px){.auth-screen section{padding:30px 24px}.auth-screen h1{letter-spacing:.12em;font-size:26px}}
