:root{color-scheme:light;--paper:#f5f0df;--ink:#263f42;--muted:#657270;--line:#d7d9c9;--orange:#e76136;--yellow:#f5bb49;--sky:#c6e2de;--white:#fffdf5;font-family:Verdana,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #146da0;outline-offset:4px}button{border:0}button:hover:not(:disabled){filter:brightness(.97)}[hidden]{display:none!important}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.masthead{height:104px;padding:18px 32px;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-family:Impact,'Arial Narrow',sans-serif;font-size:24px;line-height:.92;letter-spacing:1px}.brand b{font-weight:400;letter-spacing:2.4px}.brand-mark{display:grid;place-items:center;position:relative;width:53px;height:57px;border:2px solid var(--ink);border-radius:12px;transform:rotate(-7deg);background:var(--yellow);font-size:28px}.brand-mark>span{position:absolute;top:-8px;right:-8px;font-size:24px}.masthead-note{border-left:1px solid var(--line);padding-left:30px;font-family:'Courier New',monospace;font-size:10px;line-height:1.7;letter-spacing:1px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.prototype,.eyebrow,.stage-label,.workshop-footer{font-family:'Courier New',monospace;font-weight:700;font-size:10px;letter-spacing:1.1px}.prototype{margin-right:12px;font-size:9px;color:var(--muted)}.small-button{padding:10px 13px;min-height:40px;background:transparent;border:1px solid #8da6a066;border-radius:8px;font-size:11px;font-weight:700}.game-layout{display:grid;grid-template-columns:340px 1fr;height:calc(100dvh - 104px);min-height:665px;max-height:1200px}.workshop{padding:26px 26px 15px;display:flex;flex-direction:column;position:relative;z-index:2;border-right:1px solid var(--line)}.eyebrow{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.workshop-heading h1{font-family:Georgia,serif;font-size:41px;line-height:1.04;letter-spacing:-1.8px;margin:17px 0 12px;font-weight:700}.workshop-heading em{color:var(--orange);font-weight:400}.workshop-heading em span{position:relative}.workshop-heading em span:after{content:'';position:absolute;bottom:-3px;left:1px;right:0;border-bottom:2px solid var(--orange);transform:rotate(-3deg)}.workshop-heading p{font-size:11px;line-height:1.8;color:var(--muted);margin:0 0 24px}.parts-heading,.mount-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}h2{margin:0}.parts-heading h2,.mount-heading h2{font-family:'Courier New',monospace;font-size:11px;color:#87908a}.parts-heading h2 span,.mount-heading h2 span{font-family:Verdana,sans-serif;font-size:11px;color:var(--ink);margin-left:8px;letter-spacing:0}#budget{font-family:'Courier New',monospace;font-size:11px;font-weight:bold;background:#e4e5d5;padding:5px 7px;border-radius:4px}.parts{display:grid;grid-template-columns:1fr 1fr;gap:9px}.part{text-align:left;border:1px solid #cbd1c2;border-radius:9px;position:relative;min-height:109px;padding:12px;background:#faf8ee;transition:background .15s,transform .15s}.part:hover{transform:translateY(-2px)}.part.selected{border:2px solid var(--ink);background:#f5c664;padding:11px;box-shadow:2px 3px 0 #263f4212}.part svg{height:35px;width:35px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;display:block;margin-bottom:6px}.part span{display:flex;flex-direction:column;gap:5px}.part b{font-size:12px}.part small{font-size:8px;color:#5d6c64}.part i{position:absolute;right:9px;top:13px;font-family:'Courier New',monospace;font-style:normal;font-size:9px}.mount-heading{margin-top:21px;margin-bottom:7px}.text-button{font-size:10px;background:transparent;padding:8px 0;text-decoration:underline;text-underline-offset:3px;min-height:30px}.text-button[aria-pressed=true]{color:var(--orange);font-weight:700}.mount-instruction{font-size:10px;line-height:1.6;color:var(--muted);margin:0}.build-summary{display:flex;align-items:center;justify-content:space-between;margin:9px 0 11px;padding-top:9px;border-top:1px dashed var(--line);font-size:9px;color:var(--muted)}.launch-wrap{margin-top:auto}.launch-button{background:var(--orange);color:#fff8e9;width:100%;min-height:53px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-radius:8px;box-shadow:0 4px 0 #b44626;font-family:'Courier New',monospace;font-size:13px;font-weight:700;letter-spacing:.6px}.launch-button:active{transform:translateY(2px);box-shadow:0 2px 0 #b44626}.launch-button span{font-size:25px;font-weight:400}.launch-wrap p{font-size:8px;text-align:center;color:var(--muted);margin:13px 0 17px}.workshop-footer{display:flex;align-items:center;gap:6px;font-size:7px;letter-spacing:.3px;border-top:1px solid var(--line);padding-top:12px}.workshop-footer #best{margin-left:auto}.status-dot{display:inline-block;width:6px;height:6px;flex-shrink:0;border-radius:50%;background:#54846e}.stage{position:relative;overflow:hidden;isolation:isolate;background:var(--sky);min-width:0}#scene{position:absolute;inset:0}#scene canvas{display:block;width:100%;height:100%;touch-action:pan-y}.stage-top{position:absolute;top:24px;left:27px;right:27px;display:flex;align-items:center;justify-content:space-between;z-index:3}.stage-label{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:1.6px}.stage-top .small-button{background:#f8f5e473;border-color:#829e9577}.mounts{position:absolute;inset:0;pointer-events:none;z-index:2}.mount{pointer-events:auto;position:absolute;display:flex;align-items:center;flex-direction:column;padding:0;background:transparent;transform:translate(-50%,-50%);min-width:64px;min-height:65px;filter:drop-shadow(0 4px 6px #203c4322)!important}.mount>span{display:grid;place-items:center;width:35px;height:35px;background:#fffbee;border:2px dashed #466b66;border-radius:50%;font:25px 'Courier New',monospace;transition:transform .15s}.mount:hover>span{transform:scale(1.15);background:var(--yellow)}.mount small{margin-top:6px;border-radius:3px;padding:4px 6px;font:bold 8px 'Courier New',monospace;letter-spacing:1px;background:#fffbeeec}.mount.filled>span{background:var(--yellow);border-style:solid;font-size:15px}.mount.axle{display:none}.mounts.show-axles .mount.axle{display:flex}.mounts.only-axles .mount:not(.axle){display:none}.build-caption{position:absolute;bottom:157px;left:0;right:0;display:flex;align-items:center;flex-direction:column;gap:8px;pointer-events:none}.build-caption>span{font:8px 'Courier New',monospace;letter-spacing:1.3px;color:#526f69}.build-caption strong{font:italic 15px Georgia,serif}.course-card{position:absolute;bottom:24px;left:27px;right:27px;display:flex;align-items:center;gap:18px;padding:20px 24px;border:1px solid #fff8e8ab;border-radius:12px;background:#f8f4e5ed;box-shadow:0 8px 25px #3047440a}.course-number{align-self:stretch;font:italic 42px Georgia,serif;color:#dba354;border-right:1px solid var(--line);padding-right:19px;display:flex;align-items:center}.course-card h2{font-family:Georgia,serif;font-size:26px;margin-top:6px;letter-spacing:-.6px}.course-card p{font-size:10px;color:var(--muted);margin-bottom:0}.course-card .eyebrow{font-size:8px;letter-spacing:1px}.course-stamp{margin-left:auto;font:8px 'Courier New',monospace;line-height:1.4;transform:rotate(-8deg);border:1px solid #577970;padding:9px 12px;border-radius:50%;text-align:center}.course-stamp b{font-size:14px}.course-stamp span{display:block}.toast{position:absolute;top:78px;left:50%;transform:translateX(-50%);padding:12px 18px;background:var(--ink);border-radius:8px;color:var(--white);font-size:11px;max-width:90%;width:max-content;z-index:8;pointer-events:none;opacity:0;transition:opacity .18s}.toast.visible{opacity:1}.run-hud{position:absolute;top:80px;left:27px;right:27px;display:flex;align-items:center;gap:24px;padding:13px 17px;background:#fffbeeec;border-radius:9px}.run-hud>div{display:flex;flex-direction:column;gap:4px}.run-hud span{font:700 22px 'Courier New',monospace}.run-hud small{font:8px 'Courier New',monospace;letter-spacing:1px}.run-hud #pause{margin-left:auto}.run-controls{position:absolute;left:27px;right:27px;bottom:27px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ability{display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:9px;min-height:66px;box-shadow:0 4px 0 #253f4222}.ability.rocket{background:var(--orange);color:var(--white)}.ability.spring{background:var(--yellow)}.ability svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:3}.ability span{display:flex;flex-direction:column;gap:5px;text-align:left}.ability b{font:bold 16px 'Courier New',monospace;letter-spacing:1px}.ability small{font:8px 'Courier New',monospace}.run-controls p{font-size:11px;font-weight:bold;background:#fffbeecf;padding:12px;border-radius:7px;max-width:240px;line-height:1.6;margin:0}.paused-overlay,.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:#c6e2dee8;z-index:10;text-align:center;padding:30px}.paused-overlay strong,.loading strong{font:italic 32px Georgia,serif}.paused-overlay button{max-width:260px}.loading p{font-size:12px}.workshop.running .parts,.workshop.running .mount-heading,.workshop.running .mount-instruction,.workshop.running .build-summary{opacity:.5}.workshop.running h1 em{color:#64887c}dialog{color:var(--ink);background:var(--paper);border:1px solid #e7e3d4;border-radius:18px;padding:0;max-width:min(440px,calc(100vw - 30px));max-height:calc(100dvh - 30px);box-shadow:0 25px 120px #122a4266}dialog::backdrop{background:#173e4a75;backdrop-filter:blur(5px)}.result-inner,.help-inner{padding:30px;text-align:center}.result-inner .eyebrow{justify-content:center}.result-icon{font:55px Georgia,serif;margin:19px auto 12px;width:90px;height:90px;display:grid;place-items:center;background:var(--yellow);border-radius:50%;transform:rotate(-9deg)}dialog h2{font:bold 37px Georgia,serif;letter-spacing:-1.4px;line-height:1.1}.result-inner>p{font-size:12px;line-height:1.8;color:var(--muted);margin:17px 0 23px}.result-stats{display:flex;justify-content:space-around;border-block:1px solid var(--line);padding:18px 0;margin-bottom:24px}.result-stats>div{display:flex;flex-direction:column;gap:6px}.result-stats strong{font:bold 24px 'Courier New',monospace}.result-stats span{font:8px 'Courier New',monospace;letter-spacing:1px}.result-inner>.text-button{margin-top:17px;font-size:11px}.help-inner{text-align:left}.help-inner h2{margin-top:15px}.help-inner ol{padding-left:20px;font-size:12px;line-height:1.8}.help-inner li{padding:8px 0 8px 4px}.help-inner li b{display:block}.help-inner p{font-size:10px;line-height:1.8;color:var(--muted);margin-bottom:24px}kbd{background:#e5e4d5;border-radius:3px;padding:2px 4px}.overview .build-caption,.overview .mounts{display:none}.overview .course-card{background:#fffbeeef}
@media(max-height:800px) and (min-width:851px){.masthead{height:80px;padding-block:12px}.brand{font-size:21px}.brand-mark{height:48px;width:47px}.game-layout{height:calc(100dvh - 80px);min-height:600px}.workshop{padding:18px 24px 12px}.workshop-heading h1{font-size:33px;margin:12px 0 10px}.workshop-heading p{font-size:10px;line-height:1.6;margin-bottom:16px}.parts-heading{margin-bottom:8px}.part{min-height:91px;padding:10px}.part.selected{padding:9px}.part svg{height:28px;width:28px;margin-bottom:5px}.part small{font-size:7px}.part i{top:11px}.mount-heading{margin-top:12px;margin-bottom:4px}.build-summary{margin:4px 0 8px;padding-top:4px}.launch-button{min-height:47px}.launch-wrap p{margin:10px 0 9px}.workshop-footer{padding-top:8px}.course-card{padding:16px 20px}.build-caption{bottom:141px}}
@media(min-height:900px) and (min-width:851px){.workshop{padding-top:36px}.workshop-heading h1{font-size:49px;margin-top:24px}.workshop-heading p{margin-bottom:32px}.part{min-height:125px}.part svg{height:41px;width:41px;margin-bottom:10px}.mount-heading{margin-top:28px}.mount-instruction{font-size:11px}.build-summary{margin-top:20px}.workshop-footer{font-size:8px}.build-caption{bottom:180px}}
@media(max-width:1100px){.masthead-note{display:none}.game-layout{grid-template-columns:310px 1fr}.workshop{padding:24px 22px 15px}.course-card{padding:17px;gap:12px}.course-card h2{font-size:23px}.course-stamp{display:none}.run-controls{gap:9px}.ability{padding:13px}.run-controls p{font-size:10px;max-width:190px}.prototype{display:none}}
@media(max-width:850px){.masthead{height:77px;padding:13px 18px}.brand{font-size:19px}.brand-mark{width:42px;height:44px;font-size:23px}.small-button{font-size:10px}.game-layout{height:auto;min-height:0;max-height:none;display:flex;flex-direction:column}.stage{height:460px;order:0;flex-shrink:0}.workshop{order:1;border-right:0;border-top:1px solid var(--line);padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.workshop-heading{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;gap:16px}.workshop-heading .eyebrow{display:none}.workshop-heading h1{font-size:29px;margin:0}.workshop-heading h1 br{display:none}.workshop-heading p{font-size:10px;line-height:1.6;margin:0;max-width:205px}.parts-heading{grid-column:1 / -1;margin:4px 0 0}.parts{grid-column:1 / -1;grid-template-columns:repeat(4,1fr)}.part{min-height:104px;padding:10px}.part.selected{padding:9px}.part b{font-size:11px}.part small{font-size:8px}.part i{font-size:8px;top:9px;right:8px}.mount-heading{margin:0;align-self:end}.mount-instruction{grid-column:1;grid-row:5;margin-top:-5px}.build-summary{grid-column:1;grid-row:6;margin:0}.launch-wrap{grid-column:2;grid-row:4/7;align-self:center;margin:0}.launch-wrap p{font-size:8px;margin-bottom:0}.workshop-footer{grid-column:1 / -1;margin-top:2px}.stage-top{top:17px;left:20px;right:20px}.course-card{left:20px;right:20px;bottom:17px;padding:13px 17px}.course-card h2{font-size:22px;margin-top:4px}.course-number{font-size:33px}.course-card p{font-size:9px;margin-top:6px}.build-caption{bottom:120px}.build-caption strong{font-size:13px}.run-controls{bottom:20px;left:20px;right:20px}.run-hud{top:65px;left:20px;right:20px;gap:15px}.run-hud span{font-size:18px}.run-hud .small-button{padding:8px}.run-hud small{font-size:7px}}
@media(max-width:480px){.masthead{gap:12px}.header-actions{gap:7px}.stage{height:410px}.stage-label{font-size:8px}.stage-top{left:15px;right:15px}.stage-top .small-button{font-size:9px;padding:8px;min-height:34px}.workshop{padding:20px 16px;gap:10px 15px}.workshop-heading{align-items:start}.workshop-heading h1{font-size:28px}.workshop-heading h1 br{display:block}.workshop-heading p{max-width:150px;font-size:9px;padding-top:5px}.parts{gap:6px}.part{padding:8px;min-height:103px}.part.selected{padding:7px}.part svg{width:29px;height:29px;margin-top:10px}.part small{font-size:7px;line-height:1.4;min-height:18px}.part i{font-size:7px;top:7px;right:7px}.part b{font-size:10px}.parts-heading h2 span,.mount-heading h2 span{font-size:10px;margin-left:4px}.text-button{font-size:9px}.launch-button{font-size:11px;padding:0 13px;min-height:49px}.launch-wrap p{font-size:7px;line-height:1.6}.mount-instruction{font-size:9px}.build-summary{font-size:8px;gap:4px}.course-card{left:15px;right:15px;gap:13px}.course-card .eyebrow{font-size:6px}.course-card h2{font-size:21px}.course-card p{font-size:8px}.course-number{padding-right:14px}.mount>span{width:31px;height:31px;font-size:23px}.mount small{font-size:7px}.build-caption{bottom:117px;gap:5px}.build-caption>span{font-size:7px}.build-caption strong{font-size:12px}.run-hud{left:15px;right:15px;padding:10px;gap:11px}.run-hud span{font-size:16px}.run-hud .small-button{font-size:9px;min-height:36px;padding:6px}.run-controls{left:15px;right:15px;gap:8px}.ability{padding:11px 13px;min-height:58px;flex:1}.ability b{font-size:14px}.ability small{font-size:7px}.ability svg{width:26px;height:26px}.run-controls p{max-width:none;width:100%;text-align:center;padding:8px;font-size:9px;order:-1}.result-inner,.help-inner{padding:25px}.result-inner h2{font-size:32px}}
@media(max-width:480px){.build-caption{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
.course-picker{background:var(--ink);color:var(--white);border-color:var(--ink)}.build-actions,.stage-actions{display:flex;gap:12px;align-items:center}.build-actions .text-button{font-size:9px}.stage-actions{gap:7px}.run-goal{position:absolute;top:159px;left:27px;right:27px;font:bold 9px 'Courier New',monospace;letter-spacing:.4px;color:var(--ink);display:flex;align-items:center;gap:16px;padding:10px 14px;background:#fffbeedc;border-radius:7px}.run-goal progress{margin-left:auto;width:100px;height:7px;accent-color:var(--orange);flex-shrink:0}.hint-panel{position:absolute;top:78px;right:27px;max-width:290px;z-index:7;background:var(--paper);border:1px solid #9db9b0;border-radius:10px;box-shadow:0 8px 22px #203c431c;padding:17px}.hint-panel strong{font:italic 21px Georgia,serif}.hint-panel p{font-size:11px;line-height:1.8;margin:10px 0 3px}.trail-note{position:absolute;top:79px;left:27px;right:27px;font:10px 'Courier New',monospace;background:#fffbeebf;padding:10px;border-radius:6px;text-align:center}#next-course{font-size:11px;margin-bottom:15px;background:var(--ink);box-shadow:0 4px 0 #122b31}#result-record{font-size:10px;margin:0 0 20px;line-height:1.6}#result-distance{font-size:19px}.course-dialog-inner{padding:28px}.course-dialog-inner>.eyebrow{align-items:center}.course-dialog-inner h2{font-size:37px;margin:8px 0 12px}.course-dialog-inner>p{font-size:11px;line-height:1.7;color:var(--muted)}#course-dialog{max-width:min(680px,calc(100vw - 28px));width:680px}.course-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.course-option{display:flex;align-items:center;gap:12px;min-height:106px;background:#fffbee;border:1px solid #c5cdbd;border-radius:9px;text-align:left;padding:14px}.course-option.current{background:#f5d085;border:2px solid var(--ink);padding:13px}.course-option:disabled{opacity:.55}.route-number{font:italic 29px Georgia,serif;color:#a27f4a}.route-details{display:flex;flex-direction:column;gap:8px;flex:1}.route-details>b{font-size:12px}.route-details>small{font:8px 'Courier New',monospace;line-height:1.4}.route-stars{font-size:15px;color:#a46c13;white-space:nowrap}.route-stars i{font:7px 'Courier New',monospace;font-style:normal;color:var(--ink);margin-left:7px}.route-arrow{font-size:18px}.route-note{border-top:1px solid var(--line);padding-top:14px}.result-inner #next-course:not([hidden])~#result-rebuild{min-height:39px;background:transparent;color:var(--ink);box-shadow:none;border:1px solid var(--line);font-size:10px}.result-inner #next-course:not([hidden])~#retry{margin-top:7px}
@media(max-width:850px){.run-goal{left:20px;right:20px;top:135px;font-size:8px}.hint-panel{right:20px;top:63px}.trail-note{left:20px;right:20px;top:64px}.course-picker{font-size:10px}.header-actions{gap:7px}.build-actions{gap:10px}.course-dialog-inner{padding:24px}}
@media(max-width:480px){.brand{font-size:16px;gap:8px}.brand b{letter-spacing:1.8px}.brand-mark{width:36px;height:39px;font-size:20px}.masthead{padding:12px}.header-actions{gap:5px}.header-actions .small-button{padding:8px;font-size:8px}.stage-label{max-width:145px;font-size:7px;line-height:1.5}.stage-actions{gap:5px}.stage-actions .small-button{font-size:8px;padding:7px}.run-goal{top:128px;left:15px;right:15px;padding:9px 11px;font-size:8px;gap:6px}.run-goal progress{width:52px}.hint-panel{right:15px;left:15px;max-width:none}.build-summary{align-items:flex-start}.build-actions{gap:7px}.build-actions .text-button{font-size:8px;white-space:nowrap}.course-dialog-inner{padding:20px}.course-list{grid-template-columns:1fr;margin-top:16px;gap:8px}.course-option{min-height:92px}.course-dialog-inner h2{font-size:32px}.route-note{font-size:10px!important}.course-stamp{display:none}.course-card p{line-height:1.5}.course-card h2{font-size:20px}.trail-note{left:15px;right:15px;font-size:9px;line-height:1.5}}
#star-guide{font-size:12px;line-height:1.5;margin-top:10px}#star-guide summary{cursor:pointer;font-weight:bold;min-height:28px}#result-checks{text-align:left;padding-left:20px;font-size:14px;line-height:1.5}#result-checks li{margin:8px 0}#save-notice{position:fixed;z-index:100;bottom:0;left:0;right:0;margin:0;padding:14px;background:#fff0c2;color:#492c08;font:14px/1.5 Verdana,sans-serif}
#course-intro{max-width:min(520px,calc(100vw - 28px));max-height:90dvh;overflow:auto}#course-intro .intro-stars{text-align:left;padding-left:20px;line-height:1.6;font-size:15px}#course-intro li{margin:12px 0}
