:root{--color-primary: #f97316;--color-secondary: #fb923c;--color-accent: #2563eb;--color-background: #fff7ed;--color-foreground: #9a3412;--color-border: #fed7aa;--color-muted: #f1f0f0;--color-destructive: #dc2626;--font-heading: "Fredoka", sans-serif;--font-body: "Nunito", sans-serif;--radius: 16px;--radius-sm: 8px;--shadow-clay: 4px 4px 0px #c2410c, inset 0 1px 0 rgba(255,255,255,.4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--color-background);font-family:var(--font-body)}#app{position:relative;width:100vw;height:100vh}#scene{display:block;width:100%;height:100%;cursor:grab}#scene:active{cursor:grabbing}#hint{z-index:50;position:fixed;bottom:24px;left:50%;transform:translate(-50%);font-family:var(--font-heading);font-size:1rem;font-weight:500;color:var(--color-foreground);background:var(--color-background);border:3px solid var(--color-border);border-radius:var(--radius);padding:8px 20px;box-shadow:var(--shadow-clay);pointer-events:none;user-select:none;white-space:nowrap}.popup{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#9a341259;opacity:0;pointer-events:none;transition:opacity .2s ease-out;z-index:100}.popup.visible{opacity:1;pointer-events:all}.popup-inner{position:relative;font-family:var(--font-heading);font-size:1.4rem;font-weight:600;color:var(--color-foreground);background:var(--color-background);border:4px solid var(--color-border);border-radius:var(--radius);padding:32px 48px;box-shadow:6px 6px #c2410c,inset 0 1px #ffffff80;transform:scale(.85);transition:transform .2s ease-out;max-width:90vw;text-align:center}.popup.visible .popup-inner{transform:scale(1)}#popup-close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:1.1rem;color:var(--color-foreground);cursor:pointer;line-height:1;padding:4px;border-radius:var(--radius-sm);transition:background .15s ease-out}#popup-close:hover{background:var(--color-border)}#popup-close:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.room-panel{position:fixed;inset:0;background:var(--color-background);opacity:0;pointer-events:none;transition:opacity .25s ease-out;z-index:200;overflow-y:auto}.room-panel.room-visible{opacity:1;pointer-events:all}.room-panel-inner{max-width:900px;margin:0 auto;padding:24px 20px 48px}.room-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:12px}.room-title{font-family:var(--font-heading);font-size:1.8rem;font-weight:700;color:var(--color-foreground)}.back-btn{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--color-foreground);background:var(--color-background);border:3px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 16px;cursor:pointer;box-shadow:3px 3px #c2410c,inset 0 1px #fff6;transition:box-shadow .12s ease-out,transform .12s ease-out}.back-btn:hover{box-shadow:4px 4px #c2410c,inset 0 1px #fff6}.back-btn:active{transform:translate(2px,2px);box-shadow:1px 1px #c2410c}.back-btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.papa-section{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:36px}.papa-label{font-family:var(--font-heading);font-size:.9rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#991b1b}.papa-button{font-family:var(--font-heading);font-size:2.2rem;font-weight:700;color:#fff;background:#dc2626;border:4px solid #991b1b;border-radius:20px;padding:20px 56px;cursor:pointer;box-shadow:6px 6px #7f1d1d,inset 0 2px #fff3;transition:box-shadow .1s ease-out,transform .1s ease-out;user-select:none}.papa-button:hover{box-shadow:7px 7px #7f1d1d,inset 0 2px #fff3}.papa-button:focus-visible{outline:4px solid var(--color-accent);outline-offset:3px}@keyframes papaRecoil{0%{transform:scale(1) translate(0)}15%{transform:scale(.88) translate(3px,5px)}40%{transform:scale(1.06) translate(-1px,-2px)}65%{transform:scale(.97) translate(1px,1px)}to{transform:scale(1) translate(0)}}.papa-button.recoiling{animation:papaRecoil .4s ease-out forwards}.papa-message{font-family:var(--font-body);font-style:italic;font-size:1rem;color:var(--color-foreground);text-align:center;min-height:1.5em;max-width:480px}.bedroom-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}@media(max-width:700px){.bedroom-grid{grid-template-columns:1fr}}.widget{background:#fff;border:4px solid var(--color-border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-clay);display:flex;flex-direction:column;gap:12px}.widget-title{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;color:var(--color-foreground);border-bottom:2px solid var(--color-border);padding-bottom:8px}.sleep-status{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--color-foreground);background:var(--color-border);border-radius:var(--radius-sm);padding:8px 16px;text-align:center;transition:background .3s ease-out,color .3s ease-out}.sleep-status.awake{background:#dcfce7;color:#166534}.wake-label{font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--color-foreground);text-transform:uppercase;letter-spacing:.05em}.wake-buttons{display:flex;flex-direction:column;gap:8px}.wake-btn{font-family:var(--font-body);font-size:.9rem;font-weight:600;color:var(--color-foreground);background:var(--color-background);border:3px solid var(--color-border);border-radius:var(--radius-sm);padding:9px 14px;text-align:left;cursor:pointer;box-shadow:3px 3px #c2410c;transition:box-shadow .12s ease-out,transform .12s ease-out,opacity .15s ease-out}.wake-btn:not(:disabled):hover{box-shadow:4px 4px #c2410c}.wake-btn:not(:disabled):active{transform:translate(2px,2px);box-shadow:1px 1px #c2410c}.wake-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.wake-btn.done{text-decoration:line-through;opacity:.45;box-shadow:none}.wake-btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.wake-response{font-family:var(--font-body);font-style:italic;font-size:.9rem;color:var(--color-foreground);min-height:2.8em;line-height:1.5}.wake-success-msg{font-family:var(--font-body);font-size:.9rem;color:#166534;background:#dcfce7;border:2px solid #86efac;border-radius:var(--radius-sm);padding:10px 14px;line-height:1.5}.wake-reset-btn{font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--color-foreground);background:var(--color-muted);border:2px solid var(--color-border);border-radius:var(--radius-sm);padding:7px 14px;cursor:pointer;transition:background .15s ease-out}.wake-reset-btn:hover{background:var(--color-border)}.wake-reset-btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.live-badge{display:flex;align-items:center;gap:8px;font-family:var(--font-heading);font-size:.8rem;font-weight:700;letter-spacing:.08em;color:#dc2626}.live-dot{width:10px;height:10px;border-radius:50%;background:#dc2626;flex-shrink:0;animation:livePulse 1.4s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.35}}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:1}.status-cell{background:var(--color-background);border:3px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:4px}.status-label{font-family:var(--font-body);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#a16207}.status-value{font-family:var(--font-heading);font-size:.95rem;font-weight:600;color:var(--color-foreground);line-height:1.3}.status-value.danger{color:#dc2626;font-weight:700}.excuse-text{font-family:var(--font-body);font-size:.95rem;color:var(--color-foreground);background:var(--color-background);border:3px solid var(--color-border);border-radius:var(--radius-sm);padding:14px;min-height:72px;line-height:1.6;flex:1}.excuse-text.fresh{animation:fadeInUp .2s ease-out forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.excuse-btn{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:#fff;background:var(--color-primary);border:3px solid #c2410c;border-radius:var(--radius-sm);padding:10px 18px;cursor:pointer;box-shadow:4px 4px #9a3412,inset 0 1px #fff3;transition:box-shadow .12s ease-out,transform .12s ease-out}.excuse-btn:hover{box-shadow:5px 5px #9a3412,inset 0 1px #fff3}.excuse-btn:active{transform:translate(2px,2px);box-shadow:2px 2px #9a3412}.excuse-btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.papa-message.fresh,.wake-response.fresh{animation:fadeInUp .2s ease-out forwards}
