.miniature-button{position:relative;display:block;width:fit-content;min-width:44px;min-height:44px;flex-shrink:0;padding:0;border:0;background:transparent;isolation:isolate;touch-action:manipulation;transition:transform .2s cubic-bezier(.2,.8,.2,1),filter .2s;filter:drop-shadow(0 7px 5px #28354b18)}
.miniature-button:active{transform:translateY(2px) scale(.95);filter:drop-shadow(0 2px 2px #28354b18)}
.miniature-button:focus-visible{outline:2px solid var(--blue);outline-offset:7px;border-radius:8px}
.miniature-button .miniature{display:block}
.miniature-forklift{align-self:flex-start}
.miniature-truck{position:absolute;width:140px;height:115px;top:-25px;left:-5px}
.miniature-truck .mini-truck{position:static;width:100%;height:100%}
.truck-light-stage{position:absolute;width:100%;aspect-ratio:2/1;top:50%;left:0;transform:translateY(-50%);pointer-events:none}
.truck-light{position:absolute;display:block;background:#fffbe0;border-radius:35%;width:3.1%;height:2.2%;transform:rotate(16deg);opacity:0;box-shadow:0 0 4px 2px #ffeda4,0 0 13px 7px #fff3c87d}
.truck-light-far{left:7.5%;top:76.5%}
.truck-light-near{left:17.1%;top:80.7%;width:3.8%;height:2.8%}
.truck-light::after{content:"";position:absolute;width:440%;height:700%;right:20%;top:-70%;background:linear-gradient(135deg,#fff7cc80,transparent 80%);clip-path:polygon(100% 0,100% 28%,0 100%,0 35%);filter:blur(2px)}
.miniature-truck.is-honking .truck-light{animation:truck-blink .65s ease-out both}
@keyframes truck-blink{0%,36%,80%,100%{opacity:0}10%,26%,48%,68%{opacity:1}}
#warehouse .miniature-pallet{--pallet-w:125px;--pallet-h:125px;width:var(--pallet-w);height:var(--pallet-h)}
.pallet-stage{position:relative;display:block;width:100%;height:100%}
.pallet-cargo{position:absolute;inset:0;pointer-events:none;opacity:0}
#warehouse .pallet-stage>.mini-pallet{width:100%;height:100%;object-fit:contain}
/* One shared projection: bundle support plane matches all three pallet corners.
   The SVG support plane is the deck +235px; each bundle is 110px high. */
.pallet-parcel{position:absolute;left:0;top:calc(50% - var(--pallet-w)*.7919921875 - var(--parcel)*var(--pallet-w)*.21484375);width:100%;height:auto;object-fit:contain;pointer-events:none;opacity:0;z-index:calc(2 + var(--parcel));transform:translateY(-35px);filter:none}
.miniature-pallet.is-loading .pallet-parcel{animation:pallet-load .32s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--parcel)*.12s)}
.miniature-pallet.is-loading .pallet-cargo{animation:pallet-cargo-fade 2s ease-out both}
.miniature-pallet.is-loading .pallet-stage{animation:pallet-weight 1.9s ease-out both}
@keyframes pallet-load{from{opacity:0;transform:translateY(-35px)}to{opacity:1;transform:translateY(0)}}
@keyframes pallet-cargo-fade{0%,80%{opacity:1}100%{opacity:0}}
@keyframes pallet-weight{0%,100%{transform:translateY(0)}18%{transform:translateY(2px)}32%{transform:translateY(0)}45%,75%{transform:translateY(3px)}}
.passport-open .mobile-actions{visibility:hidden}
.passport-dialog{position:fixed;inset:0;margin:auto;border:0;padding:0;max-width:none;max-height:none;overflow:visible;background:transparent;color:var(--blue);width:fit-content;height:fit-content;box-shadow:none}
.passport-dialog::backdrop{background:var(--scrim);backdrop-filter:blur(7px)}
.passport-sheet{position:relative;width:min(480px,calc(100vw - 24px),calc(80dvh - 48px));aspect-ratio:4/5;isolation:isolate;filter:drop-shadow(0 18px 28px #101b264d)}
.passport-sheet::before{content:"";position:absolute;inset:8%;background:#f4f0e1;z-index:-2}
.passport-paper{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:-1;pointer-events:none}
.passport-plain .passport-paper{display:none}
.passport-plain .passport-sheet{background:var(--paper);border:1px solid var(--blue);border-radius:12px}
.miniature-button[aria-busy="true"]{cursor:progress}
.passport-content{position:absolute;inset:12.5%;display:flex;flex-direction:column;text-align:left}
.passport-kicker{font-size:10px;font-weight:700;letter-spacing:1.3px;line-height:1.4}
.passport-content h2{font-size:clamp(25px,6vw,38px);line-height:.98;letter-spacing:-.045em;margin-top:11px}
.passport-content h2:focus{outline:none}
.passport-specs{margin-block:auto;padding-block:14px}
.passport-specs>div{display:grid;grid-template-columns:.72fr 1.28fr;align-items:center;gap:10px;border-bottom:1px solid #0b2b6b40;padding:9px 0;line-height:1.3}
.passport-specs dt{font-size:12px;opacity:.75}
.passport-specs dd{margin:0;font-size:18px;font-weight:700;text-align:right;white-space:nowrap}
.passport-contact{display:flex;align-items:center;justify-content:center;min-height:50px;width:100%;padding:12px;background:var(--blue);color:#fff;font-size:14px;font-weight:700;line-height:1.3}
.passport-close{position:absolute;right:8%;top:3.5%;display:grid;place-items:center;min-width:44px;min-height:44px;background:transparent;color:var(--blue);font-size:26px;padding:0;z-index:2}
@media(hover:hover) and (pointer:fine){.miniature-button:hover{transform:translateY(-4px) scale(1.045);filter:drop-shadow(0 11px 7px #28354b25)}.miniature-button:active{transform:translateY(1px) scale(.97)}}
@media(max-width:760px){.miniature-truck{width:125px;height:100px;top:-15px}.miniature-pallet{align-self:center}.passport-specs{padding-block:10px}.passport-specs>div{padding:7px 0}.passport-specs dd{font-size:16px}.passport-contact{min-height:46px;font-size:13px}.passport-kicker{font-size:9px;letter-spacing:.6px}.passport-content h2{margin-top:8px}}
@media(max-width:390px){.passport-specs>div{padding:5px 0}.passport-specs dt{font-size:11px}.passport-specs dd{font-size:14px}.passport-contact{min-height:44px;font-size:12px}}
@media(max-width:1100px){#warehouse .miniature-pallet{--pallet-w:100px;--pallet-h:100px}}
@media(max-width:760px){#warehouse .miniature-pallet{--pallet-w:76px;--pallet-h:76px}}
@media(max-width:390px){#warehouse .miniature-pallet{--pallet-w:66px;--pallet-h:72px}}
@media(prefers-reduced-motion:reduce){.miniature-button{transition:none}.miniature-button:hover,.miniature-button:active{transform:none}.miniature-pallet.is-loading .pallet-parcel,.miniature-pallet.is-loading .pallet-cargo{animation:none;opacity:1;transform:none}.miniature-pallet.is-loading .pallet-stage{animation:none}.miniature-truck.is-honking .truck-light{animation:none;opacity:1}}
