html,body{background:#0d1530;min-height:100%;margin:0}.night-sky{box-sizing:border-box;color:#f3ead2;flex-direction:column;align-items:center;min-height:100vh;padding:8px;font-family:system-ui,sans-serif;display:flex}.night-sky h1{margin:8px 0 12px;font-size:1.25rem;font-weight:600}.app-main{flex-direction:column;align-items:center;width:100%;min-width:0;display:flex}.app-footer{text-align:center;width:100%;margin:12px 0 4px}.app-footer nav{justify-content:center;display:flex}.footer-link{box-sizing:border-box;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.house{width:100%;min-width:0;position:relative}.static-layer,.house-overlay{position:absolute;inset:0}.house-overlay{pointer-events:none;overflow:hidden}.grow-sparkles{pointer-events:none;position:absolute;inset:0;overflow:visible}.grow-sparkle{aspect-ratio:1;opacity:0;pointer-events:none;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);background:#ffe9a8;width:2.2%;margin:-1.1% 0 0 -1.1%;position:absolute}.static-layer{pointer-events:none;-webkit-user-select:none;user-select:none}.static-module,.static-plate{pointer-events:none;-webkit-user-drag:none;display:block;position:absolute}.static-plate{box-sizing:border-box;background:#2b2547;border:1px solid #4a4272}:focus-visible{outline-offset:2px;outline:3px solid #ffd479}input::placeholder,textarea::placeholder{color:#595964;opacity:1}.create-form{box-sizing:border-box;background:#1b2547;border:1px solid #3a4a80;border-radius:12px;width:100%;max-width:560px;margin:0 0 8px;padding:12px}.create-form label{margin-bottom:6px;font-size:1rem;display:block}.create-row{flex-wrap:wrap;gap:8px;display:flex}.create-row input{box-sizing:border-box;min-width:0;min-height:44px;font:inherit;color:#1c1b22;background:#fffaf0;border:2px solid #9aa7d6;border-radius:8px;flex:200px;padding:0 12px}.create-row button{min-height:44px;font:inherit;color:#1c1b22;cursor:pointer;background:#ffd479;border:2px solid #c9972b;border-radius:8px;padding:0 16px}.create-error{color:#ffd9c9;margin:8px 0 0;font-size:1rem}.live-region{color:#cfd8ff;min-height:1.5em;margin:0 0 8px;font-size:1rem}.residents{margin:0;padding:0;list-style:none;position:absolute;inset:0}.resident{position:absolute}.resident-floor,.floor-residents{margin:0;padding:0;list-style:none;position:absolute;inset:0}.resident-floor{pointer-events:none}.residents:focus{outline:none}.resident[data-waiting=true]{visibility:hidden}.residents-leaving{pointer-events:none;position:absolute;inset:0}.live-caption{z-index:40;bottom:calc(8px + var(--drawer-h,0px) + var(--stage-h,0px) + env(safe-area-inset-bottom,0px));box-sizing:border-box;color:#3a2f22;pointer-events:none;overflow-wrap:anywhere;background:#fff4de;border:2px solid #c9972b;border-radius:12px;width:fit-content;max-width:min(560px,100% - 16px);min-height:0;margin:0 auto;padding:8px 14px;font-size:1rem;line-height:1.4;position:fixed;left:8px;right:8px;box-shadow:0 4px 14px #080c1e59}html:has(.live-caption){scroll-padding-bottom:calc(var(--caption-h,48px) + 24px + var(--drawer-h,0px) + var(--stage-h,0px))}html:has(.live-caption) .app-footer{padding-bottom:calc(var(--caption-h,48px) + 24px)}@media (width<=360px){.live-caption{max-width:calc(100% - 8px);padding:4px 8px;left:4px;right:4px}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card-head-actions{flex-wrap:wrap;flex:0 auto;align-items:flex-start;gap:8px;display:flex}.ghost-button{cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;width:100%;height:100%;margin:0;padding:0;display:block;position:relative}.ghost-motion{width:100%;height:100%;display:block}.ghost-sprite{width:100%;height:100%;display:block;overflow:visible}.ghost-button[aria-pressed=true] .ghost-halo{filter:drop-shadow(0 0 4px #fff3c4)}.ghost-tag{white-space:nowrap;color:#fffaf0;pointer-events:none;opacity:0;background:#1b2547;border:1px solid #3a4a80;border-radius:8px;margin-top:-6px;padding:1px 6px;font-size:1rem;line-height:1.3;transition:opacity .15s ease-out;position:absolute;top:100%;left:50%;transform:translate(-50%)}.ghost-button:focus-visible .ghost-tag{opacity:1}@media (hover:hover){.ghost-button:hover .ghost-tag{opacity:1}}@media (prefers-reduced-motion:reduce){.ghost-tag{transition:none}}.ghost-from-left{--enter-from:-210%}.ghost-from-right{--enter-from:200%}.ghost-enter{animation:1.2s ease-out both ghost-move-in}@keyframes ghost-move-in{0%{opacity:0;transform:translateX(var(--enter-from))}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.ghost-enter{animation:none}}.house-view:not([hidden]){flex-direction:column;align-items:center;width:100%;min-width:0;display:flex}button,.archive-back,.footer-link{min-width:44px;min-height:44px;font:inherit;color:#1c1b22;cursor:pointer;background:#f1e6c8;border:2px solid #9a7b32;border-radius:8px;padding:0 12px}button.primary{background:#ffd479;border-color:#c9972b}button:disabled{opacity:.55;cursor:default}.task-card{--drawer-ink:#3a2f22;--drawer-soft:#5a4a38;z-index:20;box-sizing:border-box;width:min(760px,100% - 16px);max-height:min(58dvh,58vh);color:var(--drawer-ink);-webkit-backdrop-filter:blur(16px)saturate(1.15);backdrop-filter:blur(16px)saturate(1.15);background:#fff4ded6;border:1px solid #ffffff8c;border-radius:22px;flex-direction:column;margin:0 auto;padding:12px 14px 8px;animation:.28s ease-out both drawer-up;display:flex;position:fixed;bottom:8px;left:0;right:0;box-shadow:0 -6px 28px #080c1e59,0 2px 8px #080c1e33}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.task-card{background:#fff4de}}@keyframes drawer-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.card-scroll{overscroll-behavior:contain;flex:auto;min-height:0;margin:0 -6px;padding:0 6px 6px;overflow-y:auto}.task-card .muted,.task-card .count{color:var(--drawer-soft)}.task-card .form-error{color:#9a3b22}.task-card .card-state[data-pending=true]{color:#7a5200}.task-card .step{border-bottom-color:#6a543440}.task-card textarea,.task-card .step-add input,.task-card .step-edit input{background:#fffcf4eb;border-color:#b79d6a}.night-sky{padding-bottom:calc(8px + var(--drawer-h,0px))}.task-card h2,.task-card h3,.dialog h2,.dialog h3{overflow-wrap:anywhere;margin:0 0 6px;font-size:1.125rem}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.card-head h2{flex:8rem;min-width:0}.card-state{margin:0 0 8px;font-size:1rem}.card-state[data-pending=true]{color:#ffe9a8}.muted{color:#cfd8ff;margin:0 0 8px;font-size:1rem}.count{color:#cfd8ff;margin:4px 0;font-size:1rem}.form-error{color:#ffd9c9;margin:6px 0;font-size:1rem}.task-card .last-thing{color:#ffe9cf;background:#ffd6a038;border-left:4px solid #e8a35c;border-radius:6px;margin:6px 0;padding:6px 10px}.criteria.needs-done{background:#ffd6a01f;border:2px dashed #e8a35c;border-radius:10px;padding:8px 10px}.criteria-read{flex-wrap:wrap;align-items:center;gap:4px 8px;margin:6px 0;display:flex}.criteria-title{flex:100%;margin:0;font-size:1rem}.criteria-text{white-space:pre-wrap;overflow-wrap:anywhere;flex:160px;margin:0}.criteria label,.step-add label,.dialog label{margin-bottom:4px;font-size:1rem;display:block}textarea,.step-add input,.step-edit input{box-sizing:border-box;width:100%;min-height:44px;font:inherit;color:#1c1b22;background:#fffaf0;border:2px solid #9aa7d6;border-radius:8px;padding:8px 12px}.step-add input{flex:200px;width:auto;min-width:0}.step-list{margin:0 0 8px;padding:0;list-style:none}.step{border-bottom:1px solid #2c3866;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;padding:4px 0;display:flex}.step-check{overflow-wrap:anywhere;flex:160px;align-items:center;gap:8px;min-width:0;min-height:44px;font-size:1rem;display:flex}.step-check input{flex:none;width:24px;height:24px}.step[data-done=true] .step-check span{text-decoration:line-through;text-decoration-thickness:1px}.step-actions,.step-edit{flex-wrap:wrap;gap:4px;display:flex}.step-edit{flex:100%;align-items:center}.step-edit label{flex:100%}.step-edit input{flex:160px;width:auto}.pending-box{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.pending-badge{color:#3b2d00;background:#ffe9a8;border:2px solid #c9972b;border-radius:999px;padding:4px 10px}.dialog{box-sizing:border-box;color:#f3ead2;background:#1b2547;border:2px solid #ffd479;border-radius:12px;width:min(92vw,440px);padding:16px}.dialog::backdrop{background:#050814b3}.dialog-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.archive-book{pointer-events:auto;background:0 0;border:0;border-radius:8px;padding:0;position:absolute;transform:translate(-50%,-50%)}@media (prefers-reduced-motion:reduce){.task-card{animation:none!important}}.top-tools{flex-wrap:wrap;align-items:center;gap:8px 12px;width:100%;max-width:560px;margin:0 0 8px;display:flex}.keep-copy{min-width:44px;min-height:44px;font:inherit;color:#f3ead2;background:0 0;border:2px solid #6d7bb5;border-radius:8px;padding:0 14px}.keep-copy.loud{color:#1c1b22;background:#ffd479;border-color:#c9972b}.storage-notice{color:#ffe9a8;flex:220px;margin:0;font-size:1rem}.recovery{box-sizing:border-box;color:#f3ead2;background:#1b2547;border:2px solid #ffd479;border-radius:12px;width:100%;max-width:560px;padding:16px}.recovery h2{margin:0 0 8px}.recovery-options{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.recovery-options button{min-width:44px;min-height:44px;font:inherit;color:#f3ead2;background:0 0;border:2px solid #6d7bb5;border-radius:8px;padding:0 14px}.recovery-options p{margin:4px 0 0;font-size:1rem}.recovery-note{color:#ffe9a8}.demo-try{min-width:44px;min-height:44px;font:inherit;color:#f3ead2;background:0 0;border:2px solid #ffd479;border-radius:8px;padding:0 14px}.demo-bar{z-index:30;box-sizing:border-box;color:#3a2f22;background:#ffe8b2;border-bottom:2px solid #c9972b;border-radius:0 0 10px 10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;width:100%;margin:0 0 4px;padding:8px 12px;display:flex;position:sticky;top:0}.demo-note{flex:240px;margin:0;font-size:1rem}.demo-exit{min-width:44px;min-height:44px;font:inherit;color:#1c1b22;background:#ffd479;border:2px solid #c9972b;border-radius:8px;padding:0 14px}.demo-bar .demo-exit{border-color:#7a5a1c}.demo-bar .demo-exit:focus-visible{outline-offset:2px;outline:3px solid #3a2f22}.demo-try:focus-visible{outline-offset:2px;outline:3px solid #ffd479}.task-card :focus-visible,.archive :focus-visible,.demo-bar :focus-visible{outline-color:#3a2f22}.ghost-button:focus-visible,.archive-book:focus-visible{outline-offset:3px;outline-color:#fff;box-shadow:0 0 0 3px #1b2547}.archive .archive-back:focus-visible,.footer-link:focus-visible{outline-color:#ffd479}.task-card button,.task-card button.primary,.task-card textarea,.task-card .step-add input,.task-card .step-edit input{border-color:#7a5a1c}h1[tabindex="-1"]:focus-visible,h2[tabindex="-1"]:focus-visible,h3[tabindex="-1"]:focus-visible{box-shadow:none;outline:none}html[data-input=keyboard] h2[tabindex="-1"]:focus-visible,html[data-input=keyboard] h3[tabindex="-1"]:focus-visible{outline-offset:4px;border-radius:6px;outline:3px solid #7a540a;box-shadow:0 0 0 8px #ffd47966}html[data-input=keyboard] h1[tabindex="-1"]:focus-visible{outline-offset:4px;border-radius:6px;outline:3px solid #ffd479;box-shadow:0 0 0 8px #ffd47938}.ghost-play{transform-origin:50% 100%;width:100%;height:100%;display:block}.ghost-sprite .ghost-prop,.ghost-sprite .ghost-hand,.ghost-shift,.ghost-lean,.ghost-tilt{transform-box:view-box}.ghost-play[data-anim=none] .ghost-sprite{transform-origin:50% 100%;animation:5s ease-in-out infinite alternate ghost-float}.ghost-button[data-slot="1"] .ghost-play[data-anim=none] .ghost-sprite{animation-duration:5.6s;animation-delay:-2.5s}@keyframes ghost-float{0%{transform:translateY(2%)rotate(-1.6deg)}to{transform:translateY(-6.5%)rotate(1.6deg)}}.ghost-halo{transform-box:fill-box;transform-origin:50% 60%}.ghost-play[data-anim=none] .ghost-halo{animation:5.6s ease-in-out infinite alternate halo-idle}@keyframes halo-idle{0%{opacity:.72;transform:scale(.94)}to{opacity:1;transform:scale(1.06)}}.ghost-ring{filter:drop-shadow(0 0 3px #ffd05ae6);animation:2.4s ease-in-out infinite alternate ring-pulse}.ghost-button[data-pending=true] .ghost-halo{animation:2.6s ease-in-out infinite alternate halo-breathe}@keyframes ring-pulse{0%{opacity:.6}to{opacity:1}}@keyframes halo-breathe{0%{opacity:.7}to{opacity:1}}.ghost-body,.ghost-hand ellipse{transition:fill .8s,stroke .8s,d .35s ease-out}.ghost-figure{transition:opacity .8s,transform .8s}.ghost-lean,.ghost-tilt{transform-origin:70px 176px}.ghost-lean,.ghost-face{transition:transform .35s ease-out}.ghost-button[data-walk="1"] .ghost-lean{transform:rotate(4deg)}.ghost-button[data-walk="1"] .ghost-face{transform:translate(9.7px)}.ghost-button[data-walk="-1"] .ghost-lean{transform:rotate(-4deg)}.ghost-button[data-walk="-1"] .ghost-face{transform:translate(-9.7px)}.ghost-shift{transition:transform .3s ease-out}.ghost-sprite[data-tool=true] .ghost-shift{transform:translate(-16px)}.ghost-hand-right{transform-origin:121px 120px}.ghost-play[data-anim=clarify]{animation:.9s ease-in-out both perk}.ghost-play[data-anim=clarify] .ghost-halo{animation:1.2s ease-out both halo-bloom}@keyframes perk{0%{transform:scale(1)}35%{transform:scale(1.14,.92)}65%{transform:scale(.96,1.1)translateY(-6%)}to{transform:scale(1)}}@keyframes halo-bloom{0%{opacity:.2;transform:scale(.8)}45%{opacity:1;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}.ghost-sprite .ghost-hand-right{transform-box:fill-box;transform-origin:50%}.ghost-play[data-anim=sweep] .ghost-prop{transform-origin:125px 160px;animation:2s ease-in-out both prop-sweep}.ghost-play[data-anim=sweep] .ghost-tilt{animation:2s ease-in-out both tilt-sweep}.ghost-play[data-anim=sweep] .ghost-hand-right{animation:2s ease-in-out both hand-sweep}@keyframes prop-sweep{0%{opacity:0;transform:translate(6px)}10%{opacity:1;transform:translate(0)rotate(0)}18%{transform:translate(-3px)rotate(-3deg)}30%{transform:translate(3px)rotate(3deg)}42%{transform:translate(-3px)rotate(-3deg)}54%{transform:translate(3px)rotate(3deg)}66%{transform:translate(-3px)rotate(-3deg)}78%{transform:translate(3px)rotate(3deg)}88%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(0)rotate(0)}}@keyframes tilt-sweep{0%{transform:rotate(0)}18%{transform:rotate(1deg)}30%{transform:rotate(6deg)}42%{transform:rotate(1deg)}54%{transform:rotate(6deg)}66%{transform:rotate(1deg)}78%{transform:rotate(6deg)}88%{transform:rotate(2deg)}to{transform:rotate(0)}}@keyframes hand-sweep{0%{transform:translate(0)}10%{transform:translate(24.8px,-32px)}18%{transform:translate(21.3px,-32px)}30%{transform:translate(28.3px,-32px)}42%{transform:translate(21.3px,-32px)}54%{transform:translate(28.3px,-32px)}66%{transform:translate(21.3px,-32px)}78%{transform:translate(28.3px,-32px)}88%{transform:translate(24.8px,-32px)}to{transform:translate(0)}}.fx-dust{fill:#b9b2a6;opacity:0;animation:.7s ease-out both dust-rise}@keyframes dust-rise{0%{opacity:0;transform:translateY(0)}30%{opacity:.85}to{opacity:0;transform:translateY(-14px)}}.ghost-play[data-anim=water] .ghost-prop{transform-origin:110px 105px;animation:2s ease-in-out both prop-water}.ghost-play[data-anim=water] .ghost-tilt{animation:2s ease-in-out both tilt-water}.ghost-play[data-anim=water] .ghost-hand-right{animation:2s ease-in-out both hand-water}@keyframes prop-water{0%{opacity:0;transform:translate(6px)rotate(0)}10%{opacity:1;transform:translate(0)rotate(0)}28%{transform:rotate(46deg)}40%{transform:rotate(43deg)}52%{transform:rotate(47deg)}62%{transform:rotate(46deg)}74%{transform:rotate(0)}90%{opacity:1}to{opacity:0;transform:rotate(0)}}@keyframes tilt-water{0%{transform:rotate(0)}12%{transform:rotate(3deg)}28%{transform:rotate(10deg)}62%{transform:rotate(10deg)}74%{transform:rotate(4deg)}to{transform:rotate(0)}}@keyframes hand-water{0%{transform:translate(0)rotate(0)}10%{transform:translate(8.4px,-36.7px)rotate(0)}28%{transform:translate(8.4px,-34.7px)rotate(20deg)}62%{transform:translate(8.4px,-34.7px)rotate(20deg)}74%{transform:translate(8.4px,-36.7px)rotate(0)}88%{transform:translate(8.4px,-36.7px)rotate(0)}to{transform:translate(0)rotate(0)}}.fx-drop{fill:#7fb3d5;opacity:0;animation:.42s ease-in both drop-fall}@keyframes drop-fall{0%{opacity:0;transform:translateY(0)}15%{opacity:1}to{opacity:0;transform:translateY(28px)}}.fx-sprout{transform-box:view-box;transform-origin:130px 150px;animation:2s ease-out both sprout-grow}@keyframes sprout-grow{0%,60%{transform:scale(0)}78%{transform:scale(1.12)}86%,to{transform:scale(1)}}.ghost-play[data-anim=window] .ghost-prop{animation:2s ease-in-out both prop-window}.ghost-play[data-anim=window] .ghost-tilt{transform-origin:70px 176px;animation:2s ease-in-out both tilt-window}.ghost-play[data-anim=window] .ghost-hand-right{animation:2s ease-in-out both hand-window}@keyframes prop-window{0%{opacity:0;transform:translate(-10px,18px)}12%{opacity:1;transform:translate(5px)}20%{transform:translateY(5px)}28%{transform:translate(-5px)}36%{transform:translateY(-5px)}44%{transform:translate(5px)}52%{transform:translateY(5px)}60%{transform:translate(-5px)}68%{transform:translateY(-5px)}76%{transform:translate(5px)}84%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(0)}}@keyframes tilt-window{0%{transform:translateY(0)rotate(0)scaleY(1)}12%{transform:translateY(-10px)rotate(2deg)scaleY(.97)}28%{transform:translateY(-10px)rotate(4deg)scaleY(1.03)}44%{transform:translateY(-10px)rotate(2deg)scaleY(.97)}60%{transform:translateY(-10px)rotate(4deg)scaleY(1.03)}76%{transform:translateY(-10px)rotate(2deg)scaleY(.97)}90%{transform:translateY(-4px)rotate(1deg)scaleY(1)}to{transform:translateY(0)rotate(0)scaleY(1)}}@keyframes hand-window{0%{transform:translate(0)}12%{transform:translate(19px,-60px)}20%{transform:translate(13.1px,-54.1px)}28%{transform:translate(7.2px,-60px)}36%{transform:translate(13.1px,-65.9px)}44%{transform:translate(19px,-60px)}52%{transform:translate(13.1px,-54.1px)}60%{transform:translate(7.2px,-60px)}68%{transform:translate(13.1px,-65.9px)}76%{transform:translate(19px,-60px)}84%{transform:translate(13.1px,-60px)}to{transform:translate(0)}}.fx-ring{opacity:0}.fx-ring-1{animation:2s ease-in-out both ring-draw-1}.fx-ring-2{animation:2s ease-in-out both ring-draw-2}@keyframes ring-draw-1{0%,18%{opacity:0}44%,to{opacity:.9}}@keyframes ring-draw-2{0%,50%{opacity:0}76%,to{opacity:.9}}.fx-glint{opacity:0;animation:2s ease-in-out both glint-pass}@keyframes glint-pass{0%,66%{opacity:0;transform:translate(-4px)}78%{opacity:.95;transform:translate(0)}92%,to{opacity:0;transform:translate(4px)}}.fx-water,.fx-window{animation:2s linear both scene-fade}@keyframes scene-fade{0%{opacity:0}8%,88%{opacity:1}to{opacity:0}}.ghost-play[data-anim=erase] .ghost-prop{animation:1.5s ease-in-out both prop-erase}.ghost-play[data-anim=erase] .ghost-tilt{animation:1.5s ease-in-out both tilt-erase}.ghost-play[data-anim=erase] .ghost-hand-right{animation:1.5s ease-in-out both hand-erase}@keyframes prop-erase{0%{opacity:0;transform:translate(6px)}12%{opacity:1;transform:translate(0)}24%{transform:translate(-6px)}38%{transform:translate(2px)}52%{transform:translate(-6px)}66%{transform:translate(2px)}80%{opacity:1;transform:translate(5px)}to{opacity:0;transform:translate(5px)}}@keyframes tilt-erase{0%{transform:rotate(0)}24%{transform:rotate(-3deg)}38%{transform:rotate(2deg)}52%{transform:rotate(-3deg)}66%{transform:rotate(2deg)}to{transform:rotate(0)}}@keyframes hand-erase{0%{transform:translate(0)}12%{transform:translate(13.1px,-28.5px)}24%{transform:translate(6.1px,-28.5px)}38%{transform:translate(15.4px,-28.5px)}52%{transform:translate(6.1px,-28.5px)}66%{transform:translate(15.4px,-28.5px)}80%{transform:translate(19px,-28.5px)}to{transform:translate(0)}}.fx-crumb{fill:#a9a39a;opacity:0;animation:.6s ease-in both crumb-fall}@keyframes crumb-fall{0%{opacity:0;transform:translate(0)}20%{opacity:.85}to{opacity:0;transform:translate(1px,16px)}}.fx-star{transform-box:fill-box;transform-origin:50%;opacity:0;animation:1.2s ease-in-out both star-float}.fx-star path{fill:#ffe9a0;stroke:#e3b94a;stroke-width:.14px;stroke-linejoin:round}@keyframes star-float{0%{opacity:0;transform:translate(0)scale(.5)}22%{opacity:1;transform:translate(calc(var(--dx) * .25), calc(var(--dy) * .25)) scale(1)}65%{opacity:.95;transform:translate(calc(var(--dx) * .7), calc(var(--dy) * .7)) scale(.95)}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(.7)}}html[data-page-hidden] *,html[data-page-hidden] :before,html[data-page-hidden] :after{animation-play-state:paused!important}@media (prefers-reduced-motion:reduce){.ghost-play,.ghost-play *,.ghost-sprite,.ghost-ring,.ghost-halo,.fx-star{animation:none!important}.ghost-lean,.ghost-face,.ghost-shift,.ghost-body,.ghost-hand ellipse,.ghost-figure{transition:none!important}.ghost-halo{transform:none!important}}.celebration{pointer-events:none;position:absolute;inset:0}.celebration-ghost{position:absolute}.celebration-ghost .ghost-sprite{width:100%;height:100%}.celebration-ghost.is-gold{animation:1s ease-out both gold-flash}.celebration-ghost .ghost-sprite .ghost-hand{transform-box:view-box}.celebration-ghost.is-waving .ghost-hand-right{transform-origin:121px 120px;animation:.45s ease-in-out 2 alternate wave-hand}.celebration-ghost.is-stamping .ghost-hand-right{transform-origin:121px 120px;animation:.9s ease-in-out both stamp-hand}@keyframes stamp-hand{0%{transform:rotate(0)}25%{transform:rotate(-85deg)}45%{transform:rotate(-65deg)}to{transform:rotate(-85deg)}}@keyframes gold-flash{0%{filter:brightness(1.15)drop-shadow(0 0 4px #ffd86b);transform:scale(.94)}55%{filter:brightness(1.12)drop-shadow(0 0 14px #ffd86b);transform:scale(1.06)}to{filter:brightness()drop-shadow(0 0 8px #ffd86b);transform:scale(1)}}@keyframes wave-hand{0%{transform:rotate(-10deg)}to{transform:rotate(-55deg)}}.stamp-page{box-sizing:border-box;color:#3b2d00;text-align:left;background:#fff5d6;border:2px solid #c9972b;border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:4px 6px;width:160px;padding:8px 10px;display:grid;position:absolute}.stamp-page p{overflow-wrap:anywhere;margin:0;font-size:1rem;line-height:1.3}.stamp-memo{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;grid-column:1/-1;display:-webkit-box;overflow:hidden}.stamp-mark{color:#8b2f25;font-weight:700}.stamp-slot{width:32px;height:32px;display:block;position:relative}.stamp-seal{width:100%;height:100%;animation:.2s ease-out .36s both stamp-seal-in;display:block}@keyframes stamp-seal-in{0%{opacity:0;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}.stamp-page[data-compact=true]{border-width:1.5px;gap:2px 4px;padding:4px 5px}.stamp-page[data-compact=true] p{font-size:1rem;line-height:1.2}.stamp-page[data-compact=true] .stamp-memo{-webkit-line-clamp:1;line-clamp:1}.stamp-page[data-compact=true] .stamp-slot{width:24px;height:24px}.skip-animation{pointer-events:auto;position:absolute;top:8px;right:8px}.stamp-page{overflow:visible}.stamp-tool{animation:.3s ease-in 60ms both stamp-drop;display:block;position:absolute;inset:0}.stamp-tool-head{background:#b5473a;border-radius:3px;height:34%;position:absolute;bottom:10%;left:15%;right:15%}.stamp-tool-grip{background:#8b6b43;border-radius:3px;position:absolute;inset:6% 38% 40%}@keyframes stamp-drop{0%{opacity:0;transform:translateY(-12px)}35%{opacity:1}80%{opacity:1;transform:translateY(1px)}to{opacity:0;transform:translateY(0)}}.stamp-star{fill:#ffe9a0;stroke:#e3b94a;stroke-width:.12px;opacity:0;--dx:4px;--dy:-8px;width:16px;height:16px;animation:.9s ease-in-out .36s both star-float;position:absolute;top:-10px;right:-8px}.celebration-ghost{transform-origin:50% 69.4%}.celebration-trail{transform-origin:50% 69.4%;position:absolute}.fly-star,.fly-trail{fill:#ffd86b;stroke:#e0a830;stroke-width:.08px;filter:drop-shadow(0 0 6px #ffd86be6);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.fly-trail{filter:drop-shadow(0 0 3px #ffd86bb3)}.celebration-ghost .fly-star{transform-origin:50% 69.4%;animation:.4s ease-out both fly-star-in}.celebration-ghost.is-fly .ghost-sprite{animation:.4s ease-out both fly-ghost-out}@keyframes fly-star-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes fly-ghost-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.55)}}.archive-book[data-glow=true]{animation:.8s ease-out both book-glow;box-shadow:0 0 26px 10px #ffd67873}@keyframes book-glow{0%{box-shadow:0 0 #ffd67800}50%{box-shadow:0 0 34px 16px #ffd67899}to{box-shadow:0 0 26px 10px #ffd67873}}@media (prefers-reduced-motion:reduce){.celebration-ghost,.celebration-ghost .ghost-hand-right,.stamp-tool,.stamp-seal,.archive-book[data-glow=true]{animation:none!important}.stamp-star,.stamp-tool{display:none}}.night-sky{isolation:isolate;background:0 0;position:relative}.sky{z-index:-1;pointer-events:none;background:linear-gradient(#070d24 0%,#0d1530 45%,#172447 100%);position:fixed;inset:0;overflow:hidden}.sky-stars{width:100%;height:70%;position:absolute;inset:0 0 30%}.sky-moon{background:radial-gradient(circle at 36% 34%,#fff8dc 0%,#f3e3a8 60%,#d9c27c 100%);border-radius:50%;width:54px;height:54px;position:absolute;top:7%;right:12%;box-shadow:0 0 28px 8px #fff0be40}@media (width<=899px){.sky-moon{width:32px;height:32px;top:12px;right:10px}}.sky-trees{opacity:.7;width:min(7vw,90px);height:min(28vh,280px);position:absolute;bottom:0}.sky-trees-left{left:0}.sky-trees-right{right:0;transform:scaleX(-1)}.firefly{opacity:.85;background:radial-gradient(circle,#f6ffb0 0%,#d6ff788c 45%,#d6ff7800 72%);border-radius:50%;width:6px;height:6px;animation:10s ease-in-out infinite alternate firefly-drift;position:absolute}@keyframes firefly-drift{0%{transform:translate(0)}to{transform:translate(var(--dx), var(--dy))}}@media (prefers-reduced-motion:reduce){.firefly{animation:none}}.warm-lamps{pointer-events:none;position:absolute;inset:0}.warm-lamp{display:block;position:absolute}.warm-lamp>svg,.warm-lamp>img{display:block;position:absolute;overflow:visible}.warm-lamp>.lamp-art,.warm-lamp>.lamp-hook,.warm-lamp>.lamp-sparks{width:100%;height:100%;inset:0}.warm-lamp>.lamp-art[style]{inset:auto}.warm-lamp>.lamp-lantern{-webkit-user-select:none;user-select:none;max-width:none}.lamp-halo{opacity:.8;background:radial-gradient(circle,#ffd4799e 0%,#ffd47942 38%,#ffd47900 70%);border-radius:50%;animation:4s ease-in-out infinite alternate lamp-breathe;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes lamp-breathe{0%{opacity:.72}to{opacity:.86}}.lamp-flame{animation:3.4s ease-in-out infinite alternate lamp-sway}@keyframes lamp-sway{0%{transform:scaleY(.97)skew(-1.2deg)}to{transform:scaleY(1.03)skew(1.2deg)}}.warm-lamp-new{animation:.6s ease-out both lamp-in}@keyframes lamp-in{0%{opacity:0}to{opacity:1}}.lamp-sparks{pointer-events:none}@media (prefers-reduced-motion:reduce){.warm-lamp-new,.lamp-halo,.lamp-flame{animation:none!important}.lamp-sparks{display:none}}.archive{box-sizing:border-box;width:100%;max-width:680px}.archive-back{align-items:center;margin:4px 0 12px;text-decoration:none;display:inline-flex}.book{transform-origin:50% 85%;background:radial-gradient(at 0 0,#b58a4d70,#0000 25%),radial-gradient(at 100% 100%,#a7773b60,#0000 25%),repeating-linear-gradient(8deg,#80592e07 0 1px,#0000 1px 4px),#f1dfb0;border:7px solid #58402a;border-bottom-width:12px;border-radius:14px 20px 18px 11px;animation:.55s ease-out both book-open;position:relative;overflow:hidden;box-shadow:0 4px 0 -1px #bca271,0 7px 0 -1px #796346,0 10px 28px #05081673}.book-spread{isolation:isolate;position:relative}.book-spread:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#0000 44%,#79552808 47%,#69461e38 49.4%,#4c341a55 50%,#fff3cf70 50.7%,#fff5d222 53%,#0000 57%);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 88%,#0000 100%);mask-image:linear-gradient(#000 0 88%,#0000 100%)}.book-spread>*{z-index:1;position:relative}@keyframes book-open{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.book-cover{color:#715838;background:0 0;padding:20px 24px 10px;position:relative}.book-cover:after{content:"";pointer-events:none;background:linear-gradient(#dcd7cd38,#dcd7cd1a);position:absolute;inset:0}.book-cover h2{z-index:1;margin:0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:1.15rem;font-style:italic;font-weight:400;position:relative}.book-dust{pointer-events:none;position:absolute;inset:0;overflow:visible}.dust{opacity:0;background:#e4ded2e6;border-radius:50%;width:5px;height:5px;animation:1.8s ease-out both dust-puff;position:absolute;bottom:4px}@keyframes dust-puff{0%{opacity:0;transform:translate(0)scale(.6)}20%{opacity:.85}to{opacity:0;transform:translate(10px,-34px)scale(1.4)}}.book-pages{color:#3b2d1b;background:0 0;padding:14px 18px 24px}.archive-empty{text-align:center;color:#6b5a3c;margin:4px 0 8px;font-size:1rem;line-height:1.5}.archive-nav{flex-wrap:wrap;justify-content:center;gap:8px 10px;margin:0;padding:2px 18px 6px;display:flex}.archive-nav-link{color:#4a3820;min-width:44px;min-height:44px;box-shadow:none;overflow-wrap:anywhere;background:#fff6dccc;border:1.5px solid #8a6a3c;border-radius:999px;padding:0 14px;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:1rem;font-style:italic;line-height:1.25}.archive-nav-link:hover{color:#33250f;background:#fff0c4}.archive-nav-link:focus-visible{outline-offset:2px;outline:3px solid #7a540a}.archive-entries h3{text-align:center;color:#5a4326;margin:0 0 12px;font-family:Iowan Old Style,Palatino,Georgia,serif;font-size:1.2rem;font-weight:400}.archive-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;margin:0;padding:0;list-style:none;display:grid}.archive-entry{box-sizing:border-box;text-align:left;background:0 0;border:0;border-radius:0;grid-template-columns:48px minmax(0,1fr);align-content:start;align-items:start;gap:2px 12px;min-width:0;padding:2px 0;font-family:Iowan Old Style,Palatino,Georgia,serif;display:grid}.archive-entry>:not(.archive-seal){grid-column:2;min-width:0}.archive-seal{grid-area:1/1/span 4;width:48px;height:48px;display:block}.archive-seal .stamp-seal{opacity:1;animation:none}.archive-entry[data-landing=true] .stamp-seal{animation:.4s ease-out 1.2s both seal-land}@keyframes seal-land{0%{opacity:0;transform:translateY(-18px)scale(1.5)}to{opacity:1;transform:none}}.archive-entry p{overflow-wrap:anywhere;margin:0;font-size:1rem;line-height:1.35}.archive-memo{color:#5c4a2e;white-space:pre-line;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-style:italic;display:-webkit-box;overflow:hidden}.archive-memo[data-expanded=true]{-webkit-line-clamp:unset;line-clamp:unset;display:block;overflow:visible}.archive-title-line{font-weight:600}.archive-actions{flex-wrap:wrap;margin-left:-10px;display:flex}.archive-title-toggle{color:#715838;min-width:44px;min-height:44px;box-shadow:none;text-underline-offset:4px;background:0 0;border:0;border-radius:0;margin:0;padding:0 10px;font-family:inherit;font-size:1rem;font-style:italic;-webkit-text-decoration:underline #71583866;text-decoration:underline #71583866}.archive-title-toggle:hover{color:#44301b;background:0 0}.archive-title-toggle:focus-visible{outline-offset:1px;outline:3px solid #3a2f22}@media (width<=520px){.archive-list{grid-template-columns:minmax(0,1fr);row-gap:12px}}@media (width<=420px){.book-pages{padding:10px 12px}.archive-nav{padding:2px 12px 6px}.book{border-width:4px 4px 8px}.book-cover{padding:18px 14px 8px}}@media (prefers-reduced-motion:reduce){.book{animation:none}.dust{display:none}.archive-entry[data-landing=true] .stamp-seal{opacity:1;animation:none}}.collection-page,.reveal-page{text-align:center;border-top:1px solid #94734466;margin-top:30px;padding-top:20px;position:relative}.collection-page h3,.reveal-page h3{color:#5a4326;margin:0 0 8px;font-family:Iowan Old Style,Palatino,Georgia,serif;font-size:1.2rem}.collection-page p,.reveal-page p{overflow-wrap:anywhere;font-size:1rem;line-height:1.5}.collection-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 8px;margin:20px 0 0;padding:0;list-style:none;display:grid}.collection-grid li{min-width:0}.collection-grid .stamp-seal{width:min(100%,96px);height:auto;margin:0 auto 6px;display:block}.collection-grid span{overflow-wrap:anywhere;font-size:1rem;display:block}.collection-grid [data-unlocked=false] span{color:#756d5e}.sticker-bed{isolation:isolate;margin:18px 0 12px;padding:10px 0;position:relative}.sticker-bed:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#0000 44%,#79552808 47%,#69461e38 49.4%,#4c341a55 50%,#fff3cf70 50.7%,#fff5d222 53%,#0000 57%);position:absolute;inset:0}.sticker-wrap{z-index:1;filter:drop-shadow(0 1px 1px #3c260c61)drop-shadow(3px 7px 7px #2819054d);width:calc(100% - 6px);margin:0 auto;position:relative;transform:rotate(-1.3deg)}.reveal-sticker{box-sizing:border-box;clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%);background:#fffaeb;border-radius:5px;padding:7px}.sticker-curl{pointer-events:none;width:30px;height:30px;position:absolute;bottom:0;right:0;overflow:visible}.reveal-picture{box-sizing:border-box;border:1px solid #b79350;border-radius:3px;width:100%;height:auto;display:block;overflow:hidden}.reveal-portrait{overflow:visible}.reveal-picture .ghost-halo{animation:none}.mist-tile{opacity:1;transition:opacity .65s ease-out}.mist-tile[data-open=true]{opacity:0;pointer-events:none}.mist-tile[data-latest=true]{animation:.8s ease-out 1.3s both mist-lift}@keyframes mist-lift{0%{opacity:1}to{opacity:0}}.collection-reward{color:#695235}.warm-lamps[data-welcoming=true] .warm-lamp{animation:1.8s ease-in-out both lantern-welcome}@keyframes lantern-welcome{0%,to{filter:brightness()}45%{filter:brightness(1.8)drop-shadow(0 0 5px #ffe5a1)}}@media (prefers-reduced-motion:reduce){.mist-tile{transition:none;animation:none!important}.warm-lamps[data-welcoming=true] .warm-lamp{filter:brightness(1.35);animation:none}}.house-overlay:has(.resident[data-staged]){overflow:visible}.resident[data-staged]{z-index:15}.resident[data-staged] .ghost-tag{display:none}.view-toggle{align-self:center;margin:0 0 8px}@media (width<=899px){.house-view:has(.task-card) .view-toggle{align-self:flex-start;padding-inline:8px}}.house{container-type:inline-size}.ghost-button{min-width:0;min-height:0}.ghost-button:before{content:"";width:44px;height:44px;margin-top:-28px;position:absolute;top:50%;left:calc(50% - 22px)}.ghost-button[data-slot="0"]:before{left:auto;right:calc(50% - min(22px, var(--hit-half-units,120) * 100cqw / 809 - .5px))}.ghost-button[data-slot="1"]:before{left:calc(50% - min(22px, var(--hit-half-units,120) * 100cqw / 809 - .5px))}.app-header{flex-wrap:wrap;align-items:center;gap:8px 12px;width:100%;max-width:560px;margin:8px 0 12px;display:flex}.app-header h1{flex:110px;min-width:0;margin:0}.lang-switch{flex-wrap:wrap;flex:none;justify-content:center;gap:8px;max-width:100%;display:flex}.lang-switch button{color:#f3ead2;background:#1b2547;border-color:#6d7bb5;min-width:80px;padding:0 8px}.lang-switch button[aria-pressed=true]{color:#1c1b22;background:#ffd479;border-color:#c9972b}
