:root{color:#51412e;font-synthesis:none;--paper:#fff6e4;--line:#b49b744f;--ink:#51412e;background:#352b21;font-family:Avenir Next,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}.ph{width:1em;height:1em;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor;flex-shrink:0;display:inline-block}body{width:100vw;height:100dvh;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:var(--paper)}button:focus-visible{outline-offset:4px;outline:3px solid #f9bd50}button:hover{filter:brightness(1.06)}button:active{transform:translateY(1px)}[hidden]{display:none!important}#app{place-items:center;width:100%;height:100%;display:grid}.game-stage{background:#b98f5e;width:min(100vw,160dvh);height:min(100dvh,62.5vw);position:relative;overflow:hidden}.game-stage:fullscreen{width:100vw;height:100dvh}#game-root{position:absolute;inset:0}.loading-screen{z-index:10;color:#fff6df;letter-spacing:.12em;background:#b39163;place-items:center;font-size:16px;display:grid;position:absolute;inset:0}#game-root canvas{display:block}.hud{pointer-events:none;grid-template-columns:1fr auto 1fr;align-items:start;gap:20px;display:grid;position:absolute;inset:26px 30px auto}.hud button{pointer-events:auto}.brand{color:#fff1cb;filter:drop-shadow(0 2px 2px #57382070);align-items:baseline;gap:12px;width:-moz-fit-content;width:fit-content;display:flex}.brand img{width:104px;height:auto;margin-top:-2px;display:block}.brand>span{letter-spacing:-2px;font-family:Georgia,serif;font-size:43px;font-weight:700;line-height:1}.brand-dot{color:#e0ab55}.brand small{letter-spacing:.15em;font-size:11px;font-weight:600}.room-nav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff4dce8;border:1px solid #fff3d670;border-radius:32px;padding:4px;display:flex;box-shadow:0 3px 13px #3e291522}.room-nav button{white-space:nowrap;background:0 0;border:0;border-radius:26px;justify-content:center;align-items:center;gap:9px;min-width:171px;padding:12px 26px;font-size:15px;font-weight:600;display:flex}.room-nav .ph{font-size:23px}.room-nav button.active{color:#fff7e5;background:#958060;box-shadow:inset 0 1px 2px #5c472522}.top-actions{justify-self:end;gap:10px;display:flex}.game-stage[data-room=moss-home] .top-actions .icon-button{color:#705d40;background:#fff5e9ed;border-color:#bda47a}.icon-button{color:#fff5df;background:#fff4dc45;border-color:#fff1d575;border-radius:16px;place-items:center;width:52px;height:52px;font-size:25px;display:grid;box-shadow:0 3px 9px #3e291510}.bottom-actions{align-items:center;gap:13px;display:flex;position:absolute;bottom:24px;left:28px}.bottom-actions .icon-button{color:#746042;background:#fff4dcd9;width:34px;height:34px;font-size:19px}#save-status{color:#fff5df;text-shadow:0 1px 3px #443321;font-size:11px}#save-status.warning{background:#9d4a2b;border-radius:12px;padding:6px 10px}.toast{opacity:0;pointer-events:none;color:#604931;text-align:center;background:#fff5e7f2;border-radius:28px;max-width:60%;padding:11px 20px;font-size:12px;transition:opacity .2s,transform .2s;position:absolute;bottom:25px;left:50%;transform:translate(-50%,10px);box-shadow:0 4px 16px #49331c25}.toast.visible{opacity:1;transform:translate(-50%)}#save-banner{color:#713c22;background:#fff1d9;border:1px solid #c88653;border-radius:15px;width:min(660px,90%);padding:12px 17px;font-size:13px;position:absolute;top:87px;left:50%;transform:translate(-50%)}.basket-panel{background:#fff5e5f7;border:1px solid #e8d3b5;border-radius:22px;width:260px;padding:22px;position:absolute;bottom:24px;right:24px;box-shadow:0 9px 30px #49331c33}h2{letter-spacing:-.02em;margin:8px 0 18px;font-size:22px;font-weight:600}.basket-panel h2{margin-bottom:15px;font-size:19px}.eyebrow{color:#9c825e;letter-spacing:.15em;margin:0;font-size:10px}.basket-contents{gap:8px;display:grid}.basket-contents p{color:#8b785f;margin:0;font-size:13px;line-height:1.7}.basket-contents button{background:#fffaf0;border-radius:12px;align-items:center;gap:8px;padding:10px;font-size:12px;display:flex}.basket-contents small{color:#ad714c;margin-left:auto;font-size:10px}dialog{color:var(--ink);background:#fff7e8;border:1px solid #e3cdaa;border-radius:26px;width:min(450px,90vw);padding:35px;box-shadow:0 18px 80px #30251755}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#3d2e2266}dialog p{font-size:13px;line-height:1.85}.close-button{background:0 0;border:0;padding:6px;font-size:18px;line-height:1;position:absolute;top:13px;right:14px}.fine-print{color:#9b876c;margin-top:22px;font-size:11px}.help-lines{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.help-lines .ph{vertical-align:-3px;color:#a18155;margin-right:6px;font-size:18px}.primary-button{color:#fff8e8;background:#8c7959;border-color:#8c7959;border-radius:14px;padding:11px 20px}.setting-row{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:18px 0;font-size:13px;display:flex}.setting-row .ph{font-size:21px}.setting-row small{color:#a48e71;margin-left:auto}.dialog-actions{justify-content:flex-end;gap:12px;margin-top:25px;display:flex}.dialog-actions button{border-radius:14px;padding:11px 17px;font-size:13px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (max-width:1250px){.hud{gap:10px;inset:17px 20px auto}.brand small{display:none}.brand>span{font-size:35px}.room-nav button{min-width:125px;padding:9px 12px;font-size:12px}.icon-button{width:42px;height:42px}}@media (max-width:820px){.hud{grid-template-columns:auto 1fr auto;gap:8px;inset:12px 14px auto}.brand img{width:68px}.room-nav{justify-self:center}.room-nav button{gap:6px;min-width:0;padding:8px 9px;font-size:11px}.room-nav .ph{font-size:17px}.top-actions{gap:6px}.top-actions .icon-button{border-radius:12px;width:34px;height:34px;font-size:18px}}@media (prefers-reduced-motion:reduce){.toast{transition:none}}.birthday-nav{background:#fff6e9f2;gap:2px;min-width:220px;padding:7px 21px;display:grid}.birthday-nav label{letter-spacing:.19em;color:#7b92a2;text-align:center;font-size:8px}.birthday-nav select{pointer-events:auto;color:#375775;cursor:pointer;background:0 0;border:none;min-width:0;font:600 15px Avenir Next,system-ui}.birthday-heading{text-align:center;pointer-events:none;color:#fff5d7;text-shadow:0 2px 6px #2b362daa,0 1px 1px #46331f;width:65%;position:absolute;top:13%;left:50%;transform:translate(-50%)}.birthday-heading>span{letter-spacing:.24em;font-size:clamp(7px,.8vw,11px)}.birthday-heading h2{letter-spacing:-.04em;margin:3px 0;font:400 clamp(20px,3.3vw,45px) Georgia,serif}.birthday-tools{gap:8px;display:flex;position:absolute;bottom:24px;right:25px}.birthday-tools button,.birthday-launch{color:#4f7291;background:#f8f2e4ee;border:1px solid #e5d7ba;border-radius:20px;padding:8px 13px;font-size:11px;text-decoration:none;box-shadow:0 3px 12px #33271722}.birthday-launch{position:absolute;bottom:24px;right:25px}.birthday-panel{background:#fff9edf7;border-color:#a5b9c8;width:260px;bottom:68px}.birthday-panel p{font-size:12px;line-height:1.65}.birthday-panel h2{color:#416789}.toy-actions{flex-wrap:wrap;gap:8px;display:flex}.toy-actions button{color:#385b79;background:#dce9ef;border-color:#a8c2d3;border-radius:11px;padding:10px 12px;font-size:12px}button:disabled{opacity:.5;cursor:default}.birthday-invitation{text-align:center;background:#fff8e9;border:7px double #c3d2d6;width:min(410px,88vw);padding:33px}.birthday-invitation::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#2f4b6555}.birthday-invitation .eyebrow{color:#708da5}.birthday-invitation h2{color:#4e779b;margin:14px 0 5px;font:45px Georgia,serif}.birthday-invitation p{color:#73848a}.invitation-seal{color:#fff3d7;background:#7698b5;border:3px double #dbe6e7;border-radius:50%;place-items:center;width:57px;height:57px;margin:24px auto 12px;font:italic 30px Georgia,serif;display:grid;box-shadow:0 3px 8px #566e8733}.birthday-stage .primary-button{background:#597f9f;border-color:#597f9f}.birthday-stage .icon-button{color:#516f8d;background:#fbf2dfce}.story-link{color:#526e89;font-size:12px}.party-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.party-confetti i{width:8px;height:12px;animation:birthday-fall 2.6s ease-in var(--delay) both;border-radius:2px;position:absolute;top:-12px}@keyframes birthday-fall{to{transform:translate(35px, 110vh) rotate(var(--turn));opacity:0}}.reduce-motion .party-confetti i{animation:none;display:none}@media (prefers-reduced-motion:reduce){.party-confetti i{display:none}}@media (max-width:820px){.birthday-nav{min-width:190px;padding:5px 14px}.birthday-nav select{font-size:12px}.birthday-heading{top:17%}.birthday-heading h2{font-size:24px}.birthday-tools{bottom:14px;right:12px}.birthday-tools button{padding:6px 9px;font-size:10px}.birthday-panel{max-height:calc(100% - 70px);padding:18px;bottom:50px;right:12px;overflow-y:auto}.birthday-heading>span{display:none}.birthday-launch{font-size:10px;bottom:18px;right:12px}.birthday-invitation{padding:23px}}
