:root{color-scheme:light;--ink:#263e35;--green:#21745a;--cream:#fff8df}
*{box-sizing:border-box}body{margin:0;min-width:340px;background:radial-gradient(circle at 10% 10%,#fff9e7,transparent 42%),radial-gradient(circle at 94% 80%,#f9dfa4,transparent 44%),#f7edca;color:var(--ink);font-family:ui-rounded,"SF Pro Rounded",system-ui,sans-serif}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #9a3ca0;outline-offset:3px}h1,h2,p{margin:0}
.game-shell{max-width:1256px;margin:auto;padding:16px 26px 12px}.topbar{height:62px;margin-bottom:16px}.brand{display:flex;align-items:center;gap:12px}.brand-icon{display:grid;place-items:center;width:52px;height:52px;background:#ed6848;border-radius:17px;color:#fff2c7;font-size:47px;line-height:1;transform:rotate(-7deg)}.eyebrow{font-size:10px;font-weight:850;letter-spacing:1.65px;text-transform:uppercase;color:#5a7560}h1{font-size:30px;letter-spacing:-1.2px;line-height:1.15}
.trip-progress{display:flex;align-items:center;gap:12px;background:#fff9e6;border:1px solid #dedabc;padding:9px 15px;border-radius:15px}.trip-progress strong{display:block;font-size:14px}.trip-progress span:not(.bag-icon){font-size:10px;color:#617262}.bag-icon{width:32px;height:36px;display:grid;place-items:center;background:#318667;border-radius:5px 5px 9px 9px;color:#fff8d5;font-weight:900;font-size:20px;position:relative}.bag-icon:before{content:"";position:absolute;width:12px;height:9px;border:2px solid #318667;border-radius:8px 8px 0 0;top:-7px}.trip-dots{display:grid;grid-template-columns:repeat(6,5px);gap:4px;margin-left:8px}.trip-dots i{width:5px;height:10px;border-radius:3px;background:#dfdfc4}.trip-dots i.paid{background:#308267}
.market-layout{display:grid;grid-template-columns:minmax(0,1fr) 367px;gap:22px;align-items:start}.market{border:1px solid #d6c49c;box-shadow:0 9px 0 #d9c7a44d;border-radius:24px;overflow:hidden;background:#fff4d5;position:relative}.market-sign{height:76px;background:#27775c;display:flex;justify-content:center;align-items:center;gap:21px;color:#fff5ca;text-align:center;border-bottom:4px solid #145943}.market-sign p{font-size:9px;letter-spacing:2px;font-weight:800;margin-bottom:3px}.market-sign h2{font-size:31px;letter-spacing:-1px;font-weight:900}.little-star{font-size:36px;color:#ffd677}.open-tag{font-size:9px;line-height:1.25;padding:9px 7px;background:#ffe5a2;color:#356146;transform:rotate(9deg);border-radius:4px;border:1px dashed #7b9660}.open-tag b{font-size:13px}.awning{height:23px;background:repeating-linear-gradient(90deg,#e86347 0px,#e86347 43px,#fff4d8 43px,#fff4d8 86px);mask:radial-gradient(circle at 50% 0,#000 70%,transparent 72%) 0 0/43px 43px;position:relative;z-index:1}
.shelf-heading{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:10px;color:#78734f}.shelf-heading>span:first-child{font-size:12px;color:#365740;font-weight:800}.shelf-heading b,.checkout-heading b{display:inline-grid;place-items:center;border-radius:50%;width:20px;height:20px;background:#f8ce65;font-size:11px;margin-right:6px}.item-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px;padding:6px 23px 15px;background:repeating-linear-gradient(0deg,transparent 0,transparent 112px,#eed2a3 112px,#eed2a3 123px);background-position:0 -7px}.grocery-item{border:2px solid transparent;border-radius:15px;background:transparent;min-width:0;height:113px;position:relative;padding:0 4px 7px;transition:background .15s,transform .15s,border-color .15s;display:flex;align-items:center;flex-direction:column}.grocery-item:hover{background:#fffbee;transform:translateY(-2px)}.grocery-item.is-selected{background:#fffdf0;border-color:#e89943;box-shadow:0 4px 0 #d8ad7133}.item-art{height:72px;width:92px;display:block;overflow:visible;flex-shrink:0}.item-line{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px 7px;width:100%}.item-name{font-size:11px;font-weight:800}.price-tag{font-size:13px;background:#fffef4;border:1px solid #d8c6a2;border-radius:5px;padding:3px 6px;line-height:1}.is-selected .price-tag{background:#f4bd51;border-color:#e4a33c}.checkmark{position:absolute;right:3px;top:3px;width:23px;height:23px;display:none;place-items:center;background:#26795a;color:#fff;border:2px solid #fff8de;border-radius:50%;font-size:13px;font-weight:900;z-index:2}.is-paid .checkmark{display:grid}.is-paid .item-art{opacity:.62}.is-paid .price-tag{background:#d8ebbd;color:#236044;border-color:#bdd494}
.market-footer{height:61px;border-top:1px solid #d8be88;display:flex;align-items:center;gap:12px;padding:0 24px;background:#f6dda9}.basket-drawing{height:58px;width:58px;flex-shrink:0}.basket-drawing svg{width:100%;height:100%}.market-footer strong{font-size:13px}.market-footer p{font-size:11px;color:#65714d;margin-top:3px}.market-stamp{margin-left:auto;font-size:8px;line-height:1.1;letter-spacing:1px;font-weight:900;color:#807848;border:1px solid #9e955e;border-radius:50%;height:44px;width:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-13deg)}
.cashier-row{height:85px;display:flex;position:relative;align-items:center;padding-left:123px}.cashier-art{position:absolute;bottom:-8px;left:-1px;width:118px;height:110px;z-index:2}.cashier-art svg{width:100%;height:100%}.cashier-bubble{background:#fff9e5;border:1px solid #e1d3ad;border-radius:15px 15px 15px 2px;padding:11px 14px;transform:rotate(2deg)}.cashier-bubble span{font-size:8px;letter-spacing:1.2px;color:#7a7958;font-weight:800;display:block;margin-bottom:4px}.cashier-bubble strong{font-size:13px;line-height:1.3;display:block}
.register{position:relative;background:#abcfb3;border:2px solid #83b194;padding:13px 18px 13px;border-radius:23px;box-shadow:0 7px 0 #749d805e,inset 0 3px #d2ead4}.checkout-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.checkout-heading h2{font-size:16px;letter-spacing:-.35px}.checkout-heading b{background:#fdf3d2}.register-light{height:9px;width:9px;background:#f0d45e;box-shadow:0 0 0 3px #8aac8f;border-radius:50%}.register-screen{background:#fffbe2;border:2px solid #739b7b;border-radius:12px;padding:8px 13px;box-shadow:inset 0 3px 0 #d9d7b74d}.target-line{display:flex;align-items:center;justify-content:space-between;padding-bottom:5px;border-bottom:1px dashed #bfc799}.target-line>span:first-child{font-size:13px;font-weight:800}.target-line>span:last-child{font-size:8px;letter-spacing:.5px}.target-line strong{font-size:18px;margin-left:4px;letter-spacing:-.5px}.amount-line{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.amount-line span{font-size:9px;font-weight:800;letter-spacing:1px;color:#657c5e}.amount-line strong{font-variant-numeric:tabular-nums;font-size:34px;letter-spacing:-1.5px;line-height:1.15}.amount-meter{height:6px;border-radius:8px;background:#e5e8c8;overflow:hidden;margin:4px 0}.amount-meter span{height:100%;display:block;background:#398368;transition:width .2s;border-radius:8px}.register-screen p{font-size:12px;text-align:right;font-weight:750;color:#587347;margin-top:4px}.register-screen.overpaid{background:#fff0d8;border-color:#d27b42}.register-screen.overpaid .amount-line strong,.register-screen.overpaid p{color:#a24b2e}.register-screen.matched{background:#e5f3cc;border-color:#338467}
.tray-heading{display:flex;justify-content:space-between;align-items:center;margin-top:7px;margin-bottom:3px}.tray-heading>span{font-size:8px;letter-spacing:1.1px;font-weight:850;color:#42654b}.tray-heading button{font-size:10px;font-weight:750;background:none;border:0;padding:3px}.tray-heading button:disabled{opacity:.4}.money-tray{height:30px;border:1px solid #87b094;border-radius:7px;background:#92bb9e;display:flex;gap:4px;align-items:center;padding:3px 6px;overflow-x:auto;white-space:nowrap;scrollbar-width:thin}.tray-empty{font-size:10px;color:#294d3a;width:100%;text-align:center}.tray-token{display:flex;align-items:center;justify-content:center;border:1px solid #a78341;border-radius:50%;background:#f8d079;font-size:9px;font-weight:850;padding:3px;min-width:23px;height:23px;flex-shrink:0}.tray-token.bill{background:#d3e7b4;border-color:#6b915e;border-radius:3px;min-width:32px}
.money-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:9px 0 11px}.money-button{position:relative;border:0;background:transparent;height:43px;display:grid;place-items:center;padding:0;border-radius:8px;transition:transform .12s}.money-button:hover{transform:translateY(-2px)}.money-button:active{transform:translateY(2px)}.money-button:disabled{opacity:.55}.coin-face{display:grid;place-items:center;border-radius:50%;width:41px;height:41px;background:#f2cc69;border:2px solid #b98935;box-shadow:0 3px 0 #866631,inset 0 0 0 3px #ffe19b,inset 0 0 0 4px #c6a153;font-size:15px;font-weight:850}.money-button:nth-child(1) .coin-face{background:#d88e60;border-color:#a8633b;box-shadow:0 3px 0 #885e3b,inset 0 0 0 3px #f1b992,inset 0 0 0 4px #bf8055}.money-button:nth-child(2) .coin-face,.money-button:nth-child(3) .coin-face{background:#e8e7d8;border-color:#9caa99;box-shadow:0 3px 0 #73816f,inset 0 0 0 3px #ffffed,inset 0 0 0 4px #b5baa4}.bill-face{display:grid;place-items:center;width:100%;height:37px;background:#e5f0bd;border:2px solid #5a8b54;border-radius:5px;box-shadow:0 3px 0 #66885e,inset 0 0 0 2px #d1e6a5;position:relative;font-size:18px;font-weight:900}.bill-face:before,.bill-face:after{content:"✦";position:absolute;font-size:11px;color:#79a05f;top:8px}.bill-face:before{left:5px}.bill-face:after{right:5px}
.register-actions{display:grid;grid-template-columns:1fr 1.7fr;gap:9px}.register-actions button{height:39px;border:1px solid #79936e;border-radius:8px;background:#f7f0d7;font-size:12px;font-weight:800;box-shadow:0 3px 0 #769673}.register-actions #nextButton{background:#236e54;color:#fff6d7;border-color:#215a46;box-shadow:0 3px 0 #1b523f;display:flex;align-items:center;justify-content:space-between;padding:0 14px}.register-actions button:active{transform:translateY(2px);box-shadow:none}.register-actions button:disabled{opacity:.5}.feedback{font-size:11px;font-weight:650;text-align:center;line-height:1.45;color:#537046;min-height:32px;padding:12px 6px 0}.page-footer{display:flex;justify-content:space-between;color:#827d5d;font-size:10px;padding:14px 3px 0}
.market.celebrate .is-selected .item-art{animation:happy-bounce .6s ease}.market.celebrate .is-selected .checkmark{animation:stamp .4s ease}@keyframes happy-bounce{50%{transform:translateY(-8px) rotate(-7deg)}}@keyframes stamp{0%{transform:scale(2);opacity:0}80%{transform:scale(.9)}100%{transform:scale(1);opacity:1}}
dialog{border:0;padding:0;background:transparent;max-width:min(440px,94vw);max-height:94svh;color:var(--ink);overflow:auto}dialog::backdrop{background:#204734a8;backdrop-filter:blur(5px)}.receipt{background:#fff9e4;padding:24px 34px;text-align:center;border-radius:20px;box-shadow:0 14px 0 #133f3926;border-top:9px solid #e76544}.receipt-flower{font-size:51px;color:#df613f;line-height:1}.receipt h2{font-size:29px;letter-spacing:-1px;line-height:1.1;margin:8px 0}.receipt>p:not(.eyebrow){font-size:12px;color:#697354}.receipt-items{display:grid;grid-template-columns:1fr 1fr;gap:7px 20px;margin:20px 0;padding:16px 0;border-top:1px dashed #b9b999;border-bottom:1px dashed #b9b999;text-align:left}.receipt-items div{display:flex;justify-content:space-between;font-size:10px;gap:10px}.receipt-total{display:flex;justify-content:space-between;font-size:14px}.receipt-thanks{letter-spacing:1px;margin:15px 0}.receipt button{width:100%;background:#27775c;color:#fff8de;border:0;border-radius:10px;padding:13px;font-weight:800;display:flex;justify-content:space-between}
@media(min-width:1450px){.game-shell{padding-top:30px}.market-layout{gap:28px}}
@media(min-width:761px) and (max-height:780px){.game-shell{padding-top:14px}.topbar{height:54px;margin-bottom:14px}.cashier-row{height:75px}.cashier-art{height:98px;width:108px}.register{padding-top:10px;padding-bottom:10px}.money-button{height:41px}.money-buttons{margin-bottom:8px}.page-footer{padding-top:12px}}
@media(max-width:1050px){.game-shell{padding:14px}.market-layout{grid-template-columns:minmax(0,1fr) 330px;gap:15px}.item-grid{gap:10px 5px;padding-left:12px;padding-right:12px}.item-art{width:75px}.item-line{gap:3px}.item-name{font-size:10px}.price-tag{font-size:12px}.market-sign h2{font-size:27px}.shelf-heading{padding:0 15px}.shelf-heading>span:last-child{display:none}.cashier-row{padding-left:112px}.cashier-art{width:112px}.cashier-bubble{padding:10px}.cashier-bubble strong{font-size:12px}.register{padding-inline:13px}.trip-dots{display:none}}
@media(max-width:760px){.game-shell{max-width:650px}.topbar{height:auto;min-height:66px}.brand-icon{display:none}h1{font-size:26px}.trip-progress{padding:7px 11px}.market-layout{grid-template-columns:1fr;gap:14px}.market-sign{height:74px}.market-sign h2{font-size:29px}.item-grid{padding:6px 15px 15px;gap:10px}.item-art{width:90px}.item-name{font-size:11px}.checkout{display:flex;flex-direction:column}.cashier-row{width:330px;align-self:center;height:98px}.register{width:100%}.cashier-art{left:4px}.money-button{height:51px}.coin-face{width:46px;height:46px}.bill-face{height:42px}.money-tray{height:35px}.amount-line strong{font-size:37px}.feedback{padding-top:12px;font-size:12px}.page-footer>span:last-child{display:none}.page-footer{justify-content:center}.market-footer{padding:0 16px}.trip-progress>div>span{display:none}}
@media(max-width:700px){.topbar>.trip-progress{display:flex;justify-content:center;gap:10px;padding:8px}.trip-progress .bag-icon{height:23px;width:22px;font-size:13px}.trip-progress .bag-icon:before{width:9px;height:6px;top:-5px}.trip-dots{display:grid}.trip-progress strong{font-size:12px}.game-shell .topbar{row-gap:12px}}
@media(max-width:400px){.item-art{width:70px;height:67px}.item-grid{gap:10px 3px;padding-inline:9px}.item-line{flex-direction:column;gap:4px}.grocery-item{height:115px}.item-name{font-size:10px}.market-sign{gap:10px}.market-sign h2{font-size:25px}.market-footer p{font-size:10px}.market-stamp{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
