:root{--paper:#f6ecd9;--paper2:#efe0c2;--card:#fffaf0;--ink:#3b2414;--ink2:#7a5a3f;--wood:#5b351b;--wood2:#7b4a26;--gold:#f2b53a;--persimmon:#e07a2c;--red:#c8432f;--night:#1c2148;--green:#4f8a3a;--line:#d9c19a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--wood);height:100%;color:var(--ink);overscroll-behavior:none;margin:0}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font:15px/1.4 system-ui,-apple-system,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif}button{font:inherit;color:inherit;cursor:pointer;border:0}img{display:block}.loading{color:var(--paper);text-align:center;margin-top:40vh}#app{background:var(--paper);flex-direction:column;max-width:560px;height:100dvh;margin:0 auto;display:flex;overflow:hidden}.hud{padding:calc(8px + max(env(safe-area-inset-top), var(--top-inset,0px))) 12px 8px;background:var(--wood);color:#fff4dc;justify-content:space-between;align-items:center;gap:8px;display:flex}.money{align-items:baseline;gap:6px;min-width:0;display:flex}.money b{letter-spacing:-.02em;white-space:nowrap;font-size:24px;font-weight:900}.money small{color:#f3d79b;white-space:nowrap;font-size:12px}.coin{background:radial-gradient(circle at 35% 30%, #ffe48a, var(--gold) 55%, #b9821a);border-radius:50%;flex:none;align-self:center;width:22px;height:22px;position:relative;box-shadow:inset 0 0 0 2px #8a5a12}.coin:after{content:"";background:var(--wood);border-radius:2px;position:absolute;inset:7px}.chips{flex:none;gap:6px;display:flex}.chip{white-space:nowrap;background:#ffffff1f;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700}.chip.night{background:var(--night)}.chip.warn{background:var(--red)}.stage{aspect-ratio:16/9;background:#c9a777;flex:none;width:100%;max-height:42dvh;position:relative}#scene{touch-action:manipulation;width:100%;height:100%}#hint{color:#fff4dc;text-align:center;pointer-events:none;background:#3b2414e0;border-radius:12px;max-width:92%;padding:6px 12px;font-size:13px;font-weight:700;animation:1.6s ease-in-out infinite bob;position:absolute;top:8px;left:50%;transform:translate(-50%)}#toasts{transform-origin:100% 100%;pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;max-width:80%;display:flex;position:absolute;bottom:6px;right:6px;scale:.88}.toast{background:var(--card);border:2px solid var(--wood2);border-radius:12px;align-items:center;gap:8px;padding:6px 10px 6px 6px;font-size:13px;font-weight:800;transition:opacity .4s,transform .4s;animation:.3s ease-out pop;display:flex;box-shadow:0 3px 10px #00000040}.toast.out{opacity:0;transform:translateY(6px)}.toast small{color:var(--ink2);font-size:11px;font-weight:600;display:block}.ticon{object-fit:contain;flex:none;width:34px;height:34px}.ticon.medal{color:var(--gold);place-items:center;font-size:22px;display:grid}#boostbar{text-align:center;background:var(--persimmon);color:#fff;cursor:pointer;flex:none;padding:8px 12px;font-size:13px;position:relative;overflow:hidden}#boostbar.on{background:var(--green);cursor:default}#boostbar.cool{background:var(--paper2);color:var(--ink2);cursor:default}#boostbar i{transform-origin:0;background:#fff;width:100%;height:3px;position:absolute;bottom:0;left:0}#boostbar small{opacity:.9}.tabs{background:var(--wood2);flex:none;display:flex}.tabs button{color:#f3d79b;background:0 0;border-bottom:3px solid #0000;flex:1;padding:10px 2px;font-size:14px;font-weight:800;position:relative}.tabs button.on{color:#fff;border-bottom-color:var(--gold);background:#0000001f}.tabs .dot{background:var(--red);border-radius:50%;width:8px;height:8px;position:absolute;top:7px;right:18%}#panel{padding:10px 12px calc(16px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;flex:1;overflow:hidden auto}.sub{color:var(--ink2);margin:2px 0 8px;font-size:13px;font-weight:700}.note{color:var(--ink2);margin:8px 0;font-size:12px}h3{margin:16px 0 8px;font-size:15px}.buymode{gap:6px;margin-bottom:8px;display:flex}.buymode button{background:var(--paper2);color:var(--ink2);border-radius:10px;flex:1;padding:6px;font-weight:800}.buymode button.on{background:var(--wood2);color:#fff}.dishes{flex-direction:column;gap:8px;display:flex}.dish{background:var(--card);border:1.5px solid var(--line);border-radius:14px;align-items:center;gap:8px;padding:7px;display:flex}.dish.auto{border-color:#b9d29a}.dish.locked{opacity:.7;filter:grayscale(.6)}.dish.new{border-style:dashed}.cook{background:var(--paper2);border-radius:12px;flex:none;width:58px;height:58px;padding:3px;position:relative}.cook:disabled{opacity:.6}.cook.idle{box-shadow:0 0 0 2px var(--persimmon);animation:1.2s ease-in-out infinite glow}.dimg{object-fit:contain;width:100%;height:100%}.dish.locked .dimg{width:52px;height:52px}.owned{background:var(--wood);color:#fff;text-align:center;border-radius:999px;min-width:20px;padding:1px 6px;font-size:11px;font-weight:900;position:absolute;bottom:-4px;right:-4px}.owned:empty{display:none}.mid{flex:1;min-width:0}.name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:900;overflow:hidden}.tag{background:var(--green);color:#fff;vertical-align:2px;border-radius:6px;align-items:center;gap:3px;padding:1px 5px 1px 2px;font-size:10px;font-weight:800;display:inline-flex}.tag .wface{object-fit:contain;background:#fff;border-radius:50%;width:16px;height:16px}.tag .wface.noimg{display:none}.bar{background:var(--paper2);border-radius:9px;height:18px;margin:4px 0 2px;position:relative;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--gold), var(--persimmon));transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}.bar.fast i{background:repeating-linear-gradient(-45deg, var(--gold) 0 8px, #f7c95e 8px 16px);background-size:22px 22px;animation:.6s linear infinite slide}.bar .val{text-align:center;color:var(--ink);white-space:nowrap;font-size:11px;font-weight:900;line-height:18px;display:block;position:relative}.ms{color:var(--ink2);font-size:11px;line-height:1.3}.btns{flex-direction:column;flex:none;gap:4px;width:96px;display:flex}.btns button{background:var(--paper2);color:var(--ink2);text-align:center;border-radius:10px;padding:4px 6px;line-height:1.15}.btns button b{font-size:12px;display:block}.btns button small{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:800;display:block;overflow:hidden}.btns button.can{background:var(--persimmon);color:#fff}.btns .hire.can{background:var(--green)}.pulse{animation:1s ease-in-out infinite pulse}.guests{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.gcard{background:var(--card);border:1.5px solid var(--line);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:8px;display:flex}.gcard .gimg{object-fit:contain;width:72px;height:72px}.gcard.unmet .gimg{filter:brightness(0)opacity(.25)}.gcard b{font-size:14px}.gcard small{color:var(--ink2);font-size:11px}.gcard .hearts{color:#e0475a;letter-spacing:-1px;font-size:12px}.gcard .hearts i{color:var(--line);font-style:normal}.gcard .stories{flex-wrap:wrap;justify-content:center;gap:4px;margin-top:2px;display:flex}.gcard em{color:var(--wood2);font-size:11px;font-style:normal;font-weight:800}.card{background:var(--card);border:1.5px solid var(--line);border-radius:14px;margin-bottom:10px;padding:10px}.card .row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.card .big{font-size:18px}.card.town{align-items:flex-start;gap:10px;display:flex}.card.town>div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.card.town small{color:var(--ink2);font-size:12px}.thumb{object-fit:cover;border-radius:8px;flex:none;width:96px;height:54px}.card.next .bar{height:8px;margin:6px 0 2px}button.primary,button.danger{background:var(--persimmon);color:#fff;border-radius:12px;padding:11px 12px;font-weight:900}button.danger{background:var(--red)}button.wide{width:100%;margin-top:8px}button:disabled{opacity:.5;cursor:default}.shop{flex-direction:column;gap:6px;display:flex}.item{background:var(--card);border:1.5px solid var(--line);border-radius:12px;align-items:center;gap:8px;padding:8px 10px;display:flex}.item>div{flex:1;min-width:0}.item b{font-size:14px;display:block}.item small{color:var(--ink2);font-size:12px;display:block}.item button{background:var(--paper2);color:var(--ink2);border-radius:10px;flex:none;padding:7px 10px;font-weight:800}.item button.can{background:var(--night);color:#fff}.item.own{opacity:.6}.owned-tag{color:var(--green);flex:none;font-size:12px;font-weight:800}.goals{flex-direction:column;gap:6px;display:flex}.goal{background:var(--card);border:1.5px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:8px 10px;display:flex}.goal .medal{color:var(--line);font-size:22px}.goal.done .medal{color:var(--gold)}.goal b{display:block}.goal small{color:var(--ink2);font-size:12px}.setting{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 2px;display:flex}.setting button{background:var(--paper2);border-radius:10px;padding:6px 14px;font-weight:800}.links{flex-wrap:wrap;gap:8px;display:flex}.links a{color:var(--wood2);background:var(--card);border:1.5px solid var(--line);border-radius:10px;padding:8px 12px;font-weight:800;text-decoration:none}.recipes{scrollbar-width:none;align-items:stretch;gap:6px;margin-bottom:8px;display:flex;overflow-x:auto}.recipes>b{writing-mode:vertical-rl;color:var(--wood2);flex:none;align-self:center;font-size:12px}.recipe{text-align:left;background:var(--paper2);min-width:0;color:var(--ink2);border-radius:12px;flex-direction:column;flex:1 0 104px;gap:1px;padding:6px 8px;display:flex}.recipe span{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:900;overflow:hidden}.recipe small{font-size:11px}.recipe em{font-size:12px;font-style:normal;font-weight:900}.recipe.can{background:var(--night);color:#fff}.card.spec{flex-direction:column;gap:2px;display:flex}.card.spec small{color:var(--ink2);font-size:12px}.card.daily .quests{flex-direction:column;gap:8px;margin-top:8px;display:flex}.quest{align-items:center;gap:10px;display:flex}.quest>div{flex:1;min-width:0}.quest b{font-size:13px}.quest .bar{height:14px}.quest .bar .val{line-height:14px}.quest button{background:var(--paper2);color:var(--ink2);border-radius:10px;flex:none;padding:7px 12px;font-weight:800}.quest button.can{background:var(--green);color:#fff}.quest.claimed{opacity:.6}button.primary.hot{animation:1.1s ease-in-out infinite pulse}.actions button small{opacity:.85;margin-top:2px;font-size:12px;font-weight:600;display:block}.shoplist{flex-direction:column;gap:6px;display:flex}.shoprow{background:var(--card);border:1.5px solid var(--line);border-radius:12px;align-items:center;gap:8px;padding:6px 8px;display:flex}.shoprow .simg{object-fit:contain;flex:none;width:48px;height:48px}.shoprow.locked .simg{filter:grayscale()opacity(.4)}.shoprow.own{border-color:#b9d29a}.shoprow .info{flex-direction:column;flex:1;min-width:0;display:flex}.shoprow .info b{font-size:14px}.shoprow .info small{color:var(--ink2);font-size:11px}.shoprow .lock{color:var(--ink2);flex:none;font-size:11px}.shoprow button{background:var(--paper2);width:92px;color:var(--ink2);border-radius:10px;flex:none;padding:5px;line-height:1.2}.shoprow button b{font-size:12px;display:block}.shoprow button small{font-size:11px;font-weight:800;display:block}.shoprow button.can{background:var(--persimmon);color:#fff}.chip.gear{cursor:pointer;color:inherit;border:0;padding:2px 8px;font-size:14px}.decos{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.deco{background:var(--card);border:1.5px solid var(--line);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px;display:flex}.deco .dimg2{place-items:center;width:100%;height:56px;display:grid}.deco .decoimg{object-fit:contain;max-width:100%;max-height:56px}.deco .empty{color:var(--line);font-size:22px}.deco b{font-size:13px}.deco small{color:var(--ink2);font-size:10.5px}.deco button{background:var(--paper2);width:100%;color:var(--ink2);border-radius:8px;padding:4px;line-height:1.2}.deco button span{white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:800;display:block;overflow:hidden}.deco button small{color:inherit;font-size:11px;font-weight:800;display:block}.deco button.can{background:var(--persimmon);color:#fff}.mascots{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px;display:grid}.mascot{background:var(--card);border:1.5px solid var(--line);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px;display:flex}.mascot.duty{border-color:var(--gold);box-shadow:0 0 0 2px #f2b53a4d}.mascot.unmet .mimg{filter:brightness(0)opacity(.25)}.mascot .mimg{object-fit:contain;width:54px;height:54px}.mascot b{font-size:13px}.mascot small{color:var(--ink2);font-size:10.5px;line-height:1.3}.mascot em{color:var(--wood2);font-size:10.5px;font-style:normal;font-weight:800}.mascot .bar{width:100%;height:6px;margin:2px 0}.mascot button{background:var(--night);color:#fff;border-radius:8px;padding:4px 8px;font-size:11px;font-weight:800}.mascot .owned-tag{font-size:11px}.helpers{flex-direction:column;gap:8px;display:flex}.helper{background:var(--card);border:1.5px solid var(--line);border-radius:14px;align-items:center;gap:8px;padding:8px;display:flex}.helper.working{border-color:#b9d29a}.helper.rank1{border-color:#c9a0e6}.helper.rank2{border-color:var(--gold);box-shadow:0 0 0 2px #f2b53a59}.helper .face{background:var(--paper2);border-radius:12px;flex:none;place-items:center;width:64px;height:76px;display:grid}.helper .himg{object-fit:contain;max-width:60px;max-height:72px}.helper .info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.helper .hname{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.helper .lv{color:var(--wood2);font-weight:900}.rankbadge{color:#fff;vertical-align:1px;background:#8a5cc2;border-radius:6px;padding:1px 6px;font-size:10px;font-weight:900}.helper.rank2 .rankbadge{background:var(--gold);color:var(--ink)}.helper small{color:var(--ink2);font-size:11px}.helper .bar{height:14px;margin:2px 0}.helper .bar .val{font-size:10.5px;line-height:14px}.helper .stories{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.story{background:var(--paper2);color:var(--wood2);border-radius:8px;padding:2px 7px;font-size:11px;font-weight:800}.story.locked{color:var(--ink2);opacity:.6}.helper .teach{background:var(--paper2);width:76px;color:var(--ink2);border-radius:10px;flex:none;padding:6px 4px;line-height:1.15}.helper .teach b{font-size:12px;display:block}.helper .teach small{color:inherit;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:800;display:block;overflow:hidden}.helper .teach.can{background:var(--night);color:#fff}.sheet .storyimg{object-fit:contain;height:120px;margin:0 auto 4px}.storytext{text-align:left;word-break:keep-all;margin:8px 4px;font-size:15px;line-height:1.6}.tabs button{font-size:13px}@media (width<=400px){.tabs button{letter-spacing:-.2px;padding-left:0;padding-right:0;font-size:12px}}.card.glutton .gtop{align-items:center;gap:10px;display:flex}.card.glutton .gimg{object-fit:contain;flex:none;width:72px;height:72px}.card.glutton .gtop>div{flex-direction:column;gap:2px;min-width:0;display:flex}.card.glutton small{color:var(--ink2);font-size:12px}.card.glutton button[disabled]{opacity:.55}button.wide:not(.primary):not(.danger){background:var(--paper2);color:var(--ink);border-radius:12px;padding:10px;font-weight:800}.item .lv{color:var(--ink2);font-size:11px;font-weight:700;display:inline}.keeps{flex-wrap:wrap;gap:6px;display:flex}.keep{background:var(--paper2);color:var(--ink2);border-radius:999px;padding:4px 8px;font-size:12px}.keep.own{background:var(--night);color:#ffe7a3;font-weight:800}.quest>.qbtns{flex:none;gap:6px;display:flex}button.mini{background:var(--persimmon);color:#fff;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:800}#bout{z-index:9;touch-action:none;background:radial-gradient(circle at 50% 40%,#3a2a5e,#120d24);place-items:center;display:grid;position:fixed;inset:0}#bout[hidden]{display:none}.bsheet{color:#fff3d6;text-align:center;flex-direction:column;align-items:center;gap:10px;width:min(420px,100%);padding:16px;display:flex}.bname{font-size:18px}.btime{background:#ffffff26;border-radius:4px;width:100%;height:8px;overflow:hidden}.btime i{transform-origin:0;background:#7fd3ff;height:100%;display:block}.bguest{place-items:center;height:min(44vh,320px);display:grid}.bguest .bimg{object-fit:contain;width:auto;max-width:100%;height:100%}.bguest.chomp{animation:.12s ease-out chomp}@keyframes chomp{0%{transform:scale(1.06,.94)}to{transform:scale(1)}}.bbar{background:#ffffff26;border-radius:13px;width:100%;height:26px;position:relative;overflow:hidden}.bbar i{background:linear-gradient(90deg, var(--gold), var(--persimmon));transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}.bbar span{font-size:13px;font-weight:900;line-height:26px;display:block;position:relative}.bhint{opacity:.85;margin:0;font-size:14px}#modal{z-index:10;background:#140c0699;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#modal[hidden]{display:none}.sheet{background:var(--paper);text-align:center;border-radius:18px;width:min(380px,100%);padding:18px;animation:.25s ease-out pop;box-shadow:0 10px 40px #0006}.sheet h2{margin:4px 0 8px;font-size:20px}.sheet .big{margin:8px 0;font-size:16px}.sheet .big b{color:var(--persimmon);font-size:20px}.sheet .banner{aspect-ratio:16/9;object-fit:cover;border-radius:12px;width:100%}.actions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.actions button{background:var(--paper2);border-radius:12px;padding:12px;font-weight:900}.actions button.primary{background:var(--persimmon);color:#fff}.actions button.danger{background:var(--red);color:#fff}.noimg{background:var(--paper2);border-radius:50%;display:block}@keyframes pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}@keyframes bob{50%{transform:translate(-50%,3px)}}@keyframes pulse{50%{transform:scale(1.06);box-shadow:0 0 0 4px #e07a2c80}}@keyframes glow{50%{box-shadow:0 0 0 4px #e07a2c59}}@keyframes slide{to{background-position:22px 0}}@media (width>=900px) and (aspect-ratio>=4/3){#app{grid-template:"hud tabs""stage panel"1fr"boost panel"/minmax(0,1.35fr) minmax(360px,1fr);max-width:1280px;height:100dvh;display:grid}.hud{grid-area:hud}.stage{aspect-ratio:auto;grid-area:stage;height:100%;min-height:0;max-height:none}#boostbar{grid-area:boost}.tabs{grid-area:tabs}#panel{border-left:2px solid var(--line);grid-area:panel}.guests{grid-template-columns:repeat(3,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.ad-caption{color:var(--ink2);text-align:center;margin:4px 0 0;font-size:11px}.actions .ad-caption{margin-top:-4px}#boostbar .ad-caption{color:#fff;opacity:.85;margin:2px 0 0;font-size:11px;display:block}
