@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Fraunces:opsz,wght,SOFT,WONK@9..144,450,30,1;9..144,500,30,1;9..144,600,30,1&display=swap');
:root{--paper:#f7f4eb;--ink:#355346;--muted:#7c8475;--green:#355b4c;--green-light:#e8ede0;--line:#deded0;--gold:#cda465;--cabinet:#bd7953;--wood:#ddb385;--shelf-back:#ebce9f;--shelf-dark:#c69263;--serif:'Fraunces',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif;color-scheme:light}
*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:16px;background:var(--paper);min-height:100vh}body::before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.23;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.12' filter='url(%23n)'/%3E%3C/svg%3E")}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:disabled{opacity:.38;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c28643;outline-offset:4px}a{color:inherit;text-decoration:none}button{touch-action:manipulation}button:not(:disabled){transition:background .18s,transform .18s,box-shadow .18s}button:active:not(:disabled){transform:translateY(2px)}.awning{height:10px;background:repeating-linear-gradient(90deg,var(--green) 0 38px,#e6e9d9 38px 76px);border-bottom:2px solid #f7f4eb}.topbar{max-width:1440px;margin:auto;padding:25px 4.2%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{font-family:var(--serif);font-size:30px;display:flex;align-items:center;gap:13px;line-height:1.15;letter-spacing:-1px}.brand small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:2px;font-weight:600;margin-top:7px}.brand-mark{height:49px;width:49px;border:1.5px solid var(--green);border-radius:50% 50% 7px 7px;font-size:36px;letter-spacing:-6px;line-height:44px;padding-left:9px;position:relative}.brand-mark span{font-family:Georgia;font-size:21px;position:absolute;right:5px;top:0;letter-spacing:0}.mode-switch{display:flex;padding:5px;background:#eaece2;border:1px solid #dee2d5;border-radius:40px;gap:3px}.mode-switch button{padding:10px 22px;background:transparent;border-radius:30px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:9px;min-height:42px}.mode-switch button span{font-size:19px;line-height:1}.mode-switch button.active{background:var(--green);color:#fff8e9;box-shadow:0 2px 3px #1d3d2920}.mode-switch button:not(.active):hover{background:#dce3d4}.header-tools{display:flex;gap:9px}.icon-button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:20px}.icon-button:hover{background:var(--green-light)}.icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.shop-layout{display:grid;grid-template-columns:minmax(170px,1fr) minmax(400px,640px) minmax(180px,1fr);gap:42px;max-width:1390px;margin:0 auto;padding:42px 4.2% 23px;align-items:start}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.6px;line-height:1.5}.left-rail{padding-top:22px}.left-rail>.eyebrow{font-size:9px;letter-spacing:1.6px}.left-rail h1{font-family:var(--serif);font-weight:450;letter-spacing:-1.1px;font-size:43px;line-height:1.15;margin:18px 0}.intro{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 30px}.delivery-card{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0 17px}.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.card-top .eyebrow{font-size:9px}.sun-symbol{font-size:25px;color:#c29858}.delivery-number{display:flex;align-items:center;gap:13px;margin:9px 0 21px}.delivery-number>span:first-child{font-family:var(--serif);font-size:49px;line-height:1;color:#608068;font-weight:450}.delivery-number>span:last-child{font-size:13px;max-width:85px;line-height:1.5}.progress-label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);gap:5px}.progress-track{height:5px;background:#e4e6da;border-radius:5px;margin-top:9px;overflow:hidden}.progress-track>div{height:100%;width:0%;background:#729377;border-radius:5px;transition:width .35s}.delivery-card p{font-size:11px;color:var(--muted);margin:13px 0 0}.tiny-note{display:flex;gap:15px;align-items:center;margin:24px 0;color:#75866b;transform:rotate(-3deg)}.tiny-note>span{font-size:43px}.tiny-note p{font-family:var(--serif);font-size:19px;font-weight:450;line-height:1.4}.text-button{background:transparent;padding:0;font-size:12px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px}.text-button:hover{text-decoration:underline;text-underline-offset:4px}.shop-link{font-size:11px;width:100%;margin-top:24px}.shop-link>span:first-child{font-size:20px}.game{min-width:0}.game-heading{display:flex;justify-content:space-between;align-items:center;margin:0 2px 20px;gap:12px}.game-heading .eyebrow{font-size:9px;letter-spacing:1.4px;color:var(--muted)}h2{font-family:var(--serif);font-size:30px;font-weight:500;letter-spacing:-.7px;margin:4px 0 0}.pace-badge{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:10px;background:#e8ecdd;padding:8px 12px;border-radius:22px;color:#58714f}.pace-badge>span{font-family:Georgia;font-size:22px;line-height:1}.pace-badge.rush{background:#f1e1c8;color:#805e29;font-variant-numeric:tabular-nums;font-size:14px}.pace-badge.low{background:#f2d8cb;color:#9f4939}.game-heading>.icon-button{display:none;flex-shrink:0}.game-heading>.icon-button.show{display:inline-flex}.cabinet{border-radius:16px 16px 12px 12px;padding:0 17px;background:var(--wood);border:1px solid #bd885b;box-shadow:0 5px 0 #a97349,0 7px 0 #986845,0 14px 26px #5a352a18;position:relative}.cabinet-header{height:40px;display:flex;justify-content:center;gap:20px;align-items:center;color:#805937;font-size:9px;font-weight:600;letter-spacing:1.9px;border-bottom:1px solid #bf8e5966}.cabinet-flower{font-size:19px;color:#8b6941;position:absolute;right:20px}.shelf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 14px;padding:12px 0 3px}.shelf{position:relative;height:120px;border:1px solid #bb8854;border-bottom:0;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#c49669 0%,#e6c493 70%,#edcea0 100%);box-shadow:inset 0 5px 10px #5f371822,inset 4px 0 4px #63401d0b,inset -4px 0 4px #63401d0b}.shelf::after{content:'';position:absolute;bottom:-4px;left:-3px;right:-3px;height:13px;border-radius:2px 2px 4px 4px;background:linear-gradient(#f0d0a0 0 3px,#d1a372 3px 9px,#ba8656 10px);border:1px solid #b98854;box-shadow:0 5px 4px #6e462923;pointer-events:none;z-index:4}.shelf-label{position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);z-index:5;border-radius:2px;background:#f8edd5;border:1px solid #bc9468;font-size:8px;line-height:12px;padding:0 10px;letter-spacing:1.5px;color:#9c7c53}.backstock{display:flex;position:absolute;inset:7px 7px auto;height:62px;justify-content:space-around;pointer-events:none;opacity:.34;filter:saturate(.55) brightness(.8)}.backstock .good{width:44px;height:53px;transform:translateX(5px)}.shelf-stock-number{position:absolute;right:5px;top:4px;font-size:8px;color:#735c40;z-index:2}.shelf-items{display:grid;grid-template-columns:repeat(3,1fr);position:absolute;inset:11px 6px 8px;z-index:3;align-items:end;gap:1px}.item{position:relative;height:93px;min-width:0;padding:7px 2px 0;border-radius:10px;background:transparent;display:flex;align-items:flex-end;justify-content:center}.item .good{width:90%;height:84px;filter:drop-shadow(0 4px 2px #5f402931);transform-origin:50% 95%;transition:transform .2s}.item:hover .good{transform:translateY(-6px) rotate(-4deg)}.item:active .good{transform:scale(.9)}.item.hinted{background:#fff5ac66;box-shadow:inset 0 0 0 2px #fff1a5;animation:hint-glow 1.7s ease-in-out infinite}.item.hinted .good{transform:translateY(-4px)}.item.empty{pointer-events:none}.empty-shelf{font-family:var(--serif);position:absolute;inset:50% 0 auto;text-align:center;font-size:16px;letter-spacing:1px;color:#9e7b52;transform:translateY(-50%)}.good{display:inline-block;flex-shrink:0;position:relative;vertical-align:middle;pointer-events:none}.good svg{display:block;width:100%;height:100%;overflow:hidden}.cabinet-base{height:32px;display:flex;align-items:center;justify-content:space-between;color:#8a633f;font-size:9px}.cabinet-base>span:first-child{font-family:var(--serif);font-size:11px;letter-spacing:.5px}.basket-wrap{margin:25px 1px 0}.basket-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 5px 10px}.basket-heading .eyebrow{font-size:9px;letter-spacing:1.4px}.basket-heading>span:nth-child(2){font-size:10px;color:var(--muted)}.basket-heading>span:last-child{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.basket{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;padding:10px;border:1px solid #d9d9c9;border-radius:12px;background:#e9e8dc;box-shadow:inset 0 2px 3px #6e6e4910}.basket-slot{height:58px;position:relative;border-radius:7px;background:#f7f5e9;border:1px solid #d8d9c8;box-shadow:inset 0 2px 4px #6b75400a;display:flex;align-items:center;justify-content:center}.basket-slot:empty::after{content:'';width:5px;height:5px;border-radius:50%;background:#dedfd0}.basket-slot .good{width:80%;height:49px;animation:arrival .22s ease-out}.basket.full{border-color:#bd7a56;background:#e6d4bc}.game-actions{display:flex;justify-content:space-evenly;gap:8px;margin:21px 0 0}.game-actions button{display:flex;align-items:center;gap:10px;background:transparent;padding:5px 8px;border-radius:9px;text-align:left}.game-actions button:hover{background:#e9edde}.action-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #d5ddcb;background:#edf0e4;border-radius:50%;width:35px;height:35px;font-size:24px;color:#718263}.game-actions button>span:last-child{font-size:12px;font-weight:550}.game-actions small{display:block;font-size:9px;color:var(--muted);font-weight:400;margin-top:3px}.game-footnote{text-align:center;color:var(--muted);font-size:10px;margin:22px 0 0}.right-rail{padding-top:24px}.stock-card{padding:17px 15px 14px;border:1px solid #daddcc;background:#f1f1e6;border-radius:11px}.stock-heading{display:flex;justify-content:space-between;align-items:center;gap:7px}.stock-heading .eyebrow{font-size:9px;letter-spacing:1.4px}.small{width:21px;height:21px;font-size:12px;font-family:Georgia}.stock-card>p{color:var(--muted);font-size:11px;margin:5px 0 14px}.legend-row{display:flex;align-items:center;gap:9px;min-height:47px;border-bottom:1px solid #e2e5d7;font-size:11px;width:100%;background:transparent;padding:4px 0;text-align:left}.legend-row:hover{background:#e7eddd}.legend-row:last-child{border:0}.legend-row .good{width:32px;height:35px}.legend-row>span:nth-child(2){flex:1}.legend-row>span:last-child{background:#e2e8d8;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:10px;font-variant-numeric:tabular-nums}.legend-row.cleared{opacity:.35}.stock-key{font-size:9px;color:var(--muted);display:flex;align-items:center;gap:5px;padding-top:12px;border-top:1px solid var(--line);margin-top:8px;line-height:1.5}.stock-key>span{width:5px;height:5px;flex-shrink:0;background:#92a086;border-radius:1px}.stamp-card{margin-top:25px;border:1px dashed #c3cbb5;padding:20px 15px;background:#f4f3e6;position:relative;transform:rotate(1deg);box-shadow:2px 3px 0 #e6e8da}.stamp-card .eyebrow{font-size:8px}.stamp-card h3{font-family:var(--serif);font-size:19px;font-weight:450;margin:8px 0 16px;line-height:1.3}.stamps{display:flex;gap:9px}.stamp{width:35px;height:35px;border:1px dashed #c3ccb6;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#bdc7b2;font-size:22px}.stamp.filled{background:#dfe8d4;color:#64815e;border:1px solid #b8c8aa;transform:rotate(-12deg)}.stamp-card p{font-size:10px;line-height:1.6;color:var(--muted);margin:14px 0 16px}.stamp-card .text-button{font-size:10px;line-height:1.6;width:100%}.local-tag{font-size:9px;text-align:center;margin-top:24px;color:var(--muted)}.local-tag>span{font-size:15px;margin-right:5px}.footer{margin:0 auto;max-width:1270px;border-top:1px solid var(--line);padding:19px 0 24px;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:1.5px;color:#929685}.footer>span:last-child{letter-spacing:0;font-size:10px}.footer>span:last-child>span{color:#648a66;margin-left:5px}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);max-width:calc(100% - 32px);padding:13px 23px;border-radius:30px;box-shadow:0 6px 24px #344d3b22;background:var(--green);color:#fff8e9;font-size:14px;text-align:center;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{color:var(--ink);border:1px solid #c7ccb7;border-radius:20px;padding:35px;max-width:480px;width:calc(100% - 32px);background:var(--paper);box-shadow:0 25px 120px #203b3044;overflow:auto;max-height:90dvh}dialog::backdrop{background:#263e325c;backdrop-filter:blur(5px)}.modal-close{position:absolute;right:14px;top:14px;border:0;font-size:25px}.modal-eyebrow{font-size:10px;letter-spacing:1.5px;margin-top:15px}.modal-title{font-family:var(--serif);font-size:34px;font-weight:450;line-height:1.2;margin:10px 0 15px;letter-spacing:-.7px}.modal-copy{font-size:14px;line-height:1.7;color:#6c7867}.modal-art{display:flex;justify-content:center;gap:8px;margin:20px 0}.modal-art .good{width:70px;height:80px}.primary-button{display:block;background:var(--green);color:#fff9e9;border:1px solid var(--green);padding:14px 25px;border-radius:10px;font-size:14px;text-align:center;width:100%;margin-top:22px;font-weight:550}.primary-button:hover{background:#254838}.secondary-button{display:block;background:transparent;border:1px solid var(--line);padding:12px 22px;border-radius:10px;width:100%;margin-top:10px;font-size:13px}.steps{padding:0;list-style:none;counter-reset:steps}.steps li{counter-increment:steps;display:flex;gap:12px;font-size:14px;line-height:1.65;margin:16px 0;align-items:start}.steps li::before{content:counter(steps);display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e4eada;width:28px;height:28px;flex-shrink:0;font-size:12px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0;font-size:14px}.settings-row small{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}.settings-row input{width:21px;height:21px;accent-color:var(--green)}.theme-options{display:grid;gap:10px;margin-top:20px}.theme-option{padding:14px;background:#eeeee2;border:1px solid var(--line);border-radius:9px;text-align:left;display:flex;align-items:center;gap:13px;font-size:14px}.theme-option.selected{border-color:#6d8b64;box-shadow:inset 0 0 0 1px #6d8b64}.theme-option .swatch{width:30px;height:30px;border-radius:50%;background:#ddb385;flex-shrink:0}.theme-option small{font-size:11px;display:block;color:var(--muted);margin-top:4px}.win-emblem{text-align:center;font-size:63px;color:#bd975d;line-height:1.1;margin:8px 0 20px}.win-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin-top:23px}.win-stats strong{font-family:var(--serif);font-size:28px;font-weight:500;display:block}.win-stats span{font-size:10px;color:var(--muted);display:block;margin-top:6px}.perfect{padding:8px 12px;background:#e9eddd;font-size:12px;border-radius:25px;display:inline-block;margin:12px 0 0}.particle{position:fixed;z-index:25;width:7px;height:7px;border-radius:2px;pointer-events:none;animation:confetti 800ms ease-out forwards}.flying-good{position:fixed;z-index:20;pointer-events:none;transition:transform .27s cubic-bezier(.3,.1,.5,1),opacity .27s}.shelf.revealed .item .good{animation:reveal .32s ease-out}.basket-wrap.matched .basket{animation:match-pop .32s ease-out}.journal-stats{display:flex;gap:25px;margin:20px 0}.journal-stats strong{font-family:var(--serif);font-size:34px;display:block}.journal-stats span{font-size:12px;color:var(--muted)}body[data-theme=bakery]{--green:#88573f;--ink:#674d39;--green-light:#eee3d2;--wood:#e2b582;--shelf-back:#eed1a0}body[data-theme=lakeside]{--green:#396878;--ink:#365762;--green-light:#e0ebe8;--wood:#c6c4a4;--shelf-back:#d2d7b7}body[data-theme=lakeside] .shelf{background:linear-gradient(#939f8b,#c9ceb0 70%,#dce0c2)}body[data-theme=lakeside] .cabinet{border-color:#929d85}body[data-theme=lakeside] .shelf::after{background:linear-gradient(#dee2c7 0 3px,#b9bd9c 3px 9px,#959e83 10px);border-color:#929d85}body[data-theme=lakeside] .cabinet{box-shadow:0 5px 0 #8c967f,0 7px 0 #76876f,0 14px 26px #353f3318}
@keyframes arrival{from{transform:scale(.65) rotate(-12deg);opacity:.5}to{transform:scale(1);opacity:1}}@keyframes reveal{from{transform:translateY(-12px) scale(.8);opacity:.4}to{transform:translateY(0);opacity:1}}@keyframes hint-glow{50%{background:#fff5ac33;box-shadow:inset 0 0 0 2px #faecb055}}@keyframes match-pop{50%{transform:translateY(-3px);background:#e0e7d3}}@keyframes confetti{to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}
@media(min-width:1450px){.shop-layout{padding-top:55px;gap:50px}.shelf{height:137px}.item{height:105px}.item .good{height:96px}.shelf-items{bottom:9px}.backstock{height:70px}.backstock .good{height:60px;width:50px}.basket-slot{height:66px}.basket-slot .good{height:57px}.footer{margin-top:8px}}
@media(max-width:1180px){.shop-layout{gap:26px;grid-template-columns:165px minmax(360px,600px) 170px;padding:30px 3% 22px}.topbar{padding:22px 3%}.left-rail h1{font-size:34px}.left-rail>.eyebrow{font-size:8px}.shelf{height:111px}.item{height:85px}.item .good{height:76px}.stock-card{padding:13px 10px}.legend-row{gap:6px;font-size:10px}.stamp-card{padding:17px 12px}.footer{margin:0 3%}.pace-badge{font-size:9px;padding:7px 9px}.game-heading{gap:8px}h2{font-size:27px}.shop-link{font-size:10px}}
@media(max-width:980px){.shop-layout{grid-template-columns:170px minmax(360px,600px);max-width:860px;gap:30px}.right-rail{grid-column:1/-1;display:grid;grid-template-columns:1.7fr 1fr;gap:25px;padding:0;margin:10px 0}.stock-card{padding:17px}.stock-card>p{display:none}#legend{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.legend-row{font-size:12px}.stock-key{font-size:10px}.stamp-card{margin:0;transform:none}.local-tag{display:none}.shelf{height:125px}.item{height:97px}.item .good{height:87px}.brand{font-size:26px}.mode-switch button{padding:9px 17px}.header-tools{gap:6px}.basket-heading>span:nth-child(2){font-size:9px}}
@media(max-width:700px){.awning{height:8px;background-size:56px 100%;background-image:repeating-linear-gradient(90deg,var(--green) 0 28px,#e6e9d9 28px 56px)}.topbar{padding:16px 20px 15px;flex-wrap:wrap;gap:17px;position:relative}.brand{font-size:27px;gap:10px}.brand-mark{width:42px;height:43px;line-height:38px;font-size:31px;padding-left:7px}.brand-mark span{font-size:18px;right:5px}.brand small{font-size:8px;letter-spacing:1.8px;margin-top:5px}.header-tools{gap:7px}.icon-button{width:34px;height:34px}.header-tools .icon-button:last-child{display:none}.mode-switch{order:3;width:100%;padding:4px;gap:4px}.mode-switch button{flex:1;justify-content:center;padding:8px 15px;font-size:13px;min-height:37px}.mode-switch button span{font-size:18px}.shop-layout{display:flex;flex-direction:column;padding:20px 17px 15px;gap:0;max-width:540px}.left-rail{order:2;width:100%;padding:0;margin:25px 0 0}.left-rail>h1,.left-rail>.eyebrow,.intro,.tiny-note,.shop-link{display:none}.delivery-card{padding:17px 0;display:grid;grid-template-columns:1fr 1fr;column-gap:25px}.card-top{grid-column:1}.sun-symbol{font-size:21px}.delivery-number{grid-column:1;grid-row:2/4;margin:4px 0 0}.delivery-number>span:first-child{font-size:37px}.delivery-number>span:last-child{max-width:none;font-size:12px}.progress-label{grid-column:2;grid-row:2;align-self:center;font-size:11px}.progress-track{grid-column:2;grid-row:3;margin-top:3px}.delivery-card p{grid-column:2;grid-row:1;font-size:10px;margin:0;align-self:center}.game{width:100%}.game-heading{margin:0 2px 16px}.game-heading .eyebrow{font-size:8px;letter-spacing:1.1px}h2{font-size:27px}.pace-badge{font-size:10px;padding:7px 9px}.pace-badge>span{font-size:20px}.cabinet{padding:0 12px;border-radius:13px 13px 9px 9px}.cabinet-header{height:33px;font-size:8px;letter-spacing:1.7px}.cabinet-flower{font-size:15px;right:14px}.shelf-grid{gap:15px 10px;padding-top:10px}.shelf{height:111px}.shelf-items{inset:13px 3px 6px;gap:0}.item{height:85px;padding:5px 0 0;min-width:44px}.item .good{width:95%;height:78px}.backstock{inset:7px 3px auto;height:48px}.backstock .good{width:31px;height:43px;transform:translateX(3px)}.shelf-label{font-size:7px;padding:0 7px;line-height:10px;bottom:-6px}.shelf-stock-number{font-size:7px}.cabinet-base{height:28px;font-size:8px}.cabinet-base>span:first-child{font-size:10px}.basket-wrap{margin-top:24px}.basket-heading{margin-bottom:8px}.basket-heading .eyebrow{font-size:8px;letter-spacing:1.1px}.basket-heading>span:nth-child(2){font-size:9px}.basket{padding:7px;gap:5px;border-radius:10px}.basket-slot{height:49px;border-radius:6px}.basket-slot .good{height:42px;width:90%}.game-actions{margin-top:17px;gap:2px;justify-content:space-between}.game-actions button{padding:4px 3px;gap:6px;min-height:44px}.game-actions button>span:last-child{font-size:11px}.game-actions small{font-size:8px}.action-icon{width:31px;height:31px;font-size:23px}.game-footnote{font-size:9px;margin-top:17px}.right-rail{order:3;width:100%;grid-template-columns:1fr;gap:20px;margin-top:22px}.stock-card{padding:15px}.stock-heading .eyebrow{font-size:10px}.legend-row{font-size:12px;min-height:46px}.legend-row .good{width:32px;height:35px}.stock-key{font-size:10px}.stamp-card{display:none}.footer{padding:18px 0 24px;flex-direction:column;align-items:center;gap:8px;margin:0 20px;font-size:8px}.footer>span:last-child{font-size:10px}.toast{bottom:20px;font-size:12px;width:max-content}.modal-title{font-size:31px}dialog{padding:29px 25px}.game-heading>.icon-button.show{width:28px;height:28px;font-size:17px}.pace-badge.rush{font-size:13px}}
@media(max-width:370px){.shop-layout{padding-inline:12px}.topbar{padding-inline:16px}.shelf{height:101px}.item{height:78px;min-width:40px}.item .good{height:69px}.pace-badge{font-size:9px}h2{font-size:24px}.basket-slot{height:44px}.game-actions button>span:last-child{font-size:10px}.action-icon{width:28px;height:28px}.game-actions small{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.particle,.flying-good{display:none}}body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{animation:none!important;transition:none!important}body.labels .item::after{content:attr(data-short);position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:8px;font-weight:600;background:#fbf1dccc;border-radius:3px;line-height:12px}body.labels .item .good{transform:translateY(-6px);height:calc(100% - 7px)}
[hidden]{display:none!important}
/* Keep the quiet visual hierarchy without making the useful labels tiny. */
.eyebrow,.left-rail>.eyebrow,.card-top .eyebrow,.game-heading .eyebrow,.stock-heading .eyebrow,.stamp-card .eyebrow{font-size:12px;letter-spacing:1.2px}.intro{font-size:16px}.delivery-number>span:last-child{font-size:14px;max-width:110px}.progress-label,.delivery-card p,.shop-link,.text-button,.stamp-card .text-button,.stamp-card p,.stock-card>p,.stock-key,.local-tag,.game-footnote,.basket-heading>span:nth-child(2),.basket-heading>span:last-child,.footer>span:last-child{font-size:12px}.legend-row{font-size:14px;min-height:49px}.legend-row>span:last-child{font-size:12px}.game-actions button>span:last-child{font-size:14px}.game-actions small{font-size:12px}.pace-badge{font-size:12px}.basket-heading .eyebrow{font-size:12px}.game-actions{gap:6px}.game-actions button{padding:5px 4px;gap:9px}.cabinet-base,.cabinet-base>span:first-child{font-size:11px}.stamp-card .eyebrow{font-size:11px}.stock-heading .eyebrow{font-size:11px}.shop-link{line-height:1.6}.footer{font-size:10px}.shelf-stock-number{font-size:10px}.stock-key{line-height:1.6}.game-heading .eyebrow{font-size:10px}.left-rail>.eyebrow{font-size:10px}.card-top .eyebrow{font-size:10px}
@media(max-width:1180px) and (min-width:981px){.legend-row{font-size:12px}.game-actions small{font-size:10px}.game-actions button>span:last-child{font-size:13px}.stock-heading .eyebrow{font-size:10px}.stock-key{font-size:10px}.pace-badge{font-size:10px}.game-actions button{gap:5px}.left-rail>.eyebrow{font-size:9px}.delivery-card p{font-size:11px}}
@media(max-width:700px){.header-tools .icon-button:last-child{display:inline-flex}.header-tools{gap:5px}.topbar{padding:14px 16px}.brand{font-size:25px}.brand small{font-size:8px}.brand-mark{width:39px;height:41px}.header-tools .icon-button{width:32px;height:32px}.game-heading{gap:7px}h2{font-size:25px}.game-heading .eyebrow{font-size:9px}.pace-badge{font-size:10px;padding:7px 9px}.basket-heading{flex-wrap:wrap;gap:5px}.basket-heading .eyebrow{font-size:11px}.basket-heading>span:nth-child(2){order:3;width:100%;font-size:12px}.basket-heading>span:last-child{font-size:12px}.game-actions button{gap:5px;flex-direction:column;text-align:center;flex:1}.game-actions button>span:last-child{font-size:13px}.game-actions small{font-size:10px}.game-footnote{font-size:12px;line-height:1.6;margin-top:14px}.delivery-card p{font-size:11px}.progress-label{font-size:12px}.shelf-stock-number{font-size:9px}.legend-row{font-size:14px}.stock-key{font-size:12px}.cabinet-base,.cabinet-base>span:first-child{font-size:9px}.stock-heading .eyebrow{font-size:12px}.stamp-card .eyebrow{font-size:12px}.footer>span:last-child{font-size:11px}.game-actions .action-icon{width:36px;height:36px}.game-actions{margin-top:16px}.basket-slot .good{height:43px}body.labels .item::after{font-size:9px;line-height:13px}.mode-switch button{font-size:14px}.game-heading>.icon-button.show{width:28px;height:28px}.intro{font-size:16px}.game-heading .pace-badge.rush{font-size:12px}}
@media(max-width:370px){.shop-layout{padding-inline:8px}.cabinet{padding-inline:8px}.shelf-grid{column-gap:6px}.shelf-items{left:2px;right:2px}.item{min-width:44px}.brand{font-size:23px}.brand-mark{display:none}.brand small{font-size:7px}.game-heading h2{font-size:23px}.game-heading .eyebrow{font-size:8px}.pace-badge{font-size:9px}.game-actions button>span:last-child{font-size:12px}.game-actions small{font-size:9px}.basket-heading>span:nth-child(2){font-size:11px}}

/* The neighborhood trail, collections, and changing shelves. */
body[data-theme="orchard"]{--green:#805e3b;--wood:#d4b17b}body[data-theme="workshop"]{--green:#75607c;--wood:#c7b6a5}body[data-theme="garden"]{--green:#577750;--wood:#b9c6a1}
.shop-toolbar{display:flex;gap:4px;flex-wrap:wrap;justify-content:space-between;margin:-7px 0 14px}.shop-toolbar button{padding:8px 7px;border-radius:7px;background:transparent;font-size:11px;min-height:36px;color:#6c7e64}.shop-toolbar button:hover{background:#e6ebdc}.specials:empty{display:none}.specials{margin:0 0 12px;display:flex;gap:8px;flex-wrap:wrap}.mechanic-chip{background:#edece1;border:1px solid #dedecb;border-radius:6px;padding:7px 10px;font-size:10px;display:flex;align-items:center;gap:7px}.order-card{display:flex;align-items:center;gap:8px;font-size:11px;flex:1;background:#f3ebd9;border:1px solid #dfd0ad;border-radius:8px;padding:7px 11px;min-width:210px}.order-card .good{width:30px;height:37px}.order-card small{display:block;font-size:9px;color:#8a8169;margin-top:3px}.order-card.done{background:#e5ecdb;border-color:#bfd0ae}.order-card.missed{opacity:.65}.order-card>span:last-child{font-size:16px;margin-left:auto}.shelf.frosted .backstock{filter:blur(5px) saturate(.1);opacity:.4}.shelf.locked .item{opacity:.42}.ribbon{position:absolute;left:-2px;right:-2px;top:46px;z-index:6;background:#779276ef;border:1px solid #5e7c5d;box-shadow:0 2px 5px #382f2222;color:#fff7e2;text-align:center;padding:8px;font-size:10px;letter-spacing:.5px;pointer-events:none}.shelf-feature{position:absolute;left:6px;top:4px;z-index:7;font-size:12px;color:#526d60;background:#f8eed3c9;border-radius:3px;min-width:19px;text-align:center;padding:1px 3px}.shelf.belt-shift .shelf-items{animation:belt-shift .45s ease-out}.good.expansion{mix-blend-mode:multiply}.item .good.expansion{filter:none}.lantern-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;font-size:10px;color:#888c77}.lantern-row button{background:transparent;padding:5px 9px;font-size:11px;border-radius:9px;min-height:32px}.lantern-row button:not(:disabled){background:#ede5cb;color:#826933}.lantern-row button>span:first-child{font-size:17px;margin-right:6px}.shop-layout:has(.shelf-grid.large){grid-template-columns:minmax(150px,1fr) minmax(400px,690px) minmax(160px,1fr);gap:30px}.shelf-grid.large{grid-template-columns:repeat(3,1fr)}body.pantry .play-dock{position:sticky;bottom:0;z-index:12;background:var(--paper);padding:1px 0 12px;border-radius:14px 14px 0 0;box-shadow:0 -10px 20px #f7f4eb77}body.pantry .basket-wrap{margin-top:17px}
#modal.wide{width:min(820px,calc(100% - 32px));max-width:820px}#modal.wide #modal-content{width:100%}.modal-eyebrow{line-height:1.6}.modal-close{z-index:4;background:#f7f4ebee}.modal-copy.compact{margin:12px 0;font-size:13px}.modal-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:10px;margin:18px 0;flex-wrap:wrap}.modal-tabs button{background:transparent;padding:9px 12px;border-radius:7px;font-size:12px}.modal-tabs button.active{background:var(--green);color:#fff8e7}.scene{position:relative;border-radius:13px;overflow:hidden;background:#dfcc9d;margin-bottom:22px}.scene img{width:100%;height:230px;display:block;object-fit:cover;object-position:center 43%}.scene:after{content:'';position:absolute;inset:0;pointer-events:none}.scene[data-decor="rain"]:after{background:repeating-linear-gradient(110deg,transparent 0 17px,#bfd7db35 18px 19px,transparent 20px 55px);animation:rain-drift 2s linear infinite}.scene[data-decor="rain"] img{filter:saturate(.75) brightness(.9)}.scene[data-decor="golden"]:after{background:linear-gradient(115deg,#e4a1343d,transparent 70%)}.scene[data-decor="evening"] img{filter:brightness(.65) saturate(.8)}.scene[data-decor="evening"]:after{background:linear-gradient(90deg,#25366550,#c89c4422)}.scene-label{position:absolute;left:22px;bottom:18px;color:#fff9e8;text-shadow:0 2px 8px #172920;background:#304b38c9;padding:12px 16px;border-radius:7px;z-index:2}.scene-label strong{font-family:var(--serif);display:block;font-size:24px;font-weight:450}.scene-label small{font-size:9px;letter-spacing:1.8px}.trail-overview{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.trail-overview .primary-button{width:auto;margin:0;padding:12px 22px;white-space:nowrap}.trail-overview .modal-title{font-size:30px}.chapter-scroll{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:18px 0}.chapter-button{background:#eeeee2;border:1px solid #dedfcd;min-height:53px;border-radius:8px;font-size:10px;padding:6px 3px}.chapter-button span{display:block;font-size:18px;margin-bottom:3px}.chapter-button.active{background:var(--green);border-color:var(--green);color:#fff8e5}.chapter-heading{display:flex;justify-content:space-between;align-items:center;margin:18px 0 13px;gap:10px}.chapter-heading h3{font-family:var(--serif);font-size:23px;font-weight:450;margin:0}.chapter-heading small{font-size:10px;white-space:nowrap}.level-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:7px}.level-button{border:1px solid #d7ddc7;border-radius:9px;background:#eeeee2;min-height:61px;padding:7px 3px;position:relative}.level-button>strong{display:block;font-family:var(--serif);font-size:20px;font-weight:450}.level-button>small{display:block;font-size:10px;letter-spacing:0;color:#c2c4b3;margin-top:3px}.level-button.complete{background:#e0e8d4;border-color:#b2c6a0}.level-button.complete small{color:#8e733c}.level-button.current{outline:2px solid var(--green);outline-offset:1px}.level-button.milestone{border-style:dashed}.trail-jump{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:17px;font-size:11px;color:var(--muted)}.trail-jump label{display:flex;gap:7px;align-items:center}.trail-jump input{width:65px;padding:8px;border:1px solid var(--line);border-radius:5px;background:#fffcf3;color:var(--ink);font:inherit}.trail-jump button{padding:8px 12px;border-radius:6px;background:#e1e8d5;font-size:12px}.collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.collection-card{border:1px solid #dcdfcb;border-radius:10px;background:#f0f0e3;text-align:center;padding:15px 10px 10px;position:relative}.collection-card .good{width:75px;height:86px}.collection-card h3{font-size:12px;font-weight:600;margin:8px 0 3px}.collection-card p{font-size:10px;color:var(--muted);line-height:1.5;min-height:30px;margin:6px 0}.collection-card small{font-size:10px;color:#8e805c}.collection-card.unseen .good{filter:grayscale(.8);opacity:.45}.collection-card button{font-size:10px;min-height:32px;padding:5px 8px;background:transparent;border-radius:5px;margin-top:7px}.collection-card button.selected{background:#dbe5ce}.collection-card.gold{border-color:#bda360;background:#f4ecd4}.collection-card.silver{border-color:#b0b8a5}.collection-progress{height:3px;background:#dce1ce;border-radius:4px;overflow:hidden;margin-top:9px}.collection-progress span{display:block;height:100%;background:#99ae7d}.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.badge-card{border:1px dashed #d2d9c2;border-radius:10px;padding:16px;background:#f1f1e5}.badge-card.earned{border:1px solid #afc398;background:#e8eedd}.badge-icon{font-size:30px;display:block;color:#a4b094;margin-bottom:8px}.badge-card.earned .badge-icon{color:#6c8554}.badge-card strong{font-size:12px}.badge-card p{font-size:11px;color:#808873;line-height:1.5;min-height:33px}.badge-card small{font-size:10px;color:#89917d}.favorites-shelf{display:flex;justify-content:center;gap:18px;padding:12px 10px;border-bottom:10px solid #c5a072;background:linear-gradient(transparent,#ebe3ce);margin:0 0 24px;border-radius:3px}.favorites-shelf .good{height:77px;width:70px}.decor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.decor-choice{background:#eeeeE1;border:1px solid #d4dbc5;border-radius:8px;text-align:center;padding:13px 8px}.decor-choice.selected{border:2px solid var(--green)}.decor-choice span{display:block;font-size:25px;margin-bottom:7px}.decor-choice strong{font-size:11px;display:block}.decor-choice small{font-size:9px;display:block;color:#7d8772;margin-top:5px}.select-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.select-row small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.select-row select{font:inherit;font-size:12px;border:1px solid #cbd3bf;background:#f2f4e9;color:var(--ink);border-radius:7px;padding:9px;max-width:150px}.select-row input[type=range]{width:130px;accent-color:var(--green)}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.theme-option{margin:0!important;padding:12px!important}.theme-option small{font-size:9px!important;line-height:1.4}.theme-option .swatch{width:28px;height:28px;flex-shrink:0}.button-pair{display:flex;gap:8px}.button-pair>*{flex:1}.button-pair .secondary-button{font-size:12px}.star-display{font-size:36px;letter-spacing:7px;color:#b79a50;margin:5px 0 15px}.star-display .dim{color:#dedfcf}.star-rules{text-align:left;background:#eeeee0;border-radius:9px;padding:12px 15px;margin:16px 0;color:#768165;font-size:11px;line-height:1.9}.earned-note{background:#e7eddc;border-radius:8px;padding:10px 13px;margin:10px 0;font-size:12px;line-height:1.8}.flow-note{text-align:center;margin:13px 0 0;font-size:11px;color:var(--muted)}.pantry-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.pantry-choice{background:#e8edda;border:1px solid #c9d5b6;border-radius:12px;padding:22px 14px}.pantry-choice strong{display:block;font-family:var(--serif);font-size:36px;font-weight:450}.pantry-choice small{display:block;font-size:11px;line-height:1.7;color:#76846b;margin-top:7px}.modal-title+.modal-tabs{margin-top:20px}.journal-stats{margin:22px 0}.backup-warning{background:#f3e7d5;border-radius:8px;padding:13px;font-size:12px;line-height:1.6}.reduce-motion .scene:after{animation:none}.mode-switch button{padding:10px 18px}
@keyframes belt-shift{from{transform:translateX(-16px);opacity:.6}to{transform:translateX(0);opacity:1}}@keyframes rain-drift{from{background-position:0 0}to{background-position:-50px 120px}}
@media(max-width:1150px){.shop-layout:has(.shelf-grid.large){grid-template-columns:180px minmax(0,640px);gap:28px}.shelf-grid.large{grid-template-columns:1fr 1fr}.mode-switch button{padding:10px 13px}.shop-toolbar button{font-size:10px}.right-rail{padding-top:0}}
@media(max-width:760px){.shop-layout:has(.shelf-grid.large){display:block;padding:22px 18px}.mode-switch button{padding:9px 12px;font-size:12px;gap:6px;flex:1;justify-content:center}.mode-switch{width:100%}.shop-toolbar{gap:0;margin-bottom:10px}.shop-toolbar button{font-size:10px;padding:6px 4px;min-height:36px}.specials{margin-bottom:10px}.order-card{min-width:0;flex-basis:100%}.shelf-grid.large{grid-template-columns:1fr 1fr}body.pantry .play-dock{padding:1px 0 8px}body.pantry .basket-wrap{margin-top:10px}body.pantry .game-actions{margin-top:8px}body.pantry .lantern-row{margin-top:5px}body.pantry .basket-slot{height:43px}body.pantry .basket-slot .good{height:39px}.lantern-row{margin-top:10px}.lantern-row button{font-size:10px}.lantern-row>span{font-size:9px}.chapter-scroll{grid-template-columns:repeat(6,1fr)}.level-grid{grid-template-columns:repeat(5,1fr);gap:7px}.level-button{min-height:59px}.trail-overview{display:block}.trail-overview .primary-button{margin-top:14px;width:100%}.scene img{height:190px}.scene-label{left:12px;bottom:12px;padding:9px 12px}.scene-label strong{font-size:22px}.collection-grid{grid-template-columns:repeat(3,1fr);gap:7px}.collection-card{padding:12px 6px 8px}.collection-card .good{width:61px;height:74px}.collection-card p{display:none}.collection-card h3{font-size:10px}.badge-grid{grid-template-columns:1fr 1fr}.badge-card{padding:12px}.badge-card p{font-size:10px}.decor-grid{grid-template-columns:1fr 1fr}.chapter-heading{align-items:start}.chapter-heading h3{font-size:21px}.chapter-heading small{font-size:9px;padding-top:5px}.trail-jump{flex-wrap:wrap}.theme-options{grid-template-columns:1fr 1fr}.theme-option{padding:9px!important;gap:8px!important}.theme-option>span:last-child{font-size:10px}.theme-option small{display:none!important}.modal-tabs{gap:3px}.modal-tabs button{font-size:11px;padding:8px 10px}.scene{margin-top:8px}#modal.wide{width:calc(100% - 20px)}.ribbon{font-size:9px;padding:8px 3px}}
@media(max-width:360px){.shop-toolbar button{font-size:9px}.mode-switch button{padding:9px 8px}.mode-switch button span{font-size:15px}.collection-grid{grid-template-columns:repeat(2,1fr)}.chapter-button{font-size:9px}.select-row select{max-width:128px}.chapter-heading{display:block}.chapter-heading small{display:block;margin-top:5px}}
/* Blend the white-matte expansion atlas at the shelf group, where the wood is the backdrop. */
.shelf-items:has(.good.expansion){mix-blend-mode:multiply}
.shop-toolbar button,.mechanic-chip{min-height:44px}
/* A scrollable cabinet keeps the large Pantry and its basket together. */
body.pantry .shelf-grid{max-height:clamp(300px,51svh,640px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a8875a #d6bc8d;padding:12px 4px 13px}
body.pantry .play-dock{position:static;box-shadow:none;padding-bottom:0}
body.pantry .cabinet-base>span:first-child{font-family:var(--sans);font-size:10px}
@media(max-width:760px){.shop-layout:has(.shelf-grid.large){display:flex;flex-direction:column;padding:20px 17px 15px;gap:0}body.pantry .shelf-grid{max-height:clamp(260px,39svh,390px)}body.pantry .game-actions button{flex-direction:row;gap:7px}body.pantry .game-actions small{display:none}body.pantry .lantern-row{margin-top:6px}body.pantry .basket-heading>span:nth-child(2){font-size:10px}body.pantry .basket-heading{margin-bottom:6px}body.pantry .play-dock{padding:0}body.pantry .game-footnote{font-size:10px}body.pantry .game-actions{margin-top:10px}.modal-tabs button,.decor-choice,.theme-option,.collection-card button{min-height:44px}}
@media(max-width:370px){.shop-layout:has(.shelf-grid.large){padding-inline:8px}}
.game-utilities{display:flex;justify-content:center;gap:23px;margin-top:14px}.game-utilities button{background:transparent;font-size:10px;color:#849078;padding:8px 4px;min-height:40px}.game-utilities button:hover{color:var(--green);text-decoration:underline;text-underline-offset:4px}.focus-exit{display:none}.focus-mode .topbar,.focus-mode .awning,.focus-mode .left-rail,.focus-mode .right-rail,.focus-mode .footer{display:none}.focus-mode .shop-layout,.focus-mode .shop-layout:has(.shelf-grid.large){display:block;max-width:730px;padding:52px 24px 20px}.focus-mode .shop-toolbar,.focus-mode .game-utilities{display:none}.focus-mode .focus-exit{display:block;position:fixed;right:14px;top:10px;z-index:15;background:#e8edde;padding:10px 15px;border-radius:30px;font-size:11px;min-height:36px}.focus-mode.pantry .shelf-grid{max-height:clamp(300px,56svh,640px)}.install-reference{display:block;font-size:11px;text-align:center;text-decoration:underline;margin-top:16px;color:#7e8c70}.mode-switch button:focus-visible{outline-offset:2px}
@media(max-width:700px){body.pantry .shelf-grid{max-height:clamp(240px,32svh,360px)}.focus-mode .shop-layout,.focus-mode .shop-layout:has(.shelf-grid.large){padding:52px 12px 16px}.focus-mode.pantry .shelf-grid{max-height:clamp(290px,50svh,490px)}.focus-mode .game-heading{margin-bottom:12px}.game-utilities{margin-top:7px;gap:19px}.game-utilities button{font-size:11px}}
.backup-text{display:block;width:100%;max-height:200px;font:11px/1.5 ui-monospace,monospace;border:1px solid #cbd4bf;border-radius:8px;padding:13px;background:#faf9f0;color:#607052;resize:vertical;margin:18px 0}.backup-text:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* Shelf puzzles keep all the working space inside the cabinet. */
.puzzle-status{display:none}.shelf-puzzle .puzzle-status{display:block;margin:8px 0 15px}.shelf-puzzle .basket-wrap,.shelf-puzzle .lantern-row{display:none}.shelf-puzzle .shop-layout{padding-top:25px}.shelf-puzzle .left-rail{padding-top:15px}.puzzle-stats{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px;font-size:14px;color:var(--muted)}.puzzle-stats strong{font-size:21px;font-weight:600;color:var(--green)}.puzzle-stats .space-tight,.puzzle-stats .space-tight strong{color:#a34932}.puzzle-instruction{margin:8px 0 0;min-height:2.7em;font-size:14px;line-height:1.4;color:var(--green)}.puzzle-lock-note{font-size:13px;line-height:1.5;color:var(--green)}.shelf-puzzle .specials{gap:8px;align-items:center}.shelf-puzzle .mechanic-chip{font-size:12px;min-height:30px}.shelf-puzzle .shelf-grid{gap:25px 14px;padding-bottom:19px}.shelf-puzzle .shelf{height:122px}.shelf-puzzle .shelf-items{bottom:9px}.shelf-puzzle .item{min-height:70px}.shelf-puzzle .item.open-slot{background:transparent;cursor:pointer;opacity:1}.slot-mark{display:grid;place-items:center;width:75%;height:60%;min-height:43px;margin:auto auto 5px;border:1.5px dashed #98754888;border-radius:9px;font-size:23px;color:#87643f70;transition:background .16s,border-color .16s}.item.can-place .slot-mark{background:#ecf2dc85;border-color:#496743;color:#496743}.item.selected-good{background:#fff7d28c;box-shadow:inset 0 0 0 2px #496743;border-radius:10px;transform:translateY(-5px)}.item.hint-destination .slot-mark{border:3px solid #355b4c;background:#edf2cc}.place-here{position:absolute;bottom:9px;left:0;right:0;font-size:12px;font-weight:700;color:#23432f}.stock-preview-button{pointer-events:auto;bottom:-16px;font-size:12px;line-height:24px;min-height:25px;padding:0 10px;border-radius:4px;cursor:pointer;z-index:5;white-space:nowrap;letter-spacing:0}.stock-preview-button:hover{background:#fff8e7;color:var(--green)}.shelf-key{position:absolute;left:3px;right:3px;top:35px;z-index:6;display:flex;align-items:center;justify-content:center;gap:8px;min-height:63px;background:#466347f0;color:#fffbea;border:1px solid #315338;border-radius:6px;box-shadow:0 2px 5px #0002;text-align:left;font-size:12px;line-height:1.3;cursor:pointer}.shelf-key>.good{width:35px;height:43px}.shelf-key b{font-size:14px}.shelf-key>span:last-child{font-size:21px}.shelf-cleared{animation:shelf-clear .5s ease-out}.shelf-puzzle .game-actions{margin-top:14px;gap:14px}.shelf-puzzle .game-actions button{flex:1}.shelf-puzzle .game-footnote{font-size:13px;line-height:1.5}.stock-preview>div{display:grid;grid-template-columns:43px repeat(3,1fr);align-items:center;gap:9px;background:#e3cba8;margin-bottom:9px;padding:14px 9px;border-radius:8px}.stock-preview>div>span{font-size:12px;text-align:center}.stock-preview .good{display:block;width:100%;height:66px}.stock-preview small{display:block;font-size:12px;margin-top:4px}.preview-hole{color:#756b58}.other-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.other-mode-grid .secondary-button{margin:0}.other-mode-grid small{display:block;font-size:12px;line-height:1.5;margin-top:7px;font-weight:400}.shelf-puzzle .level-button small{font-size:12px}.shelf-puzzle .level-button{min-height:76px}.shelf-puzzle .shelf-items:has(.selected-good){mix-blend-mode:normal}
@keyframes shelf-clear{0%{box-shadow:inset 0 0 0 3px #fff5ad,0 0 24px #e0b863}100%{box-shadow:inset 0 2px 8px #7b50282e}}
@media(max-width:700px){.mode-switch button{padding:8px 5px;gap:5px;min-width:0}.shelf-puzzle .shop-layout{padding-top:15px}.shelf-puzzle .game-heading{margin-bottom:8px}.shelf-puzzle .shelf-grid{gap:24px 10px}.shelf-puzzle .shelf{height:105px}.shelf-puzzle .item{min-height:70px}.shelf-puzzle .item .good{height:74px}.puzzle-stats{gap:6px;font-size:13px;padding-top:9px}.puzzle-stats strong{font-size:20px}.puzzle-instruction{font-size:14px;min-height:3em}.shelf-puzzle .puzzle-status{margin-bottom:6px}.stock-preview-button{font-size:12px;padding:0 6px;bottom:-17px;line-height:25px}.shelf-key{top:28px;gap:5px}.shelf-key>.good{width:25px;height:35px}.shelf-key b{font-size:13px}.shelf-key>span:last-child{font-size:17px}.shelf-puzzle .left-rail{margin-top:15px}.shelf-puzzle .game-actions{gap:3px}.slot-mark{width:82%;margin-bottom:4px}.other-mode-grid{grid-template-columns:1fr}.shelf-puzzle .shelf-stock-number{font-size:11px}.shelf-puzzle .shop-toolbar{gap:5px}.shelf-puzzle .shop-toolbar button{font-size:12px;padding:8px 4px;min-height:38px}.puzzle-lock-note{font-size:12px}}
@media(prefers-reduced-motion:reduce){.shelf-cleared{animation:none}.item.selected-good{transform:none}.slot-mark{transition:none}}.reduce-motion .shelf-cleared{animation:none}.reduce-motion .item.selected-good{transform:none}
/* Keep the whole working board together on laptop screens. */
@media(min-width:701px){.shelf-puzzle .topbar{padding-top:14px;padding-bottom:14px}.shelf-puzzle .shop-layout{padding-top:17px;grid-template-columns:minmax(150px,1fr) minmax(420px,720px) minmax(160px,1fr);gap:28px}.shelf-puzzle .game-heading{margin-bottom:8px;height:auto}.shelf-puzzle .game-heading h2{font-size:28px}.shelf-puzzle .shop-toolbar{margin:0 0 6px}.shelf-puzzle .shop-toolbar button{min-height:36px}.shelf-puzzle .specials{margin-bottom:4px}.shelf-puzzle .puzzle-status{margin:4px 0 10px}.shelf-puzzle .puzzle-instruction{min-height:0;font-size:13px;line-height:1.4}.shelf-puzzle .puzzle-stats{padding-top:7px}.shelf-puzzle .shelf-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 11px}.shelf-puzzle .shelf{height:107px}.shelf-puzzle .item{height:86px}.shelf-puzzle .item .good{height:78px}.shelf-puzzle .cabinet-header{height:30px}.shelf-puzzle .cabinet-base{height:26px}.shelf-puzzle .shelf-key{gap:4px;left:1px;right:1px;top:30px}.shelf-puzzle .shelf-key>.good{width:25px;height:33px}.shelf-puzzle .shelf-key b{font-size:13px}.shelf-puzzle .shelf-key>span:last-child{font-size:16px}.shelf-puzzle .backstock .good{width:32px;height:44px}.shelf-puzzle .game-actions{margin-top:8px}.shelf-puzzle .game-footnote{margin:8px 0}.shelf-puzzle .stock-card{padding:16px 12px}}
@media(min-width:701px) and (max-width:1000px){.shelf-puzzle .shop-layout{grid-template-columns:minmax(0,1fr) 170px}.shelf-puzzle .left-rail{display:none}.shelf-puzzle .right-rail{display:grid}}
@media(max-width:700px){.shelf-puzzle .game-heading h2{font-size:25px}.shelf-puzzle .puzzle-instruction{min-height:2.8em}.shelf-puzzle .shelf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.shelf-puzzle .item[data-type]{touch-action:none}.dragging-good{position:fixed;pointer-events:none;z-index:100;opacity:.88;transform:scale(1.07);filter:drop-shadow(0 6px 5px #0003)}.dragging-good .good{width:100%;height:100%}.drop-target .slot-mark{background:#f2f6bd;border:3px solid #365c43}
/* Long good names must wrap inside the phone legend rather than widen the page. */
.right-rail,.stock-card,#legend,.legend-row{min-width:0}.legend-row>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.legend-row>span:last-child{flex-shrink:0}
@media(max-width:700px){#legend{grid-template-columns:repeat(2,minmax(0,1fr))}.legend-row{gap:6px;font-size:12px}.right-rail{width:100%}}

@media(max-width:360px){.level-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.chapter-scroll{grid-template-columns:repeat(3,minmax(0,1fr))}}
