.tidy-field .tidy-dock{z-index:2;min-width:64px;min-height:40px;border:3px dashed #ffe8a3;border-radius:50%;background:radial-gradient(ellipse,#ffd56536,#d7993820 60%,transparent 70%);box-shadow:0 0 12px #ffc44c55,inset 0 0 12px #ffe48944;color:#fff0bb;opacity:.65;overflow:visible;transition:opacity .2s,border-color .2s;filter:none}
.tidy-dock.has-cargo{opacity:1;border-style:solid;border-color:#fff2a0;animation:tidyDockGlow 1.3s ease-in-out infinite}
.tidy-dock .tidy-dock-arrow{position:absolute;left:calc(50% - 18px);top:-32px;width:36px;height:36px;border-radius:50%;background:#ffdc64;color:#5b2b65;border:2px solid #fff6;font:bold 28px/32px sans-serif;box-shadow:0 3px #79485e88;pointer-events:none}
.tidy-dock .tidy-dock-label{display:inline-block;background:#4c285ddd;border-radius:14px;padding:3px 10px;color:#fff1b0;font-weight:900;font-size:clamp(12px,1.4vw,19px);white-space:nowrap;pointer-events:none}
.tidy-dock.is-docking .tidy-dock-arrow{opacity:0}
.tidy-bucket.ready-to-unload:before{display:none}
.tidy-stored{clip-path:ellipse(50% 50% at 50% 50%);overflow:hidden;z-index:1;pointer-events:none}
.tidy-stored .tidy-sweet-art{width:38%;height:78%;object-fit:contain}
.tidy-driver.faces-left .tidy-load{translate:var(--scoop-shift) 0}
.tidy-load .tidy-sweet-art{height:100%;object-fit:contain}
.tidy-driver.unloading>img{transform:rotate(-4deg);transform-origin:75% 75%}
@keyframes tidyDockGlow{50%{box-shadow:0 0 24px #ffe178aa,inset 0 0 20px #ffde7277}}
@media(prefers-reduced-motion:reduce){.tidy-dock.has-cargo{animation:none}}

.tidy-stored .tidy-sweet-art{object-fit:cover;object-position:center}
.tidy-load .tidy-sweet-art{height:48%;object-fit:cover;object-position:center}

.tidy-bucket>span{font-size:clamp(10px,1.15vw,16px);line-height:1.1;padding:3px 4px}

/* Arrival animates the artwork, leaving the truck's driving coordinates stable. */
.tidy-driver.awaiting-arrival>img{opacity:0;transform-origin:50% 85%}
.tidy-landing-dust{position:absolute;z-index:4;width:26%;height:9%;border:4px solid #ffe3a9b0;border-radius:50%;background:radial-gradient(ellipse,#ffe7b780,transparent 70%);box-shadow:0 0 18px #ffdf9c88;pointer-events:none}

.tidy-bucket-spark{position:absolute;z-index:8;pointer-events:none;font-size:clamp(20px,3vw,40px);color:#ffe899;text-shadow:0 0 12px #ffce43,0 0 22px #dc8eff}
.tidy-bucket.received-sweets{animation:none}
.tidy-bucket-art{transform-origin:50% 80%}

/* A soft, single burst centred on the arriving truck, without dimming the game. */
.tidy-arrival-flash{position:absolute;z-index:4;width:30%;aspect-ratio:1;pointer-events:none;border-radius:50%;background:radial-gradient(circle,#fff8d6bb 0%,#ffe59f66 30%,#d8adff44 48%,transparent 70%);box-shadow:inset 0 0 20px #ffeab866}

/* Scoop aim is visible and shares the exact pickup geometry, in either direction. */
.tidy-scoop-zone{position:absolute;transform:translate(-50%,-50%);border:2px dashed #fff0a6;border-radius:50%;background:#ffe77b24;box-shadow:0 0 12px #ffdb6855;pointer-events:none;z-index:1}
.tidy-scoop-zone.scoop-full{opacity:.2}
.tidy-field:has(.awaiting-arrival) .tidy-scoop-zone{visibility:hidden}
.tidy-pickup-sweet{position:absolute;height:auto;pointer-events:none;z-index:10;filter:drop-shadow(0 0 10px #ffe37d)}
.tidy-pickup-badge{position:absolute;pointer-events:none;z-index:11;white-space:nowrap;color:#fff4ac;background:#58316fe8;border:2px solid #ffdd6b;border-radius:16px;padding:5px 10px;font:clamp(14px,1.7vw,23px) Froople,sans-serif;box-shadow:0 0 20px #ffe58b88}
/* Mirroring must not stretch the inline-calibrated load box. */
body.halloween-game .tidy-driver.faces-left .tidy-load{right:auto}
body.halloween-game.rrdd-adventure .tidy-field,body.halloween-game.rrdd-adventure .tidy-field button{touch-action:none}

/* Keep remaining sweets tappable even when the truck artwork overlaps them. */
body.halloween-game .tidy-field .tidy-sweet{z-index:6}
.tidy-driver .tidy-capacity{position:absolute;top:5%;left:50%;transform:translate(-50%,-85%);display:flex;align-items:center;gap:7px;white-space:nowrap;padding:6px 10px;border:2px solid #fff4be;border-radius:18px;background:#53316fed;color:#fff7d6;font:clamp(12px,1.5vw,20px) Froople,sans-serif;pointer-events:none;box-shadow:0 3px 9px #25122b55}
.tidy-capacity-slots{display:flex;gap:4px}.tidy-capacity-slots>span{display:grid;place-items:center;min-width:20px;opacity:.5}.tidy-capacity-slots>.filled{opacity:1}
.tidy-driver.awaiting-arrival .tidy-capacity{visibility:hidden}
.tidy-field.full-cargo .tidy-capacity{background:#ffdf67;color:#49245f;border-color:white;box-shadow:0 0 20px #ffe48499}
.tidy-field .tidy-full-hint{position:absolute;top:64px;left:50%;transform:translateX(-50%);z-index:12;width:max-content;max-width:94%;min-height:48px;height:auto;padding:9px 18px;border:3px solid #fff6ce;border-radius:22px;background:#ffdf67;color:#48255e;font:clamp(15px,2vw,26px) Froople,sans-serif;box-shadow:0 4px #9e6929,0 0 22px #ffdc7088;cursor:pointer}
.tidy-field .tidy-full-hint[hidden]{display:none!important}.tidy-field.full-cargo .tidy-dock{border:4px solid #ffe573;background:#ffdf6755;box-shadow:0 0 25px #ffe57388}.tidy-field.full-cargo .tidy-dock-label{background:#fff0a8;color:#49245f;font-weight:bold}.tidy-field.full-cargo .tidy-scoop-zone{opacity:1;border:3px solid #ffe573;background:#ffdf6755}
@media(max-width:700px){.tidy-driver .tidy-capacity{font-size:12px;gap:4px;padding:4px 7px}.tidy-capacity-slots>span{min-width:16px}.tidy-field .tidy-full-hint{top:54px;padding:7px 10px;font-size:15px}}

