.sheet{color:#384635;background:#f9f8f1;max-width:100%;position:fixed;box-shadow:-20px 0 80px #29331f17}.sheet::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#26321e30}.sheet-heading{border-bottom:1px solid #e4e5d9;justify-content:space-between;align-items:center;gap:15px;display:flex}.sheet-heading h2{letter-spacing:1px;margin:11px 0 0;font-family:Songti SC,SimSun,serif;font-weight:500}.panel-intro{margin:0 0 23px}.balance-banner{background:#edf0e2;align-items:center;display:flex}.balance-banner strong{color:#667c50;font-weight:500}.wish-grid{gap:12px;display:grid}.wish-option{background:#fffef8;border:1px solid #e4e5d6;flex-direction:column;align-items:flex-start}.wish-symbol{color:#9b8559;background:#efecde;border-radius:50%;place-items:center;font-family:serif;display:grid}.wish-option h3{font-weight:500}.wish-option p{flex:1;font-family:Songti SC,SimSun,serif}.primary-button{color:#fffdf2;background:#657a54;border-radius:8px;min-height:38px;padding:11px 14px;font-size:11px}.primary-button:hover:not(:disabled){background:#4f6740}.primary-button:disabled{color:#9ca48e;opacity:1;background:#e7e9dd}.wish-option .primary-button{width:100%}.wish-option input{background:#fafaf4;border:1px solid #e0e3d2;margin-bottom:12px}.gentle-note{text-align:center;margin:20px 0 30px;line-height:1.7}.kept-wish{border-bottom:1px solid #e4e5d9;gap:17px}.wish-stamp{color:#a8644e;writing-mode:vertical-rl;border:1px solid #c8a99a;flex-shrink:0;place-items:center;width:30px;height:34px;font-family:serif;font-size:19px;display:grid;transform:rotate(-5deg)}.kept-wish h3{margin:0 0 8px;font-weight:500}.kept-wish p{margin:0 0 8px;font-family:serif}.empty-state{text-align:center;color:#9da38c;padding:30px 5px;font-size:12px;line-height:2}.secondary-button{color:#788966;border:1px solid #d9dfcb;border-radius:8px;padding:10px 15px;font-size:11px}.secondary-button:hover{background:#ecf0e2}.full-width{width:100%;margin-top:15px}.segmented{background:#ecede2;gap:4px;display:flex}.segmented button{color:#8d977e;flex:1}.segmented button.selected{color:#536c42;background:#fffef7;box-shadow:0 2px 7px #46573309}.preview-note{align-items:center;gap:6px;margin:0 0 20px;display:flex}.preview-note svg{width:14px;height:14px}.skin-grid{grid-template-columns:1fr 1fr;display:grid}.skin-card{background:#fffef8;border:1px solid #e1e5d3;position:relative}.skin-card.equipped{background:#f2f5e9;border-color:#95a87b}.skin-card.previewing{box-shadow:inset 0 0 0 1px #b8a779}.skin-state{align-items:center;gap:3px;min-height:15px;display:flex}.skin-state svg{width:13px;height:13px}.skin-art{place-items:center;display:grid}.skin-card h3{font-weight:500}.skin-card p{margin:0 0 15px}.skin-actions{align-items:stretch;display:flex}.skin-actions button{white-space:nowrap}.skin-actions .secondary-button{align-items:center;gap:3px;display:flex}.skin-actions .primary-button{flex:1}.achievement-summary{background:#edf0e4;border-radius:13px;align-items:center;margin-bottom:24px;display:flex}.achievement-summary>svg{color:#9aa982;width:40px;height:40px}.achievement-summary strong{font-size:32px;font-weight:400}.achievement-summary small{color:#a0a98e;font-size:16px}.achievement-summary span{color:#9ba48a;margin-top:4px;font-size:10px;display:block}.achievement-summary p{color:#9aa189;text-align:right;margin-left:auto;font-size:10px;line-height:2}.achievement-summary b{color:#72845e;font-size:17px;font-weight:500}.achievement-row{border-bottom:1px solid #e4e6d8;align-items:flex-start;padding:20px 0;display:flex}.achievement-icon{color:#afb59d;background:#efefe5;border-radius:12px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.achievement-icon svg{width:19px;height:19px}.achievement-row>div{flex:1}.achievement-row h3{margin:0 0 7px;font-weight:500}.achievement-row p{margin:0 0 12px}.achievement-row small{margin-top:7px;display:block}.achievement-badge{white-space:nowrap;margin-top:6px}.achieved .achievement-icon{color:#6b8550;background:#e1e9d1}.achieved .achievement-badge{color:#7a915e}.seasons-honor{background:radial-gradient(circle at 90% 10%,#e9d5a966,#0000 50%),#edf0e4;border:1px solid #c6b889;box-shadow:inset 0 0 0 5px #f8f5e9}.settings-group{background:#fffef7;border:1px solid #e3e6d6;margin-bottom:18px}.settings-group h3{margin:0 0 15px;font-weight:500}.setting-row{cursor:pointer;border-bottom:1px solid #edf0e3;justify-content:space-between;align-items:center;padding:18px 0;display:flex}.setting-row:last-child{border-bottom:0;padding-bottom:0}.setting-row b{font-weight:400;display:block}.setting-row small{margin-top:7px;display:block}.setting-row input{appearance:none;cursor:pointer;background:#dfe4d3;border-radius:20px;flex-shrink:0;transition:background .15s;position:relative}.setting-row input:before{content:"";background:#fffdf4;border-radius:50%;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0001}.setting-row input:checked{background:#81966c}.volume-setting{padding:20px 0 5px;display:block}.volume-setting>span{color:#939f81;justify-content:space-between;font-size:11px;display:flex}.volume-setting b{font-weight:400}.volume-setting input{accent-color:#7e9566;cursor:pointer;width:100%}.settings-group p{color:#9aa18c;font-size:11px;line-height:1.9}.settings-group>small{color:#a3a98f;margin-top:18px;font-size:10px;line-height:1.8;display:block}.backup-actions{flex-wrap:wrap;align-items:center;margin-top:20px;display:flex}.backup-actions .primary-button{align-items:center;gap:6px;display:flex}.backup-actions svg{width:14px;height:14px}.settings-about{background:0 0;border:0;padding-top:12px}.settings-about a{text-underline-offset:4px;color:#879976;align-items:center;gap:5px;margin-top:5px;font-size:10px;text-decoration:underline;display:inline-flex}.settings-about svg{width:12px;height:12px}.save-card{color:#697b58;vertical-align:middle;background:#fbfbf5;border:1px solid #d9dfcb;border-radius:8px;justify-content:center;align-items:center;gap:5px;min-height:36px;margin:8px 0 0 12px;padding:7px 11px;line-height:1.3;display:inline-flex}.save-card svg{flex:none;width:14px;height:14px}.sheet[open]{flex-direction:column;display:flex;overflow:hidden}.sheet-heading{flex-shrink:0}.sheet-content{overscroll-behavior:contain;min-height:0;overflow-y:auto}body:has(dialog[open]){overflow:hidden}.skin-art img{object-fit:contain;width:100%;max-width:100%;height:100%;min-height:0;display:block}:root{color:#384635;font-synthesis:none;--green:#506747;--ink:#384635;--muted:#909583;--line:#e5e5d9;--cream:#fbfaf5;--gold:#b69255;background:#f7f6ef;font-family:Microsoft YaHei,PingFang SC,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:5px;outline:2px solid #8b9d72}svg{flex-shrink:0;width:22px;height:22px}a{color:inherit;text-decoration:none}.app-shell{margin:0 auto}.topbar{justify-content:space-between;align-items:center;display:flex}.brand{white-space:nowrap;align-items:center;font-weight:600;display:flex}.brand-mark{background:var(--green);color:#fff9e9;place-items:center;display:grid}.brand-mark svg{width:29px;height:29px}.top-tools{align-items:center;display:flex}.merit-pill{color:#ac884d;white-space:nowrap;border:1px solid #e8dfc9;border-radius:24px;align-items:center;display:flex}.merit-pill svg{width:17px;height:17px}.merit-pill b{font-variant-numeric:tabular-nums;font-weight:600}.icon-button{border-radius:50%;place-items:center;display:inline-grid}.icon-button:hover{background:#eaece0}.eyebrow{color:#8c987e;letter-spacing:3px;align-items:center;gap:8px;font-size:10px;display:inline-flex}.play-layout{align-items:center;gap:30px}.stage-wrap{min-width:0;position:relative}.strike-zone{touch-action:manipulation;-webkit-user-select:none;user-select:none;padding:0;position:absolute}.viewport{pointer-events:none;position:absolute}.viewport canvas{width:100%;height:100%;display:block}.fallback-fish{max-width:350px}.fallback-fish svg{width:100%;height:auto}.tap-hint{justify-content:center;align-items:center;gap:8px;display:flex;position:absolute}.tap-ring{border:1px solid #a0aa91;border-radius:50%;box-shadow:0 0 0 3px #a0aa910d}.floating-merit{color:#a0844e;opacity:0;pointer-events:none;font-family:SimSun,serif;position:absolute}.floating-merit.rise{animation:.9s ease-out merit-rise}.progress-track{background:#e8ebdf;border-radius:8px;height:4px;overflow:hidden}.progress-track>span{background:#9aaa83;border-radius:8px;height:100%;transition:width .3s;display:block}.text-button{color:#7d8b6c;align-items:center;gap:7px;padding:0;font-size:11px;display:inline-flex}.text-button svg{width:15px;height:15px}.stats-strip{max-width:720px}.stats-strip span{display:block}.stats-strip strong{font-variant-numeric:tabular-nums;font-weight:400}footer{align-items:center;gap:20px;display:flex}.save-status{align-items:center;display:flex}.save-status svg{color:#9bac88}footer .text-button{font-size:9px}.toast{opacity:0;pointer-events:none;color:#fbf9eb;z-index:20;background:#42553d;border-radius:13px;max-width:90vw;transition:all .25s;position:fixed;left:50%;transform:translate(-50%,15px);box-shadow:0 8px 30px #26331b22}.toast.visible{opacity:1;transform:translate(-50%)}.calm-mode .stats-strip,.calm-mode .merit-pill,.calm-mode .floating-merit{visibility:hidden}.reduced-motion *{transition:none!important;animation:none!important}.startup-error{text-align:center;max-width:500px;margin:18vh auto;padding:28px;line-height:1.8}.startup-error button{border:1px solid #a8b591;border-radius:20px;padding:9px 25px}@keyframes merit-rise{0%{opacity:0;transform:translate(-50%,12px)}15%{opacity:1}to{opacity:0;transform:translate(-50%,-55px)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.scene-loading{letter-spacing:1px;color:#8a937c;place-items:center;width:100%;height:100%;font-size:13px;display:grid}.bottom-nav{z-index:10;padding:8px max(12px, env(safe-area-inset-left,0px)) calc(8px + env(safe-area-inset-bottom,0px));background:#fbfaf5f5;border-top:1px solid #e4e6d9;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -6px 24px #35462a06}.bottom-nav button{color:#78846c;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:56px;font-size:12px;display:flex}.bottom-nav button[aria-current=page]{color:#47603b;background:#e8edde;font-weight:600}.bottom-nav svg{width:23px;height:23px}.toast{bottom:calc(90px + env(safe-area-inset-bottom,0px))}.atmosphere-art{pointer-events:none;border-radius:inherit;background:linear-gradient(160deg,var(--sky),var(--haze));position:absolute;inset:0;overflow:hidden}.atmosphere-art:before{content:"";background:radial-gradient(ellipse at 72% 32%,var(--light),transparent 58%);opacity:var(--light-alpha);position:absolute;inset:0}.stage-wrap[data-season=none][data-daylight=afternoon]>.atmosphere-art,[data-season=none] .branch-shadow,[data-season=none] .season-motes{display:none}[data-daylight=dawn]>.atmosphere-art:before{background:radial-gradient(ellipse at 95% 12%,var(--light),transparent 60%)}[data-daylight=night]>.atmosphere-art:before{background:radial-gradient(ellipse at 83% 15%,var(--light),transparent 40%)}.window-light{width:75%;height:65%;opacity:var(--window-opacity);background:repeating-linear-gradient(90deg,transparent 0 31%,var(--window-color) 32% 33%,transparent 34% 64%),repeating-linear-gradient(0deg,transparent 0 47%,var(--window-color) 48% 49%,transparent 50%);filter:blur(2px);position:absolute;top:-8%;right:-18%;transform:rotate(-25deg);-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.branch-shadow{border-left:3px solid var(--leaf);width:120px;height:240px;opacity:var(--branch-opacity);filter:blur(1px);border-radius:70%;position:absolute;top:-12px;right:-24px;transform:rotate(24deg)}.branch-shadow:before,.branch-shadow:after{content:"";background:var(--leaf);width:52px;height:18px;box-shadow:12px 53px 0 var(--leaf),24px 106px 0 var(--leaf),43px 156px 0 var(--leaf);border-radius:0 90%;position:absolute;top:30px;left:-38px;transform:rotate(-30deg)}.branch-shadow:after{top:50px;left:10px;transform:scaleX(-1)rotate(-30deg)}[data-season=summer] .branch-shadow,[data-season=winter] .branch-shadow,[data-season=seasons] .branch-shadow{display:none}.season-motes{position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 40% 60%,#000);mask-image:linear-gradient(90deg,#000,#0000 40% 60%,#000)}.season-motes i{left:calc(4% + var(--i)*8%);background:var(--mote-color);width:8px;height:8px;opacity:var(--mote-opacity);animation:12s linear infinite season-drift;animation-delay:calc(var(--i)*-1.7s);border-radius:80% 0;position:absolute;top:-14px}[data-season=summer] .season-motes i{background:linear-gradient(to bottom,transparent,var(--mote-color) 35%,var(--mote-color) 80%,transparent);width:1.5px;height:36px;animation-name:rain-fall;animation-duration:1.8s;animation-delay:calc(var(--i)*-.31s);border-radius:1px;transform:rotate(-8deg)}[data-season=autumn] .season-motes i{width:5px;height:5px;box-shadow:3px 0 0 var(--flower-edge),-2px 2px 0 var(--flower-edge);border-radius:35%}[data-season=winter] .season-motes i{width:5px;height:5px;box-shadow:0 0 0 .6px var(--snow-edge),0 1px 2px #294a5c26;border-radius:50%;animation-duration:16s}.season-motes .extra-snow{display:none}[data-season=winter] .season-motes .extra-snow{display:block}[data-season=seasons] .season-motes i{border-radius:50%;width:3px;height:3px}.hearth-glow{opacity:var(--hearth-opacity);background:radial-gradient(at 25% 100%,#e2a6579c,#0000 66%);position:absolute;inset:45% -30% -30%}.reward-card{background:#fcfaf3;border:1px solid #d9d6be;border-radius:20px;margin:20px 0;overflow:hidden;box-shadow:0 7px 20px #59603c08}.reward-art{background:radial-gradient(at 50% 32%,#f4e8c7,#ded3b6);height:180px;position:relative;overflow:hidden}.reward-art[data-season=blessing]{background:radial-gradient(at 50% 40%,#7d6649,#30291f)}.reward-art>img{object-fit:contain;width:100%;height:100%}.reward-set{align-items:center;height:100%;padding-top:20px;display:flex}.reward-set img{object-fit:contain;width:50%;height:100%}.reward-set-actions{margin-top:8px}.reward-art .season-motes i{top:calc(12px + var(--i)*12px);animation:none}.reward-edition{letter-spacing:2px;color:#48634c;border-bottom:1px solid #57745355;padding-bottom:5px;font-size:10px;position:absolute;top:14px;left:16px}[data-season=blessing] .reward-edition,[data-season=seasons] .reward-edition{color:#f3dfac;border-color:#dcc48866}.reward-copy{padding:18px}.reward-copy>small{color:#917c52;letter-spacing:2px;font-size:11px}.reward-copy h3{letter-spacing:2px;margin:8px 0;font:25px Songti SC,SimSun,serif}.reward-copy p{color:#748066;margin:10px 0;font-size:13px;line-height:1.8}.reward-copy .reward-progress{font-variant-numeric:tabular-nums;font-size:11px}.reward-actions{flex-wrap:wrap;gap:8px;display:flex}.reward-actions button{flex:1;min-width:105px;min-height:44px;padding:10px;font-size:13px}.reward-controls{background:#eeeee0;border:1px solid #e0dfcb;border-radius:16px;margin-bottom:20px;padding:16px}.reward-controls h3{margin:0;font:18px SimSun,serif}.reward-controls p{color:#748066;font-size:12px;line-height:1.7}.collection-tabs{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.collection-tabs button{min-width:0}.decoration-heading{color:#526747;justify-content:space-between;align-items:baseline;gap:8px;margin:24px 0 14px;font:18px SimSun,serif;display:flex}.decoration-heading small{color:#879074;font:11px sans-serif}[data-decoration]:focus-visible,[data-skin-card]:focus-visible{outline-offset:2px;outline:2px solid #8c9b6c}.reward-choice{flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0;font-size:13px;display:flex}.reward-choice select,.reward-choice input{color:#526747;background:#faf9ef;border:1px solid #d5d7bf;border-radius:8px;flex:1;min-width:0;max-width:100%;min-height:44px;padding:8px;font-size:16px}.reward-art>.lantern-emblem{object-fit:contain;filter:drop-shadow(0 5px 5px #51382033)drop-shadow(0 0 18px #f9cd6f88);width:180px;height:180px;position:absolute;top:6px;left:calc(50% - 90px)}.guardian-medal,.first-medal{filter:drop-shadow(0 4px 3px #3b2e2038);flex-shrink:0;display:inline-block;position:relative}.guardian-medal{width:88px;height:96px}.first-medal{width:82px;height:82px}.guardian-medal img,.first-medal img{object-fit:contain;width:100%;height:100%;display:block}.reward-art>.guardian-medal,.reward-art>.first-medal{width:152px;height:152px;position:absolute;top:22px;left:calc(50% - 76px)}.achievement-row[data-achievement=first]{background:#fcfaf3;border:1px solid #d9d6be;border-radius:20px;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;margin:20px 0;padding:0 0 18px;display:grid;overflow:hidden}.achievement-row[data-achievement=first]>.achievement-icon{background:radial-gradient(at 50% 32%,#f9f0d9,#e1d9c2);border-radius:0;grid-column:1/-1;width:100%;height:180px}.achievement-icon>.first-medal{width:152px;height:152px}.achievement-row[data-achievement=first]>div{margin:18px 0 0 18px}.achievement-row[data-achievement=first]>.achievement-badge{margin:18px 18px 0 0}.home-medal{z-index:2;pointer-events:none;transform-origin:100% 0;position:absolute;top:12px;right:12px;transform:scale(.58)}.home-medal[hidden]{display:none}.home-first-medal{z-index:2;pointer-events:none;transform-origin:100% 0;position:absolute;top:78px;right:12px;transform:scale(.58)}.home-first-medal[hidden]{display:none}.home-medal[hidden]+.home-first-medal{top:12px}.reward-preview-bar{z-index:5;background:#fcf9efed;border:1px solid #d6c59a;border-radius:14px;align-items:center;gap:10px;padding:8px 12px;display:flex;position:absolute;bottom:20px;left:12px;right:12px;box-shadow:0 4px 18px #40341f15}.reward-preview-bar[hidden]{display:none}.reward-preview-bar span{flex:1;font-size:12px;line-height:1.7}.reward-preview-bar button{color:#8a6731;min-height:44px;padding:8px;font-size:13px}.next-reward{z-index:3;color:#806335;background:#fbf7eade;border:1px solid #dbcca5;border-radius:24px;width:max-content;max-width:calc(100% - 28px);min-height:44px;padding:9px 16px;font-size:11px;position:absolute;bottom:10px;left:50%;translate:-50%}.next-reward[hidden]{display:none}.stage-wrap:has(.next-reward:not([hidden])) .tap-hint{bottom:64px}.stage-wrap:has(.reward-preview-bar:not([hidden])) .tap-hint{display:none}:is(.play-layout:has([data-daylight=night]) .stats-strip span,.play-layout:has([data-daylight=night]) .stats-strip strong,.play-layout:has([data-daylight=night]) .stats-strip small){color:#e6e6cc}.stage-wrap[data-daylight=night] .tap-hint{color:#d6ddc8}.reduced-motion .season-motes i{top:calc(12px + var(--i)*24px);animation:none}@media (prefers-reduced-motion:reduce){.season-motes i{top:calc(12px + var(--i)*24px);animation:none}}@keyframes season-drift{0%{translate:0 -20px;rotate:0deg}to{translate:22px 720px;rotate:95deg}}@keyframes rain-fall{0%{top:-48px;translate:-20px}to{top:calc(100% + 48px);translate:76px}}.honor-keepsake{margin:20px 0 28px}.honor-print{isolation:isolate;text-align:center;outline-offset:-7px;color:#ccbea6;background:linear-gradient(115deg,#30241d,#493728);border:1px solid #9f8356;outline:1px solid #e4c99150;padding:24px 20px 22px;position:relative}.honor-print:before{content:"";z-index:-1;pointer-events:none;opacity:.28;filter:sepia();background:linear-gradient(100deg,#30241d 8%,#30241ddc 42%,#49372860),url(./keepsake-cloud-brocade-DkMxPqkE.jpg) 50% 48%/280%;position:absolute;inset:7px}.honor-print>small{letter-spacing:2px;color:#ccbea6;font-size:10px;display:block}.honor-print .honor-origin{text-align:left}.honor-heading{border-bottom:1px solid #e4c99150;justify-content:space-between;align-items:center;gap:8px;margin:8px 0 0;padding-bottom:14px;display:flex}.honor-heading .honor-edition{color:#f2dfb5;letter-spacing:1px;white-space:nowrap;border:1px solid #b49a67;flex:none;padding:4px 6px;font:10px/1.5 SimSun,serif}.honor-model{max-width:300px;margin:12px auto}.honor-model img{width:100%;height:auto;display:block}.honor-print h2{letter-spacing:1px;color:#f2dfb5;margin:0;font:clamp(20px,5.5vw,26px)/1.4 SimSun,serif}.honor-print p{overflow-wrap:anywhere;max-width:265px;margin:10px auto;font:14px/1.9 SimSun,serif}.honor-print .honor-description{text-align:center}.honor-print .honor-wish{color:#f8edda;border-top:1px solid #e4c99150;border-bottom:1px solid #e4c99150;place-items:center;min-height:48px;padding:8px 12px;display:grid}.honor-print time{letter-spacing:1px;margin:20px 0 12px;font-size:11px;display:block}.honor-seal{color:#e9d3a4;outline-offset:-4px;border:1px solid #e9d3a4;outline:1px solid #e9d3a480;width:36px;margin:18px auto 0;padding:3px;font:12px/1.3 SimSun,serif;display:block;rotate:-7deg}.home-page{flex-direction:column;min-width:0;display:flex}.content-page{flex-direction:column;width:100%;max-width:760px;min-height:0;margin:0 auto;display:flex}.home-page[hidden],.content-page[hidden]{display:none}.page-heading{flex-shrink:0}.page-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.page-heading h1{letter-spacing:1px;margin:8px 0 0;font-family:Songti SC,SimSun,serif;font-weight:500}.wish-book-shortcut{flex:none;padding:7px 12px;font-size:12px}.page-content{min-height:0;padding-bottom:24px}.content-page .text-button{min-height:44px}.strike-zone.orbit-enabled{touch-action:none;cursor:grab}.strike-zone.orbit-enabled:active{cursor:grabbing}body{min-width:0}.app-shell{max-width:540px;height:100dvh;min-height:480px;padding:env(safe-area-inset-top,0px) max(12px, env(safe-area-inset-right,0px)) calc(78px + env(safe-area-inset-bottom,0px)) max(12px, env(safe-area-inset-left,0px));flex-direction:column;display:flex}.topbar{border:0;flex-shrink:0;gap:8px;height:56px}.brand{letter-spacing:1px;gap:8px;font-size:17px}.brand-mark{border-radius:12px;width:34px;height:34px}.top-tools{gap:3px}.merit-pill{background:#f3eedf;gap:5px;padding:8px 10px;font-size:11px}.merit-pill b{font-size:clamp(12px, calc(110px / var(--digits,4)), 16px)}.merit-pill span{display:inline}.icon-button{flex-shrink:0;width:44px;height:44px}main{flex-direction:column;flex:1;min-height:0;display:flex}.home-page,.content-page{flex:1;min-height:0}.page-heading{padding:14px 4px 16px}.page-heading .eyebrow{letter-spacing:2px;font-size:10px}.page-heading h1{margin-top:7px;font-size:25px}.wish-book-shortcut{min-height:44px;margin-top:7px}.page-content{overscroll-behavior:contain;flex:1;padding:0 4px 24px;scroll-padding:16px;overflow-y:auto}.stats-strip{z-index:2;pointer-events:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;grid-template-columns:1fr;gap:17px;width:90px;margin:0;padding:0;display:grid;position:absolute;top:20px;left:20px}.stats-strip>div{text-align:left;border:0;min-width:0}.stats-strip span{letter-spacing:.5px;color:#79806c;margin-bottom:3px;font-size:11px}.stats-strip strong{font-size:clamp(12px, calc(144px / var(--digits,4)), 23px);color:#536449;line-height:1.2}.stats-strip>div:first-child strong{color:#3f5935;font-weight:500}.stats-strip small{color:#858b77;margin-left:4px;font-size:10px}.play-layout{flex-direction:column;flex:1;min-height:0;margin:0;display:flex;position:relative}.stage-wrap{background:radial-gradient(at 64% 54%,#eee2c9,#f6f0e1 63%,#f9f5eb);border:1px solid #e9e4d5;border-radius:28px;flex:1;width:100%;height:auto;margin:0;overflow:hidden}.strike-zone{border-radius:inherit;width:100%;inset:0}.viewport{inset:0}.fallback-fish{width:80%;margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tap-hint{color:#7c866e;letter-spacing:.5px;pointer-events:none;font-size:12px;bottom:24px;left:20px;right:20px}.tap-ring{border-color:#879974;width:15px;height:15px}.floating-merit{font-size:21px;top:42%;left:60%}footer{color:#7f8b73;letter-spacing:0;border:0;flex-shrink:0;justify-content:center;padding:6px 0 0;font-size:10px}.save-status{gap:6px}.save-status svg{width:14px;height:14px}.bottom-nav{width:min(100%,540px);left:50%;right:auto;transform:translate(-50%)}.toast{text-align:center;width:max-content;padding:12px 18px;font-size:13px;line-height:1.6}.sheet{width:min(100%,540px);height:92dvh;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 8px);border:0;border-radius:26px 26px 0 0;margin:0;padding:0;inset:auto auto 0 50%;transform:translate(-50%)}.sheet-heading{margin:0;padding:20px 18px 16px}.sheet-heading .eyebrow{letter-spacing:2px;font-size:11px}.sheet-heading h2{margin-top:7px;font-size:24px}.sheet-heading .icon-button{background:#e9eddf}.sheet-content{padding:18px max(16px, env(safe-area-inset-right,0px)) 24px max(16px, env(safe-area-inset-left,0px));flex:1;scroll-padding:16px}.sheet-footer{padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:#f9f8f1;border-top:1px solid #e0e5d3;flex-shrink:0;display:block}.sheet-footer button{border-radius:15px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;font-size:15px;display:flex}.panel-intro{color:#717e63;margin-bottom:18px;font-size:14px;line-height:1.8}.primary-button,.secondary-button,.sheet .text-button{min-height:44px;font-size:14px}.primary-button,.secondary-button{border-radius:12px}.segmented{border-radius:14px;margin-bottom:14px;padding:4px}.segmented button{border-radius:11px;min-height:46px;padding:10px;font-size:14px}.segmented span{color:#79866a;margin-left:5px;font-size:12px}.preview-note{color:#758467;font-size:12px;line-height:1.7}.skin-grid{gap:12px}.skin-card{border-radius:18px;padding:13px}.skin-state{color:#687d52;font-size:11px}.skin-art{height:104px}.skin-card h3{margin:7px 0 8px;font-size:14px}.skin-card p{color:#758269;min-height:41px;margin-bottom:14px;font-size:12px;line-height:1.7}.skin-actions{flex-direction:column;gap:8px}.skin-actions button{min-height:44px;padding:10px 5px;font-size:12px}.skin-actions .secondary-button{justify-content:center;font-size:13px}.skin-actions .secondary-button svg{width:16px;height:16px}.balance-banner{border-radius:16px;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:16px;font-size:14px}.balance-banner strong{font-size:27px}.balance-banner span{color:#718262;flex-basis:100%;margin-left:0;font-size:12px}.wish-grid{grid-template-columns:1fr}.wish-option{border-radius:18px;grid-template-columns:44px minmax(0,1fr);gap:6px 12px;padding:18px;display:grid}.wish-option[data-million-wish]{flex-direction:column;align-items:stretch;min-width:0;display:flex}.wish-option[data-million-wish] .honor-keepsake{width:100%;min-width:0}.wish-symbol{grid-area:1/1/3;width:44px;height:44px;font-size:22px}.wish-option h3{grid-column:2;margin:0;font-size:16px;line-height:1.6}.wish-option p{color:#7c826c;grid-column:2;margin:0;font-size:14px;line-height:1.8}.wish-option .primary-button{grid-column:1/-1;min-height:46px;margin-top:10px;font-size:14px}.wish-option input{border-radius:10px;grid-column:1/-1;width:100%;min-height:48px;margin:8px 0 0;padding:12px;font-size:16px}.gentle-note{color:#78846b;font-size:12px}.kept-wish h3{font-size:14px;line-height:1.6}.kept-wish small{color:#7e896f;font-size:12px}.save-card{font-size:13px}.achievement-summary{gap:12px;padding:18px}.achievement-summary span,.achievement-summary p{color:#718063;font-size:12px}.achievement-row{gap:10px}.achievement-row h3{font-size:14px;line-height:1.5}.achievement-row p{color:#7a886b;font-size:12px;line-height:1.6}.achievement-row small{color:#718162;font-size:12px}.achievement-badge{color:#7d896f;font-size:11px}.settings-group{border-radius:18px;padding:18px}.settings-group h3{font-size:15px}.setting-row{gap:14px;min-height:68px}.setting-row b{font-size:14px}.setting-row small{color:#78866a;font-size:12px;line-height:1.6}.setting-row input{width:44px;height:26px}.setting-row input:before{width:20px;height:20px}.setting-row input:checked:before{transform:translate(18px)}.volume-setting>span{font-size:14px}.volume-setting b{font-size:13px}.volume-setting input{min-height:44px;margin-top:8px}.settings-group p,.settings-group>small,.settings-about a{color:#768467;font-size:13px;line-height:1.8}.backup-actions{gap:10px}.backup-actions .primary-button,.backup-actions .secondary-button{white-space:nowrap;flex:1;justify-content:center}@media (width<=359px){.app-shell{padding-left:max(12px, env(safe-area-inset-left,0px));padding-right:max(12px, env(safe-area-inset-right,0px))}.brand{gap:7px;font-size:16px}.brand-mark{width:33px;height:33px}.merit-pill{gap:3px;padding:7px}.merit-pill span{display:none}.stats-strip{gap:12px;top:17px;left:17px}.stats-strip strong{font-size:clamp(12px, calc(144px / var(--digits,4)), 21px)}.skin-grid{gap:8px}.skin-card{padding:10px}.skin-card h3{font-size:13px}.sheet-heading h2{font-size:22px}}[data-exit-playtest]{align-items:center;min-height:44px;display:inline-flex}.page-title-row:has(.wish-book-shortcut:not([hidden])){gap:8px}.page-title-row:has(.wish-book-shortcut:not([hidden])) h1{white-space:nowrap;letter-spacing:.5px;min-width:0;font-size:clamp(20px,5.1vw,25px)}.page-title-row .wish-book-shortcut{white-space:nowrap;padding:8px 10px;font-size:12px}.wish-option[data-million-wish]{background:#fffdf6;gap:16px;padding:14px}.wish-option[data-million-wish] .honor-keepsake{margin:0}.honor-print .honor-model img{object-fit:contain;max-height:165px}.wish-option .honor-print .honor-description{text-align:center;text-wrap:balance;color:#ccbea6;width:100%;max-width:none;margin:8px auto 18px;font-size:clamp(12px,3.2vw,14px);line-height:1.9}.wish-option .honor-print .honor-wish{text-align:center;text-wrap:balance;color:#f8edda;width:100%;max-width:none;min-height:72px;margin:0 auto;padding:14px 10px;font-size:16px;line-height:1.9}.wish-option[data-million-wish] .reward-choice{flex-direction:column;align-items:stretch;gap:8px;margin:0;font-size:14px;display:flex}.wish-option[data-million-wish] .reward-choice input{width:100%;margin:0}.wish-option[data-million-wish]>.primary-button{margin:0}.kept-wish{box-shadow:none;background:#fffdf6;border:1px solid #dfd8c7;border-radius:14px;grid-template-columns:36px minmax(0,1fr);gap:14px 12px;margin:0 0 12px;padding:16px;display:grid}.kept-wish .wish-stamp{color:#8a7044;background:#f1ead7;border:1px solid #c9b88d;width:34px;height:40px;font-size:18px;transform:rotate(-4deg)}.kept-wish>div{overflow-wrap:anywhere;min-width:0}.kept-wish p{color:#79816b;margin-bottom:0;font-size:14px;line-height:1.8}.kept-wish .wish-record-footer{letter-spacing:0;border:0;grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.wish-record-footer small{color:#93947f;font-size:11px;line-height:1.6}.kept-wish .save-card{color:#6f7d60;background:0 0;border:0;border-radius:9px;flex-shrink:0;min-height:44px;margin:0;padding:8px 10px;font-size:12px}.kept-wish.million-kept-wish{isolation:isolate;background:linear-gradient(115deg,#30241d,#493728);border-color:#9f8356;border-radius:12px;grid-template-columns:32px minmax(0,1fr);row-gap:8px;position:relative;box-shadow:inset 0 1px #f0dcab30,0 5px 14px #35241823}.million-kept-wish:before{content:"";pointer-events:none;z-index:-1;border:1px solid #e4c99150;border-radius:7px;position:absolute;inset:5px}.million-kept-wish:after{content:"";pointer-events:none;z-index:-1;opacity:.28;filter:sepia();background:linear-gradient(100deg,#30241d 8%,#30241ddc 42%,#49372860),url(./keepsake-cloud-brocade-DkMxPqkE.jpg) 50% 48%/280%;border-radius:6px;position:absolute;inset:6px}.million-kept-wish .wish-stamp{color:#f5dfaf;text-shadow:0 1px 1px #26190f;background:linear-gradient(135deg,#f0d69c1c,#bc945309);border:1px solid #ddc18a;border-radius:3px;width:32px;height:34px;transform:none;box-shadow:inset 0 0 0 2px #38291f,inset 0 0 0 3px #ddc18a50}.million-wish-heading{justify-content:space-between;align-items:center;gap:8px;margin:0;display:flex}.million-wish-heading h3{color:#e9d3a4;letter-spacing:1px;white-space:nowrap;margin:0;font-family:Songti SC,SimSun,serif;font-size:15px}.million-kept-wish .million-wish-edition{color:#f2dfb5;letter-spacing:1px;white-space:nowrap;background:linear-gradient(135deg,#f5e3b51a,#c3a06508);border:1px solid #e2c38b80;border-radius:3px;flex:none;padding:3px 7px;font-size:10px;font-weight:400;line-height:1.5}.million-kept-wish p{color:#f8edda;margin:14px 0 8px;font-family:Songti SC,SimSun,serif;font-size:17px;line-height:1.8}.million-kept-wish .wish-record-footer{border-top:1px solid #d6bf8833;padding-top:5px}.million-kept-wish .wish-record-footer small{color:#ccbea6}.million-kept-wish .save-card{color:#ecd5a6}.million-kept-wish .save-card:focus-visible{outline-color:#f0d49c}@media (width<=359px){.page-title-row .wish-book-shortcut{padding-inline:8px}.honor-print{padding-inline:12px}}
