:root{--paper: #eeece3;--ink: #3f4337;--muted: #7b7f6f;--accent: #a0372a;--gold: #c89b3c;--glass: rgba(250, 248, 240, .78);--line: rgba(63, 67, 55, .14);color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#2b2d26;overscroll-behavior:none}canvas{display:block;touch-action:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:#3f433712;border-radius:999px;padding:9px 16px;min-height:40px}button:hover{background:#3f433721}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button.accent{background:var(--accent);color:#fff7ee}button.accent:hover{background:#8a2d22}button.ghost{background:transparent}button:disabled{opacity:.45;cursor:not-allowed}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}[hidden]{display:none!important}#boot{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--paper);text-align:center;padding:24px;z-index:10;transition:opacity .6s}#boot.gone{opacity:0;pointer-events:none}#boot .mark{width:34px;height:34px;fill:none;stroke:#8a8068;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}#boot h1{margin:6px 0 0;font-weight:500;font-size:24px;letter-spacing:2px}#boot p{margin:0;font-size:14px}.pill{position:fixed;display:flex;align-items:center;gap:4px;padding:5px;background:var(--glass);border:1px solid rgba(255,255,255,.6);border-radius:999px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 6px 24px #1e20181f;z-index:3}.top-left{top:max(12px,env(safe-area-inset-top));left:12px;padding-right:14px}.top-right{top:max(12px,env(safe-area-inset-top));right:12px}.bottom{bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%)}.bottom button{display:flex;flex-direction:column;align-items:center;gap:2px;background:transparent;border-radius:22px;padding:6px 12px;font-size:12px;min-width:58px}.bottom button:hover,.bottom button.on{background:#3f43371a}.bottom .ico{font-size:20px;line-height:1.1;filter:saturate(.6)}#room-btn{font-weight:600}#hint{position:fixed;top:74px;left:50%;transform:translate(-50%);color:#fff;font-size:13px;text-shadow:0 1px 4px rgba(0,0,0,.5);white-space:nowrap;pointer-events:none;transition:opacity 1s;z-index:2}#status{position:fixed;top:74px;left:50%;transform:translate(-50%);background:var(--glass);padding:8px 14px;border-radius:999px;font-size:13px;z-index:3}#cups{left:12px;top:calc(max(12px,env(safe-area-inset-top)) + 60px);padding:8px 14px;font-size:13px}#give-btn{position:fixed;left:50%;transform:translate(-50%);bottom:calc(max(14px,env(safe-area-inset-bottom)) + 78px);padding:10px 18px}#toast{position:fixed;left:50%;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 84px);transform:translate(-50%,10px);max-width:min(92vw,440px);background:#2b2d26e0;color:#f6f1e4;padding:10px 16px;border-radius:14px;font-size:14px;text-align:center;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:4}#toast.show{opacity:1;transform:translate(-50%)}.name-tag{display:flex;gap:6px;align-items:center;padding:3px 9px;font-size:12px;background:#faf8f0db;border-radius:999px;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px #0000001f}.name-tag b{background:#5e6a4f;color:#fff;border-radius:999px;padding:0 6px;font-size:10px;font-weight:600}.name-tag.me{font-weight:600}dialog{border:0;border-radius:22px;padding:22px;width:min(420px,calc(100vw - 32px));background:var(--paper);color:var(--ink);box-shadow:0 20px 60px #0000004d}dialog::backdrop{background:#1e181259;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}#dlg-beads{background:transparent;box-shadow:none;color:#f6efe2;text-align:center}#dlg-beads .muted{color:#f6efe2bf}#dlg-beads button[data-close]{background:#28201a99;color:#f6efe2;border:1px solid rgba(255,255,255,.2);width:auto;padding:9px 22px}#beads-count{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.5)}dialog h2{margin:0 0 6px;font-size:19px;font-weight:600}dialog p{margin:0 0 12px;line-height:1.55;font-size:14px}dialog>button[data-close]{width:100%;margin-top:8px}.row{display:flex;gap:8px;margin-top:10px}.row>*{flex:1}textarea,input{width:100%;font:inherit;color:inherit;border:1px solid var(--line);background:#fbfaf5;border-radius:12px;padding:10px 12px;resize:none}textarea:focus,input:focus{outline:2px solid var(--gold);border-color:transparent}.swatches{display:flex;gap:8px;margin:10px 0}.swatches button{width:30px;height:30px;min-height:0;padding:0;border:2px solid transparent}.swatches button.on{border-color:var(--ink)}.wish{font-size:18px!important;padding:16px;background:#fbfaf5;border-radius:14px;text-align:center}#beads-ring{position:relative;display:block;margin:8px auto;width:220px;height:220px;padding:0;border-radius:50%;background:transparent}#beads-ring svg{width:100%;height:100%;transition:transform .25s ease-out}#beads-count{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:34px;font-weight:300;pointer-events:none}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;max-height:50vh;overflow:auto;margin-bottom:4px}.room-grid button{border-radius:14px;display:flex;flex-direction:column;padding:10px}.room-grid button.cur{outline:2px solid var(--gold)}.room-grid small{color:var(--muted)}.tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.tabs button{font-size:13px;padding:7px 12px;min-height:34px}.tabs button[aria-selected=true]{background:var(--ink);color:var(--paper)}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.chips button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.custom{display:flex;align-items:center;gap:10px;font-size:14px;white-space:nowrap}.price{font-size:26px!important;font-weight:300;margin-bottom:4px!important}.warn{background:#f6e3c7;padding:10px 12px;border-radius:12px}.err{color:var(--accent)}@media (max-width: 520px){.bottom{gap:0}.bottom button{min-width:50px;padding:6px 7px;font-size:11px}#hint{font-size:11px;top:70px}#support-btn span:last-child{display:none}}
