:root{--bg: #FAFAF8;--surface: #FFFFFF;--border: rgba(0, 0, 0, .08);--border-md: rgba(0, 0, 0, .13);--text: #1A1A18;--text-secondary: #6B6B63;--text-hint: #9B9B93;--teal: #1D9E75;--teal-light: #E1F5EE;--teal-border: #5DCAA5;--coral: #D85A30;--coral-light: #FAECE7;--green-light: #EAF3DE;--green-dark: #27500A;--amber-light: #FAEEDA;--amber-dark: #633806;--blue-light: #E6F1FB;--blue-dark: #0C447C;--font-story: Georgia, "Times New Roman", serif;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, sans-serif;--r-sm: 8px;--r-md: 12px;--r-lg: 16px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);font-family:var(--font-ui);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;overscroll-behavior-y:contain}#root{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:1.5rem 1rem 3rem}.bookshelf-container{width:100%;max-width:680px;margin:0 auto;padding:1rem 0 3rem}.bookshelf-header{text-align:center;margin-bottom:2rem;padding:0 1rem}.bookshelf-title{font-family:var(--font-story);font-size:32px;font-weight:400;color:var(--text);margin:0 0 .375rem;letter-spacing:-.01em}.bookshelf-sub{font-size:15px;color:var(--text-secondary);margin:0}.bookshelf-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;padding:0 .5rem}@media (min-width: 500px){.bookshelf-grid{grid-template-columns:repeat(3,1fr)}}.book-card{display:flex;flex-direction:column;background:var(--surface);border:.5px solid var(--border);border-radius:var(--r-lg);overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s;text-align:left;font-family:var(--font-ui);padding:0;-webkit-tap-highlight-color:transparent}.book-card:hover{transform:translateY(-3px)}.book-card:active{transform:scale(.97)}.book-cover{width:100%;aspect-ratio:3 / 4;overflow:hidden;flex-shrink:0;position:relative}.illustration-panel{width:100%;height:160px;border-radius:var(--r-md);overflow:hidden;margin:.75rem 0}.illustration-img{width:100%;height:100%;object-fit:cover;display:block}.illustration-placeholder{width:100%;height:100%;background:#f0efea;border-radius:var(--r-md)}.illustration-placeholder.loading{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.coming-soon-badge{position:absolute;top:10px;right:10px;background:#0000008c;color:#fff;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:var(--r-sm)}.book-card.coming-soon{opacity:.8;cursor:default}.book-info{padding:.75rem;flex:1}.book-title{font-size:13px;font-weight:600;color:#fff;margin:0 0 4px;line-height:1.3}.book-teaser{font-size:11px;color:#ffffffb3;margin:0 0 8px;line-height:1.45}.book-age{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#ffffff80}.create-card .book-info{background:#f0faf7}.create-info .book-title{color:#0f6e56}.create-info .book-teaser{color:var(--text-secondary)}.create-info .book-age{color:var(--text-hint)}.back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;font-family:var(--font-ui);font-size:14px;color:var(--text-secondary);cursor:pointer;padding:.75rem 1rem;margin-bottom:.25rem;border-radius:var(--r-sm);transition:color .15s,background .15s;-webkit-tap-highlight-color:transparent}.back-btn:hover{color:var(--text);background:var(--color-background-secondary, #F5F5F3)}.game-container{width:100%;max-width:600px}.card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--r-lg);padding:1.5rem;margin-bottom:.75rem}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-hint);margin-bottom:1rem}.story-text{font-family:var(--font-story);font-size:19px;line-height:1.95;color:var(--text)}.story-text p{margin-bottom:.6em}.story-text p:last-child{margin-bottom:0}.story-word{cursor:pointer;border-radius:3px;padding:1px 2px;margin:0 -2px;transition:background .1s;display:inline;-webkit-tap-highlight-color:transparent}.story-word:hover{background:var(--teal-light)}.story-word.stretch{border-bottom:1.5px dotted var(--teal-border)}.story-word.speaking{background:var(--teal-light)}.word-tooltip{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:var(--surface);border:.5px solid var(--border-md);border-radius:var(--r-md);padding:1rem 1.25rem;max-width:340px;width:calc(100% - 2rem);box-shadow:0 8px 32px #0000001a;z-index:200;display:flex;align-items:flex-start;gap:.75rem;animation:tooltip-in .15s ease}@keyframes tooltip-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.word-tooltip-word{font-family:var(--font-story);font-size:17px;font-weight:600;margin-bottom:5px}.word-tooltip-def{font-size:14px;color:var(--text-secondary);line-height:1.55}.word-tooltip-close{background:none;border:none;cursor:pointer;color:var(--text-hint);font-size:20px;line-height:1;padding:0;flex-shrink:0;margin-top:-2px}.btn-timer-wrap{position:relative;margin-top:1.5rem;border-radius:var(--r-sm);overflow:hidden}.btn-timer-fill{position:absolute;top:0;left:0;height:100%;background:var(--teal-light);border-radius:var(--r-sm);transition:width .03s linear;pointer-events:none;z-index:0}.btn-continue{position:relative;z-index:1;display:block;width:100%;padding:.9rem 1rem;background:var(--surface);border:.5px solid var(--border-md);border-radius:var(--r-sm);font-family:var(--font-ui);font-size:15px;font-weight:500;color:var(--text);cursor:pointer;text-align:center;transition:background .15s,transform .1s,opacity .2s}.btn-continue:hover:not(.locked){background:#f5f5f3}.btn-continue:active:not(.locked){transform:scale(.98)}.btn-continue.locked{opacity:.45;cursor:default;pointer-events:none}.btn-continue.green{border-color:var(--teal-border);color:var(--teal)}.reading-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.page-indicator{font-size:12px;font-weight:500;color:var(--text-hint);flex-shrink:0}.page-dots{display:flex;justify-content:center;gap:6px;margin-top:1.25rem}.page-dot{width:6px;height:6px;border-radius:50%;background:#d3d1c7;transition:background .2s}.page-dot.active{background:var(--teal)}.inline-choices{margin-top:1.5rem;border-top:.5px solid var(--border);padding-top:1.25rem}.inline-choices-prompt{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-hint);margin-bottom:.875rem}.choices{display:flex;flex-direction:column;gap:.625rem;margin-top:.25rem}.choice-card{display:flex;align-items:center;gap:1rem;width:100%;background:var(--surface);border:.5px solid var(--border-md);border-radius:var(--r-md);padding:.875rem 1rem;text-align:left;cursor:pointer;transition:background .15s,transform .1s;font-family:var(--font-ui);-webkit-tap-highlight-color:transparent}.choice-card:hover{background:#f7f7f5}.choice-card:active{transform:scale(.98)}.choice-icon-wrap{width:52px;height:52px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.choice-text{flex:1;min-width:0}.choice-label{font-size:16px;font-weight:600;color:var(--text);display:block;margin-bottom:4px}.choice-sub{font-size:13px;color:var(--text-secondary);display:block;line-height:1.5}.challenge-banner{border-radius:var(--r-md);padding:.875rem 1rem;margin-bottom:.75rem;display:flex;align-items:flex-start;gap:.875rem}.challenge-banner.teal{background:var(--teal-light);border:.5px solid var(--teal-border)}.challenge-banner.coral{background:var(--coral-light);border:.5px solid var(--coral)}.challenge-icon{flex-shrink:0;margin-top:1px}.challenge-title{font-size:13px;font-weight:600;margin-bottom:2px}.challenge-banner.teal .challenge-title{color:#0f6e56}.challenge-banner.coral .challenge-title{color:#993c1d}.challenge-sub{font-size:12px;color:var(--text-secondary);line-height:1.5}.game-stats{display:flex;justify-content:space-between;font-size:14px;color:var(--text-secondary);margin-bottom:.75rem}.game-stats strong{color:var(--text)}.progress-wrap{height:8px;background:#ededea;border-radius:4px;overflow:hidden;margin-bottom:1.25rem}.progress-fill{height:100%;border-radius:4px;transition:width .15s}.progress-fill.teal{background:var(--teal)}.progress-fill.coral{background:var(--coral)}.game-msg{text-align:center;font-size:14px;color:var(--text-secondary);min-height:22px;margin-top:1rem}.wam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:300px;margin:0 auto}.wam-cell{aspect-ratio:1;border-radius:var(--r-md);border:.5px solid var(--border);background:#f5f5f3;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s,border-color .1s;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.wam-cell.alien{background:var(--teal-light);border-color:var(--teal-border)}.wam-cell.hit{background:var(--green-light);border-color:#3b6d11}.wam-cell.miss{background:var(--coral-light);border-color:var(--coral)}.sprint-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:148px;height:148px;border-radius:50%;border:1.5px solid var(--border-md);background:var(--surface);cursor:pointer;margin:0 auto;font-family:var(--font-ui);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:transform .08s,background .1s}.sprint-btn:active{transform:scale(.91);background:#f5f5f3}.sprint-btn.done{opacity:.4;cursor:default;pointer-events:none}.sprint-label{font-size:22px;font-weight:600}.sprint-sub{font-size:11px;color:var(--text-hint);margin-top:4px}.result-badge{display:inline-block;padding:3px 14px;border-radius:var(--r-sm);font-size:12px;font-weight:600;margin-bottom:1rem}.result-badge.win{background:var(--green-light);color:var(--green-dark)}.result-badge.lose{background:var(--amber-light);color:var(--amber-dark)}.result-badge.escape{background:var(--blue-light);color:var(--blue-dark)}
