:root{--paper:#e9e4d9;--paper2:#ddd7ca;--ink:#262727;--muted:#716f69;--red:#dc4a35;--blue:#2e6975;--yellow:#dfa42c;--line:#aaa59a}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--paper);color:var(--ink);font-family:Courier New,ui-monospace,monospace}button,input{font:inherit}button{color:inherit}#app{display:grid;grid-template-rows:64px 1fr 27px;min-width:980px}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:2px solid var(--ink);background:#eee9df;padding:0 17px}.brand{display:flex;align-items:baseline;gap:9px;font-family:Impact,Arial Black,sans-serif;font-size:18px;letter-spacing:.04em}.brand-mark{color:var(--red);font-size:21px}.brand small{font-family:Courier New,ui-monospace,monospace;font-weight:600;font-size:9px;letter-spacing:.16em;color:var(--muted);padding-left:10px;border-left:1px solid var(--line)}.run-controls,.utility-controls{display:flex;align-items:center;gap:7px}.utility-controls{justify-self:end}.control,.text-button{border:1.5px solid var(--ink);background:transparent;height:34px;padding:0 13px;font-size:10px;font-weight:600;letter-spacing:.08em;cursor:pointer;box-shadow:2px 2px 0 transparent;transition:.12s}.control:hover,.text-button:hover{transform:translate(-1px,-1px);box-shadow:2px 2px 0 var(--ink)}.control:active,.text-button:active{transform:none;box-shadow:none}.control.primary{background:var(--red);color:#fffaf0;border-color:var(--ink)}.control.icon{width:34px;padding:0}.text-button{border-color:transparent;padding:0 7px}.workspace{min-height:0;display:grid;grid-template-columns:190px 1fr 184px}.palette,.inspector{background:var(--paper2);min-height:0;position:relative}.palette{border-right:1.5px solid var(--ink)}.inspector{border-left:1.5px solid var(--ink)}.palette-head,.inspector-head{height:37px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 13px;font-size:9px;letter-spacing:.15em;font-weight:600}.part-count{color:var(--muted)}.part-list{padding:7px 8px}.part{width:100%;height:49px;padding:5px 7px;display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;text-align:left;border:1px solid transparent;background:transparent;cursor:pointer}.part:hover{background:#e8e2d6;border-color:var(--line)}.part.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.part b{display:block;font-size:10px;letter-spacing:.07em}.part small{display:block;font-size:7px;margin-top:3px;color:var(--muted);letter-spacing:.06em}.part.active small{color:#aaa79f}kbd{background:#f1ece2;border:1px solid var(--line);border-bottom-width:2px;border-radius:2px;min-width:20px;padding:2px 4px;color:var(--muted);font-size:8px;text-align:center}.part-icon{width:30px;height:28px;display:grid;place-items:center;font-size:20px;position:relative}.ramp-icon:after{content:"";width:28px;border-top:5px solid var(--red);transform:rotate(-20deg)}.wall-icon:after{content:"";width:26px;border-top:7px solid var(--blue)}.bumper-icon:after{content:"";width:23px;height:23px;border-radius:50%;background:var(--yellow);border:2px solid currentColor}.domino-icon:after{content:"";width:10px;height:25px;background:var(--red);border:1px solid currentColor}.portal-icon{color:var(--blue)}.spinner-icon{color:var(--red)}.divider{border-top:1px solid var(--line);margin:5px 6px}.palette-tip{position:absolute;left:14px;bottom:13px;color:var(--muted);font-size:7px;line-height:1.7;letter-spacing:.12em}.canvas-shell{min-width:0;min-height:0;position:relative;overflow:hidden;background-color:#d4d0c6;background-image:radial-gradient(#aaa69d 1px,transparent 1px);background-size:20px 20px}#world{display:block;width:100%;height:100%;cursor:crosshair}.canvas-label{position:absolute;left:11px;top:9px;right:11px;display:flex;justify-content:space-between;pointer-events:none;color:#77746e;font-size:8px;letter-spacing:.12em}.tool-hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:#262727e6;color:#eee9df;padding:8px 12px;font-size:8px;letter-spacing:.06em;pointer-events:none;transition:.2s}.toast{position:absolute;top:44px;left:50%;transform:translate(-50%,-10px);opacity:0;background:var(--ink);color:var(--paper);border:1px solid var(--paper);padding:9px 13px;font-size:9px;transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}.empty-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none}.empty-state.hide{display:none}.empty-state strong{font-family:Impact,Arial Black,sans-serif;font-size:20px;letter-spacing:.03em}.empty-state span{font-size:10px;color:var(--muted)}.empty-state button{pointer-events:auto;margin-top:10px;border:1.5px solid var(--ink);background:transparent;padding:10px 14px;font-size:9px;font-weight:600;letter-spacing:.08em;cursor:pointer}.empty-state button:hover{background:var(--ink);color:var(--paper)}.empty-marble{width:38px;height:38px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;color:var(--red);font-size:23px;background:var(--paper)}.rotation-widget{position:absolute;display:flex;align-items:center;background:var(--ink);color:var(--paper);height:30px;border:1px solid var(--paper)}.rotation-widget.hidden{display:none}.rotation-widget button{width:31px;height:28px;border:0;background:transparent;color:inherit;cursor:pointer}.rotation-widget button:hover{background:var(--red)}.rotation-widget span{font-size:7px;letter-spacing:.1em;padding:0 4px}.inspector-head.second{border-top:1px solid var(--line);margin-top:13px}.stat-block{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.stat-block div{padding:12px 13px}.stat-block div:first-child{border-right:1px solid var(--line)}.stat-block span{display:block;color:var(--muted);font-size:7px;letter-spacing:.12em}.stat-block strong{display:block;font-family:Impact,Arial Black,sans-serif;font-size:23px;margin-top:3px}.meter-row{padding:10px 13px;font-size:7px;color:var(--muted)}.meter{margin-top:6px;height:5px;background:#c1bbae;border:1px solid var(--ink)}.meter i{display:block;width:0%;height:100%;background:var(--red);transition:.2s}.marble-rack{display:flex;gap:7px;padding:13px}.marble-swatch{width:27px;height:27px;border:2px solid transparent;border-radius:50%;background:var(--c);cursor:pointer;box-shadow:inset -4px -4px #00000026}.marble-swatch.active{outline:2px solid var(--ink);outline-offset:2px}.slider-label{display:flex;justify-content:space-between;padding:0 13px;font-size:8px;color:var(--muted)}input[type=range]{width:calc(100% - 26px);margin:10px 13px;accent-color:var(--red)}.inspector-copy{padding:0 13px;font-size:8px;line-height:1.6;color:var(--muted)}.shortcuts{position:absolute;left:13px;right:13px;bottom:13px;display:flex;flex-direction:column;gap:7px;font-size:7px;color:var(--muted)}.shortcuts span{display:flex;gap:7px;align-items:center}footer{border-top:1.5px solid var(--ink);display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:#eee9df;font-size:7px;letter-spacing:.1em;color:var(--muted)}.modal{position:fixed;inset:0;background:#26272773;z-index:20;display:grid;place-items:center}.modal.hidden{display:none}.modal-card{width:390px;padding:31px;position:relative;border:2px solid var(--ink);background:var(--paper);box-shadow:7px 7px 0 var(--ink)}.modal-card h2{margin:8px 0 15px;font-family:Impact,Arial Black,sans-serif;font-size:25px;text-transform:uppercase}.modal-card p{font-size:10px;line-height:1.8}.modal-close{position:absolute;right:10px;top:9px;border:0;background:transparent;font-size:22px;cursor:pointer}.eyebrow{color:var(--red);font-size:8px;letter-spacing:.14em;font-weight:600}@media(max-width:1120px){.inspector{display:none}.workspace{grid-template-columns:175px 1fr}.brand small{display:none}}.hidden-file{display:none}.utility-controls{gap:3px}@media(max-width:1250px){#exportBtn,#importBtn{display:none}}#world{touch-action:none}.catcher-icon{color:var(--blue);font-weight:900}.score-line{display:flex;justify-content:space-between;align-items:center;padding:8px 13px;border-bottom:1px solid var(--line);font-size:8px;letter-spacing:.1em;color:var(--muted)}.score-line strong{font-family:Impact,Arial Black,sans-serif;color:var(--red);font-size:18px}@media(max-width:700px){html,body,#app{min-width:0}#app{grid-template-rows:54px 1fr 22px}.topbar{grid-template-columns:1fr auto;padding:0 9px}.brand{font-size:14px;gap:6px}.brand small,.utility-controls{display:none}.run-controls{justify-self:end;gap:4px}.run-controls .control{height:31px;padding:0 9px;font-size:8px}.run-controls .icon{width:31px;padding:0}.workspace{display:block;position:relative}.canvas-shell{position:absolute;inset:0 0 82px}.palette{position:absolute;z-index:8;left:0;right:0;bottom:0;height:82px;border:0;border-top:2px solid var(--ink);overflow:hidden}.palette-head,.palette-tip,.divider{display:none}.part-list{display:flex;gap:3px;height:100%;overflow-x:auto;padding:6px;scrollbar-width:none}.part{flex:0 0 72px;width:72px;height:68px;padding:4px;display:flex;flex-direction:column;justify-content:center;gap:2px;text-align:center}.part .part-icon{height:27px}.part b{font-size:8px}.part small,.part kbd,.inspector{display:none}.empty-state strong{font-size:15px}.tool-hint{bottom:8px;white-space:nowrap;font-size:0;max-width:90%;overflow:hidden}.tool-hint:after{content:"TAP PARTS · DRAG TO MOVE · DROP TO RUN";font-size:7px}footer span:nth-child(2){display:none}}.properties{padding:9px 13px;display:grid;gap:8px;max-height:210px;overflow:auto}.properties.empty{color:var(--muted);font-size:8px}.prop{display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center}.prop label{font-size:7px;letter-spacing:.08em;color:var(--muted)}.prop output{font-size:8px;font-weight:700}.prop input{grid-column:1/-1;width:100%;margin:0;accent-color:var(--red)}.prop select{grid-column:1/-1;background:var(--paper);border:1px solid var(--ink);font-size:8px;padding:4px}.part-list{overflow-y:auto;max-height:calc(100% - 85px)}.theme-picker{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:8px 13px}.theme-picker button{border:1px solid var(--line);background:transparent;padding:5px 2px;font-size:7px;cursor:pointer}.theme-picker button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.canvas-shell[data-theme=blueprint]{background-color:#aebfc1;background-image:linear-gradient(rgba(38,39,39,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(38,39,39,.12) 1px,transparent 1px);background-size:20px 20px}.canvas-shell[data-theme=night]{background-color:#303333;background-image:radial-gradient(#656766 1px,transparent 1px)}.canvas-shell[data-theme=playroom]{background-color:#d8c6a5;background-image:linear-gradient(30deg,rgba(220,74,53,.08) 12%,transparent 12.5%,transparent 87%,rgba(46,105,117,.08) 87.5%);background-size:42px 42px}.race-badge{position:absolute;top:42px;right:12px;background:var(--yellow);border:1.5px solid var(--ink);padding:5px 8px;font-size:8px;font-weight:700;letter-spacing:.08em;pointer-events:none}.saves-card{width:520px}.save-new{display:grid;grid-template-columns:1fr auto;gap:7px;margin:14px 0}.save-new input{border:1.5px solid var(--ink);background:#f7f2e8;padding:0 11px;font-size:10px}.save-status{font-size:8px;color:var(--muted);min-height:18px}.save-list{display:grid;gap:5px;max-height:330px;overflow:auto}.save-row{display:grid;grid-template-columns:1fr auto auto auto;gap:5px;align-items:center;border-top:1px solid var(--line);padding:7px 0}.save-row b{font-size:10px}.save-row small{display:block;color:var(--muted);font-size:7px;margin-top:2px}.save-row button{border:1px solid var(--ink);background:transparent;padding:5px 7px;font-size:7px;cursor:pointer}.save-row button:hover{background:var(--ink);color:var(--paper)}.save-note{font-size:7px;color:var(--muted);margin:13px 0 0;line-height:1.5}@media(max-width:700px){.palette .part-list{max-height:none;height:100%;overflow-x:auto;overflow-y:hidden}}.inspector{overflow-y:auto;overscroll-behavior:contain}.shortcuts{position:static;padding:16px 13px 20px;border-top:1px solid var(--line)}.properties{max-height:none}.palette-tip{display:none}.text-button:disabled{opacity:.4;cursor:default}.play-mode .palette,.play-mode .inspector,.play-mode .utility-controls,.play-mode .tool-hint,.play-mode .rotation-widget{display:none!important}.play-mode .workspace{grid-template-columns:1fr}.play-mode #world{cursor:default}.play-mode .canvas-shell{inset:0}.play-mode .topbar{grid-template-columns:1fr auto}.play-mode .run-controls{justify-self:end}@media(max-width:700px){.run-controls #modeBtn{font-size:7px;padding:0 6px}.play-mode .canvas-shell{inset:0}.play-mode .workspace{display:block}.play-mode #app{grid-template-rows:54px 1fr 22px}}@media(max-width:700px){.part-list{max-height:none;height:100%;overflow-x:auto;overflow-y:hidden}}
