:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#283039;background:#ded7c8;font-synthesis:none;text-rendering:optimizeLegibility;color-scheme:light;--paper: #f5f0e4;--paper-2: #ebe4d6;--panel: rgba(250, 247, 239, .96);--panel-strong: #f8f4ea;--ink: #293139;--muted: #7c807f;--line: #d2cab9;--line-strong: #bcb29f;--steel: #66747d;--blue: #497f9d;--green: #568a68;--amber: #c98a35;--orange: #d78b39;--red: #ad5d4e}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:1180px;min-height:700px;background:radial-gradient(circle at 16% 10%,rgba(255,255,255,.75),transparent 31%),linear-gradient(135deg,#d8d0bf,#eee8dc 46%,#d9d0bf)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}.desktop-app{position:relative;width:100vw;height:100vh;display:grid;grid-template-columns:clamp(178px,13.7vw,208px) minmax(760px,1fr) clamp(205px,14.5vw,238px);grid-template-rows:68px minmax(0,1fr) 28px;grid-template-areas:"top top top" "library workspace properties" "status status status";gap:0;overflow:hidden;background:#e0dacce6}.eyebrow{margin:0 0 4px;color:#938a7c;font-size:9px;font-weight:850;letter-spacing:.15em}.top-toolbar{grid-area:top;z-index:20;display:grid;grid-template-columns:minmax(360px,1fr) 100px minmax(460px,1fr);align-items:center;gap:14px;padding:8px 14px;border-bottom:1px solid rgba(129,116,94,.28);background:#f9f6eef2;box-shadow:0 7px 24px #493b2717;backdrop-filter:blur(16px)}.mission-summary{display:flex;align-items:center;gap:12px;min-width:0}.level-number{width:45px;height:45px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #c8a16a;border-radius:50%;color:#50351d;background:linear-gradient(145deg,#f7d895,#d99a47);box-shadow:inset 0 2px #ffffffa6,0 4px 12px #704e2629;font-size:14px;font-weight:950}.mission-summary h1{margin:0;color:#2d3439;font-size:19px;line-height:1;letter-spacing:.005em}.mission-copy{margin:5px 0 0;color:#84817b;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.run-state{display:grid;justify-items:center;gap:3px}.mode-chip{min-width:76px;padding:5px 10px;border:1px solid #caa25f;border-radius:999px;color:#5a3d1d;background:#f3d49b;font-size:8px;font-weight:950;letter-spacing:.14em;text-align:center}.run-state b{color:#73736f;font-size:11px;font-variant-numeric:tabular-nums}.simulation-controls{display:flex;align-items:center;justify-content:flex-end;gap:6px}.toolbar-divider{width:1px;height:26px;margin:0 3px;background:#d8d0c2}.tool-button,.wide-action,.connection-button,.project-actions button,.action-grid button,.run-button{border:1px solid #c9c1b3;border-radius:8px;color:#4a5359;background:linear-gradient(180deg,#fffdf8,#ece6dc);box-shadow:inset 0 1px #ffffffb3,0 2px 6px #4c3d2a12;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,background .12s ease,opacity .12s ease}.tool-button:hover:not(:disabled),.wide-action:hover:not(:disabled),.connection-button:hover:not(:disabled),.project-actions button:hover:not(:disabled),.action-grid button:hover:not(:disabled){border-color:#a99b85;background:#fffdf8;box-shadow:0 4px 10px #4c3d2a1a}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.38;filter:grayscale(.25)}.tool-button{height:34px;padding:0 10px;font-size:10px;font-weight:750}.icon-only{width:35px;padding:0;font-size:16px}.run-button{height:42px;min-width:120px;border-color:#b8792e;color:#fffaf0;background:linear-gradient(180deg,#de9a47,#bf7330);box-shadow:inset 0 1px #ffffff61,0 5px 13px #995b2430;font-size:11px;font-weight:900}.run-button:hover:not(:disabled){background:linear-gradient(180deg,#e9a757,#c87b35)}.side-panel{min-height:0;overflow:hidden;background:var(--panel)}.library-panel{grid-area:library;display:flex;flex-direction:column;border-right:1px solid rgba(136,121,97,.22);box-shadow:5px 0 18px #4c3d2a0b}.properties-panel{grid-area:properties;display:flex;flex-direction:column;border-left:1px solid rgba(136,121,97,.22);box-shadow:-5px 0 18px #4c3d2a0b}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:14px 12px 8px}.compact-heading{padding-bottom:6px}.panel-heading h2{margin:0;color:#343b40;font-size:15px}.inspector-heading{border-top:1px solid #ded7ca;padding-top:12px}.panel-badge,.state-badge{padding:3px 6px;border:1px solid #cfc6b6;border-radius:999px;color:#8b857d;background:#f2ece1;font-size:8px;font-weight:850;letter-spacing:.05em}.state-badge.active{color:#355b40;border-color:#8eba9a;background:#dcecdf}.state-badge.fixed{color:#67471e;border-color:#d8b875;background:#f5e4b7}.state-badge.locked{color:#345466;border-color:#9abaca;background:#dcebf1}.panel-description{margin:0;padding:0 12px 10px;color:#88847d;font-size:9px;line-height:1.4}.parts-list{min-height:0;flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:6px;padding:0 9px 10px;scrollbar-width:thin;scrollbar-color:#c7bcaa transparent}.inventory-section-label{grid-column:1 / -1;margin:6px 2px 0;color:#9a9184;font-size:7px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.inventory-section-label:first-child{margin-top:2px}.palette-part{position:relative;min-width:0;min-height:72px;display:grid;grid-template-rows:40px auto;place-items:center;gap:3px;padding:6px 4px 5px;border:1px solid #d4ccbe;border-radius:10px;color:#424a4f;background:linear-gradient(180deg,#fffdf9,#eee8dd);box-shadow:inset 0 1px #ffffffe6,0 2px 6px #4e3d280d;text-align:center}.palette-part:hover:not(:disabled){transform:translateY(-1px);border-color:#b9915b;background:#fffdf9;box-shadow:0 5px 11px #5f45251c}.palette-part.dragging{opacity:.42;transform:scale(.96)}.part-copy{min-width:0;max-width:100%}.part-copy b{display:block;overflow:hidden;color:#4b514f;font-size:9px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.palette-part em{position:absolute;right:4px;top:4px;min-width:22px;padding:2px 4px;border:1px solid rgba(178,132,68,.27);border-radius:999px;color:#9b6d2f;background:#f9e8c5c7;font-size:8px;font-style:normal;font-weight:900}.palette-icon{position:relative;width:48px;height:38px;display:block}.extended-icon{display:grid!important;place-items:center;border-radius:8px;color:#f7f4ed;font-size:23px;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.2)}.ball-icon:before{content:"";position:absolute;left:9px;top:4px;width:31px;height:31px;border:1px solid #707980;border-radius:50%;background:radial-gradient(circle at 31% 25%,#fff 0 7%,#d7dde0 13%,#89959b 39%,#424d53 69%,#20272b);box-shadow:0 5px 7px #4b3d2c30}.plank-icon:before,.lever-icon:before{content:"";position:absolute;left:1px;top:14px;width:46px;height:10px;transform:rotate(-13deg);border:1px solid #7c4a27;border-radius:3px;background:linear-gradient(180deg,#e2ad72,#a46337 55%,#794322);box-shadow:0 4px 5px #50341e2e}.lever-icon:after{content:"";position:absolute;left:19px;top:14px;width:9px;height:9px;border:2px solid #62503e;border-radius:50%;background:#e4b765}.wall-icon:before{content:"";position:absolute;left:2px;top:14px;width:44px;height:11px;transform:rotate(-5deg);border:1px solid #873f3a;border-radius:5px;background:linear-gradient(180deg,#d67b6c,#a24d47);box-shadow:0 4px 5px #5f362b26}.pulley-icon:before{content:"";position:absolute;left:8px;top:2px;width:35px;height:35px;border:5px solid #68767c;border-radius:50%;background:radial-gradient(circle,#dba150 0 12%,#f2eee6 13% 29%,#7d8a90 30% 45%,#49555a 46% 62%,#d8d2c5 63% 67%,#617077 68%);box-shadow:0 4px 6px #40434026}.weight-icon:before{content:"";position:absolute;left:10px;top:2px;width:31px;height:35px;clip-path:polygon(31% 0,69% 0,74% 16%,87% 24%,100% 100%,0 100%,13% 24%,26% 16%);background:linear-gradient(90deg,#4e5a5f,#c1c7c8 42%,#79858a 66%,#444e52);filter:drop-shadow(0 4px 4px rgba(72,63,52,.18))}.domino-icon{background:linear-gradient(145deg,#f1e6d1,#aa9b83);color:#5b5042;font-size:18px}.rubberball-icon{border-radius:50%;background:radial-gradient(circle at 32% 28%,#f6ffff 0 8%,#78c8e6 12% 34%,#3b8fb5 58%,#286682 82%);color:#f3d77c;font-size:15px}.spring-icon{background:linear-gradient(145deg,#7c878b,#49565b);color:#f1c56f;font-size:23px}.magnet-icon{background:linear-gradient(90deg,#c96860 0 48%,#5d91b1 52% 100%);font-size:21px}.sheave-icon{border-radius:50%;background:radial-gradient(circle,#dca351 0 10%,#ebe5d9 11% 24%,#7a888d 25% 45%,#4b595e 46% 57%,#c8c0b1 58% 63%,#65747a 64% 77%,#48555a 78%);font-size:0}.button-icon{background:linear-gradient(180deg,#edc36f 0 32%,#cf7c32 33% 50%,#a8b0af 51% 70%,#677277 71%);font-size:0}.latch-icon{background:linear-gradient(165deg,#c5c9c7 0 28%,#7d898d 29% 57%,#536066 58% 100%);position:relative;font-size:0}.latch-icon:after{content:"";width:7px;height:7px;border-radius:50%;background:#d9a14d;box-shadow:-7px 0 #566269}.connections-card{display:grid;grid-template-columns:1fr;gap:5px;margin:6px 9px 9px;padding:8px;border:1px solid #d5ccbc;border-radius:10px;background:#f0eadfb8}.connections-card .eyebrow{margin-left:3px}.connection-button{height:31px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;font-size:9px;font-weight:800}.connection-button span{color:#a47334}.connection-button.active{color:#fff;border-color:#aa6f2b;background:linear-gradient(180deg,#dca053,#bb742e)}.workspace-panel{grid-area:workspace;min-width:0;min-height:0;display:grid;grid-template-rows:38px minmax(0,1fr);background:linear-gradient(90deg,rgba(115,84,45,.055) 1px,transparent 1px),linear-gradient(rgba(115,84,45,.055) 1px,transparent 1px),#e8e1d4;background-size:28px 28px}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 10px;border-bottom:1px solid rgba(132,113,84,.18);background:#f4f0e7d1}.workspace-header strong{color:#77736d;font-size:9px}.workspace-tools{display:flex;align-items:center;gap:13px}.toggle-control{display:flex;align-items:center;gap:6px;color:#7c7a74;font-size:9px;cursor:pointer}.toggle-control input{accent-color:#b97731}.zoom-hint{color:#9a958b;font-size:8px}.canvas-frame{position:relative;min-width:0;min-height:0;margin:8px 9px 9px;overflow:hidden;border:1px solid rgba(135,116,86,.28);border-radius:14px;background:#f2eee4;box-shadow:0 14px 34px #5a462c1f,inset 0 0 0 1px #ffffff8c}#game-canvas{width:100%;height:100%;display:block;cursor:default}#game-canvas.cursor-move{cursor:grabbing}#game-canvas.cursor-drag{cursor:move}#game-canvas.cursor-rotate,#game-canvas.cursor-tool{cursor:crosshair}.objective-strip{position:absolute;z-index:7;top:12px;left:50%;width:min(430px,53%);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;transform:translate(-50%);pointer-events:none}.objective-strip>span:not(.objective-line){display:flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid rgba(130,113,87,.25);border-radius:999px;color:#6f6b64;background:#fffdf7d1;box-shadow:0 2px 7px #57422612;font-size:7px;font-weight:900;letter-spacing:.1em}.objective-strip i{width:6px;height:6px;border-radius:50%;display:block}.objective-start i{background:#659aba}.objective-finish i{background:#699978}.objective-line{height:1px;background:linear-gradient(90deg,#659aba2e,#c0883e99,#6999782e)}.build-prompt{position:absolute;z-index:7;left:50%;bottom:13px;display:flex;align-items:center;gap:9px;padding:6px 9px;transform:translate(-50%);border:1px solid rgba(132,112,82,.18);border-radius:999px;color:#817a6f;background:#fffdf7c7;pointer-events:none;transition:opacity .2s ease}.build-prompt strong{color:#9a692d;font-size:7px;letter-spacing:.12em}.build-prompt span{font-size:7px}.state-legend{position:absolute;z-index:7;left:10px;bottom:10px;display:flex;gap:9px;padding:5px 7px;border:1px solid rgba(132,112,82,.16);border-radius:999px;background:#fffdf7b8;pointer-events:none}.state-legend span{display:flex;align-items:center;gap:4px;color:#837e75;font-size:7px}.state-legend i{width:6px;height:6px;border-radius:2px}.legend-level{background:#7ea9c0}.legend-fixed{background:#d2a04e}.legend-free{border:1px solid #7b8589;background:transparent}.canvas-corner-label{position:absolute;right:10px;bottom:9px;color:#57544d6b;font-size:7px;font-weight:850;letter-spacing:.11em;pointer-events:none}.task-card{margin:10px 9px 6px;padding:12px;border:1px solid #d1c4ad;border-radius:12px;background:linear-gradient(145deg,#fffdf7,#f1eadc);box-shadow:0 5px 15px #5642290f}.task-card h2{margin:0 0 7px;color:#3c4448;font-size:14px;line-height:1.12}.task-card p:not(.eyebrow){margin:0;color:#807b73;font-size:9px;line-height:1.45}.principles-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.principles-row span{padding:3px 6px;border:1px solid #d4c7b0;border-radius:999px;color:#876b45;background:#faf0da;font-size:7px;font-weight:800}.property-content{min-height:0;overflow:auto;padding:0 9px 8px}.property-group,.project-actions{margin-bottom:7px;padding:9px;border:1px solid #d9d1c4;border-radius:9px;background:#f7f3ead1}.property-group h3,.project-actions h3{margin:0 0 8px;color:#91897d;font-size:8px;letter-spacing:.1em;text-transform:uppercase}.group-title-row{display:flex;align-items:center;justify-content:space-between}.group-title-row span{color:#a77233;font-size:9px;font-weight:800}.numeric-grid,.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.numeric-grid label{color:#8b857b;font-size:8px;font-weight:800}.numeric-grid input,.angle-controls input{width:100%;height:30px;margin-top:4px;border:1px solid #cec5b7;border-radius:6px;outline:none;color:#4e575c;background:#fffdf8;padding:0 7px;font-size:9px;font-variant-numeric:tabular-nums}.numeric-grid input:focus,.angle-controls input:focus{border-color:#bd8b4d;box-shadow:0 0 0 2px #bd8b4d1f}.angle-controls{display:grid;grid-template-columns:34px 1fr 34px;gap:5px}.angle-controls label{position:relative}.angle-controls label span{position:absolute;right:7px;top:8px;color:#9a9389;font-size:9px;pointer-events:none}.angle-controls input{margin:0;padding-right:19px;text-align:center}.wide-action{width:100%;min-height:31px;padding:0 8px;font-size:8px;font-weight:800}.wide-action+.wide-action{margin-top:5px}.wide-action.secondary{color:#777f82;background:#f3eee6}.action-grid button,.project-actions button{min-height:30px;padding:0 6px;font-size:8px;font-weight:800}.danger-button{color:#8d4d43!important;border-color:#d7b4ab!important;background:#f8e7e2!important}.project-actions{margin:auto 9px 9px}.properties-panel:not(.has-selection) .property-content{opacity:.42;pointer-events:none}.status-bar{grid-area:status;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:0 10px;border-top:1px solid rgba(133,115,88,.2);color:#858178;background:#f6f2e9f0;font-size:8px}.status-light{width:6px;height:6px;border-radius:50%;background:#c9903f;box-shadow:0 0 7px #c9903f73}#status-message{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-shortcuts{color:#a09b92;font-size:7px}.palette-ghost{position:fixed;z-index:1000;left:0;top:0;min-width:100px;height:38px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid #bb8544;border-radius:9px;color:#6c4924;background:#f4dbac;box-shadow:0 12px 28px #533b1f33;font-size:9px;font-weight:900;pointer-events:none;will-change:transform}.result-card{position:absolute;z-index:60;left:50%;top:50%;width:350px;padding:25px;border:1px solid #c9b993;border-radius:16px;color:#384146;background:linear-gradient(145deg,#fffdf7,#eee5d5);box-shadow:0 25px 70px #43321f47;text-align:center;transform:translate(-50%,-50%) scale(.95);opacity:0;pointer-events:none;transition:.18s ease}.result-card.visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.result-icon{width:52px;height:52px;display:grid;place-items:center;margin:0 auto 13px;border-radius:50%;color:#36543e;background:#d6ead8;font-size:25px;font-weight:950}.result-card h2{margin:0 0 7px;font-size:21px}.result-card>p:not(.eyebrow){margin:0;color:#817b72;font-size:11px}.result-card b{display:block;margin:15px 0;color:#a9702f;font-size:16px}.result-card button{height:39px;padding:0 17px;border:1px solid #bb8342;border-radius:9px;color:#fff;background:#c9883b;font-size:9px;font-weight:900}.fatal-error{position:absolute;z-index:100;left:50%;top:50%;width:min(620px,calc(100vw - 40px));padding:22px;transform:translate(-50%,-50%);border:2px solid #bc6956;border-radius:12px;color:#6a352c;background:#f6ded7;box-shadow:0 18px 50px #0000002e;text-align:center}.fatal-error strong,.fatal-error span,.fatal-error small{display:block}.fatal-error span{margin:10px 0}.fatal-error small{color:#8e5b50}.desktop-app.simulating .library-panel,.desktop-app.simulating .properties-panel{opacity:.66;pointer-events:none}.desktop-app.simulating .build-prompt{opacity:0}.desktop-app.completed:after{content:"";position:absolute;z-index:50;inset:0;background:#483b283d;pointer-events:none}@media(max-width:1320px){.desktop-app{grid-template-columns:174px minmax(690px,1fr) 205px}.top-toolbar{grid-template-columns:minmax(300px,1fr) 88px minmax(430px,1fr);gap:9px}.mission-copy{display:none}.palette-part{min-height:66px}.part-copy b{font-size:8px}.status-shortcuts{display:none}}@media(max-height:820px){.desktop-app{grid-template-rows:62px minmax(0,1fr) 26px}.top-toolbar{padding-top:6px;padding-bottom:6px}.palette-part{min-height:61px;grid-template-rows:35px auto}.palette-icon{transform:scale(.9)}.task-card{padding:9px}.task-card p:not(.eyebrow){display:none}.canvas-frame{margin:6px}}.desktop-app{background:radial-gradient(circle at 48% 2%,rgba(255,255,255,.62),transparent 34%),linear-gradient(135deg,#d9d1c1,#eee8dc 48%,#d8cfbf)}.top-toolbar{box-shadow:0 8px 26px #4c3d2a17,inset 0 -1px #816f540d}.level-number{box-shadow:inset 0 2px #ffffff9e,0 0 0 4px #c98a350e,0 5px 14px #6346231f}.library-panel{box-shadow:5px 0 22px #5642280e}.properties-panel{box-shadow:-5px 0 22px #5642280e}.palette-part{transition:transform .13s ease,border-color .13s ease,box-shadow .13s ease,background .13s ease}.palette-part:hover:not(:disabled){transform:translateY(-2px)}.canvas-frame:before{content:"";position:absolute;z-index:5;inset:0;border-radius:inherit;box-shadow:inset 0 18px 35px #71563109,inset 0 -16px 28px #71563109;pointer-events:none}.run-button{position:relative;overflow:hidden}.run-button:after{content:"";position:absolute;top:-60%;left:-35%;width:25%;height:220%;transform:rotate(20deg);background:#ffffff38;transition:left .35s ease}.run-button:hover:after{left:115%}.connection-button.active{box-shadow:0 4px 10px #91581f26}.desktop-app.simulating .objective-strip{opacity:.62}.result-card{box-shadow:0 30px 90px #47341f47,0 0 0 6px #ca9b570f}.desktop-app[data-level-id=first-ramp]{--l1-bg: #e9eef5;--l1-panel: rgba(255,255,255,.88);--l1-panel-strong: rgba(255,255,255,.96);--l1-ink: #172033;--l1-muted: #748096;--l1-line: rgba(79,98,131,.14);--l1-accent: #5b6fe7;--l1-accent-2: #7b8df2;--l1-success: #2ba579;--l1-warm: #f4aa4f;grid-template-columns:0 minmax(0,1fr) 0;grid-template-rows:82px minmax(0,1fr) 0;background:var(--l1-bg)}.desktop-app[data-level-id=first-ramp] .palette-part:not([data-kind=plank]),.desktop-app[data-level-id=first-ramp] .inventory-section-label,.desktop-app[data-level-id=first-ramp] .connections-card,.desktop-app[data-level-id=first-ramp] .property-group[hidden],.desktop-app[data-level-id=first-ramp] .project-actions[hidden],.desktop-app[data-level-id=first-ramp] #camera-button[hidden]{display:none!important}.desktop-app[data-level-id=first-ramp] .top-toolbar{grid-template-columns:minmax(380px,1fr) auto auto;gap:18px;margin:12px 18px 0;padding:9px 11px 9px 14px;border:1px solid rgba(74,94,126,.11);border-radius:20px;background:#ffffffe0;box-shadow:0 12px 35px #26344d1a,inset 0 1px #ffffffe6;backdrop-filter:blur(24px) saturate(1.15)}.desktop-app[data-level-id=first-ramp] .mission-summary{gap:11px}.desktop-app[data-level-id=first-ramp] .level-number{width:46px;height:46px;border:0;border-radius:15px;color:#fff;background:linear-gradient(145deg,var(--l1-accent-2),var(--l1-accent));box-shadow:0 9px 20px #566ae047,inset 0 1px #ffffff47;font-size:14px}.desktop-app[data-level-id=first-ramp] .mission-summary .eyebrow{margin-bottom:3px;color:#8993a6;font-size:8px;letter-spacing:.14em}.desktop-app[data-level-id=first-ramp] .mission-summary h1{color:var(--l1-ink);font-size:20px;letter-spacing:-.02em}.desktop-app[data-level-id=first-ramp] .mission-copy{max-width:610px;margin-top:4px;color:var(--l1-muted);font-size:10px}.desktop-app[data-level-id=first-ramp] .run-state{min-width:76px;padding:5px 10px;border:1px solid var(--l1-line);border-radius:14px;background:#f5f7fbd1}.desktop-app[data-level-id=first-ramp] .mode-chip{min-width:0;padding:0;border:0;color:#5c6880;background:transparent;font-size:7px;letter-spacing:.11em}.desktop-app[data-level-id=first-ramp] .run-state b{color:#303b52;font-size:12px}.desktop-app[data-level-id=first-ramp] .simulation-controls{gap:7px}.desktop-app[data-level-id=first-ramp] .toolbar-divider{background:#4f628321}.desktop-app[data-level-id=first-ramp] .tool-button{height:36px;border:1px solid rgba(76,94,124,.13);border-radius:11px;color:#536078;background:#f7f9fce0;box-shadow:none}.desktop-app[data-level-id=first-ramp] .tool-button:hover:not(:disabled){border-color:#5368aa47;background:#fff;box-shadow:0 6px 14px #27365014}.desktop-app[data-level-id=first-ramp] .run-button{min-width:158px;height:44px;border:0;border-radius:13px;color:#fff;background:linear-gradient(135deg,#6e82ef,#5267dd);box-shadow:0 9px 22px #485dd742,inset 0 1px #ffffff47;font-size:10px;letter-spacing:.01em}.desktop-app[data-level-id=first-ramp] .run-button:hover:not(:disabled){transform:translateY(-1px);background:linear-gradient(135deg,#7d90f5,#5d71e4);box-shadow:0 12px 25px #485dd74f}.desktop-app[data-level-id=first-ramp] .run-button.level-ready{background:linear-gradient(135deg,#39b98b,#25996f);box-shadow:0 10px 24px #279d7145,inset 0 1px #ffffff47}.desktop-app[data-level-id=first-ramp] .workspace-panel{grid-template-rows:minmax(0,1fr);background:var(--l1-bg)}.desktop-app[data-level-id=first-ramp] .workspace-header{display:none}.desktop-app[data-level-id=first-ramp] .canvas-frame{margin:10px 18px 18px;border:1px solid rgba(64,84,116,.12);border-radius:26px;background:#f5f8fb;box-shadow:0 20px 55px #2b3a531f,inset 0 0 0 1px #ffffffb3}.desktop-app[data-level-id=first-ramp] .objective-strip,.desktop-app[data-level-id=first-ramp] .build-prompt,.desktop-app[data-level-id=first-ramp] .state-legend,.desktop-app[data-level-id=first-ramp] .canvas-corner-label{display:none}.desktop-app[data-level-id=first-ramp] .library-panel{position:absolute;z-index:24;left:32px;top:106px;width:202px;min-height:0;overflow:visible;border:1px solid rgba(71,91,123,.12);border-radius:20px;background:var(--l1-panel);box-shadow:0 18px 44px #26344d21,inset 0 1px #ffffffdb;backdrop-filter:blur(22px) saturate(1.12)}.desktop-app[data-level-id=first-ramp] .library-panel .panel-heading{padding:13px 14px 6px}.desktop-app[data-level-id=first-ramp] .library-panel .panel-heading .eyebrow{color:#929caf;font-size:7px}.desktop-app[data-level-id=first-ramp] .library-panel .panel-heading h2{color:var(--l1-ink);font-size:14px}.desktop-app[data-level-id=first-ramp] .panel-badge{border:0;color:#5c6fd7;background:#5c6fd71a;font-size:8px}.desktop-app[data-level-id=first-ramp] .parts-list{min-height:auto;overflow:visible;grid-template-columns:1fr;padding:7px 12px 13px}.desktop-app[data-level-id=first-ramp] .palette-part[data-kind=plank]{min-height:126px;grid-template-rows:72px auto;border:1px solid rgba(81,99,129,.12);border-radius:17px;background:linear-gradient(150deg,#fffffffa,#eff3f8eb);box-shadow:0 8px 18px #2f3d5412,inset 0 1px #fffffff2}.desktop-app[data-level-id=first-ramp] .palette-part[data-kind=plank]:hover:not(:disabled){transform:translateY(-2px);border-color:#596dde47;box-shadow:0 13px 24px #3c4c6b1f}.desktop-app[data-level-id=first-ramp] .palette-part[data-kind=plank] .palette-icon{width:82px;height:60px;transform:scale(1.38)}.desktop-app[data-level-id=first-ramp] .palette-part[data-kind=plank] .part-copy b{color:#273248;font-size:11px}.desktop-app[data-level-id=first-ramp] .palette-part[data-kind=plank] em{right:9px;top:9px;padding:4px 7px;border:0;color:#fff;background:linear-gradient(135deg,#7185ef,#566be0);font-size:9px}.desktop-app[data-level-id=first-ramp] .properties-panel{position:absolute;z-index:26;right:32px;bottom:32px;width:284px;min-height:0;max-height:220px;overflow:visible;border:1px solid rgba(70,89,119,.12);border-radius:19px;background:var(--l1-panel-strong);box-shadow:0 18px 42px #26344d24;backdrop-filter:blur(22px);transition:opacity .16s ease,transform .16s ease}.desktop-app[data-level-id=first-ramp] .properties-panel .task-card,.desktop-app[data-level-id=first-ramp] .properties-panel .panel-description{display:none}.desktop-app[data-level-id=first-ramp] .properties-panel:not(.has-selection){opacity:0;pointer-events:none;transform:translateY(8px) scale(.98)}.desktop-app[data-level-id=first-ramp] .properties-panel.has-selection{opacity:1;transform:translateY(0) scale(1)}.desktop-app[data-level-id=first-ramp] .inspector-heading{padding:12px 13px 7px;border-top:0}.desktop-app[data-level-id=first-ramp] .inspector-heading .eyebrow{font-size:7px;color:#909aad}.desktop-app[data-level-id=first-ramp] #selection-name{font-size:13px;color:#253047}.desktop-app[data-level-id=first-ramp] .state-badge{border:0;color:#58667e;background:#eef2f7}.desktop-app[data-level-id=first-ramp] .property-content{padding:0 12px 12px;overflow:visible}.desktop-app[data-level-id=first-ramp] .property-group{margin:0;padding:10px;border:1px solid rgba(73,91,121,.1);border-radius:13px;background:#f7f9fc}.desktop-app[data-level-id=first-ramp] .property-group h3{color:#8993a5;font-size:7px}.desktop-app[data-level-id=first-ramp] .angle-controls{grid-template-columns:39px 1fr 39px}.desktop-app[data-level-id=first-ramp] .angle-controls input{height:34px;border:1px solid rgba(74,93,124,.14);border-radius:10px;color:#28344d;background:#fff}.level01-hud{position:absolute;z-index:16;top:15px;left:50%;min-width:560px;display:grid;grid-template-columns:minmax(190px,1fr) auto auto auto;align-items:center;gap:8px;padding:7px;transform:translate(-50%);border:1px solid rgba(70,91,124,.11);border-radius:17px;background:#ffffffd6;box-shadow:0 10px 28px #25334b17;backdrop-filter:blur(20px) saturate(1.14);pointer-events:none}.hud-route{display:grid;gap:2px;padding:5px 10px}.hud-route small,.hud-best small{color:#909bae;font-size:6px;font-weight:900;letter-spacing:.15em}.hud-route strong{color:#273248;font-size:10px}.hud-stat{min-width:74px;display:grid;grid-template-columns:22px 1fr;grid-template-rows:auto auto;column-gap:5px;align-items:center;padding:7px 9px;border-radius:11px;background:#f4f7fbeb}.hud-stat i{grid-row:1 / 3;display:grid;place-items:center;width:22px;height:22px;border-radius:8px;color:#5b70dc;background:#5b70dc1c;font-size:12px;font-style:normal}.hud-stat b{color:#2b3650;font-size:10px;line-height:1}.hud-stat span{color:#9099aa;font-size:6px;line-height:1}.hud-best{min-width:95px;display:grid;gap:2px;padding:6px 10px;border-left:1px solid rgba(76,95,126,.1)}.hud-best strong{color:#35415a;font-size:9px}.level01-hud.bonus-pulse .hud-stat:first-of-type{animation:l1-bonus-pop .42s ease}.level-coach{position:absolute;z-index:23;top:94px;right:32px;width:324px;padding:14px;border:1px solid rgba(73,91,121,.11);border-radius:21px;color:#354059;background:#ffffffe8;box-shadow:0 20px 48px #27354e24,inset 0 1px #ffffffe6;backdrop-filter:blur(24px) saturate(1.13);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,width .18s ease}.level-coach header{display:flex;align-items:center;justify-content:space-between;gap:12px}.level-coach header div{display:grid;gap:3px}.level-coach header small{color:#7c89a2;font-size:7px;font-weight:900;letter-spacing:.14em}.level-coach header strong{color:#202b42;font-size:14px;letter-spacing:-.01em}.level-coach header button{width:29px;height:29px;border:1px solid rgba(76,95,125,.11);border-radius:10px;color:#69758b;background:#f3f6fa;font-weight:900}.coach-progress{position:relative;height:5px;margin:12px 31px 11px 0;overflow:visible;border-radius:999px;background:#e9edf4}.coach-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#687dec,#36ae80);box-shadow:0 0 13px #576fe233;transition:width .2s ease}.coach-progress b{position:absolute;left:calc(100% + 8px);top:-4px;color:#7e899c;font-size:8px;font-variant-numeric:tabular-nums}.level-coach ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.level-coach li{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:start;padding:8px;border:1px solid rgba(75,94,124,.09);border-radius:12px;background:#f7f9fcd1;transition:opacity .15s ease,border-color .15s ease,background .15s ease,transform .15s ease}.level-coach li>i{width:25px;height:25px;display:grid;place-items:center;border:0;border-radius:9px;color:#5970dc;background:#5b70dc1c;font-size:8px;font-style:normal;font-weight:900}.level-coach li div{display:grid;gap:2px}.level-coach li b{color:#354058;font-size:9px}.level-coach li span{color:#858fa1;font-size:7px;line-height:1.4}.level-coach li.done{border-color:#2ba57929;background:#e6f7efb8;opacity:.74}.level-coach li.done>i{color:#fff;background:#2fa879}.level-coach li.done>i:before{content:"✓";font-size:10px}.level-coach li.done>i{font-size:0}.coach-note{margin:9px 2px 0;color:#8993a3;font-size:7px;line-height:1.45}.coach-feedback{margin:9px 0 0;padding:9px 10px;border:1px solid rgba(226,153,63,.18);border-radius:11px;color:#885920;background:#fff0d8d6;font-size:8px;font-weight:750;line-height:1.4}.coach-actions{display:flex;justify-content:flex-end;margin-top:9px}.coach-actions button{min-height:31px;padding:0 10px;border:1px solid rgba(83,104,175,.15);border-radius:10px;color:#5267cf;background:#eff2ffe6;font-size:7px;font-weight:850}.coach-actions button:hover{background:#e9edff}.level-coach.ready{border-color:#2ba57947;box-shadow:0 20px 48px #27354e21,0 0 0 4px #2ba5790f}.level-coach.attention{animation:level-coach-nudge .32s ease 2;border-color:#e5973661;box-shadow:0 20px 48px #27354e24,0 0 0 4px #e597360f}.level-coach.complete{border-color:#2ba57947}.level-coach.collapsed{width:48px;padding:9px;border-radius:15px}.level-coach.collapsed header>div,.level-coach.collapsed .coach-progress,.level-coach.collapsed ol,.level-coach.collapsed .coach-note,.level-coach.collapsed .coach-feedback,.level-coach.collapsed .coach-actions{display:none}.level-coach.collapsed header{justify-content:center}.level-coach.collapsed header button{color:#fff;border:0;background:var(--l1-accent)}.desktop-app[data-level-id=first-ramp] .status-bar{position:absolute;z-index:30;left:50%;bottom:25px;width:min(660px,52vw);min-height:38px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;padding:8px 12px;transform:translate(-50%);border:1px solid rgba(70,90,120,.11);border-radius:14px;color:#68748b;background:#ffffffe0;box-shadow:0 12px 28px #26344c1f;backdrop-filter:blur(20px);font-size:8px;pointer-events:none}.desktop-app[data-level-id=first-ramp] .status-light{width:7px;height:7px;background:#5f75e4;box-shadow:0 0 10px #5f75e475}.desktop-app[data-level-id=first-ramp] .status-shortcuts{display:none}.desktop-app[data-level-id=first-ramp] .result-card{width:470px;padding:26px;border:1px solid rgba(69,89,120,.12);border-radius:25px;color:var(--l1-ink);background:#fffffff7;box-shadow:0 34px 90px #202d4447;text-align:left}.desktop-app[data-level-id=first-ramp] .result-icon{width:54px;height:54px;margin:0 0 13px;border-radius:17px;color:#fff;background:linear-gradient(145deg,#43bd8d,#269b70);box-shadow:0 10px 23px #279d713b}.desktop-app[data-level-id=first-ramp] .result-card .eyebrow{color:#7e8a9e;font-size:7px}.desktop-app[data-level-id=first-ramp] .result-card h2{margin-bottom:6px;color:#1f2940;font-size:23px;letter-spacing:-.02em}.desktop-app[data-level-id=first-ramp] .result-card>p:not(.eyebrow){color:#7f8999;font-size:10px}.desktop-app[data-level-id=first-ramp] .result-card>b#result-time{display:inline-block;margin:13px 0 0;padding:6px 9px;border-radius:9px;color:#4f63c9;background:#eef1ff;font-size:12px}.desktop-app[data-level-id=first-ramp] .result-card>button{float:right;height:39px;margin-top:12px;padding:0 15px;border:0;border-radius:11px;color:#fff;background:linear-gradient(135deg,#6e82ef,#5267dd);box-shadow:0 8px 18px #4d62d838;font-size:8px}.level01-result-score{margin-top:16px}.result-score-head{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:end;gap:0 8px;padding:11px 12px;border-radius:13px;background:#f5f7fb}.result-score-head strong{grid-row:1 / 3;color:#566bda;font-size:23px;line-height:1}.result-score-head span{color:#34405a;font-size:9px;font-weight:850}.result-score-head small{color:#8b95a7;font-size:7px}.result-medals{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.result-medal{min-width:0;display:grid;grid-template-columns:27px 1fr;gap:7px;align-items:center;padding:8px;border:1px solid rgba(74,93,124,.09);border-radius:11px;background:#fafbfc;opacity:.5}.result-medal.earned{border-color:#2ba5792e;background:#ebf8f1e6;opacity:1}.result-medal i{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;color:#6d7890;background:#edf0f5;font-style:normal;font-weight:900}.result-medal.earned i{color:#fff;background:#2da679}.result-medal div{min-width:0;display:grid;gap:2px}.result-medal b{margin:0!important;color:#3f4b63!important;font-size:7px!important;white-space:nowrap}.result-medal span{color:#9099a9;font-size:6px;line-height:1.25}.level-takeaway{display:grid;gap:4px;margin:10px 0 0;padding:10px 11px;border:1px solid rgba(77,105,176,.11);border-radius:12px;background:#eff3fdcc;text-align:left}.level-takeaway small{color:#7584aa;font-size:6px;font-weight:900;letter-spacing:.12em}.level-takeaway strong{color:#59657e;font-size:8px;line-height:1.45}@keyframes l1-bonus-pop{0%,to{transform:scale(1)}45%{transform:scale(1.08)}}@keyframes level-coach-nudge{0%,to{transform:translate(0)}45%{transform:translate(-5px)}}@media(max-width:1320px){.desktop-app[data-level-id=first-ramp] .library-panel{left:24px;width:184px}.level-coach{right:24px;width:296px}.desktop-app[data-level-id=first-ramp] .properties-panel{right:24px;width:260px}.level01-hud{min-width:500px}}@media(max-height:780px){.level-coach{top:88px;width:292px;padding:11px}.level-coach li{padding:6px}.level-coach li span,.coach-note{display:none}.desktop-app[data-level-id=first-ramp] .library-panel{top:96px}.desktop-app[data-level-id=first-ramp] .status-bar{bottom:17px}}.canvas-frame{position:relative}.bowling-ball-3d-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}#game-canvas{position:relative;z-index:5}.bowling-ball-lab-mode{min-width:0!important;width:100%!important;max-width:100%!important;overflow:hidden!important}.bowling-ball-lab{position:fixed;inset:0;z-index:99999;display:grid;grid-template-rows:auto minmax(0,1fr);width:100vw;max-width:100vw;overflow:hidden;background:#edf1f4;color:#172033;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.bowling-ball-lab__header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 28px;border-bottom:1px solid rgba(42,56,78,.09);background:#fafbfcf0;backdrop-filter:blur(18px)}.bowling-ball-lab__header small{display:block;margin-bottom:4px;color:#727c8e;font-size:10px;font-weight:850;letter-spacing:.16em}.bowling-ball-lab__header h1{margin:0;font-size:clamp(24px,4vw,38px);line-height:1}.bowling-ball-lab__meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.bowling-ball-lab__meta span{padding:7px 10px;border:1px solid rgba(75,93,124,.11);border-radius:999px;background:#fff;color:#5c687b;font-size:10px;font-weight:800}.bowling-ball-lab__stage{position:relative;min-width:0;min-height:0;overflow:hidden}.bowling-ball-lab__stage canvas{display:block;width:100%;height:100%;max-width:100%;touch-action:none}.bowling-ball-lab__stage p{position:absolute;left:50%;bottom:20px;transform:translate(-50%);margin:0;padding:9px 13px;border:1px solid rgba(67,80,101,.08);border-radius:999px;background:#ffffffe6;box-shadow:0 8px 24px #2b3a5314;color:#6b7485;font-size:12px;font-weight:750;white-space:nowrap}@media(max-width:700px){.bowling-ball-lab__header{padding:14px 18px 15px}.bowling-ball-lab__header h1{font-size:28px}.bowling-ball-lab__header small{font-size:9px}.bowling-ball-lab__meta{display:none}.bowling-ball-lab__stage p{bottom:14px;max-width:calc(100vw - 36px);padding:8px 12px;white-space:normal;text-align:center;font-size:11px}}
