:root{--paper:#f8f6f1;--ink:#282c27;--muted:#7b7d72;--line:#e0e1d7;--accent:#a94f38;--soft:#eeeee6;--card:#fffefb}*{box-sizing:border-box}html{scroll-behavior:auto}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:4px;outline:3px solid #bc806b}button{border:1px solid var(--line);background:0 0;border-radius:7px;min-height:44px;padding:10px 16px}button:hover:not(:disabled){background:var(--soft)}input{color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:6px;min-width:0;padding:14px 16px}input::placeholder{color:#94958c}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Literata,Georgia,serif;font-weight:400}.primary{background:var(--accent);border-color:var(--accent);color:#fffdf6;font-weight:500}.primary:hover:not(:disabled){background:#913f2b}.plain{background:0 0;border:0;padding:0}.plain:hover:not(:disabled){background:0 0}.text-button{color:var(--muted);background:0 0;border:0;border-radius:0;padding:8px 0;font-size:13px}.text-button:hover:not(:disabled){color:var(--accent);background:0 0}.eyebrow{letter-spacing:2px;color:var(--accent);margin-bottom:23px;font-size:10px;font-weight:600}.wordmark{letter-spacing:-1.1px;color:var(--ink);white-space:nowrap;font-family:Literata,Georgia,serif;font-size:23px;font-weight:500;text-decoration:none}.wordmark span{color:var(--accent);padding:0 2px;font-style:italic}.loading{min-height:65vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex}.loading p{margin:0}.auth-shell{grid-template-columns:1.1fr 1fr;align-items:center;gap:90px;max-width:1280px;min-height:100svh;margin:auto;padding:70px 80px;display:grid}.auth-intro .wordmark{margin-bottom:86px;display:inline-block}.auth-intro h1{letter-spacing:-3.5px;margin-bottom:32px;font-size:72px;line-height:1.16}.auth-intro h1 em{color:var(--accent);font-weight:400}.intro-copy{color:var(--muted);font-size:15px;line-height:1.8}.auth-line{background:var(--accent);width:100px;height:1px;margin-top:42px}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:12px;width:100%;max-width:410px;padding:40px}.auth-card h2{letter-spacing:-1px;margin-bottom:12px;font-size:29px}.auth-card>p{color:var(--muted);margin-bottom:30px;font-size:13px;line-height:1.6}.auth-card label{margin:20px 0;font-size:12px;font-weight:500;display:block}.auth-card input{width:100%;margin-top:9px;font-size:14px;display:block}.auth-card>.primary{width:100%;margin:5px 0 20px}.auth-card small{text-align:center;color:var(--muted);font-size:10px;line-height:1.5;display:block}.notice,.error{color:#813e2b;background:#f4e5dd;border-radius:6px;margin-bottom:20px;padding:14px 18px;font-size:13px;line-height:1.55}.global-error{justify-content:space-between;align-items:center;gap:16px;max-width:1100px;margin:16px auto;display:flex}.global-error .plain{min-width:30px;font-size:22px}.application{background:var(--paper);min-height:100svh;color:var(--ink)}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1300px;height:88px;margin:auto;padding:0 65px;display:flex}.topbar-right{color:var(--muted);align-items:center;gap:28px;font-size:11px;display:flex}.topbar-right .text-button{border-left:1px solid var(--line);padding-left:24px;font-size:11px}.library{max-width:1170px;margin:auto;padding:67px 40px 24px}.library-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:37px;display:flex}.library-heading h1{letter-spacing:-1.8px;margin-bottom:20px;font-size:43px;line-height:1.2}.library-heading h1 span{color:var(--accent)}.library-heading p:not(.eyebrow){color:var(--muted);margin:0;font-size:13px;line-height:1.7}.shelf-count{text-align:right;color:#babcb0;font-family:Literata,Georgia,serif;font-size:50px;font-style:italic}.shelf-count small{color:var(--muted);margin-top:4px;font-family:DM Sans,sans-serif;font-size:10px;font-style:normal;display:block}.add-form{border:1px solid var(--line);background:#f0f0e9;border-radius:10px;margin-bottom:49px;padding:24px 27px}.add-form>label{margin-bottom:13px;font-size:12px;font-weight:600;display:block}.add-row{background:var(--card);border:1px solid var(--line);border-radius:6px;align-items:center;gap:8px;padding:6px;display:flex}.add-row input{outline-offset:0;background:0 0;border:0;flex:1;padding:10px 2px;font-size:13px}.add-row .primary{white-space:nowrap;min-height:42px;font-size:12px}.link-mark{color:var(--muted);padding:0 10px;font-size:22px}.add-form p{color:var(--muted);margin:13px 0 0;font-size:10px;line-height:1.6}.shelf-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:23px;display:flex}.shelf-header h2{margin:0;font-size:20px}.shelf-header h2 span{color:var(--muted);margin-left:9px;font-family:DM Sans,sans-serif;font-size:11px}.worker-state{color:var(--muted);text-align:right;align-items:center;gap:7px;font-size:10px;display:flex}.worker-state i{background:#b0a695;border-radius:50%;flex-shrink:0;width:5px;height:5px}.worker-state.online i{background:#7b9474}.books-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;display:grid}.book-card{border:1px solid var(--line);background:var(--card);text-align:left;border-radius:8px;padding:0;transition:transform .2s,box-shadow .2s;overflow:hidden}.book-card:hover:not(:disabled){background:var(--card);transform:translateY(-3px);box-shadow:0 9px 25px #343b2410}.book-cover{background:#dedfd3;justify-content:center;align-items:center;height:180px;display:flex;position:relative;overflow:hidden}.book-cover img{object-fit:cover;filter:saturate(.75);width:100%;height:100%}.cover-number{color:#b0b4a0;font:italic 70px Literata,Georgia,serif}.status{color:#555a4c;background:#fffdf2ed;border-radius:4px;padding:5px 8px;font-size:9px;font-weight:500;position:absolute;top:12px;left:12px}.status-error{color:#984a35;background:#f9e1d8}.video-duration{color:#fff;background:#282c27cf;border-radius:3px;padding:4px 6px;font-size:10px;position:absolute;bottom:10px;right:10px}.book-copy{padding:23px 20px 18px}.book-copy>small{letter-spacing:1.4px;color:var(--muted);font-size:8px}.book-copy h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:56px;margin:10px 0 24px;font-size:20px;line-height:1.4;display:-webkit-box;overflow:hidden}.book-action{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;padding-top:13px;font-size:10px;display:flex}.book-action>span{color:var(--accent);font-size:17px}.empty-state{text-align:center;border:1px dashed #d6d8cb;border-radius:9px;padding:49px 20px 38px}.empty-state h2{letter-spacing:-.7px;font-size:24px}.empty-state p{color:var(--muted);margin-bottom:14px;font-size:13px;line-height:1.9}.empty-state .text-button{color:var(--accent);font-size:11px}.book-drawing{width:110px;height:90px;margin:0 auto 24px;position:relative}.book-drawing span{background:#edf0e5;border:1px solid #aab29a;border-radius:4px 0 0 4px;width:48px;height:66px;position:absolute;top:9px;left:8px;transform:skewY(10deg)}.book-drawing span:nth-child(2){border-radius:0 4px 4px 0;left:56px;transform:skewY(-10deg)}.book-drawing i{color:#7e8b6d;font:italic 26px Literata,serif;position:absolute;top:28px;left:29px}.library-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;margin-top:69px;padding-top:22px;font-size:9px;display:flex}.library-footer span:last-child{letter-spacing:1.5px;font-size:8px}.reader-shell{max-width:820px;margin:auto;padding:32px 36px 190px}.reader-nav{justify-content:space-between;align-items:center;margin-bottom:47px;display:flex}.reader-settings{gap:6px;display:flex}.reader-settings button{min-width:44px;min-height:40px;padding:5px 12px;font-family:Georgia,serif}.reader-title{border-bottom:1px solid var(--line);margin-bottom:40px;padding-bottom:27px}.reader-title h1{letter-spacing:-1.2px;max-width:700px;margin-bottom:20px;font-size:39px;line-height:1.28}.reader-title .eyebrow{margin-bottom:18px;font-size:9px}.reader-title>p:last-child:not(.eyebrow){color:var(--muted);margin:0;font-size:12px;line-height:1.7}.transcript{letter-spacing:-.2px;-webkit-user-select:text;user-select:text;font-family:Literata,Georgia,serif;line-height:1.9}.transcript p{margin-bottom:1.5em}.transcript .selected-word{background:#d9ddc557;border-radius:2px}.transcript ::selection{color:#282c27;background:#d7dfbf}.end-mark{text-align:center;color:#b4b9a5;padding:18px 0 40px;font-size:12px}.end-mark p{color:var(--muted);margin-top:18px;font-family:DM Sans,sans-serif;font-size:11px}.player{left:50%;bottom:max(20px,env(safe-area-inset-bottom));background:var(--card);border:1px solid var(--line);z-index:10;border-radius:12px;width:min(740px,100% - 40px);padding:14px 20px 17px;position:fixed;transform:translate(-50%);box-shadow:0 4px 35px #1c27151c}.player-top{align-items:center;gap:12px;min-height:26px;margin-bottom:8px;display:flex}.selection-caption{letter-spacing:1px;color:var(--muted);font-size:8px;font-weight:500}.clear-selection{min-height:24px;padding:0;font-size:9px}.time-display{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:10px}.player-controls{align-items:center;gap:10px;display:flex}.play-button{min-width:125px;font-size:12px}.loop-button{white-space:nowrap;font-size:12px}.loop-button.active{background:var(--soft);border-color:var(--accent);color:var(--accent)}.player-divider{background:var(--line);width:1px;height:25px;margin:0 4px}.rate-control select{color:var(--ink);background:0 0;border:0;padding:12px 1px;font-size:12px}.seek{width:60px;accent-color:var(--accent);background:0 0;border:0;flex:1;padding:0}.reader-bottom{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:16px;padding-top:20px;display:flex}.reader-bottom a{font-size:11px;text-decoration:none}.reader-bottom .text-button{font-size:11px}.processing{text-align:center;max-width:550px;min-height:290px;margin:auto;padding:25px 30px 60px}.processing-icon{background:var(--soft);width:65px;height:65px;color:var(--accent);border-radius:50%;place-items:center;margin:0 auto 24px;font:36px Georgia,serif;display:grid}.processing h2{margin-bottom:17px;font-size:26px}.processing p{color:var(--muted);font-size:13px;line-height:1.8}.processing-steps{gap:5px;max-width:240px;margin:29px auto;display:flex}.processing-steps span{background:var(--line);border-radius:5px;flex:1;height:3px}.processing-steps .done{background:var(--accent)}.processing .primary{font-size:13px}.dark{--paper:#242821;--ink:#e1e3d5;--muted:#a1a692;--line:#414737;--accent:#d89e82;--soft:#343b2d;--card:#2d3327}.dark .primary{color:#fff8ef;background:#bd7255;border-color:#bd7255}.dark .transcript .selected-word{background:#62704a70}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (min-width:1400px){.library{padding-top:78px}.book-cover{height:190px}}@media (max-width:1000px){.auth-shell{gap:45px;padding:55px 45px}.auth-intro h1{font-size:62px}.auth-card{padding:28px}.topbar{padding:0 40px}.library-heading h1{font-size:38px}.books-grid{gap:18px}.book-cover{height:150px}.book-copy{padding:18px 16px}.book-copy h3{font-size:18px}.worker-state{max-width:260px;line-height:1.5}.global-error{margin:16px 24px}}@media (max-width:700px){.auth-shell{grid-template-columns:1fr;gap:30px;padding:30px 26px 50px}.auth-intro .wordmark{margin-bottom:37px}.auth-intro .eyebrow{margin-bottom:18px}.auth-intro h1{letter-spacing:-2px;margin-bottom:22px;font-size:47px;line-height:1.1}.auth-intro h1 br{display:none}.auth-intro h1 em{display:block}.intro-copy{margin:0;font-size:13px}.auth-line{display:none}.auth-card{max-width:none}.topbar{height:74px;padding:0 24px}.wordmark{font-size:21px}.desktop-only{display:none}.topbar-right .text-button{border:0;padding-left:0}.library{padding:38px 24px 24px}.library-heading{align-items:flex-start;margin-bottom:29px}.library-heading h1{letter-spacing:-1.3px;font-size:33px}.library-heading .eyebrow{letter-spacing:1.5px;margin-bottom:18px;font-size:8px}.library-heading p:not(.eyebrow){max-width:330px;font-size:12px}.shelf-count{display:none}.add-form{margin-bottom:33px;padding:19px 17px}.add-row{flex-wrap:wrap;gap:4px}.add-row input{flex:auto;width:calc(100% - 46px);font-size:12px}.add-row .primary{width:100%;margin-top:5px}.link-mark{padding:0 9px}.add-form p{font-size:9px}.shelf-header{align-items:flex-start;gap:20px}.shelf-header h2{white-space:nowrap;font-size:18px}.worker-state{gap:5px;max-width:170px;font-size:8px}.books-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.book-cover{height:135px}.book-copy{padding:15px 12px}.book-copy h3{min-height:46px;margin-bottom:18px;font-size:17px;line-height:1.35}.book-copy>small{font-size:7px}.book-action{font-size:9px}.status{padding:4px 6px;font-size:8px;top:8px;left:8px}.empty-state h2{font-size:22px}.empty-state p{font-size:12px}.library-footer{margin-top:45px}.reader-shell{padding:22px 24px 185px}.reader-nav{margin-bottom:32px}.reader-title h1{letter-spacing:-.8px;font-size:31px}.reader-title{margin-bottom:29px}.reader-settings button{min-width:39px;padding:4px 10px}.transcript{line-height:1.85}.player{width:calc(100% - 24px);bottom:max(12px,env(safe-area-inset-bottom));padding:12px 14px 14px}.player-controls{flex-wrap:wrap;gap:7px}.play-button{min-width:112px}.loop-button{padding:10px 12px;font-size:11px}.player-divider{margin:0 2px}.rate-control{margin-left:auto}.seek{flex-basis:100%;height:17px;margin-top:4px}.selection-caption{letter-spacing:.5px;font-size:7px}.clear-selection{font-size:8px}.player-top{gap:7px}.reader-bottom{gap:12px}.reader-bottom a,.reader-bottom .text-button{font-size:10px}.processing{padding:18px 8px 40px}}@media (max-width:380px){.books-grid{grid-template-columns:1fr}.book-cover{height:180px}.library-heading h1{font-size:29px}.reader-shell{padding-left:19px;padding-right:19px}.loop-button span{font-size:10px}.player-divider{display:none}}
