:root{--ink: #2b2118;--ink-soft: #5b4a3a;--paper: #f7efe0;--paper-edge: #e5d8c2;--accent: #c8572b;--accent-ink: #fff5ea;--shelf-bg: #171426;--hud-bg: rgba(20, 16, 34, .78);--hud-ink: #f3ecff;--font-body: "Segoe UI", "Noto Sans Tamil", "Nirmala UI", system-ui, sans-serif;--font-display: Georgia, "Times New Roman", "Noto Serif Tamil", serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--shelf-bg);color:var(--hud-ink);font-family:var(--font-body);overflow:hidden}#app{position:fixed;inset:0}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}#shelf-hud{position:absolute;inset:0;pointer-events:none}.shelf-title{position:absolute;top:6vh;left:0;right:0;text-align:center;font-family:var(--font-display);font-size:clamp(1.4rem,3.2vw,2.4rem);letter-spacing:.04em;color:#f6e9c9;text-shadow:0 2px 18px rgba(0,0,0,.5)}.shelf-title small{display:block;font-family:var(--font-body);font-size:max(.5em,.75rem);letter-spacing:.2em;text-transform:uppercase;opacity:.7;margin-top:.4em}.shelf-copyright{position:absolute;left:0;right:0;bottom:max(8px,env(safe-area-inset-bottom));text-align:center;font-size:.8rem;letter-spacing:.04em;color:#f6e9c98c;pointer-events:none}.shelf-copyright a{display:inline-block;padding:12px 6px;color:#f6e9c9cc;text-decoration:none;pointer-events:auto}.shelf-copyright a:hover,.shelf-copyright a:focus-visible{color:#f6e9c9}.shelf-copyright a:focus-visible{outline:2px solid #f6e9c9;outline-offset:2px;border-radius:3px}.cover-btn{position:absolute;pointer-events:auto;background:transparent;border:0;color:transparent;cursor:pointer;padding:0}.cover-btn:focus-visible{outline:none}.cover-outlines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;transition:opacity .2s ease}.cover-outline{fill:none;stroke:#ffe2a0e6;stroke-width:2;stroke-linejoin:round;opacity:0;transition:opacity .16s ease;filter:drop-shadow(0 0 6px rgba(255,200,110,.55))}.cover-outline.is-active{opacity:1}.cover-caption{position:absolute;pointer-events:none;text-align:center;transform:translate(-50%);width:max-content;max-width:40vw}.cover-caption b{display:block;font-family:var(--font-display);font-size:clamp(1rem,2vw,1.4rem);color:#fbf3df}.cover-caption span{font-size:.8rem;opacity:.7}.shelf-resume{position:absolute;left:50%;bottom:max(11vh,calc(env(safe-area-inset-bottom) + 7vh));transform:translate(-50%);z-index:3;pointer-events:auto;display:flex;align-items:center;gap:.8em;max-width:min(92vw,34rem);padding:.6em .7em .6em 1.1em;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:var(--hud-bg);backdrop-filter:blur(10px);box-shadow:0 6px 24px #0006;transition:opacity .25s ease}.shelf-resume[hidden]{display:none}.shelf-resume-text{min-width:0}.shelf-resume-text small{display:block;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;opacity:.6}.shelf-resume-text b,.shelf-resume-text span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelf-resume-text b{font-family:var(--font-display);font-size:1.05rem;color:#fbf3df}.shelf-resume-text span{font-size:.78rem;opacity:.65}.shelf-resume .hud-btn{flex:0 0 auto}.shelf-resume .hud-btn.icon{padding:.45em .7em;line-height:1}@media(max-width:720px){.shelf-resume{bottom:max(20vh,calc(env(safe-area-inset-bottom) + 16vh));gap:.5em;padding:.5em .5em .5em .9em}.shelf-resume-text b{font-size:.95rem}.shelf-resume-text span{display:none}}#selector-overlay{position:absolute;inset:0;pointer-events:none}.page-panel{position:absolute;pointer-events:auto;color-scheme:light;color:var(--ink);padding:clamp(10px,2.2vw,28px);display:flex;flex-direction:column;gap:.7em;font-size:clamp(.8rem,1.25vw,1.05rem);overflow:auto}.page-single{gap:.4em}.page-half{position:static;padding:0;overflow:visible;height:auto;width:auto}.page-half+.page-half{border-top:1px solid var(--paper-edge);padding-top:.7em}.page-panel h2{font-family:var(--font-display);font-weight:600;font-size:1.5em;margin:0 0 .2em;color:var(--ink)}.page-panel p{margin:0;color:var(--ink-soft);line-height:1.45}.page-panel .disclaimer{margin-top:auto;font-size:.75em;opacity:.8}.page-panel .disclaimer h3{margin:0 0 .2em;font-size:1em;font-weight:700;color:var(--ink)}.page-panel .disclaimer p{font-style:italic}.radio-list{display:flex;flex-direction:column;gap:.5em;margin:0;padding:0;border:0}.radio-list label{display:flex;align-items:center;gap:.6em;padding:.55em .8em;border:1px solid var(--paper-edge);border-radius:8px;background:#ffffff59;cursor:pointer}.radio-list label:hover{border-color:#c8572b73}.radio-list label:has(input:checked){border-color:var(--accent);background:#c8572b1f}.radio-list input[type=radio]{appearance:none;-webkit-appearance:none;flex:none;width:1.1em;height:1.1em;margin:0;border:2px solid var(--ink-soft);border-radius:50%;background:#fffaf0;display:grid;place-content:center;cursor:pointer;transition:border-color .14s ease}.radio-list input[type=radio]:before{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--accent);transform:scale(0);transition:transform .14s ease}.radio-list input[type=radio]:hover{border-color:var(--accent)}.radio-list input[type=radio]:checked{border-color:var(--accent)}.radio-list input[type=radio]:checked:before{transform:scale(1)}.radio-list input[type=radio]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field{display:flex;flex-direction:column;gap:.35em}.field label{font-size:.8em;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}select{font:inherit;font-family:var(--font-body);padding:.55em .7em;border:1px solid var(--paper-edge);border-radius:8px;background:#fffaf0;color:var(--ink);max-width:100%}select:disabled{opacity:.55}.btn{font:inherit;font-weight:600;padding:.7em 1.2em;border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);cursor:pointer;display:inline-flex;align-items:center;gap:.6em;justify-content:center;transition:transform .12s ease,opacity .12s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--paper-edge)}.spinner{width:1em;height:1em;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.msg{min-height:1.4em;font-size:.9em;line-height:1.4}.msg[data-kind=warn]{color:#8a5a00}.msg[data-kind=error]{color:#a4271b}.msg[data-kind=info]{color:var(--ink-soft)}.msg .btn{margin-left:.5em;padding:.3em .8em;font-size:.85em}#reader-hud{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between}#reader-hud[hidden],#selector-overlay[hidden]{display:none}.reader-top,.reader-bottom{pointer-events:auto;background:var(--hud-bg);backdrop-filter:blur(10px);color:var(--hud-ink)}.reader-top{display:flex;align-items:center;gap:1em;padding:.6em 1.2em;font-size:.95rem}.reader-top .title{font-family:var(--font-display);font-size:1.15em;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-top .story-index{opacity:.8;white-space:nowrap}.reader-bottom{padding:.7em 1.2em .8em}.reader-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5em}.reader-controls .spacer{flex:1}.hud-btn{font:inherit;padding:.45em .9em;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:var(--hud-ink);cursor:pointer}.hud-btn:hover:not(:disabled){background:#ffffff29}.hud-btn:disabled{opacity:.35;cursor:default}.hud-btn.primary{background:var(--accent);border-color:transparent}.hud-btn.is-on{background:#ffc47833;border-color:#ffc478bf;color:#ffe6c2}.hud-btn.is-on:hover:not(:disabled){background:#ffc4784d}.page-indicator{opacity:.75;font-size:.85rem}#toast{position:absolute;left:50%;bottom:4vh;transform:translate(-50%);background:#000000b3;color:#fff;padding:.6em 1.2em;border-radius:999px;font-size:.9rem;opacity:0;transition:opacity .2s ease;pointer-events:none;max-width:min(90vw,40rem);text-align:center}#toast.show{opacity:1}#reader-hud:not([hidden])~#toast{top:4.5rem;bottom:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:720px){.reader-top{padding:.4em .6em;gap:.5em;font-size:.85rem}.reader-bottom{padding:.5em .7em .7em}.hud-btn{padding:.4em .7em;font-size:.85rem;min-height:44px}.hud-btn.icon{min-width:44px}.hud-range{height:44px}.hud-select{min-height:44px}.reader-controls{gap:.35em}.page-panel{font-size:.85rem;padding:10px 12px}.page-panel h2{font-size:1.25em}.page-panel select,.page-panel .btn{min-height:44px}.shelf-title{top:3vh}.shelf-copyright .rights{display:none}.cover-caption b{font-size:.95rem}.cover-caption span{display:none}#toast{bottom:12vh;font-size:.8rem}}.hud-back{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));z-index:3;pointer-events:auto;background:var(--hud-bg);backdrop-filter:blur(10px);font-size:.95rem;padding:.5em 1.1em;box-shadow:0 4px 18px #00000059;transition:opacity .2s ease}#story-hud{position:absolute;inset:0;pointer-events:none}#story-hud[hidden]{display:none}.story-heading{position:absolute;top:3.5vh;left:0;right:0;padding:0 6rem;text-align:center;font-family:var(--font-display);font-size:clamp(1.15rem,2.6vw,2rem);letter-spacing:.04em;color:#f6e9c9;text-shadow:0 2px 18px rgba(0,0,0,.5);transition:opacity .2s ease}.story-heading small{display:block;font-family:var(--font-body);font-size:max(.5em,.72rem);letter-spacing:.12em;text-transform:uppercase;opacity:.7;margin-top:.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#story-hud .cover-btn{transition:opacity .2s ease}#story-hud[data-mode=pick] .cover-btn:after{content:"Read";position:absolute;left:50%;top:-1.9em;transform:translate(-50%);font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:#f6e9c9;opacity:0;transition:opacity .16s ease}#story-hud[data-mode=pick] .cover-btn:hover:after,#story-hud[data-mode=pick] .cover-btn:focus-visible:after{opacity:.9}.story-caption{position:absolute;transform:translate(-50%);pointer-events:none;background:#fff9ebf0;color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:clamp(.72rem,1.25vw,1.05rem);line-height:1.2;padding:.34em .95em;border-radius:999px;border:1px solid rgba(120,80,40,.25);box-shadow:0 4px 14px #00000059;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease}.story-caption.loading{color:var(--accent)}.story-caption .spinner{display:inline-block;vertical-align:-.15em;margin-right:.45em;border-color:#c8572b4d;border-top-color:var(--accent)}@media(max-width:720px){.hud-back{font-size:.85rem;padding:.4em .8em}.story-heading{top:calc(max(14px,env(safe-area-inset-top)) + 52px);padding:0 1rem}.story-heading small{white-space:normal}.story-caption{font-size:.7rem;padding:.25em .6em}}.hud-select,.hud-range{font:inherit;color-scheme:dark;max-width:11rem}.hud-select{padding:.35em .5em;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:var(--hud-ink);font-size:.85rem}.hud-select[hidden]{display:none}.hud-range{width:6.5rem;accent-color:var(--accent);cursor:pointer}.hud-btn.icon{padding:.45em .6em;line-height:1}.sticker-badge:empty{display:none}.sticker-badge{font-size:.9em;padding:.15em .6em;border-radius:999px;background:#ffd86b2e;color:#ffd86b;white-space:nowrap}.celebration{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden;transition:opacity .5s ease}.celebration.leaving{opacity:0}.celebration-card{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.25em;padding:1.1em 1.8em;border-radius:20px;background:#fff9ebf5;color:var(--ink);box-shadow:0 12px 40px #00000073;text-align:center;animation:pop-card .52s cubic-bezier(.2,1.5,.4,1) both}.celebration-card b{font-family:var(--font-display);font-size:clamp(1.1rem,2.4vw,1.6rem)}.celebration-card span{font-size:.9rem;color:var(--ink-soft)}.celebration-face{font-size:clamp(2.4rem,6vw,3.6rem);line-height:1}@keyframes pop-card{0%{transform:translate(-50%,-50%) scale(.6);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.confetto{position:absolute;top:-6%;width:10px;height:14px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:both}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(115vh) rotate(720deg);opacity:.1}}@media(prefers-reduced-motion:reduce){.celebration-card{animation:none}.confetto{display:none}}.settings-dialog{max-width:420px;width:calc(100vw - 2.5rem);max-height:calc(100vh - 4rem);overflow-y:auto;border:none;border-radius:14px;padding:1.5rem;background:var(--hud-bg);color:var(--hud-ink);backdrop-filter:blur(10px)}.settings-dialog::backdrop{background:#0a081499}.settings-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.settings-dialog h2{margin:0}.settings-dialog-close{flex:none;width:2em;height:2em;display:flex;align-items:center;justify-content:center;border:1px solid rgba(246,233,201,.3);border-radius:999px;background:none;color:var(--hud-ink);font-size:1.1rem;line-height:1;cursor:pointer}.settings-dialog-close:hover{border-color:var(--accent)}.settings-dialog-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings-dialog fieldset{border:none;padding:0;margin:0 0 1rem}.settings-dialog label:has(input:disabled){opacity:.35;cursor:not-allowed;border-style:dashed}.settings-dialog label:has(input:disabled):hover{border-color:#f6e9c940}.settings-dialog fieldset[hidden]{display:none}.settings-dialog legend{font-weight:600;margin-bottom:.4em;padding:0}.checkbox-list{display:flex;flex-wrap:wrap;gap:.5em}.checkbox-list label{display:flex;align-items:center;gap:.4em;padding:.3em .6em;border:1px solid rgba(246,233,201,.25);border-radius:999px;cursor:pointer}.checkbox-list label:has(input:checked){border-color:var(--accent);background:#c8572b1f}.settings-choice-row{display:flex;flex-wrap:wrap;gap:.5em;margin:0;padding:0;border:0}.settings-choice-row input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.settings-choice-row label{position:relative;flex:1 1 auto;display:flex;align-items:center;justify-content:center;text-align:center;padding:.5em .8em;border:1px solid rgba(246,233,201,.3);border-radius:8px;cursor:pointer;font-size:.92em;line-height:1.25;color:var(--hud-ink);transition:background .14s ease,border-color .14s ease,color .14s ease}.settings-choice-row label:hover{border-color:var(--accent)}.settings-choice-row label:has(input:checked){background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.settings-choice-row label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.shelf-copyright button.settings-link{display:inline-block;padding:12px 6px;color:#f6e9c9cc;background:none;border:none;font:inherit;cursor:pointer;pointer-events:auto}.shelf-copyright button.settings-link:hover,.shelf-copyright button.settings-link:focus-visible{color:#f6e9c9}.shelf-copyright button.settings-link:focus-visible{outline:2px solid #f6e9c9;outline-offset:2px;border-radius:3px}
