@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--green:#203f32;--cream:#f5f0e3;--rust:#b94e30;--ink:#253a30;--muted:#777a68;--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--hand:'Caveat','Segoe Print',cursive;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:14px/1.5 var(--sans);height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,main:focus-visible{outline:3px solid var(--rust);outline-offset:4px}button{color:inherit}button,dialog{border:0}h1,h2,p{margin:0}.skip{position:fixed;top:-100px;left:10px;z-index:10;background:white;padding:10px}.skip:focus{top:8px}[hidden]{display:none!important}
.topbar{height:65px;flex-shrink:0;padding:0 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #203f3220;background:#fbf8ef}.brand{text-decoration:none;font:27px var(--serif);letter-spacing:-1px;display:flex;align-items:center;gap:9px}.brand svg{width:33px;height:33px;fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.brand-dot{font:12px var(--sans);vertical-align:super;margin-left:3px}.top-note{font-size:10px;letter-spacing:2.5px}.back{font-size:11px;text-decoration:none}.back span{font-size:18px;margin-left:14px}
.shopfront{flex-shrink:0;position:relative;background:#dae1c9}.awning{position:absolute;inset:0 0 auto;height:32px;z-index:3;filter:drop-shadow(0 4px 2px #0002);background:repeating-linear-gradient(90deg,#204432 0 42px,#e9e5cb 42px 84px);clip-path:polygon(0 0,100% 0,100% 75%,99% 100%,97% 100%,96% 75%,94% 100%,92% 100%,91% 75%,89% 100%,87% 100%,86% 75%,84% 100%,82% 100%,81% 75%,79% 100%,77% 100%,76% 75%,74% 100%,72% 100%,71% 75%,69% 100%,67% 100%,66% 75%,64% 100%,62% 100%,61% 75%,59% 100%,57% 100%,56% 75%,54% 100%,52% 100%,51% 75%,49% 100%,47% 100%,46% 75%,44% 100%,42% 100%,41% 75%,39% 100%,37% 100%,36% 75%,34% 100%,32% 100%,31% 75%,29% 100%,27% 100%,26% 75%,24% 100%,22% 100%,21% 75%,19% 100%,17% 100%,16% 75%,14% 100%,12% 100%,11% 75%,9% 100%,7% 100%,6% 75%,4% 100%,2% 100%,0 75%)}
.shop-wall{height:280px;display:grid;grid-template-columns:1fr .9fr 1fr;align-items:center;padding:32px 7% 0;gap:4%;background-image:linear-gradient(90deg,#334d2c0a 1px,transparent 1px),linear-gradient(#334d2c07 1px,transparent 1px);background-size:70px 70px;box-shadow:inset 0 -12px 25px #334a2710}.board{position:relative}.welcome .eyebrow{font-size:8px;letter-spacing:1.7px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:600;display:block}.welcome h1{font:clamp(32px,3.4vw,50px)/1.05 var(--serif);letter-spacing:-1.8px;margin:10px 0}.welcome h1 em{color:var(--rust);font-weight:400}.welcome p{font-size:11px;line-height:1.7;color:#53614c}.chalk-sprig{position:absolute;right:8%;top:40%;font-size:50px;color:#85906a;transform:rotate(15deg)}
.keeper-stage{position:relative;align-self:stretch;min-width:0;isolation:isolate}.halo{position:absolute;inset:4% 6% -4%;border-radius:50% 50% 0 0;background:radial-gradient(ellipse at center,#fff6d8aa,#c6d0b33b);border:1px solid #fcf4d344}.keeper-stage canvas,.keeper-stage>svg{position:absolute;bottom:-8px;width:100%;height:105%;z-index:1;pointer-events:none}.keeper-bubble{position:absolute;right:-8%;top:12%;font:18px var(--hand);transform:rotate(6deg);background:#fff9e9;padding:4px 11px;border-radius:9px 9px 9px 0;z-index:2;box-shadow:0 2px 0 #203f3215;white-space:nowrap}.keeper-hint{position:absolute;z-index:2;bottom:3px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:8px;letter-spacing:.3px;color:#fdf6dc;background:#274b3dc9;border-radius:8px;padding:2px 8px}
.special{background:#244536;color:#f0ecd4;border:6px solid #ac8158;outline:1px solid #85603d;box-shadow:inset 0 0 0 1px #e2d4a743,3px 4px 0 #6c704329;max-width:300px;width:100%;justify-self:end;padding:19px 24px 12px;transform:rotate(2deg)}.special .eyebrow{font-size:8px;letter-spacing:2px;color:#c8d4b6}.special strong{display:block;font:29px/1.05 var(--hand);letter-spacing:.5px;margin:9px 0}.special strong em{color:#e5ba7b;font-weight:500}.open-sign{position:absolute;top:-21px;right:10px;background:#f4e9c7;color:var(--rust);border:1px solid #c4b38c;font-size:8px;font-weight:700;letter-spacing:1px;padding:5px 12px;transform:rotate(-7deg);box-shadow:1px 3px 0 #0002}.special-rule{border-top:1px dashed #b7c0a068}.special-bottom{display:flex;justify-content:space-between;align-items:center;font-size:8px;margin-top:6px}.special-bottom span{font-size:20px}
.counter{height:53px;display:flex;justify-content:space-between;align-items:center;padding:0 4%;position:relative;z-index:4;background:linear-gradient(#b0885c 0 4px,#e5c8a0 4px 9px,#eedaaf 9px);border-bottom:5px solid #b1936d;box-shadow:0 5px 12px #3e35171c}.counter-note{font-size:8px;letter-spacing:1.4px;display:flex;align-items:center;gap:9px;padding-top:5px}.status-dot{width:5px;height:5px;background:#43704b;border-radius:50%}.counter-small{color:#6a644c;letter-spacing:.4px}.cart-button{background:var(--green);color:#fff4da;display:flex;align-items:center;gap:13px;padding:12px 21px;border-radius:0 0 12px 12px;align-self:flex-start;margin-top:5px;box-shadow:0 4px 0 #152f24;font-size:11px;min-height:48px;transition:background .2s,transform .2s}.cart-button:hover{background:#315c44;transform:translateY(2px)}.cart-button svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.cart-button b{display:inline-grid;place-items:center;border-radius:50%;background:#e9c475;color:#243e2c;font-size:10px;min-width:19px;height:19px;margin-left:5px}#cart-total{border-left:1px solid #fff3;padding-left:13px;font-weight:600}
main{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:30px 4% 0;scrollbar-color:#a6ae97 #f5f0e3;scrollbar-width:thin;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='5' cy='7' r='.6' fill='%238e8c66' opacity='.12'/%3E%3Ccircle cx='35' cy='29' r='.6' fill='%238e8c66' opacity='.15'/%3E%3C/svg%3E")}.shelf-heading{display:flex;justify-content:space-between;align-items:center}.shelf-heading .eyebrow{font-size:8px;color:#7a7b62}.shelf-heading h2{font:36px/1.2 var(--serif);letter-spacing:-1px;margin-top:3px}.shelf-heading h2 span{color:var(--rust)}.shop-instruction{font:21px var(--hand);color:#85856a;transform:rotate(-3deg)}.shop-instruction span{display:inline-block;font-size:29px;margin-left:10px}.aisle-bar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d9d7c5;padding:16px 0 13px;margin-bottom:13px}.filters{display:flex;gap:6px}.filters button{border:1px solid transparent;background:none;padding:5px 13px;border-radius:20px;font-size:11px;white-space:nowrap}.filters button[aria-pressed=true]{background:var(--green);color:#fff7df}.filters button:hover{border-color:#b7bda6}.stock-note{font-size:9px;color:#858674}
.products{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:27px 22px;padding:4px 0 34px}.product{position:relative;min-width:0;text-align:center}.pick-product{width:100%;border:0;background:none;padding:0;position:relative}.basket-scene{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 7px 5px #54401a12);transition:transform .25s}.product:hover .basket-scene{transform:translateY(-5px) rotate(-1deg)}.pick-product:active .basket-scene{transform:translateY(-9px) rotate(2deg)}.product.sold-out:hover .basket-scene{transform:none}.basket-art{stroke:#795232;stroke-width:1.2;stroke-linejoin:round}.basket-label{font:700 7px var(--sans);letter-spacing:1px}.product .product-name{display:block;font-size:12px;font-weight:600;margin-top:8px}.product .product-unit{display:block;font-size:9px;color:#878371;margin-top:2px}.price-tag{position:relative;display:inline-flex;gap:10px;align-items:center;justify-content:center;background:#eee0ba;border:1px solid #d3bf93;border-radius:2px;min-width:81px;min-height:29px;padding:2px 11px;margin-top:12px;box-shadow:1px 2px 0 #d5c7a82b;transform:rotate(-2deg);font:600 20px var(--hand)}.price-tag:before,.price-tag:after{content:'';position:absolute;top:-12px;width:1px;height:13px;background:#ab9972;left:13px}.price-tag:after{left:auto;right:13px}.price-tag .plus{font:16px var(--sans);color:#725c3d}.info-button{position:absolute;right:5px;top:8px;border-radius:50%;background:#faf8ed;border:1px solid #c7cdb9;width:26px;height:26px;font:italic 15px Georgia;box-shadow:0 2px 5px #00000009;z-index:2}.info-button:before{content:'';position:absolute;inset:-8px}.info-button:hover{background:var(--green);color:var(--cream)}.stock-badge{position:absolute;left:6px;top:10px;font-size:8px;text-transform:uppercase;letter-spacing:.7px;color:var(--rust);z-index:1}.added-count{position:absolute;left:6px;top:8px;font:600 10px var(--sans);padding:3px 8px;background:var(--green);border-radius:12px;color:#fff3d9;z-index:1}.sold-out .price-tag{font:10px var(--sans);color:#938566;padding:7px 11px}.sold-out .product-name{color:#898b7a}.shop-footer{display:flex;gap:15px;justify-content:space-between;border-top:1px solid #d9d7c5;padding:18px 0;font-size:9px;color:#898774}.shop-footer a{text-underline-offset:4px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:12;background:var(--green);color:#fff6df;padding:11px 23px;border-radius:30px;box-shadow:0 6px 20px #0002;font-size:12px;transition:opacity .2s,transform .2s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}.fly-dot{position:fixed;pointer-events:none;width:20px;height:20px;background:#e0af59;border:3px solid #fff1c6;box-shadow:0 2px 6px #0002;border-radius:50%;z-index:15}
dialog{color:var(--ink);background:#e7e9dc;padding:0;border-radius:16px;box-shadow:0 30px 100px #0005;max-height:92dvh;max-width:calc(100vw - 24px)}dialog::backdrop{background:#13251eae;backdrop-filter:blur(6px)}.close{background:none;font:30px/1 var(--sans);width:40px;height:40px;border-radius:50%;flex-shrink:0}.close:hover{background:#203f3210}#checkout{width:850px}.checkout-top{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;border-bottom:1px solid #c7cdb9;font-size:9px;letter-spacing:1.5px}.checkout-layout{display:grid;grid-template-columns:1.15fr 1fr;align-items:start;gap:30px;padding:26px 30px 35px}.receipt{background:#fffcf1;padding:24px 25px 30px;box-shadow:2px 5px 20px #303a2512;position:relative;filter:drop-shadow(0 4px 1px #33402012)}.receipt:after{position:absolute;content:'';height:12px;bottom:-8px;left:0;right:0;background:linear-gradient(135deg,#fffcf1 25%,transparent 25%) -6px 0/12px 12px,linear-gradient(225deg,#fffcf1 25%,transparent 25%) -6px 0/12px 12px}.receipt-star{display:block;text-align:center;color:var(--rust);font-size:25px}.receipt h2{font:30px var(--hand);text-align:center}.receipt-sub{text-align:center;font-size:9px;color:#92917d}.receipt-meta{display:flex;justify-content:space-between;font:9px monospace;margin:22px 0 12px}.receipt-columns{font:8px monospace;display:flex;justify-content:space-between;border-block:1px dashed #bfc2ae;padding:8px 0}.receipt-row{border-bottom:1px dashed #d3d5c3;padding:12px 0;display:grid;grid-template-columns:1fr auto;gap:5px}.receipt-row h3{font:600 23px/1.1 var(--hand);margin:0}.receipt-row small{font-size:9px;color:#898a78;display:block}.line-total{font:600 23px var(--hand);align-self:center}.quantity{display:flex;gap:9px;align-items:center;margin-top:6px;font:13px var(--sans)}.quantity button{background:#f0eddf;border:1px solid #dadcc8;border-radius:5px;width:30px;height:30px}.quantity button:hover{background:#dfe6d1}.receipt-total{display:flex;justify-content:space-between;margin:15px 0 4px;font:700 30px var(--hand)}.receipt-tax{font-size:8px;color:#8c8d79}.receipt-thanks{text-align:center;font:25px var(--hand);margin-top:21px;color:#6b7358}.receipt-foot{font-size:8px;text-align:center;margin-top:5px;color:#92917d}.empty-receipt{font:24px var(--hand);text-align:center;padding:25px 0}.payment{padding-top:10px;text-align:center}.payment>.eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:13px}.terminal{max-width:290px;margin:auto;background:#365746;border-radius:22px 22px 30px 30px;padding:19px 20px 23px;box-shadow:inset 2px 2px 2px #abc8a852,inset -3px -5px 2px #0a2415aa,0 8px 0 #1c3528,0 16px 18px #273b2226}.terminal-top{display:flex;justify-content:space-between;align-items:center;color:#e8ead1;font:italic 17px var(--serif);margin-bottom:12px}.terminal-top i{width:6px;height:6px;background:#b4cf75;border-radius:50%;box-shadow:0 0 7px #b4cf75}.terminal-screen{background:#e1e8c9;border:6px solid #203d2d;border-radius:9px;padding:12px 8px;color:#344a2c;box-shadow:inset 0 2px 6px #1c2c1238;min-height:205px}.screen-label{font:8px monospace;letter-spacing:1.4px;border-bottom:1px solid #9fae8c;display:block;padding-bottom:6px;margin-bottom:11px}.terminal-basket{width:54px;fill:none;stroke:#526a3f;stroke-width:2;stroke-linecap:round}.terminal-screen strong{font-size:12px;display:block;margin:8px 0 3px}.terminal-screen p{font-size:9px;line-height:1.6}.pay-button{background:#eac67b;color:#263d28;border-radius:5px;width:100%;padding:12px 8px;font-weight:700;margin-top:14px;font-size:12px;box-shadow:0 3px 0 #9b814c;display:flex;justify-content:space-around}.pay-button:disabled{background:#9da68b;box-shadow:0 3px 0 #607251;color:#324733}.terminal-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:18px auto 13px;width:65%}.terminal-keypad i{height:7px;border-radius:4px;background:#53735e;box-shadow:0 2px 0 #24402e}.terminal-slot{height:4px;width:75%;margin:auto;border-radius:5px;background:#172d21}.demo-note{font-size:10px;line-height:1.6;color:#79836a;margin:22px 0 12px}.text-button{background:none;font-size:11px;text-decoration:underline;text-underline-offset:4px}.qr-prop{display:block;width:110px;height:110px;margin:3px auto;image-rendering:pixelated}.demo-stamp{font:700 9px monospace;letter-spacing:1px}.success-tick{display:block;font-size:48px;line-height:1.2}.receipt.paid:before{content:'DEMO • PAID';position:absolute;bottom:50px;left:20px;border:3px double #a9472b;color:#a9472b;transform:rotate(-15deg);font:700 18px monospace;padding:7px;opacity:.8}.details-dialog{width:390px;background:#faf6e9;padding:28px}.details-dialog .close{position:absolute;right:8px;top:8px}.details-dialog #detail-art{width:180px;margin:auto}.details-dialog h2{font:30px var(--serif);margin:7px 0 10px}.details-dialog p{font-size:13px;color:#6d7461}.details-dialog .eyebrow{color:var(--rust)}.detail-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:24px}.detail-bottom strong{font:28px var(--hand)}.primary{background:var(--green);color:#fff4d9;padding:12px 18px;border-radius:6px}.primary:disabled{background:#8c927d}.noscript{position:fixed;inset:auto 15px 15px;background:#fff;padding:15px;z-index:20}
@media(min-width:1600px){.shop-wall{height:320px}main{padding-inline:7%}.products{gap:32px}.basket-scene{max-height:220px}}
@media(max-width:900px){.shop-wall{padding-inline:4%;gap:2%}.chalk-sprig{display:none}.special{padding:16px;max-width:235px}.special strong{font-size:25px}.welcome h1{font-size:34px}.products{gap:25px 9px}.product .product-name{font-size:10px}.info-button{right:0;top:0;width:23px;height:23px}.top-note{display:none}}
@media(max-width:600px){.topbar{height:49px;padding-inline:5%}.brand{font-size:23px;gap:6px}.brand svg{width:27px;height:27px}.back{font-size:8px}.back span{margin-left:3px}.awning{height:23px;background-size:64px 100%;background-image:repeating-linear-gradient(90deg,#204432 0 32px,#e9e5cb 32px 64px)}.shop-wall{height:191px;grid-template-columns:1fr 1fr;padding:25px 5% 0;gap:0}.welcome h1{font-size:29px;letter-spacing:-1.1px;margin:8px 0}.welcome .eyebrow{font-size:6px;letter-spacing:1px}.welcome p{font-size:8px;line-height:1.6}.special{display:none}.keeper-stage{margin-left:-12px;margin-right:-8px}.keeper-bubble{font-size:14px;right:0;top:7%}.keeper-hint{font-size:6px;bottom:2px}.counter{height:45px;padding-inline:4%;border-bottom-width:4px}.counter-note{font-size:6px;letter-spacing:.65px;gap:4px}.counter-small{display:none}.cart-button{font-size:10px;padding:9px 11px;gap:6px;min-height:42px}.cart-button svg{width:21px;height:21px}.cart-button b{min-width:16px;height:16px;font-size:9px;margin-left:3px}#cart-total{padding-left:8px}.shelf-heading h2{font-size:30px}.shelf-heading .eyebrow{font-size:6px}.shop-instruction{font-size:14px;max-width:115px;text-align:right;line-height:1.15}.shop-instruction span{font-size:20px;margin-left:3px}main{padding:26px 5% 0}.aisle-bar{padding:14px 0 12px;margin-bottom:15px}.filters{gap:3px;width:100%;justify-content:space-between}.filters button{font-size:10px;padding:5px 9px}.stock-note{display:none}.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}.product .product-name{font-size:12px}.info-button{top:5px;right:4px;width:26px;height:26px}.shop-footer{flex-direction:column;align-items:center;gap:6px;padding:18px 0 25px}.checkout-top{padding:9px 12px;font-size:7px;letter-spacing:.8px}.checkout-layout{grid-template-columns:1fr;padding:17px 20px 27px;gap:25px}.receipt{padding:20px}.payment>.eyebrow{font-size:8px}.terminal{max-width:260px}.details-dialog{padding:25px}.toast{font-size:11px;max-width:94vw;white-space:normal;text-align:center}.terminal-screen{min-height:195px}}
@media(max-height:550px) and (min-width:601px){.topbar{height:40px}.shop-wall{height:145px}.welcome h1{font-size:25px}.welcome p,.special,.keeper-hint{display:none}.shop-wall{grid-template-columns:1fr 1fr 1fr}.counter{height:42px}.cart-button{min-height:36px;padding:5px 14px}.awning{height:20px}main{padding-top:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.product:hover .basket-scene{transform:none}}
/* Rounded canvas valances, aligned with the awning stripes. */
.awning{clip-path:none;height:38px;mask:linear-gradient(#000 0 0) top/100% 20px no-repeat,radial-gradient(ellipse 21px 17px at 50% 0,#000 98%,#0000 100%) 0 20px/42px 18px repeat-x}
@media(max-width:600px){.awning{height:27px;mask:linear-gradient(#000 0 0) top/100% 15px no-repeat,radial-gradient(ellipse 16px 11px at 50% 0,#000 98%,#0000 100%) 0 15px/32px 12px repeat-x}.welcome .eyebrow{font-size:7px;letter-spacing:.5px}.welcome p{font-size:9px}}
