:root{color-scheme:light;--ink:#1b3834;--paper:#f2efe5;--teal:#168b78;--teal-light:#b8d8c9;--coral:#f77951;--gold:#f0c34d;--muted:#63756a;--line:#d4d9c9;font-family:"Aptos","Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px;background-image:radial-gradient(#aabfa840 .8px,transparent .8px);background-size:12px 12px}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid #237acf;outline-offset:4px}button:disabled{cursor:default;opacity:.35}button[hidden],[hidden]{display:none!important}
.layout{display:flex;align-items:center;justify-content:center;gap:74px;min-height:100svh;padding:24px 30px 28px}.game-shell{width:min(440px,100%);flex:none}.masthead{display:flex;justify-content:space-between;align-items:center;padding:0 3px 17px}.brand{display:flex;gap:10px;align-items:center}.brand-mark{display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:900;width:39px;height:39px;color:var(--paper);background:var(--ink);border-radius:11px;transform:rotate(-13deg);line-height:30px;padding-bottom:7px}.wordmark{font-weight:900;letter-spacing:2px;font-size:17px;line-height:1}h1{font-size:11px;margin:5px 0 0;font-weight:600;letter-spacing:.02em}.small-button{border:1px solid #a8b9ab;border-radius:20px;padding:7px 10px;background:transparent;color:var(--ink);font-size:11px;font-weight:700}.small-button:hover{background:#e2e8d8}.scoreboard{display:flex;justify-content:space-between;align-items:flex-end;padding:0 5px 10px}.metric-label{font-size:10px;letter-spacing:.05em;font-weight:700;display:block;color:#596e60}.score-value{font-size:39px;font-weight:900;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-2px}.clock-block{text-align:right}.clock-value{font-size:31px;line-height:1.2;font-weight:800;font-variant-numeric:tabular-nums}.clock-value #time-unit{font-size:12px;margin-left:4px}.clock-block.urgent{color:#c5442b}.arena-wrap{position:relative;border:2px solid var(--ink);border-radius:24px;overflow:hidden;background:#dde9d8;box-shadow:0 7px 0 #c5cdbb;isolation:isolate}canvas{display:block;width:100%;height:auto;aspect-ratio:3/4;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab}canvas.dragging{cursor:grabbing}.arena-topline{position:absolute;inset:12px 13px auto;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.arena-topline>span{font-size:10px;font-weight:700;letter-spacing:.06em;color:#718577}.pause-button{display:grid;place-items:center;width:30px;height:30px;padding:0;pointer-events:auto;border:1px solid #9cad99;background:#f1f2e8e6;border-radius:10px;color:var(--ink);font-weight:800}.timer-track{position:absolute;inset:0 0 auto;height:4px;background:transparent}.timer-track>div{height:100%;width:100%;background:var(--teal);transform-origin:left}.timer-track.urgent>div{background:var(--coral)}.game-footer{padding:20px 5px 0}.cargo-row{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px;font-weight:600;color:#4b6455}.cargo-row b{font-size:20px;font-weight:800;margin-left:5px;color:var(--ink);font-variant-numeric:tabular-nums}#cargo-count{background:#e2e6d7;padding:4px 9px;border-radius:9px;font-size:11px}#hint{font-size:11px;text-align:center;margin:10px 0 0;line-height:1.5;color:#607366;min-height:17px}.overlay{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:27px 28px;background:#f5f3e7f0;backdrop-filter:blur(3px)}.overlay h2{font-size:32px;line-height:1.45;letter-spacing:-1px;margin:8px 0 13px;font-weight:800}.overlay h2 em{font-style:normal;color:var(--teal)}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:800;margin:0;color:#5d7767}.intro-emblem{height:66px;width:92px;position:relative;margin-bottom:18px}.intro-emblem>span{position:absolute;left:18px;top:0;font-size:75px;line-height:60px;font-weight:900;color:var(--teal);transform:rotate(-28deg)}.intro-emblem i{position:absolute;width:12px;height:12px;background:var(--gold);border:2px solid var(--ink);border-radius:3px;left:72px;top:14px;transform:rotate(28deg)}.intro-emblem i:nth-child(3){left:73px;top:46px;width:9px;height:9px;background:var(--coral);transform:rotate(-18deg)}.intro-emblem i:nth-child(4){left:4px;top:52px;width:9px;height:9px;background:#a7cbb5}.intro-copy{font-size:11px;line-height:1.9;color:#566e5e;margin:0 0 20px}.gesture-guide{display:flex;gap:12px;font-size:10px;align-items:center;margin-bottom:21px;color:#6b7f6e}.gesture-guide b{display:block;color:var(--ink);font-size:12px;margin-bottom:3px}.primary-button{width:100%;max-width:330px;border:2px solid var(--ink);background:var(--coral);color:var(--ink);border-radius:14px;box-shadow:0 4px 0 var(--ink);padding:14px 18px;font-weight:800;font-size:14px;display:flex;justify-content:center;gap:14px;align-items:center;transition:transform .1s,box-shadow .1s,background .1s}.primary-button span{font-size:19px}.primary-button:hover{background:#ff8e64}.primary-button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.text-button{border:0;background:transparent;color:#587564;font-size:11px;font-weight:600;margin-top:16px;padding:9px 12px;text-decoration:underline;text-underline-offset:4px}.secondary-button{border:1px solid #8fa590;background:transparent;color:var(--ink);border-radius:12px;padding:11px 16px;font-size:12px;font-weight:700;min-height:43px}.secondary-button:hover{background:#e3ebdc}.result-overlay .secondary-button{width:100%;max-width:330px;margin-top:15px}.compact-overlay h2{font-size:25px;margin:12px 0 25px}.result-overlay h2{font-size:23px;margin:9px 0 0}.result-score{font-size:83px;line-height:1.17;font-weight:900;letter-spacing:-5px;font-variant-numeric:tabular-nums}.record-label{font-size:12px;font-weight:800;background:#edd270;color:#314f3d;border-radius:20px;padding:6px 14px;margin:5px 0 20px}.result-stats{display:flex;justify-content:space-around;gap:16px;width:100%;padding:15px 0;border-top:1px solid #c3ccba;border-bottom:1px solid #c3ccba}.result-stats span{display:block;color:#6a7c6a;font-size:9px;font-weight:600}.result-stats b{display:block;font-size:25px;font-variant-numeric:tabular-nums;margin-top:4px}.result-advice{font-size:11px;line-height:1.8;min-height:37px;margin:15px 0 17px;color:#526c5b}.seed-label{font-size:9px;letter-spacing:.08em;color:#748574;margin:15px 0 0}.toast{position:absolute;left:50%;top:17%;transform:translate(-50%,-6px);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;background:var(--ink);color:#fff5cc;border-radius:12px;padding:10px 17px;font-size:14px;font-weight:800;white-space:nowrap;z-index:2;box-shadow:0 3px 0 #102c2950}.toast.visible{transform:translate(-50%,0);opacity:1}.practice-done{display:block;width:100%;margin-top:12px;background:#e1e9d6}.field-notes{max-width:300px;flex:0 1 300px}.notes-label{color:#64806a;font-size:10px;font-weight:700;letter-spacing:.08em;margin:0 0 17px}.field-notes>h2{font-size:32px;line-height:1.5;letter-spacing:-.6px;margin:0 0 36px}.field-notes ol{list-style:none;padding:0;margin:0}.field-notes li{display:flex;gap:17px;margin-bottom:22px}.field-notes li>span{font-weight:800;font-size:11px;padding-top:5px;color:var(--teal)}.field-notes h3{font-size:15px;margin:0 0 5px}.field-notes li p{font-size:12px;line-height:1.9;margin:0;color:#657969}.bonus-note{display:flex;gap:12px;border-top:1px solid #bdcbb6;border-bottom:1px solid #bdcbb6;padding:21px 0;margin-top:26px}.bonus-note>span{font-size:30px;color:var(--teal)}.bonus-note b{font-size:12px}.bonus-note p{font-size:11px;line-height:1.8;margin:6px 0 0;color:#637b66}.input-note{font-size:10px;line-height:1.9;color:#758571;margin-top:23px}.prototype-note{font-size:8px;letter-spacing:.04em;color:#7a8b76;margin-top:37px;line-height:1.7}
@media(min-width:760px) and (max-height:850px){.game-shell{width:370px}.layout{padding-top:16px;padding-bottom:16px}.masthead{padding-bottom:11px}.score-value{font-size:32px}.game-footer{padding-top:15px}.overlay h2{font-size:27px}.intro-emblem{margin-bottom:12px}.intro-copy{margin-bottom:15px}.gesture-guide{margin-bottom:18px}.field-notes>h2{font-size:29px}}
@media(max-width:800px){.layout{gap:40px;padding-left:20px;padding-right:20px}.field-notes{max-width:260px}.field-notes>h2{font-size:27px}.field-notes li{gap:12px}}
@media(max-width:680px){body{background:var(--paper)}.layout{display:block;min-height:100svh;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}.game-shell{margin:0 auto;width:min(440px,100%)}.field-notes{display:none}.masthead{padding-bottom:12px}.arena-wrap{border-radius:21px}.game-footer{padding-top:17px}.overlay{padding:22px}.overlay h2{font-size:29px}.score-value{font-size:35px}.clock-value{font-size:28px}}
@media(max-width:370px){.layout{padding:10px}.masthead{padding-bottom:8px}.brand-mark{height:32px;width:32px;font-size:36px}.wordmark{font-size:14px}.score-value{font-size:28px}.overlay{padding:18px}.overlay h2{font-size:25px}.intro-emblem{transform:scale(.8);margin-bottom:7px;height:55px}.intro-copy{font-size:10px;margin-bottom:13px}.gesture-guide{margin-bottom:17px}.primary-button{padding:12px;font-size:12px}.result-score{font-size:69px}.result-stats{padding:11px 0}.record-label{margin-bottom:14px}.result-advice{margin:11px 0}.text-button{margin-top:10px}.game-footer{padding-top:13px}.cargo-row{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.welcome-overlay .intro-emblem{flex:none}
.welcome-actions{display:flex;justify-content:center;gap:20px}.welcome-actions .text-button{margin-top:8px}.new-expedition{width:100%;max-width:330px;margin-top:12px}.stage-overlay,.upgrade-overlay{overflow-y:auto;justify-content:safe center}.stage-overlay>*,.upgrade-overlay>*{flex-shrink:0}.stage-overlay h2,.upgrade-overlay h2{font-size:27px;margin:9px 0 14px;line-height:1.3}.route-stops{display:flex;gap:8px;margin:19px 0 10px}.route-stops i{width:32px;height:7px;border-radius:5px;background:#d9dfce}.route-stops i.done{background:#74ad8f}.route-stops i.current{background:var(--coral);box-shadow:0 0 0 3px #f7795126}.stage-target{font-size:13px;margin:0 0 15px}.stage-target b{font-size:50px;letter-spacing:-2px;margin-right:5px;line-height:1.1}.stage-copy{font-size:12px;line-height:1.8;margin:0 0 14px;max-width:300px}.gear-summary{font-size:10px;line-height:1.7;color:#627962;padding:10px 0;margin:0 0 16px;border-top:1px solid #c9d2be;width:100%}.checkpoint-note{font-size:9px;line-height:1.5;color:#71856e;margin:14px 0 0}.stage-overlay .text-button,.upgrade-overlay .text-button{margin-top:6px;padding:6px 12px}.upgrade-intro{font-size:11px;color:#5d775f;margin:0 0 18px;line-height:1.6}.upgrade-options{display:grid;gap:10px;width:100%}.upgrade-choice{display:grid;grid-template-columns:28px 1fr 36px;gap:10px;align-items:center;text-align:left;border:1.5px solid #8ca892;border-radius:13px;background:#edf0df;color:var(--ink);min-height:71px;padding:12px}.upgrade-choice:hover{background:#dbe8cc;border-color:var(--teal)}.upgrade-choice:active{transform:translateY(1px)}.upgrade-choice:disabled{opacity:.5;background:#e3e5d9}.upgrade-symbol{font-size:25px;color:var(--teal);text-align:center}.upgrade-choice b{display:block;font-size:13px;line-height:1.3}.upgrade-choice small{display:block;font-size:9px;line-height:1.5;margin-top:4px;color:#5e765f}.upgrade-level{font-size:10px;white-space:nowrap;text-align:right;font-weight:700}.objective{margin:0 0 12px}.objective>div:first-child{display:flex;justify-content:space-between;font-size:10px;margin-bottom:6px;color:#536d57}.objective>div:first-child b{color:var(--teal)}.objective-track{height:6px;border-radius:4px;background:#dbe1ce;overflow:hidden}.objective-track i{display:block;width:100%;height:100%;background:var(--teal);transform-origin:left;transition:transform .15s}.footer-home{display:block;margin:8px auto 0;padding:5px 10px}
@media(max-width:680px){.stage-overlay,.upgrade-overlay{padding:18px 22px}.stage-overlay h2,.upgrade-overlay h2{font-size:25px}.stage-copy{font-size:11px}.upgrade-choice{min-height:64px;padding:10px;gap:8px}.upgrade-options{gap:8px}.stage-target b{font-size:45px}.checkpoint-note{margin-top:10px}.gear-summary{font-size:9px}.stage-overlay .primary-button{padding:11px 14px}}
@media(max-width:370px){.welcome-actions{gap:12px}.welcome-actions .text-button{font-size:10px;padding:6px 10px}.new-expedition{font-size:11px;margin-top:9px;min-height:39px}.stage-overlay,.upgrade-overlay{padding:12px 16px}.stage-overlay h2{font-size:23px;margin:7px 0 9px}.stage-target{margin-bottom:10px;font-size:11px}.stage-target b{font-size:36px}.stage-copy{font-size:10px;margin-bottom:9px}.gear-summary{font-size:8px;padding:7px 0;margin-bottom:11px;line-height:1.6}.route-stops{margin:12px 0 7px}.route-stops i{width:27px;height:6px}.stage-overlay .checkpoint-note,.upgrade-overlay .checkpoint-note{font-size:8px;margin-top:8px}.stage-overlay .text-button,.upgrade-overlay .text-button{font-size:10px;margin-top:4px;padding:5px 10px}.upgrade-overlay .eyebrow{display:none}.upgrade-overlay h2{font-size:21px;line-height:1.2;margin:4px 0 6px}.upgrade-intro{font-size:9px;line-height:1.5;margin-bottom:9px}.upgrade-options{gap:6px}.upgrade-choice{grid-template-columns:20px 1fr 30px;gap:6px;min-height:52px;padding:7px 9px}.upgrade-symbol{font-size:20px}.upgrade-choice b{font-size:12px;line-height:1.2}.upgrade-choice small{font-size:9px;line-height:1.3;margin-top:3px}.upgrade-level{font-size:9px}}
.result-overlay{overflow-y:auto;justify-content:safe center}.result-overlay>*{flex-shrink:0}
@media(max-width:680px){.result-overlay{padding:14px 20px}.result-overlay h2{font-size:20px;line-height:1.25;margin:6px 0 0}.result-overlay .eyebrow{font-size:9px;line-height:1.4}.result-score{font-size:64px;line-height:1;letter-spacing:-3px}.record-label{font-size:10px;line-height:1.3;padding:4px 11px;margin:5px 0 9px}.result-stats{padding:8px 0;gap:8px}.result-stats>div{display:flex;align-items:baseline;gap:5px}.result-stats span{font-size:8px}.result-stats b{font-size:18px;line-height:1.2;margin:0}.result-advice{font-size:10px;line-height:1.6;min-height:0;margin:10px 0 12px}.result-overlay .primary-button{padding:9px 12px;font-size:12px}.result-overlay .secondary-button{margin-top:10px;min-height:40px;padding:8px 12px}.result-overlay .seed-label{font-size:8px;line-height:1.4;margin-top:9px}}
@media(max-width:370px){.result-overlay{padding:12px 16px}.result-overlay h2{font-size:18px;margin-top:4px}.result-score{font-size:48px}.record-label{margin:4px 0 6px}.result-stats{padding:5px 0;gap:5px}.result-stats>div{gap:3px}.result-stats span{font-size:7px}.result-stats b{font-size:16px}.result-advice{font-size:9px;line-height:1.5;margin:8px 0}.result-overlay .primary-button{padding:8px 10px;font-size:11px}.result-overlay .secondary-button{margin-top:8px;min-height:38px;font-size:11px}.result-overlay .seed-label{font-size:7px;margin-top:7px}}
@media(max-width:680px){.welcome-overlay{padding:22px 23px}.welcome-overlay .intro-emblem{height:49px;width:76px;margin-bottom:9px;transform:scale(.7);transform-origin:center center}.welcome-overlay .eyebrow{font-size:9px}.welcome-overlay h2{font-size:27px;line-height:1.36;margin:8px 0 12px}.welcome-overlay .intro-copy{font-size:10px;line-height:1.8;margin-bottom:14px}.welcome-overlay .gesture-guide{margin-bottom:15px}.welcome-overlay .text-button{margin-top:12px;padding:8px 10px}}
@media(max-width:370px){.welcome-overlay{padding:16px 18px}.welcome-overlay .intro-emblem{height:30px;margin-bottom:8px;transform:scale(.5);transform-origin:center center}.welcome-overlay h2{font-size:23px;line-height:1.3;margin:5px 0 10px}.welcome-overlay .intro-copy{font-size:9px;line-height:1.8;margin-bottom:10px}.welcome-overlay .gesture-guide{margin-bottom:12px;gap:12px}.welcome-overlay .primary-button{padding:11px 12px}.welcome-overlay .text-button{margin-top:9px}}
