@font-face{font-family:ui;src:url(../media/nunito-s.p.2kjei9psvcorz.woff2)format("woff2");font-display:swap;font-weight:500 900;font-style:normal}@font-face{font-family:ui Fallback;src:local(Arial);ascent-override:103.02%;descent-override:35.97%;line-gap-override:0.0%;size-adjust:98.13%}.ui_b574809f-module__TY92Eq__className{font-family:ui,ui Fallback}.ui_b574809f-module__TY92Eq__variable{--font-ui:"ui", "ui Fallback"}
@font-face{font-family:display;src:url(../media/baloo2-s.p.2zp15__9k16__.woff2)format("woff2");font-display:swap;font-weight:400 800;font-style:normal}@font-face{font-family:display Fallback;src:local(Arial);ascent-override:111.2%;descent-override:54.05%;line-gap-override:0.0%;size-adjust:96.95%}.display_b044bf98-module__v1VzmG__className{font-family:display,display Fallback}.display_b044bf98-module__v1VzmG__variable{--font-display:"display", "display Fallback"}
:root{--ink:#1d2a26;--ink-soft:#1d2a2699;--cream:#fff8e7;--paper:#fffdf6;--mint:#a9e3c6;--mint-deep:#2f7d63;--mint-dark:#1f5a46;--tile:#dff5ea;--wood:#a86b3c;--wood-deep:#7a4a26;--kopi:#5a3a1e;--teh:#e08a3c;--sun:#ffc93c;--red:#d8463c;--good:#3f8f3a;--outline:3px solid var(--ink);--drop:0 4px 0 var(--ink);--radius:16px;--customer-h:clamp(140px, 24vh, 240px);--cup-h:clamp(72px, 13vh, 130px);--zh-sans:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC"}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font-ui), "Segoe UI", system-ui, sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;background:#1f5a46;margin:0;font-size:16px;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button[aria-disabled=true]{cursor:not-allowed}button:focus-visible,[tabindex]:focus-visible{outline:4px solid var(--sun);outline-offset:3px}.sheet:focus,.buttons:focus{outline:none}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;display:block}h1,h2,h3,p,dl,dd,dt{margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.display{font-family:var(--font-display), "Segoe UI", system-ui, sans-serif;letter-spacing:.01em;font-weight:800}.game{isolation:isolate;grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"top""counter""cup""buttons";height:100dvh;min-height:420px;display:grid;position:relative;overflow:hidden auto}.backdrop{z-index:-1;background:#a9e3c6 50% 30%/cover no-repeat;position:absolute;inset:0}.backdrop:after{content:"";background:linear-gradient(#1f5a4659 0,#0000 18% 55%,#fff8e7d9 100%);position:absolute;inset:0}.loading{height:100dvh;color:var(--cream);place-items:center;font-size:24px;display:grid}.topbar{grid-area:top;align-items:center;gap:8px;padding:8px 12px 4px;display:flex}.logo{color:var(--cream);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;text-shadow:0 3px 0 var(--ink);flex:1;align-items:baseline;gap:8px;font-size:clamp(24px,4vw,34px);line-height:1;display:flex}.logo small{font-family:var(--font-ui), sans-serif;color:var(--ink);-webkit-text-stroke:0;text-shadow:none;background:var(--sun);border:2px solid var(--ink);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:13px;font-weight:800}.status{align-items:center;gap:6px;font-size:14px;font-weight:800;display:flex}.status .pill{background:var(--paper);border:2px solid var(--ink);white-space:nowrap;border-radius:999px;padding:3px 10px}.status .pill.score{font-family:var(--font-display), sans-serif;background:var(--sun);font-size:17px}.menu{gap:6px;display:flex}.icon-button{border:2px solid var(--ink);background:var(--paper);width:38px;height:38px;box-shadow:0 3px 0 var(--ink);border-radius:12px;place-items:center;padding:0;font-size:15px;font-weight:800;display:grid}.icon-button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.icon-button[aria-pressed=false]{opacity:.7}.icon-button svg{width:22px;height:22px}.counter{grid-area:counter;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:10px;min-height:0;padding:4px 14px 0;display:grid;position:relative}.customer{height:var(--customer-h);width:calc(var(--customer-h) * .62);justify-content:center;align-items:flex-end;display:flex;position:relative}.customer img{object-fit:contain;filter:drop-shadow(0 4px #1d2a2659);width:auto;max-width:100%;height:100%}.customer[data-mood=back] img{animation:.5s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)rotate(-2deg)}75%{transform:translate(8px)rotate(2deg)}}.customer[data-mood=happy] img{animation:.5s hop}@keyframes hop{0%,to{transform:translateY(0)}40%{transform:translateY(-14px)}}.customer-empty{height:var(--customer-h);width:calc(var(--customer-h) * .62)}.bubble-zone{align-self:center;gap:8px;padding-bottom:10px;display:grid}.bubble{background:var(--paper);border:var(--outline);box-shadow:var(--drop);border-radius:18px;padding:10px 14px;position:relative}.bubble:before{content:"";background:var(--paper);border-left:var(--outline);border-bottom:var(--outline);border-bottom-left-radius:4px;width:18px;height:18px;position:absolute;top:50%;left:-14px;transform:translateY(-50%)rotate(45deg)}.bubble .name{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:800}.bubble .order{color:var(--mint-dark);overflow-wrap:anywhere;font-size:clamp(22px,5.2vw,34px);line-height:1.05}.bubble .line{color:var(--ink);margin-top:4px;font-size:14px;font-weight:600}.bubble[data-kind=back] .order,.bubble[data-kind=leave] .order,.bubble[data-kind=bye] .order{color:var(--red)}.bubble[data-kind=happy] .order{color:var(--good)}.patience{border:2px solid var(--ink);background:var(--paper);border-radius:999px;height:14px;overflow:hidden}.patience-fill{height:100%;width:calc(var(--p,1) * 100%);background:color-mix(in oklab, var(--red) calc((1 - var(--p,1)) * 100%), var(--good));transition:width .2s linear;display:block}.patience[data-frozen=true] .patience-fill{background:repeating-linear-gradient(45deg, var(--mint-deep) 0 6px, var(--mint) 6px 12px)}.cup-zone{background:var(--wood);border:var(--outline);border-radius:var(--radius);box-shadow:var(--drop);color:var(--cream);grid-area:cup;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin:0 10px;padding:6px 14px;display:grid}.cup-art{height:var(--cup-h);width:calc(var(--cup-h) * 1.15);justify-content:center;align-items:flex-end;display:flex;position:relative}.cup-art img.vessel{object-fit:contain;filter:drop-shadow(0 3px #1d2a2680);width:auto;max-width:100%;height:100%}.cup-art[data-vessel=empty] img.vessel{opacity:.85}.cup-chips{flex-wrap:wrap;justify-content:flex-end;gap:2px;max-width:70%;display:flex;position:absolute;top:-6px;right:-6px}.cup-chips img{object-fit:contain;background:var(--paper);border:2px solid var(--ink);border-radius:50%;width:26px;height:26px;padding:2px}.cup-text{min-width:0}.cup-words{color:var(--cream);-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;text-shadow:0 2px 0 var(--ink);overflow-wrap:anywhere;font-size:clamp(20px,4.6vw,30px);line-height:1.05}.cup-words[data-empty=true]{font-family:var(--font-ui), sans-serif;-webkit-text-stroke:0;text-shadow:none;color:var(--cream);opacity:.9;font-size:15px;font-weight:700}.cup-meaning{color:var(--cream);opacity:.9;font-size:13px;font-weight:700}.note{color:var(--sun);font-size:13px;font-weight:800}.buttons{padding:8px 10px calc(10px + env(safe-area-inset-bottom));grid-area:buttons;gap:6px;display:grid}.group{grid-template-columns:58px minmax(0,1fr);align-items:center;gap:6px;display:grid}.group-label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink);font-size:12px;font-weight:800}.group-buttons{flex-wrap:wrap;gap:6px;display:flex}.word{border:var(--outline);background:var(--paper);min-height:42px;box-shadow:var(--drop);text-align:left;border-radius:14px;align-items:center;gap:6px;padding:4px 10px 4px 6px;line-height:1.05;display:inline-flex}.word:active{box-shadow:0 2px 0 var(--ink);transform:translateY(2px)}.word img{object-fit:contain;flex:none;width:28px;height:28px}.word .word-name{font-size:17px}.word .word-meaning{color:var(--ink-soft);font-size:11px;font-weight:700;display:block}.word[aria-pressed=true]{background:var(--sun)}.word[aria-disabled=true]{opacity:.45;box-shadow:none;transform:translateY(2px)}.word[data-new=true]:after{content:"";position:absolute}.actions{grid-template-columns:auto minmax(0,1fr);gap:8px;margin-top:4px;display:grid}.small-button{border:var(--outline);background:var(--paper);min-height:44px;box-shadow:var(--drop);border-radius:14px;padding:6px 14px;font-size:14px;font-weight:800}.small-button:active,.primary:active{box-shadow:0 2px 0 var(--ink);transform:translateY(2px)}.primary{border:var(--outline);background:var(--mint-deep);min-height:48px;color:var(--cream);box-shadow:var(--drop);-webkit-text-stroke:.5px var(--ink);paint-order:stroke fill;border-radius:16px;padding:6px 18px;font-size:22px}.primary[aria-disabled=true]{opacity:.55}.overlay{z-index:10;background:#1d2a268c;place-items:center;padding:12px;display:grid;position:absolute;inset:0;overflow:hidden}.sheet{background:var(--cream);border:var(--outline);width:min(560px,100%);max-height:100%;box-shadow:0 8px 0 var(--ink);border-radius:22px;padding:18px 20px 20px;position:relative;overflow-y:auto}.sheet h2{color:var(--mint-dark);font-size:30px;line-height:1.05}.sheet h3{color:var(--mint-dark);margin-top:14px;font-size:19px}.sheet p{margin-top:6px;line-height:1.4}.sheet .lead{color:var(--ink-soft);font-weight:700}.sheet-close{position:absolute;top:12px;right:12px}.sheet-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.menu-head{align-items:center;gap:14px;display:flex}.menu-head img{width:auto;height:92px}.menu-head h2{font-size:40px}.shifts{gap:6px;max-height:38vh;margin-top:14px;padding:2px;display:grid;overflow-y:auto}.shift{border:2px solid var(--ink);background:var(--paper);text-align:left;border-radius:12px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:44px;padding:4px 10px;display:grid}.shift[aria-pressed=true]{background:var(--sun);box-shadow:0 3px 0 var(--ink)}.shift[aria-disabled=true]{opacity:.5}.shift .shift-no{font-size:20px}.shift .shift-word{font-weight:800}.shift .shift-word small{color:var(--ink-soft);font-weight:600;display:block}.shift .shift-best{color:var(--ink-soft);text-align:right;font-size:13px;font-weight:700}.toggles{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.chip{border:2px solid var(--ink);background:var(--paper);border-radius:999px;min-height:40px;padding:4px 12px;font-size:14px;font-weight:800}.chip[aria-pressed=true]{background:var(--mint)}.hint{color:var(--ink-soft);font-size:13px}.lesson-word{color:var(--mint-deep);margin-top:10px;font-size:clamp(36px,10vw,56px);line-height:1}.known{flex-wrap:wrap;gap:6px;margin-top:10px;padding:0;list-style:none;display:flex}.known li{border:2px solid var(--ink);background:var(--paper);border-radius:999px;padding:3px 10px;font-size:14px;font-weight:800}.known li[data-new=true]{background:var(--sun)}.stars{color:var(--sun);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;gap:4px;margin-top:6px;font-size:28px;display:inline-flex}.stars .off{color:var(--paper)}.receipt{justify-items:center;margin-top:12px;display:grid}.receipt canvas{filter:drop-shadow(0 6px #1d2a264d);max-width:100%;height:auto!important}.words-list{grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin-top:12px;display:grid}.words-list dt{font-family:var(--font-display), sans-serif;color:var(--mint-dark);font-size:18px;font-weight:800}.words-list dd{font-size:14px;line-height:1.35}.words-list dd b{display:block}@media (min-width:820px){.game{grid-template:"top top""counter buttons"minmax(0,1fr)"cup buttons"/minmax(0,1.1fr) minmax(360px,.9fr);column-gap:10px;padding:0 10px 10px}.buttons{border:var(--outline);border-radius:var(--radius);box-shadow:var(--drop);background:#fffdf6c7;align-content:center;align-self:stretch;margin:4px 0 0;padding:14px}.cup-zone{margin:8px 0 0}:root{--customer-h:clamp(200px, 40vh, 360px);--cup-h:clamp(90px, 16vh, 150px)}}@media (max-height:460px) and (min-width:600px){:root{--customer-h:120px;--cup-h:60px}.game{grid-template:"top top top""counter cup buttons"minmax(0,1fr)/minmax(0,1fr) auto minmax(300px,1fr);column-gap:8px;min-height:0;padding:0 8px 6px}.topbar{padding:4px 8px 2px}.logo{font-size:20px}.icon-button{width:30px;height:30px}.counter{padding:0}.bubble{padding:6px 10px}.bubble .order{font-size:20px}.bubble .line{display:none}.cup-zone{grid-template-columns:1fr;justify-items:center;gap:4px;margin:0;padding:6px 8px}.cup-words{font-size:16px}.cup-meaning{display:none}.buttons{align-content:center;gap:3px;padding:2px 0}.group{grid-template-columns:1fr;gap:2px}.group-label{display:none}.word{min-height:30px;box-shadow:0 2px 0 var(--ink);border-width:2px;padding:2px 8px 2px 4px}.word img{width:20px;height:20px}.word .word-name{font-size:14px}.word .word-meaning{display:none}.small-button,.primary{min-height:32px;font-size:15px}.sheet{padding:10px 14px 12px}.sheet h2{font-size:22px}.menu-head img{height:56px}.shifts{max-height:24vh}}@media (max-width:599px) and (max-height:700px){:root{--customer-h:120px;--cup-h:64px}.word .word-meaning{display:none}.word{min-height:38px}.bubble .line{font-size:13px}}@media (prefers-reduced-motion:reduce){.customer img,.patience-fill{transition:none!important;animation:none!important}}html:lang(zh) body{font-family:var(--font-ui), var(--zh-sans), "Segoe UI", system-ui, sans-serif}html:lang(zh) .display,html:lang(zh) .primary,html:lang(zh) .word .word-name{font-family:var(--font-display), var(--zh-sans), "Segoe UI", system-ui, sans-serif;letter-spacing:0;font-weight:800}html:lang(zh) :is(.bubble .name,.group-label,.logo small){letter-spacing:0;text-transform:none}html:lang(zh) :is(.sheet p,.bubble .line,.cup-meaning,.words-list dd){line-height:1.6}
