:root{font-family:DM Sans,Noto Sans SC,sans-serif;color:#252720;background:#f8f7f3;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.35}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #a27748;outline-offset:3px}::selection{background:#e8d8b9}.app{min-height:100vh;display:flex;flex-direction:column}.workspace{display:grid;grid-template-columns:minmax(400px,43.5%) minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:100vh;min-height:0}.workspace--scenes{grid-template-columns:minmax(0,1fr)}.workspace--scenes .visual-pane{display:none}.visual-pane{background:#f0eee8;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border-right:1px solid #e4e1d7}.visual-head,.reading-head{flex:none;display:flex;align-items:center;justify-content:space-between}.visual-head{padding:23px 30px 16px}.eyebrow{color:#9b7953;font-size:10px;font-weight:700;letter-spacing:.19em;text-transform:uppercase}.visual-heading{margin:6px 0 0;font:25px "DM Serif Display",Noto Sans SC,serif;letter-spacing:.025em}.nav-buttons{display:flex;align-items:center;gap:7px}.icon-button{border:1px solid #dedbd2;background:#faf9f5;color:#4b5048;border-radius:9px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;transition:background .16s,transform .16s,border-color .16s}.icon-button:not(:disabled):hover{background:#fff;border-color:#ab9d88;transform:translateY(-1px)}.icon-button svg,.text-button svg,.round-button svg,.play-button svg{width:17px;height:17px;stroke-width:1.8}.image-stage{flex:1;min-height:0;padding:0 30px;display:flex;align-items:center;justify-content:center;position:relative}.illustration{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:5px;box-shadow:0 15px 40px #53493921;cursor:zoom-in;background:#e6e0d4}.image-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#878174}.image-caption{flex:none;padding:16px 30px 23px;display:flex;align-items:center;justify-content:space-between;gap:12px}.image-caption span{color:#7a7971;font-size:11px;line-height:1.6}.text-button{display:inline-flex;align-items:center;gap:6px;border:0;padding:5px 0;background:none;color:#546e5b;font-size:11px;font-weight:700;white-space:nowrap}.text-button:hover{color:#253e2d}.text-button svg{width:15px;height:15px}.reader-pane{min-width:0;min-height:0;background:#fcfbf8;display:flex;flex-direction:column;position:relative}.reading-head{height:71px;padding:0 clamp(28px,5.1vw,84px);border-bottom:1px solid #ebe9e2;gap:16px}.reading-head-left{display:flex;align-items:center;gap:12px;min-width:0}.reading-head-actions{display:flex;align-items:center;gap:18px;flex:none}.full-story-button{font-size:12px}.section-label{color:#928f85;font-size:11px;font-weight:700;letter-spacing:.12em;white-space:nowrap}.head-divider{width:1px;height:19px;background:#e2dfd5}.chapter-picker{max-width:310px;border:0;background:transparent;padding:8px 2px;display:flex;align-items:center;gap:7px;color:#394e3e;font-size:12px;font-weight:700}.chapter-picker span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-picker svg{flex:none;width:14px;height:14px}.reading-scroll{overflow-y:auto;flex:1;scroll-behavior:smooth;scrollbar-color:#d5d0c5 transparent}.reading-content{max-width:1100px;margin:0 auto;padding:45px clamp(24px,3vw,60px) 86px}.story-kicker{color:#a47e52;font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;margin:0 0 12px}.title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 18px;margin-bottom:15px}.story-title{flex:1 1 auto;font:38px/1.35 "DM Serif Display",Noto Sans SC,serif;font-weight:600;letter-spacing:-.025em;margin:0;color:#262d26}.story-intro{font-size:13px;line-height:1.8;color:#88877d;margin:0 0 24px}.toolbar{display:flex;align-items:center;justify-content:flex-start;gap:7px;flex-wrap:wrap;width:100%}.play-button{border:0;background:#385b46;color:#fff;padding:10px 15px;border-radius:7px;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;transition:background .15s}.play-button:hover{background:#2b4835}.play-button.playing{background:#a4714c}.mode-select,.speed-select,.voice-select{border:1px solid #e7e4db;border-radius:7px;background:#fcfbf8;color:#5d6257;font-size:11px;padding:9px 10px}.voice-select{max-width:155px}.preview-button{border:1px solid #e7e4db;border-radius:7px;background:#fcfbf8;color:#546e5b;font-size:11px;padding:8px 9px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.preview-button:hover{background:#eef2ec}.preview-button svg{width:14px;height:14px;stroke-width:1.8}.paragraph-list{border-top:1px solid #e9e7df}.story-block{padding:25px 0 27px;border-bottom:1px solid #ebe9e2;scroll-margin-top:14px;transition:background .2s}.story-block:after{content:"";display:block;clear:both}.story-block.is-speaking{background:#f3f5ee;box-shadow:16px 0 #f3f5ee,-16px 0 #f3f5ee}.block-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.block-number{color:#8e9e88;font-size:10px;letter-spacing:.12em;font-weight:700}.block-actions{display:flex;gap:5px}.round-button{border:0;background:transparent;color:#a6a79c;display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border-radius:5px;font-size:10px}.round-button:hover{color:#365941;background:#eef2ec}.round-button svg{width:13px;height:13px}.paragraph-storyboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:1px 0 18px}.storyboard-panel{min-width:0;margin:0}.storyboard-panel img{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover;border-radius:5px;background:#eee8db;box-shadow:0 4px 15px #5349391a}.storyboard-panel figcaption{display:flex;align-items:flex-start;gap:5px;margin-top:7px;color:#88877d;font-size:9px;line-height:1.45}.storyboard-panel figcaption span{display:inline-grid;flex:0 0 14px;height:14px;place-items:center;border-radius:50%;color:#fff;background:#8e9e88;font-size:8px}.paragraph-scene{float:left;width:164px;margin:2px 18px 12px 0}.scene-frame{position:relative;width:100%;aspect-ratio:1 / .88;overflow:hidden;border-radius:5px;background:#eee8db;box-shadow:0 4px 15px #5349391a}.scene-frame img{display:block}.scene-panel{position:absolute;max-width:none;width:var(--scene-width);height:auto;left:var(--scene-left);top:var(--scene-top)}.paragraph-scene figcaption{margin-top:7px;color:#88877d;font-size:10px;line-height:1.5}.english,.translation{scroll-margin-top:14px}.english{font-size:18px;line-height:1.9;color:#303730;margin:0 0 17px;letter-spacing:.005em}.english strong{font-weight:700;color:#2e5340;cursor:pointer;border-bottom:1px dotted #a1b4a5}.english strong:hover{background:#e6efe4}.translation{font-size:14px;line-height:2;color:#777970;margin:0}.translation-label{display:inline-block;color:#a8a79c;font-size:10px;letter-spacing:.06em;margin-right:11px;vertical-align:1px;white-space:nowrap}.route-card{margin:35px 0;padding:19px 21px;background:#f4f1e9;border-left:3px solid #ba9566;border-radius:0 6px 6px 0}.route-card .eyebrow{display:block;margin-bottom:9px}.route-card p{margin:0;color:#696558;line-height:1.8;font-size:13px}.vocab-section{margin-top:36px}.vocab-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e8e5dc;padding-bottom:15px}.vocab-header h2{margin:0;font-size:17px;font-weight:700}.vocab-toggle{font-size:12px}.vocab-body{padding-top:16px}.vocab-search{width:100%;border:1px solid #e6e3da;border-radius:7px;padding:10px 13px;background:#fff;outline:none;font-size:12px}.vocab-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:13px;column-gap:20px}.vocab-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px solid #efede6;padding:9px 0;font-size:12px}.vocab-word{color:#385b46;font-weight:700;overflow-wrap:anywhere}.vocab-meaning{color:#818279;text-align:right}.vocab-empty{color:#999;font-size:12px}.end-nav{display:flex;justify-content:space-between;gap:10px;margin-top:43px}.end-nav button{border:1px solid #dedbd1;background:transparent;padding:10px 14px;border-radius:7px;color:#395540;font-size:12px}.end-nav button:hover{background:#f2f4ef}.drawer-backdrop,.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#171e19a8;z-index:20}.drawer{position:absolute;top:0;right:0;height:100%;width:min(410px,100%);background:#fcfbf8;box-shadow:-20px 0 60px #1118;display:flex;flex-direction:column}.drawer-top{padding:27px 27px 20px;border-bottom:1px solid #e9e6dd}.drawer-heading{display:flex;align-items:center;justify-content:space-between}.drawer-heading h2{margin:6px 0 0;font:27px "DM Serif Display",Noto Sans SC,serif}.drawer-search{margin-top:19px;width:100%;border:1px solid #e3e0d6;background:#fff;padding:11px 13px;border-radius:7px;font-size:12px}.drawer-list{padding:13px 16px 25px;overflow:auto}.chapter-item{display:flex;align-items:flex-start;gap:15px;width:100%;padding:14px 12px;border:0;text-align:left;border-radius:7px;background:transparent}.chapter-item:hover{background:#f4f2ec}.chapter-item.active{background:#eaf0e8}.chapter-item .chapter-id{color:#a1825d;font:18px "DM Serif Display",serif;min-width:34px}.chapter-item strong{display:block;font-size:13px;color:#343d33;margin-bottom:5px}.chapter-item small{color:#99998e;font-size:10px}.lightbox{display:flex;align-items:center;justify-content:center;padding:45px;cursor:zoom-out}.lightbox img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 20px 70px #0007}.lightbox-close{position:absolute;top:20px;right:20px;background:#fff}.word-popover{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:25;min-width:220px;max-width:calc(100vw - 32px);background:#2f4e3c;border-radius:9px;box-shadow:0 10px 30px #172b1e4d;padding:13px 17px;color:#fff;display:flex;align-items:center;gap:15px}.word-popover strong{font-size:15px}.word-popover span{font-size:12px;color:#d7e3d8}.word-popover button{border:0;color:#fff;background:transparent;font-size:17px;margin-left:auto}@media(max-width:980px){.workspace{grid-template-columns:minmax(330px,43%) minmax(0,1fr)}.workspace--scenes{grid-template-columns:minmax(0,1fr)}.reading-head{padding:0 25px}.reading-content{padding:35px 28px 70px}.visual-head{padding:19px 20px 14px}.image-stage{padding:0 20px}.image-caption{padding:14px 20px 20px}.story-title{font-size:29px}.english{font-size:16px}}@media(max-width:700px){.workspace{height:auto;min-height:0;display:flex;flex-direction:column}.full-story-button{font-size:0;gap:0}.full-story-button svg{width:18px;height:18px}.visual-pane{height:min(68vh,610px);min-height:370px;border-right:0;border-bottom:1px solid #e4e1d7}.visual-head{padding:12px 17px 10px}.visual-heading{font-size:18px;margin-top:3px}.image-stage{padding:0 17px}.image-caption{padding:8px 17px 11px}.reader-pane{min-height:80vh}.reading-head{height:56px;padding:0 17px;position:sticky;top:0;z-index:4;background:#fcfbf8}.reading-scroll{overflow:visible}.reading-content{padding:27px 19px 65px}.english,.translation{scroll-margin-top:70px}.story-title{font-size:27px}.paragraph-storyboard{display:flex;gap:11px;margin-right:-19px;padding-right:19px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.paragraph-storyboard::-webkit-scrollbar{display:none}.storyboard-panel{flex:0 0 min(72vw,270px);scroll-snap-align:start}.paragraph-scene{float:none;width:min(220px,100%);margin:0 0 16px}.english{font-size:16px;line-height:1.85}.translation{font-size:13px}.vocab-list{grid-template-columns:1fr}.lightbox{padding:15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
