:root{--bg:#0e1729;--panel:#172339;--panel-2:#202e45;--border:#2b3a52;--ink:#f6f8ff;--muted:#a1aec1;--soft:#76859a;--accent:#eaad5b;--accent-ink:#1d1b1a;--red:#ff6a67;--reader:#131d30;--shadow:0 14px 45px #0004;--font-size:19px;color-scheme:dark}
*{box-sizing:border-box}html{height:100%;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);overscroll-behavior:none}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}.hidden{display:none!important}.app{min-height:100dvh;display:flex;flex-direction:column;max-width:980px;margin:auto}.header{height:77px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 29px;border-bottom:1px solid var(--border)}.brand{background:none;color:var(--ink);border:0;display:flex;align-items:center;text-align:left;gap:12px;padding:0}.brand-mark{height:39px;width:39px;border:1.5px solid var(--accent);border-radius:13px;display:grid;place-items:center;color:var(--accent);font-size:24px;font-weight:750;letter-spacing:-3px;padding-right:3px}.brand-mark span{color:var(--red)}.brand-name{font-size:18px;font-weight:750;letter-spacing:-.4px}.brand-name small{display:block;font-size:9px;font-weight:700;letter-spacing:2px;color:var(--muted);margin-top:3px}.header-actions{display:flex;align-items:center;gap:10px}.offline-label{font-size:11px;color:var(--soft);white-space:nowrap;margin-right:5px}.offline-dot{display:inline-block;background:#6dab9a;width:6px;height:6px;border-radius:50%;margin-right:3px;vertical-align:middle}.icon-button{width:39px;height:39px;border:1px solid var(--border);background:transparent;color:var(--ink);border-radius:12px;display:grid;place-items:center;font-size:24px}.icon-button svg{height:20px;width:20px}.main{flex:1;min-height:0;display:flex;flex-direction:column}.empty-view{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:34px 20px 45px}.hero-decoration{width:198px;height:198px;border-radius:50%;background:radial-gradient(circle,#273951 10%,#1a283f 57%,transparent 72%);display:grid;place-items:center;margin-bottom:10px}.hero-page{width:136px;height:156px;transform:rotate(-6deg);background:#e9e1d1;border-radius:5px 15px 15px 5px;box-shadow:13px 13px 1px #c9bbaa,0 22px 32px #0004;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:11px;color:#28384a;border-left:9px solid #b2a897}.hero-page span{font-size:8px;letter-spacing:2.2px}.hero-page b{font-size:24px;font-weight:800;letter-spacing:1px}.hero-page b span{font-size:inherit;letter-spacing:inherit;color:#ca5e52}.hero-page i{height:1px;width:70%;background:#b7b5ae}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:800;color:var(--accent);margin:0}.empty-view h1{font-size:clamp(32px,6vw,47px);letter-spacing:-1.7px;line-height:1.13;margin:16px 0 13px}.empty-view h1 em{font-style:normal;color:var(--accent)}.hero-copy{color:var(--muted);font-size:15px;line-height:1.65;max-width:420px;margin:0 0 22px}.button{border:0;border-radius:14px;padding:13px 18px;font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.button.primary{background:var(--accent);color:var(--accent-ink)}.button.large{padding:16px 25px}.button-icon{font-size:24px;line-height:15px}.button.text-button{background:none;color:var(--ink);margin-top:9px}.formats{color:var(--soft);font-size:12px;margin-top:18px}.footer{min-height:62px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 29px;font-size:11px;color:var(--soft)}.footer b{color:var(--accent)}.footer button{border:0;background:none;color:var(--accent);font-size:12px;font-weight:700;white-space:nowrap}.reader-view{width:100%;max-width:760px;margin:0 auto;flex:1;padding:25px 27px 38px}.reader-topline{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.book-meta{min-width:0}.book-meta .eyebrow{margin-bottom:8px}.book-meta h1{font-size:clamp(19px,4vw,26px);line-height:1.25;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.55px}.book-author{color:var(--muted);font-size:13px;margin:6px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.circle-menu{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--ink);font-size:25px}.mode-selector{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:15px;padding:5px;margin-bottom:22px}.mode-button{padding:13px 4px;border:0;border-radius:11px;background:transparent;color:var(--muted);font-size:13px;font-weight:650}.mode-button.selected{background:var(--panel-2);color:var(--ink);box-shadow:0 2px 8px #0002}.small-mark{font-size:14px;color:var(--accent);margin-left:4px}.chapter-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:10px;color:var(--muted);font-size:12px}.chapter-small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.current-location{white-space:nowrap;font-variant-numeric:tabular-nums}.focus-frame{height:clamp(170px,26dvh,240px);width:100%;background:var(--reader);border:1px solid var(--border);border-radius:19px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;user-select:none;outline:none}.focus-frame:focus-visible{outline:2px solid var(--accent)}.focus-frame:before{content:"";position:absolute;height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);left:16%;right:16%;top:50%;opacity:.5}.word-line{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;font-size:clamp(22px,5.5vw,44px);font-weight:700;line-height:1.25;letter-spacing:.35px;position:relative;z-index:1;padding:0 12px;white-space:nowrap}.word-left{text-align:right;overflow:hidden}.word-pivot{color:var(--red);text-align:center}.word-right{text-align:left;overflow:hidden}.focus-cross{position:absolute;left:50%;width:2px;height:17px;background:var(--accent);transform:translateX(-50%);border-radius:5px;opacity:.8}.focus-cross.top{top:28px}.focus-cross.bottom{bottom:28px}.reading-indicator{color:var(--soft);font-size:11px;letter-spacing:.3px;position:absolute;bottom:16px;left:0;right:0;text-align:center}.transport{display:flex;justify-content:center;gap:35px;align-items:center;margin:19px 0 24px}.play-button{height:68px;width:68px;display:grid;place-items:center;color:var(--accent-ink);border-radius:22px;background:var(--accent);border:0;box-shadow:0 6px 22px #d89b4c28;font-size:25px}.transport-secondary{border:none;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px}.transport-secondary svg{width:26px;height:26px}.timeline-box{margin:0 0 22px}.timeline-caption{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:0 0 11px}.range{appearance:none;-webkit-appearance:none;width:100%;height:6px;border-radius:15px;outline:none;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--fill,0%),var(--border) var(--fill,0%),var(--border) 100%);cursor:pointer;touch-action:pan-x}.range::-webkit-slider-thumb{appearance:none;width:19px;height:19px;background:var(--accent);border:4px solid var(--bg);border-radius:50%;box-shadow:0 0 0 1px var(--accent)}.range::-moz-range-thumb{width:12px;height:12px;background:var(--accent);border:3px solid var(--bg);border-radius:50%;box-shadow:0 0 0 1px var(--accent)}.speed-card{border:1px solid var(--border);border-radius:18px;background:var(--panel);padding:18px 20px 16px}.speed-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.speed-big{display:flex;gap:9px;align-items:baseline;margin-top:8px}.speed-big strong{font-size:31px;font-weight:800;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.speed-big span{font-size:13px;color:var(--muted)}.speed-buttons{display:flex;gap:8px}.speed-buttons button{border:1px solid var(--border);background:var(--panel-2);color:var(--ink);border-radius:10px;width:38px;height:38px;font-size:23px}.range-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--soft);padding-top:13px}.speed-preset{background:none;border:0;color:var(--soft);font-size:11px;padding:0 3px}.speed-preset.active{color:var(--accent);font-weight:800}.options-row{display:flex;gap:15px;justify-content:space-between;align-items:center;margin-top:18px;color:var(--muted);font-size:12px}.toggle-line{display:flex;gap:9px;align-items:center}.toggle-line input{accent-color:var(--accent);width:16px;height:16px;margin:0}.plain-link{border:0;background:none;color:var(--accent);white-space:nowrap;font-size:12px}.normal-tools{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;margin-bottom:12px}.size-controls{display:flex;gap:8px}.size-controls button{border:1px solid var(--border);background:var(--panel);color:var(--ink);border-radius:9px;padding:7px 10px;font-size:13px}.normal-text{min-height:330px;border:1px solid var(--border);background:var(--reader);border-radius:17px;padding:clamp(18px,5vw,34px);font-size:var(--font-size);font-family:Georgia,"Times New Roman",serif;line-height:1.75;color:var(--ink);overflow-wrap:anywhere}.normal-text p{text-indent:1.3em;margin:.25em 0 .7em}.normal-text h2{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1.2em;line-height:1.3;margin:0 0 1.2em;text-align:center;text-indent:0}.normal-text .word-tap{cursor:pointer;border-radius:3px}.normal-text .word-tap:focus{outline:2px solid var(--accent)}.normal-text .word-tap.active-word{background:#e0ab5340}.page-buttons{display:flex;gap:12px;justify-content:space-between;margin-top:18px}.page-buttons button{flex:1}.button.secondary{background:var(--panel);color:var(--ink);border:1px solid var(--border)}.normal-help{text-align:center;color:var(--soft);font-size:11px;line-height:1.6;margin-top:15px}.modal-backdrop{position:fixed;inset:0;background:#03070bd1;z-index:20;display:flex;align-items:flex-end;justify-content:center;padding:10px;backdrop-filter:blur(4px)}.modal{max-height:86dvh;overflow:hidden;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:21px 21px 15px 15px;width:100%;max-width:620px;box-shadow:var(--shadow);padding:22px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.modal-header h2{font-size:23px;letter-spacing:-.7px;margin:7px 0 0}.modal-close{font-size:29px}.library-list,.chapter-list{overflow-y:auto;overscroll-behavior:contain;min-height:60px}.library-item{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border);padding:14px 0}.library-cover{flex:none;width:48px;height:64px;border-radius:5px 10px 10px 5px;background:linear-gradient(140deg,#9c7054,#5e465c);box-shadow:inset 5px 0 0 #0002;display:grid;place-items:center;color:#fff8e9;font-family:Georgia,serif;font-weight:800;font-size:17px}.library-item:nth-child(even) .library-cover{background:linear-gradient(145deg,#507e7c,#435a76)}.library-open{min-width:0;flex:1;text-align:left;border:0;background:none;color:var(--ink);padding:7px 0}.library-open strong{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-open small{display:block;color:var(--muted);font-size:12px;margin:5px 0}.library-open .mini-progress{display:block;height:3px;border-radius:6px;background:var(--border);overflow:hidden}.library-open .mini-progress i{display:block;height:100%;background:var(--accent)}.library-delete{background:none;border:0;color:var(--soft);font-size:21px;padding:8px}.modal-import{margin-top:15px;flex:none}.library-note{font-size:11px;color:var(--soft);line-height:1.5;margin:12px 0 0}.chapter-row{width:100%;text-align:left;background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--border);padding:14px 6px;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:20px}.chapter-row span:first-child{overflow:hidden;text-overflow:ellipsis}.chapter-row span:last-child{color:var(--soft);font-size:11px;white-space:nowrap}.chapter-row.active{color:var(--accent)}.empty-lib{color:var(--muted);font-size:13px;text-align:center;padding:22px 5px}.toast{z-index:30;position:fixed;left:50%;transform:translateX(-50%);bottom:80px;min-width:250px;max-width:min(85vw,480px);border:1px solid var(--border);background:#29384d;color:var(--ink);border-radius:13px;padding:12px 18px;box-shadow:var(--shadow);font-size:13px;text-align:center;line-height:1.5}
body.light{--bg:#f4f1e9;--panel:#fffcf5;--panel-2:#f1ece2;--border:#ded6c9;--ink:#27313c;--muted:#66707b;--soft:#7b858b;--accent:#be762b;--accent-ink:#fff;--red:#d04e41;--reader:#fffdf9;--shadow:0 10px 38px #3c2b1520;color-scheme:light}body.light .hero-decoration{background:radial-gradient(circle,#eee2d0,#f4f1e9 73%)}body.light .toast{background:#fffcf5}
@media(min-height:800px){.reader-view{padding-top:35px}.focus-frame{height:clamp(180px,28dvh,275px)}.transport{margin:26px 0 30px}}
@media(max-width:440px){.header{height:66px;padding:0 16px}.footer{padding:10px 16px;min-height:54px}.offline-label{display:none}.reader-view{padding:18px 15px 27px}.reader-topline{margin-bottom:17px}.mode-selector{margin-bottom:16px}.focus-frame{height:clamp(160px,23dvh,215px)}.speed-card{padding:14px 17px}.options-row{align-items:flex-start;gap:8px}.toggle-line{max-width:74%}.brand-name{font-size:16px}.reader-topline .book-author{font-size:12px}.transport{margin:15px 0 20px}.play-button{height:62px;width:62px;border-radius:20px}}
@media(max-height:710px) and (max-width:440px){.header{height:58px}.reader-view{padding-top:12px}.reader-topline{margin-bottom:11px}.mode-selector{margin-bottom:11px}.mode-button{padding:10px 3px}.focus-frame{height:145px}.transport{margin:10px 0}.play-button{width:53px;height:53px;border-radius:17px}.timeline-box{margin-bottom:15px}.speed-title{margin-bottom:12px}.speed-big strong{font-size:25px}.speed-card{padding:11px 15px}.options-row{margin-top:12px}}
@media(prefers-reduced-motion:no-preference){.button,.icon-button,.play-button,.mode-button{transition:background .16s,transform .16s}.button:active,.play-button:active{transform:scale(.97)}}

/* v1.1: осмысленная позиция в обычном тексте */
.normal-text .active-paragraph {
  position:relative;
  background:color-mix(in srgb,var(--accent) 6%,transparent);
  box-shadow:-7px 0 0 -4px var(--accent);
  border-radius:4px;
}
.normal-text .word-tap.active-sentence {
  background:color-mix(in srgb,var(--accent) 17%,transparent);
  border-radius:3px;
}
.normal-text .word-tap.active-word {
  background:var(--accent);
  color:var(--accent-ink);
  border-radius:4px;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
  outline:2px solid color-mix(in srgb,var(--accent) 50%,transparent);
  outline-offset:1px;
}
/* v1.1: сосредоточенное чтение, тап по экрану останавливает */
body.reading-active {overflow:hidden;}
body.reading-active .rsvp-area {
  position:fixed;
  inset:0;
  z-index:15;
  padding:0;
  margin:0;
  background:var(--bg);
  display:flex;
  align-items:center;
  justify-content:center;
}
body.reading-active .rsvp-area > :not(.focus-frame){display:none!important;}
body.reading-active .focus-frame {
  width:100%;
  height:100dvh;
  min-height:100%;
  border:0;
  border-radius:0;
  background:var(--bg);
  box-shadow:none;
  touch-action:manipulation;
}
body.reading-active .focus-frame:before {opacity:.13;}
body.reading-active .focus-cross.top {top:calc(50% - 67px);opacity:.38;}
body.reading-active .focus-cross.bottom {bottom:calc(50% - 67px);opacity:.38;}
body.reading-active .reading-indicator {bottom:max(10dvh, 35px);opacity:.35;font-size:11px;}
@media (max-width:440px) {
  body.reading-active .word-line {font-size:clamp(26px,7vw,44px);}
}

/* v1.2: переход к странице в меню навигации */
.page-jump{padding:15px 16px 12px;border:1px solid var(--border);background:var(--bg);border-radius:15px;flex:none;margin-bottom:18px}
.page-jump-label{display:block;color:var(--ink);font-size:14px;font-weight:700;margin-bottom:11px}
.page-jump-controls{display:flex;gap:10px;align-items:stretch}
.page-jump-controls input{width:100%;min-width:0;flex:1;padding:12px 14px;border:1px solid var(--border);border-radius:11px;background:var(--panel-2);color:var(--ink);font-size:17px;font-variant-numeric:tabular-nums;outline:none}
.page-jump-controls input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 24%,transparent)}
.page-jump-controls input[aria-invalid="true"]{border-color:var(--red)}
.page-jump-controls .button{flex:none;padding-inline:18px}
.page-jump-info{margin:10px 0 0;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;line-height:1.4}
.chapters-subheading{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--soft);margin:0 0 3px;flex:none}
@media(max-width:390px){.page-jump{padding:12px}.page-jump-controls .button{padding-inline:12px}}

/* v1.3: единый логотип Focus на сайте, в браузере и PWA */
.brand-logo{display:block;width:42px;height:42px;object-fit:contain;flex:none;border-radius:12px;box-shadow:0 5px 13px #0002}
.hero-focus{background:none!important;width:198px;height:198px}
.hero-logo{display:block;width:174px;height:174px;max-width:90%;max-height:90%;object-fit:contain;border-radius:36px;filter:drop-shadow(0 14px 26px #0004)}
@media(max-width:440px){.brand-logo{width:38px;height:38px;border-radius:10px}.hero-focus{width:164px;height:164px}.hero-logo{width:150px;height:150px;border-radius:31px}}

/* v1.4: transparent corners, no black image-background corners */
.brand-logo {background:transparent; border-radius:0; box-shadow:none; filter:drop-shadow(0 3px 7px #0002)}
.hero-logo {background:transparent; border-radius:0;}
@media(max-width:440px){.brand-logo,.hero-logo{border-radius:0}}

/* v1.5: деликатное предложение установки без вмешательства в чтение */
.install-banner{position:fixed;z-index:29;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);width:min(94vw,620px);display:flex;align-items:center;gap:13px;padding:13px 15px;background:var(--panel);border:1px solid var(--border);border-radius:19px;box-shadow:0 14px 48px #0008}
.install-banner-icon{flex:none;width:51px;height:51px;object-fit:contain}
.install-banner-copy{flex:1;min-width:0}
.install-banner-copy strong{display:block;font-size:15px;color:var(--ink);font-weight:800;margin-bottom:4px}
.install-banner-copy p{font-size:12px;line-height:1.4;color:var(--muted);margin:0}
.install-banner-actions{display:flex;align-items:stretch;gap:7px;flex:none}
.install-banner-actions .button{font-size:12px;padding:11px 13px;border-radius:10px}
.install-library-button{margin-top:14px;width:100%;flex:none}
.install-help-backdrop{z-index:38}
.install-help-copy{font-size:13px;line-height:1.6;color:var(--muted);margin:0 0 14px}
.install-help-steps{padding-left:22px;color:var(--ink);font-size:14px;line-height:1.65;margin:0 0 19px}
.install-help-steps li{margin:0 0 9px;padding-left:5px}
.install-help-steps li::marker{color:var(--accent);font-weight:800}
.install-help-done{width:100%}
body.reading-active .install-banner{display:none!important}
@media(max-width:570px){.install-banner{width:calc(100vw - 22px);padding:11px 12px;gap:9px;flex-wrap:wrap}.install-banner-icon{width:44px;height:44px}.install-banner-copy{flex:1;min-width:calc(100% - 65px)}.install-banner-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.install-banner-actions .button{padding:11px 8px}}
