:root{--bg:#faf7f2;--surface:#fff;--ink:#2c2724;--muted:#7a716a;--line:#e4ddd3;--accent:#9a6b4f;--accent-ink:#fff;--danger:#a8412f;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#16130f;--surface:#211d19;--ink:#e8e2d9;--muted:#a09589;--line:#342e28;--accent:#c08b68;--accent-ink:#1a1511;--danger:#d4735e}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}h1,h2{letter-spacing:-.01em;margin:0 0 .25rem;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.15rem}p{margin:0 0 .5rem}a{color:inherit}.muted{color:var(--muted)}.small{font-size:.875rem}.centre{text-align:center}.shell{max-width:62rem;margin:0 auto;padding:0 1.25rem 4rem}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;padding:1.25rem 0;display:flex}main>section{margin-top:2rem}.brand{letter-spacing:-.015em;font-weight:650;text-decoration:none}.brand.small{font-size:1rem}.centred{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.crumb{margin:0 0 1rem;font-size:.9rem}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.row>input{flex:16rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.25rem}.empty{text-align:center;padding:2.25rem 1.25rem}.form{gap:1rem;width:min(24rem,100%);padding:1.75rem;display:grid}.grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.house-card{height:100%;text-decoration:none;transition:border-color .12s;display:block}.house-card:hover{border-color:var(--accent)}.levels{gap:.75rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.level{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.level p{margin:.15rem 0 0}label{gap:.35rem;font-size:.9rem;font-weight:550;display:grid}input{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;width:100%;padding:.55rem .7rem}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.title-input{letter-spacing:-.01em;font-size:1.35rem;font-weight:650}button{font:inherit;cursor:pointer;background:var(--accent);color:var(--accent-ink);white-space:nowrap;border:1px solid #0000;border-radius:8px;padding:.55rem .9rem;font-weight:550}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{color:var(--ink);border-color:var(--line);background:0 0}button.danger{color:var(--danger);border-color:var(--line);background:0 0}button.quiet{padding:.4rem .65rem;font-size:.9rem}button.link{color:var(--accent);background:0 0;border:none;padding:0;font-weight:550;text-decoration:underline}select{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;width:100%;padding:.55rem .7rem}kbd{border:1px solid var(--line);opacity:.65;border-radius:4px;padding:.15rem .3rem;font:600 .7rem/1 ui-monospace,monospace}.button-link{border:1px solid var(--line);white-space:nowrap;border-radius:8px;padding:.55rem .9rem;font-weight:550;text-decoration:none;display:inline-block}.button-link:hover{border-color:var(--accent)}.shell.wide{max-width:none}.editor{flex-direction:column;height:calc(100vh - 6.5rem);display:flex}.editor-head{flex:none;justify-content:space-between;align-items:baseline}.editor-head .crumb{margin-bottom:.5rem}.toolbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;border-bottom:none;flex-wrap:wrap;align-items:center;gap:1.25rem;padding:.6rem .75rem;display:flex}.tool-group{align-items:center;gap:.4rem;display:flex}button.tool{color:var(--ink);border-color:var(--line);background:0 0;align-items:center;gap:.45rem;display:inline-flex}button.tool.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.tool.active kbd{opacity:.8;border-color:currentColor}.save-state{font-variant-numeric:tabular-nums;margin-left:auto}.editor-body{border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);flex:auto;min-height:0;display:flex;overflow:hidden}.stage{background:var(--bg);flex:auto;min-width:0;position:relative;overflow:hidden}.inspector{background:var(--surface);border-left:1px solid var(--line);flex:0 0 17rem;align-content:start;gap:.85rem;padding:1.1rem;display:grid;overflow-y:auto}.inspector h2{margin:0}.stats{grid-template-columns:1fr auto;gap:.3rem 1rem;margin:0;font-size:.9rem;display:grid}.stats dt{color:var(--muted)}.stats dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}@media (width<=46rem){.editor-body{flex-direction:column}.inspector{border-left:none;border-top:1px solid var(--line);flex:none}}.navlink{opacity:.75;padding-left:.5rem;font-size:.925rem;text-decoration:none}.navlink:hover{opacity:1;color:var(--accent)}label.inline{white-space:nowrap;align-items:center;gap:.4rem;font-size:.875rem;font-weight:550;display:inline-flex}label.inline select{width:auto;padding:.4rem .55rem}.filters{margin-bottom:.9rem}.notice{background:color-mix(in srgb, var(--accent) 9%, transparent);border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);border-radius:8px;margin:0 0 1rem;padding:.7rem .9rem;font-size:.9rem}.notice.small{font-size:.85rem}.grid.products{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}.product-card{text-align:left;cursor:pointer;background:var(--surface);width:100%;height:100%;color:var(--ink);font:inherit;border-color:var(--line);align-content:start;gap:.4rem;display:grid}.product-card:hover{border-color:var(--accent)}.product-head h3{margin:0;font-size:.975rem;line-height:1.3}.price{font-variant-numeric:tabular-nums;margin:0;font-weight:650}.price.large{font-size:1.5rem}.stale{color:var(--muted);margin-left:.4rem;font-size:.75rem;font-weight:550}.tags{flex-wrap:wrap;gap:.3rem;display:flex}.tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:550}.tag.warn{border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent)}.pager{justify-content:center;margin-top:1.5rem}.overlay{z-index:10;background:#00000059;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);border-left:1px solid var(--line);align-content:start;gap:.9rem;width:min(26rem,100%);height:100%;padding:1.5rem;display:grid;overflow-y:auto}.drawer-head{justify-content:space-between;align-items:flex-start}.drawer-head h2{margin:0}.drawer section{margin-top:.5rem}.drawer h3{margin:0 0 .5rem;font-size:.95rem}.sparkline{color:var(--accent);display:block}.alternatives{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.alternatives li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:.75rem;padding-bottom:.6rem;display:flex}.alternatives p{margin:.1rem 0 0}.alt-price{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.alt-price span{font-size:.8rem;font-weight:600;display:block}.cheaper{color:#2f7d4f}@media (prefers-color-scheme:dark){.cheaper{color:#6fbf8c}}.dearer{color:var(--muted)}code{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:.05rem .3rem;font:.875em ui-monospace,monospace}.side-panel{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;flex:0 0 18rem;min-height:0;display:flex}.side-panel .inspector{border-left:none;flex:auto}.tabs{border-bottom:1px solid var(--line);flex:none;display:flex}button.tab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:.6rem .4rem;font-size:.875rem}button.tab.active{color:var(--ink);border-bottom-color:var(--accent)}.furnish,.shopping{flex:auto;align-content:start;gap:.7rem;padding:1rem;display:grid;overflow-y:auto}.furnish-results{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.furnish-results button{text-align:left;width:100%;color:var(--ink);border:1px solid var(--line);background:0 0;gap:.1rem;padding:.5rem .6rem;font-weight:400;line-height:1.35;display:grid}.furnish-results button:hover:not(:disabled){border-color:var(--accent)}.furnish-results strong{font-size:.9rem}.shopping-lines{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.shopping-lines li{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.shopping-lines p{margin:.1rem 0 0}.shopping h3{border-top:1px solid var(--line);margin:.4rem 0;padding-top:.6rem;font-size:.9rem}.room-total{text-align:right;margin:.4rem 0 0}.totals{gap:.2rem;display:grid}.issues{color:var(--danger);background:color-mix(in srgb, var(--danger) 9%, transparent);border:1px solid color-mix(in srgb, var(--danger) 28%, transparent);border-radius:8px;gap:.2rem;margin:0;padding:.5rem .7rem;font-size:.85rem;list-style:none;display:grid}@media (width<=46rem){.side-panel{border-left:none;border-top:1px solid var(--line);flex:none}}.grid.modes{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));max-width:44rem}.mode-card{gap:.4rem;padding:1.6rem 1.4rem;text-decoration:none;transition:border-color .12s,transform .12s;display:grid}.mode-card:hover{border-color:var(--accent);transform:translateY(-2px)}.mode-mark{color:var(--accent);margin-bottom:.3rem;line-height:0}.levels-grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}.level-card{text-align:left;background:var(--surface);width:100%;height:100%;color:var(--ink);font:inherit;border-color:var(--line);cursor:pointer;gap:.35rem;display:grid}.level-card:hover{border-color:var(--accent)}.level-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.level-head h2{margin:0;font-size:1.05rem}.pips{letter-spacing:.12em;color:var(--accent);font-size:.75rem}.game{flex-direction:column;gap:.6rem;height:calc(100vh - 6.5rem);display:flex}.game-head{justify-content:space-between;align-items:center}.stats-row{gap:1.4rem}.stat{gap:.1rem;line-height:1.2;display:grid}.stat.coins strong{color:var(--accent);font-size:1.2rem}.stat strong{font-variant-numeric:tabular-nums}.bar{background:var(--line);border-radius:999px;width:8rem;height:5px;display:block;overflow:hidden}.bar>span{background:var(--accent);height:100%;transition:width .24s;display:block}.stat.gems strong{color:#4263eb;font-size:1.2rem}button.piggy{color:var(--muted);border:1px dashed var(--line);background:0 0;justify-items:center;gap:.2rem;padding:.35rem .7rem;display:grid}button.piggy.ready{color:var(--accent-ink);background:var(--accent);border-style:solid;border-color:var(--accent);animation:1.6s ease-in-out infinite nudge}button.piggy .bar{width:4rem;height:4px}button.piggy.ready .bar{background:color-mix(in srgb, var(--accent-ink) 35%, transparent)}button.piggy.ready .bar>span{background:var(--accent-ink)}.piggy-amount{font-variant-numeric:tabular-nums;font-weight:700;line-height:1}@keyframes nudge{0%,88%,to{transform:translateY(0)}92%{transform:translateY(-3px)}96%{transform:translateY(-1px)}}button.small-tool{padding:.4rem .7rem;font-size:.85rem}.delivery{align-items:stretch;gap:.3rem;display:flex}.delivery .tray-item{flex:auto}button.rush{color:#fff;background:#4263eb;border-color:#4263eb;flex:none;padding:.3rem .5rem;font-size:.78rem;font-weight:700}button.rush:disabled{color:var(--muted);border-color:var(--line);background:0 0}.rewards{pointer-events:none;justify-items:center;gap:.2rem;display:grid;position:absolute;top:18%;left:50%;transform:translate(-50%)}.reward{background:#ffffffeb;border-radius:999px;padding:.15rem .6rem;font-size:1.05rem;font-weight:750;animation:2.2s ease-out forwards float-up;box-shadow:0 2px 8px #0000002e}.reward.coins{color:#b8860b}.reward.xp{color:#2f9e44}.reward.gems{color:#4263eb}@keyframes float-up{0%{opacity:0;transform:translateY(10px)scale(.9)}15%{opacity:1;transform:translateY(0)scale(1.05)}30%{transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-40px)}}@media (prefers-reduced-motion:reduce){.reward{opacity:1;animation:none}button.piggy.ready{animation:none}}.tile-panel{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);gap:.5rem;width:min(19rem,100% - 1.5rem);padding:.8rem;display:grid;position:absolute;bottom:.75rem;left:.75rem;box-shadow:0 6px 20px #00000029}.tile-head{justify-content:space-between}.tile-panel .row.wrap{flex-wrap:wrap}.tile-panel button{text-align:left;gap:.1rem;line-height:1.25;display:grid}.tile-actions{border-top:1px solid var(--line);justify-content:space-between;padding-top:.4rem}.queue{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.queue li{justify-content:space-between;gap:.5rem;font-size:.85rem;display:flex}.queue .done{color:#2f9e44;font-size:.85rem;font-weight:650}.barn{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.barn li{justify-content:space-between;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.barn strong{font-variant-numeric:tabular-nums;text-align:right;min-width:2rem}.stat strong.full,.reward.warn{color:var(--danger)}.board-hint{background:var(--accent);color:var(--accent-ink);pointer-events:none;border-radius:999px;margin:0;padding:.35rem .8rem;font-size:.85rem;font-weight:550;position:absolute;bottom:.8rem;left:50%;transform:translate(-50%)}.tray .panel{gap:.6rem;padding-top:.7rem;display:grid}.deliveries{border-bottom:1px solid var(--line);gap:.35rem;padding-bottom:.6rem;display:grid}.delivery-head{justify-content:space-between}.orders{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.order{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem .65rem;display:flex}.order p{margin:.15rem 0 0}.order.ready{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.order button{padding:.4rem .7rem;font-size:.85rem}.game-head p{margin:.1rem 0 0}.clock{font-variant-numeric:tabular-nums;text-align:right;min-width:3.5rem;font-size:1.1rem;font-weight:650}.won{border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent) 34%, transparent);flex-wrap:wrap;align-items:center;gap:.9rem;padding:.7rem 1rem;display:flex}.won.ending{background:linear-gradient(100deg, #c96a8b38, color-mix(in srgb, var(--accent) 20%, transparent));border-color:#c96a8b75}.won.ending strong{font-size:1.05rem}.showroom{flex-direction:column;gap:.5rem;display:flex}.stage-cost{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.stage-cost li{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.15rem .45rem;font-size:.78rem}.stage-cost li.have{color:var(--ok,#2e7d52);border-color:color-mix(in srgb, var(--ok,#2e7d52) 45%, transparent);background:color-mix(in srgb, var(--ok,#2e7d52) 10%, transparent)}.game-body{flex:auto;gap:.75rem;min-height:0;display:flex}.board{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);flex:auto;min-width:0;position:relative;overflow:hidden}.tray{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex:0 0 16rem;padding:.9rem;overflow-y:auto}.tray h3{margin:0 0 .6rem;font-size:.95rem}.tray ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}button.tray-item{text-align:left;width:100%;color:var(--ink);border:1px solid var(--line);background:0 0;gap:.05rem;padding:.45rem .6rem;font-weight:400;line-height:1.3;display:grid}button.tray-item:hover{border-color:var(--accent)}button.tray-item.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.tray-item.active .muted{color:inherit;opacity:.85}.tray .hint{border-top:1px solid var(--line);margin-top:.9rem;padding-top:.7rem}@media (width<=46rem){.game-body{flex-direction:column}.tray{flex:none}}input[type=range]{width:100%;accent-color:var(--accent);background:0 0;border:none;padding:0}.height-row{gap:.4rem}.height-row input{flex:0 7rem}.view3d-controls input[type=checkbox]{width:auto;accent-color:var(--accent)}.field-label{margin-bottom:.35rem;font-size:.9rem;font-weight:550;display:block}.swatches{grid-template-columns:repeat(8,1fr);gap:.25rem;display:grid}button.swatch{aspect-ratio:1;cursor:pointer;border:1px solid #0000002e;border-radius:5px;min-width:0;padding:0}button.swatch:hover{transform:scale(1.12)}button.swatch.active{outline:2px solid var(--ink);outline-offset:1px}button.swatch.reset{color:var(--muted);background:0 0;border-style:dashed;font-size:.8rem;line-height:1}.patterns{grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}button.pattern-chip{aspect-ratio:1;background:var(--bg);border:1px solid var(--line);border-radius:5px;min-width:0;padding:2px;line-height:0;overflow:hidden}button.pattern-chip:hover{border-color:var(--accent)}button.pattern-chip.active{outline:2px solid var(--accent);outline-offset:1px}.history{gap:.35rem;display:grid}.history-head{justify-content:space-between;align-items:baseline;display:flex}.chips{flex-wrap:wrap;gap:.3rem;display:flex}button.chip{color:var(--muted);border:1px solid var(--line);background:0 0;border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:500}button.chip:hover{color:var(--ink);border-color:var(--accent)}button.chip.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.view3d{flex-direction:column;display:flex;position:absolute;inset:0}.view3d canvas{flex:auto;min-height:0;display:block}.view3d-controls{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .7rem;display:flex}.stage-empty{text-align:center;border:none;border-radius:0;place-content:center;display:grid;position:absolute;inset:0}.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);border-radius:8px;margin:.75rem 0;padding:.6rem .8rem;font-size:.925rem}
