.engineer{--ink:#294d44;--muted:#6c7c71;--cream:#f7f4e9;--line:#dce1d1;--accent:#366c59;color:var(--ink);background:var(--cream);min-height:100vh;font-family:ui-rounded,PingFang SC,Microsoft Yahei,sans-serif}.engineer *{box-sizing:border-box}.engineer button,.engineer .file-button{font:inherit;border:1px solid var(--line);min-height:56px;color:var(--ink);cursor:pointer;background:#fffdf5;border-radius:16px;padding:12px 18px;transition:background .15s,transform .15s;box-shadow:0 2px #294d4407}.engineer button:hover{background:#edf1e3}.engineer button:active{transform:translateY(1px)}.engineer button:focus-visible,.engineer input:focus-visible,.engineer a:focus-visible{outline-offset:3px;outline:3px solid #c88a3a}.engineer button:disabled{opacity:.4;cursor:default}.engineer button[aria-pressed=true]{background:#e1ecdc;border-color:#557a5e;box-shadow:inset 0 0 0 1px #557a5e}.engineer button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.engineer h1,.engineer h2,.engineer h3{letter-spacing:-.04em;margin:0 0 12px;line-height:1.35}.engineer h1{font-size:clamp(27px,3vw,39px)}.engineer h2{font-size:25px}.engineer h3{font-size:18px}.engineer p{margin:8px 0 18px;line-height:1.8}.engineer small,.engineer .quiet{color:var(--muted);font-size:13px}.engineer .row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.engineer .eyebrow{letter-spacing:2px;color:#738b73;margin-bottom:10px;font-size:11px;font-weight:700;display:block}.v2-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;max-width:1280px;margin:auto;padding:24px 32px 14px;display:flex}.engineer .brand{text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:0;font-size:21px;font-weight:800;display:flex}.brand small{letter-spacing:3px;margin-top:5px;font-weight:400;display:block}.brand-cube{color:#496349;background:#eabe60;border-radius:14px;place-items:center;width:48px;height:48px;font-size:36px;display:grid;transform:rotate(-7deg)}.v2-header nav{gap:8px;display:flex}.v2-header nav button{background:0 0;border:0}.save-line{text-align:right;color:#7b8577;max-width:1216px;margin:10px auto 0;padding:0 16px;font-size:12px}.engineer main{max-width:1216px;min-height:65vh;margin:0 auto;padding:30px 20px 50px}.project-title{justify-content:space-between;align-items:flex-start;gap:20px;margin:12px 0 24px;display:flex}.project-title p{color:#687366;max-width:760px;font-size:16px}.project-title>button{flex-shrink:0}.constraints{flex-wrap:wrap;gap:10px;margin-bottom:24px;display:flex}.constraints span,.tag{background:#e9eddf;border-radius:9px;padding:9px 13px;font-size:13px}.constraints span:first-child{background:#f7e5b9}.workspace{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:24px;display:grid}.workspace-main{border:1px solid var(--line);background:#fffcf4;border-radius:24px;min-width:0;overflow:hidden;box-shadow:0 8px 32px #405f3910}.mode-tabs{border-bottom:1px solid var(--line);background:#f1f0e4;padding:14px 20px}.mode-tabs button{flex:1}.builder{padding:24px}.build-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.build-head h2{font-size:23px}.build-head .tag{white-space:nowrap}.board-scroll{background:radial-gradient(#becab74d 1px,#0000 1px) 0 0/18px 18px;border-radius:16px;justify-content:center;min-height:168px;margin:22px 0;padding:28px 0;display:flex;overflow:auto;box-shadow:inset 0 0 35px #e5e4d729}.v2-board{touch-action:none;flex-shrink:0;position:relative;box-shadow:0 8px #294d4412}.board-svg{pointer-events:none;width:100%;height:100%;position:absolute;overflow:visible}.board-hit{display:grid;position:absolute;inset:0}.engineer .board-hit button{width:56px;height:56px;min-height:56px;box-shadow:none;touch-action:none;background:0 0;border:1px solid #35574e12;border-radius:0;padding:0}.engineer .board-hit button:hover{background:#ffffff30}.orientation{background:#f1f2e6;border-radius:16px;align-items:center;gap:18px;padding:14px;display:flex}.selected-art{flex-shrink:0;width:64px;height:64px}.selected-art svg{width:100%;height:100%}.orientation .row{margin-top:10px}.orientation button{padding:8px 12px}.drawer-heading{justify-content:space-between;align-items:baseline;gap:12px;margin:26px 0 14px;display:flex}.drawer-heading span{color:var(--muted);font-size:12px}.materials{grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px;display:grid}.engineer .materials button{touch-action:none;flex-direction:column;align-items:center;gap:7px;padding:12px 6px;font-size:12px;display:flex}.materials svg{width:68px;height:58px}.materials b{font-size:14px}.materials small{font-size:10px}.v2-ghost{pointer-events:none;z-index:200;filter:drop-shadow(0 8px 4px #34564455);width:84px;height:84px;position:fixed;transform:translate(-50%,-50%)}.v2-ghost svg{width:100%;height:100%}.assistant-panel{border:1px solid var(--line);background:#eaf0e3;border-radius:24px;flex-direction:column;gap:12px;padding:24px;display:flex}.fangfang{align-items:center;gap:10px;font-size:14px;font-weight:700;display:flex}.fangfang svg{width:66px;height:66px}.engineer .feedback{background:#fffdf6;border-radius:3px 18px 18px;min-height:106px;margin:0;padding:18px;font-size:15px}.keypad{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px;display:grid}.engineer .keypad button{border-radius:11px;min-width:0;padding:8px;font-size:20px}.assistant-panel .row>*{flex:1;padding:8px;font-size:14px}.invoice{padding:28px}.invoice h3{margin-top:26px}.invoice ul{padding:0;list-style:none}.invoice li{border-bottom:1px dashed var(--line);justify-content:space-between;gap:10px;padding:10px 0;display:flex}.number-field{justify-content:space-between;align-items:center;gap:16px;margin:12px 0;font-size:17px;display:flex}.number-field input{text-align:center;width:100px;height:68px;color:var(--ink);background:#fffdf8;border:2px solid #c1cbb2;border-radius:14px;font:700 28px inherit}.arithmetic-scene{padding:32px}.equation{letter-spacing:3px;text-align:center;background:#f2ead3;border-radius:20px;margin:22px 0;padding:32px 16px;font-size:clamp(30px,4vw,47px);line-height:1.7}.workbench{background:#e9eff1;border-top:1px solid #cbd8d8;padding:24px}.digits{grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0;display:grid}.digits>div{min-width:0}.digits b{font-size:13px}.digits .row{justify-content:center;gap:4px}.digits .row button{min-width:42px;min-height:48px;padding:4px}.digits output{text-align:center;min-width:24px}.blocks{background:#f8fbfb;border-radius:9px;flex-wrap:wrap;align-content:start;gap:4px;height:180px;margin:10px 0;padding:8px;display:flex;overflow:auto}.blocks span{background:#6c9da5;border:1px solid #477b86;border-radius:2px}.units-0 span{background:repeating-linear-gradient(0deg,#0000,#0000 5px,#477b8640 6px),repeating-linear-gradient(90deg,#8eb6bc,#8eb6bc 5px,#477b8640 6px);width:64px;height:64px}.units-1 span{background:repeating-linear-gradient(0deg,#8eb6bc,#8eb6bc 6px,#477b86 7px);width:10px;height:70px}.units-2 span{width:10px;height:10px}.voxel-overview{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.voxel-overview .iso{width:100%;height:190px}.voxel-overview h3{font-size:15px}.projections{flex-wrap:wrap;gap:12px;display:flex}.projections b{margin-bottom:8px;font-size:12px;display:block}.layers{margin-top:18px}.engineer .iso{overflow:visible}.page-title{margin:20px 0 32px}.level-grid,.works-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin:26px 0;display:grid}.engineer .level-grid>button{text-align:left;flex-direction:column;align-items:start;padding:24px;display:flex}.level-grid p{color:var(--muted);flex:1;font-size:14px}.level-grid b{margin-top:22px;font-size:14px}.works-grid article{border:1px solid var(--line);background:#fffdf6;border-radius:20px;padding:20px}.work-picture{background:#eef0df;border-radius:13px;justify-content:center;align-items:center;height:200px;margin-bottom:20px;padding:30px;display:flex}.work-picture svg{width:100%;height:100%}.equation-small{font-size:30px;line-height:1.8}.completion{text-align:center;border:1px solid var(--line);background:#fffcf4;border-radius:24px;max-width:800px;margin:auto;padding:32px}.completed-art{justify-content:center;align-items:center;max-width:440px;height:290px;margin:20px auto;display:flex}.completed-art svg{width:100%;height:100%}.completion .row{justify-content:center}.parent-panel{border:1px solid var(--line);background:#fffcf4;border-radius:24px;padding:28px}.parent-panel h2{margin-top:24px}.parent-panel select{border:1px solid var(--line);border-radius:10px;min-height:56px;margin-top:8px;padding:12px;display:block}.file-button input{max-width:200px;margin-top:8px;display:block}.observations{max-height:400px;overflow:auto}.modal-cover{z-index:99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#233d3766;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-cover section{background:#fffdf4;border-radius:24px;flex-direction:column;gap:12px;width:100%;max-width:480px;max-height:90vh;padding:30px;display:flex;overflow:auto}.demo-controls{background:#e9e1c6;border-radius:15px;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0;padding:16px;display:flex}.rest-message{background:#f2e5c8;border-radius:15px;padding:20px}.engineer footer{text-align:center;color:#86907e;padding:30px;font-size:12px}.engineer a{color:#366c59}.engineer .completion p{color:var(--muted)}@media (width<=900px){.workspace{grid-template-columns:minmax(0,1fr) 240px;gap:14px}.assistant-panel{padding:16px}.builder{padding:18px}.level-grid,.works-grid{grid-template-columns:repeat(2,1fr)}.v2-header{padding:20px}.orientation{align-items:flex-start}.voxel-overview{grid-template-columns:1fr}}@media (width<=680px){.v2-header{align-items:center;gap:8px;padding:14px 16px}.engineer .brand{gap:8px;font-size:16px}.brand-cube{width:32px;height:36px;font-size:25px}.brand small{letter-spacing:1px;font-size:9px}.v2-header nav{gap:0}.v2-header nav button{border-radius:8px;min-height:56px;padding:8px;font-size:12px}.v2-header nav button span{display:none}.save-line{text-align:left;margin-top:8px;font-size:10px}.engineer main{padding:20px 12px 30px}.project-title{gap:8px;margin:10px 0 20px}.project-title>button{padding:8px;font-size:13px}.project-title h1{font-size:26px}.project-title p{font-size:14px}.workspace{grid-template-columns:1fr}.builder{padding:16px 10px}.build-head h2{font-size:19px}.build-head .tag{padding:7px;font-size:11px}.engineer .quiet{font-size:12px}.constraints{gap:6px;margin-bottom:16px}.constraints span{padding:8px;font-size:11px}.orientation{gap:10px;padding:12px}.selected-art{width:44px;height:50px}.orientation button{padding:8px;font-size:12px}.materials{grid-template-columns:repeat(3,1fr);gap:7px}.engineer .materials button{font-size:11px}.materials svg{width:58px;height:50px}.drawer-heading{display:block}.assistant-panel{padding:20px}.fangfang svg{width:48px;height:48px}.assistant-panel .keypad{grid-template-columns:repeat(3,1fr)}.engineer .keypad button{min-height:56px}.level-grid,.works-grid{grid-template-columns:1fr}.mode-tabs{gap:8px;padding:10px}.mode-tabs button{padding:10px;font-size:14px}.board-scroll{justify-content:safe center}.arithmetic-scene,.invoice{padding:20px}.number-field{font-size:15px}.number-field input{flex-shrink:0;width:90px}.workbench{padding:16px 10px}.workbench .row>button{padding:8px;font-size:12px}.digits{gap:6px}.digits .row{gap:2px}.digits .row button{min-width:30px}.blocks{padding:5px}.voxel-overview{grid-template-columns:1fr 1fr;gap:10px}.voxel-overview .iso{height:150px}.projections{gap:8px}.completion{padding:24px 16px}.completed-art{height:230px}.parent-panel{padding:20px}.engineer .tabs button{padding:10px;font-size:13px}.page-title h1{font-size:28px}}@media (prefers-reduced-motion:reduce){.engineer *{transition:none!important;animation:none!important}}:root{color:#334f48;font-synthesis:none;--green:#427e6d;--ink:#334f48;--muted:#82918a;--cell:64px;background:#f6f4ec;font-family:Avenir Next,PingFang SC,Microsoft YaHei,sans-serif;font-weight:500}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.button{color:var(--ink);cursor:pointer;touch-action:manipulation;background:#fffef8;border:1px solid #dce2d6;border-radius:16px;justify-content:center;align-items:center;gap:10px;min-height:56px;padding:12px 19px;font-weight:600;transition:background .18s,box-shadow .18s;display:inline-flex}button:hover,.button:hover{background:#eaf0e3}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:4px;outline:3px solid #cf9d38}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}p{color:#74857d;line-height:1.85}h1{font-size:44px;font-weight:750;line-height:1.25}h2{font-size:26px}h3{font-size:20px}svg{vertical-align:middle;flex-shrink:0}header{justify-content:space-between;align-items:center;gap:16px;max-width:1248px;margin:auto;padding:26px 48px;display:flex}.brand{letter-spacing:.08em;text-align:left;background:0 0;border:0;gap:13px;padding:0;font-size:23px}.brand:hover{background:0 0}.brand small{letter-spacing:.32em;color:#8a978c;margin-top:4px;font-size:10px;font-weight:500;display:block}.brand-blocks{width:41px;height:41px;position:relative}.brand-blocks i{background:#dcac57;border-radius:5px;width:19px;height:19px;position:absolute;bottom:0;left:0}.brand-blocks i:nth-child(2){background:#7fa893;left:22px}.brand-blocks i:nth-child(3){background:#a2baa1;bottom:22px;left:11px}.header-right{align-items:center;gap:14px;display:flex}.local-label{color:#93a08f;align-items:center;gap:8px;margin-right:18px;font-size:12px;display:flex}.local-label span{background:#89a484;border-radius:50%;width:6px;height:6px}.icon-button{background:0 0;width:56px;padding:12px}.parent-link{color:#89968b;background:0 0;border-color:#0000;min-height:56px;font-size:13px}.parent-link.holding{background:#e7d8af}.home{max-width:1248px;margin:auto;padding:22px 48px 0}.eyebrow{letter-spacing:.1em;color:#879580;align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.small-line{background:#b5c29f;width:25px;height:2px;display:inline-block}.home-intro{grid-template-columns:.95fr 1.05fr;align-items:center;gap:40px;min-height:410px;display:grid}.home-intro h1{letter-spacing:.025em;margin:22px 0 20px;font-size:57px;line-height:1.34}.home-intro h1 span{color:#689079;position:relative}.home-intro h1 span:after{content:"";background:#e8d398;border-radius:100%;height:6px;position:absolute;bottom:-4px;left:0;right:0}.home-intro p{margin-bottom:27px;font-size:15px;line-height:2}.primary{color:#fffdf1;background:#477e6c;border-color:#477e6c;font-weight:650;box-shadow:0 4px #326452}.primary:hover{background:#396f5e}.primary.start{border-radius:18px;justify-content:space-between;min-width:213px;height:62px;font-size:17px}.gentle-note{color:#97a18c;align-items:center;gap:7px;margin-top:19px;font-size:11px;display:flex}.welcome-art{isolation:isolate;height:370px;position:relative}.welcome-art>.building{z-index:2;width:310px;position:absolute;top:90px;left:8%;transform:rotate(-2deg)}.art-hill{z-index:0;background:#e0e5cc;border-radius:50% 55% 46% 44%;width:100%;height:135px;position:absolute;bottom:12px;left:0;transform:rotate(-5deg)}.art-hill:after{content:"";border:17px solid #f0e6ca;border-left:0;border-right:0;border-radius:50%;width:100%;height:45px;position:absolute;top:50%;left:0;transform:rotate(-10deg)}.sun{background:#edd595;border-radius:50%;width:68px;height:68px;position:absolute;top:12px;right:25%}.cloud{background:#fffdf3;border-radius:30px;width:94px;height:22px;position:absolute;top:58px;left:24px}.cloud:before,.cloud:after{content:"";background:inherit;border-radius:50%;width:38px;height:38px;position:absolute;bottom:3px;left:15px}.cloud:after{width:28px;height:28px;left:45px}.cloud-two{top:99px;left:auto;right:0;transform:scale(.8)}.robot{width:135px;height:auto}.robot.small{width:76px}.robot-welcome{z-index:3;position:absolute;bottom:25px;right:-6px}.robot-welcome .robot{width:144px;transform:rotate(5deg)}.robot-welcome>span{color:#78917d;background:#fffef8;border-radius:14px 14px 3px;width:max-content;margin-bottom:-8px;margin-left:-30px;padding:13px 15px;font-size:12px;display:block;transform:rotate(3deg);box-shadow:0 5px 25px #7688710a}.little-tree{z-index:3;background:#b09e74;border-radius:5px;width:9px;height:60px;position:absolute;bottom:45px;left:8px}.little-tree:before{content:"";background:#aac19a;border-radius:55% 55% 45% 45%;width:58px;height:76px;position:absolute;bottom:27px;left:-24px}.town-title{justify-content:space-between;align-items:flex-end;margin:50px 0 22px;display:flex}.town-title h2{margin:9px 0 0;font-size:28px}.town-count{color:#8d9b88;background:#eeefdf;border:1px solid #e1e5d3;border-radius:30px;padding:8px 14px;font-size:12px}.town-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.town-card{text-align:center;background:#faf9f1;border:1px solid #e3e5d8;border-radius:24px;padding:21px 23px 23px;position:relative;overflow:hidden}.town-card.current{background:#f0f2e5;border-color:#d4ddc4}.card-top{color:#9ba48f;justify-content:space-between;align-items:center;font-size:10px;display:flex}.mission-number{color:#91a28d;letter-spacing:.12em;font-size:12px}.town-card .building{width:180px;max-width:100%;margin:8px auto -1px}.town-card h3{letter-spacing:.03em;margin:0 0 14px;font-size:17px}.part-progress{justify-content:center;gap:6px;display:flex}.part-progress span{background:#e1e5d7;border-radius:3px;width:24px;height:6px}.part-progress .filled{background:#80a791}.part-progress .active{background:#dfb968}.town-card .part-progress span{width:18px;height:5px}.town-card button{margin-top:20px}footer{text-align:center;color:#a3ab97;justify-content:center;align-items:center;gap:8px;margin:38px 0 30px;font-size:12px;display:flex}.game{max-width:930px;margin:auto;padding:12px 28px 35px}.game-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px;display:flex}.game-top .part-progress{margin-top:12px}.game-top button{background:0 0;border-color:#0000;font-size:13px}.game-panel{background:#fffef8;border:1px solid #e5e7dc;border-radius:30px;padding:28px 36px;box-shadow:0 10px 40px #62735b05}.game-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.game-heading h1{margin:10px 0 9px;font-size:28px}.game-heading p{margin:0;font-size:13px}.level-id{color:#aeb6a3;letter-spacing:.05em;font-size:10px}.goal-card{background:#f4f3e7;border-radius:17px;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;min-height:72px;margin:12px auto 20px;padding:16px 20px;display:flex}.goal-card>span:first-child{color:#82917c;font-size:13px}.goal-card b{color:#8a927b;font-size:14px}.dots{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;max-width:300px;display:inline-flex}.brick-dot{background:#e9af5a;border-radius:6px;width:22px;height:22px;position:relative;box-shadow:inset 0 -3px #d79b4d}.brick-dot:after{content:"";background:#f6cc83;border-radius:3px;width:10px;height:9px;position:absolute;top:5px;left:6px}.dots.ghost .brick-dot{box-shadow:none;background:0 0;border:2px dashed #c1bea0}.dots.ghost .brick-dot:after{opacity:.35;background:#d9d5b9;width:7px;height:7px;top:5px;left:5px}.pack{background:#fff7df;border:2px solid #e8d6ad;border-radius:15px;min-width:74px;max-width:145px;min-height:70px;padding:18px 16px 23px;position:relative;box-shadow:0 3px #eadabd}.pack .dots{gap:5px}.pack-symbol{position:absolute;bottom:2px;right:6px}.pack:hover{background:#f6e9c9}.draggable{touch-action:none;-webkit-user-select:none;user-select:none}.truck-scene{max-width:460px;margin:0 auto 24px;padding-top:10px;position:relative}.cargo-bed{border:2px dashed #d5dfcf;border-bottom:0;border-radius:18px 18px 0 0;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:8px;min-height:105px;margin:0 27% -4px 5%;padding:10px 8px 0;display:flex}.cargo-bed .pack{min-width:64px;min-height:60px;box-shadow:none;padding:12px 10px 20px}.truck-art{width:100%;position:relative}.drop-instruction{color:#9daa93;text-align:center;flex-direction:column;align-items:center;gap:9px;margin-bottom:24px;font-size:12px;display:flex}.fixed-pack{background:#e5e7d9;border-radius:12px;align-items:center;gap:5px;margin-bottom:5px;padding:12px;display:flex}.fixed-pack .brick-dot{box-shadow:none;background:#aeb7a3}.fixed-pack .brick-dot:after{background:#ced5c5}.tray{background:#f5f3e9;border:1px solid #e8e7d9;border-radius:21px;min-height:126px;padding:16px 16px 20px}.tray-label{color:#9a9f8d;letter-spacing:.035em;text-align:center;margin-bottom:15px;font-size:11px;display:block}.pack-row{flex-wrap:wrap;justify-content:center;gap:12px;min-height:60px;display:flex}.condition{border-left:1px solid #dddcc5;align-items:center;gap:5px;padding-left:12px;font-size:12px;display:flex}.mini-bag{border:2px dashed #a1a88d;border-radius:5px;width:24px;height:26px;display:inline-block;position:relative}.mini-bag:before{content:"";border:2px solid #a1a88d;border-bottom:0;border-radius:5px 5px 0 0;width:10px;height:7px;position:absolute;top:-7px;left:5px}.pairing{flex-direction:column;align-items:center;gap:8px;margin:8px 0 22px;display:flex}.feedback{text-align:center;color:#879580;min-height:55px;padding:17px 5px 8px;font-size:13px;line-height:1.7}.game-actions{grid-template-columns:1fr 1fr 1.65fr;gap:12px;margin-top:10px;display:grid}.game-actions button{min-height:60px;font-size:15px}.secondary-actions{justify-content:center;gap:18px;margin-top:20px;display:flex}.secondary-actions button{color:#9b9f8b;background:0 0;border:0;min-height:56px;padding:10px 6px;font-size:12px}.game-bottom{text-align:center;color:#9fa796;margin-top:20px;font-size:10px;line-height:1.8}.game-bottom svg{margin-right:5px}.reference{background:#eff1e2;border-bottom:8px solid #c0cbae;border-radius:15px 15px 4px 4px;justify-content:center;align-items:center;gap:8px;max-width:420px;margin:30px auto 20px;padding:23px 10px 17px;display:flex}.reference span{position:relative}.reference span:after{content:"";z-index:0;background:#c0cbae;width:7px;height:25px;margin:0 auto -20px;display:block;position:relative}.reference.grouped .group-start{border-left:3px solid #d1ad5a;margin-left:6px;padding-left:10px}.pattern-target{justify-content:center;gap:14px;margin:35px auto;display:flex}.pattern-slot{background:#faf9ef;border:2px dashed #c6cdb9;border-radius:16px;min-width:75px;min-height:82px;position:relative}.pattern-slot.locked{opacity:1;background:#edf0e3;border-style:solid}.pattern-slot.locked>svg:last-child{position:absolute;bottom:3px;right:3px}.empty-plus{color:#c0c7b2;font-size:32px;font-weight:300}.token{background:#fffef7;border:2px solid #e4e4d4;width:78px;min-height:76px}.selected{background:#ebf1df!important;border-color:#5e9580!important;box-shadow:0 0 0 3px #a3c6ad55!important}.mapping{justify-content:center;gap:24px;display:flex}.mapping>span{align-items:center;gap:8px;display:flex}.floor-board{background:#dce2ce;border:6px solid #dce2ce;border-radius:15px;width:max-content;margin:25px auto 15px;display:grid;overflow:hidden}.floor-cell{width:var(--cell);height:var(--cell);min-height:var(--cell);background:#f7f4dc;border:2px solid #dce2ce;border-radius:6px;padding:0}.floor-cell.garden{color:#8da775;background:#c8d7b5}.tile-stud{background:#ffffff29;border-radius:8px;width:55%;height:55%;box-shadow:0 2px #ffffff19}.cell-dot{background:#d6d7bd;border-radius:50%;width:5px;height:5px}.hint-cell{outline-offset:-7px;outline:3px dashed #637f62}.floor-tools{justify-content:center;align-items:center;gap:12px;min-height:67px;margin-bottom:15px;display:flex}.floor-tools button{font-size:12px}.piece{border:2px solid #e4e4d4;min-width:80px;min-height:87px;position:relative}.piece.placed{background:#ebeee1;border-style:dashed}.piece.placed>svg:last-child:not(:first-child){color:#6d8c78;position:absolute;bottom:3px;right:3px}.drag-ghost{pointer-events:none;z-index:100;color:#518575;background:#fffbeded;border-radius:20px;padding:12px;position:fixed;transform:translate(-50%,-130%);box-shadow:0 8px 25px #335e4930}.scene-frozen{pointer-events:none}.success-panel{background:#edf3e3;border-radius:20px;align-items:center;gap:20px;margin-top:16px;padding:20px;display:flex}.success-panel .building{width:150px}.success-panel h2{font-size:21px}.success-panel p{font-size:12px}.demo-controls{background:#f5eddb;border-radius:15px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;padding:12px;font-size:12px;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;background:#314a4161;justify-content:center;align-items:center;padding:22px;display:flex;position:fixed;inset:0;overflow:auto}.modal{text-align:center;background:#fffdf3;border-radius:28px;width:100%;max-width:560px;max-height:calc(100dvh - 44px);padding:32px;overflow:auto;box-shadow:0 25px 100px #1e39252c}.modal h2{margin-top:15px}.modal p{font-size:14px}.actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.tutorial{max-width:680px}.tutorial .goal-card{padding:10px}.tutorial .truck-scene{max-width:340px;margin-bottom:8px}.tutorial .cargo-bed{min-height:80px}.tutorial .truck-art{max-height:74px}.tutorial .tray{min-height:90px;padding:10px}.tutorial .actions{margin-top:20px}.tutorial .eyebrow{justify-content:center}.tutorial h2{font-size:24px}.gesture-strip{color:#88967f;justify-content:center;align-items:center;gap:15px;margin:20px 0;font-size:12px;display:flex}.rotation-example{justify-content:center;align-items:center;gap:20px;margin:12px;display:flex}.recap{text-align:center;max-width:750px;margin:40px auto;padding:0 24px}.recap .eyebrow{justify-content:center}.recap h1{margin:20px 0;font-size:32px}.recap>.building{width:300px}.transfer{text-align:left;background:#e9eedc;border-radius:20px;align-items:center;gap:20px;margin:25px 0 30px;padding:24px;display:flex}.transfer h3{margin-bottom:8px;font-size:16px}.transfer p{margin:0;font-size:14px}.parent{max-width:1080px;margin:20px auto;padding:0 28px 50px}.parent h1{margin-top:28px}.parent section,.parent-status{background:#fffdf4;border:1px solid #e1e5d7;border-radius:20px;margin:20px 0;padding:24px}.parent-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.parent-grid section{margin:0}.parent-grid p{margin:7px 0;font-size:13px}.parent-grid h2{font-size:20px}.settings{flex-wrap:wrap;align-items:center;gap:25px;display:flex}.settings label{align-items:center;gap:10px;display:flex}select{min-height:56px;color:var(--ink);background:#fffef7;border:1px solid #cdd7c3;border-radius:12px;padding:9px}input[type=checkbox]{accent-color:#427e6d;vertical-align:middle;width:22px;height:22px}input[type=file]{max-width:240px;font-size:11px}label.button{flex-wrap:wrap;display:flex}.record-list>div{border-top:1px solid #e8eadf;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:16px 0;font-size:13px;display:flex}.debug-grid{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.debug-grid button{font-size:12px}.parent details summary{cursor:pointer;min-height:56px;padding:20px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.built-part{animation:.6s ease-out arrive}@keyframes arrive{0%{opacity:.4;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.reduce-motion *{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width>=1400px){.home-intro{min-height:460px}.welcome-art{transform:scale(1.06)}header{padding-top:35px}.town-title{margin-top:65px}}@media (width<=850px){header{padding:20px 28px}.home{padding:15px 28px 0}.home-intro{gap:18px}.home-intro h1{font-size:44px}.welcome-art{height:330px}.welcome-art>.building{width:250px;left:0}.robot-welcome .robot{width:115px}.robot-welcome{right:-8px}.town-grid{gap:14px}.town-card{padding:17px 13px}.local-label{display:none}.parent-grid{grid-template-columns:1fr}.sun{top:35px;right:15%}}@media (width<=600px){:root{--cell:60px}header{gap:7px;padding:17px 18px}.brand{gap:9px;font-size:19px}.brand-blocks{width:35px;transform:scale(.85)}.brand small{font-size:9px}.header-right{gap:2px}.parent-link{gap:5px;padding:10px 7px;font-size:11px}.header-right .icon-button{border:0;width:48px;min-height:56px}.home{padding:10px 23px 0}.home-intro{grid-template-columns:1fr;gap:0;min-height:590px;position:relative}.home-intro>div:first-child{z-index:4;align-self:start}.home-intro h1{margin:17px 0;font-size:42px}.home-intro p{margin-bottom:22px;font-size:13px;line-height:1.9}.eyebrow{font-size:10px}.primary.start{min-width:185px;height:58px;font-size:15px}.gentle-note{font-size:10px}.welcome-art{width:100%;height:240px;margin-top:-5px}.welcome-art>.building{width:230px;top:6px;left:5px}.art-hill{height:105px;bottom:12px}.sun{width:44px;height:44px;top:-24px;right:25%}.robot-welcome{bottom:20px;right:-3px}.robot-welcome .robot{width:100px}.robot-welcome>span{margin-left:-10px;padding:9px;font-size:10px}.cloud-one{top:1px;left:0;transform:scale(.6)}.cloud-two{top:10px;right:-15px;transform:scale(.6)}.little-tree{bottom:28px;left:0;transform:scale(.65)}.town-title{margin:20px 0}.town-title h2{font-size:24px}.town-count{padding:7px 10px;font-size:10px}.town-grid{grid-template-columns:repeat(2,1fr);gap:12px}.town-card{border-radius:20px;padding:14px 12px 19px}.town-card .building{width:145px;height:120px;margin:5px auto 0}.card-top{font-size:8px}.mission-number{font-size:10px}.town-card h3{margin-bottom:11px;font-size:15px}.town-card .part-progress span{width:12px}.town-card .part-progress{gap:4px}footer{margin-top:25px;font-size:10px;line-height:1.8}.game{padding:3px 12px 25px}.game-top{gap:5px;margin-bottom:12px}.game-top button{padding:10px;font-size:11px}.game-top .eyebrow{letter-spacing:0;font-size:10px}.game-top .part-progress span{width:15px}.game-panel{border-radius:23px;padding:20px 14px}.game-heading h1{font-size:24px}.game-heading p{font-size:12px}.game-heading .robot{width:57px}.game-heading{gap:5px}.goal-card{gap:9px;padding:13px 10px}.goal-card>span:first-child{font-size:11px}.goal-card b{font-size:12px}.goal-card .dots{gap:4px;max-width:210px}.goal-card .brick-dot{width:19px;height:19px}.brick-dot{width:21px;height:21px}.goal-card .brick-dot:after{top:4px;left:4px}.truck-scene{margin-bottom:14px}.cargo-bed{gap:5px;min-height:112px;margin-left:4%}.cargo-bed .pack{min-width:58px;min-height:57px;padding:10px 8px 20px}.pack{min-width:70px;max-width:125px;min-height:70px;padding:16px 13px 22px}.pack-row{gap:12px}.tray{padding:14px 10px}.tray-label{font-size:10px;line-height:1.5}.game-actions{grid-template-columns:1fr 1fr 1.35fr;gap:12px}.game-actions button{gap:5px;padding:10px 8px;font-size:12px}.game-actions svg{width:20px}.secondary-actions{gap:13px;margin-top:14px}.secondary-actions button{font-size:11px}.feedback{font-size:12px}.floor-cell{min-width:0}.floor-board{border-width:4px}.floor-tools{gap:8px}.floor-tools button{padding:10px;font-size:11px}.piece{min-width:70px;min-height:84px;padding:10px}.piece svg{max-width:82px}.reference{gap:7px;padding:20px 7px 15px}.reference svg{width:32px}.pattern-slot{min-width:74px;padding:10px}.pattern-target{gap:12px}.token{width:75px}.success-panel{gap:6px;padding:15px}.success-panel .building{width:95px}.success-panel h2{font-size:17px}.success-panel p{font-size:11px}.success-panel button{font-size:13px}.modal-backdrop{padding:12px}.modal{border-radius:22px;max-height:calc(100dvh - 24px);padding:23px 17px}.modal .actions button{padding:10px 13px;font-size:12px}.tutorial h2{font-size:21px}.tutorial p{font-size:12px}.tutorial .robot{display:none}.recap h1{font-size:27px}.transfer{padding:20px}.parent{padding:0 18px 40px}.parent h1{font-size:32px}.parent section,.parent-status{padding:19px}.game-bottom{padding:0 10px}.game-bottom span{display:block}.mapping{gap:17px}.mapping svg{width:29px}.condition{padding-left:8px}.modal-backdrop:has(.tutorial){align-items:flex-start}.tutorial .goal-card{margin:10px auto}.tutorial .reference{margin:15px auto}.tutorial .pattern-target{margin:20px auto}.tutorial .gesture-strip{margin:14px auto}}@media (width<=374px){:root{--cell:56px}.brand{font-size:16px}.brand small{font-size:8px}.home{padding:10px 17px}.game-panel{padding:16px 10px}.game-actions{gap:10px}.game-actions button{padding:10px 5px}.floor-board{border-width:3px}}.floor-tools:empty{min-height:12px;margin-bottom:10px}@media (width<=600px){.floor-scene .pack-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.floor-scene .piece{min-width:0;min-height:70px;padding:8px 3px}.floor-scene .piece>svg:first-child{max-width:100%}.floor-scene .piece>svg:last-child:not(:first-child){max-width:16px}}.rhythm .reference>span{animation:.5s ease-in-out 2 rhythm-beat}.rhythm .reference>span:nth-child(2){animation-delay:.15s}.rhythm .reference>span:nth-child(3){animation-delay:.3s}.rhythm .reference>span:nth-child(4){animation-delay:.45s}.rhythm .reference>span:nth-child(5){animation-delay:.6s}.rhythm .reference>span:nth-child(6){animation-delay:.75s}@keyframes rhythm-beat{50%{transform:translateY(-5px)}}.floor-cell{touch-action:none}
