
:root{--cream:#faf5e9;--ink:#214346;--muted:#6d7771;--gold:#edc277;--line:#e4dfd1;--paper:#fffdf7}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,a,select{touch-action:manipulation}button,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #bf7f28;outline-offset:4px}button:disabled{opacity:.35;cursor:default}a{color:inherit}button{color:inherit}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:normal}header{max-width:1240px;margin:auto;padding:25px 36px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:23px;font-family:Georgia,serif}.moon{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:var(--ink);color:var(--gold);font-size:30px}.tiny{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.hero{max-width:1240px;padding:32px 36px 60px;margin:auto;display:grid;grid-template-columns:1fr 1.12fr;gap:64px;align-items:center}.eyebrow{display:flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#6d8275}.dot{width:7px;height:7px;border-radius:50%;background:#c5a05f}h1{font-size:clamp(42px,5vw,66px);line-height:1.08;margin:22px 0}h1 em{color:#a56f30;font-weight:normal}.intro{font-size:17px;line-height:1.8;color:var(--muted);max-width:420px}.primary{border:0;border-radius:40px;background:var(--ink);color:white;font-size:15px;padding:17px 25px;display:inline-flex;gap:15px;align-items:center}.primary:hover{background:#31575a}.hero .primary{margin-top:16px}.meta{font-size:12px;color:var(--muted);margin-top:17px}.hero-art{position:relative}.hero-art img{display:block;width:100%;aspect-ratio:1.18;object-fit:cover;border-radius:140px 140px 18px 18px;box-shadow:0 22px 60px #253e3420}.badge{position:absolute;bottom:22px;left:-20px;background:var(--paper);border-radius:13px;padding:15px 21px;box-shadow:0 10px 30px #162d2520;display:flex;align-items:center;gap:14px;font-size:13px}.badge span:first-child{font-size:25px}.badge small{display:block;color:var(--muted);margin-top:4px}.catalog{border-top:1px solid var(--line);max-width:1168px;margin:auto;padding:40px 0 60px}.section-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:25px}.section-top h2{font-size:33px;margin:0}.section-top span{font-size:13px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}.card img{width:100%;aspect-ratio:1.7;object-fit:cover;display:block}.card-content{padding:22px}.pill{font-size:11px;background:#e9efe3;border-radius:20px;padding:5px 10px;display:inline-block;color:#526149}.card h3{font-size:24px;line-height:1.25;margin:14px 0 9px}.card p{color:var(--muted);line-height:1.6;font-size:14px;margin-bottom:21px}.link-button{border:0;background:none;padding:0;font-weight:600;font-size:14px}.link-button:hover{text-decoration:underline}.soon{color:var(--muted);font-size:12px}.note{text-align:center;font-family:Georgia,serif;font-size:24px;padding:26px 20px 35px;color:#7c8679}footer{border-top:1px solid var(--line);max-width:1168px;margin:auto;padding:23px 0 30px;display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted)}[hidden]{display:none!important}.reader{min-height:100dvh;background:var(--cream)}.reader-header{max-width:1300px;padding:18px 28px;gap:12px}.back{border:1px solid var(--line);background:transparent;border-radius:30px;padding:11px 15px;font-size:14px}.tools{display:flex;gap:8px;align-items:center}.tool{border:1px solid var(--line);background:var(--paper);width:44px;height:44px;border-radius:50%;font-size:18px}.book{max-width:1200px;margin:25px auto 100px;display:grid;grid-template-columns:1.15fr 1fr;gap:48px;padding:0 28px;align-items:center}.book-art img{width:100%;display:block;border-radius:18px;aspect-ratio:1.3;object-fit:cover}.page-label{color:var(--muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.page-text h2{font-size:34px;line-height:1.2;margin:15px 0 23px}.page-text p{font-size:var(--reading-size,19px);line-height:1.65;margin:0;max-width:500px}.reader-footer{position:fixed;bottom:0;left:0;right:0;background:var(--paper);border-top:1px solid var(--line);padding:12px 20px calc(12px + env(safe-area-inset-bottom));z-index:5}.controls{max-width:900px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.nav{border:1px solid var(--line);border-radius:28px;background:var(--cream);padding:12px 20px;min-width:100px}.nav.next{background:var(--ink);color:white;border-color:var(--ink)}.page-choice{display:flex;align-items:center;gap:10px;font-size:13px}.page-choice select{border:0;background:transparent;color:var(--ink);padding:9px;max-width:100px}.progress{height:3px;background:var(--line);position:absolute;top:-3px;left:0;right:0}.progress span{display:block;height:3px;background:#bd9456;transition:width .2s}.hint{max-width:1200px;margin:0 auto;text-align:center;font-size:12px;color:var(--muted)}.night{--cream:#152b30;--paper:#1d373b;--ink:#eee9da;--muted:#b2bfb9;--line:#345056}.night .nav.next{background:#e8bd77;color:#223a3b}.end{text-align:center;padding:35px 20px;grid-column:1/-1}.end h2{font-size:42px}.end p{font-size:18px;line-height:1.7}.error{padding:35px;text-align:center}
@media(max-width:900px){.hero{gap:35px}.catalog,footer{margin:0 30px}.book{gap:28px}.page-text h2{font-size:28px}.page-text p{font-size:var(--reading-size,17px)}}
@media(max-width:650px){header{padding:18px 20px}.brand{font-size:21px}.tiny{font-size:10px}.hero{display:flex;flex-direction:column;padding:20px 22px 38px;gap:28px;align-items:stretch}.hero-copy h1{font-size:44px;margin:18px 0}.intro{font-size:16px;margin-bottom:8px}.hero-art{margin:0 14px}.hero-art img{aspect-ratio:1.4;border-radius:100px 100px 16px 16px}.badge{left:-14px;bottom:12px;padding:12px 16px}.catalog{padding:30px 0;margin:0 22px}.section-top h2{font-size:29px}.section-top span{font-size:11px}.cards{grid-template-columns:1fr;gap:20px}.card img{aspect-ratio:1.9}.card-content{padding:20px}.note{font-size:21px}.section-top{gap:10px}footer{margin:0 22px;flex-direction:column}.reader-header{padding:12px 16px}.reader-header .brand{font-size:16px}.reader-header .moon{display:none}.back{padding:10px 12px;font-size:12px}.tools{gap:5px}.tool{width:39px;height:39px;font-size:16px}.book{display:block;margin:0 auto 110px;padding:0 18px}.book-art img{aspect-ratio:1.65;border-radius:13px}.page-text{padding:21px 3px 0}.page-text h2{font-size:28px;margin:12px 0 18px}.page-text p{font-size:var(--reading-size,18px);line-height:1.6}.hint{display:none}.nav{padding:12px 16px;min-width:80px;font-size:13px}.controls{gap:5px}.page-choice{gap:0}.page-choice label{display:none}.reader-footer{padding-left:14px;padding-right:14px}.end h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.filters{display:flex;gap:12px;margin:20px 0 28px}.filters input{flex:1;min-width:140px}.filters input,.filters select{font:inherit;padding:13px 15px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--paper)}.controls select{font:inherit;color:var(--ink);border:0;background:var(--paper);padding:12px}.admin-shell{max-width:1400px;margin:auto;padding:0 30px 50px}.admin-head{padding:25px 0}.admin-head>a:last-child{font-size:13px}.admin-intro{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:25px 0 35px}.admin-intro h1{font-size:42px;margin:13px 0}.admin-intro p{color:var(--muted);line-height:1.6}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.secondary,.small-button{font:inherit;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:24px;padding:12px 17px;font-size:13px}.secondary:hover{background:#eee8d9}.small-button{padding:7px 10px;margin-left:5px;border-radius:8px}.notice{padding:16px 20px;border:1px solid #b9c8a9;background:#edf3e7;border-radius:12px;margin-bottom:20px;line-height:1.5}.error-notice{background:#fff0e8;border-color:#d5aa91}.admin-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:30px}.story-list{align-self:start;position:sticky;top:20px}.story-list h2{font-size:24px;margin:12px 0 20px}.story-row{width:100%;display:flex;text-align:left;gap:12px;align-items:center;border:1px solid var(--line);background:var(--paper);border-radius:13px;padding:12px;margin-bottom:12px}.story-row.selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.story-row img{width:65px;height:65px;object-fit:cover;border-radius:9px}.story-row strong{font-size:13px;line-height:1.5;display:block}.story-row small{display:block;font-size:11px;margin-top:8px;color:var(--muted)}.admin-tip{font-size:13px;color:var(--muted);line-height:1.8;margin-top:26px}.story-list>a{font-size:13px}.editor,.empty-editor,.import-box{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:25px;min-width:0}.empty-editor{text-align:center;padding:70px 40px;align-self:start}.empty-moon{font-size:70px;color:#b5904c}.empty-editor h2{font-size:30px}.empty-editor p{color:var(--muted);line-height:1.8}.editor-heading{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:30px}.editor h2{font-size:28px;margin:13px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}.editor label,.import-box label{display:block;font-size:13px;line-height:1.6;margin-bottom:12px}.editor input,.editor textarea,.editor select,.import-box input{display:block;width:100%;font:inherit;font-size:15px;border:1px solid #d9dece;background:#fffefb;color:var(--ink);border-radius:9px;padding:11px 13px;margin-top:7px}.editor textarea{resize:vertical;line-height:1.65}.pages-heading{display:flex;justify-content:space-between;align-items:center;margin:25px 0 12px}.pages-heading span{font-size:12px;color:var(--muted)}.page-editor{border:1px solid var(--line);border-radius:13px;padding:17px;margin-bottom:20px}.page-editor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}.page-editor-head strong{font-size:13px}.page-editor-grid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:22px}.edit-image{width:100%;aspect-ratio:1.5;object-fit:cover;border-radius:10px}.image-empty{display:grid;place-items:center;text-align:center;aspect-ratio:1.5;background:var(--cream);border:1px dashed var(--line);padding:20px;color:var(--muted);font-size:13px}.editor .file-label{margin-top:12px}.editor input[type=file]{font-size:11px;padding:6px}.page-editor-grid small{color:var(--muted);font-size:10px}.save-bar{margin-top:30px;border-top:1px solid var(--line);padding-top:24px;display:flex;flex-direction:column;gap:20px}.save-bar strong{display:block;font-size:14px}.save-bar a{display:inline-block;font-size:12px;margin-top:8px}.import-box{margin-bottom:25px}.import-box h2{margin:0 0 10px;font-size:27px}.import-box p{color:var(--muted);font-size:14px}.import-box .admin-actions{margin-top:15px}
@media(max-width:950px){.admin-layout{grid-template-columns:240px minmax(0,1fr);gap:20px}.page-editor-grid{grid-template-columns:1fr}.edit-image{max-height:240px}.admin-intro{align-items:flex-start;flex-direction:column}.admin-intro h1{font-size:37px}}
@media(max-width:650px){.filters{flex-wrap:wrap}.filters input{width:100%;flex-basis:100%}.filters select{flex:1;min-width:0;font-size:13px}.admin-shell{padding:0 16px 30px}.admin-head .brand{font-size:19px}.admin-head>a:last-child{font-size:11px}.admin-layout{grid-template-columns:1fr}.story-list{position:static}.admin-intro{padding-top:15px}.admin-intro h1{font-size:33px}.editor,.empty-editor,.import-box{padding:18px}.editor-heading{align-items:flex-start;gap:10px}.editor-heading h2{font-size:25px}.form-grid{grid-template-columns:1fr;gap:8px}.page-editor{padding:12px}.save-bar .admin-actions{flex-direction:column}.save-bar button{width:100%}.admin-actions .primary{font-size:13px;padding:14px 18px}.page-editor-head{flex-wrap:wrap}}
.read-aloud{max-width:760px;margin:20px auto 120px;padding:18px 22px;border-radius:18px;background:var(--card,#fff9ee);border:1px solid #d8cdbb}.speech-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.speech-controls label{display:flex;gap:8px;align-items:center;font-size:14px}.speech-controls select{max-width:min(270px,65vw);padding:10px;border-radius:10px;background:transparent;color:inherit;border:1px solid #aa9f90}.speech-note{font-size:13px;line-height:1.5;margin:12px 0 0}.night .read-aloud{background:#263a38;border-color:#50635e}.night .speech-controls select option{background:#263a38;color:#fff}@media(max-width:600px){.read-aloud{margin:18px 16px 120px;padding:16px}.speech-controls label{width:100%}}
.loading,.legal{max-width:800px;margin:40px auto;padding:20px;line-height:1.8}.legal h1{font-size:40px}.book{margin-bottom:25px}.read-aloud{margin-bottom:25px}.reader{padding-bottom:120px}.speech-controls{justify-content:center}.hint{margin-bottom:24px}.voice-label{font-size:12px}footer{flex-wrap:wrap}.reader-header .brand{font-size:21px}.filters{flex-wrap:wrap}.filters input{min-width:180px}.empty-state{text-align:center;padding:40px 20px}.legal-note{font-size:13px;background:#fff0ce;border-radius:10px;padding:12px 16px}.admin-shell input[type=password]{max-width:400px}.admin-shell .login{max-width:520px;margin:45px auto}.admin-shell textarea{min-height:110px}.admin-tools{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.reader-footer .controls select{max-width:105px}.error{padding:14px;background:#ffe9dc;border-radius:8px}.notice{padding:14px;background:#e9efe3;border-radius:8px}.admin-status{position:sticky;top:0;z-index:2}.night .speech-controls option{background:#233b39}.admin-actions{flex-wrap:wrap}.legal p{overflow-wrap:anywhere}@media(max-width:650px){.reader-header{padding:14px}.reader-header .brand{display:none}.speech-controls select{max-width:230px}.book{margin-top:10px}.page-text h2{font-size:28px}.filters select{flex-basis:42%}.tiny{display:none}.legal{margin:20px auto}.legal h1{font-size:32px}}
