:root{--color-bg-canvas:#faf6ee;--color-bg-surface:#fff;--color-bg-surface-alt:#f3ecdc;--color-wood-light:#d9b888;--color-wood-mid:#b8875a;--color-wood-dark:#7a5738;--color-sage:#9cae93;--color-sage-deep:#6e8265;--color-ink:#3b342a;--color-ink-soft:#6b6255;--color-accent:#e3a857;--color-accent-strong:#c9832e;--color-accent-hover:#d39040;--color-success:#7fa98c;--color-border:#e7dcc6;--color-focus-ring:#3b342a;--color-cat-cream:#f1e4cc;--color-cat-point:#4e4038;--color-cat-eyes:#4e86c6;--font-family:"Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs:.8125rem;--font-size-sm:.9375rem;--font-size-md:1.0625rem;--font-size-lg:1.375rem;--font-size-xl:1.875rem;--font-size-2xl:2.5rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:10px;--radius-md:18px;--radius-lg:28px;--radius-pill:999px;--shadow-soft:0 4px 16px #3b342a14;--shadow-raised:0 8px 28px #3b342a24;--ease-standard:cubic-bezier(.4, 0, .2, 1);--touch-target:48px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-family);font-size:var(--font-size-md);color:var(--color-ink);background:var(--color-bg-canvas);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;line-height:1.5}button,input{font-family:inherit}button{cursor:pointer;color:inherit;min-height:var(--touch-target);min-width:var(--touch-target);background:0 0;border:none}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}h1,h2,h3,p{margin:0}h1,h2,h3,.active-focus-time,.minute-stepper-value,.levelup-badge{line-height:1.15}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:0 var(--space-5);height:var(--touch-target);border-radius:var(--radius-pill);font-weight:700;font-size:var(--font-size-md);transition:transform .18s var(--ease-standard), background .18s var(--ease-standard);display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-accent);color:var(--color-ink);box-shadow:var(--shadow-soft)}.btn-primary:hover{background:var(--color-accent-hover)}.btn-secondary{background:var(--color-bg-surface);color:var(--color-ink);border:1px solid var(--color-border)}.btn-ghost{color:var(--color-ink-soft);background:0 0}.btn-success{background:var(--color-success);color:var(--color-ink)}.card{background:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:var(--space-5)}.safe-area{padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.app-splash{min-height:100dvh;color:var(--color-ink-soft);justify-content:center;align-items:center;font-weight:600;display:flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.panel{background:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-raised);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.panel-title{font-size:var(--font-size-lg);font-weight:800}.panel-actions{gap:var(--space-3);margin-top:var(--space-2);display:flex}.panel-actions .btn{flex:1}.status-panel-header{justify-content:space-between;align-items:flex-start;display:flex}.status-panel-catname{font-size:var(--font-size-lg);font-weight:800}.status-panel-stage{color:var(--color-ink-soft);font-size:var(--font-size-sm)}.status-panel-total{color:var(--color-ink-soft)}.status-panel-cta{width:100%}.icon-btn{color:var(--color-ink-soft);padding:0}.progress-bar-track{border-radius:var(--radius-pill);background:var(--color-bg-surface-alt);height:14px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--color-accent), var(--color-accent-strong));border-radius:var(--radius-pill);height:100%;transition:width .4s var(--ease-standard)}.progress-bar-text{margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-ink-soft);display:block}.minute-stepper-label{margin-bottom:var(--space-2);font-weight:600;display:block}.minute-stepper-controls{align-items:center;gap:var(--space-4);display:flex}.minute-stepper-btn{width:var(--touch-target);height:var(--touch-target);background:var(--color-bg-surface-alt);font-size:var(--font-size-lg);border-radius:50%;font-weight:800}.minute-stepper-value{text-align:center;font-size:var(--font-size-lg);font-variant-numeric:tabular-nums;flex:1;font-weight:800}.active-focus-label{text-align:center;color:var(--color-ink-soft);font-weight:600}.active-focus-time{text-align:center;font-size:var(--font-size-2xl);font-variant-numeric:tabular-nums;font-weight:800}.active-focus-topic{text-align:center;color:var(--color-ink-soft)}.active-focus-toggle{width:100%}.onboarding{min-height:100dvh;padding:var(--space-5);background:radial-gradient(80% 60% at 20% 10%, #fffaebe6, transparent), var(--color-bg-canvas);justify-content:center;align-items:center;display:flex}.onboarding-card{width:min(480px,100%)}.onboarding-title{font-size:var(--font-size-xl);margin-bottom:var(--space-3);font-weight:800}.onboarding-text{color:var(--color-ink-soft);margin-bottom:var(--space-5);line-height:1.5}.onboarding-label{margin-bottom:var(--space-2);font-weight:600;display:block}.onboarding-input{width:100%;height:var(--touch-target);padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-canvas);font-size:var(--font-size-md);margin-bottom:var(--space-5)}.onboarding-submit{width:100%}.recovery-code{font-size:var(--font-size-lg);letter-spacing:.06em;text-align:center;padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-surface-alt);color:var(--color-ink);margin-bottom:var(--space-5);-webkit-user-select:all;user-select:all;font-weight:800}.onboarding-checkbox{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);font-weight:600;display:flex}.onboarding-checkbox input{width:24px;height:24px}.cat-anchor{z-index:5;pointer-events:none;transition-property:left,bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute;transform:translate(-50%)}.cat-anchor[data-reduced-motion=true]{transition:none}.cat-shadow{filter:blur(2px);background:radial-gradient(closest-side,#3b342a8c,#3b342a00);border-radius:50%;height:16%;min-height:8px;transition:opacity .4s;position:absolute;bottom:-4%;left:50%;transform:translate(-50%)}.cat-facing{transition:transform .26s}.cat-jump-arc{transform-origin:bottom}.cat-sprite{image-rendering:auto;filter:drop-shadow(0 4px 6px #3b342a1a);background-repeat:no-repeat;display:block}.cat-anchor[data-state=jumping] .cat-jump-arc{animation:.9s cubic-bezier(.3,0,.3,1) cat-jump-arc}@keyframes cat-jump-arc{0%{transform:translateY(0)scaleY(1)}35%{transform:translateY(-38%)scaleY(1.02)}70%{transform:translateY(-18%)scaleY(.99)}to{transform:translateY(0)scaleY(1)}}.cat-anchor[data-reduced-motion=true] .cat-jump-arc,.cat-anchor[data-reduced-motion=true] .cat-facing{transition:none!important;animation:none!important}.room-scene{--parallax-x:0;--parallax-y:0;border-radius:var(--radius-lg);background:var(--color-bg-canvas);width:100%;height:100%;position:relative;overflow:hidden}.room-background{transform:translate(calc(var(--parallax-x) * 8px), calc(var(--parallax-y) * 5px));background-position:50% 32%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:-2%}.room-floor-zone{position:absolute;inset:0}.unlock{filter:drop-shadow(0 3px 5px #3b342a29);position:absolute}.unlock-pillow{aspect-ratio:3/2;background:var(--color-sage);border-radius:40%;width:8%;bottom:13%;left:25%}.unlock-blanket{aspect-ratio:3;background:repeating-linear-gradient(90deg, var(--color-accent) 0 10px, var(--color-accent-strong) 10px 20px);opacity:.9;border-radius:12px;width:11%;bottom:21%;left:55%}.unlock-toy{aspect-ratio:1;width:3%;bottom:12%;left:33%}.toy-yarn{background:radial-gradient(circle at 35% 35%, var(--color-accent), var(--color-accent-strong));width:100%;height:100%;box-shadow:var(--shadow-soft);border-radius:50%;display:block}@media (orientation:portrait){.room-background{background-position:46% 24%}}.room-scene[data-reduced-motion=true] .room-background{transform:none!important}.main-screen{gap:var(--space-5);min-height:100dvh;padding:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(280px,340px);display:grid;position:relative}.main-screen-room{min-height:0}.main-screen-panel-area{flex-direction:column;justify-content:center;display:flex}@media (orientation:portrait),(width<=900px){.main-screen{grid-template-rows:minmax(260px,46vh) auto;grid-template-columns:1fr}}.modal-overlay{padding:var(--space-5);z-index:50;background:#3b342a59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{text-align:center;width:min(420px,100%)}.modal-card--levelup{background:linear-gradient(180deg, var(--color-bg-surface), var(--color-bg-surface-alt))}.levelup-badge{padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-ink);margin-bottom:var(--space-3);animation:levelup-pop .9s var(--ease-standard);font-weight:800;display:inline-block}@keyframes levelup-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}.main-screen[data-reduced-motion=true] .levelup-badge{animation:none}.modal-title{font-size:var(--font-size-xl);margin:var(--space-2) 0 var(--space-4);font-weight:800}.modal-text{color:var(--color-ink-soft);margin-bottom:var(--space-5)}.modal-actions{gap:var(--space-3);display:flex}.modal-btn{flex:1}.modal-btn-wide{width:100%}.settings-screen{min-height:100dvh;padding:var(--space-5);gap:var(--space-4);flex-direction:column;max-width:640px;margin:0 auto;display:flex}.settings-header{align-items:center;gap:var(--space-4);margin-bottom:var(--space-2);display:flex}.settings-title{font-size:var(--font-size-lg);font-weight:800}.settings-section{gap:var(--space-3);flex-direction:column;display:flex}.settings-row{gap:var(--space-3);display:flex}.settings-row .onboarding-input{margin-bottom:0}.settings-toggle-row{justify-content:space-between;align-items:center;font-weight:600;display:flex}.settings-toggle-row input{width:24px;height:24px}.settings-field{justify-content:space-between;align-items:center;gap:var(--space-3);font-weight:600;display:flex}.settings-select{height:var(--touch-target);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:0 var(--space-3);background:var(--color-bg-canvas);font-size:var(--font-size-sm)}
