:root{--bg:#2b1f1a;--panel:#3a2a22;--panel-edge:#5a4032;--wood:#8a5a3b;--warm:#f2c27b;--text:#f6e7d3;--muted:#b89f86;--panel-width:360px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Courier New,ui-monospace,monospace}.muted{color:var(--muted)}.app{display:flex;height:100%}.room-area{position:relative;display:flex;flex-direction:column;flex:1;justify-content:center;align-items: center;min-width:0;padding:24px}.panel{width:var(--panel-width);background:var(--panel);border-left:4px solid var(--panel-edge);overflow-y:auto;flex-shrink:0;padding:24px 20px}@media (max-width:760px){.app{flex-direction:column;height:auto;min-height:100%}.room-area{flex:none;padding:16px}.panel{flex:1}.panel{border-left:none;border-top:4px solid var(--panel-edge);width:100%;padding:20px 16px}}.room{shape-rendering:crispEdges;width:100%;max-width:720px;max-height:calc(100vh - 48px)}.character{animation:breathe 2.4s steps(2)infinite}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@media (prefers-reduced-motion:reduce){.character{animation:none}}.panel-title{color:var(--warm);letter-spacing:3px;text-transform:uppercase;margin:0 0 20px;font-size:18px}.panel-empty p{margin:0 0 8px;line-height:1.5}.small{font-size:13px}.row-form{display:flex;gap:8px;margin-bottom:20px}.input{background:var(--bg);color:var(--text);border:3px solid var(--panel-edge);font:inherit;flex:1;min-width:0;padding:10px;font-size:16px}.input::placeholder{color:var(--muted);opacity:.7}.input:focus{outline:none;border-color:var(--warm)}.btn{background:var(--warm);color:var(--bg);font:inherit;cursor:pointer;border:none;border-bottom:3px solid #c9954f;padding:10px 14px;font-size:14px;font-weight:700}.btn:active{border-bottom-width:1px;transform:translateY(2px)}.btn:disabled{opacity:.4;cursor:default}.project-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin:0;padding:0}.project{background:var(--bg);border:3px solid var(--panel-edge);padding:14px}.project-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px}.project-count{color:var(--warm);flex-shrink:0;font-size:13px}.project-name{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:16px}.project p{margin:0}.step-list{list-style:none;margin:0 0 4px;padding:0}.step{display:flex;cursor:pointer;align-items: flex-start;gap:10px;padding:7px 0;line-height:1.35}.step input{position:absolute;opacity:0;pointer-events:none}.checkbox{border:3px solid var(--wood);background:var(--panel);position:relative;flex-shrink:0;width:18px;height:18px;margin-top:1px}.step-done .checkbox{background:var(--warm);border-color:var(--warm)}.step-done .checkbox:after{content:"";position:absolute;border:solid var(--bg);border-width:0 3px 3px 0;width:4px;height:8px;top:0;left:3px;transform:rotate(45deg)}.step input:focus-visible+.checkbox{outline:2px solid var(--warm);outline-offset:2px}.step-name{overflow-wrap:anywhere}.step-done .step-name{color:var(--muted);text-decoration:line-through}.step-form{margin:10px 0 0}.input-small{border-width:2px;padding:7px 8px}.btn-small{padding:6px 14px;font-size:18px;line-height:1}.item-pop{transform-box:fill-box;transform-origin:50% 100%;animation:pop .7s steps(6)both}@keyframes pop{0%{transform:translateY(-14px)scale(.4);opacity:0}60%{transform:translateY(0)scale(1.12);opacity:1}to{transform:translateY(0)scale(1)}}.sparkles{animation:sparkle 1.6s steps(4)both}@keyframes sparkle{0%,30%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.item-pop,.sparkles{animation:none}.sparkles{display:none}}.step-row{display:flex;align-items: flex-start;gap:8px}.step-row .step{flex:1;min-width:0}.secret{background:var(--panel);color:var(--warm);border:2px dashed var(--wood);font:inherit;cursor:pointer;display:grid;flex-shrink:0;place-items: center;width:34px;height:34px;margin-top:2px;padding:0;font-size:15px;font-weight:700}.secret:hover{border-color:var(--warm)}.secret-open{border-style:solid;border-color:var(--warm);background:#4a3528}.item-icon{display:block;shape-rendering:crispEdges;width:28px;height:28px}.hint{background:var(--panel);border-left:3px solid var(--warm);color:var(--muted);padding:8px 10px;font-size:13px;line-height:1.4;margin:0 0 6px 28px!important}.toast{position:fixed;background:var(--warm);color:var(--bg);font:inherit;cursor:pointer;z-index:10;animation:toast-in .3s steps(3)both;border:none;border-bottom:4px solid #c9954f;max-width:calc(100% - 32px);padding:12px 18px;font-size:15px;bottom:20px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%);opacity:1}}.room-title{color:var(--warm);font:inherit;letter-spacing:2px;cursor:pointer;overflow-wrap:anywhere;text-align:center;background:0 0;border:none;padding:4px 8px;font-size:17px}.room-title:hover{text-decoration:underline dotted}.name-overlay{position:absolute;display:flex;z-index:5;background:linear-gradient(#2b1f1a00 30%,#2b1f1abf);justify-content:center;align-items: flex-end;padding:16px;inset:0}.name-card{background:var(--panel);border:4px solid var(--panel-edge);display:flex;flex-direction:column;gap:8px;width:100%;max-width:340px;padding:14px 16px}.name-card .input{padding:8px 10px}.name-lead{color:var(--muted);margin:0}.name-label{color:var(--warm);font-size:18px;font-weight:700}.name-actions{display:flex;justify-content:space-between;align-items: center;gap:12px;margin-top:4px}.link-btn{color:var(--muted);font:inherit;text-decoration:underline;cursor:pointer;background:0 0;border:none;padding:8px 0;font-size:14px}.board{cursor:pointer;outline:none}.board-glow{opacity:0;transition:opacity .15s}.board:hover .board-glow{opacity:1}.board:focus-visible .board-glow{opacity:1}.board-hint .board-glow{animation:board-pulse 1.6s steps(4)infinite}@keyframes board-pulse{0%,to{opacity:.15}50%{opacity:1}}.board-label{animation:label-bob 1.6s steps(2)infinite}@keyframes label-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.board-hint .board-glow{animation:none;opacity:1}.board-label{animation:none}}.board-panel{background:var(--panel);border-left:4px solid var(--panel-edge);overflow-y:auto;animation:panel-in .25s steps(4)both;flex-shrink:0;width:380px;padding:20px}@keyframes panel-in{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}.bp-head{display:flex;align-items: center;gap:8px;margin-bottom:20px}.bp-title{flex:1;margin:0}.bp-back,.bp-close{border:3px solid var(--panel-edge);color:var(--text);font:inherit;cursor:pointer;background:0 0;flex-shrink:0;width:38px;height:38px;font-size:20px;line-height:1}.bp-back:hover,.bp-close:hover{border-color:var(--warm);color:var(--warm)}.bp-sections{display:flex;flex-direction:column;gap:14px}.bp-big{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;text-align:left;background:var(--bg);border:3px solid var(--panel-edge);color:var(--text);font:inherit;cursor:pointer;border-bottom-width:6px;align-items: center;gap:4px 16px;padding:18px 16px}.bp-big:hover{border-color:var(--warm)}.bp-big:active{border-bottom-width:3px;transform:translateY(3px)}.bp-icon{grid-row:1/3;font-size:40px;line-height:1}.bp-big-title{color:var(--warm);font-size:19px;font-weight:700}.bp-big-sub{color:var(--muted);font-size:13px;line-height:1.35}@media (max-width:760px){.app{height:100%}.room-area{flex:1}.board-panel{position:fixed;border-left:none;border-top:4px solid var(--panel-edge);z-index:20;animation-name:sheet-in;width:auto;max-height:72vh;padding:16px;bottom:0;left:0;right:0}@keyframes sheet-in{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}.app-panel-open .room-area{justify-content:flex-start;padding-top:8px}.app-panel-open .room{max-height:44vh}}.sheet-svg{cursor:pointer;outline:none}.sheet-svg:hover polygon:first-of-type{fill:#fff6df}.sheet-svg:focus-visible polygon:first-of-type{fill:#fff6df}.sheet{display:flex;text-align:left;background:var(--bg);border:3px solid var(--panel-edge);color:var(--text);font:inherit;cursor:pointer;align-items: center;gap:14px;width:100%;padding:12px 14px}.sheet:hover{border-color:var(--warm)}.sheet-icon{font-size:28px;line-height:1}.sheet-body{display:flex;flex-direction:column;flex:1;gap:6px;min-width:0}.sheet-name{overflow-wrap:anywhere;font-weight:700}.progress{display:flex;align-items: center;gap:8px}.progress-bar{background:var(--panel);border:2px solid var(--panel-edge);position:relative;flex:1;height:10px}.progress-fill{position:absolute;background:#7fb069;top:0;bottom:0;left:0}.progress-pct{color:var(--warm);text-align:right;min-width:38px;font-size:13px}.btn-wide{width:100%;margin-top:14px;padding:12px}.project-list{margin-bottom:0}.lib-lead{color:var(--text);margin:0 0 14px;font-size:15px}.dream-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dream-card{display:flex;text-align:left;background:var(--bg);border:3px solid var(--panel-edge);color:var(--text);font:inherit;cursor:pointer;border-bottom-width:5px;flex-direction:column;gap:4px;padding:12px 10px}.dream-card:hover:not(:disabled){border-color:var(--warm)}.dream-card:disabled{opacity:.4;cursor:default}.dream-own{grid-column:1/-1;border-style:dashed}.dream-icon{font-size:28px;line-height:1.1}.dream-title{color:var(--warm);font-size:14px;font-weight:700}.dream-covers{color:var(--muted);font-size:11.5px;line-height:1.3}.dream-name{display:flex;flex-direction:column;gap:10px}.dream-chosen{display:flex;color:var(--muted);align-items: center;gap:10px}.project-view{display:flex;flex-direction:column;gap:10px}.pv-dream{color:var(--muted);font-size:13px}.pv-title-row{display:flex;align-items: flex-start;gap:8px}.pv-title{color:var(--text);overflow-wrap:anywhere;flex:1;margin:0;font-size:20px}.pv-hint{line-height:1.4;margin:4px 0 0!important}.icon-btn{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;flex-shrink:0;width:30px;height:30px;padding:0;font-size:17px}.icon-btn:hover{color:var(--warm)}.inline-edit{margin:4px 0}.pv-danger{border-top:2px dashed var(--panel-edge);margin-top:18px;padding-top:12px}.confirm{display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:1.4}.confirm-row{background:var(--bg);border-left:3px solid #c0392b;margin:4px 0;padding:8px 10px}.confirm-actions{display:flex;align-items: center;gap:14px}.btn-danger{color:#fff;background:#c0392b;border-bottom-color:#8e2a1f}.btn-small-text{padding:6px 12px;font-size:13px}.dream-obj{cursor:pointer;outline:none}.dream-obj:hover{filter:brightness(1.12)}.dream-obj:focus-visible{filter:brightness(1.12)}.dream-ghost{opacity:.16;filter:saturate(.2);pointer-events:all}.dream-ghost *{pointer-events:all}.twinkle{animation:twinkle 1.8s steps(2)infinite}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.twinkle{animation:none}}.dream-preview{aspect-ratio:84/64;display:block;shape-rendering:crispEdges;background:#3d2c23;width:100%;height:auto;margin-bottom:6px}.dream-chosen .dream-preview{width:140px;margin:0}.dream-chosen{flex-direction:column;align-items: flex-start}.dream-preview .pv-skip{display:none}.dream-icon-big{font-size:44px}.dream-chosen{gap:6px}.hero-pick{display:flex;gap:10px}.hero-option{display:flex;background:var(--bg);border:3px solid var(--panel-edge);color:var(--text);font:inherit;cursor:pointer;flex-direction:column;flex:1;align-items: center;gap:4px;padding:8px 4px 6px;font-size:14px}.hero-option:hover{border-color:var(--wood)}.hero-option-on{border-color:var(--warm);color:var(--warm);background:#4a3528}.hero-preview{display:block;width:34px;height:51px}.summary-sheet{position:fixed;display:flex;z-index:15;justify-content:center;padding:12px;bottom:0;left:0;right:0}.summary{position:relative;gap:8px;max-width:460px}.summary-close{position:absolute;padding:0;top:10px;right:14px}.app-summary .room-area,.app-welcome .room-area{justify-content:flex-start;padding-top:12px}.app-summary .room,.app-welcome .room{max-height:52vh}.summary-big{margin:0;font-size:18px}.summary-big b{color:var(--warm);font-size:24px}.summary-week{display:flex;gap:3px}.summary-day{text-align:center;border:2px solid var(--panel-edge);color:var(--muted);flex:1;padding:4px 0;font-size:10px}.summary-day.on{background:var(--warm);border-color:var(--warm);color:var(--bg);font-weight:700}.summary-list{display:flex;flex-direction:column;margin:0;font-size:13px;line-height:1.5}.pv-since{color:var(--muted)}.pv-section{letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:10px 0 0;font-size:12px;font-weight:400}.pv-built{border-left:3px solid var(--warm);color:var(--warm);background:#4a3528;padding:8px 10px;font-weight:700;margin:2px 0 0!important}.project-view .step-done .step-name{text-decoration:none;color:var(--text)}.step-date{color:var(--warm);white-space:nowrap;margin-left:8px;font-size:12px}.cosy-line{font-size:15px;margin:0!important}.cosy-line b{color:var(--warm)}.cosy-glow,.sun-patch{animation:cosy-in 1.2s ease-out both}@keyframes cosy-in{0%{opacity:0}}.steam{animation:steam 2.4s ease-in-out infinite}.steam-2{animation-delay:1.2s}@keyframes steam{0%{transform:translateY(2px);opacity:0}40%{opacity:.8}to{transform:translateY(-4px);opacity:0}}@media (prefers-reduced-motion:reduce){.steam,.cosy-glow,.sun-patch{animation:none}}.lib-own-hint{text-align:left;margin:-6px 0 14px;font-size:13px}.dream-own{border-color:var(--wood)}.star-mark{color:var(--warm)}.star-btn{font-size:18px}.star-on,.icon-btn-on{color:var(--warm)}.step-open>.step-row{background:#f2c27b0f}.step-tools{display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 10px 28px}.tool-btn{background:var(--bg);border:2px solid var(--panel-edge);color:var(--text);font:inherit;cursor:pointer;min-width:34px;height:32px;padding:0 9px;font-size:13px}.tool-btn:hover:not(:disabled){border-color:var(--warm);color:var(--warm)}.tool-btn:disabled{opacity:.35;cursor:default}.tool-star-on{color:var(--warm);border-color:var(--warm)}.tool-danger:hover:not(:disabled){color:#ff8a7a;border-color:#c0392b}.dream-next{filter:saturate(.35)brightness(1.1)}.obj-flash{animation:obj-flash 1.1s ease-out both}@keyframes obj-flash{0%{filter:brightness(1)drop-shadow(0 0 0 #ffe08a00)}25%{filter:brightness(1.7)drop-shadow(0 0 6px #ffe08ae6)}to{filter:brightness(1)drop-shadow(0 0 0 #ffe08a00)}}.warm-wave{animation:warm-wave 1.6s ease-out both}@keyframes warm-wave{0%{opacity:0}30%{opacity:1}to{opacity:0}}.split-hint{border-left:3px solid var(--warm);background:var(--bg);color:var(--muted);margin:10px 0 0;padding:8px 10px;font-size:13px;line-height:1.4}.split-hint .link-btn{margin-left:6px}@media (prefers-reduced-motion:reduce){.obj-flash{animation:none}.warm-wave{display:none}}.project-group{display:flex;flex-direction:column;gap:4px}.queue-list{list-style:none;border-left:2px dashed var(--panel-edge);margin:0 0 0 22px;padding:0 0 0 10px}.queue-row{display:flex;align-items: center;gap:2px}.queue-open{display:flex;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items: center;gap:8px;min-width:0;padding:7px 4px;font-size:14px}.queue-open:hover .queue-name{color:var(--warm)}.queue-num{color:var(--muted);min-width:14px;font-size:12px}.queue-name{overflow-wrap:anywhere;flex:1;min-width:0}.icon-btn:disabled{opacity:.3;cursor:default}.queue-note{background:var(--bg);border-left:3px solid var(--panel-edge);color:var(--muted);margin:10px 0 0;padding:8px 10px;font-size:13px;line-height:1.4}.archive-lead{margin:0 0 10px}.archive-lead b,.sheet-done .sheet-name{color:var(--warm)}.archive-meta{color:var(--muted);font-size:12px}.archive-photo{margin:12px 0 4px}.archive-steps .step{cursor:default}.chronicle{cursor:pointer;outline:none}.chronicle:hover{filter:brightness(1.2)drop-shadow(0 0 3px #ffe08acc)}.chronicle:focus-visible{filter:brightness(1.2)drop-shadow(0 0 3px #ffe08acc)}.photo-backdrop{position:fixed;z-index:60;display:flex;overflow-y:auto;animation:fade-in .3s ease-out both;background:#140e0bb8;justify-content:center;align-items: center;padding:16px;inset:0}@keyframes fade-in{0%{opacity:0}}.photo-card{background:var(--panel);border:3px solid var(--panel-edge);text-align:center;color:var(--text);width:min(360px,100%);padding:22px 20px 16px;box-shadow:0 10px 40px #00000080}.polaroid{background:#fbf6ea;width:82%;margin:0 auto 16px;padding:10px 10px 0;transform:rotate(-2deg);box-shadow:0 6px 18px #00000073}.photo-new .polaroid{animation:polaroid-in .9s cubic-bezier(.2,1.4,.4,1)both}@keyframes polaroid-in{0%{transform:rotate(-12deg)translateY(30px)scale(.8);opacity:0}to{transform:rotate(-2deg);opacity:1}}.photo-img{display:block;aspect-ratio:1;background:linear-gradient(#e6cba2,#d7b485 78%,#9a7152 78% 100%);width:100%}.photo-icon{display:flex;justify-content:center;align-items: center;font-size:64px}.photo-star{fill:#b8872f;font:700 18px Courier New,monospace}.photo-caption{color:#3a2a22;overflow-wrap:anywhere;padding:10px 4px 12px;font:700 15px Courier New,monospace}.photo-dates{color:var(--muted);margin:0 0 10px;font-size:14px;line-height:1.5}.photo-dates b{color:var(--warm);font-size:16px}.photo-words{color:var(--warm);margin:0 0 12px;font-size:16px;font-weight:700;line-height:1.4}.photo-note{margin:0 0 12px;line-height:1.4}.photo-next{margin:0 0 12px;font-size:14px;line-height:1.4}.photo-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items: center;gap:14px}.photo-undo{color:var(--muted);margin-top:14px;font-size:12px}@media (prefers-reduced-motion:reduce){.photo-new .polaroid,.photo-backdrop{animation:none}}.day-tint{transition:opacity 2s}.welcome{max-width:440px}.welcome-sub{color:var(--muted);margin:4px 0 10px;font-size:14px}.welcome-list{list-style:none;display:flex;text-align:left;flex-direction:column;gap:8px;margin:0 0 12px;padding:0}.welcome-list li{display:flex;background:var(--bg);border-left:3px solid var(--panel-edge);flex-direction:column;gap:2px;padding:8px 10px;font-size:14px;line-height:1.35}.welcome-did{color:var(--text)}.welcome-world{color:var(--warm);font-size:13px}.welcome-gold{border-left-color:var(--warm)!important}.welcome-now{margin:0 0 4px}.welcome{overflow-y:auto;gap:6px;max-height:58vh}.welcome .name-label{margin:0}.welcome-sub{margin:0 0 4px}.welcome-list{gap:4px;margin-bottom:6px}.welcome-list li{display:block;padding:5px 8px;font-size:13px}.welcome-world{margin-left:4px;font-size:12px}.welcome .btn-wide{margin-top:4px;padding:10px}.zzz{animation:zzz 3.2s ease-in-out infinite;opacity:0}.zzz-2{animation-delay:1.6s}@keyframes zzz{0%{opacity:0;transform:translateY(4px)}30%{opacity:.9}to{opacity:0;transform:translate(4px,-10px)}}.yawn{opacity:0;animation:yawn 9s steps(1)infinite 2s}@keyframes yawn{0%,88%{opacity:0}89%,97%{opacity:1}98%,to{opacity:0}}.toast-night{color:#e6e9ff;background:#2b2f55;border-bottom-color:#4a4f80;font-weight:400}@media (prefers-reduced-motion:reduce){.zzz{animation:none;opacity:.7}.yawn{animation:none}}.privacy-bar{position:fixed;z-index:40;display:flex;background:var(--panel);border:2px solid var(--panel-edge);color:var(--text);flex-wrap:wrap;align-items: center;gap:8px 14px;max-width:560px;margin:0 auto;padding:10px 12px;font-size:13px;line-height:1.4;bottom:12px;left:12px;right:12px;box-shadow:0 6px 20px #0006}.privacy-bar>span:first-child{flex:260px}.privacy-actions{display:flex;align-items: center;gap:14px;margin-left:auto}.privacy-card{text-align:left;font-size:14px;line-height:1.45}.privacy-card p{margin:0 0 10px}.privacy-card ul{margin:0 0 10px;padding-left:18px}.privacy-card li{margin-bottom:4px}.bp-privacy{color:var(--muted);align-self: center;margin-top:18px;font-size:12px}.group-row{display:flex;align-items:stretch;gap:4px}.group-row .sheet{flex:1;min-width:0}.group-move{display:flex;flex-direction:column;justify-content:center}.group-move .icon-btn{height:26px}.board-panel{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}html,body{overscroll-behavior-y:none}@media (max-width:760px){.app-panel-open .room-area{overflow:hidden;touch-action:none}}.room-title-edit{color:var(--warm);text-decoration:underline;text-underline-offset:3px}.whatsnew-bar{border-color:var(--warm)}.whatsnew-list{margin:0 0 12px;padding-left:18px}.whatsnew-list li{margin-bottom:8px}.bp-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;margin-top:18px}.bp-links .bp-privacy{margin-top:0}.photo-backdrop{z-index:60}.privacy-card{max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior:contain;max-height:calc(100dvh - 32px)}.version-tag{position:absolute;font:inherit;letter-spacing:1px;color:var(--muted);opacity:.7;cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:11px;bottom:10px;right:12px}.version-tag:hover{opacity:1;color:var(--warm)}.version-tag:focus-visible{opacity:1;color:var(--warm)}@media (max-width:760px){.app-panel-open .version-tag{display:none}}
