:root{--bg-top:#4a382b;--bg-bottom:#1d1510;--card:#fffaf4f0;--card-line:#785c422e;--ink:#3a2f28;--ink-soft:#7c6a5c;--coin:#f5b731;--coin-deep:#b57c0d;--gem:#61c6e8;--accent:#ff8a4c;--accent-deep:#e2643a;--good:#35b566;--bad:#e2564f;--r-lg:20px;--r-md:14px;--r-sm:10px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--font:system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;background:linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 100%);height:100%;font-family:var(--font);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;padding:0;overflow:hidden}#game{position:fixed;top:0;bottom:0;left:0;right:0}#game canvas{display:block}#ui{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}#topbar{pointer-events:auto;padding:calc(var(--safe-top) + 8px) 10px 0;flex-direction:column;gap:6px;display:flex}.stat-row{align-items:stretch;gap:8px;display:flex}.stat{background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-md);flex:1;align-items:center;gap:7px;min-width:0;padding:7px 10px;display:flex;box-shadow:0 3px 10px #00000038}.stat .icon{flex:none;font-size:19px;line-height:1}.stat .body{flex-direction:column;min-width:0;line-height:1.15;display:flex}.stat .value{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:18px;font-weight:800;overflow:hidden}.stat .label{color:var(--ink-soft);white-space:nowrap;font-size:10px}.stat.coins .value{color:var(--coin-deep)}.repbar{background:#785c422e;border-radius:3px;height:6px;margin-top:3px;overflow:hidden}.repbar>i{background:linear-gradient(90deg, #f0a93c, var(--good));border-radius:3px;height:100%;transition:width .4s;display:block}#hint{pointer-events:none;justify-content:center;padding:0 16px;display:flex}.hint-card{pointer-events:auto;color:#fff6ec;background:#261b14db;border-radius:999px;align-items:center;gap:10px;padding:9px 16px;font-size:13px;font-weight:600;animation:.24s pop;display:flex;box-shadow:0 4px 14px #0000004d}.hint-card button{color:inherit;font:inherit;background:#ffffff2e;border:0;border-radius:999px;padding:4px 11px;font-size:12px}#bottombar{pointer-events:auto;padding:0 10px calc(var(--safe-bottom) + 10px);gap:8px;display:flex}.tool{background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-md);font:inherit;color:var(--ink);flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 4px 7px;transition:transform 90ms,background .15s;display:flex;box-shadow:0 3px 10px #00000038}.tool:active{transform:translateY(2px)scale(.97)}.tool .icon{font-size:22px;line-height:1}.tool .name{font-size:11px;font-weight:700}.tool .cost{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:10px}.tool[data-active="1"]{border-color:var(--accent-deep);background:linear-gradient(#ffd9a8,#ffbe7a)}.tool[disabled]{opacity:.45}.tool.danger[data-active="1"]{border-color:var(--bad);background:linear-gradient(#ffc2be,#ff9d96)}#toast{left:50%;bottom:calc(var(--safe-bottom) + 96px);pointer-events:none;z-index:40;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;transform:translate(-50%)}.toast{color:#fff6ec;background:#261b14e6;border-radius:999px;padding:8px 15px;font-size:13px;font-weight:600;animation:.2s pop,.4s 1.4s forwards fade;box-shadow:0 4px 14px #0000004d}#sheet-root{z-index:50;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.scrim{pointer-events:auto;background:#140d0980;animation:.18s fadein;position:absolute;top:0;bottom:0;left:0;right:0}.sheet{border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:82%;padding-bottom:var(--safe-bottom);pointer-events:auto;background:#fffaf3;flex-direction:column;animation:.24s cubic-bezier(.22,1,.36,1) slideup;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #00000057}.sheet.center{border-radius:var(--r-lg);max-height:76%;animation:.22s cubic-bezier(.22,1,.36,1) pop;top:50%;bottom:auto;left:14px;right:14px;transform:translateY(-50%)}.sheet-head{border-bottom:1px solid var(--card-line);flex:none;align-items:center;gap:10px;padding:14px 16px 10px;display:flex}.sheet-head h2{flex:1;margin:0;font-size:16px;font-weight:800}.sheet-head .close{width:30px;height:30px;color:var(--ink-soft);background:#785c421f;border:0;border-radius:50%;font-size:16px}.sheet-body{-webkit-overflow-scrolling:touch;flex-direction:column;gap:9px;padding:12px 14px 18px;display:flex;overflow-y:auto}.row{border:1px solid var(--card-line);border-radius:var(--r-md);background:#fff;align-items:center;gap:11px;padding:10px 11px;display:flex}.row.locked{opacity:.55;background:#f4eee6}.row .thumb{border:1px solid var(--card-line);background:#fdf2e3;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;font-size:24px;display:grid}.row .info{flex:1;min-width:0}.row .title{align-items:center;gap:6px;font-size:14px;font-weight:800;display:flex}.row .desc{color:var(--ink-soft);margin-top:2px;font-size:11px;line-height:1.35}.badge{color:var(--ink-soft);background:#785c421f;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.badge.own{color:#23824a;background:#35b56629}.btn{border-radius:var(--r-sm);font:inherit;color:#fff;background:linear-gradient(180deg, var(--accent), var(--accent-deep));white-space:nowrap;border:0;flex:none;padding:9px 13px;font-size:13px;font-weight:800;transition:transform 90ms;box-shadow:0 2px #00000029}.btn:active{box-shadow:none;transform:translateY(2px)}.btn[disabled]{color:#9d9086;box-shadow:none;background:#ded3c6}.btn.wide{width:100%;padding:13px;font-size:15px}.btn.coin:before{content:"🪙 "}.stat-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat-grid>div{border:1px solid var(--card-line);border-radius:var(--r-sm);background:#fff;padding:8px 10px}.stat-grid .k{color:var(--ink-soft);font-size:10px}.stat-grid .v{font-variant-numeric:tabular-nums;font-size:15px;font-weight:800}.note{color:var(--ink-soft);border-radius:var(--r-sm);background:#f7efe4;padding:9px 11px;font-size:11px;line-height:1.5}.big-number{color:var(--coin-deep);text-align:center;font-variant-numeric:tabular-nums;font-size:30px;font-weight:900}.center-text{text-align:center;color:var(--ink-soft);font-size:13px;line-height:1.6}.iconbtn{background:var(--card);border:1px solid var(--card-line);border-radius:var(--r-md);flex:none;width:46px;font-size:20px;line-height:1;transition:transform 90ms;box-shadow:0 3px 10px #00000038}.iconbtn:active{transform:translateY(2px)scale(.96)}#bottombar{gap:5px;padding-left:7px;padding-right:7px}.tool{padding:8px 2px 6px;position:relative}.tool .name{font-size:10px}.tool .cost{font-size:9px}.tool[data-badge]:not([data-badge="0"]):after{content:attr(data-badge);background:var(--bad);color:#fff;text-align:center;border-radius:999px;min-width:15px;height:15px;padding:0 3px;font-size:9px;font-weight:800;line-height:15px;position:absolute;top:3px;right:5px}.hint-card button.go{background:linear-gradient(180deg, var(--good), #24924f);padding:5px 13px;font-weight:800}.hint-card button.go[disabled]{color:#ffffff8c;background:#ffffff29}.tabs{gap:6px;margin-bottom:4px;display:flex}.tab{border:1px solid var(--card-line);color:var(--ink-soft);border-radius:var(--r-sm);font:inherit;background:#fff;flex:1;padding:9px 6px;font-size:12px;font-weight:700}.tab.on{border-color:var(--accent-deep);color:var(--ink);background:linear-gradient(#ffd9a8,#ffbe7a)}.row.sig{border-color:var(--accent-deep);background:#fff6ec}.row.col{flex-direction:column;align-items:stretch;gap:8px}.row-head{align-items:center;gap:11px;display:flex}.sub-head{color:var(--ink-soft);margin-top:2px;font-size:11px;font-weight:800}.chips{flex-wrap:wrap;gap:5px;display:flex}.chip{color:#7a6553;background:#f2e8db;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700}.badge.new{background:var(--bad);color:#fff}.hours{border-radius:var(--r-sm);background:#faf4ec;align-items:flex-end;gap:2px;height:34px;padding:4px 2px 0;display:flex}.hours>i{background:linear-gradient(180deg, var(--accent), #ffcfa5);border-radius:2px 2px 0 0;flex:1;min-height:3px}.hours>i.mark{background:linear-gradient(#6b8fc4,#a9c4e4)}@keyframes slideup{0%{transform:translateY(100%)}}@keyframes pop{0%{opacity:0;transform:scale(.9)}}@keyframes fadein{0%{opacity:0}}@keyframes fade{to{opacity:0;transform:translateY(-6px)}}.sheet.center{animation-name:popcenter}@keyframes popcenter{0%{opacity:0;transform:translateY(-50%)scale(.9)}to{opacity:1;transform:translateY(-50%)scale(1)}}
