@font-face{font-family:Noto Sans;src:url(/game/learn_python/en/assets/NotoSans-Regular-DuyeGPRW.woff2)format("woff2"),url(/game/learn_python/en/assets/NotoSans-Regular-DuyeGPRW.ttf)format("truetype");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:Noto Sans;src:url(/game/learn_python/en/assets/NotoSans-Bold-BQFlziyr.woff2)format("woff2"),url(/game/learn_python/en/assets/NotoSans-Bold-BQFlziyr.ttf)format("truetype");font-display:swap;font-style:normal;font-weight:700 900}@font-face{font-family:JetBrains Mono;src:url(/game/learn_python/en/assets/JetBrainsMono-400-V6pRDFza.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:JetBrains Mono;src:url(/game/learn_python/en/assets/JetBrainsMono-700-BYuf6tUa.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:700}:root{color:#17202b;font-synthesis:none;--ink:#17202b;--muted:#61757d;--surface:#fff;--line:#d4dee0;--border:#c9d7da;--accent:#087fa3;background:#e9f1f3;font-family:Noto Sans,Inter,Segoe UI,system-ui,sans-serif}[lang=th]{font-family:Noto Sans Thai,Noto Sans,Leelawadee UI,Tahoma,system-ui,sans-serif}.entryShell{background:radial-gradient(circle at 15% 15%,#ffffffad 0 8%,#0000 9%),linear-gradient(145deg,#c9eef0,#eef7ef 48%,#fff3d3);place-items:center;min-height:100dvh;padding:24px;display:grid;overflow:auto}.entryCard{text-align:center;background:#fff;border:1px solid #b9d1d4;border-top:7px solid #087fa3;border-radius:16px;gap:16px;width:min(520px,100%);padding:clamp(24px,5vw,44px);display:grid;position:relative;box-shadow:0 24px 70px #183f4533}.entryBrand{color:#30555e;justify-content:center;align-items:center;gap:9px;display:inline-flex}.entryBrand img{filter:drop-shadow(0 7px 10px #1c31242e);width:min(180px,44vw);height:auto;display:block}.entryHeroIcon{color:#d86c30;margin:8px auto -4px}.entryCard h1{margin:0;font-size:clamp(1.6rem,5vw,2.15rem);line-height:1.25}.entryCard>p{color:#526970;margin:0;line-height:1.65}.entryChoices{gap:10px;margin-top:4px;display:grid}.entryChoice{cursor:pointer;text-align:left;background:#f8fbfb;border:1px solid #b7c9cc;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 12px;min-height:76px;padding:13px 16px;display:grid}.entryChoice strong{font-size:1rem}.entryChoice small{color:#64777e;grid-column:1}.entryChoice svg{grid-area:1/2/span 2}.entryChoice:hover{border-color:#087fa3;box-shadow:inset 0 0 0 1px #087fa3}.entryChoice--primary{background:#eaf7f8;border-color:#72b0bd}.guestChoice{color:#275765;cursor:pointer;text-align:left;background:#f6fbf9;border:1px dashed #83aeb6;border-radius:10px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:10px 13px;display:grid}.guestChoice:hover,.guestChoice:focus-visible{background:#eaf7f8;border-color:#087fa3;outline:none;box-shadow:inset 0 0 0 1px #087fa3}.guestChoice span{gap:2px;min-width:0;display:grid}.guestChoice strong{font-size:.86rem}.guestChoice small{color:#64777e;font-size:.72rem}.entryBack{background:#fff;border:1px solid #cad7da;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:absolute;top:18px;left:18px}.entryField{text-align:left;gap:7px;display:grid}.entryField span{color:#334a51;font-size:.82rem;font-weight:800}.entryField input{background:#f8fbfb;border:1px solid #aebfc3;border-radius:8px;min-height:52px;padding:10px 12px}.consentGroup{text-align:left;border:0;gap:8px;margin:0;padding:0;display:grid}.consentGroup legend{color:#334a51;margin-bottom:2px;font-size:.82rem;font-weight:800}.consentChoice{color:#536970;cursor:pointer;background:#f8fbfb;border:1px solid #d4dee0;border-radius:8px;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:9px;min-height:44px;padding:9px;font-size:.76rem;line-height:1.45;display:grid}.consentChoice--required{color:#334a51;border-color:#9fc7cf}.consentChoice input{accent-color:#087fa3;width:20px;height:20px;margin:0}.consentChoice a{color:#087493}.entrySubmit,.googleButton{cursor:pointer;border-radius:8px;min-height:52px;font-weight:800}.entrySubmit{color:#fff;background:#087fa3;border:1px solid #077293}.googleButton{background:#fff;border:1px solid #9eafb3;justify-content:center;align-items:center;gap:10px;display:flex}.googleButton span{color:#fff;background:#3769c8;border-radius:50%;place-items:center;width:26px;height:26px;font-weight:900;display:grid}.entryDivider{background:#d4dee0;place-items:center;height:1px;margin-block:5px;display:grid}.entryDivider span{color:#667980;background:#fff;padding:0 10px;font-size:.76rem}.entryLegal{font-size:.74rem}.entryError{background:#fff0eb;border-radius:7px;padding:10px;font-size:.8rem;color:#8d351c!important}.textButton{color:#087fa3;cursor:pointer;background:0 0;border:0;min-height:40px;font-weight:700}*{box-sizing:border-box}.srOnly{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{overscroll-behavior:none;min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input,textarea{font:inherit}button{color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #f0ad22}button:disabled{cursor:not-allowed;opacity:.45}.gameShell{background:#edf3f4;grid-template-rows:64px minmax(0,1fr);min-height:100dvh;display:grid}.topBar{z-index:5;padding-top:env(safe-area-inset-top);background:#fff;border-bottom:1px solid #ccd9dc;grid-template-columns:minmax(180px,1fr) minmax(190px,auto) minmax(180px,1fr);align-items:center;display:grid;box-shadow:0 2px 9px #142d3314}.brandButton{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;min-height:64px;padding:7px 18px;display:flex}.brandButton:hover{background:#f3f7f8}.brandMark{object-fit:contain;filter:drop-shadow(0 2px 2px #0000002e);flex:0 0 38px;width:38px;height:38px;display:block}.brandButton>span:nth-child(2){display:grid}.brandButton strong{font-size:.94rem}.brandButton small,.levelTitle span{color:#61737a;font-size:.72rem}.levelTitle{text-align:center;gap:2px;display:grid}.levelTitle strong{font-size:1.04rem}.topActions{justify-content:flex-end;align-items:center;gap:13px;padding-right:18px;display:flex}.starScore,.miniStars,.winStars{color:#e39a0c;display:flex}.starScore{gap:2px}.iconButton{cursor:pointer;background:#fff;border:1px solid #cad7da;border-radius:7px;flex:0 0 44px;place-items:center;width:44px;height:44px;padding:0;display:inline-grid}.iconButton:hover:not(:disabled){background:#f3f7f8;border-color:#839ba2}.iconButton--small{background:0 0;border:0;flex-basis:32px;width:32px;height:32px}.workspace{grid-template-columns:minmax(0,1fr) minmax(410px,1fr);min-height:0;display:grid}.mapPane{background:#cce8ef;border-right:1px solid #c7d5d8;grid-template-rows:minmax(0,1fr) auto 64px;min-width:0;min-height:0;display:grid}.mapBackdrop{--world-art:none;isolation:isolate;background-color:#bfe4e7;background-image:radial-gradient(circle at center, #fff9ee4d 0 34%, #12283a12 76%, #12283a24 100%), var(--world-art), linear-gradient(#ffffff3b 1px, transparent 1px), linear-gradient(90deg, #ffffff3b 1px, transparent 1px);background-position:50%;background-repeat:no-repeat,no-repeat,repeat,repeat;background-size:cover,cover,32px 32px,32px 32px;place-items:center;min-height:0;padding:24px;transition:background-image .24s;animation:.62s cubic-bezier(.18,.83,.27,1) both world-arrival;display:grid;position:relative;overflow:auto;container-type:size}.mapBackdrop:after{z-index:0;content:"";pointer-events:none;mix-blend-mode:soft-light;background:linear-gradient(110deg,#0000 16%,#ffffff8f 45%,#0000 70%);animation:.64s cubic-bezier(.17,.73,.33,1) both world-light-sweep;position:absolute;inset:0}.worldRibbon{z-index:3;color:#f7ffff;-webkit-backdrop-filter:blur(9px)saturate(1.08);backdrop-filter:blur(9px)saturate(1.08);pointer-events:none;background:linear-gradient(135deg,#11353ce0,#164b52c2);border:1px solid #ffffffa8;border-radius:14px;gap:2px;width:min(270px,100% - 36px);padding:11px 14px 12px;animation:.52s cubic-bezier(.18,.82,.28,1) both world-ribbon-in;display:grid;position:absolute;top:18px;left:18px;box-shadow:0 8px 18px #0e29303d,inset 0 1px #ffffff38}.worldRibbon:before{content:"";background:var(--world-accent,#69ddbd);border:2px solid #ffffffbf;border-radius:50%;width:10px;height:10px;position:absolute;top:12px;right:13px;box-shadow:0 0 0 4px #ffffff1a}.worldRibbon__eyebrow{color:#e6fbfac7;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:850;line-height:1}.worldRibbon strong{text-wrap:balance;max-width:calc(100% - 20px);font-size:clamp(1rem,2.4cqw,1.28rem);line-height:1.18}.worldRibbon__mission{color:#ebfcfac2;font-size:.78rem;line-height:1.25}.worldRibbon[data-world="1"]{--world-accent:#ffd45c}.worldRibbon[data-world="2"]{--world-accent:#ff9c66}.worldRibbon[data-world="3"]{--world-accent:#69ddbd}.worldRibbon[data-world="4"]{--world-accent:#f49bd1}.worldRibbon[data-world="5"]{--world-accent:#f4ca75}.worldRibbon[data-world="6"]{--world-accent:#8ed7ff}.worldRibbon[data-world="7"]{--world-accent:#b7a6ff}.mapBackdrop>.gameBoard{z-index:1}.gameBoard{--tile-size:min(9.2vmin, 82px);isolation:isolate;grid-template-columns:repeat(var(--board-columns), var(--tile-size));background:linear-gradient(145deg,#486b6f,#29474c);border:2px solid #ffffff8a;border-radius:20px;gap:4px;padding:10px;display:grid;position:relative;box-shadow:0 9px #203d42,0 18px 34px #112d344d,inset 0 1px #ffffff3d}.gameBoard--blocked{border-color:#d9574b;box-shadow:0 9px #6f3b3b,0 18px 34px #6725253d,inset 0 1px #ffffff3d}.gameBoard--win:after{z-index:7;content:"";pointer-events:none;border:2px solid #ffda5ed6;border-radius:22px;animation:.82s cubic-bezier(.18,.8,.25,1) both board-win-flash;position:absolute;inset:-3px;box-shadow:0 0 #ffdd6f85}.boardTelemetry{z-index:9;color:#ecfbfd;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;background:#112b31c7;border:1px solid #ffffff85;border-radius:999px;align-items:center;gap:7px;max-width:calc(100% - 24px);min-height:26px;padding:4px 7px 4px 5px;font-size:clamp(.875rem,1.65cqw,.95rem);font-weight:800;line-height:1;display:inline-flex;position:absolute;top:12px;left:12px;box-shadow:0 3px 10px #0000002e,inset 0 1px #ffffff1f}.boardTelemetry__event{align-items:center;gap:4px;display:inline-flex}.boardTelemetry__event:before{content:"";background:#69ddbd;border-radius:50%;flex:0 0 7px;width:7px;height:7px;box-shadow:0 0 0 3px #69ddbd29}.gameBoard[data-feedback=anticipate] .boardTelemetry__event:before,.gameBoard[data-feedback=travel] .boardTelemetry__event:before{background:#ffd45c;box-shadow:0 0 0 3px #ffd45c2b}.gameBoard[data-feedback=sense] .boardTelemetry__event:before{background:#92dafe;box-shadow:0 0 0 3px #92dafe2e}.gameBoard[data-feedback=win] .boardTelemetry__event:before{background:#ffe481;box-shadow:0 0 0 3px #ffe48133}.gameBoard[data-feedback=crash] .boardTelemetry__event:before,.gameBoard[data-feedback=blocked] .boardTelemetry__event:before{background:#ff9d8d;box-shadow:0 0 0 3px #ff9d8d33}.boardTelemetry__actions{color:#ecfbfdc7;border-left:1px solid #ffffff38;padding-left:7px;font-size:1em}.boardTelemetry__actions b{color:#fff}.boardTile{width:var(--tile-size);aspect-ratio:1;border-radius:6px;place-items:center;display:grid;position:relative;overflow:visible}.boardTile--road{background:#b7ccca;box-shadow:inset 0 0 0 1px #ffffff94,inset 0 -4px 7px #213b3f21}.boardTile--wall{background:radial-gradient(circle at 28% 35%,#8bc768 0 13%,#0000 14%),radial-gradient(circle at 70% 68%,#4c9456 0 17%,#0000 18%),linear-gradient(145deg,#63a65d,#3f8049);box-shadow:inset 0 0 0 2px #266636a3,inset 0 5px 8px #ffffff1f}.roadMaterial{z-index:0;pointer-events:none;background:linear-gradient(118deg,#ffffff57,#0000 36%),linear-gradient(145deg,#dbe9e5,#c5d8d5);border:1px solid #ffffff6b;border-radius:5px;display:block;position:absolute;inset:2px;overflow:hidden;box-shadow:inset 0 1px #ffffffad,inset 0 -3px 5px #314f4f1c}.roadMaterial:before{z-index:0;content:"";pointer-events:none;border:1px solid #37595b17;border-radius:3px;position:absolute;inset:9%}.roadMaterial__core,.roadMaterial__arm{z-index:1;background:linear-gradient(145deg,#7e9999,#607b7d);display:block;position:absolute;box-shadow:inset 0 1px #e6f4ee4f,inset 0 -3px 4px #1a343824,0 1px 1px #1d353824}.roadMaterial__core{border-radius:12px;inset:22%}.roadMaterial__core:after{content:"";border:1px solid #e8f5ef29;border-radius:8px;position:absolute;inset:13%}.roadMaterial__arm--n,.roadMaterial__arm--s{left:22%;right:22%}.roadMaterial__arm--e,.roadMaterial__arm--w{top:22%;bottom:22%}.roadMaterial__arm--n{border-radius:9px 9px 0 0;top:-1px;bottom:50%}.roadMaterial__arm--e{border-radius:0 9px 9px 0;left:50%;right:-1px}.roadMaterial__arm--s{border-radius:0 0 9px 9px;top:50%;bottom:-1px}.roadMaterial__arm--w{border-radius:9px 0 0 9px;left:-1px;right:50%}.roadMaterial--straight-h .roadMaterial__core,.roadMaterial--straight-v .roadMaterial__core{border-radius:9px}.roadMaterial--junction-cross .roadMaterial__core,.roadMaterial[class*=junction-t-] .roadMaterial__core{background:radial-gradient(circle at 35% 29%,#ffffff21,#0000 31%),linear-gradient(145deg,#7e9999,#607b7d);border-radius:10px}.roadMaterial[class*=end-] .roadMaterial__core{border-radius:16px}.visitedTrail{z-index:1;pointer-events:none;display:block;position:absolute;inset:10%}.visitedTrail__core,.visitedTrail__arm{box-sizing:border-box;background:linear-gradient(135deg,#d9ffebe6,#5acfa6 56%,#248973);border:1px solid #176f65;display:block;position:absolute;box-shadow:inset 0 1px #ffffffad,0 1px 2px #0c4f444d}.visitedTrail__core{z-index:1;border-radius:50%;inset:39%}.visitedTrail__core:after{content:"";border-radius:inherit;border:1px solid #ffffffd6;position:absolute;inset:30%}.visitedTrail__arm{z-index:0}.visitedTrail__arm--n,.visitedTrail__arm--s{left:39%;right:39%}.visitedTrail__arm--e,.visitedTrail__arm--w{top:39%;bottom:39%}.visitedTrail__arm--n{border-radius:999px 999px 0 0;top:-1px;bottom:50%}.visitedTrail__arm--e{border-radius:0 999px 999px 0;left:50%;right:-1px}.visitedTrail__arm--s{border-radius:0 0 999px 999px;top:50%;bottom:-1px}.visitedTrail__arm--w{border-radius:999px 0 0 999px;left:-1px;right:50%}.visitedTrail--current .visitedTrail__core{animation:.28s cubic-bezier(.18,.82,.3,1) both visited-ribbon-arrive}.boardTile--goal:before{z-index:1;content:"";pointer-events:none;border:2px solid #ffed8994;border-radius:50%;position:absolute;inset:8%;box-shadow:0 0 #ffdc6400}.boardTile--goal[data-goal-state=won]:before{animation:.76s cubic-bezier(.16,.78,.24,1) both goal-halo}.boardTile--sensor:after{z-index:5;content:"";pointer-events:none;border:2px solid #83deffe0;border-radius:50%;animation:.56s cubic-bezier(.19,.78,.26,1) both sensor-ping;position:absolute;inset:14%;box-shadow:0 0 #83deff5c}.sprite{z-index:2;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:contain;display:block;position:absolute;inset:2%}.sprite--car{z-index:4;filter:drop-shadow(0 3px 2px #0000004d);transform-origin:50% 64%;transition:transform .25s}.boardTile[data-goal-state=won] .toyProp--goal{animation:.76s cubic-bezier(.14,.85,.28,1) both goal-celebrate}.sprite--car--anticipate{animation:.22s cubic-bezier(.22,.86,.35,1) both car-anticipate}.sprite--car--travel-0{animation:.24s cubic-bezier(.18,.84,.3,1) both car-travel-east}.sprite--car--travel-1{animation:.24s cubic-bezier(.18,.84,.3,1) both car-travel-south}.sprite--car--travel-2{animation:.24s cubic-bezier(.18,.84,.3,1) both car-travel-west}.sprite--car--travel-3{animation:.24s cubic-bezier(.18,.84,.3,1) both car-travel-north}.sprite--car--turn,.sprite--car--settle{animation:.22s cubic-bezier(.2,.86,.32,1) both car-settle}.sprite--car--turn-from{animation:.21s cubic-bezier(.2,.82,.3,1) both car-turn-from}.sprite--car--turn-to{z-index:5;animation:.21s cubic-bezier(.2,.82,.3,1) both car-turn-to}.sprite--car--win{animation:.64s cubic-bezier(.16,.9,.28,1) both car-win}.sprite--car--blocked{animation:.46s cubic-bezier(.22,.84,.34,1) both car-blocked}.actionBeat{z-index:6;pointer-events:none;animation:.24s cubic-bezier(.2,.82,.28,1) both action-beat-rise;display:block;position:absolute;inset:4%}.actionBeat:before,.actionBeat:after{aspect-ratio:1;content:"";background:#fff4c5;border-radius:50%;width:12%;position:absolute;top:30%;box-shadow:0 1px 1px #18283a33}.actionBeat:before{animation:.23s cubic-bezier(.18,.8,.3,1) both action-spark-left;left:15%}.actionBeat:after{animation:.23s cubic-bezier(.18,.8,.3,1) both action-spark-right;right:15%}.actionBeat__token{background:#77c98e;border:2px solid #245d64;border-radius:50%;height:32%;display:block;position:absolute;top:21%;left:33%;right:33%;box-shadow:inset 0 1px #ffffff85,0 2px 2px #18283a33}.actionBeat--collect .actionBeat__token:after{content:"";background:#fff9e7;border-radius:999px;height:12%;position:absolute;top:43%;left:22%;right:22%}.actionBeat--collect .actionBeat__token:before{content:"";background:#fff9e7;border-radius:999px;width:12%;position:absolute;top:22%;bottom:22%;left:43%}.actionBeat--drop .actionBeat__token{background:linear-gradient(145deg,#f4cd84,#c98949);border-color:#8e6031;border-radius:18%;transform:rotate(6deg)}.actionBeat--drop .actionBeat__token:after{content:"";background:#fff0bc;position:absolute;inset:9% 41%}.actionBeat--repair .actionBeat__token{clip-path:polygon(57% 0,15% 53%,44% 53%,29% 100%,85% 38%,55% 38%);background:#57b6c5;border-color:#275c75;border-radius:12%}.actionBeat--repair:before,.actionBeat--repair:after{background:#fff2a8}.blockedMarker{z-index:7;pointer-events:none;border:2px solid #d9574b;border-radius:14%;place-items:start end;animation:.22s cubic-bezier(.22,.8,.35,1) both blocked-marker-in;display:grid;position:absolute;inset:4%;box-shadow:0 0 0 3px #d9574b2e}.blockedMarker:after{aspect-ratio:1;content:"!";color:#fff;background:#b74542;border:2px solid #fff5e9;border-radius:50%;place-items:center;width:clamp(15px,30%,24px);font-size:clamp(.72rem,2cqw,.96rem);font-weight:900;line-height:1;display:grid;box-shadow:0 2px 2px #411f223d}.toyProp{z-index:2;pointer-events:none;filter:drop-shadow(0 3px 2px #18283a40);display:block;position:absolute;inset:8%}.toyProp__body,.toyProp__accent{box-sizing:border-box;display:block;position:absolute}.toyProp--goal{z-index:3;animation:.42s cubic-bezier(.2,.85,.3,1) both goal-token-settle;inset:2%}.toyProp--goal .toyProp__body{border:clamp(2px, 7%, 6px) solid #a66a18;border-bottom-width:clamp(4px, 11%, 9px);background:radial-gradient(at 50% 104%,#fff9ee 0 31%,#0000 33%),linear-gradient(145deg,#ffe585,#e7ad2a 68%,#bd7919);border-radius:52% 52% 17% 17%;height:64%;bottom:8%;left:10%;right:10%;box-shadow:inset 0 2px #ffffff8c,inset 0 -5px #96570e2e}.toyProp--goal .toyProp__accent{clip-path:polygon(0 0,100% 19%,67% 53%,100% 87%,0 100%);background:linear-gradient(145deg,#ef6e43,#c54738);border-radius:3px 10px 10px 3px;width:39%;height:34%;top:5%;right:17%;box-shadow:inset 0 1px #ffffff5c}.toyProp--obstacle .toyProp__body{border:clamp(2px, 6%, 5px) solid #9a4d22;background:repeating-linear-gradient(135deg,#e86f31 0 18%,#ffca50 18% 36%);border-radius:14% 14% 11% 11%;height:42%;bottom:24%;left:4%;right:4%;box-shadow:inset 0 2px #ffffff59,inset 0 -5px #6b331d2b}.toyProp--obstacle .toyProp__accent{background:#a9542b;border-radius:0 0 8px 8px;height:13%;bottom:13%;left:15%;right:15%;box-shadow:0 2px #5f392a47}.toyProp--gate .toyProp__body,.toyProp--gate-open .toyProp__body{border:clamp(2px, 6%, 5px) solid #554a3a;background:linear-gradient(145deg,#eee1c1,#bcae8d);border-radius:12px 12px 8px 8px;width:20%;top:21%;bottom:10%;left:13%;box-shadow:inset 0 2px #ffffff8c}.toyProp--gate .toyProp__accent,.toyProp--gate-open .toyProp__accent{border:clamp(2px, 5%, 4px) solid #664a2e;transform-origin:0;background:repeating-linear-gradient(135deg,#ffe27a 0 18%,#d75b3d 18% 36%);border-radius:7px;height:20%;top:37%;left:24%;right:4%;box-shadow:inset 0 1px #ffffff70}.toyProp--gate:after{z-index:3;aspect-ratio:1;content:"";background:#d9574b;border:2px solid #fff4d5;border-radius:50%;width:16%;position:absolute;top:32%;left:15%;box-shadow:0 1px 1px #2d261f47}.toyProp--gate-open .toyProp__accent{transform:rotate(-62deg)}.toyProp--gate-open:after{z-index:3;aspect-ratio:1;content:"";background:#2e9c73;border:2px solid #eff8df;border-radius:50%;width:16%;position:absolute;top:32%;left:15%;box-shadow:0 1px 1px #2d261f47}.toyProp--battery .toyProp__body,.toyProp--fuel .toyProp__body{border:clamp(2px, 6%, 5px) solid #255f62;background:linear-gradient(145deg,#70c98b,#2e9c73 68%,#19795f);border-radius:13%;inset:24% 16% 15%;box-shadow:inset 0 2px #ffffff6b,inset 0 -4px #1053422e}.toyProp--battery .toyProp__body:before{content:"";background:#255f62;border-radius:3px 3px 0 0;height:14%;position:absolute;top:-14%;left:31%;right:31%}.toyProp--battery .toyProp__accent{background:#fff7d8;border-radius:9px;height:8%;top:39%;left:34%;right:34%;box-shadow:0 -9px 0 -2px #fff7d8}.toyProp--fuel .toyProp__body{background:linear-gradient(145deg,#79b7c5,#29798c 68%,#1e6074);border-radius:17% 17% 12% 12%;inset:21% 18% 13%}.toyProp--fuel .toyProp__accent{clip-path:polygon(50% 0,90% 47%,72% 100%,28% 100%,10% 47%);background:#fff4d0;height:32%;top:28%;left:30%;right:30%}.toyProp--parcel .toyProp__body{border:clamp(2px, 6%, 5px) solid #8e6031;background:linear-gradient(145deg,#f2ca82,#c98949 72%,#a96838);border-radius:12%;inset:19% 14%;transform:rotate(4deg);box-shadow:inset 0 2px #ffffff6b,inset 0 -4px #653c2129}.toyProp--parcel .toyProp__accent{background:#fff0bc;width:15%;top:19%;bottom:19%;left:43%;transform:rotate(4deg);box-shadow:0 1px #744c263d}.toyProp--key .toyProp__body{border:clamp(2px, 5%, 4px) solid #916a1c;background:linear-gradient(145deg,#ffdf70,#e3aa27);border-radius:5px 12px 12px 5px;height:18%;top:43%;left:35%;right:14%;box-shadow:inset 0 1px #ffffff94}.toyProp--key .toyProp__accent{border:clamp(2px, 6%, 5px) solid #916a1c;background:radial-gradient(circle,#dbe9e5 0 34%,#0000 36%);border-radius:50%;width:35%;top:27%;bottom:27%;left:12%}.toyProp--charger .toyProp__body,.toyProp--repair .toyProp__body{border:clamp(2px, 6%, 5px) solid #275c75;background:linear-gradient(145deg,#74cbd3,#368ba1 68%,#286f86);border-radius:16% 16% 10% 10%;height:72%;bottom:12%;left:17%;right:17%;box-shadow:inset 0 2px #ffffff70,inset 0 -5px #14475a2e}.toyProp--charger .toyProp__accent,.toyProp--repair .toyProp__accent{clip-path:polygon(57% 0,15% 53%,44% 53%,29% 100%,85% 38%,55% 38%);background:#fff6c9;height:34%;top:34%;left:34%;right:34%}.toyProp--repair .toyProp__body{background:linear-gradient(145deg,#efc06c,#d7864a 68%,#b85c41)}.toyProp--repair .toyProp__accent{clip-path:polygon(0 13%,13% 0,100% 87%,87% 100%);background:#fff3d2}.toyProp--enemy .toyProp__body{border:clamp(2px, 6%, 5px) solid #743438;background:linear-gradient(145deg,#e77967,#bf4f50 68%,#983d46);border-radius:45% 45% 23% 23%;height:44%;bottom:24%;left:8%;right:8%;box-shadow:inset 0 2px #ffffff5e,inset 0 -4px #682a352e}.toyProp--enemy .toyProp__body:before{content:"";background:#263d55;border-radius:999px;height:22%;position:absolute;bottom:-18%;left:20%;right:20%;box-shadow:-15px 0 #263d55,15px 0 #263d55}.toyProp--enemy .toyProp__accent{background:#f5e6be;border-radius:4px 4px 9px 9px;height:18%;top:30%;left:26%;right:26%;box-shadow:inset 0 2px #ffffff73}.toyProp--light .toyProp__body{border:clamp(2px, 5%, 4px) solid #263d55;background:linear-gradient(145deg,#4a6375,#263d55);border-radius:12px;width:32%;top:8%;bottom:8%;left:34%;box-shadow:inset 0 1px #ffffff3d}.toyProp--light .toyProp__accent{aspect-ratio:1;background:#de695d;border-radius:50%;width:18%;top:20%;left:41%;box-shadow:0 13px #e6b84e,0 26px #5caf7e}.toyProp--light[data-state=green] .toyProp__accent{background:#a55b56;box-shadow:0 13px #ba9d5a,0 26px #74dca5,0 26px 7px #74dca575}.toyProp--light[data-state=red] .toyProp__accent{background:#ff8775;box-shadow:0 0 7px #ff877570,0 13px #ba9d5a,0 26px #4e9271}.toyProp--light:after{color:#eff8df;content:"✓";text-shadow:0 1px 1px #16392d52;background:#2d8f6d;border-radius:999px;place-items:center;min-height:17%;font-size:clamp(9px,34%,15px);font-weight:900;line-height:1;display:grid;position:absolute;bottom:7%;left:20%;right:20%}.toyProp--light[data-state=red]:after{color:#fff7e9;content:"!";background:#b74743}.intentPreview{color:#087fa3;opacity:.7;border:2px dashed #087fa3;justify-content:center;align-items:center;font-size:22px;font-weight:800;display:flex;position:absolute;inset:12%}.intentPreview>span{display:block}.gameBoard[data-feedback=anticipate] .intentPreview>span{animation:.22s cubic-bezier(.17,.83,.3,1) both intent-cue}.sensorBubble{color:#fff;pointer-events:none;overflow-wrap:anywhere;white-space:normal;z-index:8;background:#17202b;border:2px solid #fff;border-radius:6px;width:max-content;max-width:min(220px,70vw);padding:5px 7px;font-size:.875rem;font-weight:700;line-height:1.45;animation:.5s cubic-bezier(.19,.82,.31,1) both sensor-bubble;position:absolute;bottom:85%;left:50%;transform:translate(-50%)}@keyframes world-arrival{0%{opacity:.3;transform:scale(1.018)}58%{opacity:1;transform:scale(1.004)}to{opacity:1;transform:none}}@keyframes world-light-sweep{0%{opacity:0;transform:translate(-42%)}28%{opacity:.86}to{opacity:0;transform:translate(48%)}}@keyframes world-ribbon-in{0%{opacity:0;transform:translateY(-8px)scale(.97)}to{opacity:1;transform:none}}@keyframes win-hero-arrival{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes win-signal-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 5px #ffffff24,0 2px 8px #00000047}50%{transform:scale(1.14);box-shadow:0 0 0 9px #fff0,0 2px 10px #0000004d}}@keyframes board-blocked{0%{transform:translate(0)}18%{transform:translate(-7px)rotate(-.2deg)}38%{transform:translate(6px)rotate(.15deg)}57%{transform:translate(-3px)}to{transform:none}}@keyframes board-win-flash{0%{opacity:0;box-shadow:0 0 #ffdd6f00}28%{opacity:1;box-shadow:0 0 0 8px #ffdd6f6b}to{opacity:0;box-shadow:0 0 0 26px #ffdd6f00}}@keyframes goal-halo{0%{opacity:.2;transform:scale(.58);box-shadow:0 0 #ffdc6470}52%{opacity:1;transform:scale(1.04);box-shadow:0 0 0 7px #ffdc6452}to{opacity:0;transform:scale(1.34);box-shadow:0 0 0 18px #ffdc6400}}@keyframes goal-token-settle{0%{opacity:.45;transform:scale(.82)}64%{opacity:1;transform:scale(1.07)}to{transform:none}}@keyframes goal-celebrate{0%{transform:scale(.84)rotate(-6deg)}42%{transform:scale(1.18)rotate(4deg)}70%{transform:scale(.97)rotate(-1deg)}to{transform:none}}@keyframes sensor-ping{0%{opacity:.9;transform:scale(.58);box-shadow:0 0 #83deff6b}to{opacity:0;transform:scale(1.72);box-shadow:0 0 0 17px #83deff00}}@keyframes car-anticipate{0%,to{transform:translateY(0)scale(1)}38%{transform:translateY(4%)scale(1.065,.925)}68%{transform:translateY(-6%)scale(.98,1.04)}}@keyframes car-travel-east{0%{transform:translate(-76%)scale(.9)}60%{transform:translate(3%)scale(1.04,.96)}to{transform:none}}@keyframes car-travel-south{0%{transform:translateY(-76%)scale(.9)}60%{transform:translateY(3%)scale(1.04,.96)}to{transform:none}}@keyframes car-travel-west{0%{transform:translate(76%)scale(.9)}60%{transform:translate(-3%)scale(1.04,.96)}to{transform:none}}@keyframes car-travel-north{0%{transform:translateY(76%)scale(.9)}60%{transform:translateY(-3%)scale(1.04,.96)}to{transform:none}}@keyframes car-settle{0%{transform:translateY(-4%)scale(.95)}68%{transform:translateY(1%)scale(1.025,.98)}to{transform:none}}@keyframes car-turn-from{0%{opacity:1;transform:rotate(0)scale(1)}to{opacity:0;transform:translateY(2%)scale(.94,.97)}}@keyframes car-turn-to{0%{opacity:0;transform:translateY(-2%)scale(.94,.97)}62%{opacity:1;transform:translateY(0)scale(1.03,.98)}to{opacity:1;transform:none}}@keyframes car-win{0%{transform:translateY(0)scale(1)}35%{transform:translateY(-16%)scale(1.08)}68%{transform:translateY(2%)scale(.98)}to{transform:none}}@keyframes car-blocked{0%{transform:translate(0)scale(1)}28%{transform:translate(-4%)rotate(-1deg)scale(.99)}64%{transform:translate(2%)rotate(.4deg)}to{transform:none}}@keyframes action-beat-rise{0%{opacity:0;transform:translateY(12%)scale(.68)}58%{opacity:1;transform:translateY(-5%)scale(1.06)}to{opacity:0;transform:translateY(-18%)scale(.92)}}@keyframes action-spark-left{0%{opacity:0;transform:translateY(5px)scale(.5)}38%{opacity:1}to{opacity:0;transform:translate(-18px,-12px)scale(.8)}}@keyframes action-spark-right{0%{opacity:0;transform:translateY(5px)scale(.5)}38%{opacity:1}to{opacity:0;transform:translate(18px,-12px)scale(.8)}}@keyframes blocked-marker-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}@keyframes visited-ribbon-arrive{0%{opacity:.28;transform:scale(.64)}70%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:none}}@keyframes intent-cue{0%{opacity:.5;transform:scale(.72)}48%{opacity:1;transform:scale(1.16)}to{opacity:.72;transform:scale(1)}}@keyframes sensor-bubble{0%{opacity:0;transform:translate(-50%,10px)scale(.86)}62%{opacity:1;transform:translate(-50%,-2px)scale(1.02)}to{transform:translate(-50%)}}.deliveryDoor{background:#f7be43;border:5px solid #e3722a;border-bottom-width:9px;border-radius:4px 4px 0 0;position:absolute;inset:13%;box-shadow:inset 0 0 0 4px #fff1bd}.runStatus{color:#294048;background:#f7fafb;border-top:1px solid #bdcccf;align-items:center;gap:9px;min-height:45px;padding:8px 18px;font-size:.88rem;display:flex}.runStatus[data-error=true]{color:#8c2921;background:#fff2ef}.statusPulse{background:#27a466;border-radius:50%;flex:0 0 9px;width:9px;height:9px}.runStatus[data-error=true] .statusPulse{background:#d44c3e}.stepCount{color:#526970;white-space:nowrap;margin-left:auto}.playbackBar{background:#fff;border-top:1px solid #cad7da;align-items:center;gap:8px;padding:9px 14px;display:flex}.playButton{color:#fff;cursor:pointer;background:#067a9d;border:0;border-radius:7px;flex:0 0 46px;place-items:center;width:46px;height:46px;padding:0;display:grid}.playButton:hover:not(:disabled){background:#056885}.timeline{accent-color:#067a9d;flex:1;min-width:80px}.speedButton,.resetButton{cursor:pointer;background:#fff;border:1px solid #cad7da;border-radius:7px;justify-content:center;align-items:center;gap:6px;min-height:40px;display:inline-flex}.speedButton{min-width:68px}.codePane{background:#f8fafb;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.mobileSolveTrayHandle{display:none}.solveTrayContent{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.missionStrip{background:#fff;border-bottom:1px solid #d4dee0;justify-content:space-between;align-items:center;gap:16px;min-height:78px;padding:13px 18px;display:flex}.missionStrip>div{min-width:0}.eyebrow{color:#067a9d;letter-spacing:0;text-transform:uppercase;font-size:.875rem;font-weight:800;display:block}.missionStrip p{margin:4px 0 0;font-size:1rem;font-weight:700;line-height:1.5}[lang=th] .boardTelemetry{white-space:normal;min-height:32px;line-height:1.55}[lang=th] .sensorBubble,[lang=th] .eyebrow{line-height:1.65}.hintButton,.secondaryButton,.runButton{cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 15px;font-weight:750;display:inline-flex}.hintButton{color:#684a08;background:#fff5d4;border:1px solid #d9a52d;flex:none}.hintPanel{color:#624a18;background:#fff8df;border-bottom:1px solid #efd591;align-items:center;gap:9px;min-height:50px;padding:8px 12px 8px 18px;font-size:.87rem;display:flex}.shareNotice{color:#244e59;background:#e6f4f6;border-bottom:1px solid #a9cbd2;align-items:center;gap:9px;min-height:46px;padding:7px 12px 7px 18px;font-size:.84rem;display:flex}.shareNotice>span{flex:1}.runErrorNotice{color:#7b2822;background:#fff3f0;border-bottom:1px solid #efb8b1;align-items:center;gap:9px;min-height:54px;padding:7px 12px 7px 18px;font-size:.875rem;display:flex}.runErrorNotice>span{flex:1}.secondaryButton--compact{color:#7b2822;white-space:nowrap;background:#fff;border-color:#dfa49c;gap:6px;min-height:40px;padding-inline:10px}.secondaryButton--compact:hover{background:#fffaf8}.hintPanel>span{flex:1}.hintPanel--trace{color:#31525d;background:radial-gradient(circle at 8% 0,#ffffffe6,#0000 38%),linear-gradient(135deg,#fff8df 0%,#fff4d0 100%);align-items:stretch;gap:10px;padding:10px 12px 10px 18px}.hintPanel--trace>.hintTrace{flex:auto;min-width:0}.hintTrace{gap:8px;display:grid}.hintTraceHeader{align-items:center;gap:8px;min-width:0;display:flex}.hintTraceMark{color:#fff8df;background:linear-gradient(145deg,#f0b52f,#da7b24);border:1px solid #d9a52d;border-radius:8px;flex:0 0 25px;place-items:center;width:25px;height:25px;display:grid;position:relative;box-shadow:0 3px 8px #ba701638}.hintTraceMark:before,.hintTraceMark:after{content:"";border:2px solid #fff8df;border-radius:50%;width:8px;height:8px;position:absolute}.hintTraceMark:before{transform:translate(-4px,-4px)}.hintTraceMark:after{opacity:.72;transform:translate(4px,4px)}.hintTraceHeader strong{color:#4c3a12;letter-spacing:.01em;font-size:.875rem}.hintTraceBadge{color:#7a5b16;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:#fff9;border:1px solid #e7c774;border-radius:999px;margin-left:auto;padding:3px 7px;font-size:.875rem;font-weight:800}.hintConceptVisual{opacity:0;background:linear-gradient(105deg,#ffffffc2,#fff7d6b8);border:1px solid #e4c66f;border-radius:10px;grid-template-columns:minmax(120px,.8fr) minmax(0,1.8fr);align-items:center;gap:10px;min-height:48px;padding:7px 9px;animation:.42s cubic-bezier(.2,.8,.2,1) 70ms forwards hintConceptReveal;display:grid;box-shadow:inset 0 1px #ffffffbf}.hintConceptCaption{color:#6d5213;align-items:center;gap:6px;font-size:.875rem;font-weight:850;line-height:1.35;display:inline-flex}.hintConceptCaption svg{color:#c77d23;flex:none}.hintConceptTrack{grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:6px;min-width:0;display:grid}.hintConceptToken{color:#255967;text-align:center;white-space:normal;overflow-wrap:anywhere;background:#eff9f8;border:1px solid #b8d1d3;border-radius:7px;place-items:center;min-width:0;min-height:30px;padding:3px 4px;font-size:.875rem;font-weight:850;line-height:1.2;display:grid;position:relative}.hintConceptToken:not(:last-child):after{content:"";border-top:2px solid #d99a2e;width:7px;position:absolute;top:50%;right:-7px}.hintConceptVisual--condition .hintConceptToken:nth-child(2),.hintConceptVisual--value .hintConceptToken:nth-child(3){color:#7a5610;background:#fff8df;border-color:#e0ba55}.hintConceptVisual--delivery .hintConceptToken:nth-child(3),.hintConceptVisual--resource .hintConceptToken:nth-child(3),.hintConceptVisual--debug .hintConceptToken:nth-child(3){color:#8a342e;background:#fff3f0;border-color:#e2a096}.hintConceptVisual--loop .hintConceptToken:nth-child(4),.hintConceptVisual--collection .hintConceptToken:nth-child(3){color:#226e55;background:#effbf5;border-color:#99cdb8}.hintConceptVisual--route .hintConceptToken:nth-child(2),.hintConceptVisual--route .hintConceptToken:nth-child(3){animation:2.4s ease-in-out infinite hintRouteAdvance}.hintConceptVisual--turn .hintConceptToken:first-child{animation:2.4s ease-in-out infinite hintTurnOrient}.hintConceptVisual--turn .hintConceptToken:nth-child(2){animation:2.4s ease-in-out .12s infinite hintTurnCorner}.hintConceptVisual--condition .hintConceptTrack{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));position:relative}.hintConceptVisual--condition .hintConceptToken:first-child{grid-area:1/1/auto/-1;animation:2.4s ease-in-out infinite hintBranchAsk}.hintConceptVisual--condition .hintConceptToken:nth-child(2){grid-area:2/1;animation:2.4s ease-in-out .22s infinite hintBranchYes}.hintConceptVisual--condition .hintConceptToken:nth-child(3){grid-area:2/3;animation:2.4s ease-in-out .22s infinite hintBranchNo}.hintConceptVisual--condition .hintConceptToken:nth-child(4){grid-area:2/2;animation:2.4s ease-in-out .42s infinite hintBranchJoin}.hintConceptVisual--condition .hintConceptToken:after{display:none}.hintConceptVisual--loop .hintConceptTrack{background:#ebfbf3bf;border:2px dashed #83c5a9;border-radius:999px;padding:4px 10px;animation:2.4s linear infinite hintLoopOrbit}.hintConceptVisual--loop .hintConceptToken{background:#f7fffa;border-color:#a7d8bf}.hintConceptVisual--value .hintConceptTrack{border-bottom:3px solid #d8a32b;align-items:end;min-height:42px;padding:4px 7px 0}.hintConceptVisual--value .hintConceptToken{align-self:end;min-height:23px}.hintConceptVisual--value .hintConceptToken:first-child{height:58%}.hintConceptVisual--value .hintConceptToken:nth-child(2){height:78%;animation:2.4s ease-in-out infinite hintValueAdvance}.hintConceptVisual--value .hintConceptToken:nth-child(3){height:100%}.hintConceptVisual--value .hintConceptToken:nth-child(4){height:66%}.hintConceptVisual--collection .hintConceptTrack{background:#ecfbf4a6;border-left:4px solid #8fcab2;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));padding:4px}.hintConceptVisual--collection .hintConceptToken:first-child{animation:2.4s ease-in-out infinite hintListScan}.hintConceptVisual--collection .hintConceptToken:nth-child(3){animation:2.4s ease-in-out .3s infinite hintListCheck}.hintConceptVisual--delivery .hintConceptToken:first-child,.hintConceptVisual--delivery .hintConceptToken:nth-child(3){animation:2.4s ease-in-out infinite hintDeliveryHandoff}.hintConceptVisual--timing .hintConceptTrack{border-bottom:3px solid #d69b2c;padding:7px 4px 4px}.hintConceptVisual--timing .hintConceptToken:first-child,.hintConceptVisual--timing .hintConceptToken:nth-child(4){animation:2.4s ease-in-out infinite hintTimingWait}.hintConceptVisual--timing .hintConceptToken:nth-child(2){animation:2.4s ease-in-out .18s infinite hintTimingCheck}.hintConceptVisual--timing .hintConceptToken:nth-child(3){animation:2.4s ease-in-out .36s infinite hintTimingGo}.hintConceptVisual--resource .hintConceptToken:first-child{background:linear-gradient(90deg,#d4f0e3 65%,#f7fffa 65%);border:3px solid #5e9e86;animation:2.4s ease-in-out infinite hintResourceFill}.hintConceptVisual--debug .hintConceptTrack{border:2px dashed #dc9a8f;transform:rotate(-1deg)}.hintConceptVisual--debug .hintConceptToken:nth-child(2){animation:2.4s ease-in-out infinite hintDebugRewind}.hintConceptVisual--debug .hintConceptToken:nth-child(3){animation:2.4s ease-in-out .26s infinite hintDebugFix}@keyframes hintConceptReveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes hintRouteAdvance{0%,20%{opacity:.55;transform:translate(-3px)}35%,75%{opacity:1;transform:translate(0)}90%,to{opacity:.55;transform:translate(3px)}}@keyframes hintTurnOrient{0%,25%{transform:rotate(0)}48%,72%{transform:rotate(90deg)}88%,to{transform:rotate(0)}}@keyframes hintTurnCorner{0%,35%{opacity:.55;transform:translate(-3px)}55%,to{opacity:1;transform:translate(0)}}@keyframes hintBranchAsk{0%,24%{transform:scale(.96)}38%,to{transform:scale(1)}}@keyframes hintBranchYes{0%,34%{opacity:.42}52%,78%{opacity:1}92%,to{opacity:.55}}@keyframes hintBranchNo{0%,52%{opacity:.42}68%,84%{opacity:1}96%,to{opacity:.55}}@keyframes hintBranchJoin{0%,72%{opacity:.48;transform:translateY(3px)}88%,to{opacity:1;transform:translateY(0)}}@keyframes hintLoopOrbit{0%,20%{transform:rotate(0)}50%{transform:rotate(2deg)}80%,to{transform:rotate(0)}}@keyframes hintValueAdvance{0%,30%{transform-origin:bottom;transform:scaleY(.86)}60%,to{transform-origin:bottom;transform:scaleY(1)}}@keyframes hintListScan{0%,20%{transform:translate(-3px)}55%,to{transform:translate(0)}}@keyframes hintListCheck{0%,45%{opacity:.45}72%,to{opacity:1}}@keyframes hintDeliveryHandoff{0%,30%{transform:translate(-3px)}58%,to{transform:translate(2px)}}@keyframes hintTimingWait{0%,to{opacity:.58}50%{opacity:1}}@keyframes hintTimingCheck{0%,35%{transform:scale(.94)}60%,to{transform:scale(1)}}@keyframes hintTimingGo{0%,55%{opacity:.45}78%,to{opacity:1}}@keyframes hintResourceFill{0%,25%{transform-origin:0;transform:scaleX(.92)}70%,to{transform-origin:0;transform:scaleX(1)}}@keyframes hintDebugRewind{0%,25%{opacity:.55;transform:translate(3px)}55%,to{opacity:1;transform:translate(-2px)}}@keyframes hintDebugFix{0%,58%{opacity:.45}84%,to{opacity:1}}.hintTraceSteps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.hintTraceStep{opacity:0;background:#ffffffab;border:1px solid #ead18b;border-radius:9px;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:7px;min-width:0;padding:8px;animation:.52s cubic-bezier(.22,.8,.28,1) forwards hintTraceReveal;display:grid;position:relative;box-shadow:0 4px 11px #80591214}.hintTraceStep--observe{animation-delay:70ms}.hintTraceStep--decide{animation-delay:.17s}.hintTraceStep--act{animation-delay:.27s}.hintTraceNode{color:#fff;background:#4b8a98;border-radius:7px;place-items:center;width:22px;height:22px;font-size:.68rem;font-weight:900;display:grid;box-shadow:0 2px 6px #2b6c793d}.hintTraceStep--decide .hintTraceNode{background:#d28b29}.hintTraceStep--act .hintTraceNode{background:#d1634e}.hintTraceStepCopy{gap:3px;min-width:0;display:grid}.hintTraceStepCopy strong{color:#4c3a12;font-size:.875rem;line-height:1.35}.hintTraceStepCopy>span{color:#52666b;overflow-wrap:anywhere;font-size:1rem;line-height:1.5}.hintTraceFooter{color:#7a5b16;font-size:.875rem;font-weight:750;line-height:1.5}.hintTrace[data-locale=th] .hintConceptCaption,.hintTrace[data-locale=th] .hintTraceStepCopy>span,.hintTrace[data-locale=th] .hintTraceFooter{line-height:1.65}@keyframes hintTraceReveal{0%{opacity:0;transform:translateY(5px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.editorHeader{border-bottom:1px solid #d5dfe1;justify-content:flex-start;align-items:center;min-height:55px;padding:7px 14px;display:flex}.modeSwitch{background:#eaf0f2;border:1px solid #c8d5d8;border-radius:7px;padding:3px;display:inline-flex}.modeSwitch button{color:#53666d;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;min-height:36px;padding:0 11px;display:inline-flex}.modeSwitch button[aria-pressed=true]{color:#102b33;background:#fff;box-shadow:0 1px 4px #112c3224}.resetButton{margin-left:7px;padding:0 11px}.modeSwitch+.resetButton{margin-left:auto}.blockEditor{flex:160px;grid-template-rows:minmax(105px,1fr) auto;min-height:0;display:grid;overflow:hidden}.programList{background:linear-gradient(#f6f8f9 23px,#0000 24px) 0 0/100% 48px,#eef3f4;min-height:0;padding:12px;overflow:auto}.emptyProgram{color:#70848a;background:#fff9;border:2px dashed #b4c5c9;border-radius:7px;align-content:center;place-items:center;gap:5px;min-height:96px;font-size:.85rem;display:grid}.programLine{background:#fff;border:1px solid #aebfc3;border-left:5px solid #067a9d;border-radius:6px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;min-height:48px;margin-bottom:6px;display:grid;box-shadow:0 2px 3px #213d4314}.programLine[draggable=true]{cursor:grab}.programLine[draggable=true]:active{cursor:grabbing}.programLine--dragging{opacity:.48;border-style:dashed}.programLine[data-drop-target=true]{border-style:dashed;border-color:#d78a18;box-shadow:0 0 0 3px #d78a182e}.programLine[data-active=true]{background:#fff9e9;border-color:#e2a11a;box-shadow:0 0 0 2px #e2a11a38}.lineNumber{color:#789097;text-align:center;justify-content:center;align-items:center;gap:2px;font-size:.73rem;display:inline-flex}.lineDragHandle{color:#6d858b;cursor:grab;touch-action:none;justify-content:center;align-items:center;min-width:26px;min-height:36px;display:inline-flex}.lineDragHandle:active{cursor:grabbing}.programLine code,.commandPalette code,.variableShelf code,.textEditor{font-variant-ligatures:none;flex:160px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}.textGutter,.textSuggestions code{font-variant-ligatures:none;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}.textSuggestions{background:#fff;border-top:1px solid #cedadc;grid-column:1/-1;gap:6px;min-height:44px;padding:6px 10px;display:flex;overflow-x:auto}.textSuggestions button{color:#173c47;background:#e7f4f6;border:1px solid #8fb0b7;border-radius:5px;min-height:32px;padding:4px 9px}.programLine code{color:#0a6683;text-overflow:ellipsis;white-space:pre;min-width:0;font-size:.88rem;font-weight:700;overflow:hidden}.editableCode{align-items:center;display:flex}.editableCode input{color:inherit;font:inherit;background:#eef7f8;border:1px solid #8fb0b7;border-radius:4px;width:58px;min-height:34px;margin:0 3px;padding:2px 5px}.lineActions{padding-right:4px;display:flex}.lineActions button{color:#5e747b;cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;width:34px;height:38px;padding:0;display:grid}.lineActions button:hover:not(:disabled){color:#253a40;background:#e8eff1}.rotate180{transform:rotate(180deg)}.commandPalette{background:#fff;border-top:1px solid #cedadc;gap:7px;padding:31px 12px 10px;display:flex;position:relative;overflow-x:auto}.dragHelp{color:#61777d;white-space:nowrap;margin:0;font-size:.72rem;font-weight:700;position:absolute;top:6px;left:12px}.commandPalette button{color:#173c47;cursor:pointer;text-align:left;touch-action:manipulation;background:#e7f4f6;border:1px solid #8fb0b7;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:18px 1fr;align-items:center;column-gap:5px;min-width:116px;min-height:58px;padding:7px 9px;display:grid}.commandPalette button:hover{background:#d9eff3;border-color:#067a9d}.commandPalette button[draggable=true]{cursor:grab}.commandPalette button[draggable=true]:active{cursor:grabbing}.commandPalette button>span{font-size:.78rem;font-weight:800}.commandPalette code{color:#47717c;grid-column:1/-1;font-size:.69rem}.textEditor{color:#e8f1f2;background:#202c32;grid-template-columns:43px minmax(0,1fr);min-height:0;display:grid}.textGutter{color:#7f969e;text-align:right;-webkit-user-select:none;user-select:none;border-right:1px solid #405158;align-content:start;padding-top:13px;display:grid}.textGutter span{height:25px;padding-right:10px;font-size:.77rem;line-height:25px}.textGutter span[data-active=true]{color:#f7c24e;background:#34434a}.textEditor textarea{resize:none;outline-offset:-3px;color:#eaf4f5;font-variant-ligatures:none;tab-size:2;background:#202c32;border:0;width:100%;min-height:100%;padding:13px 14px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.88rem;line-height:25px}.textEditor textarea::placeholder{color:#647980}.variableShelf{white-space:nowrap;background:#f1f5f6;border-top:1px solid #cedadc;align-items:center;gap:8px;min-height:46px;padding:7px 14px;display:flex;overflow-x:auto}.variableShelf>span{color:#526970;text-transform:uppercase;font-size:.71rem;font-weight:800}.variableShelf code{color:#30555e;background:#fff;border:1px solid #cad7da;border-radius:5px;padding:5px 8px;font-size:.72rem}.runBar{background:#fff;border-top:1px solid #cad7da;grid-template-columns:auto minmax(155px,1fr);gap:10px;min-height:66px;padding:10px 14px;display:grid}.secondaryButton{color:#334a51;background:#fff;border:1px solid #aebfc3}.secondaryButton:hover{background:#f1f5f6}.runButton{color:#fff;background:#087fa3;border:1px solid #077293;box-shadow:inset 0 -3px #00000024}.runButton:hover:not(:disabled){background:#066d8c}.lessonToast{z-index:7;background:linear-gradient(135deg,#fff,#f4fbfb);border:1px solid #b7c9cc;border-radius:14px;grid-template-columns:42px minmax(0,1fr) 32px;align-items:start;gap:10px;width:min(460px,100vw - 36px);padding:12px;display:grid;position:fixed;top:82px;left:18px;box-shadow:0 12px 30px #1d383e36}.lessonIcon{color:#fff;background:#d86c30;border-radius:7px;place-items:center;width:42px;height:42px;display:grid}.lessonToast>div:nth-child(2){gap:6px;min-width:0;display:grid}.lessonToast span{color:#b84a12;text-transform:uppercase;font-size:.67rem;font-weight:800}.lessonToast strong{color:#163640;font-size:.92rem;line-height:1.32}.lessonConcepts{gap:5px;margin:0;padding:0;list-style:none;display:grid}.lessonConcepts li{color:#486068;gap:2px;font-size:.74rem;line-height:1.35;display:grid}.lessonConcepts li>span{display:block}.lessonConcepts li code{color:#087fa3;margin-right:5px;font:800 .72rem/1.2 JetBrains Mono,ui-monospace,monospace}.lessonExample{background:#eaf7f8;border:1px solid #c5dfe3;border-radius:4px;width:fit-content;padding:2px 5px}.lessonToast__content>p{color:#61777d;margin:0;font-size:.72rem;font-weight:700}.tutorialBackdrop{z-index:40;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c2127b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.tutorialCard{background:radial-gradient(circle at 100% 0,#edbd3d2e,#0000 42%),linear-gradient(145deg,#fff,#eef9f9);border:1px solid #b8d8dc;border-radius:24px;gap:12px;width:min(510px,100%);padding:clamp(22px,5vw,36px);display:grid;box-shadow:0 28px 80px #051b205c}.tutorialCard__badge{color:#fff;background:#d86c30;border:1px solid #e2a11a;border-radius:16px;place-items:center;width:52px;height:52px;display:grid;box-shadow:0 7px 14px #d86c3040}.tutorialCard h2{color:#15333b;margin:0;font-size:clamp(1.55rem,4vw,2.2rem);line-height:1.04}.tutorialCard__intro{color:#536d74;max-width:42ch;margin:0;font-size:.95rem;line-height:1.55}.tutorialStep{background:#fff;border:1px solid #c5dfe3;border-radius:14px;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:12px;min-height:86px;padding:14px;animation:.22s ease-out both tutorialStepIn;display:grid}.tutorialStep__icon{color:#087fa3;background:#e7f4f6;border-radius:13px;place-items:center;width:46px;height:46px;display:grid}.tutorialStep p{color:#24464f;margin:0;font-size:.92rem;line-height:1.45}.tutorialProgress{justify-content:center;gap:7px;display:flex}.tutorialProgress__dot{background:#c5dadd;border:0;border-radius:999px;width:32px;height:8px;padding:0}.tutorialProgress__dot[aria-pressed=true]{background:#087fa3}.tutorialCard__actions{justify-content:flex-end;align-items:center;gap:8px;padding-top:5px;display:flex}.tutorialCard__actions .textButton{margin-right:auto}@keyframes tutorialStepIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.modalBackdrop{z-index:20;background:#0e1d229e;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.levelDrawer{background:#f7fafb;border-radius:8px;width:min(720px,100%);max-height:min(680px,100vh - 36px);overflow:auto;box-shadow:0 20px 60px #00000047}.levelDrawer>header{background:#fff;border-bottom:1px solid #cedadc;justify-content:space-between;align-items:center;min-height:76px;padding:14px 18px;display:flex}.levelDrawer h2{margin:3px 0 0;font-size:1.3rem}.keyBalance{color:var(--muted);align-items:center;gap:5px;margin-top:4px;font-size:.78rem;display:flex}.garageStrip{border-bottom:1px solid var(--line);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:10px 0;display:flex}.garageBalance{color:var(--muted);flex:none;align-items:center;gap:5px;font-size:.78rem;display:flex}.garageOptions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.garageOption{background:var(--surface);border:1px solid var(--line);color:var(--ink);font:inherit;border-radius:6px;grid-template-columns:16px auto;align-items:center;gap:0 6px;min-height:44px;padding:5px 8px;font-size:.72rem;display:grid}.garageOption[aria-pressed=true]{border-color:var(--accent)}.garageOption small{color:var(--muted);grid-column:2}.removeAdsControl{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 18px;display:flex}.removeAdsControl>div{align-items:center;gap:9px;display:flex}.removeAdsControl span{display:grid}.removeAdsControl small,.removeAdsControl p{color:var(--muted);margin:0;font-size:12px}.removeAdsControl>p{flex-basis:100%}.carSwatch{background:#df7a2f;border:1px solid #0000002e;border-radius:50%;grid-row:1/span 2;width:14px;height:14px;display:block}.carSwatch--mint{background:#3c9b72}.carSwatch--ruby{background:#bf3f4b}.drawerActions{align-items:center;gap:8px;display:flex}.accountStrip{background:#f2f8f8;border-bottom:1px solid #d5dfe1;align-items:center;gap:10px;padding:9px 18px;display:flex}.accountStrip>span{text-align:left;min-width:0;margin-right:auto;display:grid}.accountStrip small{color:#667980;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.accountNotice{color:#7b2822;background:#fff3f0;border-bottom:1px solid #efb8b1;align-items:center;gap:8px;min-height:46px;padding:6px 14px;font-size:.875rem;display:flex}.accountNotice>span{flex:1}.analyticsToggle{color:#46666e;white-space:nowrap;background:#fff;border:1px solid #bfd2d5;border-radius:6px;align-items:center;gap:5px;min-height:36px;padding:4px 7px;font-size:.7rem;font-weight:700;display:inline-flex}.analyticsToggle input{width:18px;height:18px;accent-color:var(--accent);margin:0}.textButton--danger{color:#9a3e1c}.transferDialog{background:#fff;border-radius:8px;width:min(430px,100%);overflow:hidden;box-shadow:0 20px 60px #0000004d}.transferDialog>header{border-bottom:1px solid #cedadc;justify-content:space-between;align-items:center;min-height:72px;padding:14px 18px;display:flex}.transferDialog h2{margin:3px 0 0;font-size:1.3rem}.transferSection{gap:10px;padding:18px;display:grid}.transferSection>strong,.transferSection>label{color:#334a51;font-size:.8rem;font-weight:800}.transferSection input,.transferCode{color:#17202b;letter-spacing:0;text-align:center;background:#f7fafb;border:1px solid #aebfc3;border-radius:6px;width:100%;min-height:52px;padding:9px 12px;font:800 1.35rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace}.transferCode{color:#087fa3;place-items:center;display:grid}.transferDivider{background:#d4dee0;place-items:center;height:1px;display:grid}.transferDivider span{color:#667980;background:#fff;padding:0 9px;font-size:.72rem;font-weight:700}.transferMessage{color:#30555e;text-align:center;background:#eff7f8;border-top:1px solid #d4dee0;margin:0;padding:12px 18px;font-size:.8rem}.chapterMap{gap:16px;padding:16px;display:grid}.worldChapter{background:#f7fafb;border:1px solid #b9cbd0;border-radius:14px;overflow:hidden;box-shadow:0 4px 16px #0f293014}.worldChapter[data-complete=true]{border-color:#d9a229}.worldChapterHeader{background:linear-gradient(100deg,#e6f2f4 0%,#f8fbfc 68%);border-bottom:1px solid #cedadc;grid-template-columns:118px minmax(0,1fr) minmax(160px,.8fr);align-items:stretch;min-height:118px;display:grid;position:relative;overflow:hidden}.worldChapterArt{background:linear-gradient(120deg,#d8ecee,#eef6f6);position:relative;overflow:hidden}.worldChapterArt:after{content:"";pointer-events:none;background:linear-gradient(120deg,#07212a14,#07212a8a);position:absolute;inset:0}.worldChapterArtImage{object-fit:cover;width:100%;height:100%;display:block}.worldChapterCopy,.chapterMilestone{align-content:center;gap:5px;padding:14px 16px;display:grid;position:relative}.worldChapterCopy h3{color:#17373f;margin:0;font-size:1.05rem}.chapterMetrics{color:#547076;flex-wrap:wrap;gap:5px 11px;font-size:.875rem;font-weight:750;line-height:1.45;display:flex}.chapterMetrics span{align-items:center;gap:3px;display:inline-flex}.chapterMetrics svg{color:#d68c12}.chapterProgress{background:#cddcdf;border-radius:999px;width:100%;height:6px;overflow:hidden}.chapterProgress>span{border-radius:inherit;background:linear-gradient(90deg,#0780a3,#38af9f);height:100%;transition:width .28s ease-out;display:block}.worldChapter[data-complete=true] .chapterProgress>span{background:linear-gradient(90deg,#d86c30,#e4b72c)}.chapterMilestone{background:#ffffffbd;border-left:1px solid #cedadc}.chapterMilestone>span{color:#607980;letter-spacing:.06em;text-transform:uppercase;font-size:.875rem;font-weight:900}.chapterMilestone strong{color:#23454d;font-size:.9rem;line-height:1.45}.chapterMilestone small,.bossTag{color:#9a6305;align-items:center;gap:4px;font-size:.875rem;font-weight:800;display:inline-flex}.levelGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;display:grid}.levelCard{cursor:pointer;text-align:left;background:#fff;border:1px solid #bdcccf;border-radius:7px;grid-template-rows:1fr auto;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:4px 9px;min-height:105px;padding:12px;display:grid}.levelCard:hover:not(:disabled),.levelCard[data-current=true]{border-color:#0780a3;box-shadow:inset 0 0 0 1px #0780a3}.levelCard[data-boss=true]{background:#fffaf0;border-color:#d9b557}.levelCard:disabled{color:#72848a;background:#e9eff0}.levelNumber{color:#fff;background:#087fa3;border-radius:7px;grid-row:1/3;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.levelCard:disabled .levelNumber{color:#65787e;background:#d1dcde}.levelCard strong{overflow-wrap:anywhere;font-size:.87rem}.levelCardTitle{gap:3px;min-width:0;display:grid}.levelCardTitle small{color:#64777e;font-size:.67rem}.miniStars{gap:1px}.modalBackdrop--win{background:#0e1d22b8}.winSheet{text-align:center;background:#fff;border-top:6px solid #e3a31b;border-radius:8px;width:min(460px,100%);padding:24px;box-shadow:0 20px 60px #0000004d}.trophy{color:#fff;background:#d86c30;border-radius:50%;place-items:center;width:66px;height:66px;margin:-2px auto 13px;display:grid}.winWorldHero{--win-accent:#69ddbd;color:#fff;background-image:linear-gradient(180deg, #0d2a3414, #0c252edb), var(--win-world-art);text-align:left;background-position:50%;background-size:cover;border:1px solid #ffffff9e;border-radius:14px;align-items:end;min-height:98px;margin:0 0 15px;animation:.46s cubic-bezier(.18,.82,.28,1) both win-hero-arrival;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 18px #0e293038,inset 0 1px #ffffff42}.winWorldHero__wash{pointer-events:none;background:linear-gradient(110deg,#144b5229,#0000 55%,#0003);position:absolute;inset:0}.winWorldHero__copy{z-index:1;text-shadow:0 1px 2px #00000057;gap:2px;max-width:calc(100% - 42px);padding:14px 16px;display:grid;position:relative}.winWorldHero__eyebrow{color:#ecfffcc7;letter-spacing:.13em;text-transform:uppercase;font-size:.68rem;font-weight:850;line-height:1}.winWorldHero__copy strong{font-size:1.16rem;line-height:1.2}.winWorldHero__copy>span:last-child{color:#f0fffad6;font-size:.75rem;line-height:1.25}.winWorldHero__signal{z-index:1;background:var(--win-accent);border:3px solid #ffffffdb;border-radius:50%;width:17px;height:17px;position:absolute;top:14px;right:16px;box-shadow:0 0 0 5px #ffffff24,0 2px 8px #00000047}.winWorldHero--boss{border-color:var(--win-accent);min-height:112px;box-shadow:0 0 0 2px #ffffff3d,0 10px 24px #0e293047,inset 0 1px #ffffff4d}.winWorldHero--boss .winWorldHero__signal{animation:.9s ease-in-out infinite win-signal-pulse}.winWorldHero[data-world="1"]{--win-accent:#ffd45c}.winWorldHero[data-world="2"]{--win-accent:#ff9c66}.winWorldHero[data-world="3"]{--win-accent:#69ddbd}.winWorldHero[data-world="4"]{--win-accent:#f49bd1}.winWorldHero[data-world="5"]{--win-accent:#f4ca75}.winWorldHero[data-world="6"]{--win-accent:#8ed7ff}.winWorldHero[data-world="7"]{--win-accent:#b7a6ff}.winSheet h2{margin:5px 0 8px;font-size:1.55rem}.winStars{justify-content:center;gap:4px;margin:8px 0 16px}.winSheet dl{border-block:1px solid #d4dee0;grid-template-columns:repeat(3,1fr);margin:0;display:grid}.winSheet dl>div{padding:11px 6px}.winSheet dl>div+div{border-left:1px solid #d4dee0}.winSheet dt{color:#667980;text-transform:uppercase;font-size:.68rem}.winSheet dd{margin:3px 0 0;font-weight:900}.sponsoredSlot{text-align:left;gap:5px;margin:14px 0;display:grid}.sponsoredSlot>span{color:#667980;text-transform:uppercase;font-size:.62rem;font-weight:800}.sponsoredSlot>button{color:#30555e;cursor:pointer;background:#f7fafb;border:1px solid #bdcccf;border-radius:6px;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:8px;min-height:66px;padding:5px;display:grid}.sponsoredSlot img{object-fit:contain;width:100%;height:56px;display:block}.sponsoredSlot--world_map{border-bottom:1px solid #d5dfe1;margin:0;padding:10px 18px 14px}.adultGateBackdrop{z-index:30;background:#0e1d22c7;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.adultGate{text-align:left;background:#fff;border-radius:8px;gap:14px;width:min(360px,100%);padding:18px;display:grid;box-shadow:0 20px 60px #00000057}.adultGate header{justify-content:space-between;align-items:center;display:flex}.adultGate header span{color:#b84a12;text-transform:uppercase;font-size:.65rem;font-weight:800}.adultGate h3{margin:2px 0 0;font-size:1.25rem}.adultGate label{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.adultGate label strong{font:800 1.5rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace}.adultGate label span{color:#667980;font-size:.72rem;font-weight:700}.adultGate input{color:#17202b;text-align:center;background:#f7fafb;border:1px solid #aebfc3;border-radius:6px;width:100%;min-height:52px;font:800 1.35rem/1 ui-monospace,SFMono-Regular,Consolas,monospace}.adultGate p{color:#9a3e1c;text-align:center;margin:0;font-size:.78rem}.winSheet p{color:#41575e;margin:16px 0;font-size:.88rem}.certificateMessage{color:#684a08;background:#fff8df;border:1px solid #e2bd66;border-radius:6px;gap:4px;margin:16px 0;padding:13px;display:grid}.certificateMessage strong{font-size:.94rem}.certificateMessage span{font-size:.72rem}.winActions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.winActions--milestone{grid-template-columns:1fr 1fr 1fr}@media (width<=900px){body{overflow:auto}.gameShell{min-height:100dvh}.workspace{grid-template-rows:minmax(390px,53dvh) minmax(470px,auto);grid-template-columns:1fr}.mapPane{border-bottom:1px solid #c7d5d8;border-right:0}.gameBoard{--tile-size:min(10.6vmin, 74px)}.codePane{min-height:500px}}@media (width<=600px){.chapterMap{gap:12px;padding:12px}.worldChapterHeader{grid-template-columns:84px minmax(0,1fr)}.chapterMilestone{border-top:1px solid #cedadc;border-left:0;grid-column:1/-1;padding:10px 14px}.levelGrid{grid-template-columns:1fr}}@media (width<=620px){.gameShell{grid-template-rows:58px minmax(0,1fr)}.topBar{grid-template-columns:1fr auto}.brandButton{min-height:58px;padding:5px 10px}.brandMark{flex-basis:34px;width:34px;height:34px}.brandButton small,.levelTitle{display:none}.topActions{padding-right:max(9px, env(safe-area-inset-right));gap:6px}.starScore{display:none}.workspace{grid-template-rows:minmax(0,calc(100dvh - 58px))}.mapBackdrop{padding:12px 8px}.worldRibbon{border-radius:12px;width:min(230px,100% - 20px);padding:8px 11px 9px;top:10px;left:10px}.worldRibbon__mission{display:none}.worldRibbon strong{font-size:1rem}.mapPane{border-bottom:0;grid-template-rows:minmax(0,1fr) 40px 52px;min-height:0}.codePane{z-index:8;background:#f8fafb;border:1px solid #acc3c8;border-bottom:0;border-radius:18px 18px 0 0;height:min(52dvh,500px);min-height:0;transition:transform .26s cubic-bezier(.2,.8,.2,1);position:fixed;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -10px 28px #0f29302e}.codePane[data-mobile-tray-state=collapsed]{transform:translateY(calc(100% - 64px - env(safe-area-inset-bottom)))}.mobileSolveTrayHandle{width:100%;min-height:calc(64px + env(safe-area-inset-bottom));padding:9px max(14px, env(safe-area-inset-right)) max(9px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));color:#193c45;text-align:left;background:#fff9ee;border:0;border-bottom:1px solid #c7d8db;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:9px;font:800 .94rem/1.2 system-ui,sans-serif;display:grid}.mobileSolveTrayGrip{background:#8ba5aa;border-radius:999px;width:28px;height:4px}.gameBoard{--tile-size:min(12.1vmin, 60px);gap:2px;padding:5px}.runStatus{padding-inline:11px}.stepCount{display:none}.playbackBar{gap:5px;padding-inline:7px}.playbackBar .iconButton{flex-basis:40px;width:40px}.speedButton{min-width:61px}.missionStrip{min-height:72px;padding:10px 12px}.missionStrip p{font-size:1rem;line-height:1.6}.hintButton{padding-inline:10px}.hintPanel--trace{padding-left:12px}.hintTraceSteps,.hintConceptVisual{grid-template-columns:1fr}.hintTraceStep{grid-template-columns:24px minmax(0,1fr)}.hintTraceNode{width:24px;height:24px}.editorHeader{padding-inline:9px}.modeSwitch button{padding-inline:8px}.programList{padding:9px}textarea,input,select{font-size:16px}.iconButton--small{flex-basis:44px;width:44px;height:44px}.runBar{padding-bottom:max(9px, env(safe-area-inset-bottom))}.programLine{grid-template-columns:28px minmax(0,1fr) auto}.lineActions button{width:31px}.commandPalette{padding-inline:9px}.commandPalette button{min-width:108px}.variableShelf{padding-inline:10px}.runBar{padding-inline:9px}.secondaryButton{padding-inline:10px}.lessonToast{width:calc(100vw - 18px);top:67px;left:9px}.levelGrid{grid-template-columns:1fr 1fr;padding:12px}.levelDrawer>header{align-items:flex-start;gap:8px;padding-inline:12px}.accountStrip{flex-wrap:wrap}.accountStrip>span{flex:100%;margin-right:0}.drawerActions .secondaryButton{min-width:44px;font-size:0}.winSheet{padding:20px 16px}.winActions--milestone{grid-template-columns:1fr}}@media (height<=620px) and (orientation:landscape){.gameShell{grid-template-rows:52px minmax(0,1fr)}.topBar,.brandButton{min-height:52px}.workspace{grid-template-rows:minmax(0,calc(100dvh - 52px));grid-template-columns:minmax(0,56%) minmax(0,44%)}.mapPane{border-bottom:0;border-right:1px solid #c7d5d8;grid-template-rows:minmax(0,1fr) 42px 58px}.codePane{min-height:0}.gameBoard{--tile-size:min(9.4vmin, 58px)}.missionStrip{min-height:59px;padding-block:7px}.editorHeader{min-height:47px}.variableShelf{min-height:39px}.runBar{min-height:58px;padding-block:7px}.lessonToast{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.actionBeat,.blockedMarker{animation-duration:.12s!important;animation-timing-function:ease-out!important}.actionBeat:before,.actionBeat:after{opacity:0;animation:none!important}.visitedTrail--current .visitedTrail__core{animation-duration:.12s!important;animation-timing-function:ease-out!important}.worldRibbon,.winWorldHero,.winWorldHero--boss .winWorldHero__signal{animation:none!important}}@media (prefers-contrast:more){.gameBoard--blocked{border-width:3px}.blockedMarker{border-width:3px;box-shadow:0 0 0 3px #fff,0 0 0 6px #7a2523}.actionBeat__token{border-width:3px}.visitedTrail__core,.visitedTrail__arm{border-width:2px;box-shadow:0 0 0 1px #fff}.winWorldHero{border-width:2px}}@media (forced-colors:active){.gameBoard--blocked,.boardTile--blocked .blockedMarker,.boardTile--action .actionBeat__token{forced-color-adjust:auto;outline:2px solid canvastext}.blockedMarker,.blockedMarker:after,.actionBeat__token{color:canvastext;box-shadow:none;background:canvas;border-color:canvastext}.visitedTrail__core,.visitedTrail__arm{forced-color-adjust:none;box-shadow:none;background:highlight;border:2px solid canvastext}.visitedTrail__core:after{border-color:highlighttext}.winWorldHero{forced-color-adjust:none;color:canvastext;box-shadow:none;text-shadow:none;background:canvas;border:2px solid canvastext}.winWorldHero__wash{display:none}.winWorldHero__signal{box-shadow:none;background:highlight;border-color:canvastext}.actionBeat--collect .actionBeat__token:before,.actionBeat--collect .actionBeat__token:after,.actionBeat--drop .actionBeat__token:after{background:canvastext}}
