:root{--ink:#173d2a;--cream:#fff4d6;--paper:#fffaf0;--yellow:#f4c84a;--red:#dc5b3f;--green:#4f8a52;--sky:#8fd2e0}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#10291d;color:var(--ink);font-family:"Trebuchet MS",system-ui,sans-serif;overscroll-behavior:none}button{font:inherit;color:inherit;touch-action:manipulation;cursor:pointer}#v2-app{position:relative;width:min(100%,560px);height:100dvh;margin:auto;overflow:hidden;background:#9ed8df;isolation:isolate}#farm-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}.v2-shade{position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,#173d2a55 0 13%,transparent 27% 80%,#173d2a45 100%)}.v2-hud,.v2-pressure,.v2-orders,.v2-bottom,.v2-toast,.tap-hint,.delivery-pill{position:absolute;z-index:5}.v2-hud{left:0;right:0;top:0;height:64px;display:flex;align-items:center;gap:9px;padding:8px 10px;color:#fff;background:#173d2aee}.day-chip{display:flex;flex-direction:column;min-width:55px}.day-chip small{font-size:8px;letter-spacing:.14em}.day-chip b{font-size:16px}.timer{height:12px;flex:1;border:2px solid #fff;border-radius:8px;overflow:hidden}.timer i{display:block;width:100%;height:100%;background:var(--yellow);transition:width .3s linear}.money-chip{display:flex;align-items:center;gap:4px;min-width:57px;justify-content:center;border:1px solid #fff5;border-radius:7px;padding:7px 6px}.money-chip b{font-size:17px}.hud-button{min-width:42px;min-height:42px;border:1px solid #fff7;border-radius:7px;background:#fff1;color:#fff;font-weight:1000}.v2-pressure{left:0;right:0;top:64px;height:24px;padding:5px 11px;display:flex;justify-content:space-between;background:#315d40;color:#fff;font-size:9px;font-weight:900}.v2-orders{left:8px;right:8px;top:96px;border:2px solid var(--ink);border-radius:9px;padding:5px 6px;background:#f9e7b5dd;box-shadow:3px 3px 0 #173d2a99}.orders-head{display:flex;justify-content:space-between;align-items:center;font-size:7px;letter-spacing:.14em}.orders-head span{letter-spacing:0;font-weight:700}.orders-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:4px}.order-card{background:var(--paper);border:1px solid var(--ink);border-radius:6px;padding:5px;min-height:42px}.order-card .order-top{display:flex;justify-content:space-between;font-size:6px;text-transform:uppercase}.order-card .order-pay{font-size:9px;color:var(--green);font-weight:1000}.order-card .order-product{display:flex;align-items:center;gap:4px;font-size:8px;font-weight:900;margin-top:3px}.order-card .order-product img{width:22px;height:22px;object-fit:contain}.order-card small{display:block;font-size:6px;opacity:.7}.order-card.done{background:#cce9a0}.order-card.ready{background:#fff2a6;animation:pulse-card .7s ease-in-out infinite}.tap-hint{left:50%;bottom:91px;transform:translateX(-50%);background:#173d2ae8;color:#fff;border:1px solid #fff5;border-radius:18px;padding:8px 12px;font-size:10px;white-space:nowrap;pointer-events:none;transition:opacity .3s}.tap-hint.hide{opacity:0}.v2-bottom{left:0;right:0;bottom:0;min-height:78px;background:#fff4d6e8;border-top:2px solid var(--ink);padding:8px 10px;display:flex;align-items:center;gap:6px}.v2-inventory{display:flex;gap:5px;overflow:auto;flex:1}.inv-button{position:relative;width:52px;height:56px;flex:0 0 52px;border:1.5px solid var(--ink);border-radius:8px;background:var(--paper);box-shadow:2px 2px 0 var(--ink);padding:2px}.inv-button img{width:30px;height:30px;object-fit:contain}.inv-button small,.inv-button b{display:block;font-size:7px}.inv-button b{position:absolute;right:3px;bottom:2px;font-size:11px}.inv-button.selected{background:var(--yellow);transform:translateY(-3px)}.van-fab{position:relative;width:77px;height:59px;flex:0 0 77px;border:2px solid var(--ink);border-radius:9px;background:#dce8d1;box-shadow:3px 3px 0 var(--ink)}.van-fab img{width:61px;height:38px;object-fit:contain}.van-fab span{position:absolute;right:-5px;top:-7px;background:var(--yellow);border:1px solid var(--ink);border-radius:12px;padding:2px 5px;font-size:8px;font-weight:1000}.v2-toast{left:50%;bottom:83px;transform:translateX(-50%);background:#173d2aed;color:#fff;padding:8px 13px;border-radius:18px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s}.v2-toast.show{opacity:1}.v2-modal{position:absolute;inset:0;z-index:20;background:#173d2acb;display:grid;place-items:center;padding:18px}.v2-modal.hidden{display:none}.brief-card,.route-card-modal,.cargo-card-modal{width:min(100%,430px);max-height:94dvh;overflow:auto;background:var(--cream);border:3px solid var(--ink);border-radius:13px;box-shadow:8px 9px 0 #0006;padding:18px}.brief-kicker{display:flex;justify-content:space-between;margin:-18px -18px 15px;background:var(--ink);color:#fff;padding:10px 15px;font-size:8px;font-weight:1000;letter-spacing:.12em}.eyebrow{font-size:9px;letter-spacing:.18em;font-weight:1000;margin:8px 0 5px;color:var(--red)}h1,h2{font-family:Georgia,serif;line-height:1;margin:3px 0 8px}h1{font-size:34px}h2{font-size:30px}.brief-card>p:not(.eyebrow),.modal-copy{font-size:12px;line-height:1.4;margin:0 0 12px}.brief-goal{display:flex;justify-content:space-between;align-items:center;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:8px 2px;margin-bottom:10px;font-size:8px;font-weight:1000;letter-spacing:.1em}.brief-goal b{font-size:23px;letter-spacing:0}.brief-orders{display:grid;gap:7px;margin-bottom:14px}.brief-order{display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:7px;border:2px solid var(--ink);border-radius:8px;background:var(--paper);padding:8px;box-shadow:2px 2px 0 var(--ink)}.brief-order .num{font-size:8px;color:var(--red);font-weight:1000}.brief-order img{width:34px;height:34px;object-fit:contain}.brief-order .who small,.brief-order .reward small{display:block;font-size:6px;letter-spacing:.1em}.brief-order .who b{font-size:10px}.brief-order .reward{text-align:right}.brief-order .reward b{font-size:17px;color:var(--green)}.primary{width:100%;border:2px solid var(--ink);border-radius:7px;background:var(--yellow);box-shadow:3px 4px 0 var(--ink);padding:13px 15px;font-size:13px;font-weight:1000;letter-spacing:.06em}.primary:active{transform:translate(2px,3px);box-shadow:1px 1px 0 var(--ink)}.back-link{display:block;text-align:center;color:var(--ink);margin-top:15px;font-size:10px;font-weight:900}.route-card-modal{background:#f6e8bc}.route-options{display:grid;gap:9px}.route-option{display:grid;grid-template-columns:39px 1fr 20px;align-items:center;gap:8px;text-align:left;border:2px solid var(--ink);border-radius:8px;background:var(--paper);padding:9px;box-shadow:3px 3px 0 var(--ink)}.route-option:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.route-option .route-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e9d68e;font-size:21px}.route-option em,.route-option h3,.route-option p,.route-option small{display:block}.route-option em{font-style:normal;color:var(--red);font-size:6px;font-weight:1000;letter-spacing:.1em}.route-option h3{font-size:13px;margin:2px 0}.route-option p{font-size:9px;line-height:1.3;margin:0 0 3px}.route-option small{font-size:7px;color:var(--green);font-weight:1000}.route-option> b{font-size:20px}.modal-row{display:flex;justify-content:space-between;align-items:start}.modal-close{width:42px;height:42px;border:0;background:none;font-size:28px}.cargo-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;padding:8px;background:#315d40;border:3px solid #6d4526;border-radius:9px}.cargo-slot{min-height:67px;border:2px dashed #fff8;border-radius:7px;background:#7db1c8;display:grid;place-items:center;font-size:9px}.cargo-slot.floor{background:#b98a51}.cargo-slot.filled{background:var(--cream);border-style:solid}.cargo-slot img{width:46px;height:46px;object-fit:contain}.cargo-slot.selected{outline:3px solid var(--red)}.cargo-items{display:flex;gap:5px;overflow:auto;margin:9px 0}.cargo-item{position:relative;min-width:53px;height:55px;border:1px solid var(--ink);border-radius:7px;background:var(--paper)}.cargo-item img{width:29px;height:29px;object-fit:contain}.cargo-item small,.cargo-item b{display:block;font-size:7px}.cargo-item b{position:absolute;bottom:2px;right:3px;font-size:10px}.cargo-total{display:flex;justify-content:space-between;border-top:2px solid var(--ink);padding:8px 2px;margin-bottom:8px;font-size:9px}.cargo-total b{font-size:21px}.destination-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.destination{min-height:44px;border:1px solid var(--ink);border-radius:6px;background:var(--paper);font-size:7px;font-weight:1000}.destination small{display:block;font-size:6px;margin-top:3px;font-weight:700}.destination.active{background:var(--yellow)}.delivery-pill{left:50%;top:44%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:#173d2af2;color:#fff;border:2px solid var(--yellow);border-radius:25px;padding:9px 14px;box-shadow:4px 5px 0 #0005}.delivery-pill.hidden{display:none}.delivery-pill>span:first-child{font-size:25px}.delivery-pill b,.delivery-pill small{display:block}.delivery-pill b{font-size:9px;color:var(--yellow)}.delivery-pill small{font-size:8px;margin-top:2px}@keyframes pulse-card{50%{transform:translateY(-1px);box-shadow:2px 4px 0 var(--ink)}}@media(max-width:380px){.v2-orders{left:5px;right:5px}.orders-list{gap:3px}.order-card{padding:4px}.v2-bottom{padding-inline:6px}.inv-button{width:48px;flex-basis:48px}.brief-card,.route-card-modal,.cargo-card-modal{padding:14px}.brief-kicker{margin:-14px -14px 12px}}
/* Mid-run event cards */
.event-card-modal{width:min(100%,430px);background:var(--cream);border:3px solid var(--ink);border-radius:13px;box-shadow:8px 9px 0 #0006;padding:18px}.event-options{display:grid;gap:9px}.event-option{display:grid;grid-template-columns:42px 1fr 20px;align-items:center;gap:9px;text-align:left;border:2px solid var(--ink);border-radius:8px;background:var(--paper);padding:10px;box-shadow:3px 3px 0 var(--ink)}.event-option:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.event-option .event-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#e9d68e;font-size:21px}.event-option em,.event-option h3,.event-option p,.event-option small{display:block}.event-option em{font-style:normal;color:var(--red);font-size:6px;font-weight:1000;letter-spacing:.1em}.event-option h3{font-size:13px;margin:2px 0}.event-option p{font-size:9px;line-height:1.3;margin:0 0 3px}.event-option small{font-size:7px;color:var(--green);font-weight:1000}.event-option>b{font-size:20px}
.route-result{margin:0 0 10px;padding:8px 10px;border-radius:7px;background:#e9d68e;border:1px solid var(--ink);font-size:10px;font-weight:1000}
.v23-design{display:none}body{font-synthesis:none;text-rendering:optimizeLegibility}#v2-app{background:linear-gradient(180deg,#9ed8df 0%,#add873 44%,#88b95e 100%);box-shadow:0 0 70px #0007}.v2-shade{background:radial-gradient(ellipse at 52% 34%,transparent 0 35%,#173d2a18 72%,#173d2a4d 100%),linear-gradient(180deg,#173d2a66 0 12%,transparent 28% 80%,#173d2a42 100%)}.v2-hud{box-shadow:0 3px 0 #173d2a55}.v2-orders{backdrop-filter:blur(5px);background:#f9e7b5e8}.orders-head b{font-size:8px}.order-card{transition:transform .18s,background .18s,opacity .18s}.order-card.done{min-height:27px;padding:4px 6px;display:flex;align-items:center;justify-content:space-between;opacity:.78;background:#cce9a0}.order-card.done .order-product,.order-card.done small{display:none}.order-card.done .order-top{width:100%}.order-card.ready{box-shadow:0 0 0 2px #f4c84a,2px 3px 0 #173d2a}.primary:hover,.route-option:hover,.event-option:hover,.season-upgrade:hover{filter:saturate(1.1) brightness(1.02)}.inv-button{transition:transform .16s,box-shadow .16s,background .16s}.inv-button:focus-visible,.van-fab:focus-visible,.hud-button:focus-visible,.primary:focus-visible,.route-option:focus-visible,.event-option:focus-visible,.season-upgrade:focus-visible{outline:3px solid #dc5b3f;outline-offset:3px}.tap-ripple{position:absolute;z-index:6;width:26px;height:26px;border:3px solid #fff4d6;border-radius:50%;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.4);box-shadow:0 0 0 3px #dc5b3f88,0 3px 8px #173d2a66}.tap-ripple.show{animation:tap-ripple .42s ease-out}@keyframes tap-ripple{0%{opacity:1;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.9)}}.v2-toast{border:1px solid #fff5;box-shadow:3px 4px 0 #173d2a66}.delivery-pill{backdrop-filter:blur(7px);animation:delivery-pop .25s ease-out}@keyframes delivery-pop{from{opacity:0;transform:translate(-50%,8px) scale(.94)}to{opacity:1;transform:translate(-50%,0) scale(1)}}.quality-toggle{display:block;width:100%;margin-top:9px;border:0;background:transparent;color:var(--green);font-size:8px;font-weight:900;letter-spacing:.08em}.quality-toggle b{color:var(--red)}.fx-layer{position:absolute;inset:0;z-index:7;pointer-events:none}.reward-floater{position:absolute;color:var(--yellow);font-weight:1000;font-size:18px;text-shadow:2px 2px 0 var(--ink);animation:reward-float .8s ease-out forwards}.combo-badge{position:absolute;z-index:8;left:50%;top:28%;transform:translateX(-50%) scale(.8);background:var(--yellow);border:2px solid var(--ink);border-radius:18px;padding:6px 11px;color:var(--ink);font-weight:1000;font-size:11px;opacity:0;pointer-events:none;box-shadow:3px 3px 0 var(--ink)}.combo-badge.show{animation:combo-pop .95s ease-out}.order-card.done{animation:order-done .32s ease-out}.van-fab.ready{animation:van-ready 1.25s ease-in-out infinite;box-shadow:0 0 0 3px var(--yellow),3px 4px 0 var(--ink)}@keyframes reward-float{from{opacity:0;transform:translateY(5px) scale(.8)}20%{opacity:1}to{opacity:0;transform:translateY(-34px) scale(1.05)}}@keyframes combo-pop{0%{opacity:0;transform:translateX(-50%) scale(.8)}20%,70%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:0;transform:translateX(-50%) scale(1.08)}}@keyframes order-done{50%{transform:scale(1.03)}}@keyframes van-ready{50%{transform:translateY(-2px)}}
.pickup-queue{position:absolute;right:95px;bottom:92px;z-index:5;background:#f4c84a;color:var(--ink);border:2px solid var(--ink);border-radius:12px;padding:5px 8px;font-size:8px;font-weight:1000;box-shadow:2px 2px 0 #173d2a88;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}.pickup-queue.show{opacity:1;transform:none}.cargo-total{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center}.cargo-total small{grid-column:1/-1;color:var(--green);font-size:8px;margin-top:3px;font-weight:900}.season-card-modal{width:min(100%,430px);max-height:94dvh;overflow:auto;background:var(--cream);border:3px solid var(--ink);border-radius:13px;box-shadow:8px 9px 0 #0006;padding:18px}.season-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0 14px}.season-stats div{background:var(--paper);border:2px solid var(--ink);border-radius:7px;padding:8px}.season-stats small,.season-stats b{display:block}.season-stats small{font-size:7px;letter-spacing:.1em}.season-stats b{font-size:20px;color:var(--green)}.season-upgrades{display:grid;gap:8px;margin-bottom:13px}.season-upgrade{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;text-align:left;border:2px solid var(--ink);border-radius:8px;background:var(--paper);padding:9px;box-shadow:2px 3px 0 var(--ink)}.season-upgrade.selected{background:#fff2a6;outline:3px solid var(--red)}.season-upgrade .upgrade-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e9d68e;font-size:21px}.season-upgrade h3{font-size:12px;margin:0 0 2px}.season-upgrade p{font-size:8px;line-height:1.25;margin:0}.season-upgrade small{font-size:7px;font-weight:1000;color:var(--green)}#v2-app.rain:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 20% 25%,#d8f5f544 0 1px,transparent 2px),radial-gradient(ellipse at 72% 43%,#d8f5f544 0 1px,transparent 2px),linear-gradient(180deg,#8db8c822,#527a8b44);background-size:160px 140px,220px 190px,100% 100%;animation:rain-v2 5s ease-in-out infinite alternate}@keyframes rain-v2{to{background-position:20px 10px,-15px 12px,0 0}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
