:root{--paper: #fbf5e6;--paper-2: #f3e8cc;--bark: #5a3d22;--bark-soft: #8a6a48;--leaf: #6f9a3e;--leaf-deep: #2f5a2a;--moss: #a9c46a;--sun: #f5c843;--berry: #c9452f;--f-zh: "Iansui", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--f-en: "Mali", "Iansui", ui-rounded, "Comic Sans MS", sans-serif;--shadow-soft: 0 3px 0 rgba(90, 61, 34, .25), 0 6px 14px rgba(32, 52, 20, .25);color-scheme:light;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);box-sizing:border-box;height:100%}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--leaf-deep);color:var(--bark);font-family:var(--f-zh);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}img{max-width:100%;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.zy{display:inline-flex;align-items:center;flex-wrap:wrap;line-height:1;font-family:var(--f-zh)}.zy-c{display:inline-flex;align-items:center;margin-right:.1em}.zy-han{font-size:1em;line-height:1.15}.zy-col{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;font-size:.34em;line-height:1.02;width:1.05em;margin-left:.1em;margin-right:.35em;font-family:"PingFang TC","Noto Sans TC","Microsoft JhengHei",var(--f-zh);font-weight:500}.zy-sym{display:block;position:relative}.zy-tone{position:absolute;left:100%;top:-.12em;margin-left:.04em}.zy-light{display:block;height:.6em;line-height:.5}.en{font-family:var(--f-en);font-weight:700;letter-spacing:.01em}.app{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-width:1100px;margin:0 auto;background:var(--leaf-deep)}.main{min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}.route-home .main{overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px max(12px,env(safe-area-inset-right,0px)) 8px max(12px,env(safe-area-inset-left,0px));background:linear-gradient(180deg,#24481f,var(--leaf-deep));position:relative;z-index:3}.star-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 16px 3px 4px;background:var(--paper);border-radius:999px;box-shadow:inset 0 0 0 3px var(--sun),var(--shadow-soft);min-height:48px}.star-pill-img{width:44px;height:44px;object-fit:contain;margin:-6px 0 -4px -2px}.star-pill-num{font-family:var(--f-en);font-weight:700;font-size:26px;color:var(--bark);font-variant-numeric:tabular-nums;min-width:1ch}.topbar-right{display:flex;gap:8px;align-items:center}.chip{min-height:44px;min-width:44px;border-radius:999px;background:#fbf5e624;color:var(--paper);display:inline-flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 2px #fbf5e659}.chip:active{transform:scale(.94)}.lang-chip{padding:4px;gap:2px;font-size:14px}.lang-chip span{padding:6px 9px;border-radius:999px;opacity:.7;line-height:1}.lang-chip span:last-child{font-family:var(--f-en);font-weight:700}.lang-chip span.on{background:var(--paper);color:var(--leaf-deep);opacity:1}.icon-chip.muted{opacity:.6}.parent-chip{min-width:40px;min-height:40px;opacity:.75}.map-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden;isolation:isolate}.map-area{flex:1;min-height:0;container-type:size;display:grid;place-items:center}.map-stage:before{content:"";position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;background:var(--blur) center / cover no-repeat;filter:blur(18px) saturate(1.1) brightness(.8);z-index:-1}.map{position:relative;width:min(100cqw,75cqh);aspect-ratio:1086 / 1448;container-type:inline-size;box-shadow:0 10px 30px #0a190873}.map-img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.hotspot{position:absolute;border-radius:42%;z-index:1}.hotspot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;opacity:0;background:radial-gradient(closest-side,rgba(255,246,200,.75),rgba(255,236,150,.25) 70%,transparent);transition:opacity .15s}.hotspot:active:after,.hotspot.pressed:after{opacity:1;animation:glow .45s ease-out}@keyframes glow{0%{transform:scale(.85)}to{transform:scale(1.03)}}.show-areas .hotspot{outline:3px dashed rgba(255,255,255,.95);outline-offset:-3px;background:color-mix(in srgb,var(--zone, #fff) 30%,transparent)}.zone-label{--s: clamp(14px, 4.3cqw, 30px);position:absolute;z-index:2;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:.15em;font-size:var(--s);padding:.18em .55em .18em .2em;background:var(--paper);color:var(--bark);border-radius:999px;box-shadow:inset 0 0 0 .14em var(--zone),0 .12em #5a3d2259,0 .3em .8em #14280a59;white-space:nowrap;width:max-content;animation:bob 3.2s ease-in-out var(--delay) infinite}.zone-label .zy,.nav-label.zy{flex-wrap:nowrap}.zone-label-badge{width:2em;height:2em;object-fit:contain;margin:-.35em 0 -.35em -.3em}.zone-label-text.en{font-size:.82em}.zone-label.pressed{animation:pop .42s ease-out}@keyframes bob{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - .18em))}}@keyframes pop{40%{transform:translate(-50%,-50%) scale(1.15)}}.bottomnav{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px max(8px,env(safe-area-inset-right,0px)) 8px max(8px,env(safe-area-inset-left,0px));background:var(--paper);border-top:4px solid var(--moss);position:relative;z-index:3}.nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;padding:4px 2px 6px;border-radius:18px;min-height:72px;transition:background .15s,transform .15s}.nav-btn:active{transform:scale(.95)}.nav-btn.active{background:var(--paper-2);box-shadow:inset 0 -4px 0 var(--sun)}.nav-icon{width:46px;height:40px;object-fit:contain}.nav-btn.active .nav-icon{transform:translateY(-2px) scale(1.08)}.nav-label{font-size:13px;white-space:nowrap}.nav-label.en{font-size:12px;text-align:center;line-height:1.1}.page{min-height:100%;background:var(--paper);padding:16px max(16px,env(safe-area-inset-right,0px)) 28px max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:16px}.parent-note{margin:0;font-size:14px;line-height:1.6;color:var(--bark-soft);background:var(--paper-2);padding:10px 14px;border-radius:12px;max-width:62ch}.soft-btn{align-self:center;font-size:22px;padding:10px 22px;border-radius:999px;background:var(--leaf);color:var(--paper);box-shadow:var(--shadow-soft)}.soft-btn .zy-col{color:var(--paper)}.back-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:4px 16px 4px 8px;min-height:52px;border-radius:999px;background:var(--paper);color:var(--leaf-deep);box-shadow:inset 0 0 0 3px var(--moss),var(--shadow-soft);font-size:20px}.back-btn-icon{width:36px;height:36px;object-fit:contain}.back-btn:active{transform:scale(.95)}.zone-page{padding-top:0}.zone-hero{position:relative;margin:0 calc(-1*max(16px,env(safe-area-inset-right,0px))) 0 calc(-1*max(16px,env(safe-area-inset-left,0px)))}.zone-hero-img{display:block;width:100%;max-height:44vh;object-fit:cover;object-position:center 35%;border-radius:0 0 28px 28px;box-shadow:inset 0 0 0 4px var(--zone)}.zone-back{position:absolute;left:14px;top:14px}.zone-title{margin:0;display:flex;align-items:center;gap:10px;font-size:34px;font-weight:400;color:var(--zone)}.zone-title-badge{width:72px;height:72px;object-fit:contain}.zone-title-text{text-align:left}.task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(150px,42vw),1fr));gap:14px}.task-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 10px 14px;background:#fffaf0;border-radius:22px;box-shadow:inset 0 0 0 3px var(--paper-2),0 3px #5a3d2226;transition:transform .12s}.task-card:active{transform:scale(.96)}.task-card-img{width:100%;aspect-ratio:1.08;object-fit:contain;border-radius:16px}.task-card-name{font-size:22px}.task-card-name.en{font-size:17px;text-align:center}.soon-page{align-items:center;text-align:center;padding-top:28px}.soon-art{width:min(220px,56vw);filter:drop-shadow(0 8px 10px rgba(90,61,34,.2))}.soon-art-btn:active{transform:scale(.96)}.soon-title{margin:0;font-size:36px;font-weight:400}.soon-tag{font-size:20px;background:var(--sun);padding:6px 18px;border-radius:999px;box-shadow:var(--shadow-soft)}.soon-gallery{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.soon-gallery img{width:72px;height:72px;object-fit:contain}.parent-page{font-family:var(--f-zh)}.parent-h1{margin:0;font-size:28px;font-weight:400}.gate{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:24px}.gate-q{font-size:26px;margin:0}.gate-opts{display:flex;gap:12px}.gate-opt{width:76px;height:64px;font-size:28px;font-family:var(--f-en);font-weight:700;border-radius:16px;background:#fffaf0;box-shadow:inset 0 0 0 3px var(--paper-2),var(--shadow-soft)}.gate-wrong{color:var(--berry);margin:0}.parent-msg{margin:0;background:#e8f1d6;color:var(--leaf-deep);padding:10px 14px;border-radius:12px}.panel{background:#fffaf0;border-radius:18px;padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 0 0 2px var(--paper-2)}.panel h2{margin:0;font-size:19px;font-weight:400}.panel.danger h2{color:var(--berry)}.row{display:flex;align-items:center;gap:12px}.row.wrap{flex-wrap:wrap}.big-num{font-family:var(--f-en);font-weight:700;font-size:30px;min-width:2ch;text-align:center;font-variant-numeric:tabular-nums}.pbtn{min-height:44px;padding:8px 16px;border-radius:12px;background:var(--paper-2);font-size:16px}.pbtn.primary{background:var(--leaf);color:#fff}.pbtn.danger-btn{background:var(--berry);color:#fff}.pbtn:disabled{opacity:.45}.hint{margin:0;font-size:14px;color:var(--bark-soft);line-height:1.5}.switch-row,.field{display:flex;gap:10px;align-items:center;justify-content:space-between;font-size:16px}.field{flex-direction:column;align-items:stretch}.switch-row input{width:26px;height:26px;accent-color:var(--leaf)}.field input,.code{font:15px/1.4 ui-monospace,Menlo,monospace;padding:10px;border-radius:10px;border:2px solid var(--paper-2);background:#fff;color:var(--bark);width:100%}.field input{font-family:var(--f-zh);font-size:17px}@media(min-width:700px){.nav-icon{width:58px;height:50px}.nav-label{font-size:19px}.star-pill-num{font-size:30px}.zone-hero-img{max-height:48vh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.chip-badge{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--berry);color:#fff;font:700 12px/20px var(--f-en)}.parent-chip{position:relative}.zone-left,.zone-done{margin-left:.25em;flex:none}.zone-left{min-width:1.3em;height:1.3em;border-radius:999px;background:var(--berry);color:#fff;font:700 .72em/1.3em var(--f-en);text-align:center;padding:0 .3em}.zone-done{width:1.3em;height:1.3em;object-fit:contain}.dry-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 14px;border-radius:999px;background:#fbf5e6f2;box-shadow:inset 0 0 0 3px #3b4f8f,var(--shadow-soft);color:#3b4f8f;white-space:nowrap;max-width:calc(100% - 20px)}.dry-chip-label{font-size:15px;flex-wrap:nowrap}.dry-chip-label.en{font-size:13px}.dry-chip:active{transform:scale(.96)}.prints{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.print{width:46px;height:46px;border-radius:50%;background:#efe2c2;box-shadow:inset 0 -3px #5a3d222e;display:grid;place-items:center}.print img{width:34px;height:34px;object-fit:contain;opacity:.55}.print.on{background:#fff4c7}.print.on img{opacity:1}.prints-goal{width:54px;height:46px;object-fit:contain;filter:grayscale(.7) opacity(.6)}.prints-goal.on{filter:none;animation:pop-in .8s ease-out}.prints.compact{gap:3px;flex-wrap:nowrap}.prints.compact .print{width:24px;height:24px}.prints.compact .print img{width:18px;height:18px}.prints.compact .prints-goal{width:30px;height:26px}.zone-hero .zone-title{padding:14px max(16px,env(safe-area-inset-left,0px)) 0}.night-card{background:linear-gradient(180deg,#2c3d73,#3b4f8f);color:var(--paper);border-radius:24px;padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-soft)}.night-head{display:flex;align-items:center;gap:8px}.night-badge{width:52px;height:52px;object-fit:contain}.night-title{font-size:28px;color:var(--sun);text-align:left}.night-prints-label{display:flex;align-items:center;gap:10px;font-size:18px;text-align:left}.night-count{font:700 20px var(--f-en);color:var(--sun)}.night-card .print{background:#ffffff24;box-shadow:inset 0 0 0 2px #fff3}.night-card .print.on{background:#f5c8434d}.night-goal{background:var(--paper);color:var(--bark);border-radius:16px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.night-goal p{margin:0}.morning-check{background:#ffffff1a;border-radius:16px;padding:10px 12px 12px;display:flex;flex-direction:column;gap:10px}.morning-check h3{margin:0;font-size:15px;font-weight:400;opacity:.85}.mc-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.mc-q{font-size:16px;min-width:0;flex:1 1 180px}.mc-btns{display:flex;gap:8px}.mc-btn{min-height:44px;min-width:72px;padding:6px 14px;border-radius:999px;background:#ffffff29;color:var(--paper);font-size:16px}.mc-btn.sel.yes{background:var(--sun);color:var(--bark)}.mc-btn.sel.no{background:var(--paper);color:var(--bark)}.mc-note{margin:0;font-size:13px;line-height:1.5;opacity:.8}.task-section{display:flex;flex-direction:column;gap:10px}.section-title{margin:0;font-size:22px;font-weight:400;color:var(--bark);display:flex;align-items:center;gap:8px}.section-title.fixed:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--berry)}.task-card{position:relative}.task-card-imgwrap{position:relative;width:100%;display:block}.when-chip{position:absolute;top:4px;left:4px;z-index:1;background:#3b4f8f;color:var(--paper);font:700 14px/1 var(--f-en);padding:5px 9px;border-radius:999px}.when-chip .zy{font-family:var(--f-zh);font-weight:400;font-size:15px}.task-card.pending{box-shadow:inset 0 0 0 4px var(--sun),0 3px #5a3d2226;animation:wait-glow 1.6s ease-in-out infinite}.task-card.done .task-card-img{filter:saturate(.6) brightness(1.05);opacity:.75}.task-stamp{position:absolute;right:-4px;bottom:-6px;width:44%;filter:drop-shadow(0 3px 4px rgba(90,61,34,.3));animation:pop-in .5s ease-out}.task-wait{position:absolute;left:50%;bottom:8px;transform:translate(-50%);background:var(--sun);color:var(--bark);padding:4px 12px;border-radius:999px;font-size:17px;white-space:nowrap;box-shadow:var(--shadow-soft)}.task-wait .zy{flex-wrap:nowrap}.task-dots{display:flex;gap:2px}.task-dots img{width:22px;height:22px;object-fit:contain}@keyframes wait-glow{50%{box-shadow:inset 0 0 0 4px var(--sun),0 0 0 6px #f5c84359}}@keyframes pop-in{0%{transform:scale(.2) rotate(-20deg);opacity:0}70%{transform:scale(1.15) rotate(6deg);opacity:1}to{transform:scale(1)}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#14230f8c;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease-out}.sheet{width:min(560px,100%);max-height:92%;overflow-y:auto;background:var(--paper);border-radius:28px 28px 0 0;padding:18px max(18px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));animation:slide-up .25s ease-out}@keyframes fade{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(40px);opacity:0}}.confirm{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.confirm-img{width:min(220px,60vw);border-radius:20px}.confirm-name{font-size:32px}.confirm-hint{margin:0;color:var(--bark-soft);font-size:15px}.confirm-actions{display:flex;flex-direction:column;gap:8px;width:100%}.big-btn{font-size:20px;min-height:56px}.pbtn.ghost{background:transparent;color:var(--bark-soft)}.gate-title{margin:0;font-size:24px;font-weight:400}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;align-content:center;gap:6px;background:radial-gradient(circle,#fff4c7d9,#2f5a2a8c 70%);animation:fade .2s ease-out}.celebrate.soft{background:radial-gradient(circle,#fbf5e6e6,#2f5a2a73 70%)}.celebrate-art{width:min(46vw,220px);animation:pop-in .6s ease-out;filter:drop-shadow(0 10px 16px rgba(90,61,34,.35))}.celebrate.big .celebrate-art{width:min(60vw,300px)}.celebrate-text{font:700 56px/1 var(--f-en);color:var(--bark);text-shadow:0 3px 0 #fff;animation:pop-in .6s .1s ease-out both}.celebrate.goal .celebrate-text{font-family:var(--f-zh);font-weight:400;font-size:40px;background:var(--paper);padding:8px 20px;border-radius:999px;text-shadow:none}.celebrate-burst{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.celebrate-burst img{position:absolute;left:50%;top:45%;width:44px;animation:burst 1.2s ease-out forwards;--a: calc(var(--i) * 360deg / var(--n, 10))}@keyframes burst{0%{transform:translate(-50%,-50%) rotate(var(--a)) translateY(0) scale(.3);opacity:1}to{transform:translate(-50%,-50%) rotate(var(--a)) translateY(-38vmin) scale(1);opacity:0}}.plist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.prow{display:flex;align-items:center;gap:8px}.prow-name{flex:1;min-width:0;display:flex;flex-direction:column;font-size:17px}.prow-name small{font-size:12px;color:var(--bark-soft)}.field-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:16px}.field-row input{font:17px var(--f-en);padding:8px 10px;border-radius:10px;border:2px solid var(--paper-2);background:#fff;color:var(--bark);width:150px}.morning-log{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px}.morning-log li{display:grid;grid-template-columns:4em 1fr 1fr;gap:8px;padding:4px 8px;background:var(--paper);border-radius:8px}.morning-log .ok{color:var(--leaf-deep)}.morning-log .no{color:var(--bark-soft)}.tset-zone{display:flex;flex-direction:column;gap:6px}.tset-zone h3{margin:8px 0 0;font-size:16px;font-weight:400;color:var(--bark-soft)}.tset-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;border-bottom:1px dashed var(--paper-2)}.tset-name{flex:1 1 5em;font-size:16px}.seg{display:inline-flex;background:var(--paper-2);border-radius:10px;padding:2px}.seg button{padding:6px 10px;border-radius:8px;font-size:14px;min-height:36px}.seg button.on{background:var(--leaf);color:#fff}.tset-num{display:inline-flex;align-items:center;gap:4px;font-size:14px}.tset-num select{font:15px var(--f-en);padding:4px;border-radius:8px;border:2px solid var(--paper-2);background:#fff;color:var(--bark)}.vlist{list-style:none;margin:0;padding:0;display:grid;gap:4px}.vrow{width:100%;display:grid;grid-template-columns:2.2em minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--paper);text-align:left;font-size:15px;min-height:44px}.vrow:disabled{opacity:.55;cursor:default}.vnum{font:700 13px var(--f-en);color:var(--bark-soft)}.vtext{min-width:0}.vstate{font-size:13px;color:var(--bark-soft);white-space:nowrap}.vstate.ok{color:var(--leaf-deep);font-weight:700}.bar{display:block;width:100%;height:10px;border-radius:999px;background:var(--paper-2);overflow:hidden}.bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--sun),#f0a92c)}.bar.big{height:16px}.stamp-card{display:grid;grid-template-columns:repeat(var(--cols, 5),minmax(0,1fr));gap:clamp(6px,2.4vw,14px);width:100%;padding:clamp(12px,3.5vw,20px);background:radial-gradient(circle at 12% 18%,rgba(169,196,106,.25),transparent 40%),radial-gradient(circle at 88% 85%,rgba(245,200,67,.22),transparent 45%),#fffaf0;border-radius:22px;box-shadow:inset 0 0 0 3px #e9d9b2,inset 0 0 0 7px #fffaf0,inset 0 0 0 9px #efe2c2,0 4px #5a3d2226}.slot{position:relative;min-width:0;aspect-ratio:1;border-radius:50%;background:#f3e8cc;box-shadow:inset 0 3px #5a3d221f;display:grid;place-items:center;border:2px dashed #d9c497}.slot.on{background:#fff4c7;border:2px solid var(--sun)}.slot.last:not(.on){border-color:var(--berry);border-style:dashed}.slot-num{font:700 clamp(13px,3.6vw,20px) var(--f-en);color:#c9b48a}.slot-goal{width:78%;opacity:.6}.slot-star{width:88%;height:88%;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(90,61,34,.25))}.slot-task{position:absolute;right:-8%;bottom:-8%;width:46%;height:46%;object-fit:cover;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px #00000040}.slot.fresh .slot-star,.slot.fresh .slot-task{animation:stamp-in .55s cubic-bezier(.2,1.6,.4,1) both;animation-delay:var(--d, 0s)}.slot.fresh{animation:slot-flash .9s ease-out both;animation-delay:var(--d, 0s)}@keyframes stamp-in{0%{transform:scale(2.6) rotate(-25deg);opacity:0}60%{transform:scale(.85) rotate(4deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes slot-flash{0%{box-shadow:0 0 #f5c843e6}to{box-shadow:0 0 0 16px #f5c84300}}.stamp-card.mini{gap:3px;padding:0;background:none;box-shadow:none;grid-template-columns:repeat(10,minmax(0,1fr))}.stamp-card.mini .slot{border-width:1.5px;box-shadow:none}.stamp-card.mini .slot-num{display:none}.stamp-card.mini .slot-goal{display:block}.stamp-card.mini .slot.last .slot-num{display:grid}.home-dock{position:relative;z-index:4;align-self:center;margin:6px 0 8px;width:min(440px,calc(100% - 16px));display:flex;flex-direction:column;align-items:center;gap:6px}.card-chip{width:100%;display:flex;flex-direction:column;gap:4px;padding:8px 12px 10px;border-radius:20px;background:#fffaf0f5;box-shadow:inset 0 0 0 3px var(--sun),var(--shadow-soft)}.card-chip.ready{animation:wait-glow 1.6s ease-in-out infinite}.card-chip:active{transform:scale(.97)}.card-chip-top{display:flex;align-items:center;justify-content:space-between}.card-chip-label{font-size:17px;flex-wrap:nowrap}.card-chip-num{font:700 17px var(--f-en);color:var(--bark)}.card-chip .stamp-card.mini .slot{max-height:34px}.card-page{gap:14px}.cp-head{display:flex;align-items:baseline;justify-content:space-between}.cp-title{font-size:32px}.cp-no{font-size:16px;color:var(--bark-soft)}.cp-card{display:flex;flex-direction:column;gap:8px;max-width:560px;width:100%;align-self:center}.cp-count{align-self:center;display:flex;align-items:center;gap:6px;font:700 24px var(--f-en)}.cp-count img{width:30px}.cp-picked{align-self:center;display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;background:#fffaf0;border-radius:999px;box-shadow:inset 0 0 0 2px var(--paper-2);font-size:18px}.cp-picked img{width:48px;height:48px;border-radius:50%;object-fit:cover}.cp-picked small{display:block;font-size:12px;color:var(--bark-soft)}.cp-reward{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:20px;background:#fffaf0;box-shadow:inset 0 0 0 2px var(--paper-2)}.cp-reward.ready{box-shadow:inset 0 0 0 4px var(--sun);background:#fff4c7}.cp-reward-img{width:64px}.cp-reward-text{flex:1 1 140px;display:flex;flex-direction:column;gap:2px;font-size:16px}.cp-reward-text strong{font-size:22px;font-weight:400}.cp-wish{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:20px;background:#fffaf0;box-shadow:inset 0 0 0 3px #e9a8c8,var(--shadow-soft);text-align:left}.cp-wish>img{width:76px;height:76px;object-fit:cover;border-radius:16px}.cp-wish-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.cp-wish-label{font-size:15px;color:#b0507e}.cp-wish-name{font-size:19px}.cp-wish-num{display:flex;align-items:center;gap:4px;font:700 15px var(--f-en)}.cp-wish-num img{width:18px}.cp-today h2,.cp-history h2{margin:0 0 8px;font-size:18px;font-weight:400;display:flex;align-items:center;gap:8px}.cp-today-n{font:700 18px var(--f-en);color:var(--leaf-deep)}.cp-today-list{display:flex;flex-wrap:wrap;gap:6px}.cp-today-list img{width:48px;height:48px;border-radius:12px;object-fit:cover;box-shadow:0 2px #5a3d2226}.cp-history-list{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}.cp-mini{flex:none;width:200px;display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:16px;background:#fffaf0;box-shadow:inset 0 0 0 2px var(--paper-2);font-size:14px}.cp-mini.on{box-shadow:inset 0 0 0 3px var(--sun)}.stamp-celebrate{padding:16px;gap:10px}.sc-head{display:flex;align-items:center;gap:4px}.sc-star{width:80px;animation:pop-in .5s ease-out}.sc-plus{font:700 52px var(--f-en);color:var(--bark);text-shadow:0 3px 0 #fff;animation:pop-in .5s .1s ease-out both}.sc-cardwrap{width:min(520px,100%);display:flex;flex-direction:column;gap:8px;background:#fffaf0b3;padding:10px;border-radius:26px}.sc-title{display:flex;align-items:center;justify-content:space-between;font-size:22px;padding:0 6px}.sc-count{font:700 22px var(--f-en)}.sc-full{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:30px;animation:pop-in .7s 1.2s ease-out both}.sc-full img{width:110px}.sc-full-reward{font-size:18px;background:var(--paper);padding:4px 14px;border-radius:999px}.sc-note{display:flex;align-items:center;gap:8px;background:var(--paper);padding:6px 12px;border-radius:999px;font-size:16px;color:#3b4f8f}.rp-head{display:flex;align-items:center;justify-content:space-between}.rp-head h1{margin:0;font-size:32px;font-weight:400}.rp-balance{display:flex;align-items:center;gap:4px;font:700 28px var(--f-en);background:#fffaf0;padding:2px 14px 2px 4px;border-radius:999px;box-shadow:inset 0 0 0 3px var(--sun)}.rp-balance img{width:42px}.rp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,42vw),1fr));gap:14px}.rp-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 10px 14px;border-radius:22px;background:#fffaf0;box-shadow:inset 0 0 0 3px var(--paper-2),0 3px #5a3d2226}.rp-item.ok{box-shadow:inset 0 0 0 3px var(--sun),0 3px #5a3d2226}.rp-item.wish{grid-column:1 / -1;flex-direction:row;text-align:left;flex-wrap:wrap;padding:26px 14px 14px;box-shadow:inset 0 0 0 3px #e9a8c8,0 3px #5a3d2226}.rp-item.wish .rp-img{width:110px}.rp-item.wish .rp-name{flex:1;font-size:22px}.rp-item.wish .bar{flex-basis:100%}.rp-item.locked .rp-img{filter:saturate(.7)}.rp-item:active{transform:scale(.97)}.rp-wish-tag{position:absolute;top:-10px;left:14px;background:#e9a8c8;color:#fff;padding:4px 12px;border-radius:999px;font-size:15px}.rp-wish-tag .zy-col{color:#fff}.rp-img{width:88px;height:88px;object-fit:contain}.rp-img.photo{object-fit:cover;border-radius:16px}.rp-name{font-size:18px;text-align:center;line-height:1.3}.rp-cost{display:flex;align-items:center;gap:4px;font:700 20px var(--f-en)}.rp-cost img{width:24px}.confirm-img.photo{object-fit:cover;aspect-ratio:1}.rp-sheet-name{font-size:26px}.rp-need{padding:4px 0 8px}.reward-art{border-radius:24px}.goal-text{font-family:var(--f-zh)!important;font-weight:400!important;font-size:34px!important;background:var(--paper);padding:8px 20px;border-radius:999px;text-shadow:none!important}.ra-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ra-item{background:var(--paper);border-radius:14px;padding:8px 10px}.ra-row{display:flex;align-items:center;gap:10px;cursor:pointer}.ra-img{width:44px;height:44px;object-fit:cover;border-radius:10px}.ra-name{flex:1;min-width:0;font-size:16px}.ra-name em{font-style:normal;font-size:12px;background:#e9a8c8;color:#fff;padding:1px 8px;border-radius:999px;margin-left:6px}.ra-cost{font:700 15px var(--f-en)}.ra-edit{display:flex;flex-direction:column;gap:10px;padding-top:10px}.ra-icons{display:flex;flex-wrap:wrap;gap:6px}.ra-icons button{width:48px;height:48px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 2px var(--paper-2);padding:4px}.ra-icons button.on{box-shadow:inset 0 0 0 3px var(--leaf)}.ra-icons img{width:100%;height:100%;object-fit:contain}.ra-sub{margin:8px 0 0;font-size:15px;font-weight:400;color:var(--bark-soft)}.morning-log li.ra-log{grid-template-columns:4em 1fr auto}.field-row select{font:16px var(--f-zh);padding:8px;border-radius:10px;border:2px solid var(--paper-2);background:#fff;color:var(--bark)}.money{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}.money-pocket,.money-jar{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;padding:12px 10px;border-radius:22px;background:#fffaf0;box-shadow:inset 0 0 0 3px var(--paper-2),0 3px #5a3d221f}.money-jar{box-shadow:inset 0 0 0 3px #9cc7dd,0 3px #5a3d221f}.money-label{font-size:20px}.money-num{display:flex;align-items:center;gap:4px;font:700 40px var(--f-en)}.money-num img{width:54px}.save-btn{font-size:18px;min-height:52px;width:100%}.save-btn .zy-col{color:#fff}.jar{--s: 150px;position:relative;width:calc(var(--s) * .78);display:flex;flex-direction:column;align-items:center}.jar-lid{width:70%;height:calc(var(--s) * .1);background:linear-gradient(180deg,#a9774b,#7c5131);border-radius:8px 8px 4px 4px;box-shadow:0 2px #00000026}.jar-body{position:relative;width:100%;height:var(--s);margin-top:-2px;border-radius:22% 22% 26% 26%/14% 14% 20% 20%;background:linear-gradient(90deg,#bee1f08c,#ebf8fc59 40%,#bee1f099);box-shadow:inset 0 0 0 3px #78aac3bf,inset 8px 0 #ffffff80;overflow:hidden}.jar-stars{position:absolute;inset:auto 8% 6% 8%;display:flex;flex-wrap:wrap-reverse;justify-content:center;align-content:flex-start;gap:0}.jar-stars img{width:26%;margin:-3% -1%;transform:rotate(var(--r))}.jar-goal-line{position:absolute;left:6%;right:6%;top:8%;border-top:3px dashed #e9a8c8}.jar-drop{position:absolute;left:38%;top:-20%;width:26%;animation:jar-drop .9s cubic-bezier(.5,0,.8,.6) both}@keyframes jar-drop{0%{transform:translateY(0) rotate(0);opacity:1}85%{opacity:1}to{transform:translateY(calc(var(--s) * .9)) rotate(200deg);opacity:0}}.jar-count{margin-top:4px;font:700 28px var(--f-en);color:#3d6f88}.rp-item.wish .jar-cost{color:#3d6f88}.rp-wish-hint{flex-basis:100%;font-size:13px;color:var(--bark-soft)}.cp-wish-num small{font-family:var(--f-zh);font-weight:400;font-size:12px;color:var(--bark-soft)}.confirm-img.small{width:min(140px,40vw)}.think{width:100%;display:flex;flex-direction:column;gap:6px;background:#fffaf0;border-radius:18px;padding:10px 12px}.think-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.think-row b{font:700 24px var(--f-en)}.think-label{font-size:17px}.think-arrow{font-size:14px;color:var(--berry);text-align:center}.think-wish{margin:4px 0 0;font-size:14px;color:#3d6f88;line-height:1.5}.star-row{display:flex;flex-wrap:wrap;gap:1px}.star-row img{width:22px;height:22px;object-fit:contain}.star-row img.dim{opacity:.35;filter:grayscale(.6)}.star-row-zero{font:700 18px var(--f-en);color:var(--bark-soft)}.think-btn{position:relative;overflow:hidden}.think-btn:disabled{opacity:1;background:#b9cf96}.think-btn:disabled:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--p, 0%);background:var(--leaf);transition:width 1s linear;z-index:0}.think-btn>*{position:relative;z-index:1}.think-btn .zy-col{color:#fff}.save-instead{background:#dcecf4;color:#2f5f77;min-height:50px;font-size:16px}.think-jar{display:flex;align-items:center;gap:14px}.sync-form{display:flex;flex-direction:column;gap:10px}.sync-status{margin:0;display:flex;align-items:center;gap:8px;font-size:17px}.sync-status small{color:var(--bark-soft)}.sync-dot{width:12px;height:12px;border-radius:50%;background:#b9b9b9}.sync-dot.synced{background:var(--leaf)}.sync-dot.syncing{background:var(--sun);animation:wait-glow 1s infinite}.sync-dot.offline,.sync-dot.choose{background:#e3a33b}.sync-dot.error{background:var(--berry)}.sync-choose{display:flex;flex-direction:column;gap:8px;background:#fff4c7;padding:10px 12px;border-radius:14px}.sync-choose p{margin:0;line-height:1.5}.sync-badge{position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--leaf-deep);background:var(--leaf)}.sync-badge.syncing{background:var(--sun)}.sync-badge.offline,.sync-badge.choose{background:#e3a33b}.sync-badge.error{background:var(--berry)}.section-title.main:before,.section-title.special:before{content:"";width:12px;height:12px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 2px #e3a33b}.section-title.habit:before{content:"";width:12px;height:12px;border-radius:50% 0;background:var(--leaf)}.section-title.explore:before{content:"";width:12px;height:12px;border-radius:50%;background:#9cc7dd}.s-habit .task-grid,.s-explore .task-grid{grid-template-columns:repeat(auto-fill,minmax(min(120px,28vw),1fr));gap:10px}.task-card.t-main,.task-card.t-special{box-shadow:inset 0 0 0 3px #f3dc8c,0 3px #5a3d2226}.task-card.t-habit,.task-card.t-explore{padding:8px 8px 10px;border-radius:18px}.task-card.t-habit .task-card-name,.task-card.t-explore .task-card-name{font-size:17px}.task-card.t-habit .task-card-name .zy,.task-card .task-card-name.zy{justify-content:center}.task-card.t-habit.done,.task-card.t-explore.done{background:#f1f7e6;box-shadow:inset 0 0 0 3px #b9d38c,0 3px #5a3d221f}.task-card.t-habit.done .task-card-img,.task-card.t-explore.done .task-card-img{opacity:.8;filter:none}.task-stamp.habit,.task-stamp.explore{width:52%;right:-6px;bottom:-6px}.task-card.focus{box-shadow:inset 0 0 0 4px var(--berry),0 3px #5a3d2226}.focus-tag{font-size:14px;color:#fff;background:var(--berry);padding:3px 10px;border-radius:999px;margin-top:-2px}.focus-tag .zy-col{color:#fff}.star-chip{position:absolute;top:4px;right:4px;z-index:1;display:inline-flex;align-items:center;gap:1px;background:#fff8db;color:var(--bark);font:700 15px var(--f-en);padding:2px 8px 2px 3px;border-radius:999px;box-shadow:inset 0 0 0 2px var(--sun)}.star-chip img{width:22px;height:22px}.task-dots img.on{opacity:1}.paused-note{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:18px;color:var(--bark-soft)}.paused-note span{font-size:14px}.notice{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:25;width:min(460px,calc(100% - 24px));display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:16px;background:#fff4c7;color:var(--bark);box-shadow:0 8px 24px #14280a4d;font-size:15px;line-height:1.5}.celebrate.mini-pop{background:transparent;pointer-events:none}.celebrate.mini-pop .celebrate-art{width:min(36vw,160px)}.focus-pick{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.focus-pick .pick{padding:8px 12px;border-radius:999px;background:var(--paper);box-shadow:inset 0 0 0 2px var(--paper-2);font-size:15px;min-height:40px}.focus-pick .pick.on{background:var(--berry);color:#fff;box-shadow:none}.focus-pick .pick:disabled{opacity:.45}.tset-name small{display:block;font-size:12px;color:var(--bark-soft);line-height:1.4}.tset-type{font:14px var(--f-zh);padding:6px;border-radius:8px;border:2px solid var(--paper-2);background:#fff;color:var(--bark)}.tset-row.off .tset-name{opacity:.5}.bp-chip{position:relative;width:64px;height:56px;border-radius:16px;background:#fffaf0;box-shadow:inset 0 0 0 3px var(--paper-2),var(--shadow-soft);padding:4px}.bp-chip img{width:100%;height:100%;object-fit:contain}.rp-item.wish{align-items:center}.rp-wish-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.rp-item.wish .rp-name{font-size:20px;text-align:left}.rp-need{display:flex;align-items:center;gap:4px;font-size:16px;color:var(--berry)}.rp-need b{font:700 20px var(--f-en)}.rp-wait{position:absolute;top:8px;right:8px;left:auto;bottom:auto;transform:none;font-size:14px}.rp-desc{margin:0;font-size:14px;line-height:1.6;color:var(--bark-soft);text-align:left;background:var(--paper-2);padding:8px 12px;border-radius:12px}.rp-requested{font-size:24px;background:var(--sun);padding:8px 18px;border-radius:999px}.make-wish{background:#fbe3ef;color:#a2466f}.make-wish .zy-col{color:#a2466f}.rp-img[src*=night_market]{width:100%;height:auto;max-height:120px;object-fit:cover;border-radius:14px}.rp-item.wish .rp-img[src*=night_market]{width:150px}.bp-head{display:flex;align-items:center;gap:12px}.bp-art{width:110px;border-radius:18px}.bp-title{font-size:26px;text-align:left}.bp-section{display:flex;flex-direction:column;gap:10px}.bp-n{font:700 20px var(--f-en);color:var(--leaf-deep)}.coupon{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:18px;background:#fffaf0;box-shadow:inset 0 0 0 3px var(--sun),0 3px #5a3d221f;border-left:8px dashed #f3dc8c}.coupon>img{width:72px;height:72px;object-fit:cover;border-radius:14px}.coupon-body{flex:1 1 140px;min-width:0;display:flex;flex-direction:column;gap:2px}.coupon-body strong{font-size:19px;font-weight:400}.coupon-body span{font-size:13px;color:var(--bark-soft)}.coupon-actions{display:flex;gap:6px}.coupon.pending{box-shadow:inset 0 0 0 3px #e9a8c8;border-left-color:#f5c9dd}.coupon.used{opacity:.6;box-shadow:inset 0 0 0 2px var(--paper-2);border-left-color:var(--paper-2)}.used-stamp{font-size:15px;color:var(--berry);border:2px solid var(--berry);border-radius:8px;padding:2px 8px;transform:rotate(-8deg)}.surprise-panel{box-shadow:inset 0 0 0 3px var(--sun);background:#fffbe8}.seg.big button{font-size:17px;padding:10px 16px;min-height:48px}.sc-note.surprise{background:var(--sun);color:var(--bark);font-size:20px}.ledger-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ledger-sum>div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;background:var(--paper);border-radius:14px;padding:10px 6px}.ledger-sum b{font:700 28px var(--f-en)}.ledger-sum span{font-size:14px}.ledger-sum small{font-size:11px;color:var(--bark-soft);line-height:1.4}.ledger{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:14px}.ledger li{display:grid;grid-template-columns:3.4em minmax(0,1fr) auto;gap:8px;padding:5px 8px;border-radius:8px;background:var(--paper)}.ledger .l-amt{font:700 14px var(--f-en)}.ledger .earn .l-amt{color:var(--leaf-deep)}.ledger .spend .l-amt,.ledger .fix .l-amt{color:var(--berry)}.ledger .jar .l-amt{color:#3d6f88}.ra-name em.off{background:#b9b9b9}.habit-confirm .pbtn.ghost{border:2px dashed #c9b48a;background:#fffaf0;min-height:52px;font-size:1.05rem}.heart-leaf .hl-body{fill:#6fae4a;stroke:#3f7a2c;stroke-width:2.2}.heart-leaf .hl-vein{stroke:#d8efc0;stroke-width:1.8;fill:none;stroke-linecap:round}.heart-leaf .hl-stem{stroke:#6b4a2b;stroke-width:2.4;fill:none;stroke-linecap:round}.heart-leaf.empty .hl-body{fill:none;stroke:#cdbf9f;stroke-dasharray:4 3}.heart-leaf.empty .hl-vein,.heart-leaf.empty .hl-stem{stroke:#e2d8c2}.dock-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:100%}.dad-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 4px;border-radius:999px;background:#fbf5e6f2;box-shadow:inset 0 0 0 3px #4f8a3a,var(--shadow-soft);color:#3f6f2e;white-space:nowrap}.dad-chip:active{transform:scale(.96)}.dad-chip-img{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:40% 35%}.dad-chip-label{font-size:15px;flex-wrap:nowrap}.dad-chip.done{box-shadow:inset 0 0 0 3px #4f8a3a,0 0 0 4px #6fae4a40,var(--shadow-soft)}.dad-page{padding-bottom:24px}.dad-hero{position:relative;margin:8px 0 12px}.dad-cover{width:100%;border-radius:22px;display:block;box-shadow:var(--shadow-soft)}.dad-title{position:absolute;left:50%;bottom:-14px;transform:translate(-50%);margin:0;padding:6px 18px;border-radius:999px;white-space:nowrap;background:#fffaf0;box-shadow:inset 0 0 0 3px #4f8a3a,var(--shadow-soft);font-size:22px;color:#3f6f2e;cursor:pointer}.dad-today{margin-top:26px;text-align:center}.dad-deck{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;padding:6px 0 4px}.dad-deck-cards{position:relative;width:180px;height:210px}.dad-back{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:18px;background:repeating-linear-gradient(45deg,#5f9a45 0,#5f9a45 10px,#6fae4a 10px,#6fae4a 20px);box-shadow:inset 0 0 0 5px #fff6e0,0 6px 14px #46321e40;display:grid;place-items:center}.dad-back.b3{transform:rotate(-9deg) translate(-14px,6px);opacity:.8}.dad-back.b2{transform:rotate(6deg) translate(12px,4px);opacity:.9}.dad-back.b1 .heart-leaf .hl-body{fill:#fff6e0;stroke:#fff6e0}.dad-back.b1 .heart-leaf .hl-vein{stroke:#6fae4a}.dad-back.b1 .heart-leaf .hl-stem{stroke:#fff6e0}.dad-draw{min-width:200px}.dad-card{display:flex;flex-direction:column;align-items:center;gap:10px}.dad-card-face{position:relative;width:min(100%,340px);padding:0;border-radius:20px;overflow:visible}.dad-card-face img{width:100%;border-radius:20px;display:block;box-shadow:inset 0 0 0 4px #fff,0 8px 18px #46321e40}.dad-card.shuffling .dad-card-face{animation:dad-shake .11s linear infinite}.dad-card.reveal .dad-card-face{animation:pop-in .5s ease-out}.dad-card-stamp{position:absolute;right:-10px;bottom:-14px;filter:drop-shadow(0 4px 6px rgba(40,80,20,.35));animation:pop-in .5s ease-out}.dad-card-name{font-size:26px;color:var(--bark)}.dad-tip{margin:0;max-width:360px;padding:10px 14px;border-radius:14px;background:#f1f6e8;color:#4b5a3a;font-size:14px;text-align:left;line-height:1.6}.dad-done-msg{display:inline-flex;align-items:center;gap:6px;font-size:20px;color:#3f6f2e}@keyframes dad-shake{0%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}to{transform:rotate(-2deg)}}.dad-week{margin-top:22px}.dad-week-num{font:700 26px/1 var(--f-en);color:#3f6f2e;margin-left:4px}.dad-week-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:10px 6px;border-radius:18px;background:#fffaf0;box-shadow:var(--shadow-soft)}.dad-day{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.dad-day.today{background:#f1f6e8;border-radius:12px}.dad-day-label{font-size:15px}.dad-log{margin-top:18px}.dad-log ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.dad-log li{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:12px;background:#fffaf0;font-size:15px}.dad-log li img{width:44px;height:34px;object-fit:cover;border-radius:8px}.heart-celebrate .heart-card{width:min(64vw,300px);border-radius:20px}.heart-fall{animation:heart-fall 1.2s ease-out both;filter:drop-shadow(0 6px 10px rgba(40,80,20,.35));margin-top:-40px}@keyframes heart-fall{0%{transform:translateY(-160px) rotate(-30deg) scale(.5);opacity:0}70%{transform:translateY(8px) rotate(6deg) scale(1.05);opacity:1}to{transform:none}}.dad-admin-img{width:48px;height:36px;object-fit:cover;border-radius:8px;flex:none}.row-field{flex-direction:row!important;align-items:center;gap:8px}@media(prefers-reduced-motion:reduce){.dad-card.shuffling .dad-card-face,.heart-fall,.dad-card-stamp{animation:none}}.dad-title{width:max-content;max-width:calc(100% - 16px);font-size:20px}.dad-title>*{flex-wrap:nowrap}.dad-card-face{width:min(100%,300px)}.hall-page{padding-bottom:24px}.hall-title{margin:6px 0 10px;text-align:center;font-size:24px;color:var(--bark)}.hall-title>*{flex-wrap:nowrap;justify-content:center}.tower-wrap{position:relative;width:100%;max-width:520px;margin:0 auto;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-soft)}.tower-img{width:100%;display:block}.floor-dot{position:absolute;width:9%;aspect-ratio:1;transform:translate(-50%,-50%);padding:0;border-radius:50%;background:#fffaeb8c;box-shadow:0 0 0 2px #ffffffb3;display:grid;place-items:center}.floor-dot img{width:78%;opacity:.7}.floor-dot.on{background:#ffeca0d9;box-shadow:0 0 0 2px #f2c14e,0 0 12px 3px #ffd65ab3}.floor-dot.on img{opacity:1}.floor-dot.cur{display:none}.tower-kid{position:absolute;width:13%;transform:translate(-50%,-100%);transition:left 1.2s ease,top 1.2s ease;filter:drop-shadow(0 4px 6px rgba(60,40,20,.45));pointer-events:none;animation:kid-bob 2.4s ease-in-out infinite}.tower-kid.summit{filter:drop-shadow(0 0 10px rgba(255,220,90,.95))}@keyframes kid-bob{0%,to{translate:0 0}50%{translate:0 -4px}}.tower-info{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 14px;margin:10px 0 4px;font-size:17px}.tower-total{display:inline-flex;align-items:center;gap:4px}.tower-total img{width:26px}.tower-total b,.tower-next b{font:700 24px/1 var(--f-en);color:#c47a12}.tower-next{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.badge-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 12px;border-radius:18px;background:#fbf1df;box-shadow:var(--shadow-soft);min-width:0}.badge-card.big{grid-column:1 / -1;background:linear-gradient(180deg,#fff3c8,#fbe7b4);box-shadow:0 0 0 3px #f2c14e,var(--shadow-soft)}.badge-img{width:78%;max-width:150px;filter:drop-shadow(0 3px 4px rgba(120,80,20,.25))}.badge-card.big .badge-img{max-width:200px}.badge-card.locked .badge-img{filter:grayscale(.9) opacity(.45)}.badge-card.got .badge-img{animation:none}.badge-name{font-size:17px}.badge-card.big .badge-name{font-size:22px}.badge-date{font:700 14px/1 var(--f-en);color:#8a6a3a}.badge-prog{display:flex;align-items:center;gap:6px;width:86%}.badge-prog .bar{flex:1}.badge-prog b{font:700 14px/1 var(--f-en);color:#8a6a3a;white-space:nowrap}.badge-prog.wide{width:min(100%,280px)}.hall-sheet-img{width:min(56vw,220px)}.hall-sheet-img.locked{filter:grayscale(.9) opacity(.45)}.hall-cond{font-size:17px;color:#6b5a40}.hall-cheer{font-size:20px;color:#b4620e}.gold-rays{position:absolute;left:50%;top:42%;width:140vmax;height:140vmax;transform:translate(-50%,-50%);background:radial-gradient(circle,#ffecaabf 0,#ffecaabf 18%,#ffecaa00 46%),repeating-conic-gradient(from 0deg,#ffdc6e29,#ffdc6e29 8deg,#ffdc6e00 8deg,#ffdc6e00 24deg);animation:rays-spin 40s linear infinite;pointer-events:none;z-index:-1}@keyframes rays-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.badge-celebrate,.floor-celebrate{isolation:isolate}.medal-art{width:min(62vw,260px)!important;filter:drop-shadow(0 0 18px rgba(255,210,80,.8))!important;animation:medal-in .9s cubic-bezier(.2,1.4,.4,1) both!important}@keyframes medal-in{0%{transform:scale(.2) rotate(-25deg);opacity:0}to{transform:none;opacity:1}}.climb-art{width:min(40vw,170px)!important;animation:climb-up 1.1s ease-out both!important}@keyframes climb-up{0%{transform:translateY(120px);opacity:0}to{transform:none;opacity:1}}.celebrate-badge-name{font-size:30px;color:var(--bark);background:#fffaf0;padding:6px 18px;border-radius:999px;box-shadow:0 0 0 3px #f2c14e;animation:pop-in .6s .4s ease-out both}.celebrate-badge-cheer{font-size:20px;color:#7a4a10;animation:pop-in .6s .7s ease-out both}@media(prefers-reduced-motion:reduce){.gold-rays,.tower-kid,.medal-art,.climb-art{animation:none!important}.tower-kid{transition:none}}.charge-chip{display:flex;align-items:center;gap:6px;width:100%;padding:4px 10px 4px 6px;border-radius:999px;background:#fbf5e6f5;box-shadow:inset 0 0 0 3px #3b6ea8,var(--shadow-soft);color:#2f5a8a;white-space:nowrap}.charge-chip:active{transform:scale(.97)}.charge-chip.ready{box-shadow:inset 0 0 0 3px #e0a524,0 0 0 4px #ffd25059,var(--shadow-soft);animation:chip-glow 2.4s ease-in-out infinite}@keyframes chip-glow{50%{box-shadow:inset 0 0 0 3px #e0a524,0 0 14px 6px #ffd2508c,var(--shadow-soft)}}.charge-chip-top{width:38px}.charge-chip-label{font-size:15px;flex-wrap:nowrap}.charge-chip-lamps{display:flex;gap:1px;margin-left:auto}.charge-chip-lamps img{height:26px}.charge-chip-hint{margin-left:auto;font-size:13px;color:#8a7a60}.charge-chip-chest{height:32px}.charge-page{padding-bottom:24px}.station{position:relative;width:100%;max-width:460px;margin:0 auto}.station-arena{position:relative}.arena-img{width:100%;display:block}.station-top{position:absolute;left:50%;top:30%;width:38%;transform:translate(-50%,-50%);filter:drop-shadow(0 8px 6px rgba(40,30,20,.35))}.station-top.spin{animation:top-spin .35s linear infinite}@keyframes top-spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.lamp-row{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:4px;max-width:360px;margin:-4px auto 0;align-items:end}.lamp{display:flex;justify-content:center;align-items:flex-end}.lamp img{height:62px;max-width:100%;object-fit:contain}.lamp.pop img{animation:lamp-pop .6s 1s ease-out both}@keyframes lamp-pop{0%{transform:scale(.6);filter:brightness(1.6)}70%{transform:scale(1.18)}to{transform:none}}.charge-orb{position:absolute;left:50%;bottom:-40px;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:radial-gradient(circle,#fff 0,#fff 25%,#ffe27a 40%,#ffc83c00 70%);box-shadow:0 0 18px 8px #ffdc64cc;animation:orb-fly .9s ease-in both}@keyframes orb-fly{0%{transform:translateY(80px) scale(.6);opacity:0}20%{opacity:1}to{transform:translateY(-150px) scale(1.2);opacity:0}}.charge-celebrate{background:#283c2859}.charge-card{width:min(92vw,420px);padding:14px 12px 16px;border-radius:24px;background:#fffaf0;box-shadow:0 10px 30px #281e1459;display:flex;flex-direction:column;align-items:center;gap:8px;animation:pop-in .4s ease-out}.charge-cheer{font-size:22px;color:#2f5a8a;display:flex;align-items:center;gap:8px}.charge-cheer b,.charge-count b{font:700 26px/1 var(--f-en);color:#c47a12}.charge-full{display:flex;flex-direction:column;align-items:center;gap:6px}.charge-chest{width:150px;animation:chest-pulse 1.6s ease-in-out infinite}@keyframes chest-pulse{50%{transform:scale(1.06);filter:drop-shadow(0 0 16px rgba(255,210,80,.9))}}.charge-count{text-align:center;font-size:19px;margin:8px 0 4px;display:flex;justify-content:center;align-items:center;gap:8px}.charge-setup{text-align:center}.charge-msg{font-size:19px;margin:12px 0 4px}.chest-btn{display:flex;flex-direction:column;align-items:center;gap:4px;margin:6px auto 10px;padding:0}.chest-btn img{width:170px;height:160px;object-fit:contain;object-position:bottom}.chest-btn.glow img{animation:chest-pulse 1.6s ease-in-out infinite}.chest-btn.opening img{animation:chest-shake .15s linear infinite}@keyframes chest-shake{0%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}to{transform:rotate(-4deg)}}.chest-label{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:21px;color:#b4620e}.chest-label.dim{color:#8a7a60;font-size:17px}.chest-label small{font-size:15px}.charge-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:6px}.charge-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:16px;background:#fbf1df;box-shadow:var(--shadow-soft);min-width:0}.charge-item img{width:60px;height:52px;object-fit:cover;border-radius:10px}.charge-item.ok{background:#fff3c8;box-shadow:0 0 0 2px #f2c14e,var(--shadow-soft)}.charge-item-name{font-size:13px}.charge-item-mark{position:absolute;top:2px;right:6px;font-size:18px}.charge-picks{display:flex;flex-wrap:wrap;gap:6px}.charge-picks .pick{padding:8px 12px;border-radius:999px;background:#f3ead6;font-size:15px}.charge-picks .pick.on{background:#3b6ea8;color:#fff}.warn{color:#c0462e}.surprise-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#28322873;animation:fade-in .3s ease-out}@keyframes fade-in{0%{opacity:0}}.surprise-card{position:relative;z-index:2;width:min(88vw,380px);padding:18px 16px;border-radius:26px;background:#fffaf0;box-shadow:0 0 0 4px #f2c14e,0 14px 30px #281e1466;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;animation:medal-in .7s cubic-bezier(.2,1.4,.4,1) both}.surprise-title{font-size:26px;color:#b4620e}.surprise-animal{font-size:110px;line-height:1;animation:animal-hop .9s ease-in-out infinite}@keyframes animal-hop{50%{transform:translateY(-14px)}}.surprise-line{font-size:20px}.surprise-move{position:relative;width:200px;height:200px;display:grid;place-items:center}.move-top{width:150px;animation:top-spin-c .18s linear infinite;filter:drop-shadow(0 0 16px rgba(120,180,255,.9))}@keyframes top-spin-c{to{transform:rotate(360deg)}}.move-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:6px solid rgba(110,170,255,.55);animation:ring-out 1.2s ease-out infinite}.move-ring.r2{animation-delay:.6s;border-color:#ffc85099}@keyframes ring-out{0%{transform:scale(.5);opacity:1}to{transform:scale(1.4);opacity:0}}.secret-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border-radius:18px;background:#f1f6e8;box-shadow:inset 0 0 0 3px #b8d49a;font-size:20px;line-height:1.8}.secret-card img{width:90px}.surprise-party-star{width:150px;animation:medal-in .8s cubic-bezier(.2,1.4,.4,1) both,kid-bob 1.6s .8s ease-in-out infinite}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:1}.confetti span{position:absolute;top:-20px;left:calc(var(--i) * 3.6%);width:10px;height:16px;border-radius:3px;background:hsl(calc(var(--i) * 47),80%,62%);animation:confetti-fall calc(2.2s + var(--i) * .04s) calc(var(--i) * .05s) ease-in both}@keyframes confetti-fall{to{transform:translateY(110vh) rotate(calc(var(--i) * 40deg))}}@media(prefers-reduced-motion:reduce){.station-top.spin,.move-top,.move-ring,.charge-orb,.confetti span,.surprise-animal,.chest-btn.glow img,.charge-chest,.charge-chip.ready,.lamp.pop img{animation:none!important}}.charge-chip{width:auto}.charge-chip-lamps{margin-left:2px}.lamp.on img{height:72px}.charge-chip-lamps img[src*=lamp_on]{height:30px}
