:root{--paper: #f4eee2;--paper-2: #efe7d6;--card: #fffdf8;--ink: #211e18;--ink-soft: #463f35;--muted: #7c7264;--accent: #b0492a;--accent-deep: #8d3a20;--gold: #a8843c;--line: rgba(33, 30, 24, .14);--line-soft: rgba(33, 30, 24, .08);--shadow: 0 1px 2px rgba(33, 30, 24, .06), 0 18px 50px -22px rgba(33, 30, 24, .4);--serif: "Spectral", Georgia, "Times New Roman", serif;--display: "Fraunces", "Spectral", Georgia, serif;--radius: 14px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--serif);color:var(--ink);background-color:var(--paper);background-image:radial-gradient(1200px 600px at 80% -10%,rgba(176,73,42,.06),transparent 60%),radial-gradient(900px 500px at -10% 10%,rgba(168,132,60,.07),transparent 55%);background-attachment:fixed;line-height:1.65;font-size:18px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent-deep);text-decoration:none}a:hover{text-decoration:underline}.wrap{width:100%;max-width:1060px;margin:0 auto;padding:0 24px}.app{min-height:100vh;display:flex;flex-direction:column}.site-main{flex:1}.muted{color:var(--muted)}.small{font-size:.85em}.kicker{font-family:var(--serif);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:600;color:var(--accent);margin:0 0 .8rem}.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--serif);font-size:.98rem;font-weight:600;line-height:1;padding:.78em 1.25em;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:transform .12s ease,background .18s ease,box-shadow .18s ease;text-decoration:none}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-solid{background:var(--accent);color:#fff7ee;box-shadow:0 10px 24px -12px #b0492acc}.btn-solid:hover{background:var(--accent-deep)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn-ghost:hover{background:#211e180a}.btn-sm{padding:.55em .95em;font-size:.88rem}.btn-block{width:100%;justify-content:center;padding:.95em 1.25em}.btn:disabled{opacity:.6;cursor:default;transform:none}.site-header{position:sticky;top:0;z-index:20;background:#f4eee2db;-webkit-backdrop-filter:saturate(160%) blur(10px);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--line-soft)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;padding-bottom:14px}.wordmark{display:inline-flex;align-items:center;gap:.6rem;color:var(--ink)}.wordmark:hover{text-decoration:none}.wordmark-mark{font-family:var(--display);font-weight:600;font-size:.95rem;letter-spacing:.02em;color:#fff7ee;background:var(--accent);border-radius:8px;padding:.32em .5em;line-height:1}.wordmark-text{font-family:var(--display);font-weight:600;font-size:1.18rem;letter-spacing:.01em}.site-nav{display:flex;align-items:center;gap:.5rem}.nav-link{color:var(--ink-soft);font-size:.95rem;padding:.4rem .6rem;border-radius:8px}.nav-link:hover{text-decoration:none;color:var(--ink);background:#211e180d}.nav-link.active{color:var(--accent-deep)}.nav-user{font-size:.92rem;color:var(--muted);padding-left:.4rem}.cover{border-bottom:1px solid var(--line-soft)}.cover-inner{padding:clamp(3.5rem,9vw,7rem) 24px clamp(3rem,7vw,5rem);max-width:880px}.cover-title{font-family:var(--display);font-weight:600;font-size:clamp(3rem,11vw,6.4rem);line-height:.96;letter-spacing:-.015em;margin:0 0 1.4rem}.cover-title .amp{color:var(--accent);font-style:italic;font-weight:400}.cover-opening{margin:0 0 2.2rem}.cover-lead{font-size:clamp(1.12rem,2.4vw,1.4rem);line-height:1.6;color:var(--ink-soft);max-width:46ch;margin:0 0 1rem}.cover-sign{font-style:italic;font-size:1rem;color:var(--muted);margin:.4rem 0 0}.cover-actions{display:flex;flex-wrap:wrap;gap:.8rem}.toc{padding:clamp(2.5rem,6vw,4.5rem) 0 4rem}.toc-head{max-width:60ch;margin-bottom:2rem}.section-title{font-family:var(--display);font-weight:600;font-size:clamp(1.7rem,4vw,2.3rem);margin:0 0 .5rem;letter-spacing:-.01em}.chapter-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.chapter-row{border-bottom:1px solid var(--line)}.chapter-link{display:grid;grid-template-columns:3rem 1fr auto;align-items:center;gap:1.25rem;padding:1.4rem .6rem;color:var(--ink);transition:background .16s ease,padding .16s ease}.chapter-link:hover{text-decoration:none;background:#211e1809;padding-left:1rem;padding-right:1rem}.chapter-index{font-family:var(--display);font-size:1.5rem;font-weight:500;color:var(--muted);font-feature-settings:"tnum"}.chapter-row.locked .chapter-index{color:#7c72648c}.chapter-main{display:flex;flex-direction:column;gap:.2rem;min-width:0}.chapter-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;font-weight:600;color:var(--accent)}.chapter-title{font-family:var(--display);font-size:clamp(1.15rem,2.6vw,1.4rem);font-weight:500;line-height:1.25}.chapter-date{font-size:.85rem;color:var(--muted)}.chapter-aside{display:flex;align-items:center;gap:1rem;color:var(--muted)}.chip{display:inline-flex;align-items:center;gap:.35em;font-size:.76rem;font-weight:600;letter-spacing:.02em;padding:.36em .7em;border-radius:999px;border:1px solid var(--line);white-space:nowrap}.chip-free{color:var(--accent-deep);border-color:#b0492a4d;background:#b0492a12}.chip-ok{color:#356a3e;border-color:#356a3e52;background:#356a3e14}.chip-wait{color:var(--gold);border-color:#a8843c59;background:#a8843c1a}.chip-lock{color:var(--muted);background:#211e180a}.reader-wrap{max-width:720px;padding-top:clamp(2rem,5vw,3.5rem);padding-bottom:4rem}.reader-state{padding:4rem 24px;text-align:center}.back-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--muted);margin-bottom:2rem}.back-link:hover{color:var(--ink);text-decoration:none}.chapter-header{margin-bottom:2.5rem;padding-bottom:1.8rem;border-bottom:1px solid var(--line)}.chapter-h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,5.5vw,3.1rem);line-height:1.08;letter-spacing:-.015em;margin:0 0 .8rem}.chapter-sub{font-style:italic;font-size:1.15rem;color:var(--ink-soft);margin:0 0 .6rem}.chapter-meta{font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0}.prose{font-size:1.18rem;line-height:1.78;color:var(--ink)}.prose p{margin:0 0 1.4rem}.prose .first-para:first-letter{float:left;font-family:var(--display);font-weight:600;font-size:3.7em;line-height:.72;padding:.05em .1em 0 0;color:var(--accent)}.locked-area{position:relative;margin-top:.5rem;min-height:420px}.ghost{filter:blur(5px);opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none;max-height:560px;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 32%,transparent 92%);mask-image:linear-gradient(to bottom,#000 0%,#000 32%,transparent 92%)}.lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding:clamp(2rem,8vw,5rem) 16px}.lock-card,.soon-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:clamp(1.8rem,4vw,2.6rem);max-width:440px;text-align:center}.soon-card{margin:1rem auto 0}.lock-badge{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#b0492a1a;color:var(--accent);margin-bottom:1rem}.lock-badge.wait{background:#a8843c24;color:var(--gold)}.lock-card h3,.soon-card h3{font-family:var(--display);font-weight:600;font-size:1.5rem;margin:0 0 .6rem}.lock-card p,.soon-card p{color:var(--ink-soft);margin:0 0 .5rem;font-size:1.02rem;line-height:1.6}.lock-actions{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin-top:1.2rem}.reader-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:3.5rem;padding-top:1.8rem;border-top:1px solid var(--line)}.reader-nav-link{display:inline-flex;align-items:center;gap:.6rem;color:var(--ink);max-width:46%}.reader-nav-link:hover{text-decoration:none;color:var(--accent-deep)}.reader-nav-link span{display:flex;flex-direction:column;font-family:var(--display);font-weight:500;line-height:1.2}.reader-nav-link.next{text-align:right;margin-left:auto}.reader-nav-link small{font-family:var(--serif);text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;color:var(--muted);margin-bottom:.2rem}.auth-wrap{display:flex;justify-content:center;padding:clamp(2.5rem,7vw,5rem) 24px}.auth-card{width:100%;max-width:440px;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:clamp(1.8rem,5vw,2.8rem)}.auth-title{font-family:var(--display);font-weight:600;font-size:clamp(1.6rem,4vw,2.1rem);margin:0 0 .5rem;line-height:1.12}.auth-lead{margin:0 0 1.8rem}.form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.4rem}.field span{font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.field input{font-family:var(--serif);font-size:1.02rem;padding:.8rem .95rem;border:1px solid var(--line);border-radius:12px;background:#fffefb;color:var(--ink);transition:border .16s ease,box-shadow .16s ease}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #b0492a26}.auth-switch{margin:1.4rem 0 0;text-align:center}.admin{padding:clamp(2rem,5vw,3.5rem) 0 4rem}.admin-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.8rem}.admin-head .section-title{margin:0}.admin-head-actions{display:flex;gap:.5rem}.admin-testmode{display:inline-block;margin:-.6rem 0 1.6rem;padding:.3em .7em;border-radius:999px;background:#a8843c1f;border:1px solid rgba(168,132,60,.35);color:var(--gold);font-weight:600;letter-spacing:.02em}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:2.5rem}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.3rem;display:flex;flex-direction:column;gap:.2rem;box-shadow:0 1px 2px #211e180a}.stat-num{font-family:var(--display);font-size:2.1rem;font-weight:600;line-height:1;color:var(--accent)}.stat-label{font-size:.85rem;color:var(--muted)}.admin-section-title{font-family:var(--display);font-weight:600;font-size:1.3rem;margin:0 0 .9rem}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin-bottom:2.5rem;-webkit-overflow-scrolling:touch}.admin-table{width:100%;border-collapse:collapse;font-size:.94rem;min-width:560px}.admin-table th,.admin-table td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--line-soft);vertical-align:middle}.admin-table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:#211e1808;font-weight:600}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:#211e1805}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums}.admin-table .empty{text-align:center;color:var(--muted);padding:2rem 1rem}.cell-strong{display:block;font-weight:600}.cell-sub{display:block;font-size:.82rem;color:var(--muted)}.mono{font-family:SFMono-Regular,ui-monospace,Menlo,Consolas,monospace;font-size:.88em}.admin-foot code{font-family:SFMono-Regular,ui-monospace,Menlo,Consolas,monospace;font-size:.85em;background:#211e180d;padding:.1em .35em;border-radius:4px}@media (max-width: 620px){.admin-stats{grid-template-columns:1fr;gap:.7rem}}.error-banner{background:#b0492a14;border:1px solid rgba(176,73,42,.3);color:var(--accent-deep);padding:.7rem .9rem;border-radius:10px;font-size:.92rem;margin:.4rem 0}.loading{padding:2rem 0}.site-footer{border-top:1px solid var(--line-soft);padding:2.5rem 0 3rem;margin-top:2rem}.site-footer p{margin:.2rem 0;font-size:.92rem}@media (max-width: 620px){body{font-size:17px}.wordmark-text{display:none}.chapter-link{grid-template-columns:2.2rem 1fr;gap:.9rem;padding:1.15rem .2rem}.chapter-link:hover{padding-left:.4rem;padding-right:.4rem}.chapter-aside{grid-column:1 / -1;justify-content:flex-start;padding-left:3.1rem}.chapter-aside svg:last-child{display:none}.reader-nav-link{max-width:48%}.nav-user{display:none}}@media (max-width: 380px){.cover-actions .btn{width:100%;justify-content:center}}
