.app.loading{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;text-align:center}.app.login-screen{display:flex;justify-content:center;align-items:center;min-height:100vh}.login-container{text-align:center;padding:2rem;background:#ffffff0d;border-radius:16px;width:100%;max-width:320px}.login-container h1{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#f5f5f6,#bdbdc2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 .25rem}.login-subtitle{color:#ffffff80;margin:0 0 2rem;font-size:1rem}.login-form{display:flex;flex-direction:column;gap:1rem}.form-group input{width:100%;padding:.75rem 1rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#ffffff0d;color:#fff;font-size:1rem;transition:border-color .2s,background .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#d0d0d5;background:#ffffff14}.form-group input::placeholder{color:#fff6}.form-group input:disabled{opacity:.6;cursor:not-allowed}.auth-error{padding:.75rem;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fffc;font-size:.875rem}.login-button{padding:.75rem 1.5rem;border:none;border-radius:8px;background:linear-gradient(135deg,#f0f0f2,#b8b8be);color:#111113;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #ffffff40}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.app{display:flex;flex-direction:column;min-height:100vh}.kid-ui{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;padding:3rem 1.5rem 2rem;min-height:60vh}.gear-button{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border-radius:50%;border:none;background:#ffffff14;color:#ffffff59;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.gear-button:hover{background:#ffffff24;color:#fff9}.story-titles{text-align:center;display:flex;flex-direction:column;gap:.35rem}.book-title{font-size:clamp(1.25rem,4vw,1.75rem);font-weight:600;color:#ffffffe6}.story-title-row{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;flex-wrap:wrap}.story-title{font-size:clamp(1rem,3vw,1.375rem);font-weight:400;color:#ffffff8c}.story-count{padding:.12rem .45rem .16rem;border-radius:999px;background:#ffffff14;color:#ffffff80;font-size:clamp(.72rem,2.2vw,.875rem);font-variant-numeric:tabular-nums;letter-spacing:.03em;line-height:1.2}.button-row{display:flex;align-items:center;justify-content:center;gap:1.25rem}.hold-to-talk-button{width:min(100%,340px);min-height:76px;padding:.9rem 1.6rem;border:none;border-radius:999px;cursor:pointer;font-size:clamp(1.1rem,3vw,1.35rem);font-weight:700;letter-spacing:.01em;color:#fff;background:linear-gradient(135deg,#ffffff3d,#ffffff14);box-shadow:0 0 28px #ffffff2e;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.hold-to-talk-button:hover:not(:disabled){background:linear-gradient(135deg,#ffffff4d,#ffffff1f);box-shadow:0 0 34px #ffffff42}.hold-to-talk-button:active:not(:disabled),.hold-to-talk-button.capturing{transform:scale(.98);background:linear-gradient(135deg,#ffffff61,#ffffff2e);box-shadow:0 0 40px #ffffff57}.hold-to-talk-button:disabled{cursor:not-allowed;opacity:.45}.control-button{width:72px;height:72px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;background:linear-gradient(135deg,#ffffff1f,#ffffff0a);color:#fffc;box-shadow:0 0 16px #ffffff1f;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.control-button:hover:not(:disabled){background:linear-gradient(135deg,#fff3,#ffffff14);box-shadow:0 0 28px #ffffff40;transform:scale(1.05)}.control-button:active:not(:disabled){transform:scale(.95)}.control-button:disabled{cursor:not-allowed;opacity:.35}.help-button.help-active{background:radial-gradient(circle,#ffffff40,#ffffff14);box-shadow:0 0 24px #ffffff59}.mic-button{animation:none}.mic-button:disabled{animation:none;opacity:.35;filter:saturate(.55)}.mic-button.mic-on:disabled,.mic-button.mic-loading:disabled{box-shadow:0 0 16px #ffffff1f}.mic-button.mic-on{width:auto;min-width:110px;height:64px;padding:0 1.5rem;border-radius:32px;gap:.5rem;background:radial-gradient(circle,#ffffff47,#ffffff1a);color:#fff;box-shadow:0 0 28px #ffffff73;animation:gentle-pulse 3s ease-in-out infinite}.mic-button.mic-on:hover{background:radial-gradient(circle,#ffffff5c,#ffffff29);box-shadow:0 0 36px #ffffff8c}.mic-button-text{font-size:1rem;font-weight:600;white-space:nowrap}.mic-button.mic-loading{color:#ffffff4d;animation:none}.mic-spinner{animation:spin 1s linear infinite}.activity-label{font-size:1rem;color:#ffffff73;letter-spacing:.03em}.child-voice-error{max-width:420px;padding:.75rem 1rem;border-radius:16px;background:#ffffff14;color:#ffffffd1;font-size:.95rem;text-align:center;line-height:1.4}.parent-panel{border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:1rem;padding:1rem 1rem 2rem}.parent-panel-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.parent-username{font-size:.875rem;color:#ffffff80}.parent-progress{font-size:.875rem;color:#ffffff59;flex:1}.logout-button{padding:.25rem .75rem;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:transparent;color:#fff6;font-size:.8rem;cursor:pointer;transition:all .2s}.logout-button:hover{border-color:#ffffff4d;color:#ffffffb3}.mic-mode-row{display:flex;align-items:center;gap:.5rem}.mic-mode-label{font-size:.8rem;color:#fff6}.mic-mode-button{padding:.25rem .75rem;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:transparent;color:#fff6;font-size:.8rem;cursor:pointer;transition:all .2s}.mic-mode-button:hover{border-color:#ffffff4d;color:#ffffffb3}.mic-mode-button.active{border-color:#ffffff80;color:#ffffffe6;background:#ffffff14}.mic-mode-note{font-size:.7rem;color:#ffc86499;margin-left:.25rem}.app-version{font-size:.65rem;color:#ffffff40;margin-left:auto}.transcript{background:#ffffff0a;border-radius:10px;padding:1rem;max-height:250px;overflow-y:auto}.transcript .messages{display:flex;flex-direction:column;gap:.75rem}.transcript .message{padding:.6rem .875rem;border-radius:8px;line-height:1.5;font-size:.9rem}.transcript .message.user{background:#ffffff0d;border-left:3px solid rgba(255,255,255,.3)}.transcript .message.assistant{background:#ffffff12;border-left:3px solid rgba(255,255,255,.5)}.transcript .message.assistant.streaming{animation:pulse 1.5s infinite}.transcript .message.error{background:#ffffff08;border-left:3px solid rgba(255,255,255,.2)}.transcript .message strong{display:block;margin-bottom:.2rem;font-size:.8rem;opacity:.6}.copy-logs-button{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff9;border-radius:6px;padding:.3rem .6rem;font-size:.7rem;cursor:pointer;margin-bottom:.5rem;align-self:flex-start}.copy-logs-button:active{background:#ffffff40}.log-messages{background:#00000040;border-radius:10px;padding:.75rem;max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:.2rem;font-family:Consolas,Monaco,Courier New,monospace;font-size:.72rem}.log-entry{display:flex;gap:.5rem;padding:.2rem .4rem;border-radius:4px}.log-entry .timestamp{color:#ffffff40;flex-shrink:0}.log-entry .type{font-weight:600;flex-shrink:0;min-width:65px}.log-entry.ws .type{color:#60a5fa}.log-entry.server .type{color:#34d399}.log-entry.init .type{color:#fbbf24}.log-entry.story .type{color:#a78bfa}.log-entry.vad .type{color:#8b5cf6}.log-entry.audio .type{color:#fb923c}.log-entry.latency .type{color:#22d3ee}.log-entry.error .type{color:#f87171}.log-entry.system .type{color:#94a3b8}.log-entry .message{color:#fff9;word-break:break-word}.transcript::-webkit-scrollbar,.log-messages::-webkit-scrollbar{width:6px}.transcript::-webkit-scrollbar-track,.log-messages::-webkit-scrollbar-track{background:#ffffff0a;border-radius:3px}.transcript::-webkit-scrollbar-thumb,.log-messages::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes gentle-pulse{0%,to{box-shadow:0 0 24px #fff3;transform:scale(1)}50%{box-shadow:0 0 36px #ffffff59;transform:scale(1.03)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app.parent-route{padding:2rem 1rem 3rem}.parent-dashboard{width:min(860px,100%);margin:0 auto;display:flex;flex-direction:column;gap:1rem}.parent-dashboard-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.parent-dashboard-header h1{margin:0}.parent-dashboard-subtitle{margin:.35rem 0 0;color:#ffffff8c}.parent-dashboard-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1rem;display:flex;flex-direction:column;gap:.9rem}.parent-dashboard-card h2{margin:0}.parent-duration-label{font-size:.95rem;color:#ffffffb8}.parent-duration-input,.pin-input{width:100%;padding:.75rem 1rem;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#fff;font-size:1rem}.pin-input{-webkit-text-security:disc}.parent-duration-input::-webkit-inner-spin-button,.parent-duration-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.parent-duration-input{-moz-appearance:textfield}.child-list{display:flex;flex-direction:column;gap:.75rem}.child-card{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;padding:.9rem 1rem;border-radius:12px;background:#ffffff0a}.child-name{font-size:1.05rem;font-weight:600}.child-meta{color:#ffffff8c;font-size:.9rem}.start-child-button{min-width:230px}.exit-button{position:absolute;top:1rem;left:1rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#ffffff14;color:#ffffffd9;padding:.55rem 1rem;font-size:.95rem;cursor:pointer}.session-expired-overlay,.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000009e;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:20}.session-expired-card,.pin-modal{width:min(420px,100%);background:#18181b;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:1.25rem;display:flex;flex-direction:column;gap:.9rem}.session-expired-card h2,.pin-modal h2{margin:0}.session-expired-card p,.pin-modal p{margin:0;color:#ffffffb3;line-height:1.5}.session-expired-exit{width:100%}.pin-actions{display:flex;gap:.75rem;margin-top:.75rem}.pin-cancel-button{min-width:96px}.pin-login-link{align-self:center;border:none;background:transparent;color:#ffffffb3;cursor:pointer;text-decoration:underline}@media(max-width:640px){.child-card{align-items:stretch}.start-child-button{width:100%;min-width:0}.pin-actions{flex-direction:column}}.app.landing-page{position:relative;overflow:hidden;background:radial-gradient(circle at top left,rgba(242,193,105,.18),transparent 36%),radial-gradient(circle at bottom right,rgba(92,139,255,.16),transparent 32%)}.landing-shell{width:min(1100px,100%);margin:0 auto;padding:clamp(2rem,5vw,4rem) 1.25rem 3rem;display:flex;flex-direction:column;gap:1.5rem;flex:1}.landing-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);gap:1.25rem;align-items:stretch}.landing-copy,.landing-actions,.landing-placeholder-card{border-radius:24px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.landing-copy{padding:clamp(2rem,4vw,3rem)}.landing-eyebrow{font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:#ffffff8c;margin-bottom:.9rem}.landing-copy h1{margin:0;font-size:clamp(3.2rem,10vw,6rem);line-height:.95;letter-spacing:-.05em}.landing-lede{margin:1rem 0 0;max-width:32rem;font-size:clamp(1rem,2.4vw,1.2rem);line-height:1.6;color:#ffffffb8}.landing-actions{padding:clamp(1.5rem,3vw,2rem);display:flex;flex-direction:column;justify-content:center;gap:1rem}.landing-cta{width:100%;min-height:92px;border:none;border-radius:22px;background:linear-gradient(135deg,#f7e1b0,#f1b777);color:#1a1610;font-size:clamp(1.15rem,2.8vw,1.5rem);font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 18px 44px #f1b7772e}.landing-cta:hover{transform:translateY(-2px);box-shadow:0 24px 54px #f1b77742}.landing-note{margin:0;color:#ffffff94;line-height:1.5}.landing-placeholder-card{padding:1.35rem 1.5rem}.landing-placeholder-card h2{margin:0 0 .6rem;font-size:1.1rem}.landing-placeholder-card p{margin:0;line-height:1.65;color:#ffffffb3}@media(max-width:800px){.landing-hero{grid-template-columns:1fr}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#0f0f10,#1a1a1c,#26262a);min-height:100vh;color:#fff}#root{min-height:100vh;display:flex;flex-direction:column}
