:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#202020;background:#f2f2f2;font-synthesis:none;--yellow:#f5cf00;--muted:#707070;--border:#dedede}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #ac9100;outline-offset:3px}#app{max-width:1240px;margin:auto;padding:0 30px}header{display:flex;align-items:center;height:104px;gap:22px;border-bottom:1px solid var(--border)}.logo{width:108px;height:76px;object-fit:contain;background:black;border-radius:8px}.brand{flex:1}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.7px;color:#727272}h1{font-size:24px;margin:5px 0;letter-spacing:-.7px}h2{letter-spacing:-1px;font-size:30px;line-height:1.16;margin:12px 0 18px}h3{font-size:20px;letter-spacing:-.4px;margin:12px 0}.iconbtn{border:1px solid var(--border);background:#fff;width:42px;height:42px;border-radius:50%;font-size:23px}.layout{display:grid;grid-template-columns:minmax(0,690px) 1fr;gap:50px;padding:28px 0}.game{background:white;border:1px solid #d7d7d7;box-shadow:0 14px 40px #0000000b;border-radius:20px;overflow:hidden;display:flex;flex-direction:column}.hud{display:flex;justify-content:space-between;padding:18px 22px;gap:12px}.hud>div{display:flex;align-items:center;gap:7px}.hud strong{font-size:21px;letter-spacing:-.5px}.hud small{color:#7a7a7a;font-size:12px}.coin{color:#d5ab00;background:#fff3b0;display:grid;place-items:center;border-radius:50%;width:26px;height:26px;border:2px solid #e7bd00}.statusdot{width:7px;height:7px;background:#bca400;border-radius:50%}.objective{margin:0 14px 10px;background:#faf6dc;border:1px solid #eae2ab;border-radius:12px;display:flex;align-items:center;gap:12px;padding:10px 13px}.objective>span{background:var(--yellow);border-radius:8px;padding:8px;font-size:16px;font-weight:800}.objective small{display:block;letter-spacing:1.2px;font-size:10px;font-weight:700;color:#8c8150;margin-bottom:4px}.objective strong{font-size:14px}.stage{position:relative;width:100%;height:min(59vh,620px);min-height:300px;background:#e9e9e9;overflow:hidden}canvas{width:100%;height:100%;display:block;touch-action:none}#toast{pointer-events:none;position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:#202020ef;color:white;padding:10px 16px;font-size:13px;border-radius:10px;max-width:93%;width:max-content;text-align:center;opacity:0;transition:opacity .25s}#toast.visible{opacity:1}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#eeeeee;font-weight:700}.controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px 7px}#stick{width:82px;height:82px;border-radius:50%;background:#e7e7e7;position:relative;touch-action:none;flex-shrink:0;border:1px solid #d4d4d4;user-select:none}.stickCross{position:absolute;inset:0;display:grid;place-items:center;color:#9a9a9a;font-size:68px;line-height:1}#knob{width:40px;height:40px;border-radius:50%;position:absolute;left:20px;top:20px;background:linear-gradient(#fff,#d7d7d7);border:1px solid #b9b9b9;box-shadow:0 3px 7px #0002;pointer-events:none}.actionwrap{flex:1;min-width:0;max-width:285px;text-align:center}.actionwrap>span{display:block;color:#777777;font-size:12px;margin-bottom:5px}#action{border:0;width:100%;padding:13px 12px;border-radius:10px;background:var(--yellow);font-weight:800;font-size:14px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 3px 0 #c5a700}#action:disabled{background:#e6e6e6;box-shadow:none;opacity:1;color:#787878}.actionwrap small{display:block;font-size:10px;color:#8b8b8b;margin-top:6px}.upgrade{background:#242424;color:white;border:0;border-radius:12px;height:74px;min-width:72px;font-size:11px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px}.upgrade span{font-size:28px}.savebar{display:flex;justify-content:space-between;align-items:center;padding:8px 17px 12px;font-size:10px;color:#969696}.savebar button{border:0;background:none;color:#6b6b6b;font-size:11px;text-decoration:underline}aside{padding:20px 0;max-width:310px}.asideTop h2{font-size:40px;line-height:1.1;letter-spacing:-1.8px;margin:15px 0}.asideTop p{font-size:15px;color:#777777;line-height:1.7}.goalcard{margin-top:30px;border:1px solid #d2d2d2;padding:22px;border-radius:15px;background:#e8e8e8}.goalcard small{font-size:10px;letter-spacing:1.3px;font-weight:700;color:#6f6f6f}.goalcard p{font-size:13px;line-height:1.6;color:#6b6b6b}.meter{height:7px;background:#d0d0d0;border-radius:8px;overflow:hidden;margin-top:20px}.meter i{display:block;background:#d3b000;height:100%;width:32%;transition:width .3s}.goalnums{display:flex;justify-content:space-between;font-size:12px;margin-top:8px;color:#6d6d6d}.checklist{list-style:none;padding:0;margin:26px 0}.checklist li{display:flex;gap:12px;align-items:center;margin:18px 0;color:#777777;font-size:13px}.checklist b{display:grid;place-items:center;width:25px;height:25px;border:1px solid #cdcdcd;border-radius:50%;font-size:11px}.checklist .done{color:#242424}.checklist .done b{background:var(--yellow);border:0}.prototype{border-top:1px solid var(--border);padding-top:20px}.prototype b{font-size:13px}.prototype p,.keys{font-size:12px;line-height:1.7;color:#868686}.keys{margin-top:24px;line-height:2.4}kbd{font-family:inherit;font-size:10px;border:1px solid #d7d7d7;border-radius:4px;background:#fff;padding:3px 5px}dialog{border:1px solid #dadada;border-radius:24px;box-shadow:0 25px 100px #0004;width:min(460px,calc(100% - 28px));padding:28px;color:#202020;max-height:90dvh;overflow:auto}dialog::backdrop{background:#171717a8;backdrop-filter:blur(4px)}dialog p{font-size:14px;color:#737373;line-height:1.6}dialog h2{font-size:29px}.startlogo{display:block;width:117px;height:82px;object-fit:contain;background:#000;border-radius:8px;margin-bottom:24px}label[for]{display:block;font-size:13px;font-weight:700;margin:20px 0 8px}input[type=text],#playerName{border:1px solid #cccccc;border-radius:10px;background:#fafafa;width:100%;padding:13px;font-size:16px}fieldset{display:flex;gap:12px;border:0;padding:0;margin:18px 0 25px}legend{font-size:13px;font-weight:700;margin-bottom:8px}.avatarOption{flex:1;display:flex;align-items:center;flex-direction:column;position:relative;border:2px solid #e7e7e7;border-radius:12px;padding:8px;font-size:12px;cursor:pointer}.avatarOption:has(input:checked){border-color:#dfbb00;background:#fffbed}.avatarOption input{position:absolute;left:8px;top:8px;accent-color:#aa9000}.avatar{display:block;width:100px;height:100px;background-image:url('assets/sprites.png');background-size:300px 200px;background-repeat:no-repeat;mix-blend-mode:multiply}.avatar.female{background-position:-100px 0}.primary,.secondary,.danger{display:block;width:100%;padding:14px 17px;border-radius:10px;font-weight:750;font-size:14px;margin-top:10px}.primary{border:0;background:var(--yellow)}.primary span{float:right}.secondary{border:1px solid #d9d9d9;background:#fff}.danger{background:#fff;border:1px solid #e5cdca;color:#a94438}.footnote{display:block;text-align:center;font-size:11px;line-height:1.5;color:#8a8a8a;margin:16px 0 0}.modalhead{display:flex;justify-content:space-between;align-items:center;gap:10px}.modalhead h2{margin:9px 0}.balance{padding:12px;background:#fff8d5;border-radius:10px}.shopitem{border:1px solid #dddddd;padding:16px;border-radius:13px;margin:12px 0}.shopitem h3{font-size:17px;margin:0 0 7px}.shopitem p{font-size:13px;margin:5px 0 13px}.shopitem button{border:0;background:var(--yellow);border-radius:8px;padding:11px;font-weight:700;font-size:13px;width:100%}.shopitem button:disabled{background:#e4e4e4;color:#777777}.shopitem .tag{float:right;color:#858585;font-size:11px}.instructions{padding-left:20px}.instructions li{font-size:14px;line-height:1.6;margin:12px 0}.nightstats{display:flex;gap:12px;justify-content:space-between;background:#faf6d9;padding:15px;border-radius:12px;font-size:13px}.nightstats strong{display:block;font-size:22px;margin-bottom:4px}#nightClock{text-align:center;font-size:30px;font-weight:800}
@media(min-width:900px) and (max-height:900px){.layout{padding-top:18px}.stage{height:52vh}header{height:84px}.logo{height:61px;width:90px}.controls{padding-top:9px}#stick{width:72px;height:72px}#knob{left:15px;top:15px}.asideTop h2{font-size:35px}}
@media(max-width:899px){#app{padding:0;max-width:650px;height:100dvh;display:flex;flex-direction:column}header{height:72px;min-height:72px;padding:6px 14px;gap:12px;background:#fff}.logo{width:82px;height:58px;border-radius:5px}.eyebrow{font-size:9px;letter-spacing:1.3px}h1{font-size:19px;letter-spacing:-.6px;margin:4px 0}.iconbtn{width:36px;height:36px}.layout{padding:0;display:flex;flex:1;min-height:0}.game{border-radius:0;border:0;flex:1;min-width:0}.hud{padding:11px 16px}.hud strong{font-size:19px}.hud small{font-size:10px}.objective{padding:8px 10px;margin:0 10px 8px;gap:9px}.objective strong{font-size:13px}.objective small{font-size:9px}.objective>span{font-size:14px;padding:7px}.stage{height:auto;flex:1;min-height:220px}.controls{padding:9px 12px 3px;gap:10px}#stick{width:75px;height:75px}#knob{left:16.5px;top:16.5px}.upgrade{height:66px;min-width:61px;font-size:10px}.actionwrap small{font-size:9px}#action{font-size:12px;padding:12px 8px}.actionwrap>span{font-size:10px}.savebar{padding:5px 12px max(7px,env(safe-area-inset-bottom));font-size:9px}aside{display:none}}
@media(max-height:650px) and (max-width:899px){header{height:58px;min-height:58px}.logo{height:45px;width:65px}.hud{padding:6px 12px}.controls{padding-top:5px}#stick{width:60px;height:60px}#knob{left:9px;top:9px}.objective{margin-bottom:4px;padding:5px 8px}.upgrade{height:58px}.actionwrap small{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.touchcontrols{min-height:94px;padding:12px 18px;gap:12px}.inventory{flex:1;min-width:0}.inventory>small{font-size:10px;letter-spacing:1px;color:#777;display:flex;justify-content:space-between;margin-bottom:9px}.inventory>small b{letter-spacing:0;color:#333}#bagSlots{display:flex;gap:6px;flex-wrap:wrap}.bagitem{background:#fff9d7;border:1px solid #e7d887;border-radius:7px;padding:8px;font-size:11px}.bagempty{font-size:12px;color:#777}.partsorder{padding:14px;border:1px solid #ddd;border-radius:12px;margin:14px 0}.partsorder h3{font-size:16px;margin:0}.partsorder>p{margin:8px 0}.partoptions{display:flex;gap:6px}.partoptions button{flex:1;background:#f6f6f6;border:1px solid #ccc;border-radius:8px;padding:12px 5px;font-size:12px}.partoptions button.selected{background:#fff3a8;border:2px solid #c9aa00}.partfeedback{font-size:12px!important;color:#656565!important}@media(max-width:899px){.touchcontrols{padding:9px 13px;min-height:84px}.bagitem{font-size:10px;padding:7px}.inventory>small{font-size:9px}.bagempty{font-size:11px}}
.mechanic-art{display:block;width:96px;height:96px;flex-shrink:0;background-image:url('assets/mechanics.png');background-size:300% 200%;background-repeat:no-repeat;mix-blend-mode:multiply}.mechanic-0{background-position:0 0}.mechanic-1{background-position:50% 0}.mechanic-2{background-position:100% 0}.mechanic-3{background-position:0 100%}.mechanic-4{background-position:50% 100%}.mechanic-5{background-position:100% 100%}.visualshop{display:flex;align-items:center;gap:14px;padding:13px}.visualshop .shopbody{flex:1;min-width:0}.visualshop h3{font-size:16px}.visualshop p{font-size:12px;line-height:1.5}.visualshop button{font-size:12px}.orderheading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.orderheading .requestedpart{width:54px;height:54px;background-color:#f8f8f8;border-radius:8px}.visualpart{position:relative;display:flex;justify-content:center;align-items:center;min-width:0!important;padding:6px!important;min-height:118px}.visualpart .mechanic-art{width:100%;max-width:108px;height:auto;aspect-ratio:1}.partcheck{position:absolute;bottom:3px;right:6px;font-size:18px;font-weight:900}.visualpart.guided{box-shadow:0 0 0 2px #dcc200}.partsorder{padding:12px}.partoptions{gap:9px}.partfeedback{min-height:36px}@media(max-width:500px){.visualshop>.mechanic-art{width:78px;height:78px}.visualshop{gap:10px}.visualpart{min-height:94px}}
.store-art{display:block;width:96px;height:auto;flex-shrink:0;background-image:url('assets/store.png');background-repeat:no-repeat}.visualshop p{font-size:14px}.visualshop button{font-size:14px;min-height:44px}.partoptions .visualpart:only-child{max-width:150px;min-height:120px;margin:auto}.visualshop .secondary{margin:0}.partsorder .partfeedback{font-size:14px!important}.shopbody h3{font-size:17px}@media(max-width:500px){.visualshop>.store-art{width:84px}.visualshop p{font-size:14px}}

/* Progression and the explorable store. */
.xpbar{display:flex;justify-content:space-between;gap:8px;padding:0 17px 8px;font-size:11px;color:#756900}.xpbar span{color:#777}.goalbutton{margin:0 13px 9px;padding:10px 12px;border:1px solid #d9c775;border-radius:9px;background:#fffbea;text-align:left;font-size:12px;font-weight:700;min-height:44px}.maptools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 12px;background:#e5e7e8}.maptools span{flex:1;font-size:10px;color:#646b6d;min-width:150px}.maptools button{min-height:38px;border:1px solid #ccd0d1;border-radius:8px;padding:7px;background:#fff;font-size:11px}.progress-art{display:block;width:96px;height:auto;flex-shrink:0;background-image:url('assets/progression.png');background-repeat:no-repeat}.categorycard{display:grid;width:100%;grid-template-columns:86px 1fr;gap:4px 14px;align-items:center;text-align:left;border:1px solid #ddd;border-radius:12px;background:#fff;padding:12px;margin:10px 0;min-height:100px}.categorycard>span:first-child{grid-row:1/3;width:80px;max-height:95px}.categorycard>strong{font-size:16px;align-self:end}.categorycard>span:last-child{font-size:12px;color:#777;align-self:start}.levelstrip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding:12px 2px 18px;-webkit-overflow-scrolling:touch}.levelcard{flex:0 0 245px;scroll-snap-align:start;border:1px solid #d5d5d5;border-radius:15px;background:#f9f9f9;padding:16px;display:flex;flex-direction:column;align-items:stretch}.levelcard.current{border:2px solid #caae00;background:#fffbdf}.levelcard>small{font-size:10px;letter-spacing:1px;color:#797357}.levelcard>.progress-art,.levelcard>.store-art,.levelcard>.mechanic-art{width:155px;margin:16px auto;max-height:205px}.levelcard>h3{font-size:19px}.levelcard>p{font-size:13px;margin:6px 0;min-height:63px}.levelcard>.levelprice{min-height:0;font-weight:750;color:#333;margin-top:auto}.levelcard>button{font-size:12px;min-height:46px}.shopactions{display:flex;gap:8px}.shopactions button{font-size:12px}.room-preview{width:240px;max-width:100%;margin:20px auto}.bagitem.selected{border:2px solid #af9200;background:#fff2a1}.part-symbol{font-size:48px;display:grid;place-items:center;min-width:70px;min-height:80px}.retailpart{flex-direction:column;gap:8px}.retailpart>span:last-child{font-size:12px;font-weight:700}.retailpart .store-art{width:100px}#shopDialog{width:min(590px,calc(100% - 28px))}.modalhead .iconbtn{flex-shrink:0}.levelcard .primary:disabled{opacity:1;background:#e5e5e5;color:#6b6b6b}@media(max-width:500px){dialog{padding:20px}.levelcard{flex-basis:230px}.maptools{padding:3px 8px;gap:4px}.maptools span{min-width:105px;font-size:9px}.maptools button{font-size:10px;min-height:36px}.goalbutton{font-size:10px;margin-bottom:6px;padding:7px 10px;min-height:36px}.xpbar{font-size:10px;padding-bottom:6px}.objective{margin-bottom:5px}.hud{padding-top:8px;padding-bottom:8px}.touchcontrols{min-height:77px}}

/* Gameplay v0.7: the world owns the viewport. Dialog controls stay reachable. */
html,body{width:100%;height:100%;overflow:hidden;background:#30373a}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{min-height:44px}button:disabled{opacity:1;color:#686868} [hidden]{display:none!important}
#app{padding:0;max-width:none;height:100dvh;width:100vw;display:block}.game{width:100%;height:100%;border:0;border-radius:0;display:block;box-shadow:none;background:#dfe5e6}.stage{height:100%;width:100%;min-height:0;position:relative;background:#dfe5e6}.hud{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));padding:8px 11px;display:grid;grid-template-columns:auto auto;gap:6px 14px;border:1px solid #ffffffb3;border-radius:14px;background:#ffffffed;box-shadow:0 3px 15px #0001;pointer-events:none;z-index:2}.hud>span{display:flex;gap:5px;align-items:center;font-size:12px;white-space:nowrap}.hud b{font-size:14px}.hud small{font-size:9px;background:#f4edc9;border-radius:4px;padding:2px 4px;color:#675d32}.goalbutton{position:absolute;right:12px;top:calc(max(12px,env(safe-area-inset-top)) + 72px);max-width:245px;margin:0;min-height:38px;border-radius:12px;background:#fff9dfec;font-size:11px;padding:7px 10px;z-index:2}.floatbutton{position:absolute;border:1px solid #ffffff80;box-shadow:0 3px 14px #0002;display:grid;place-items:center;padding:0;width:46px;height:46px;min-height:46px;border-radius:15px;z-index:3}.pausebutton{left:12px;top:max(12px,env(safe-area-inset-top));background:#fffffff0;color:#333;font-size:22px}.shopbutton{bottom:max(28px,env(safe-area-inset-bottom));right:14px;background:#252729;color:#ffdf00;font-size:34px;width:54px;height:54px;border-color:#53595c}.buildversion{position:absolute;bottom:max(6px,env(safe-area-inset-bottom));left:12px;font-size:10px;color:#454c4e;background:#ffffffb3;border-radius:5px;padding:3px 5px;pointer-events:none}.bagbutton{position:absolute;z-index:2;min-width:44px;height:36px;min-height:36px;border:1px solid #d4bc41;border-radius:10px;background:#fff8d5;box-shadow:0 2px 8px #0002;font-size:12px;font-weight:800}.tutorial{position:absolute;max-width:240px;width:max-content;background:#fff7c7;color:#332e17;border:1px solid #d4b400;border-radius:14px;padding:10px 13px;box-shadow:0 4px 14px #0002;font-size:12px;font-weight:650;line-height:1.4;pointer-events:none;z-index:3;transform:translate(-50%,-100%)}.tutorial:after{content:"";position:absolute;bottom:-7px;left:50%;width:12px;height:12px;background:#fff7c7;border-right:1px solid #d4b400;border-bottom:1px solid #d4b400;transform:rotate(45deg)}#toast{bottom:90px;max-width:min(90%,400px);z-index:12;font-size:12px;padding:10px 14px;transition:opacity .15s}#loading{z-index:15}
dialog{width:min(540px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:18px;border-radius:20px;overscroll-behavior:contain}dialog::backdrop{backdrop-filter:blur(2px)}dialog h2{font-size:23px}.modalhead{position:sticky;top:0;background:white;z-index:5;padding:3px 0 8px;gap:8px}.modalhead h2{font-size:21px;letter-spacing:-.6px;margin:3px 0}.iconbtn{width:42px;height:42px;min-width:42px;min-height:42px;padding:0;flex-shrink:0}.balance{margin:0 0 8px!important;padding:8px 10px;font-size:12px!important}#shopDialog{width:min(590px,calc(100% - 24px));overflow:hidden;max-height:calc(100dvh - 24px)}#shopDialog[open]{display:flex;flex-direction:column}#shopItems{overflow:auto;min-height:0;overscroll-behavior:contain}.shopactions{position:sticky;top:0;background:white;z-index:2;gap:6px}.shopactions button{padding:9px 6px;margin:0;font-size:11px;min-height:38px}.levelstrip{gap:10px;padding:8px 1px 12px;align-items:stretch;scroll-snap-type:x mandatory;scrollbar-width:thin;touch-action:pan-x pan-y}.levelcard{flex-basis:235px;padding:12px;border-radius:14px}.levelcard>small{font-size:9px}.levelcard>.mechanic-art,.levelcard>.store-art,.levelcard>.progress-art{width:110px;max-height:110px;margin:8px auto}.levelcard>.technician-art{width:136px;height:136px;margin:4px auto}.levelcard>h3{font-size:17px;margin:6px 0}.levelcard>p{font-size:12px;line-height:1.35;min-height:34px;margin:4px 0}.levelcard>.levelprice{font-size:11px;min-height:0;display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}.levelprice span{padding:4px;border-radius:5px;background:#eceeef}.levelprice .met{color:#386344;background:#edf6ee}.levelprice .missing{color:#88591c;background:#fff1d7}.levelcard>button{font-size:12px;padding:9px;margin-top:6px;min-height:40px}.levelcard .secondary{padding:5px;background:transparent;border:0;color:#746514;min-height:30px;font-size:11px}.categorycard{min-height:78px;margin:6px 0;padding:8px;grid-template-columns:62px 1fr;gap:3px 10px}.categorycard>span:first-child{width:60px;max-height:65px}.categorycard>strong{font-size:14px}.categorycard>span:last-child{font-size:11px}.room-preview{width:150px;max-height:160px;margin:10px auto}#shopItems>.secondary{font-size:12px;min-height:38px;padding:8px;margin-top:8px}.technician-art{display:block;background:url('assets/technicians.png') no-repeat;background-size:200% 200%;width:96px;height:96px;flex-shrink:0;aspect-ratio:1}.technician-0{background-position:0 0}.technician-1{background-position:100% 0}.technician-2{background-position:0 100%}.technician-3{background-position:100% 100%}
.contextpanel{position:absolute;z-index:8;bottom:90px;left:12px;width:min(360px,calc(100% - 24px));max-height:55%;overflow:auto;background:#fffffff5;border:1px solid #d8d8d8;border-radius:18px;padding:12px;box-shadow:0 8px 32px #0003;overscroll-behavior:contain}.contextpanel .modalhead{background:#fffffff5;padding:0 0 7px}.contextpanel h2{font-size:17px}.contextpanel h3{font-size:14px}.contextpanel p{font-size:12px}.contextpanel .partsorder{margin:0;padding:9px}.contextpanel .visualpart{min-height:75px}.contextpanel .visualpart .mechanic-art{width:70px}.contextpanel .part-symbol{font-size:30px;min-height:65px;min-width:50px}.contextpanel .orderheading{margin-bottom:6px}.contextpanel .orderheading>span{width:42px;height:42px;min-height:42px;min-width:42px}.contextpanel .shopitem{padding:10px;margin:6px 0}.contextpanel .shopitem button{min-height:44px}.contextpanel .partoptions{gap:6px}.contextpanel .retailpart .store-art{width:65px}.contextpanel .partfeedback{min-height:0;margin:5px 0}.instructions{padding-left:18px}.instructions li{font-size:13px}.startlogo{width:80px;height:55px;margin-bottom:12px}
@media(max-height:690px){.levelcard>.technician-art{width:100px;height:100px}.levelcard>.mechanic-art,.levelcard>.store-art,.levelcard>.progress-art{width:82px;max-height:82px}.levelcard{padding:10px;flex-basis:220px}.levelcard>h3{font-size:15px}.levelcard>p{font-size:11px;min-height:30px}.modalhead h2{font-size:19px}dialog{padding:12px}.levelcard>button{min-height:36px;padding:7px}.levelstrip{padding-bottom:6px}}
@media(min-width:900px){.hud{grid-template-columns:repeat(4,auto)}.goalbutton{top:60px}.contextpanel{left:24px;bottom:40px}.buildversion{left:24px}}

.case-art{display:block;width:43px;height:72px;border:5px solid #e6bf00;border-radius:12px;background:#292c30;position:relative;margin:4px auto}.case-art:before{content:'';position:absolute;left:4px;top:5px;width:10px;height:13px;border:2px solid #e6bf00;border-radius:4px}.retailpart .case-art{min-width:43px}

/* 0.8: compact, always-visible workload and stable interactive rows. */
.orderboard{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));left:12px;width:210px;max-width:calc(100% - 90px);padding:10px 12px;background:#fffef4ed;border:1px solid #d6c774;border-radius:13px;text-align:left;box-shadow:0 3px 12px #0001;z-index:3}.orderboard>strong{font-size:12px;display:flex;justify-content:space-between}.orderboard>span{display:block;font-size:10px;line-height:1.6;margin-top:4px;color:#6d6550}.boardpanel{bottom:108px;max-height:60%;width:min(370px,calc(100% - 24px))}.boardrow{display:grid;grid-template-columns:40px 1fr;gap:3px 10px;align-items:center;background:#fff;border:1px solid #ddd;border-radius:11px;width:100%;min-height:80px;margin:6px 0;padding:10px;text-align:left}.boardrow .mechanic-art,.boardrow .part-symbol,.boardrow .case-art{grid-row:1/4;width:40px;height:40px;min-width:0;min-height:0;font-size:30px;margin:0}.boardrow .case-art{width:26px;height:40px}.boardrow strong{font-size:13px}.boardrow small{font-size:11px;color:#655d45}.boardrow .nexttask{font-size:11px;color:#666;line-height:1.4}.boardrow.ready{border-color:#d1b100;background:#fff9dc}.boardrow.repair{border-color:#afc8ce;background:#f1f7f9}.boardrow.queue{background:#f7f7f7}#boardList:empty:after{content:'Tudo em dia. Atenda o próximo cliente no balcão.';display:block;padding:15px 5px;color:#777;font-size:13px}.boardpanel .modalhead{padding-bottom:6px}.boardpanel h2{font-size:18px}

/* 1.0: bright toy-store depth, readable game controls and a direct on-map reception action. */
:root{--ink:#23323d;--gold:#f5cd00;color:var(--ink);background:#dfe9eb}body,.stage{background:radial-gradient(ellipse at 45% 40%,#f0f5f4,#cfdee3)}.hud{background:#fffffff0;border:1px solid #fff;border-radius:20px;padding:10px 14px;box-shadow:0 5px 0 #bed0d866,0 10px 24px #253e5010;column-gap:15px;row-gap:7px}.hud b{font-size:15px;font-weight:850}.hud>span{font-size:14px}.coinmark{font-style:normal;display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:50%;border:2px solid #edbd00;background:#ffdf48;color:#8a6500;font-size:14px;font-weight:900;box-shadow:inset 0 0 0 2px #ffed88}.hud small{background:#ecf2f3;color:#657781}.hud #xpLabel{color:#a48200}.goalbutton{border:1px solid #fff;background:#ffffffe8;box-shadow:0 3px 0 #bdcfd866;max-width:260px;border-radius:14px;font-size:12px;top:calc(max(12px,env(safe-area-inset-top)) + 82px);padding:8px 12px;line-height:1.4}.floatbutton{border:2px solid #fff;box-shadow:0 4px 0 #aec2ca77,0 7px 18px #18354c18}.pausebutton{background:#fff;color:#384c59}.shopbutton{width:66px;height:66px;border-radius:20px;background:linear-gradient(#ffdc27,#f2c400);color:#403507;border-color:#ffe575;box-shadow:0 5px 0 #b29104,0 9px 22px #324b5a30;line-height:1;gap:0;align-content:center}.shopbutton>span{font-size:33px}.shopbutton>small{font-size:10px;font-weight:850}.orderboard{width:230px;border:2px solid #fff;background:#fffffff2;border-radius:18px;box-shadow:0 4px 0 #b5c8d088,0 8px 20px #21374914;padding:11px 13px}.orderboard>strong{font-size:15px;color:#2f4653}.orderboard>span{font-size:12px;line-height:1.5;color:#64747e}.orderboard>strong>span{color:#ac8e00}.buildversion{color:#596b73;background:#ffffffbf;font-size:11px;border-radius:6px}.counteraction{position:absolute;z-index:4;min-width:140px;min-height:44px;margin:0;padding:9px 14px;border:2px solid #fff3a3;border-radius:15px;background:linear-gradient(#ffe46a,#f5ce00);color:#433604;font-size:14px;font-weight:850;box-shadow:0 4px 0 #b99903,0 7px 18px #273c4a25;touch-action:manipulation}.counteraction:active{transform:translateY(3px);box-shadow:0 1px 0 #b99903}.counteraction:after{content:'';position:absolute;width:10px;height:10px;bottom:-7px;left:calc(50% - 5px);transform:rotate(45deg);background:#f5ce00;border-right:1px solid #b99903;border-bottom:1px solid #b99903;z-index:-1}.counteraction[hidden]{display:none}.bagbutton{border:2px solid #fff4a6;box-shadow:0 3px 0 #bb980966;background:#ffdc32;color:#413608}.contextpanel{border:2px solid #fff;background:#f9fcfbeF;box-shadow:0 7px 0 #adbec555,0 20px 50px #243c4e25;border-radius:22px;padding:14px}.boardrow{border-color:#d9e5e8;border-radius:15px;box-shadow:0 2px 0 #dce6e9}.boardrow strong{font-size:14px}.boardrow small,.boardrow .nexttask{font-size:12px}.boardrow .nexttask{color:#365b70}.boardrow.ready{background:#fff6c6;border-color:#e5c33b}.boardrow.repair{background:#e9f5f8}dialog{border:3px solid #fff;background:#fafcfb;box-shadow:0 12px 0 #99aeb333,0 28px 80px #17384e40}dialog::backdrop{background:#182f4677;backdrop-filter:blur(5px)}.primary{background:linear-gradient(#ffdf39,#f5cb00);border:1px solid #e4be00;box-shadow:0 3px 0 #c3a00b;color:#433600;border-radius:13px;min-height:44px}.levelcard{background:linear-gradient(#fff,#f1f6f7);border-color:#d6e3e7;box-shadow:0 3px 0 #c7d8df55}.levelcard.current{background:linear-gradient(#fff9d1,#fff0a1);border-color:#e7c739}.levelcard>h3{color:#2d4653}.levelcard>p{font-size:13px}.levelcard>.technician-art{width:148px;height:148px}.levelcard>button{min-height:44px;font-size:13px}#welcome .startlogo{width:108px;height:76px;border-radius:14px;box-shadow:0 5px 12px #1d334d1a}#welcome h2{font-size:32px;color:#263e4d}#welcome .avatarOption{background:#eef4f5;border:2px solid #d7e3e6;border-radius:17px}#welcome .avatarOption:has(input:checked){background:#fff2a6;border-color:#dfbc0f}#toast{background:#253c4ef5;border:1px solid #516675;box-shadow:0 4px 15px #21364a22;border-radius:14px;font-size:14px}button{touch-action:manipulation}button:active:not(:disabled){filter:brightness(.97)}
@media(min-width:900px){.goalbutton{top:64px}.hud{padding:12px 18px}.hud b{font-size:17px}}
@media(max-width:370px){.hud{gap:5px 10px;padding:8px 10px}.goalbutton{max-width:235px;font-size:11px}.orderboard{width:205px}.orderboard>span{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* 1.1: simultaneous movement controls and one focused upgrade detail. */
.joystick{position:absolute;left:16px;bottom:max(34px,env(safe-area-inset-bottom));width:108px;height:108px;border:2px solid #ffffffcc;border-radius:50%;background:#30495740;z-index:6;touch-action:none;display:grid;place-items:center;user-select:none;-webkit-user-select:none}
#joystickKnob{width:46px;height:46px;border-radius:50%;background:#fffef0e8;border:3px solid #e7c843;box-shadow:0 3px 10px #142d3b44;pointer-events:none}
.interact{position:absolute;right:16px;bottom:max(50px,env(safe-area-inset-bottom));width:124px;min-height:58px;border-radius:20px;border:2px solid #fff4b3;background:#f5cd00;color:#433600;font-size:14px;font-weight:800;z-index:6}
.interact:disabled{background:#edf3f4cc;color:#647580;border-color:#fff;opacity:.85}
.orderboard{left:16px;bottom:max(158px,calc(env(safe-area-inset-bottom) + 130px));width:160px;padding:8px 10px}.orderboard>span{display:none}.boardpanel{bottom:210px}.shopbutton{bottom:max(134px,calc(env(safe-area-inset-bottom) + 108px))}
.levelchoices{display:flex;gap:7px;overflow-x:auto;padding:6px 2px 12px;scrollbar-width:thin}.levelchoice{flex:0 0 78px;min-height:100px;padding:5px;border:2px solid #d8e3e7;background:#edf4f5;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:5px}.levelchoice.selected{background:#fff3b2;border-color:#c9a800}.levelchoice>span:last-child{font-size:12px;line-height:1.25}.levelchoice .technician-art,.levelchoice .progress-art,.levelchoice .store-art,.levelchoice .mechanic-art{width:60px;height:60px;min-width:60px;min-height:60px;margin:0}
.leveldetail{padding:12px;background:#fff;border:1px solid #dae4e8;border-radius:15px}.leveldetail h3{font-size:19px;margin:0 0 6px}.leveldetail p{font-size:14px;line-height:1.45;margin:7px 0}.leveldetail .levelreason{color:#6a5934;min-height:20px}.leveldetail button{width:100%;min-height:44px;margin-top:7px}.levelprice{font-weight:800}.shopactions{display:flex;gap:6px}.shopactions button{font-size:14px;flex:1}
#shopDialog{max-height:90dvh;overflow-y:auto}#shopDialog .modalhead{position:sticky;top:0;background:#fafcfb;z-index:2}#shopItems>.secondary:last-child{font-size:14px;min-height:44px}
@media(max-height:560px){.joystick{width:88px;height:88px;bottom:22px}.interact{bottom:35px}.orderboard{bottom:124px}.shopbutton{bottom:115px}.levelchoice{min-height:75px}.levelchoice .technician-art,.levelchoice .progress-art,.levelchoice .store-art,.levelchoice .mechanic-art{width:40px;height:40px;min-width:40px;min-height:40px}}
/* Compact leaderboard, independent of canvas and movement controls. */
.rankingbutton{top:calc(max(12px,env(safe-area-inset-top)) + 54px);left:12px;font-size:23px;width:44px;height:44px;background:#fff}
#shopName{border:1px solid #ccc;border-radius:10px;background:#fafafa;width:100%;padding:13px;font-size:16px}
#rankingDialog{width:min(560px,calc(100vw - 24px));max-height:88dvh;overflow:auto}
.rankintro{color:#656565;font-size:14px}.ranktabs{display:flex;gap:8px;margin:16px 0}.ranktabs button{flex:1;border:1px solid #ddd;border-radius:12px;padding:12px;background:#f2f2ef;color:#333;font-weight:750}.ranktabs button[aria-pressed=true]{background:#f5cd00;border-color:#d5b100}.rankmine{background:#fff5c7;padding:12px;border-radius:10px;font-size:13px}.ranklist{list-style:none;padding:0;margin:16px 0}.ranklist li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 4px;border-bottom:1px solid #e8e8e8}.ranklist .rankself{background:#fff8d8;border-radius:10px}.ranklist strong,.ranklist small{display:block;overflow-wrap:anywhere}.ranklist strong{font-size:14px}.ranklist small{font-size:12px;color:#666;margin-top:4px}.rankplace{font-size:13px;font-weight:700;color:#777}.rankpoints{text-align:right}.ranklist .rankempty{display:block;color:#666;padding:24px 6px}.rankconsent{display:flex!important;gap:10px;align-items:flex-start;line-height:1.45}.rankconsent input{width:20px!important;height:20px;flex:none;margin-top:2px}#rankProfile{border-top:1px solid #ddd;padding-top:18px;margin-top:20px}#rankProfile summary{cursor:pointer;font-weight:700;margin-bottom:16px}#rankFormStatus,#rankStatus{font-size:13px;color:#565656;line-height:1.45}#rankForm input:not([type=checkbox]){width:100%;box-sizing:border-box;border:1px solid #bbb;border-radius:10px;padding:12px;font:inherit;margin:6px 0 14px}#rankForm label{display:block;font-weight:650;font-size:14px}#shopIdentity{overflow-wrap:anywhere}
