/* Suma editorial: original components, no third-party visual assets. */
:root{font-family:ui-rounded,system-ui,-apple-system,sans-serif;color:#211a35;background:#fffbf5;line-height:1.6}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px max(24px,calc((100vw - 1100px)/2));background:#fff;border-bottom:1px solid #e8dff3}a{color:#6d28d9;text-underline-offset:3px}.brand{font-size:32px;font-weight:900;text-decoration:none}.brand small{font-size:13px;color:#655b73}nav,.actions,.heading{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.heading{justify-content:space-between}main{max-width:1100px;margin:36px auto;padding:0 24px}h1{font-size:clamp(26px,4vw,40px);line-height:1.15;letter-spacing:-1px}h2{line-height:1.3}button,input[type=submit]{border:0;background:#6d28d9;color:#fff;padding:12px 20px;border-radius:16px;font:inherit;font-weight:700;cursor:pointer;min-height:44px}button:hover,input[type=submit]:hover{background:#5220a2}input:not([type=checkbox]):not([type=submit]),textarea,select{display:block;width:100%;font:inherit;padding:12px;border:1px solid #b4a7c8;border-radius:12px;background:#fff;color:#211a35}input[type=file]{margin:12px 0}label{display:block;font-weight:650;margin-top:16px;margin-bottom:6px}form>input[type=submit]{margin-top:20px}.panel{padding:28px;border:1px solid #e8dff3;border-radius:24px;background:#fff;margin-bottom:24px}.login{max-width:520px;margin:70px auto}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:800;color:#655b73}.pill{display:inline-block;border-radius:99px;padding:5px 12px;background:#e9ddfc;font-size:13px}.book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.chapter{padding:24px 0;border-top:1px solid #e8dff3}.hint,small{color:#655b73}.notice{background:#d9f99d;border-radius:16px;padding:14px}.reading{font-size:19px;line-height:1.8;max-width:720px;margin:32px 0}audio{width:100%;margin:20px 0}:focus-visible{outline:3px solid #6d28d9;outline-offset:4px}@media(max-width:600px){header{align-items:flex-start;flex-direction:column}.panel{padding:20px}nav{gap:12px}main{padding:0 16px}}
