:root{--bg:#F4EAD5;--paper:#FBF6E7;--paper-light:#FFFEF5;--ink:#1A1A1A;--accent:#C8442A;--accent-soft:#F0C8A3;--shadow-card:8px 8px 0 var(--ink);--shadow-pop:10px 10px 0 var(--accent);--shadow-sm:4px 4px 0 var(--ink);--shadow-xs:2px 2px 0 var(--ink)}*,:after,:before{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Newsreader,Georgia,Times New Roman,serif;font-size:17px;line-height:1.55;min-height:100vh;min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}[lang=hi] .reader,[lang=hi] body,[lang=mr] .reader,[lang=mr] body{font-family:"Noto Serif Devanagari",Newsreader,Georgia,Times New Roman,serif}[lang=hi] .reader,[lang=mr] .reader{font-size:20px;line-height:1.8}[lang=hi] .word-display,[lang=mr] .word-display{font-family:"Noto Serif Devanagari",Fraunces,Georgia,serif}[lang=hi] .editor textarea,[lang=mr] .editor textarea{font-family:"Noto Serif Devanagari",Newsreader,Georgia,serif}.app{max-width:720px;margin:0 auto;padding:22px 18px 110px}@media (min-width:540px){.app{padding:28px 24px 120px}}@media (min-width:768px){.app{padding:40px 32px 56px}}.header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:16px}.brand h1{font-family:Fraunces,Georgia,serif;font-weight:900;font-size:clamp(28px,7.5vw,44px);line-height:1.05;margin:0;letter-spacing:-.01em}.brand h1 em{font-style:italic;color:var(--accent);font-weight:900}.brand .tag{margin:4px 0 0;font-family:Fraunces,Georgia,serif;font-style:italic;font-size:clamp(12px,3.4vw,15px);opacity:.7}.toolbar{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.lang-switcher,.toolbar{gap:8px;align-items:center}.lang-switcher,.pill{display:inline-flex}.pill{font-family:Fraunces,Georgia,serif;font-weight:900;font-size:clamp(11px,2.6vw,13px);letter-spacing:.12em;text-transform:uppercase;padding:11px 18px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:999px;min-height:42px;touch-action:manipulation;align-items:center;gap:7px;transition:background .15s linear,transform .1s ease}.pill[disabled]{opacity:.5;cursor:not-allowed}@media (hover:hover){.pill:hover:not([disabled]){background:var(--accent-soft)}}.pill:active{transform:scale(.97)}.pill:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.pill.primary{background:var(--accent);color:var(--paper);border-color:var(--ink)}@media (hover:hover){.pill.primary:hover:not([disabled]){background:#b03a23}}.pill .icon{font-size:14px;line-height:1}.rule{height:0;border:0;border-top:2px solid var(--ink);margin:0 0 22px}.editor{border:2px solid var(--ink);background:var(--paper);border-radius:18px;padding:18px;margin-bottom:22px;box-shadow:var(--shadow-card)}@media (min-width:540px){.editor{padding:22px}}.editor h2{font-size:13px;margin:0 0 14px}.editor h2,.editor label{font-family:Fraunces,Georgia,serif;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.editor label{display:block;font-size:11px;margin-bottom:8px}.editor input[type=password],.editor input[type=text],.editor textarea{width:100%;padding:12px 14px;border:2px solid var(--ink);background:var(--bg);font-family:Newsreader,Georgia,serif;font-size:16px;line-height:1.55;color:var(--ink);border-radius:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:box-shadow .12s ease,transform .12s ease,background .12s ease}.editor textarea{resize:vertical;min-height:140px;font-size:17px}.editor input:focus,.editor textarea:focus{outline:none;background:var(--paper-light);box-shadow:var(--shadow-xs);transform:translate(-2px,-2px)}.editor .field{margin-bottom:16px}.editor .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.editor .hint{margin:6px 0 0;font-style:italic;font-size:13px;opacity:.6}.status{padding:12px 16px;border:2px solid var(--ink);border-radius:14px;background:var(--paper);margin-bottom:16px;font-family:Fraunces,Georgia,serif;font-style:italic;font-size:14px;box-shadow:var(--shadow-xs)}.status.ok{background:var(--accent-soft)}.status.err{background:var(--accent);color:var(--paper)}.reader{border:2px solid var(--ink);background:var(--paper);border-radius:22px;padding:26px 24px;box-shadow:var(--shadow-card);font-family:Newsreader,Georgia,serif;font-size:21px;line-height:1.55;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:justify;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}@media (max-width:480px){.reader{padding:22px 20px;font-size:20px;border-radius:20px}}@media (min-width:768px){.reader{padding:36px 34px;font-size:22px;border-radius:24px}}.reader p{margin:0 0 1.1em}.reader p:last-child{margin:0}.word{display:inline-block;padding:2px 4px;margin:0 -1px;cursor:pointer;border-radius:4px;transition:background-color .15s linear,color .15s linear;touch-action:manipulation}@media (hover:hover){.word:hover{background:var(--accent-soft)}}.word:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.word.active{background:var(--accent);color:var(--paper)}.voice-rule{height:0;border:0;border-top:2px dashed var(--ink);margin:26px 0 16px;opacity:.55}.voice-bar{position:-webkit-sticky;position:sticky;bottom:0;background:var(--bg);padding:6px 0 calc(6px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr;grid-gap:12px 18px;gap:12px 18px;z-index:5}@media (min-width:460px){.voice-bar{grid-template-columns:1fr 1fr;align-items:center}}@media (min-width:768px){.voice-bar{position:static;padding:0 0 4px}}.voice-bar .ctl{display:flex;align-items:center;gap:12px;min-width:0}.voice-bar label{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:15px;letter-spacing:.01em;white-space:nowrap}.voice-bar select{flex:1 1;min-width:0;padding:9px 30px 9px 12px;border:2px solid var(--ink);background:var(--paper);font-family:Newsreader,Georgia,serif;font-size:14px;color:var(--ink);border-radius:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 14px) 55%,calc(100% - 9px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;min-height:38px}.voice-bar input[type=range]{flex:1 1;min-width:0;accent-color:var(--accent);height:32px;touch-action:manipulation}.voice-bar .speed-val{font-family:Fraunces,Georgia,serif;font-weight:700;font-size:13px;min-width:44px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.7}.reader-hint{margin:14px 0 0;font-family:Fraunces,Georgia,serif;font-style:italic;text-align:center;font-size:14px;opacity:.55}.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:100;background:rgba(26,26,26,.32);padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.modal,.popup{background:var(--paper);border:2px solid var(--ink);border-radius:22px;box-shadow:var(--shadow-pop);width:min(440px,100%);max-width:100%;position:relative;overflow:hidden;animation:pop .25s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{transform:scale(.7) rotate(-2deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.stripes{height:16px;background:repeating-linear-gradient(45deg,var(--accent) 0 10px,var(--ink) 10px 20px);border-bottom:2px solid var(--ink)}.popup .label{margin:0;padding:22px 24px 0;font-weight:700;font-size:13px;letter-spacing:.18em;text-transform:uppercase;opacity:.55}.popup .label,.popup .word-display{font-family:Fraunces,Georgia,serif;text-align:center}.popup .word-display{font-weight:900;font-size:clamp(38px,12vw,68px);line-height:1.05;padding:8px 22px 12px;letter-spacing:-.02em;word-break:break-word;overflow-wrap:anywhere}.popup .actions{display:flex;justify-content:center;padding:8px 24px 20px}.popup .replay{position:relative;font-family:Fraunces,Georgia,serif;font-weight:900;font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:12px 22px;border:2px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;display:inline-flex;align-items:center;gap:12px;min-height:44px;touch-action:manipulation;border-radius:999px;transition:transform .1s ease,background .15s linear}@media (hover:hover){.popup .replay:hover{background:#2b2b2b}}.popup .replay:active{transform:scale(.97)}.popup .replay:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(200,68,42,.6)}50%{box-shadow:0 0 0 6px rgba(200,68,42,0)}}.popup .progress{height:4px;background:var(--accent);width:100%;transform-origin:left center;animation:shrink 2s linear forwards}@keyframes shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.audio-loader{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;min-height:44px}.audio-loader .loader-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:loader-bounce 1.2s ease-in-out infinite}.audio-loader .loader-dot:nth-child(2){animation-delay:.2s}.audio-loader .loader-dot:nth-child(3){animation-delay:.4s}@keyframes loader-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){.modal,.popup,.popup .replay:before{animation:none}.editor input,.editor textarea,.pill,.word{transition:none}}.user-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:2px solid var(--ink);background:var(--paper);border-radius:999px;font-family:Fraunces,Georgia,serif;font-weight:700;font-size:13px;min-height:42px;box-shadow:var(--shadow-xs)}.user-badge .name{letter-spacing:.01em}.user-badge .streak{background:var(--accent);color:var(--paper);border-radius:999px;padding:2px 10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;letter-spacing:.06em}.user-badge .logout{border:none;background:transparent;font-family:inherit;font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);opacity:.55;cursor:pointer;padding:2px 4px;margin-left:2px}.user-badge .logout:hover{opacity:1}.modal h2{margin:0;padding:22px 24px 0;font-weight:900;font-size:24px;letter-spacing:-.01em}.modal .modal-tag,.modal h2{font-family:Fraunces,Georgia,serif;text-align:center}.modal .modal-tag{margin:4px 0 0;padding:0 24px;font-style:italic;font-size:14px;opacity:.6}.modal .body{padding:18px 24px 22px}.modal .field{margin-bottom:14px}.modal .field label{display:block;font-family:Fraunces,Georgia,serif;font-weight:900;font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}.modal .field input{width:100%;padding:12px 14px;border:2px solid var(--ink);background:var(--bg);font-family:Newsreader,Georgia,serif;font-size:17px;line-height:1.4;color:var(--ink);border-radius:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:box-shadow .12s ease,transform .12s ease,background .12s ease}.modal .field input:focus{outline:none;background:var(--paper-light);box-shadow:var(--shadow-xs);transform:translate(-2px,-2px)}.modal .modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}.modal .modal-actions .pill{flex:1 1;justify-content:center}.modal .toggle-mode{margin:10px 0 0;text-align:center;font-family:Fraunces,Georgia,serif;font-style:italic;font-size:13px;opacity:.85}.modal .toggle-mode button{background:none;border:none;color:var(--accent);font-family:inherit;font-size:inherit;font-style:inherit;cursor:pointer;text-decoration:underline;padding:0}.modal .modal-error{margin:0 0 12px;padding:10px 12px;background:var(--accent);color:var(--paper);border-radius:10px;font-family:Fraunces,Georgia,serif;font-style:italic;font-size:13px}.modal .close-x{position:absolute;top:22px;right:18px;background:none;border:none;cursor:pointer;font-size:22px;line-height:1;font-family:Fraunces,Georgia,serif;font-weight:900;opacity:.6;padding:4px 8px}.modal .close-x:hover{opacity:1}.leaderboard-list{list-style:none;margin:0;padding:0;border:2px solid var(--ink);border-radius:14px;background:var(--bg);overflow:hidden;max-height:50vh;overflow-y:auto}.leaderboard-list li{display:grid;grid-template-columns:42px 1fr auto;align-items:center;grid-gap:10px;gap:10px;padding:10px 14px;border-bottom:1px solid rgba(26,26,26,.15);font-family:Fraunces,Georgia,serif;font-size:15px}.leaderboard-list li:last-child{border-bottom:none}.leaderboard-list li.me{background:var(--accent-soft)}.leaderboard-list .rank{font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.6}.leaderboard-list .who{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-list .pts{font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:var(--ink);color:var(--paper);border-radius:999px;padding:3px 12px;font-size:13px;letter-spacing:.04em;display:inline-flex;gap:8px}.leaderboard-empty{text-align:center;padding:24px 12px;font-family:Fraunces,Georgia,serif;font-style:italic;opacity:.6;list-style:none}