:root{color:#24170f;background:#1d2438;font-family:WenQuanYi Micro Hei,Noto Sans CJK TC,PingFang TC,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden}button,input{font:inherit;color:inherit}button{border:2px solid #24170f;background:#fffaf3;border-radius:12px;padding:8px 12px;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button.on{outline:3px solid #e2b657}h1,h2,h3{font-weight:700;margin:0 0 8px}p{margin:0 0 8px}.eyebrow{letter-spacing:.08em;font-size:13px;margin-bottom:4px}.lede,.fine,.notice{color:#5c4636}.title-screen{--title-dock: clamp(132px, 18vh, 176px);--title-bleed: 12px;position:absolute;inset:0;overflow:hidden;background:#5c4e52;color:#4a2c12}.title-bg,.title-wash,.title-glow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.title-bg{inset:0 0 auto;width:100%;height:calc(100% - var(--title-dock) + var(--title-bleed));object-fit:cover;object-position:center bottom;-webkit-mask-image:linear-gradient(#000 calc(100% - 10px),transparent 100%);mask-image:linear-gradient(#000 calc(100% - 10px),transparent 100%)}.title-ground{position:absolute;left:0;right:0;bottom:0;height:calc(var(--title-dock) + var(--title-bleed));overflow:hidden;pointer-events:none;background-repeat:no-repeat;background-position:center top;background-size:100% auto}.title-ground-lit,.title-bg-lit,.title-wash,.title-glow{opacity:0}.title-wash{background:radial-gradient(ellipse at 50% 38%,#ffc48c80,#582e4838 46%,#20163061)}.title-glow{background:radial-gradient(ellipse at 14% 20%,rgba(255,214,150,.7),transparent 15%),radial-gradient(ellipse at 32% 14%,rgba(255,196,120,.5),transparent 12%),radial-gradient(ellipse at 50% 16%,rgba(255,186,110,.55),transparent 18%),radial-gradient(ellipse at 72% 18%,rgba(255,204,140,.5),transparent 14%),radial-gradient(ellipse at 88% 22%,rgba(255,176,96,.6),transparent 14%),radial-gradient(ellipse at 64% 36%,rgba(255,220,170,.35),transparent 16%);mix-blend-mode:screen}.title-screen[data-phase=lighting] .title-bg-unlit,.title-screen[data-phase=lighting] .title-ground-unlit{animation:title-unlit-out var(--title-light) linear forwards}.title-screen[data-phase=lighting] .title-bg-lit,.title-screen[data-phase=lighting] .title-ground-lit{animation:title-lit-in var(--title-light) linear forwards}.title-screen[data-phase=lighting] .title-wash{animation:title-wash var(--title-light) linear forwards}.title-screen[data-phase=lighting] .title-glow{animation:title-glow-in var(--title-light) linear forwards}.title-screen[data-phase=lit] .title-bg-unlit,.title-screen[data-phase=lit] .title-ground-unlit{opacity:0}.title-screen[data-phase=lit] .title-bg-lit,.title-screen[data-phase=lit] .title-ground-lit{opacity:1}.title-screen[data-phase=lit] .title-wash{opacity:0}.title-screen[data-phase=lit] .title-glow{opacity:.42}@keyframes title-unlit-out{0%{opacity:1}28%{opacity:1}62%{opacity:0}to{opacity:0}}@keyframes title-lit-in{0%{opacity:0}36%{opacity:0}86%{opacity:1}to{opacity:1}}@keyframes title-wash{0%{opacity:0}42%{opacity:.62}70%{opacity:.2}to{opacity:0}}@keyframes title-glow-in{0%{opacity:0}48%{opacity:.12}to{opacity:.42}}.title-logo-wrap{position:absolute;z-index:2;top:1.6vh;left:50%;display:flex;justify-content:center;width:min(72%,760px);margin:0;transform:translate(-50%);pointer-events:none}.title-logo{display:block;width:auto;max-width:100%;height:auto;max-height:20vh;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(36,16,8,.22))}.title-start{position:absolute;z-index:3;left:50%;bottom:max(12px,1.5vh);transform:translate(-50%);display:grid;place-items:center;min-width:min(420px,78%);margin:0;padding:16px 72px 34px;border:4px solid #5c3a1c;border-radius:28px;background-color:#d7a45a;background-image:repeating-linear-gradient(90deg,rgba(116,68,24,.09) 0 2px,transparent 2px 8px),linear-gradient(180deg,#f3d7a2,#e2b56a 22%,#d09a4e 58%,#c4883b);color:#4a2c12;font-size:clamp(1.9rem,3.2vw,3.15rem);font-weight:800;letter-spacing:.08em;line-height:1;white-space:nowrap;text-shadow:0 1px 0 rgba(255,244,220,.45);box-shadow:inset 0 2px #fff6e0cc,inset 0 -8px 12px #78441629,0 7px #6a3d16,0 14px 18px #1c0e0647}.title-start-label{position:relative;z-index:1}.title-leaf,.title-paw{position:absolute;pointer-events:none}.title-leaf{width:34px;height:34px;top:50%;margin-top:-8px}.title-leaf-left{left:16px}.title-leaf-right{right:16px;transform:scaleX(-1)}.title-paw{width:30px;height:24px;left:50%;bottom:8px;transform:translate(-50%)}.title-start:hover{filter:brightness(1.06);transform:translate(-50%) translateY(-2px)}.title-start:active{filter:brightness(.97);transform:translate(-50%) translateY(4px);box-shadow:inset 0 3px 6px #5a301033,0 3px #6a3d16,0 6px 10px #1c0e0638}.title-start:focus-visible{outline:3px solid #fff1c9;outline-offset:5px}@media(prefers-reduced-motion:reduce){.title-screen[data-phase=lighting] .title-bg-unlit,.title-screen[data-phase=lighting] .title-bg-lit,.title-screen[data-phase=lighting] .title-ground-unlit,.title-screen[data-phase=lighting] .title-ground-lit,.title-screen[data-phase=lighting] .title-wash,.title-screen[data-phase=lighting] .title-glow{animation:none}.title-screen[data-phase=lighting] .title-bg-unlit,.title-screen[data-phase=lighting] .title-ground-unlit,.title-screen[data-phase=lighting] .title-wash{opacity:0}.title-screen[data-phase=lighting] .title-bg-lit,.title-screen[data-phase=lighting] .title-ground-lit{opacity:1}.title-screen[data-phase=lighting] .title-glow{opacity:.42}}.field,.rename label,.import{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}input{border:2px solid #24170f;border-radius:10px;padding:8px 10px;background:#fff}.error{color:#9c3418}.plaza-shell{position:relative;height:100%;overflow:hidden;background:#1b2836}.plaza-canvas{display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.hud{position:absolute;z-index:5;top:calc(max(10px,.8vw) + env(safe-area-inset-top,0px));left:calc(max(12px,1vw) + env(safe-area-inset-left,0px));display:flex;flex-wrap:nowrap;gap:max(8px,.5vw);align-items:center;width:max-content;pointer-events:none}.hud>*{pointer-events:auto}.hud-chip,.hud button,.build-dock button{background:#fffaf3eb;border-radius:999px;padding:.35em .85em;font-size:max(14px,.95vw);line-height:1.2}.hud button,.hud-actions button{min-height:max(40px,2.5vw);min-width:max(72px,4vw)}.hud-chip{margin:0}.money-chip,.weather-chip,.phone-weather,.market-weather{display:inline-flex;align-items:center;gap:6px}.money-chip img,.weather-chip img,.phone-weather img,.market-weather img{width:22px;height:22px;object-fit:contain}.hud-actions{display:flex;gap:max(6px,.4vw)}.toast,.restock-hint{position:absolute;z-index:6;top:max(64px,4.6vw);left:50%;transform:translate(-50%);max-width:min(420px,calc(100% - 24px));margin:0;padding:8px 12px;background:#fff4d8f5;border:2px solid #24170f;border-radius:12px;text-align:center;font-size:15px}.restock-hint{background:#fff0e8}.restock-hint.below-toast{top:max(116px,8vw)}.offline-note{position:absolute;z-index:6;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 32px));margin:0;padding:14px 16px;background:#fffaf3f5;border:2px solid #24170f;border-radius:16px;text-align:center}.stall-card{position:absolute;z-index:5;display:grid;gap:8px;max-height:min(320px,calc(100% - 16px));overflow:auto;padding:10px;border-radius:16px;background:#fffaf3f5;border:2px solid #24170f}.stall-card h2{font-size:16px}.stall-actions{display:flex;flex-wrap:wrap;gap:6px}.stall-actions button{white-space:normal}.block-reason{margin:0;color:#9c3418;font-size:14px}.confirm-layer{position:absolute;inset:0;z-index:12;display:grid;place-items:center;background:#14100c59}.confirm-card{width:min(360px,calc(100% - 32px));padding:12px;border-radius:16px;background:#fffaf3;border:2px solid #24170f}.notice.banner{margin:0;padding:8px 10px;background:#fff4d8;border-radius:10px}.slot-hit,.animal-hit{position:absolute;z-index:2;margin:0;padding:0;min-height:0;background:transparent;border-color:transparent;color:transparent;touch-action:none;-webkit-user-select:none;user-select:none}.animal-hit{border-radius:999px}.build-strip{position:absolute;z-index:6;left:12px;right:108px;bottom:8px;height:168px;display:flex;flex-direction:row;gap:8px;padding:6px;border-radius:18px;background:#fffaf3f0;border:2px solid #24170f;pointer-events:auto}.build-strip-bar,.build-cards{display:flex;gap:8px}.build-cards{touch-action:pan-x}.build-strip-bar{flex-direction:column;justify-content:center}.build-strip-bar button,.phone-panel>button,.phone-panel article>button{min-height:44px}.build-strip-bar button{flex:0 0 auto;min-width:44px}.build-cards{flex:1;min-width:0;min-height:0;align-items:stretch;overflow-x:auto;overflow-y:hidden}.build-card{flex:0 0 180px;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:8px;min-height:44px;height:auto;padding:8px;overflow:hidden;text-align:left;line-height:1.3}.build-card img{width:48px;height:48px;object-fit:contain}.build-copy{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}.build-copy>*{min-width:0;max-width:100%}.build-name{font-size:16px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.build-cost,.build-effect,.build-status{font-size:15px;line-height:1.3}.build-cost{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.build-effect{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.build-status{align-self:flex-start;padding:2px 6px;border-radius:8px;background:#fff0e6;color:#9c3418;white-space:normal;overflow-wrap:anywhere}.build-strip button.build-card:disabled{opacity:1;filter:grayscale(1);color:#6d5c4e}.slot-hit[data-glow="1"]{background:#ffce4094;border-color:#fff6c8;box-shadow:0 0 0 4px #ffb020e6,0 0 26px 10px #ffc430f2;border-radius:999px}.hud-card{position:absolute;z-index:5;top:64px;right:12px;width:min(320px,calc(100% - 24px));max-height:min(420px,46vh);overflow:auto;padding:10px;border-radius:16px;background:#fffaf3f0;border:2px solid #24170f}.collection-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.codex-detail{grid-column:1 / -1}.hearts{display:inline-flex;gap:2px;font-style:normal}.hearts i{font-style:normal;color:#e4d5c8}.hearts i.on{color:#d4526a}.affinity-meter{display:block;height:6px;border-radius:99px;background:#efe4d4;overflow:hidden}.affinity-meter i{display:block;height:100%;background:#d4526a}.merchant-card{position:absolute;z-index:5;left:max(12px,1vw);bottom:max(92px,10vw);display:grid;gap:6px;width:min(220px,calc(100% - 24px));padding:10px;border-radius:16px;background:#fffaf3f5;border:2px solid #24170f}.merchant-card h2{margin:0;font-size:16px}.merchant-card img{width:72px;height:72px;object-fit:contain}.merchant-card button{min-height:44px}.collection-grid img{width:100%;height:72px;object-fit:contain}.codex-tabs{display:flex;gap:6px;margin-bottom:8px}.codex-tabs button{flex:1;min-height:44px}.product-row{display:flex;gap:6px;overflow-x:auto;margin-bottom:8px}.product-row figure{margin:0;min-width:64px;text-align:center}.product-row img{width:48px;height:48px;object-fit:contain}.product-row figcaption{font-size:13px}.level-banner{position:absolute;z-index:7;left:50%;top:18%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;min-height:44px;background:#fff4d8f5}.level-banner img{width:220px;height:auto}.xp-bar{height:12px;border:2px solid #24170f;border-radius:99px;overflow:hidden;margin-bottom:8px;background:#fff}.xp-bar span{display:block;height:100%;background:#e2b657}.swatch{width:36px;height:36px;border-radius:10px;border:2px solid #24170f;display:grid;place-items:center;color:#24170f}.sprite{display:block;width:72px;height:96px;background-repeat:no-repeat;border-radius:12px;border:2px solid #24170f}.sprite-wide{width:180px;height:100px}.detail,.animal-card,.collection-grid article,.hud-card article{margin-top:8px;padding:8px;border:2px solid #24170f;border-radius:12px;background:#fff}.job-row,.wish-row,.file-row{display:flex;flex-wrap:wrap;gap:6px}.animal-card{background:#fff4d8}.pan-hint{position:absolute;z-index:4;display:grid;place-items:center;pointer-events:none;opacity:.42}.pan-hint.is-fresh{animation:pan-hint-pulse 1.8s ease-in-out infinite}.pan-hint-left,.pan-hint-right{top:46%;width:28px;height:64px}.pan-hint-left{left:calc(2px + env(safe-area-inset-left,0px))}.pan-hint-right{right:calc(2px + env(safe-area-inset-right,0px))}.pan-hint-up,.pan-hint-down{left:50%;width:64px;height:28px;transform:translate(-50%)}.pan-hint-up{top:calc(8px + env(safe-area-inset-top,0px))}.pan-hint-down{bottom:calc(8px + env(safe-area-inset-bottom,0px))}.pan-chevron{width:12px;height:12px;border-left:3px solid rgba(255,246,200,.92);border-bottom:3px solid rgba(255,246,200,.92);filter:drop-shadow(0 1px 1px rgba(20,16,12,.45))}.pan-hint-left .pan-chevron{transform:rotate(45deg);margin-left:6px}.pan-hint-right .pan-chevron{transform:rotate(-135deg);margin-right:6px}.pan-hint-up .pan-chevron{transform:rotate(135deg)}.pan-hint-down .pan-chevron{transform:rotate(-45deg)}@keyframes pan-hint-pulse{0%,to{opacity:.25}50%{opacity:.72}}@media(prefers-reduced-motion:reduce){.pan-hint.is-fresh{animation:none}}.banner{position:absolute;left:16px;top:8px;z-index:6}.phone-charm-anchor{position:absolute;z-index:9;right:calc(8px + env(safe-area-inset-right,0px));bottom:env(safe-area-inset-bottom,0px);width:92px;height:150px;pointer-events:none}.phone-charm-anchor img{width:100%;height:100%;object-fit:contain;pointer-events:none;transform-origin:50% 8%}.phone-charm-anchor img.sway{animation:charm-sway 2.8s ease-in-out infinite}.phone-charm{position:absolute;inset:0;width:100%;height:100%;padding:0;border:none;background:transparent;pointer-events:auto;clip-path:polygon(37px 0,61px 0,61px 72px,88px 80px,88px 146px,4px 146px,4px 80px,37px 72px)}.phone-badge{position:absolute;top:28px;right:14px;width:14px;height:14px;border-radius:99px;background:#d64545;border:2px solid #fffaf3;pointer-events:auto}.phone-layer{position:absolute;inset:0;z-index:8}.phone-scrim{position:absolute;inset:0;margin:0;padding:0;border:none;border-radius:0;background:#100c1c47}.phone{position:absolute;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(118px + env(safe-area-inset-bottom,0px));z-index:1;aspect-ratio:288 / 425;height:calc(var(--phone-ratio, .6) * 100%);max-width:min(560px,calc(100vw - 20px));max-height:calc(100% - 128px);animation:phone-in .32s cubic-bezier(.18,.9,.22,1) both}@media(min-width:1100px)and (min-height:700px){.phone{height:calc(var(--phone-ratio, .6) * 120%)}}.phone.closing{animation:phone-out .24s ease-in both}.phone-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:2}.phone-screen{position:absolute;z-index:1;display:flex;flex-direction:column;overflow:hidden;border-radius:22px;color:#fffaf3;background:radial-gradient(circle at 18% 16%,rgba(255,196,120,.55),transparent 22%),radial-gradient(circle at 78% 12%,rgba(255,160,110,.4),transparent 18%),radial-gradient(circle at 40% 78%,rgba(255,214,150,.28),transparent 20%),linear-gradient(180deg,#2a2148,#6a4a78 46%,#c48a7a)}.phone-status,.phone-home,.phone-back{flex:none}.phone-status{display:flex;justify-content:space-between;align-items:center;padding:4px 8px 0;font-size:15px}.phone-body{flex:1;min-height:0;overflow:auto;padding:4px 6px 6px;touch-action:auto}.phone-apps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 2px}.phone-apps button,.phone-back,.phone-home{border:none;background:transparent;color:#fffaf3;text-shadow:0 1px 2px rgba(20,10,24,.7)}.phone-apps button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:44px;min-height:44px;padding:0;font-size:15px;line-height:1.2}.phone-apps img{width:86%;max-width:72px;height:auto;aspect-ratio:1;object-fit:contain}.phone-apps i{display:inline-block;margin-left:4px;min-width:16px;padding:0 4px;border-radius:99px;background:#d64545;font-style:normal;text-shadow:none}.phone-back{min-width:44px;min-height:44px;padding:0 8px;margin-bottom:4px;font-size:15px}.phone-home{margin:0 auto 4px;width:max-content;min-width:44px;min-height:44px;height:44px;border-radius:99px;background:#fffaf3eb;color:#24170f;text-shadow:none;border:2px solid #24170f;font-size:15px;padding:0 16px}.phone-panel{color:#24170f;text-shadow:none;font-size:15px;line-height:1.35}.restock-warning{margin:0 0 8px;padding:8px;border-radius:12px;background:#fff0e8;color:#9c3418;font-size:15px}.phone-panel h3{font-size:15px;margin-bottom:4px}.phone-panel p{margin-bottom:4px}.phone-panel button,.phone-panel input{max-width:100%}.phone-panel input:not([type=checkbox]):not([type=file]){width:100%}.phone-panel .job-row button,.phone-panel .file-row button,.phone-panel .import{min-height:44px;padding:8px 10px;font-size:15px}.phone-panel article{margin-top:6px;padding:6px;border:2px solid #24170f;border-radius:12px;background:#fffaf3f0}.letter-sheet{background-color:#fff8e8;background-size:100% 100%;background-repeat:no-repeat;min-height:150px;padding:22px 16px 16px 36px;border:none;box-shadow:0 8px 16px #24170f2e}.reduce-motion{display:flex;gap:8px;align-items:center;margin-top:8px}@keyframes charm-sway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(6deg)}}@keyframes phone-in{0%{transform:translate(28px,46%) scale(.86);opacity:0}to{transform:none;opacity:1}}@keyframes phone-out{0%{transform:none;opacity:1}to{transform:translate(28px,46%) scale(.86);opacity:0}}@media(prefers-reduced-motion:reduce){.phone-charm-anchor img,.phone{animation:none}}[data-reduce-motion="1"] .phone-charm-anchor img,[data-reduce-motion="1"] .phone{animation:none}
