:root{font-family:Microsoft YaHei,PingFang SC,sans-serif;color:#354c3e;background:#273d36;font-synthesis:none;--paper:#fff9e9;--ink:#355447;--gold:#bca06c;--pink:#d7a296}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;cursor:pointer;border:0;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible{outline:3px solid #d09b6d;outline-offset:3px}#app{position:relative;width:100vw;height:100dvh;overflow:hidden;max-width:1600px;margin:auto;background:#bfcf9f}#game,#ui{position:absolute;inset:0}#game canvas{display:block}#game{touch-action:none}#ui{pointer-events:none;overflow:hidden}#ui button,#ui input,#ui a{pointer-events:auto}button{min-height:44px}button:hover{filter:brightness(1.04)}.title-screen{position:absolute;inset:0;background:linear-gradient(90deg,#f4efdceF 0%,#f4efdce3 26%,#f4efdc55 58%,transparent 82%);padding:8vh 9vw}.title-copy{max-width:430px}.eyebrow{font-size:11px;letter-spacing:4px;color:#7a8d6b}.title-copy h1{font-family:STKaiti,KaiTi,serif;font-size:clamp(40px,8.5vh,80px);font-weight:500;line-height:1.12;margin:3vh 0;color:#43614c;letter-spacing:7px}.title-copy h1 span{display:block;font-size:1.3em;letter-spacing:10px}.title-copy p{font-size:12px;line-height:2.1;color:#7d8068;margin:2vh 0 3vh}.primary{color:#fff7e1;background:#4c7158;min-width:185px;border-radius:4px;padding:13px 22px;letter-spacing:3px;box-shadow:0 5px 14px #2d513326}.primary span{margin-left:20px;color:#e7cba1}.title-copy small{display:block;color:#8c9278;font-size:10px;margin-top:15px;letter-spacing:2px}.title-stamp{position:absolute;right:7%;top:12%;border:1px solid #ac6e5a;color:#ac6e5a;padding:9px 8px;font-family:serif;line-height:1.6;font-size:15px;transform:rotate(3deg)}.title-footer{position:absolute;bottom:18px;left:9vw;right:5vw;font-size:10px;color:#748065;letter-spacing:2px;display:flex;justify-content:space-between}.topbar{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:9px;background:#fff9e7ef;padding:8px 15px;border-radius:6px;box-shadow:0 3px 12px #45633d14;color:#ac8071}.brand span{font-family:serif;font-size:19px;color:#45634b;letter-spacing:3px}.brand small{border-left:1px solid #d7d5ba;padding-left:10px;font-size:10px;letter-spacing:1px;color:#7c876a}.chapter{font-size:11px;letter-spacing:2px;color:#fdf7e7;text-shadow:0 2px 6px #36543c}.objective{position:absolute;top:76px;left:22px;display:flex;gap:9px;align-items:center;background:#fff9e8e8;border:1px solid #f8f1d9;border-radius:6px;padding:10px 16px;max-width:310px}.objective-mark{color:#b78a60;font-size:25px}.objective small{color:#9b9f7d;font-size:9px;letter-spacing:2px}.objective p{font-size:12px;margin:4px 0 0;color:#4f6349}.game-footer{position:absolute;bottom:17px;left:50%;transform:translate(-50%);font-size:10px;color:#f7f2d9;letter-spacing:3px;text-shadow:0 1px 5px #35482f}#joystick-zone{position:absolute;bottom:env(safe-area-inset-bottom);left:env(safe-area-inset-left);width:36%;height:48%;touch-action:none;pointer-events:auto;user-select:none}.stick-hint{position:absolute;bottom:30px;left:50px;width:106px;height:106px;border:1px solid #fbf7e88c;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:40px;color:#f9f5e8b0;background:#f4efd824;box-shadow:inset 0 0 18px #e8edc52b}.stick-hint small{position:absolute;bottom:-23px;white-space:nowrap;left:15px;font-size:10px;letter-spacing:2px;color:#fff9e8}.stick-base{position:absolute;left:103px;top:calc(100% - 83px);width:104px;height:104px;border-radius:50%;border:1px solid #fff9e6aa;background:#fff9e82b;transform:translate(-50%,-50%);display:none;align-items:center;justify-content:center;pointer-events:none}.stick-base.active{display:flex}.stick-thumb{width:43px;height:43px;border-radius:50%;background:#fbf4dcbb;border:2px solid #fffae9;box-shadow:0 3px 14px #2e553b26}.stick-base.active~.stick-hint{opacity:0}.interact{position:absolute;bottom:28px;right:38px;width:96px;height:96px;border:1px solid #f9f0ce;background:#fff5d9e0;border-radius:50%;color:#5a7050;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 5px 20px #38553425;touch-action:none}.interact span{font-size:28px;line-height:1.2}.interact small{font-size:11px;letter-spacing:1px;margin-top:5px}.interact:disabled{opacity:.55}.interact.ready{box-shadow:0 0 0 6px #fff5d925,0 5px 20px #38553425}.toolbar{display:flex;gap:8px}.tool-button{height:44px;min-width:44px;background:#fff9e8eb;color:#587052;border-radius:6px;font-size:16px}.tool-button small{font-size:10px}.counter{background:#fff9e8e8;padding:7px 11px;border-radius:5px;font-size:11px;display:flex;align-items:center;gap:7px}.counter-group{display:flex;gap:6px}.toast{position:absolute;left:50%;top:26%;transform:translate(-50%);background:#375240ed;color:#fff8e6;border:1px solid #ece2bc50;box-shadow:0 5px 15px #29473020;border-radius:6px;padding:12px 22px;font-size:12px;max-width:70%;text-align:center;z-index:20;pointer-events:none}.modal-shade{position:absolute;inset:0;background:#213a3077;display:flex;align-items:center;justify-content:center;pointer-events:auto;padding:14px;z-index:30;backdrop-filter:blur(3px)}.dialog{width:min(520px,85vw);max-height:calc(100dvh - 28px);overflow:auto;background:#fff8e8;border:1px solid #fffdf3;border-radius:12px;padding:25px 30px;box-shadow:0 16px 60px #203d3540}.dialog .eyebrow{font-size:9px}.dialog h2{font-family:serif;font-size:24px;font-weight:500;color:#486548;margin:9px 0 14px;letter-spacing:3px}.dialog p{font-size:13px;line-height:1.9;color:#6e785d;white-space:pre-line}.dialog-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.dialog-actions button{padding:10px 18px;background:#4f7358;border-radius:5px;color:#fff9e9;font-size:12px}.dialog-actions button.secondary{background:#eae7d2;color:#6c795d}.dialog-actions button:disabled{opacity:.45}.dialog-close{float:right;background:transparent;color:#8d977c;width:44px;font-size:20px;margin:-12px -17px 0 0}.inventory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.inventory-item{border:1px solid #e5e3cb;border-radius:7px;padding:15px 6px;text-align:center;color:#6c7f57;font-size:12px}.inventory-item strong{display:block;font-size:24px;margin-bottom:5px}.inventory-item span{display:block;color:#a2a786;font-size:11px;margin-top:6px}#rotate{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,#f4eed8,#d8dfb8);display:none;align-items:center;justify-content:center;flex-direction:column;text-align:center;z-index:90;color:#567251}#rotate>span{font-size:80px;color:#a9ba83}#rotate h2{font-family:serif;font-weight:500;font-size:22px}#rotate p{font-size:12px;color:#8a9475}#loading{position:absolute;inset:0;background:#eee9d3;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6c825b;z-index:100}#loading p{font-size:12px;letter-spacing:3px}.loading-flower{font-size:44px;color:#cf9d92;animation:breathe 2s infinite}@keyframes breathe{50%{transform:rotate(20deg) scale(1.1);opacity:.5}}#continue-slot button{margin-top:10px;background:#eee8d3;color:#6d8060;padding:10px 22px;min-width:185px;border-radius:4px;font-size:12px;letter-spacing:2px}@media(orientation:portrait){#rotate{display:flex}#joystick-zone{pointer-events:none}}@media(max-height:440px){.title-screen{padding-top:5vh}.title-copy h1{margin:2vh 0;font-size:10vh}.title-copy p{font-size:11px;margin:1vh 0 2vh}.title-copy small{margin-top:8px}.topbar{top:10px;left:12px;right:12px}.brand{padding:6px 10px}.brand span{font-size:17px}.objective{left:12px;top:64px;padding:7px 11px}.stick-hint{left:35px;bottom:25px;width:92px;height:92px}.interact{width:82px;height:82px;right:25px;bottom:24px}.dialog{padding:16px 23px}.dialog h2{font-size:21px;margin:5px 0 10px}.dialog p{font-size:12px}.dialog-actions{margin-top:10px}.counter{padding:7px}.chapter{display:none}.game-footer{font-size:9px}.tool-button{min-width:44px}}.toast{z-index:60}#continue-slot{display:flex;gap:8px;flex-wrap:wrap}#continue-slot button{min-width:140px}#continue-slot .import-on-title{background:transparent;font-size:10px;color:#86926f;letter-spacing:1px;min-width:125px}.title-copy:has(#continue-slot button:nth-child(2))>small{margin-top:8px}.title-copy p{max-width:420px}.stick-hint{pointer-events:none}#joystick-zone:has(.stick-base.active) .stick-hint{opacity:0}.interact{right:max(38px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom))}.topbar{z-index:2}.dialog-content{font-size:12px;color:#6e785d}@media(max-height:440px){.topbar{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}.objective{left:max(12px,env(safe-area-inset-left))}.interact{right:max(25px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom))}.title-copy h1{font-size:9vh}.title-copy>small{margin-top:5px}.title-copy p{margin-bottom:10px}.title-copy .primary{padding:10px 20px}}.title-screen{background:linear-gradient(90deg,#fff7e9f5,#fff7e9eb 27%,#fff7e975,#fff7e908 65%)}.title-copy{max-width:350px}.title-footer{color:#5e634b;text-shadow:0 1px 4px #fff7df}.title-stamp{background:#fff6e3c9}.dialog-portrait{float:left;width:106px;margin:3px 18px 10px 0;background-repeat:no-repeat;border-radius:8px;filter:drop-shadow(0 3px 5px #715a3020)}.dialog-actions{clear:both}.objective,.brand,.counter,.tool-button{box-shadow:0 3px 14px #55452d20;border:1px solid #fff9e6b0}.objective{background:#fff9ecef}.game-footer{color:#fff8e9;text-shadow:0 1px 5px #66543e}#loading button{padding:12px 25px;border-radius:6px;background:#54715a;color:#fff9e8}@media(max-height:440px){.dialog-portrait{width:82px;margin-right:13px}.title-copy{max-width:325px}.title-screen{padding-left:7vw}}.title-screen{background:linear-gradient(90deg,#fff7e9f5,#fff7e9e8 28%,#fff7e9a0,#fff7e900 48%)}.title-stamp{top:6%;right:5%;font-size:12px;padding:6px}.interact>*{pointer-events:none}.story-dialog{width:min(880px,94vw);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);column-gap:26px;position:relative;align-content:start}.story-dialog>.story-art{grid-column:1;grid-row:1 / span 5;min-height:300px;background-image:url(../art/story-moments.png);background-size:200% 200%;border-radius:8px;box-shadow:0 5px 20px #63553820}.story-dialog>:not(.story-art):not(.dialog-close){grid-column:2}.story-dialog>.dialog-close{position:absolute;right:12px;top:12px;margin:0;background:#fff8e8dc;border-radius:50%;z-index:1}.story-dialog h2{padding-right:18px}.story-dialog p{margin:4px 0 10px;line-height:1.9}.story-dialog .dialog-actions{clear:none;align-self:end;margin-top:14px}.story-dialog .dialog-content{font-size:10px;color:#9a987d;letter-spacing:1px}.journal-pages{display:grid;gap:12px}.journal-pages article{padding:12px 15px;background:#f3eedb;border-left:3px solid #c7a27d;border-radius:4px}.journal-pages h3{font-family:serif;font-size:16px;font-weight:500;margin:0 0 6px;color:#587050}.journal-pages p{margin:0}.journal-replay{background:#e6e9d4;color:#526b4b;text-align:left;padding:10px 15px;border-radius:5px}.interact[data-busy=true]{opacity:.65}@media(max-height:500px){.story-dialog{column-gap:17px;padding:16px 20px}.story-dialog>.story-art{min-height:242px}.story-dialog h2{font-size:21px}.story-dialog p{font-size:12px;line-height:1.8}.story-dialog .dialog-actions{margin-top:7px}.story-dialog .dialog-actions button{padding:8px 12px}.story-dialog .eyebrow{font-size:8px;letter-spacing:2px}.story-dialog .dialog-content{font-size:9px}}.chapter-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#fff8e9;color:#506e55;pointer-events:auto;z-index:10000}.chapter-loading button{min-height:44px;padding:12px 24px;border:0;border-radius:8px;background:#507158;color:#fff}.home-bell-art{width:112px;height:112px;margin:0 auto 8px;background-image:url(../art/home-props.png);background-size:300% 200%;background-repeat:no-repeat}.bell-pieces{display:flex;gap:12px;justify-content:center;margin:12px 0}.bell-piece{display:flex;flex:1;max-width:130px;min-height:98px;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:12px;border:1px solid #cbb779;border-radius:12px;background:#f5efd9;color:#50644b}.bell-piece:disabled{opacity:.75}.bell-leaf{display:block;width:30px;height:42px;background:linear-gradient(110deg,#c1a85b,#dfca84,#a08d4e);clip-path:polygon(50% 0%,85% 28%,98% 60%,83% 84%,51% 100%,18% 85%,2% 61%,15% 28%);transform-origin:50% 50%}.bell-piece small{font-size:11px;white-space:nowrap}@media(max-height:500px){.home-bell-art{width:62px;height:62px;margin-bottom:2px}.bell-pieces{margin:6px 0;gap:8px}.bell-piece{min-height:76px;padding:8px}.bell-leaf{width:23px;height:32px}}.family-assembly{position:relative;overflow:hidden}.family-people{position:absolute;bottom:5%;left:0;width:100%;aspect-ratio:1.8;max-height:90%}.family-people img{position:absolute;bottom:0;width:auto;height:80%;max-width:none;transform:translate(-50%);pointer-events:none}.family-people [data-person=paternalGrandfather]{left:8%}.family-people [data-person=paternalGrandmother]{left:24%;height:74%}.family-people [data-person=maternalGrandmother]{left:76%;height:74%}.family-people [data-person=maternalGrandfather]{left:92%}.family-people .gathering-base{left:12%;width:66%;height:auto;transform:none}.festival-dialog{width:min(850px,94vw)}.festival-workbench{display:grid;grid-template-columns:180px minmax(0,1fr);gap:22px;margin:15px 0}.festival-preview{display:flex;flex-direction:column;align-items:center;padding:18px 8px;border-radius:12px;background:radial-gradient(ellipse at 50% 35%,#f2dab188,transparent 70%),#f2eddf}.festival-lantern{position:relative;width:88px;aspect-ratio:246/611;flex-shrink:0}.festival-prop{background-repeat:no-repeat;margin:0 auto;width:160px}.festival-lantern>.festival-prop{width:100%}.lantern-motif{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-size:27px;color:#785648;text-shadow:0 1px 2px #fff7da;line-height:1}.festival-controls fieldset{border:0;border-top:1px solid #d9c9ab;padding:10px 0 5px;margin:0 0 7px;display:flex;flex-wrap:wrap;gap:7px}.festival-controls legend{font-size:12px;color:#6b7557;padding-right:10px}.festival-controls button{min-height:40px;padding:8px 12px;border:1px solid #cfc2a5;border-radius:7px;background:#fff9e9;color:#586749;font-size:12px}.festival-controls button[aria-pressed=true]{border-color:#587859;background:#e3ead8;box-shadow:inset 0 0 0 1px #587859}.festival-controls button:disabled{opacity:.4}.festival-note{font-size:11px!important;color:#8a8066;line-height:1.7!important}.festival-companion{margin-top:16px;text-align:center;width:100%}.festival-companion .dialog-portrait{float:none;width:72px;margin:0 auto 8px}.festival-companion p{font-size:11px;line-height:1.7;margin:0}.festival-prop-flowers,.festival-prop-soup{max-height:150px;width:140px}.festival-story-light{position:absolute;right:7%;top:5%;padding:8px 20px;background:radial-gradient(ellipse,#ffda9255,transparent 72%);border-radius:50%}.festival-story-light .festival-lantern{width:42px}.festival-story-light .lantern-motif{font-size:15px}.story-art:has(.festival-story-light){position:relative;background-color:#344453;background-blend-mode:soft-light}.festival-preview .festival-prop-lamp{max-height:none}@media(max-height:500px){.festival-workbench{grid-template-columns:115px minmax(0,1fr);gap:14px;margin:8px 0}.festival-preview{padding:12px 6px}.festival-lantern{width:60px}.lantern-motif{font-size:20px}.festival-controls fieldset{padding-top:6px;margin-bottom:4px}.festival-controls button{min-height:36px;padding:6px 10px}.festival-companion{margin-top:8px}.festival-companion .dialog-portrait{width:50px}.festival-dialog>.dialog-actions{position:sticky;bottom:-20px;background:#fff9ecf5;padding:8px 0;margin:0}.festival-companion p{font-size:10px}}
