:root{font-family:ui-rounded,'PingFang SC','Microsoft YaHei',sans-serif;color:#526451;background:#f1f1e7;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 30% 30%,#faf8ee,transparent 65%),#eeeee2}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #779e71;outline-offset:3px}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}.app-shell{min-height:100dvh;display:grid;grid-template-columns:minmax(210px,340px) 510px minmax(50px,140px);gap:55px;justify-content:center;padding:18px 30px;align-items:center}.intro{height:730px;max-height:90dvh;display:flex;flex-direction:column}.brand{font-size:14px;font-weight:700;letter-spacing:1.6px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.brand>span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#809979;color:#fff;font-size:22px}.brand small{font-size:9px;color:#98a188;font-weight:400;letter-spacing:3px}.intro-copy{margin:auto 0}.eyebrow{font-size:9px;letter-spacing:1.8px;color:#98a189}.intro h1{font-size:47px;line-height:1.5;letter-spacing:2px;font-weight:500;margin:25px 0}.intro h1 span{color:#829774}.intro p{color:#9da58d;font-size:13px;line-height:2.1;letter-spacing:1px}.intro-note{display:flex;gap:13px;align-items:center;margin-top:34px;font-size:12px}.intro-note>span{font-size:30px;color:#9aaa8f}.intro-note small{display:block;color:#a3aa96;font-size:10px;margin-top:9px}.demo-shortcuts{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:10px 0 35px}.demo-shortcuts button{background:transparent;border-bottom:1px solid #d2dbc8;padding:7px 0;font-size:11px;color:#819379}.version{font-size:8px;letter-spacing:1.5px;color:#a7ad97}.version b{margin-left:16px;font-size:12px;font-weight:500}.version>span{display:block;margin-top:9px;font-size:9px;letter-spacing:.8px}.game{position:relative;width:510px;height:calc(100dvh - 36px);max-height:970px;min-height:630px;background:#fffcf3;border:7px solid #fffef9;border-radius:30px;padding:17px 23px 12px;box-shadow:0 24px 65px #8c957720,0 3px 6px #8c95770d;display:flex;flex-direction:column;overflow:hidden}.game>*{flex-shrink:0}header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700}header small{display:block;font-size:7px;letter-spacing:1.3px;color:#a4ac99;font-weight:400;margin:4px 0 0 16px}.station-dot{display:inline-block;width:7px;height:7px;background:#8eaf8b;border-radius:50%;margin-right:5px}.icon-button{width:32px;height:32px;background:#eef0e4;border-radius:11px}.status{display:flex;justify-content:space-between;align-items:center;margin:18px 0 15px;gap:10px}.status .eyebrow{font-size:8px}h2{font-size:20px;margin:6px 0 0;font-weight:650}.delivery{min-width:102px;font-size:9px;text-align:right;color:#98a18d}.delivery b{font-size:15px;color:#78916e;margin-left:6px;white-space:nowrap}.progress{height:5px;background:#e8ecdf;border-radius:10px;margin-top:8px;overflow:hidden}.progress i{display:block;height:100%;background:#96b18b;transition:width .3s}.section-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:650;gap:8px}.section-label small{font-size:9px;color:#9ba58c;font-weight:400}.truck-zone{padding:12px 13px 10px;border-radius:19px;background:#eff2e6;overflow:hidden}.truck-zone>.section-label{font-size:10px;color:#7e8d70}.truck-zone>.section-label small{font-size:8px}#trucks{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:11px}.truck-bay{position:relative;min-width:0}.truck-title{display:flex;justify-content:space-between;gap:4px;font-size:9px;color:#89967c}.truck-title b{font-size:10px;color:#748c69}.vehicle-wrap{position:relative;height:85px}.truck{width:100%;height:100%;overflow:visible;transform-origin:center bottom}.truck text{font-family:inherit}.door-left{transform:scaleX(var(--closed,0));transform-origin:18px 0}.door-right{transform:scaleX(var(--closed,0));transform-origin:121px 0}.door-heart{opacity:var(--closed,0)}.truck-meter{height:4px;background:#dce4d2;border-radius:4px;overflow:hidden}.truck-meter i{display:block;height:100%;background:#9bb98a;transition:width .25s}.truck-note{display:block;font-size:8px;text-align:center;margin-top:5px;color:#99a28c;min-height:12px}.dispatch-stamp{pointer-events:none;position:absolute;left:14%;top:16%;border:2px solid #798e5d;border-radius:7px;color:#708651;background:#fcf8e3ef;font-size:16px;font-weight:800;line-height:1.3;padding:5px 8px;transform:rotate(-9deg);opacity:0;white-space:nowrap;box-shadow:0 4px 8px #6a815320}.dispatch-stamp small{display:block;font-size:8px;font-weight:500;text-align:center;margin-top:2px}.phase-stamp .dispatch-stamp{animation:stamp .35s ease-out}.truck-spark{display:none;position:absolute;top:-7px;left:15%;right:15%;text-align:center;font-size:23px;letter-spacing:8px;color:#cdb65c}.phase-stamp .truck-spark{display:block;animation:spark .6s ease-out}.achievement{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 3px 11px;font-size:10px;color:#8c9a7b}.achievement span{color:#bba563;margin-right:4px}.achievement b{font-weight:600}.achievement small{display:block;font-size:8px;margin:4px 0 0 15px;color:#a5ac96}#stamps{font-size:11px;letter-spacing:2px;color:#a7b68d;text-align:right}.sorting-zone{flex:1;min-height:155px;display:flex;flex-direction:column}.sorting-zone>.section-label{padding:0 3px;margin:0 0 8px}.sorting-zone>.section-label small{margin-left:5px}.challenge-link{font-size:9px;padding:5px 7px;border-radius:8px;background:#e9efdf;color:#7c9170;border:1px solid #dee5d2}.instruction{display:flex;justify-content:space-between;gap:4px;padding:0 4px 8px;font-size:8px;color:#a0a58c}.instruction b{font-weight:500;color:#839574}.board-scroll{flex:1;min-height:0;overflow:auto;border-radius:17px;background:#f2eddf;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bdcaae #f2eddf}#board{padding:13px 12px 16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:14px 12px;min-height:100%;background:radial-gradient(#d7d4c580 .7px,transparent .7px) 0 0/13px 13px}.sort-box{position:relative;border:1px solid #d9cdb6;border-radius:11px;padding:7px 7px 0;background:#e9dfc9;box-shadow:0 4px 0 #c8bca3,0 6px 7px #7d6d4a10;isolation:isolate;transition:border-color .15s,background .15s;min-width:0}.box-head{display:flex;justify-content:space-between;margin:0 1px 5px;font-size:9px;color:#aa9b7d}.box-head b{font-weight:700;letter-spacing:1px}.box-head small{font-size:8px;color:#a79d84}.box-stack{display:flex;flex-direction:column;gap:4px;padding:5px 5px 6px;border-radius:7px;background:#ded3bb;box-shadow:inset 0 2px 4px #9c85631a}.parcel-place{display:block;position:relative;height:23px;min-width:0}.space-dot{display:block;color:#c7bca4;line-height:23px;font-size:15px}.parcel.underneath{filter:saturate(.9)}.parcel.reachable{outline:1px solid #fff5d257;outline-offset:-2px}.box-label{display:block;height:23px;line-height:23px;font-size:8px;white-space:nowrap;color:#97886c;letter-spacing:.1px}.empty{border-style:dashed;background:#eee7d6;box-shadow:0 3px 0 #d4c9b0}.empty .box-stack{background:#e8dfcd}.empty .box-label{color:#a6987e}.selected{outline:3px solid #8ca279;outline-offset:2px;background:#e7e7ca}.selected .reachable{transform:translateY(-2px) rotate(-2deg);outline:2px solid #fcf5d2}.selected .box-label{color:#6e875c;font-weight:700}.target{outline:2px dashed #a7b493;outline-offset:2px;background:#e9eace}.target .box-label{color:#6f8b5d;font-weight:700}.sort-box.hinted{outline:3px solid #879e6f;outline-offset:2px}.hint-number{position:absolute;top:-10px;right:-7px;border-radius:50%;background:#799464;color:#fff7e2;width:22px;height:22px;font-size:17px;line-height:22px;z-index:5}.sort-box:active{scale:.98}.box-seal{position:absolute;inset:40% 3px auto;border:2px solid #8e9e6c;background:#fff7dcf2;color:#82925c;font-size:11px;font-weight:700;padding:7px 2px;border-radius:5px;transform:rotate(-8deg);opacity:0;pointer-events:none}.phase-seal .box-seal{opacity:var(--seal,0);scale:calc(1.15 - var(--seal,0)*.15)}.phase-wait .box-seal{opacity:1}.phase-fly .box-label,.phase-seal .box-label,.phase-wait .box-label{color:#7e935c;font-weight:600}.phase-fly,.phase-wait,.phase-seal{border-color:#aeba91;background:#e8e7c7}.flight-object{position:fixed;pointer-events:none;z-index:70;will-change:left,top,transform}#message{min-height:43px;padding:9px 2px 6px;font-size:10px;line-height:1.5;color:#88977b;display:flex;align-items:center;justify-content:center;text-align:center}footer{display:flex;gap:11px}footer button{flex:1;height:40px;border-radius:12px;background:#ecefdf;border:1px solid #dfe5d1;font-size:12px;display:flex;justify-content:center;align-items:center;gap:8px}footer button:last-child{background:#7e9874;border-color:#7e9874;color:#fffdf0}footer button>span{font-size:23px}footer small{font-size:8px;opacity:.65}.bottom-note{text-align:center;font-size:8px;letter-spacing:.5px;color:#b0b49e;margin-top:10px}#burst{position:absolute;top:232px;left:50%;translate:-50% 0;border:1px solid #e4dba8;background:#fff8df;color:#9b864e;box-shadow:0 4px 16px #7e713325;border-radius:20px;padding:9px 16px;font-size:12px;font-weight:650;white-space:nowrap;pointer-events:none;z-index:15;opacity:0}#burst.show{animation:burst 1.7s ease-out forwards}.side-note{text-align:center;color:#a5ad93}.side-note>span{font-size:32px}.side-note p{font-size:12px;line-height:2.2;letter-spacing:3px}.side-note i{display:block;height:50px;width:1px;background:#d5dcc6;margin:24px auto}.side-note small{font-size:9px;line-height:1.9;letter-spacing:2px}.overlay{position:fixed;inset:0;z-index:100;background:#3d513d45;backdrop-filter:blur(7px);display:grid;place-items:center;padding:18px}.overlay[hidden]{display:none}.modal{width:min(390px,100%);max-height:calc(100dvh - 36px);overflow:auto;background:#fffcf3;border:5px solid #fffef8;border-radius:25px;padding:24px;text-align:center;box-shadow:0 20px 70px #34432b26}.modal .big{font-size:40px;display:block;margin-bottom:12px}.modal h2{font-size:24px}.modal p{font-size:12px;color:#939c84;line-height:1.9}.modal button{display:block;width:100%;padding:11px;border-radius:12px;background:#edf0e2;font-size:12px;margin-top:9px}.modal button.primary{background:#7e9874;color:#fffdf0}.modal .toggle{display:flex;justify-content:space-between}.modal small{color:#a7af99;font-size:9px}.modal .levels{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.levels button{margin:0}.levels small{display:block;margin-top:4px}.levels .active{background:#d1debf}.reward{background:#f5ecd1;border-radius:12px;padding:15px;color:#aa9151;font-size:14px;margin:20px 0}
@keyframes stamp{0%{transform:rotate(-15deg) scale(1.8);opacity:0}70%{transform:rotate(-9deg) scale(.93)}100%{transform:rotate(-9deg) scale(1);opacity:1}}@keyframes spark{0%{scale:.5;opacity:0}45%{scale:1.2;opacity:1}100%{scale:1.5;opacity:0}}@keyframes burst{0%{opacity:0;transform:translateY(8px) scale(.9)}15%,70%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-10px)}}
@media(max-width:1150px){.app-shell{grid-template-columns:minmax(200px,1fr) 490px;gap:30px;padding:14px 24px}.game{width:490px;height:calc(100dvh - 28px)}.side-note{display:none}.intro h1{font-size:37px}}
@media(max-width:780px){.app-shell{display:block;padding:10px}.intro,.side-note{display:none}.game{width:min(510px,100%);height:calc(100dvh - 20px);min-height:575px;margin:auto;border-width:5px;padding:11px 13px 10px;border-radius:25px}header small{display:none}.status{margin:12px 0 11px}.status h2{font-size:17px}.delivery{min-width:92px}.delivery b{font-size:13px}.truck-zone{padding:10px 10px 8px}#trucks{gap:14px;margin-top:9px}.vehicle-wrap{height:74px}.truck-title,.truck-title b{font-size:9px}.truck-note{font-size:7px}.achievement{padding:9px 3px;font-size:9px}#stamps{font-size:9px;letter-spacing:1px}.instruction{font-size:7px;padding-bottom:7px;gap:3px}.section-label{font-size:10px}.section-label small{font-size:8px}.challenge-link{font-size:8px;padding:4px 6px}#board{padding:12px 9px 15px;gap:13px 10px}.sort-box{padding:6px 5px 0}.box-stack{padding:4px 4px 5px;gap:4px}.parcel-place{height:21px}.box-label{font-size:7px;height:22px;line-height:22px}.dispatch-stamp{font-size:12px;padding:4px 6px;left:10%;top:21%}.dispatch-stamp small{font-size:7px}.truck-spark{font-size:18px;letter-spacing:4px}.bottom-note{font-size:7px;margin-top:8px}#message{font-size:9px;min-height:39px;padding-top:7px}footer button{height:39px;font-size:11px}#burst{top:213px;font-size:11px;padding:8px 13px}.box-seal{font-size:9px}.modal{padding:20px}.modal .big{font-size:32px;margin-bottom:8px}}
@media(max-width:370px){.app-shell{padding:6px}.game{height:calc(100dvh - 12px);padding:9px;border-width:4px}.status h2{font-size:15px}.truck-zone>.section-label small{font-size:7px}#board{gap:12px 9px;padding:11px 8px}.instruction{font-size:6.5px}.dispatch-stamp{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}.reduced *,.reduced *:before,.reduced *:after{animation:none!important;transition:none!important}.reduced .truck-spark{display:none}.reduced #burst.show{opacity:0}
/* Short desktop windows still show both rows of the introductory sorting board. */
@media(min-width:781px) and (max-height:820px){
  .game{padding:11px 22px 9px;min-height:620px}header{height:24px;font-size:10px}header small{display:none}.icon-button{width:26px;height:26px;border-radius:8px}.status{margin:8px 0;line-height:1.2}.status h2{font-size:17px;margin-top:3px}.truck-zone{padding:8px 12px 7px}.truck-zone>.section-label{line-height:12px}#trucks{margin-top:6px}.truck-title{line-height:12px}.vehicle-wrap{height:53px}.truck-note{font-size:7px;line-height:10px;min-height:10px;margin-top:4px}.truck-meter{height:3px}.achievement{padding:8px 3px;line-height:12px}.achievement>div:first-child{display:flex;align-items:center;gap:4px}.achievement small{display:inline;margin:0 0 0 7px;font-size:8px}.sorting-zone>.section-label{margin-bottom:5px;line-height:13px}.challenge-link{padding:3px 6px}.instruction{line-height:10px;padding-bottom:6px}.box-head{line-height:12px}.parcel-place{height:19px}.box-label{height:21px;line-height:21px}.box-stack{gap:3px;padding:4px}#message{min-height:31px;padding:6px 0;font-size:9px}footer button{height:34px;font-size:11px}.bottom-note{margin-top:7px;line-height:10px;font-size:7px}#burst{top:175px}.dispatch-stamp{font-size:12px;top:6%;padding:3px 6px}.dispatch-stamp small{font-size:7px}
}
.find-empty{display:inline-block;background:transparent;color:#98a386;font-size:9px;font-weight:400;padding:2px 3px;margin-left:5px;border-bottom:1px dotted #bbc6a8}
/* V9: only these three containers are packing boxes; the pile is loose cargo. */
.packing-zone{margin:0 0 13px}.packing-zone>.section-label{font-size:10px;padding:0 3px 7px}#packing{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.packing-box{position:relative;border:1px solid #d2c4a7;border-bottom:4px solid #c9b99a;background:#eee3cd;border-radius:9px;padding:7px 7px 0;min-width:0}.packing-box .box-head{font-size:9px}.pack-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.pack-slots .parcel-place{height:30px;background:#dfd3ba;border-radius:4px;display:grid;place-items:center;color:#bcb092;font-size:12px}.pack-slots .reserved{outline:1px dashed #9e9277;outline-offset:1px}.packing-box .box-label{font-size:8px;text-align:center}.packing-box .box-seal{font-size:9px;padding:4px 0}.board-scroll{background:radial-gradient(#d7d4c580 .7px,transparent .7px) 0 0/13px 13px,#f2eddf;touch-action:pan-y}#board{position:relative;display:block;padding:0;min-height:0;margin:0 auto;background:transparent}.ground-print{position:absolute;top:40%;left:20%;color:#c9c1aa70;letter-spacing:3px;text-align:center;line-height:2;font-size:24px;rotate:-12deg;pointer-events:none}.ground-parcel{position:absolute;padding:0;background:none;border-radius:7px;touch-action:pan-y}.ground-parcel.preview,.ground-parcel.hinted{outline:3px solid #718a58;outline-offset:3px}.ground-parcel.obstacle{outline:3px dashed #ab8059;outline-offset:2px}.packing-box.target{outline:3px solid #9baa71;outline-offset:2px}#undo.attention{outline:2px solid #baa270}.flight-object{z-index:70}#burst{top:165px}.game{min-height:670px}.sorting-zone{min-height:130px}.box-head small{white-space:nowrap}.reduced .dispatch-stamp{transition:none}
@media(max-width:780px){.game{min-height:0;height:calc(100dvh - 20px)}.packing-zone{margin-bottom:10px}#packing{gap:7px}.packing-box{padding:6px 5px 0}.packing-box .box-head{font-size:8px}.packing-box .box-label{font-size:7px}.pack-slots{gap:2px}.pack-slots .parcel-place{height:28px}.sorting-zone{min-height:70px}.bottom-note{font-size:7px}}
@media(max-height:700px){.vehicle-wrap{height:48px}.truck-note{display:none}.status{margin:7px 0}.achievement{padding:6px 3px}.game{min-height:0}.packing-zone{margin-bottom:8px}.bottom-note{display:none}#message{min-height:31px;font-size:9px}.truck-zone{padding:7px 10px}.game header small{display:none}.packing-box .box-label{height:18px;line-height:18px}}
/* One-screen parcel heap: all hit contours match the engine's rotated polygons. */
.board-scroll{position:relative;overflow:hidden!important;touch-action:none;border:3px solid #eadfc9;border-radius:34% 34% 24px 24px / 18% 18% 24px 24px;background:radial-gradient(ellipse at 50% 35%,#f8f0df 0%,#f2e7d2 75%,#eee0c5 100%);box-shadow:inset 0 3px 10px #b5a17d12,inset 0 -3px 0 #fffaf070}#board{position:absolute;left:50%;top:50%;margin:0;transform-origin:center;isolation:isolate}.ground-print{font-size:20px;top:37%;left:22%;color:#b6a58235}.ground-parcel{touch-action:none;border-radius:0}.game .packing-zone{margin-bottom:9px}.game .sorting-zone>.section-label{margin-bottom:5px}.bottom-note{font-size:8px}
@media(max-width:780px){.game{padding:9px 12px 8px}.game header{height:25px}.game .status{margin:8px 0}.game .status h2{font-size:16px;margin-top:4px}.game .truck-zone{padding:7px 9px}.game #trucks{margin-top:5px;gap:14px}.game .vehicle-wrap{height:52px}.game .truck-note{display:none}.game .achievement{padding:6px 3px}.game .achievement small{display:inline;margin-left:5px}.game .packing-zone{margin-bottom:8px}.game .packing-zone>.section-label{padding-bottom:5px}.game .pack-slots .parcel-place{height:24px}.game .packing-box .box-label{height:18px;line-height:18px}.game #message{min-height:32px;padding:5px 0}.game footer button{height:36px}.game .bottom-note{margin-top:5px;font-size:7px}.board-scroll{border-width:2px}}
@media(max-height:720px){.game{padding-top:7px;padding-bottom:6px}.game header{height:21px}.game .status{margin:5px 0}.game .status h2{font-size:14px;margin-top:2px}.game .vehicle-wrap{height:39px}.game .truck-zone{padding:5px 8px}.game .truck-zone>.section-label{display:none}.game .achievement{padding:4px 2px;font-size:8px}.game .achievement small{display:inline;margin:0 0 0 5px}.game .packing-zone{margin-bottom:6px}.game .pack-slots .parcel-place{height:21px}.game .packing-box{padding:4px 4px 0}.game .packing-box .box-head{margin-bottom:3px}.game .box-label{height:16px;line-height:16px}.game .bottom-note{display:none}.game #message{min-height:28px;font-size:8px}.game footer button{height:32px}.game .packing-zone>.section-label{padding-bottom:3px}.game .sorting-zone>.section-label{margin-bottom:3px}}

/* Theme tokens are inherited by both the live game and each comparison card. */
[data-theme] {
 --parcel-R:#e99988;--parcel-B:#86b5c8;--parcel-Y:#edca77;
 --parcel-G:#96bba5;--parcel-P:#b3a5ca;--parcel-O:#dfad81;
 --page:#eaf0eb;--panel:#fffef8;--ink:#476458;--muted:#87968b;
 --accent:#83a992;--accent-deep:#668f7a;--soft:#eaf1ea;--tray:#edf2ea;
 --tray-border:#dbe5d8;--tray-radius:23px;--tray-shadow:none;
 --crate:#faf9ed;--crate-border:#d9ddca;--crate-bottom:#cbd3bf;--slot:#eceedd;
 --material:#cdb084;--bag-material:#f4f2e8;--neutral:0%;
 --light-mix:0%;--mid-mix:0%;--side-mix:8%;--outline-mix:17%;--outline-width:1.5px;
 --grain-opacity:0;--tape-neutral:88%;--label-neutral:100%;
 --drop-y:2px;--drop-blur:0px;--drop-color:#60775e22;
 --border-depth:1px;--rim-radius:12px;--seam-opacity:.25;--sketch-opacity:0;
}
[data-theme="cream"] {
 --parcel-R:#e9a395;--parcel-B:#93bfd0;--parcel-Y:#edcc86;
 --parcel-G:#a3c5ad;--parcel-P:#bdaed4;--parcel-O:#e3b28a;
 --page:#eeeddf;--panel:#fffdf4;--ink:#637454;--muted:#949a82;
 --accent:#9aaf7d;--accent-deep:#7e9761;--soft:#f0f1e2;--tray:#f5ecd8;
 --tray-border:#e3d6b9;--tray-radius:28px;--tray-shadow:inset 0 3px 6px #ac905229,inset 0 -4px 0 #fffbed;
 --crate:#f5ecd5;--crate-border:#deccaa;--crate-bottom:#c9b58b;--slot:#e9ddc0;
 --light-mix:37%;--mid-mix:10%;--side-mix:24%;--outline-mix:14%;--outline-width:1px;
 --tape-neutral:82%;--drop-y:3px;--drop-blur:2.5px;--drop-color:#78634335;
 --border-depth:4px;--rim-radius:14px;
}
[data-theme="paper"] {
 --parcel-R:#cf9a8d;--parcel-B:#9db7be;--parcel-Y:#d9bd7e;
 --parcel-G:#a9b799;--parcel-P:#b9a8bc;--parcel-O:#cfa882;
 --page:#eae3d2;--panel:#fbf6e9;--ink:#6d604c;--muted:#a2937e;
 --accent:#9caa80;--accent-deep:#7f8b62;--soft:#edeadb;--tray:#eee3cb;
 --tray-border:#cbb99a;--tray-radius:18px;--tray-shadow:inset 0 0 0 3px #fcf6e3;
 --crate:#f1e8d1;--crate-border:#cabb9a;--crate-bottom:#b9a789;--slot:#e4d9bf;
 --side-mix:13%;--outline-mix:36%;--outline-width:2.2px;--grain-opacity:.65;
 --drop-y:2px;--drop-blur:1px;--drop-color:#79654c28;--tape-neutral:73%;
 --rim-radius:7px;--seam-opacity:.4;--sketch-opacity:.45;
}
[data-theme="kraft"] {
 --parcel-R:#dd8374;--parcel-B:#77a4b4;--parcel-Y:#dfb853;
 --parcel-G:#86aa8f;--parcel-P:#aa95bd;--parcel-O:#d09a69;
 --page:#e9eeec;--panel:#fcfcf8;--ink:#516b6d;--muted:#8c9b96;
 --accent:#8baca6;--accent-deep:#6b908b;--soft:#eaf1ed;--tray:#eef0e8;
 --tray-border:#d8e0d4;--tray-radius:20px;--tray-shadow:inset 0 2px 3px #64725c14;
 --crate:#f3eee0;--crate-border:#ddd5bd;--crate-bottom:#c9bea0;--slot:#e8e2cf;
 --neutral:100%;--light-mix:20%;--mid-mix:6%;--side-mix:22%;--outline-mix:24%;
 --grain-opacity:.32;--tape-neutral:0%;--label-neutral:18%;
 --drop-y:3px;--drop-blur:2px;--drop-color:#6b614431;--border-depth:3px;--rim-radius:9px;
}
.parcel { position:relative;display:block;width:100%;height:100%;min-width:0;background:none;border:0;overflow:visible;pointer-events:none;--surface:color-mix(in srgb,var(--box),var(--material) var(--neutral)); }
.shape-bag { --material:var(--bag-material); }
.parcel-shell { position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none; }
.parcel-light { stop-color:color-mix(in srgb,var(--surface),#fffbed var(--light-mix)); }
.parcel-mid { stop-color:color-mix(in srgb,var(--surface),#fffbed var(--mid-mix)); }
.parcel-tone { stop-color:var(--surface); }
.parcel-side { fill:color-mix(in srgb,var(--surface),#92714b var(--side-mix));stroke:color-mix(in srgb,var(--surface),#765f48 var(--outline-mix));stroke-width:var(--outline-width); }
.parcel-front { stroke:color-mix(in srgb,var(--surface),#806049 var(--outline-mix));stroke-width:var(--outline-width); }
.parcel-grain { opacity:var(--grain-opacity); }
.parcel-sketch { fill:none;stroke:#7e715b;stroke-width:.8;opacity:var(--sketch-opacity); }
.parcel-box-seam,.parcel-bag-seal,.parcel-bag-fold { fill:none;stroke:color-mix(in srgb,var(--surface),#796342 45%);stroke-width:1.2;opacity:var(--seam-opacity); }
.parcel-bag-seal { stroke-width:1.5; }
.parcel-tape { fill:color-mix(in srgb,var(--box),#fff4d8 var(--tape-neutral)); }
.parcel-tape-edge { fill:none;stroke:#fffaf053;stroke-width:1.3; }
.parcel-address rect { fill:color-mix(in srgb,var(--box),#fffaf0 var(--label-neutral)); }
.address-lines { stroke:color-mix(in srgb,var(--box),#8e8168 35%);stroke-width:1.5;stroke-linecap:round;opacity:.6; }
.parcel-symbol { fill:#665e50; }
[data-marks="off"] .parcel-symbol,[data-marks="off"] .color-symbol { display:none; }
[data-marks="on"] .address-lines { display:none; }
.parcel-hit { fill:transparent;stroke:none;pointer-events:none; }
.parcel-selection { fill:none;stroke:#fff9cb;stroke-width:4;opacity:0; }
.ground-parcel { pointer-events:none;outline:none;overflow:visible; }
.ground-parcel .parcel-hit { pointer-events:fill; }
.ground-parcel>.parcel,.sample-parcel>.parcel {
 transform:none;
 /* A tight contact shadow separates touching edges; the soft shadow adds height. */
 filter:drop-shadow(1px 3px 1.2px #403a304f) drop-shadow(2px 6px 4px #403a3029);
 transition:transform .15s,filter .15s;
}
.ground-parcel .parcel-side,.sample-parcel .parcel-side {
 fill:color-mix(in srgb,var(--surface),#635341 32%);
 stroke:color-mix(in srgb,var(--surface),#514839 32%);stroke-width:1.6;
}
.ground-parcel .parcel-front,.sample-parcel .parcel-front {
 stroke:color-mix(in srgb,var(--surface),#655540 24%);stroke-width:1.3;
}
/* Keep lower parcels opaque and in their original colors; edges and softer
   contact shadows provide depth without making the whole parcel look muddy. */
.ground-parcel.blocked>.parcel,.sample-parcel.blocked>.parcel {
 filter:drop-shadow(1px 2px 1px #665d4e33) drop-shadow(1px 3px 2.5px #665d4e18);
}
.ground-parcel.preview,.ground-parcel.hinted,.ground-parcel.obstacle { outline:none; }
.ground-parcel.preview>.parcel { filter:brightness(1.05) drop-shadow(1px 4px 2px #403a3059) drop-shadow(2px 8px 5px #403a3033); }
.ground-parcel.preview .parcel-selection,.ground-parcel.hinted .parcel-selection,.ground-parcel:focus-visible .parcel-selection { opacity:1; }
.ground-parcel.obstacle .parcel-selection { opacity:1;stroke:#fff3b4;stroke-width:5; }
.ground-parcel.obstacle>.parcel { filter:brightness(1.08) drop-shadow(0 0 2px #786034) drop-shadow(1px 5px 3px #403a3059); }
.ground-parcel.occlusion-target .parcel-selection { opacity:1;stroke:#fff1d9;stroke-width:3;stroke-dasharray:5 4; }
.pack-slots .parcel-grain,.pack-slots .parcel-bag-fold,.pack-slots .address-lines { display:none; }
.flight-object .parcel { filter:drop-shadow(0 4px 3px #70563d33); }
body { color:var(--ink);background:radial-gradient(ellipse at 25% 15%,#fafbf2,transparent 65%),var(--page); }
.game { background:var(--panel);box-shadow:0 22px 65px #6f88661c,0 3px 0 #d5decd;border-color:#fffffa; }
.game header { height:32px;font-size:14px;font-weight:750;color:var(--ink); }
.station-brand { display:flex;align-items:center;gap:8px; }
.station-brand small { margin:3px 0 0;font-size:6px;letter-spacing:1.8px;color:var(--muted); }
.station-mascot { display:block;width:30px;height:30px;flex:none; }
.station-mascot svg { width:100%;height:100%; }
.header-actions { display:flex;gap:7px;align-items:center; }
#style-open { height:30px;padding:0 11px;border-radius:10px;background:var(--soft);color:var(--ink);border:1px solid var(--tray-border);font-size:10px;font-weight:650; }
.icon-button { background:var(--soft);border:1px solid var(--tray-border);color:var(--accent-deep); }
.game .status h2 { color:var(--ink);font-weight:750;letter-spacing:.3px; }
.delivery b { color:var(--accent-deep);font-weight:750; }
.progress { background:var(--soft); }.progress i { background:var(--accent); }
.truck-zone { background:var(--soft);border:1px solid var(--tray-border);box-shadow:inset 0 2px 0 #ffffff70;border-radius:var(--rim-radius); }
.truck-title { color:var(--ink); }.truck-title b { color:var(--accent-deep); }
.truck-meter { background:var(--tray-border); }.truck-meter i { background:var(--accent); }
.achievement,.section-label { color:var(--ink); }
.packing-box { background:var(--crate);border:1px solid var(--crate-border);border-bottom:var(--border-depth) solid var(--crate-bottom);border-radius:var(--rim-radius);box-shadow:inset 0 2px 0 #fffdf478; }
.packing-box .box-head { color:var(--ink); }.packing-box .box-label { color:var(--muted); }
.pack-slots .parcel-place { background:var(--slot);border-radius:4px;color:var(--crate-bottom); }
.packing-box.target { background:var(--soft); }
.challenge-link { background:var(--soft);border-color:var(--tray-border);color:var(--accent-deep); }
.board-scroll { border:2px solid var(--tray-border);border-radius:var(--tray-radius);background:var(--tray);box-shadow:var(--tray-shadow); }
.ground-print { display:none; }
.pile-cleared { position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--accent-deep);pointer-events:none; }
.pile-cleared>span { display:grid;place-items:center;width:58px;height:58px;border:2px solid var(--accent);border-radius:50%;font-size:30px;background:var(--panel); }
.pile-cleared strong { font-size:20px;font-weight:700;letter-spacing:1px; }.pile-cleared small { font-size:11px;color:var(--muted); }
.game #message { color:var(--muted); }
.game footer button { background:var(--soft);border:1px solid var(--tray-border);border-bottom:var(--border-depth) solid var(--tray-border);border-radius:var(--rim-radius);color:var(--ink);font-weight:650; }
.game footer button:last-child { background:var(--accent);border-color:var(--accent);border-bottom-color:var(--accent-deep);color:#fffef4; }
.game footer button:active { translate:0 1px; }.game footer button>span { font-weight:500; }
.intro h1 { color:var(--ink);font-weight:650; }.intro h1 span { color:var(--accent); }
.brand>span { background:var(--accent); }.brand,.intro-note { color:var(--ink); }

/* A neutral, side-by-side style chooser uses the same SVG assets as the game. */
#style-dialog { padding:24px;width:min(930px,calc(100vw - 28px));max-height:calc(100dvh - 28px);border:1px solid #e1e6dc;border-radius:23px;background:#fafbf6;color:#40584d;box-shadow:0 25px 90px #283a3555;overflow:auto;overscroll-behavior:contain; }
#style-dialog::backdrop { background:#3d504253;backdrop-filter:blur(7px); }
.look-heading { display:flex;justify-content:space-between;align-items:flex-start;gap:12px; }
.look-eyebrow { font-size:9px;letter-spacing:1.8px;color:#929f92; }
.look-heading h2 { margin:9px 0 8px;font-size:25px;font-weight:750; }
.look-heading p { margin:0;font-size:12px;line-height:1.8;color:#81907f; }
.look-close { background:#edf1e8;border:1px solid #dce4d6;border-radius:50%;width:32px;height:32px;flex:none;font-size:22px; }
.look-options { display:flex;gap:17px;align-items:center;flex-wrap:wrap;padding:13px 0 17px;margin-top:5px;font-size:11px; }
.look-options>span { color:#8c9988; }.look-options label { display:flex;align-items:center;gap:4px;cursor:pointer; }
.look-options input { accent-color:#71947d;margin:0; }.look-options small { color:#a0aa98;font-size:10px; }
.look-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px; }
.look-card { overflow:hidden;border:1px solid #e0e5d9;border-radius:17px;background:#fff; }
.look-card.is-selected { border-color:#8fa889;box-shadow:0 0 0 2px #b7cbaa48; }
.sample-scene { position:relative;height:226px;background:var(--tray);margin:9px 9px 0;border:1px solid var(--tray-border);border-radius:13px;box-shadow:var(--tray-shadow);overflow:hidden; }
.sample-caption { position:absolute;top:11px;left:14px;font-size:7px;letter-spacing:2px;color:var(--ink);opacity:.4; }
.sample-parcels { position:absolute;width:264px;height:198px;left:50%;top:51%;transform:translate(-50%,-50%); }
.sample-parcel { position:absolute;pointer-events:none; }
.look-card-copy { padding:13px 16px 15px; }
.look-card h3 { margin:0;display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;color:#476051; }
.look-card h3>span { display:grid;place-items:center;border-radius:7px;width:24px;height:24px;background:var(--soft);color:var(--accent-deep);font-size:12px; }
.look-card h3 small { margin-left:auto;font-size:9px;font-weight:500;color:#8da27f; }
.look-card-copy p { font-size:10px;color:#99a18f;margin:7px 0 12px;letter-spacing:.1px; }
.look-card-copy button { display:flex;justify-content:space-between;align-items:center;width:100%;padding:9px 12px;border-radius:8px;background:var(--soft);color:var(--ink);font-size:11px;border:1px solid var(--tray-border); }
.look-card-copy button:hover { background:var(--accent);border-color:var(--accent);color:#fff; }
.look-note { margin:15px 0 0;color:#94a08e;font-size:10px;line-height:1.8; }
@media(min-width:1100px) {
 #style-dialog { width:min(1240px,calc(100vw - 48px)); }
 .look-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:14px; }
 .sample-scene { height:220px; }
 .sample-parcels { transform:translate(-50%,-50%) scale(.87); }
 .look-card-copy { padding:13px 13px 15px; }
 .look-card h3 { font-size:15px;gap:7px; }
}
@media(max-width:780px) {
 .game header { height:30px;font-size:13px; }.station-mascot { width:28px;height:28px; }
 .game .status h2 { font-size:17px; }.game .packing-box .box-head { font-size:9px;letter-spacing:0; }
 #style-dialog { padding:19px; }.sample-scene { height:214px; }.sample-parcels { transform:translate(-50%,-50%) scale(.95); }
}
@media(max-height:720px) {
 .game header { height:27px;font-size:12px; }.station-mascot { width:26px;height:26px; }
 .game .status h2 { font-size:16px; }#style-open { height:25px; }
}
@media(max-width:560px) {
 #style-dialog { width:calc(100vw - 18px);padding:17px;max-height:calc(100dvh - 18px);border-radius:18px; }
 .look-heading h2 { font-size:21px; }.look-heading p { font-size:11px; }
 .look-options { gap:12px; }.look-options small { flex-basis:100%; }
 .look-grid { grid-template-columns:1fr;gap:15px; }.sample-scene { height:210px; }
 .look-card-copy { padding:12px 15px; }.look-card h3 { font-size:16px; }
}

/* V10: volume slots, fixed address queues and a persistent forest. */
.next-truck{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:23px;padding:4px 0 0;background:transparent;font-size:9px;color:var(--ink);text-align:left}
.next-truck>span:last-child{opacity:.5}.truck-title{align-items:center;white-space:nowrap}.truck-title>span{font-weight:700}.truck-title b{font-size:9px}.empty-bay{height:100%;display:grid;place-items:center;border:1px dashed var(--tray-border);border-radius:10px;margin:4px 0;color:var(--muted);font-size:9px}.phase-empty{opacity:.65}
.packing-box .box-head b{letter-spacing:0}.packing-box .box-label{font-size:8px;letter-spacing:0;overflow:hidden;text-overflow:ellipsis}.volume-label{position:absolute;bottom:0;right:2px;font-size:7px;line-height:12px;color:#554e41;background:#fff8dedb;border-radius:3px;padding:0 2px}.preview-slot{outline:2px dashed var(--accent);outline-offset:-2px;background:#c7dbc4!important}.phase-wait .box-seal{display:none}.phase-wait{border-color:#bd9e5e}.phase-wait .box-label{color:#8a6a2c}.queue-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px 0;text-align:left;border-bottom:1px solid #e1e7d8;font-size:11px}.queue-list>b{width:100%}.queue-stop{border-left:4px solid var(--address);background:#eff2e7;border-radius:6px;padding:8px}.queue-stop small{display:block;margin-top:4px}.queue-stop.passed{opacity:.45;text-decoration:line-through}
.modal:has(.forest-map),.modal:has(.badges){width:min(490px,100%)}.forest-map{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:25px 24px;padding:27px 14px 15px;border-radius:24px;background:radial-gradient(ellipse at 15% 15%,#d7e5bd 5%,transparent 40%),radial-gradient(ellipse at 85% 70%,#cddfb4 5%,transparent 50%),#e5edda;overflow:hidden}.forest-path{position:absolute;inset:10% 30% 18%;border:18px solid #f1e3bd;border-radius:50% 40% 60% 35%;rotate:25deg}.modal .forest-home{position:relative;background:#fff9e9;border:2px solid #fcfcf1;border-bottom:5px solid #d2c6a6;margin:0;padding:20px 3px 8px;border-radius:9px;box-shadow:0 5px 14px #62715412;min-width:0}.home-roof{position:absolute;top:-13px;left:-5%;width:110%;height:25px;clip-path:polygon(50% 0,100% 85%,96% 100%,4% 100%,0 85%);background:var(--address)}.home-animal{display:block;font-size:31px;margin:0 0 5px}.home-gift{position:absolute;right:5px;bottom:32px;font-size:23px}.forest-home b{display:block;font-size:11px}.forest-home small{font-size:8px;display:block;margin-top:5px;color:#728469}.forest-home.unknown{filter:grayscale(1);opacity:.45}.forest-station,.picnic-space{z-index:1;font-size:10px;padding:10px 5px;background:#f8f5dfb5;border-radius:9px;line-height:1.6;align-self:center}.picnic-space{color:#607850}.level-path{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:18px 0 6px}.modal .level-path button{margin:0;padding:9px 0;border:1px dashed #c9d4b7;font-size:11px;border-radius:50%;aspect-ratio:1}.modal .level-path .postmarked{color:#6d865b;background:#e1eacb;border:2px solid #b0c49b;rotate:-8deg}.badges{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0}.badge{display:flex;flex-direction:column;gap:7px;border:1px dashed #cbd2c0;border-radius:16px;padding:15px 5px;opacity:.38}.badge.earned{opacity:1;background:#f4eed8;border:2px solid #c3b584}.badge>span{font-size:30px;color:#a58b49}.badge b{font-size:12px}.story-list button{text-align:left}.story-list small{display:block;padding-top:5px}.postcard{background:#edf0d4;border:7px solid #fff;border-radius:8px;padding:25px 5px;rotate:-2deg;box-shadow:0 4px 13px #5864421a;margin:24px 0}.postcard>span{font-size:30px;display:block;white-space:nowrap}.postcard>b,.postcard>small{display:block;margin-top:12px}.arrival-scene{position:relative;height:125px;background:linear-gradient(0deg,#dee8c9 40%,#eff3df 40%);border-radius:18px;margin:20px 0;overflow:hidden}.arrival-home{position:absolute;right:22px;bottom:26px;font-size:46px}.arrival-van{position:absolute;left:35px;bottom:16px;font-size:39px;animation:arrive-home 2s ease-out both}.arrival-gift{position:absolute;right:20px;bottom:12px;font-size:30px;animation:gift-home 3.4s ease-out both}.milestone-stamp{display:inline-block;margin:5px 0;color:#9a8450;border:2px solid #bba16a;border-radius:9px;padding:9px 17px;rotate:-5deg;font-size:15px;background:#f6eed6}.modal .settlement-detail{font-size:10px}.modal .text-button{background:transparent;color:#88977a;font-size:10px;padding:4px}.arrival-scene.skipped *{animation:none!important}.text-button[hidden]{display:none}.modal button:focus-visible{outline:3px solid #7e9874;outline-offset:2px}
@keyframes arrive-home{from{translate:-100px 0}to{translate:0 0}}@keyframes gift-home{0%,65%{opacity:0;translate:0 12px}100%{opacity:1;translate:0 0}}
@media(max-width:780px){.game .truck-title{font-size:9px}.game .truck-title b{font-size:8px}.game .next-truck{font-size:9px;min-height:22px}.game .packing-box .box-label{font-size:7px}.modal .forest-map{gap:23px 16px;padding:26px 10px 12px}}
@media(max-height:720px){.game .achievement{padding:5px 2px}.game .vehicle-wrap{height:44px}.game .next-truck{min-height:20px;padding-top:2px;font-size:8px}.game .status h2{font-size:14px}.game .truck-zone{padding:6px 7px}.game .pack-slots .parcel-place{height:24px}.game #message{min-height:34px;font-size:9px}}
.reduced .arrival-van,.reduced .arrival-gift{animation:none!important}
#packing-rule{padding:4px 6px;background:var(--slot);border-radius:6px;color:var(--ink);font-size:9px;white-space:nowrap}
.box-owner{display:flex;align-items:center;justify-content:center;gap:3px;min-height:23px;margin:-2px -2px 5px;border-radius:5px;background:color-mix(in srgb,var(--accent) 30%,var(--crate));color:var(--ink);white-space:nowrap}
.box-owner>span{font-size:14px;line-height:1}
.box-owner b{font-size:10px;letter-spacing:0;line-height:1.3}
.box-owner.unassigned{background:var(--slot);color:var(--muted)}
.packing-box .box-head b{font-weight:500}
@media(max-width:360px){.box-owner{gap:2px}.box-owner b{font-size:9px}.box-owner>span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.arrival-van,.arrival-gift{animation:none!important}}
@media(max-height:720px){
 .modal:has(.forest-map){padding:15px}.modal:has(.forest-map)>h2{font-size:22px}.modal:has(.forest-map)>p{margin:9px 0;font-size:11px}
 .modal .forest-map{gap:19px 14px;padding:21px 10px 10px}.modal .forest-home{padding:11px 3px 6px}.forest-home .home-animal{font-size:25px;margin-bottom:2px}.forest-home small{margin-top:3px}.home-roof{height:21px;top:-11px}.home-gift{font-size:20px;bottom:29px}.forest-station,.picnic-space{padding:7px 3px}.level-path{gap:5px;margin:12px 0 5px}.modal .level-path button{padding:6px 0}.modal:has(.forest-map)>button{padding:10px}
}

/* One preview belongs to the shared queue, not to either loading bay. */
#trucks{row-gap:5px}.shared-queue{grid-column:1 / -1;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Forest companions: the animals live around the game, outside parcel hit areas. */
[data-theme="flat"]{--page:#edf0e4;--panel:#fffdf5;--ink:#53644f;--muted:#7e8d76;--accent:#90ad82;--accent-deep:#6d8f63;--soft:#edf3e6;--tray:#f1f2e4;--tray-border:#dde4cf;--crate:#fff6df;--crate-border:#e6d9bb;--crate-bottom:#d5c7a3;--slot:#f0e8ce;--rim-radius:16px}
body{background:radial-gradient(ellipse at 10% 8%,#fff7e9 0,transparent 54%),radial-gradient(ellipse at 85% 90%,#dfead640 0,transparent 50%),var(--page)}
.animal-portrait{display:inline-block;width:32px;height:32px;flex:none;vertical-align:middle;overflow:visible;pointer-events:none}
.paw-icon{display:inline-block;width:23px;height:23px;flex:none;vertical-align:middle;pointer-events:none}
.game{border-radius:34px;box-shadow:0 20px 60px #7887651b,0 4px 0 #d7dfc7}
.game header{height:37px}
.station-mascot{width:42px;height:42px;transform:rotate(-7deg)}
.station-brand{gap:9px}.station-brand small{letter-spacing:1.3px}
.brand>span{width:34px;height:34px;border-radius:12px;rotate:-8deg;background:#9ab08a}
.brand>span .paw-icon{width:21px;height:21px}
.intro-copy{margin:auto 0}.intro h1{font-size:44px;line-height:1.45;margin:17px 0 15px;letter-spacing:1px}
.intro p{margin:0;color:#879279;letter-spacing:.5px;line-height:2}
.intro-friends{max-width:340px;margin:14px -9px 0;transform:rotate(-2deg)}
.friends-scene{display:block;width:100%;height:auto;overflow:visible}
.intro-note{margin-top:14px;gap:12px}.intro-note>span{color:#c4ad70;font-size:25px}.intro-note small{margin-top:6px}
.demo-shortcuts{margin:16px 0 27px;gap:7px}.side-note{color:#94a586}.side-note>span{color:#b2bd91}
.neighbor-banner{position:relative;display:flex;align-items:center;justify-content:space-between;height:57px;padding:4px 14px 0;margin:0 0 10px;background:#f6e9de;border:1px solid #eedecf;border-radius:17px;isolation:isolate}
.neighbor-banner:after{content:"";position:absolute;width:42px;height:23px;left:38%;bottom:0;background:#fff8ef80;border-radius:35px 35px 0 0;z-index:-1}
.neighbor-banner b{display:block;font-size:12px;font-weight:750;letter-spacing:.8px;color:#8b715d}
.neighbor-banner span{display:block;margin-top:5px;font-size:8px;color:#a28c76;letter-spacing:.3px}
#neighbor-faces{height:100%;display:flex;align-items:flex-end;padding-right:3px}
#neighbor-faces .animal-portrait{width:56px;height:56px;margin-left:-10px;transform-origin:50% 95%;animation:friend-settle .8s both}
#neighbor-faces .animal-portrait:nth-child(2){rotate:-5deg;animation-delay:.08s}
#neighbor-faces .animal-portrait:nth-child(3){rotate:5deg;animation-delay:.16s}
#neighbor-faces .animal-portrait:nth-child(4){animation-delay:.24s}
.truck-zone{border-radius:19px;background:linear-gradient(#ffffff45,transparent),var(--soft)}
.truck-title>span{display:flex;align-items:center;gap:3px}.truck-title .animal-portrait{width:26px;height:26px;margin-top:-5px;margin-bottom:-3px}
.vehicle-wrap{height:76px}.truck-meter{height:4px;border-radius:8px}
.shared-queue{justify-content:flex-start;gap:4px;border-top:1px dashed var(--tray-border);margin-top:4px;padding-top:5px;line-height:20px;min-height:26px}
.shared-queue>span:last-child{margin-left:auto;opacity:.7}.queue-neighbor{display:inline-flex;gap:2px;align-items:center}
.queue-neighbor .animal-portrait{height:20px;width:20px;margin-top:-4px}
.queue-stop .animal-portrait{width:27px;height:27px}
.packing-box{border-radius:17px;padding:8px 7px 0;box-shadow:inset 0 2px #fffaf0,0 2px 0 #d7c9a016}
.box-owner{position:relative;min-height:27px;border-radius:11px;margin:-2px -2px 5px;background:color-mix(in srgb,var(--accent) 19%,var(--crate));gap:3px}
.box-owner>span{display:flex;align-items:center;justify-content:center}.box-owner .animal-portrait{width:34px;height:34px;margin-top:-9px;margin-bottom:-2px}
.box-owner.unassigned{background:#f1e8d1;color:#998d6d}.box-owner.unassigned .paw-icon{height:16px;width:16px;opacity:.55;margin:0 3px 0 0}
.box-owner b{font-size:10px}.box-head{padding:0 1px}.pack-slots .parcel-place{border-radius:6px}
.game .packing-box .box-label{color:#8a896d}.packing-box.target{outline-color:var(--accent-deep)}
.phase-seal .box-owner .animal-portrait{animation:friend-cheer .5s ease-out}
.board-scroll{border-radius:26px;background:radial-gradient(ellipse at 50% 42%,#fffaf24d,transparent 67%),var(--tray);box-shadow:inset 0 3px 0 #ffffff80,inset 0 -3px 0 #d6dcc020}
.board-scroll:after{content:"";position:absolute;inset:8px;border:1px dashed color-mix(in srgb,var(--tray-border),#fff 18%);border-radius:19px;pointer-events:none}
.mat-paws{position:absolute;left:15px;bottom:18px;display:flex;gap:9px;color:var(--accent-deep);opacity:.1;transform:rotate(-27deg);pointer-events:none}
.mat-paws .paw-icon{width:27px;height:27px}.mat-paws .paw-icon:last-child{transform:translateY(-19px)}
.challenge-link{border-radius:11px}.game #packing-rule{border-radius:8px}
.helper-note{display:flex;align-items:center;gap:7px;margin:6px 0;min-height:45px}
#helper-animal{display:block;align-self:flex-end;width:42px;height:43px;flex:none}
#helper-animal .animal-portrait{width:100%;height:100%;transform-origin:50% 90%}
.game #message{position:relative;flex:1;min-height:36px;padding:7px 10px;background:#f3efe2;border:1px solid #e9e3d1;border-radius:12px 12px 12px 3px;color:#7d8067;font-size:9px;line-height:1.55;text-align:left;justify-content:flex-start}
.game footer{gap:10px}.game footer button{height:43px;border-radius:16px;font-size:12px;border-bottom-width:3px;box-shadow:inset 0 2px 0 #ffffff30}
.game footer button .paw-icon{height:22px;width:22px;rotate:-12deg}
.game footer button:active .paw-icon{transform:rotate(15deg)}
.home-animal .animal-portrait{width:66px;height:66px}.modal .forest-home{border-radius:16px;padding-top:12px}.home-roof{border-radius:8px}.home-animal{margin-bottom:2px}
.modal .big .animal-portrait{width:76px;height:76px}.modal .resting-friend{margin-bottom:4px}
.postcard>span .animal-portrait{width:61px;height:61px}.picnic-space .animal-portrait{width:31px;height:31px}
.arrival-home:has(.animal-portrait){right:10px;bottom:27px}.arrival-home .animal-portrait{width:45px;height:45px}
@keyframes friend-settle{from{transform:translateY(5px) rotate(-4deg)}to{transform:translateY(0) rotate(0)}}
@keyframes friend-cheer{0%,100%{transform:rotate(0)}40%{transform:translateY(-3px) rotate(-8deg)}70%{transform:rotate(5deg)}}
@media(min-width:781px) and (max-height:820px){.intro h1{font-size:40px;margin:12px 0}.intro-friends{max-width:300px;margin-top:8px}.intro-note{margin-top:6px}.intro-note small{font-size:9px}.intro p{font-size:12px}.intro .eyebrow{font-size:8px}.demo-shortcuts{margin:10px 0 18px}.game .vehicle-wrap{height:56px}}
@media(max-width:780px){
 .game{border-radius:27px}.game header{height:34px}.station-mascot{width:37px;height:37px}
 .neighbor-banner{height:50px;margin-bottom:8px;padding:3px 11px 0;border-radius:14px}.neighbor-banner b{font-size:11px;letter-spacing:.4px}.neighbor-banner span{font-size:7px;margin-top:4px}
 #neighbor-faces .animal-portrait{width:47px;height:47px;margin-left:-11px}
 .game .vehicle-wrap{height:57px}.game #trucks{column-gap:12px;row-gap:2px}.game .next-truck{font-size:8px;min-height:25px}.queue-neighbor .animal-portrait{width:18px;height:18px}
 .truck-title .animal-portrait{height:24px;width:24px}.game .packing-box{padding:6px 5px 0}.box-owner{min-height:26px}.box-owner b{font-size:9px}.box-owner .animal-portrait{width:30px;height:30px}
 .helper-note{gap:5px;margin:5px 0;min-height:41px}#helper-animal{width:37px;height:38px}.game #message{font-size:9px;padding:6px 8px;min-height:34px}
 .game footer button{height:39px;font-size:11px}.game .board-scroll{border-radius:22px}
}
@media(max-height:850px){
 .game{padding-top:9px;padding-bottom:8px}.game .status h2{font-size:16px;margin-top:3px}.game .bottom-note{display:none}
 .game .truck-zone{padding:6px 9px}.game .truck-zone>.section-label{display:none}.game #trucks{margin-top:4px}
 .game .packing-zone{margin-bottom:6px}.game .packing-zone>.section-label{padding-bottom:5px}.game .pack-slots .parcel-place{height:21px}.game .packing-box .box-head{margin-bottom:3px}.game .packing-box .box-label{height:16px;line-height:16px;font-size:8px}
 .game header{height:31px}.station-mascot{width:34px;height:34px}.game .status{margin:7px 0}
 .neighbor-banner{position:absolute;top:10px;left:155px;height:33px;margin:0;padding:0;border:0;background:none;pointer-events:none}
 .neighbor-banner>div:first-child,.neighbor-banner:after{display:none}#neighbor-faces .animal-portrait{width:34px;height:34px;margin-left:-8px}
 .game .vehicle-wrap{height:46px}.truck-title .animal-portrait{height:22px;width:22px}.game .next-truck{min-height:22px;padding-top:3px;margin-top:3px;font-size:8px}
 .game .achievement{padding:4px 2px;line-height:12px}.game .achievement>div:first-child{display:flex;align-items:center;gap:3px}.game .achievement small{display:none}
 .box-owner{min-height:24px;margin-bottom:4px}.game .packing-box{padding-top:5px}.box-owner .animal-portrait{height:30px;width:30px}
 .helper-note{margin:4px 0;min-height:39px}#helper-animal{width:34px;height:35px}.game #message{font-size:8px;padding:5px 8px;min-height:31px}
 .game footer button{height:35px}.game .sorting-zone{min-height:92px}.home-animal .animal-portrait{height:49px;width:49px}
}
@media(max-height:850px) and (max-width:780px){.neighbor-banner{left:138px}#neighbor-faces .animal-portrait{width:31px;height:31px;margin-left:-9px}}
@media(max-width:360px){.neighbor-banner{padding-left:9px}#neighbor-faces .animal-portrait{width:39px;height:42px}.neighbor-banner span{letter-spacing:0;font-size:6.5px}.box-owner{gap:1px}.box-owner b{font-size:8px}.box-owner .animal-portrait{width:27px;height:29px}.game .truck-title b{font-size:7px}.game .next-truck{font-size:7px;gap:2px}}
@media(max-height:850px) and (max-width:360px){.neighbor-banner{left:119px;padding:0}#neighbor-faces .animal-portrait{width:30px;height:30px}#neighbor-faces .animal-portrait:nth-child(n+3){display:none}}
@media(max-height:600px){
 .game{padding-top:6px;padding-bottom:6px}.game header{height:27px}.station-mascot{height:30px;width:30px}
 .game .status{margin:4px 0}.game .status h2{font-size:14px}.game .status .eyebrow{font-size:7px}
 .game .truck-zone{padding:5px 7px}.game .vehicle-wrap{height:35px}.game .truck-title .animal-portrait{width:18px;height:18px}
 .game .next-truck{min-height:19px;padding-top:2px;margin-top:2px;line-height:17px}.queue-neighbor .animal-portrait{height:16px;width:16px}
 .game .achievement{display:none}.game .packing-zone{margin-top:6px;margin-bottom:4px}
 .game .packing-box .box-label{height:14px;line-height:14px;font-size:7px}.game .pack-slots .parcel-place{height:18px}
 .game .packing-zone>.section-label{padding-bottom:3px}.game #packing-rule{padding:2px 5px;font-size:8px}.game .challenge-link{padding:2px 5px;font-size:7px}
 .game footer button{height:33px}.game .box-owner{min-height:22px;margin-bottom:3px}.game .box-owner .animal-portrait{height:27px;width:27px}
}
@media(prefers-reduced-motion:reduce){#neighbor-faces .animal-portrait,.phase-seal .animal-portrait{animation:none}}

/* The approved illustration stays intact; the real button scales with its art. */
.app-shell[hidden],.home-screen[hidden]{display:none}
body.home-open{overflow:hidden;background:#405a3e}
.home-screen{position:relative;isolation:isolate;display:grid;place-items:center;width:100%;height:100vh;height:100dvh;overflow:hidden;background:#405a3e}
.home-screen::before{content:"";position:absolute;inset:-32px;z-index:-1;background:url('assets/forest-post-home-v6.png') center/cover;filter:blur(28px) brightness(.55);pointer-events:none}
.home-artwork{position:relative;width:min(100vw,calc(100vh * 941 / 1672));width:min(100vw,calc(100dvh * 941 / 1672));aspect-ratio:941/1672;box-shadow:0 0 60px #182c2d50}
#home-image{display:block;width:100%;height:100%;user-select:none;-webkit-user-drag:none}
.home-start{position:absolute;left:23.5%;top:74.5%;transform:translateY(-50%);width:53%;height:8.8%;min-height:44px;padding:0;border-radius:999px;background:transparent;transition:box-shadow .16s,background .16s}
.home-start-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.home-start:focus-visible{outline:3px solid #fff3ba;outline-offset:4px;box-shadow:0 0 0 7px #355b38b3}
.home-start:active{background:#24482920;box-shadow:inset 0 0 0 3px #fff6cc60}
@media(hover:hover){.home-start:hover{background:#fff8d510;box-shadow:0 0 24px #fff3b86b}}
@media(prefers-reduced-motion:reduce){.home-start{transition:none}}
.home-image-failed{background:#f5efd9;border-radius:24px}
.home-image-failed::before{content:"森林快递";position:absolute;top:25%;width:100%;text-align:center;font-size:clamp(24px,7vw,42px);font-weight:800;color:#365638}
.home-image-failed #home-image{opacity:0}
.home-image-failed .home-start{background:#54773d;color:#fff8df}
.home-image-failed .home-start-label{position:static;width:auto;height:auto;margin:0;clip-path:none;font-size:clamp(14px,4vw,24px);font-weight:750}
/* V13: finite preview, optional helpers and the fifth neighbor. */
.shared-queue{justify-content:center;gap:6px;min-height:30px}.shared-queue small{font-size:9px;white-space:nowrap}.queue-neighbor{white-space:nowrap}.queue-neighbor .animal-portrait{width:25px;height:25px}.truck-title b{white-space:normal;max-width:54%;text-align:right}.capacity-4 .truck{width:100%}.capacity-2 .truck{width:88%;margin:auto;display:block}
#packing.has-temporary{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.has-temporary .box-owner b{font-size:8px}.has-temporary .box-head b{font-size:8px}.has-temporary .box-label{overflow:hidden;white-space:nowrap}.has-temporary .packing-box:last-child{border-style:dashed;border-color:#b7a0c8}
.arrival-note{flex-shrink:0;padding:3px 8px;margin:0 3px 4px;border-radius:8px;background:#ede8f4;color:#725c87;font-size:10px;text-align:center}.arrival-note[hidden]{display:none}.ground-parcel{transition:opacity .12s}#board.unloading{opacity:.45;pointer-events:none}#skills{color:#79618a;background:#eee7f2}footer:has(#skills:not([hidden])){grid-template-columns:1fr 1fr .8fr}#skills[hidden]{display:none}
.address-choices{display:flex;gap:4px}.address-choices button{flex:1;min-width:0;padding:5px 2px;font-size:10px}.address-choices .animal-portrait{display:block;width:36px;height:36px;margin:auto}.address-choices .active{outline:2px solid #977dac}.express-options{max-height:190px;overflow:auto;margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:5px}.express-options label{display:flex;align-items:center;gap:3px;font-size:10px;padding:6px;background:#f1eedf;border-radius:7px}.express-options .parcel{width:24px;height:24px;flex-shrink:0}.express-options input{accent-color:#79618a;min-width:18px;min-height:18px}.forest-map{min-height:330px}.forest-home:nth-of-type(5){grid-column:1 / -1;justify-self:center;width:50%}.picnic-space{bottom:0}.express-flight{position:fixed;left:50%;top:45%;z-index:80;padding:18px;background:#fff7e3;border:2px solid #bba1cf;border-radius:18px;pointer-events:none;transform:translate(-50%,-50%)}
@media(max-width:780px){.game #trucks{column-gap:8px}.game .queue-neighbor .animal-portrait{width:22px;height:22px}.game .shared-queue{padding:3px 2px;font-size:9px;gap:4px}.game .shared-queue small{font-size:8px}.game .truck-title{font-size:9px}.game .truck-title b{font-size:8px}.game .arrival-note{font-size:9px;padding:2px 5px}.game #packing.has-temporary{gap:3px}.has-temporary .box-owner .animal-portrait{width:24px;height:24px}.game .sorting-zone{min-height:160px}.game .helper-note{min-height:26px}}
@media(max-height:600px){.game .neighbor-banner{display:none}.game .vehicle-wrap{height:32px}.game .packing-box .box-owner{height:24px}.game .box-owner .animal-portrait{width:23px;height:23px}.game .pack-slots .parcel-place{height:17px}.game .packing-box .box-label{height:12px;line-height:12px;font-size:6px}.game .shared-queue{min-height:25px}.game #message{min-height:24px}.game .helper-note{margin:0}.game .sorting-zone{min-height:165px}.game footer button{height:31px}.game .achievement{padding:2px}.game .truck-zone{padding:3px 5px}.game .status{margin:3px 0}.game .packing-zone{margin-bottom:3px}}
.recipient-label{position:absolute;right:3px;top:3px;display:flex;align-items:center;gap:1px;height:18px;padding:0 3px;border-radius:6px;background:#fffcf0dd;font-size:10px;color:#4d6252;pointer-events:none}.recipient-label .animal-portrait{width:20px;height:20px}.express-flight>div{display:flex;gap:6px;padding-top:8px}.express-flight .parcel{width:40px;height:36px}
@media(max-width:360px){.game .has-temporary .box-owner b{font-size:7px}.game .has-temporary .box-owner .animal-portrait{width:18px;height:18px}.game .has-temporary .box-owner{gap:1px}.game .has-temporary .box-head b{font-size:7px}.game .has-temporary .box-head small{font-size:7px}.game .has-temporary .packing-box{padding-left:2px;padding-right:2px}}
#board.unloading .parcel-hit{pointer-events:none}
/* Direction one: undistorted gift silhouettes throughout the delivery flow. */
.gift-parcel{--surface:color-mix(in srgb,var(--box),var(--material,#cdb084) var(--neutral,0%));--gift-edge:color-mix(in srgb,var(--surface),#59432d 29%)}
.gift-parcel .gift-side{fill:var(--gift-edge);stroke:var(--gift-edge);stroke-width:1.3;stroke-linejoin:round}
.gift-parcel .gift-surface{stroke:var(--gift-edge);stroke-width:1.3;stroke-opacity:.55;stroke-linejoin:round}
[data-theme="flat"] .gift-parcel .parcel-light{stop-color:color-mix(in srgb,var(--surface),#fff9e9 24%)}
.gift-parcel .parcel-selection{stroke-width:3.5;stroke-linejoin:round;stroke-linecap:round}
.ground-parcel>.gift-parcel,.sample-parcel>.gift-parcel{filter:drop-shadow(0 3px 1.5px #6b5a3f33)}
.ground-parcel.blocked>.gift-parcel,.sample-parcel.blocked>.gift-parcel{filter:drop-shadow(0 2px 1px #6b5a3f25)}
.ground-parcel.preview>.gift-parcel{filter:brightness(1.05) drop-shadow(0 4px 2px #6b5a3f44)}
.ground-parcel.obstacle>.gift-parcel{filter:brightness(1.08) drop-shadow(0 0 2px #786034)}
.ground-parcel .parcel-hit path{pointer-events:fill}
#board.unloading .parcel-hit path{pointer-events:none}
.truck .parcel-shell{position:static}
.truck .parcel-hit,.truck .parcel-hit path{pointer-events:none}
.pack-slots .gift-parcel{filter:drop-shadow(0 1px 0 #70563d22)}
[data-theme="kraft"] .gift-tape{fill:var(--box);opacity:1}
