:root{font-family:"Avenir Next","PingFang SC","Microsoft YaHei",sans-serif;color:#325041;color-scheme:light;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100svh;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#62977a,#254e45 65%,#173b35);overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none}button:focus-visible{outline:3px solid #fff9c7;outline-offset:4px}button:disabled{cursor:default}button svg{width:22px;height:22px}h1,h2,p{margin:0}.game-screen{position:relative;width:min(100vw,56.25svh);height:min(177.7778vw,100svh);aspect-ratio:9/16;overflow:hidden;container-type:inline-size;box-shadow:0 0 100px #17362d70}#world{position:absolute;inset:0;width:100%;height:100%;display:block}.game-hud{position:absolute;inset:0;transition:opacity .3s}.title-active .game-hud{opacity:0;visibility:hidden;pointer-events:none}.title-screen{position:absolute;inset:0;z-index:5;text-align:center}.title-screen[hidden]{display:none}.title-tag{position:absolute;top:10%;width:100%;font-size:4cqw;font-weight:800;letter-spacing:1.3cqw;color:#fff2c8;text-shadow:0 2px 0 #527c63}h1{position:absolute;top:15%;left:8%;width:84%;font-weight:1000;font-size:20cqw;line-height:1.12;letter-spacing:1.2cqw;transform:rotate(-5deg);color:#fff0bb;text-shadow:0 1cqw 0 #b17741,0 1.8cqw 0 #4c6952,0 2.2cqw 1.3cqw #2e5a4855;-webkit-text-stroke:1px #fff6cb}h1 span{display:block}h1 span:last-child{padding-left:11%}h1 i{font-style:normal;font-size:9cqw;position:absolute;right:5%;top:45%;color:#ffd86c}.title-sub{position:absolute;top:41%;width:100%;color:#f8f3d8;font-size:3.1cqw;letter-spacing:.6cqw;font-weight:700;text-shadow:0 2px #5c8864}.play-button{position:absolute;top:76%;left:15%;width:70%;padding:4.3cqw 0;border-radius:5cqw;background:linear-gradient(#ffdc78,#f2b34b);border:.6cqw solid #fff0ad;box-shadow:0 1.5cqw 0 #ac7839,0 2.4cqw 0 #3f684e77,inset 0 1cqw 0 #ffeaa4;font-size:6cqw;font-weight:900;color:#79542f;text-shadow:0 1px #ffedb0;animation:ready 2.8s ease-in-out infinite}.play-button>span{font-size:4cqw;margin-left:3cqw}.play-button:active,.dispatch-button:active{transform:translateY(1cqw);box-shadow:0 .4cqw 0 #9f6c37}.title-levels{position:absolute;top:87%;left:25%;width:50%;background:none;color:#fff0ca;text-shadow:0 2px #4c7859;font-weight:800;font-size:3.7cqw;letter-spacing:.5cqw}.title-screen>small{position:absolute;bottom:3%;left:0;width:100%;font-size:2cqw;letter-spacing:.3cqw;color:#b7cfb4}.top-hud{position:absolute;top:3.5%;left:5%;width:90%;display:flex;align-items:flex-start;justify-content:space-between}.round-button{display:grid;place-items:center;flex-shrink:0;background:linear-gradient(#fff3cf,#e5d5a7);color:#52715c;border:.5cqw solid #fff5d3;box-shadow:0 .9cqw 0 #7f9465,0 1.4cqw 1cqw #355c4333;border-radius:50%;width:10.5cqw;height:10.5cqw;font-size:5cqw;font-weight:900}.round-button svg{width:4.7cqw;height:4.7cqw}.level-ribbon{background:linear-gradient(#4b8d73,#2d6d59);color:#fff2cb;border:.5cqw solid #bad6a4;border-radius:2cqw 2cqw 5cqw 5cqw;padding:1.5cqw 7cqw 2cqw;box-shadow:0 1cqw 0 #345c47;text-align:center;font-weight:900;font-size:5cqw;transform:translateY(-1cqw)}.ribbon-label{display:block;font-size:2.2cqw;letter-spacing:.4cqw;color:#c2e3b3;margin-bottom:1cqw}.level-ribbon small{font-size:2.5cqw;opacity:.6}.level-heading{position:absolute;top:12%;width:100%;text-align:center;text-shadow:0 2px 0 #5e885f77}.level-heading>span{font-size:2.1cqw;letter-spacing:.4cqw;color:#e6edc7;font-weight:700}.level-heading h2{font-weight:900;font-size:5.7cqw;letter-spacing:.8cqw;color:#fff5d2;margin-top:.8cqw}.mission{position:absolute;top:20%;left:12%;width:76%;padding:2.2cqw 3cqw;border-radius:1.6cqw;background:linear-gradient(#fff4d5,#f4e7bd);border:.6cqw solid #e3c58b;box-shadow:0 1cqw 0 #9eaa7188;transform:rotate(-1deg)}.mission:before,.mission:after{content:"";position:absolute;top:-1.5cqw;width:2.3cqw;height:4.7cqw;border-radius:.6cqw;background:#9c8356;border:.5cqw solid #d4bc87;box-shadow:0 .5cqw 0 #80784f}.mission:before{left:12%}.mission:after{right:12%}.mission-top{display:flex;justify-content:space-between;font-size:2.2cqw;color:#a28e60;margin-bottom:1.2cqw;font-weight:700}.orders{display:flex;gap:2cqw;align-items:center}.order-card{display:flex;align-items:center;gap:1.7cqw;flex:1;opacity:.5}.order-card.current,.order-card.delivered{opacity:1}.order-marker{font:900 5.5cqw Georgia,serif;background:#5a9782;color:#fff6d6;border:.5cqw solid #3b7565;box-shadow:0 .6cqw 0 #326352;border-radius:2cqw;width:9cqw;height:9cqw;display:grid;place-items:center}.order-marker.b{background:#d5a551;border-color:#b48643;box-shadow:0 .6cqw 0 #987744}.order-copy{font-size:3cqw;font-weight:800}.order-copy small{display:block;font-size:1.9cqw;color:#a48c60;font-weight:500;margin-top:.6cqw}.order-arrow{font-size:4cqw;color:#b9a577}.delivered .order-marker{background:#9eb381}.board-label{position:absolute;top:29.4%;left:9%;width:82%;display:flex;justify-content:space-between;font-size:2.2cqw;letter-spacing:.15cqw;color:#f1f2c7;text-shadow:0 2px #658956;font-weight:800}.board-label #budget{color:#fff4bb}.board{position:absolute;left:7.222222%;top:31.875%;width:85.555556%;height:48.125%;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr)}.tile{margin:1.5%;padding:0;background:transparent;outline-offset:-4px!important;border-radius:12%;color:transparent}.tile:disabled{opacity:1}.tile svg,.tile i{display:none}.tile:focus-visible{outline:3px dashed #fff6bb!important}.tile.editable:hover{box-shadow:inset 0 0 0 2px #fff1b577}.tile.editable:active{background:#fff5a322}#journey{position:absolute;width:0;height:0;pointer-events:none;overflow:hidden}.feedback{position:absolute;top:81.4%;left:7%;width:86%;min-height:6%;display:flex;align-items:flex-start;justify-content:center;gap:1.4cqw;color:#fff5d6;text-shadow:0 2px #57764c;font-size:2.65cqw;line-height:1.55;font-weight:700;text-align:center}.feedback svg{width:3.2cqw;height:3.2cqw;flex-shrink:0;margin-top:.5cqw}.feedback>span:first-child{display:flex}.error-message{color:#ffe0b3}.success-message{color:#ffec9a}.controls{position:absolute;top:88%;left:7%;width:86%;display:flex;gap:5%;align-items:center;justify-content:center}.tool-button{width:14cqw;height:13cqw;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7cqw;border-radius:3.5cqw;border:.5cqw solid #fff1c7;background:linear-gradient(#f7e8bc,#d6c18a);box-shadow:0 1.1cqw 0 #8b8e5d;color:#64784f;font-size:2.1cqw;font-weight:800}.tool-button svg{width:4.4cqw;height:4.4cqw}.tool-button:disabled{filter:grayscale(.45);opacity:.55}.dispatch-button{width:48cqw;min-height:14cqw;border-radius:4.5cqw;border:.6cqw solid #ffeaa6;background:linear-gradient(#ffda77,#efb244);color:#7b582c;box-shadow:0 1.3cqw 0 #ae7939,inset 0 .9cqw #ffe99a;display:flex;align-items:center;justify-content:center;gap:2cqw;font-size:5cqw;letter-spacing:.4cqw;font-weight:900;text-shadow:0 1px #fff0bd}.dispatch-button svg{width:5cqw;height:5cqw}.game-footer{position:absolute;top:96%;left:7%;width:86%;display:flex;align-items:center;gap:3%;font-size:1.7cqw;color:#b8d3a8}.game-footer button{background:transparent;color:#e4eac5;padding:0;font-size:1.9cqw}.game-footer>span{margin-right:auto}.game-footer #help{width:4.5cqw;height:4.5cqw;border:1px solid #cee1b1;border-radius:50%;font-weight:900;font-size:3cqw}.game-footer #help svg{width:100%;height:100%}dialog{width:min(90vw,420px);max-height:88svh;overflow:auto;background:linear-gradient(#fff3cf,#f1dfb0);border:5px solid #d3aa6e;border-radius:25px;color:#546445;padding:22px;box-shadow:0 9px 0 #7b744a,0 30px 90px #163f3750}dialog::backdrop{background:#173e3980;backdrop-filter:blur(5px)}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal-top>span{font-size:11px;letter-spacing:2px;color:#a18c60;font-weight:800}.modal-top .round-button{width:32px;height:32px;font-size:24px;border-width:2px;box-shadow:0 3px #ac9d6c}.modal-title{font-size:25px;font-weight:900;margin:10px 0 15px;color:#416549}.modal-copy{font-size:12px;line-height:1.9;color:#8b8059}.modal-copy strong{color:#506c48}.modal-copy p{margin-bottom:12px}.modal-copy ol{padding-left:20px}.modal-copy li{margin-bottom:10px}.modal-primary{width:100%;background:linear-gradient(#81b578,#5b975f);border:3px solid #b9d69b;border-radius:15px;color:#fff7d1;padding:13px;font-size:16px;font-weight:900;box-shadow:0 5px #477c52;margin:16px 0 6px}.secondary-link{display:block;margin:14px auto 0;background:none;color:#92815a;font-size:12px}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:22px 0}.level-grid button{aspect-ratio:1;border-radius:14px;border:3px solid #c6d6a1;background:linear-gradient(#93ba7e,#77a36c);color:#fff7d4;box-shadow:0 5px #60885a;font:900 25px Georgia,serif;position:relative}.level-grid button.selected{background:linear-gradient(#f8cc6a,#e7a94d);border-color:#ffe6a2;box-shadow:0 5px #b98b47}.level-grid button small{position:absolute;right:7px;bottom:2px;font-size:15px}.success-content{text-align:center}.success-stamp{margin:10px auto 24px;border:5px double #79a36b;color:#64965c;border-radius:50%;width:92px;height:92px;display:grid;place-items:center;transform:rotate(-12deg);font-size:22px;font-weight:900}.success-subtitle{font-size:11px;letter-spacing:2px;color:#9e966b}.modal-stars{font-size:39px;color:#e5ab45;letter-spacing:10px;text-shadow:0 3px #a97b35;margin:5px 0 14px}.pause-menu{display:grid;gap:3px}.pause-menu .secondary-link{font-size:14px;padding:6px}.screen-shake{animation:shake .32s}.order-pop{animation:pop .4s}.reduce-motion *{animation:none!important;transition:none!important}@keyframes ready{50%{filter:brightness(1.08)}}@keyframes shake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}@keyframes pop{50%{transform:scale(1.08)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-aspect-ratio:9/16){body{background:#244f41}.game-screen{height:100svh;width:100vw;aspect-ratio:auto}#world{object-fit:fill}}
/* Keep secondary game instructions readable on narrow phones. */
.mission-top{font-size:clamp(9px,2.2cqw,12px)}.order-copy small{font-size:clamp(8px,2.1cqw,11px)}.board-label{font-size:clamp(9px,2.2cqw,12px)}.feedback{font-size:clamp(11px,2.65cqw,14px)}.tool-button{font-size:clamp(9px,2.1cqw,12px)}.game-footer,.game-footer button{font-size:clamp(8px,1.9cqw,11px)}
.mission{padding:1.6cqw 3cqw}.mission-top{margin-bottom:1cqw}.board-label{top:30%}
.mission{height:16cqw;padding:1cqw 3cqw}.mission-top{line-height:1;margin-bottom:.5cqw}.order-marker{width:8cqw;height:8cqw;font-size:5cqw}.order-copy{line-height:1.2}
/* Let the world and consequences communicate. Text alternatives stay accessible. */
.level-heading[hidden]{display:none}.feedback{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}.order-card{flex:0;position:relative}.orders{justify-content:center;gap:7cqw}.order-card.current .order-marker{outline:2px solid #fff7d4;outline-offset:3px}.order-card.current:after{content:"";position:absolute;bottom:-2.1cqw;left:calc(50% - .7cqw);border-left:.7cqw solid transparent;border-right:.7cqw solid transparent;border-bottom:1cqw solid #8c9d62}.order-marker{font-size:5.5cqw}.mission{left:27%;width:46%;height:15cqw}.mission-top{margin-bottom:.8cqw}.mission-top>span:first-child{font-size:3cqw}.board-label{justify-content:flex-end;font-size:3.5cqw}.level-ribbon{padding:2cqw 6cqw;font-size:6cqw}.level-ribbon small{font-size:3cqw}.play-button{font-size:8cqw;line-height:1.3;padding:3cqw 0}.title-levels{font-size:8cqw;top:87%;line-height:1}.tool-button svg{width:6.5cqw;height:6.5cqw}.dispatch-button svg{width:8cqw;height:8cqw}.game-footer button{font-size:4cqw}.game-footer #help{margin-left:auto}.game-footer #motion{font-size:4cqw}.game-footer>span{margin:0}.modal-top>span:empty{display:none}.modal-top{justify-content:flex-end;margin-bottom:0}.modal-title{text-align:center}.modal-primary{display:flex;align-items:center;justify-content:center}.modal-primary svg{width:32px;height:32px}.icon-only{padding:12px;display:flex;align-items:center;justify-content:center}.icon-only svg{width:25px;height:25px}.pause-menu{grid-template-columns:1fr 1fr}.pause-menu .modal-primary{grid-column:1/-1}.help-diagram{display:grid;justify-content:center;gap:24px;text-align:center;color:#57794f;font-size:33px;font-weight:800}.track-example{display:flex;align-items:center;gap:20px}.track-example svg{width:65px;height:65px;background:#dfe4b7;border-radius:10px}.reroute-example{display:flex;align-items:center;justify-content:center;gap:18px}.reroute-example i{display:block;width:37px;height:37px;background:#e5be72;border:3px solid #bb965d;border-radius:6px}
.mission-top{display:none}.mission{height:12cqw;padding:1cqw 3cqw}
.chapter-pages{display:flex;justify-content:center;gap:18px;margin:12px 0 0}.chapter-pages button{background:transparent;color:#80965c;font-size:26px;padding:4px}.chapter-pages button[aria-current="true"]{color:#cb9446}

.controls .tool-button{min-height:44px}
