*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;background:#1b2a44}body{font-family:system-ui,-apple-system,sans-serif;color:#f4ecdf;user-select:none;-webkit-user-select:none}#app{position:relative;width:100%;height:100%;overflow:hidden;container-type:size}#world{position:absolute;top:0;right:0;bottom:0;left:0;display:block}#ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.build-label{position:absolute;left:calc(8px + env(safe-area-inset-left));top:calc(4px + env(safe-area-inset-top));font-size:11px;opacity:.45;font-variant-numeric:tabular-nums}#ui{--px: min(calc(100cqw / 402), calc(100cqh / 874));--c-text: #f7f1e6;--c-muted: #c9c0b2;--c-panel: #2a2f45f0;--c-panel-edge: #ffffff1f;--c-cash: #ffd25e;--c-like: #ff6f8e;--c-good: #7fdc9a;--c-bad: #ff7a6b;--c-cta: #3fae6a;--c-cta-edge: #2a8a50;font-size:calc(15 * var(--px));color:var(--c-text)}.tone-cash{color:var(--c-cash)}.tone-like{color:var(--c-like)}.tone-good{color:var(--c-good)}.tone-bad{color:var(--c-bad)}.muted{color:var(--c-muted)}.icon{display:inline-flex;width:1.1em;height:1.1em;vertical-align:-.18em}.icon svg{width:100%;height:100%}.amount{display:inline-flex;align-items:center;gap:calc(4 * var(--px));font-variant-numeric:tabular-nums;font-weight:700}.game-screen>*{pointer-events:auto}.game-screen [hidden]{display:none}.game-screen button{font:inherit;color:inherit;border:0;cursor:pointer}.hud{position:absolute;left:0;right:0;top:calc(12 * var(--px) + env(safe-area-inset-top));display:flex;justify-content:center;gap:calc(10 * var(--px));pointer-events:none}.pill{padding:calc(6 * var(--px)) calc(14 * var(--px));border-radius:calc(20 * var(--px));background:var(--c-panel);border:1px solid var(--c-panel-edge);font-size:calc(18 * var(--px))}.card{position:absolute;left:calc(12 * var(--px));right:calc(12 * var(--px));padding:calc(12 * var(--px)) calc(14 * var(--px));border-radius:calc(14 * var(--px));background:var(--c-panel);border:1px solid var(--c-panel-edge)}.review{top:calc(62 * var(--px) + env(safe-area-inset-top));animation:drop-in .22s ease-out;pointer-events:none}.review p{margin-top:calc(4 * var(--px))}.review-head{display:flex;justify-content:space-between;align-items:center}.hearts .icon{width:1.25em;height:1.25em}.review-paid{margin-top:calc(6 * var(--px))}@keyframes drop-in{0%{transform:translateY(-12px);opacity:0}}.room{bottom:calc(14 * var(--px) + env(safe-area-inset-bottom))}.room-head{display:flex;justify-content:space-between;align-items:center;font-size:calc(17 * var(--px))}.status{font-size:calc(13 * var(--px));padding:calc(2 * var(--px)) calc(10 * var(--px));border-radius:calc(10 * var(--px));background:#ffffff1a}.status-resting{background:#9d93c455}.status-cleaning{background:#7fdc9a33}.room-stats,.room-fits,.row-stats{display:flex;flex-wrap:wrap;gap:calc(6 * var(--px)) calc(12 * var(--px));margin-top:calc(8 * var(--px));align-items:center}.stat b{font-size:1.15em}.fit{display:inline-flex;align-items:center;gap:calc(3 * var(--px))}.cta{display:block;width:100%;margin-top:calc(12 * var(--px));padding:calc(12 * var(--px));border-radius:calc(12 * var(--px));background:var(--c-cta);box-shadow:0 calc(4 * var(--px)) 0 var(--c-cta-edge);font-size:calc(18 * var(--px));font-weight:800}.sheet{position:absolute;left:0;right:0;bottom:0;max-height:60%;overflow-y:auto;padding:calc(14 * var(--px)) calc(14 * var(--px)) calc(20 * var(--px) + env(safe-area-inset-bottom));border-radius:calc(18 * var(--px)) calc(18 * var(--px)) 0 0;background:#232839f8;border-top:1px solid var(--c-panel-edge);animation:rise .2s ease-out}@keyframes rise{0%{transform:translateY(30%);opacity:0}}.sheet-head{display:flex;justify-content:space-between;align-items:center;font-size:calc(19 * var(--px))}.close{background:none;width:calc(32 * var(--px));height:calc(32 * var(--px))}.shop-list{list-style:none;margin-top:calc(8 * var(--px))}.shop-list li{display:flex;justify-content:space-between;align-items:center;gap:calc(10 * var(--px));padding:calc(10 * var(--px)) 0;border-bottom:1px solid var(--c-panel-edge)}.price{min-width:calc(84 * var(--px));padding:calc(9 * var(--px)) calc(12 * var(--px));border-radius:calc(10 * var(--px));background:var(--c-cta);box-shadow:0 calc(3 * var(--px)) 0 var(--c-cta-edge);color:var(--c-text)}.price .amount{color:var(--c-cash)}.price.short{background:#5a4a4a;box-shadow:none;cursor:default}.price.short .amount{color:var(--c-bad)}.reason{color:var(--c-muted);font-size:calc(13 * var(--px))}
