@font-face{font-family:Swann Serif;src:local(Iowan Old Style),local(Palatino Linotype),local(Book Antiqua)}:root{color:#20262c;font-synthesis:none;--paper:#fff;--ink:#20262c;--muted:#68717a;--line:#d8dcdf;--green:#315e4a;--green-deep:#274d3c;--green-soft:#edf3ee;--green-live:#b7d9c4;--cream:#f7f3e9;--serif:"Swann Serif", Georgia, "Times New Roman", serif;background:#f5f7f5;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{overflow:hidden}button,select,input{font:inherit}button,select{color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.36}svg{fill:none;stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}svg .fill{fill:currentColor;stroke:none}.app{background:#f5f7f5;min-height:100vh}.reader-audio{display:none}.topbar{border-bottom:1px solid var(--line);background:#fffffff7;grid-template-columns:minmax(250px,.8fr) minmax(330px,1fr) auto;align-items:center;gap:18px;height:78px;padding:0 clamp(22px,3vw,52px);display:grid;box-shadow:0 2px 16px #23392f09}.book-identity{align-items:center;gap:12px;min-width:0;display:flex}.book-mark{background:var(--green-deep);color:#fff;border-radius:13px;flex:none;place-items:center;width:42px;height:42px;display:grid}.book-mark svg{width:22px;height:22px}.book-identity>span:last-child{gap:2px;min-width:0;display:grid}.book-identity small{color:var(--green);letter-spacing:.13em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:8px;font-weight:800;overflow:hidden}.book-identity strong{font:600 17px/1.15 var(--serif);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.navigation-picker{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;display:grid}.navigation-picker select,.language-picker select{appearance:none;min-width:0;height:42px;color:var(--ink);background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1.5 1.5 4.5 4.5 4.5-4.5' fill='none' stroke='%235b6d63' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 15px center;background-repeat:no-repeat;border:1px solid #cbd4ce;border-radius:13px;outline:0;padding:0 42px 0 14px}.navigation-picker select{width:100%;font:600 15px/1 var(--serif)}.navigation-picker>span{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;font-size:9px;font-weight:750}.navigation-picker select:focus,.language-picker select:focus{border-color:#729482;box-shadow:0 0 0 3px #315f4e1a}.reader-actions{justify-content:flex-end;align-items:center;gap:9px;display:flex}.language-picker{background:var(--green-soft);height:42px;color:var(--green);border:1px solid #c9d5cd;border-radius:13px;align-items:center;gap:7px;padding-left:11px;display:flex}.language-picker svg{width:17px;height:17px}.language-picker select{background-color:#0000;background-position:right 10px center;border:0;width:130px;height:40px;padding-left:0;padding-right:32px;font-size:12px;font-weight:700}.speed-control{background:#fff;border:1px solid #cbd4ce;border-radius:13px;grid-template-columns:auto 78px 31px;align-items:center;gap:7px;height:42px;padding:0 10px;display:grid}.speed-control>span{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:8px;font-weight:800}.speed-control input{width:78px;accent-color:var(--green)}.speed-control output{color:var(--green-deep);text-align:right;font-size:10px;font-weight:800}.primary-action,.section-action{border:1px solid var(--green);background:var(--green);color:#fff;border-radius:13px;align-items:center;gap:8px;height:42px;padding:0 15px;display:flex}.primary-action:hover{background:var(--green-deep)}.section-action{background:var(--green-soft);color:var(--green);border-color:#b9c9bf}.section-action:hover,.section-action.active{border-color:var(--green);background:var(--green);color:#fff}.primary-action svg,.section-action svg{width:17px;height:17px}.primary-action span,.section-action span{white-space:nowrap;font-size:11px;font-weight:750}.reader-shell{width:min(1440px,100vw - 48px);margin:0 auto;padding:10px 0}.reading-page{background:var(--paper);border:1px solid #cdd2d5;border-radius:14px;height:calc(100vh - 157px);min-height:410px;overflow:hidden;box-shadow:0 5px 22px #18202612}.column-headings{border-bottom:1px solid var(--line);background:linear-gradient(#fff 0%,#fbfcfb 100%);grid-template-columns:1fr 1fr;height:58px;display:grid}.source-only .column-headings{grid-template-columns:1fr}.column-headings>div{text-align:center;justify-content:center;align-items:center;gap:12px;padding:0 clamp(20px,4vw,62px);display:flex}.column-headings>div+div{border-left:1px solid var(--line)}.column-headings span{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;font-size:8px;font-weight:600}.column-headings strong{color:var(--green);font:500 19px/1 var(--serif)}.text-grid{grid-auto-rows:max-content;align-content:start;height:calc(100% - 58px);display:grid;overflow:hidden}.aligned-row{border-bottom:1px solid #e3e6e8;grid-template-columns:1fr 1fr;min-height:0;display:grid}.source-only .aligned-row{grid-template-columns:1fr}.aligned-row:last-child{border-bottom:0}.aligned-row.playing{box-shadow:inset 4px 0 0 var(--green)}.source-passage,.translation-passage{flex-direction:column;justify-content:center;min-width:0;padding:6px clamp(22px,4vw,62px);transition:background .16s;display:flex;position:relative}.source-passage{padding-right:clamp(62px,6vw,90px)}.source-passage:hover,.aligned-row.playing .source-passage,.aligned-row.selected .source-passage{background:var(--green-soft)}.aligned-row.selected .source-passage{box-shadow:inset 3px 0 0 var(--green)}.translation-passage{border-left:1px solid var(--line);background:#fcfcfb}.aligned-row.playing .translation-passage{background:#f7faf8}.passage-meta{align-items:baseline;gap:10px;min-height:13px;margin-bottom:2px;display:flex}.passage-meta span{color:var(--green);letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:700}.passage-meta small{color:#8c948e;font-size:8px;font-weight:700}.source-passage p,.translation-passage p{max-width:780px;font:400 clamp(16px, 1.35vw, 19px)/1.34 var(--serif);text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto;color:var(--ink);margin:0}.clip-segment{display:inline}.clip-boundary{white-space:pre-wrap;-webkit-hyphens:none;hyphens:none}.source-word{appearance:none;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;text-align:inherit;background:0 0;border:0;border-radius:5px;margin:0;padding:1px 1px 0;display:inline}.source-word:hover{background:#dbe9df}.source-word.related{background:#e0ebe3;box-shadow:inset 0 -2px #86aa95}.source-word.selected{box-shadow:inset 0 -3px 0 var(--green);color:#173a30;background:#cadfce}.source-word.spoken{background:var(--green-live);box-shadow:inset 0 -3px 0 var(--green-deep);color:#102f25;font-weight:750}.target-word{color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;border-radius:5px;transition:background 90ms,color 90ms,box-shadow 90ms}.target-word.spoken{background:var(--green-live);box-shadow:none;color:#102f25;font-weight:inherit;text-decoration:none}.clip-play{width:38px;height:38px;color:var(--green);opacity:0;background:#fffffff0;border:1px solid #b9c9bf;border-radius:50%;place-items:center;transition:opacity .14s,transform .14s,background .14s;display:grid;position:absolute;top:50%;right:18px;transform:translateY(-50%);box-shadow:0 4px 12px #183b3214}.source-passage:hover .clip-play,.aligned-row.playing .clip-play,.clip-play:focus-visible{opacity:1}.clip-play:hover{background:var(--green);color:#fff;transform:translateY(-50%)scale(1.05)}.clip-play svg{width:16px;height:16px}.translation-loading{color:var(--muted);align-items:center;gap:11px;display:flex}.translation-loading span,.reader-loading span{border:2px solid #c8d5cc;border-top-color:var(--green);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}.translation-loading em{font:italic 15px/1.4 var(--serif)}.reader-loading{color:var(--muted);grid-column:1/-1;justify-content:center;align-items:center;gap:12px;display:flex}.reader-loading p{font:italic 18px/1 var(--serif)}@keyframes spin{to{transform:rotate(360deg)}}.word-analysis-card{z-index:100;border:1px solid #98aa9f;border-top:4px solid var(--green);max-height:calc(100vh - 24px);color:var(--ink);background:#fff;border-radius:17px;position:fixed;overflow:hidden auto;box-shadow:0 24px 58px #182e2538}.word-analysis-card.above{border-top-width:1px;border-bottom:4px solid var(--green)}.word-analysis-card>header{background:#edf4ef;border-bottom:1px solid #cbd7cf;justify-content:space-between;align-items:flex-start;gap:24px;padding:22px 26px 20px;display:flex}.word-analysis-card>header>div{gap:4px;min-width:0;display:grid}.word-analysis-card>header span{color:var(--green);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:850}.word-analysis-card>header strong{overflow-wrap:anywhere;font:650 clamp(25px, 2.15vw, 34px)/1.08 var(--serif)}.word-analysis-card>header small{color:#43544a;font:500 16px/1.35 var(--serif)}.word-analysis-card>header em{color:#667168;font:italic 19px/1.2 var(--serif)}.word-analysis-card>header button{width:43px;height:43px;color:var(--green-deep);background:#fffc;border:1px solid #a8b8ae;border-radius:50%;flex:none;place-items:center;display:grid}.word-analysis-card>header button:hover{border-color:var(--green);background:#fff}.word-analysis-card>header button svg{width:21px;height:21px}.word-analysis-loading{color:#506058;justify-content:center;align-items:center;gap:13px;min-height:140px;padding:28px;font-size:16px;display:flex}.word-analysis-loading span{border:2px solid #c8d5cc;border-top-color:var(--green);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}.word-analysis-error{color:#7b4433;margin:0;padding:24px 26px;font-size:16px;line-height:1.5}.word-analysis-body{gap:18px;padding:22px 26px 24px;display:grid}.word-analysis-tags{flex-wrap:wrap;gap:8px;display:flex}.word-analysis-tags span{color:var(--green);letter-spacing:.06em;text-transform:uppercase;background:#f7faf8;border:1px solid #b8c9be;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.word-analysis-body dl{grid-template-columns:108px minmax(0,1fr);gap:12px 18px;margin:0;display:grid}.word-analysis-body dt{color:var(--green);letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:850}.word-analysis-body dd{margin:0;font-size:17px;line-height:1.48}.word-analysis-meaning{border-top:1px solid var(--line);font:19px/1.5 var(--serif);margin:0;padding-top:17px}.word-analysis-body section{border-top:1px solid var(--line);padding-top:16px}.word-analysis-body h3{color:var(--green);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:850}.word-analysis-body ul{margin:0;padding-left:20px;font-size:15px;line-height:1.5}.word-analysis-body li+li{margin-top:5px}.notice{z-index:40;color:#694735;background:#fffaf7;border:1px solid #c7b5a9;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;min-width:min(620px,100vw - 30px);padding:13px 15px;font-size:12px;display:flex;position:fixed;top:90px;left:50%;transform:translate(-50%);box-shadow:0 16px 35px #3a261d21}.notice button{color:inherit;background:0 0;border:1px solid;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:750}.notice .notice-close{border:0;margin-left:auto;padding:0;font-size:20px}.page-controls{border-bottom:1px solid #cdd2d5;grid-template-columns:1fr auto 1fr;align-items:center;height:50px;display:grid}.page-controls>button{color:var(--green);background:0 0;border:0;align-items:center;gap:7px;padding:10px 12px;font-size:10px;font-weight:750;display:flex}.page-controls>button:last-child{justify-self:end}.page-controls>button:hover{color:var(--green-deep)}.page-controls>button svg{width:16px;height:16px}.page-controls>div{align-items:baseline;gap:7px;display:flex}.page-controls strong{font:700 18px/1 var(--serif)}.page-controls span{color:var(--muted);letter-spacing:.08em;font-size:8px;font-weight:750}.page-controls small{color:#929993;margin-left:7px;font-size:8px}.mobile-tabs{display:none}@media (width<=1180px){.topbar{grid-template-columns:auto minmax(250px,1fr) auto}.book-identity>span:last-child,.primary-action span,.section-action span{display:none}.primary-action,.section-action{justify-content:center;width:42px;padding:0}.speed-control{grid-template-columns:65px 28px}.speed-control>span{display:none}}@media (width<=820px){body{overflow:auto}.topbar{grid-template-columns:auto 1fr;gap:10px;height:auto;min-height:72px;padding:10px 14px}.navigation-picker{grid-area:1/2}.navigation-picker>span{display:none}.reader-actions{grid-area:2/1/auto/-1;justify-content:stretch}.language-picker{flex:1}.language-picker select{width:100%}.speed-control{flex:1;grid-template-columns:1fr 30px}.speed-control input{width:100%}.reader-shell{width:calc(100vw - 20px);padding-top:8px}.mobile-tabs{border:1px solid #cad3cd;border-radius:11px;grid-template-columns:1fr 1fr;margin-bottom:7px;display:grid;overflow:hidden}.mobile-tabs button{color:var(--muted);text-transform:uppercase;background:#fff;border:0;padding:8px;font-size:10px;font-weight:800}.mobile-tabs button.active{background:var(--green);color:#fff}.reading-page{height:calc(100vh - 211px);min-height:500px}.column-headings{grid-template-columns:1fr}.column-headings>div{display:none}.mobile-source .column-headings>div:first-child,.mobile-translation .column-headings>div:last-child{display:flex}.column-headings>div+div{border-left:0}.aligned-row{grid-template-columns:1fr}.mobile-source .translation-passage,.mobile-translation .source-passage{display:none}.translation-passage{border-left:0}.source-passage,.translation-passage{padding:16px 28px}.source-passage{padding-right:64px}.source-passage p,.translation-passage p{font-size:clamp(17px,4.8vw,22px)}.clip-play{opacity:1;right:14px}.page-controls{height:54px}}@media (width<=500px){.book-mark{width:38px;height:38px}.speed-control{max-width:120px}.primary-action,.section-action{flex:0 0 42px}.page-controls>button span,.page-controls small{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
