/*
Theme Name: Yeolreads Reader
Theme URI: https://yeolreads.com/
Author: Yeolreads
Description: Custom Yeolreads block theme for novel reading, library discovery, 18+ separation, live updates and reader controls.
Version: 2.5.16
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: yeolreads-reader
*/

:root{
  --yeol-bg:#efe9ee;
  --yeol-paper:#fffdfd;
  --yeol-ink:#211a23;
  --yeol-muted:#756b76;
  --yeol-accent:#79526f;
  --yeol-accent-dark:#4f3651;
  --yeol-border:rgba(79,54,81,.14);
  --yeol-shadow:0 18px 45px rgba(31,24,35,.08);
  --yeol-reader-font-size:1.12rem;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--yeol-bg);color:var(--yeol-ink)}
a{color:inherit}
.wp-site-blocks{overflow:hidden}
.yeol-eyebrow{font-size:.76rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase;color:var(--yeol-accent)}
.yeol-muted{color:var(--yeol-muted)}
.yeol-empty{padding:1.2rem;border:1px dashed var(--yeol-border);border-radius:14px;color:var(--yeol-muted)}

/* Header */
.yeol-site-header{background:var(--yeol-accent-dark)!important;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.yeol-header-inner{min-height:88px;padding-left:clamp(18px,4vw,48px);padding-right:clamp(18px,4vw,48px)}
.yeol-header-inner .wp-block-site-title a{color:#fff;text-decoration:none;font-weight:900;letter-spacing:-.03em}
.yeol-true-nav{margin-left:auto}.yeol-true-nav-desktop{display:flex;align-items:center;justify-content:flex-end;gap:clamp(.85rem,1.7vw,1.7rem)}
.yeol-true-nav a{color:inherit;text-decoration:none;font-weight:750}.yeol-true-nav a:hover{opacity:.72}
.yeol-true-nav-mobile{display:none;position:relative}.yeol-true-nav-mobile summary{cursor:pointer;list-style:none;font-weight:800;padding:.55rem .9rem;border:1px solid rgba(255,255,255,.28);border-radius:999px}.yeol-true-nav-mobile summary::-webkit-details-marker{display:none}
.yeol-true-nav-mobile-panel{position:absolute;right:0;top:calc(100% + .6rem);z-index:100;min-width:min(320px,88vw);display:grid;gap:.25rem;padding:.65rem;border:1px solid var(--yeol-border);border-radius:14px;background:#fffdfd;box-shadow:var(--yeol-shadow);color:var(--yeol-ink)}
.yeol-true-nav-mobile-panel a{display:block;padding:.75rem .85rem;border-radius:10px}.yeol-true-nav-mobile-panel a:hover{background:#efe9ee;opacity:1}
@media(max-width:980px){.yeol-true-nav-desktop{display:none}.yeol-true-nav-mobile{display:block}.yeol-header-inner{flex-wrap:nowrap!important}}

/* Homepage */
.yeol-home{padding-bottom:64px}.yeol-home-intro{padding:clamp(38px,6vw,72px) clamp(18px,4vw,56px) 22px}.yeol-home-intro .wp-block-search{max-width:520px;margin-left:auto}.yeol-home-intro h1{font-size:clamp(2.3rem,5vw,4.8rem);letter-spacing:-.055em;line-height:.95;margin:.45rem 0}
.yeol-library-switcher{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:800px;margin:0 auto 28px;padding:8px;border:1px solid var(--yeol-border);border-radius:18px;background:rgba(255,255,255,.56);box-shadow:0 12px 34px rgba(58,37,62,.07)}
.yeol-library-tab{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border-radius:13px;color:#352837;text-decoration:none}.yeol-library-tab span{font-weight:850}.yeol-library-tab small{opacity:.67}.yeol-library-tab.is-active{background:#fff;box-shadow:0 8px 22px rgba(58,37,62,.11)}.yeol-library-tab--adult b{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 7px;border-radius:999px;background:#6f3f67;color:#fff;font-size:.72rem;font-weight:900}
@media(max-width:680px){.yeol-library-switcher{grid-template-columns:1fr}.yeol-library-tab{align-items:flex-start;flex-direction:column;gap:3px}}

/* Pinned support post */
/* Site-wide footer promotion for original authors. */
.yeol-footer-support{max-width:1180px;margin:0 auto 28px;padding:0}
.yeol-footer-support-card{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 18px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(255,255,255,.08)}
.yeol-footer-support-image{display:flex;width:140px;height:82px;align-items:center;justify-content:center;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.08)}
.yeol-footer-support-image img{display:block;width:100%;height:100%;object-fit:contain!important;object-position:center}
.yeol-footer-support-copy{min-width:0}.yeol-footer-support-copy .yeol-footer-support-kicker{display:block;margin-bottom:.2rem;font-size:.68rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#eadde7}.yeol-footer-support-copy h2{margin:.08rem 0 .3rem;font-size:1.18rem;line-height:1.2;color:#fff}.yeol-footer-support-copy p{margin:0;color:rgba(255,255,255,.82);font-size:.88rem;line-height:1.45}.yeol-footer-support-button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:.62rem .9rem;border-radius:999px;background:#fff;color:#4f3651!important;text-decoration:none;font-size:.78rem;font-weight:900}.yeol-footer-support-button:hover{opacity:.9}
.yeol-footer-bottom{padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}
@media(max-width:760px){.yeol-footer-support-card{grid-template-columns:92px minmax(0,1fr);gap:12px;padding:12px}.yeol-footer-support-image{width:92px;height:66px}.yeol-footer-support-copy h2{font-size:1rem}.yeol-footer-support-copy p{font-size:.78rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.yeol-footer-support-button{grid-column:1/-1;width:100%;margin-top:2px}.yeol-site-footer{padding-left:14px;padding-right:14px}}

/* Featured shelf */
.yeol-featured-shelf,.yeol-library-section,.yeol-latest-section,.yeol-toc-section{max-width:1480px;margin:0 auto;padding:28px clamp(18px,4vw,56px)}
.yeol-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 15px}.yeol-section-heading h2,.yeol-featured-shelf>h2{margin:0;font-size:clamp(1.5rem,2.5vw,2.2rem)}
.yeol-carousel{position:relative}.yeol-scroll-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,250px);gap:18px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:4px 2px 14px;scrollbar-width:none}.yeol-scroll-track::-webkit-scrollbar{display:none}.yeol-carousel-actions{display:flex;justify-content:flex-end;gap:8px;margin-bottom:10px}.yeol-scroll-button{width:42px;height:42px;border:1px solid var(--yeol-border);border-radius:50%;background:#fff;color:var(--yeol-accent-dark);font-size:1.5rem;cursor:pointer}

/* Novel cards: portrait rectangles, full image visible, never cropped. */
.yeol-novel-card{position:relative;min-width:0;scroll-snap-align:start}.yeol-novel-cover{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:2/3;overflow:hidden;border-radius:13px;background:#f8f3f7;border:1px solid rgba(79,54,81,.09);text-decoration:none}.yeol-novel-cover img{display:block;width:100%;height:100%;object-fit:contain!important;object-position:center;background:#f8f3f7}.yeol-cover-placeholder{display:grid;place-items:center;width:100%;height:100%;font-size:3rem;font-weight:900;color:var(--yeol-accent);background:linear-gradient(145deg,#f8f3f7,#e7dce5)}
.yeol-novel-title{display:block;margin:.68rem .1rem .2rem;text-decoration:none;font-size:.92rem;font-weight:850;line-height:1.28}.yeol-novel-meta{display:block;margin:0 .1rem;color:var(--yeol-muted);font-size:.77rem}.yeol-adult-card-badge{position:absolute;top:8px;right:8px;z-index:4;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 7px;border-radius:999px;background:#6f3f67;color:#fff;font-size:.72rem;font-weight:900;box-shadow:0 4px 12px rgba(0,0,0,.16)}

/* Grid + live TOC right */
.yeol-library-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:24px;align-items:start}.yeol-grid-panel{min-width:0}.yeol-novel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 16px}.yeol-live-panel{position:relative;overflow:hidden;border:1px solid var(--yeol-border);border-radius:18px;background:#fffdfd;box-shadow:0 12px 30px rgba(31,24,35,.05)}.yeol-live-panel h2{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:15px 16px;border-bottom:1px solid var(--yeol-border);font-size:1.1rem}.yeol-live-label{display:inline-flex;padding:.2rem .5rem;border-radius:999px;background:#efe9ee;color:var(--yeol-accent);font-size:.63rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.yeol-live-scroll{overflow:hidden;max-height:100%}.yeol-live-scroll-inner{will-change:transform}.yeol-live-row{display:grid;gap:3px;padding:11px 15px;border-bottom:1px solid rgba(79,54,81,.08);text-decoration:none}.yeol-live-row strong{font-size:.86rem;line-height:1.3}.yeol-live-row small{color:var(--yeol-muted);font-size:.72rem}.yeol-live-row:hover{background:#faf7f9}.yeol-live-toc-panel{height:760px;max-height:760px}.yeol-toc-letter{padding:8px 15px 3px;color:var(--yeol-accent);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:1120px){.yeol-novel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.yeol-library-layout{grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:820px){.yeol-library-layout{grid-template-columns:1fr}.yeol-live-toc-panel{height:420px;max-height:420px}.yeol-novel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.yeol-novel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px}.yeol-novel-title{font-size:.82rem}}

/* Latest novels now a wide rectangle below the grid. */
.yeol-latest-rectangle{height:300px;max-height:300px}.yeol-latest-rectangle .yeol-live-scroll-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.yeol-latest-rectangle .yeol-live-row:nth-child(odd){border-right:1px solid rgba(79,54,81,.08)}
@media(max-width:700px){.yeol-latest-rectangle{height:360px;max-height:360px}.yeol-latest-rectangle .yeol-live-scroll-inner{grid-template-columns:1fr}.yeol-latest-rectangle .yeol-live-row:nth-child(odd){border-right:0}}

/* Adult library mirrors normal homepage */
.yeol-adult-library-shell{max-width:none;margin:0;padding:32px 0 70px}.yeol-adult-library-head{max-width:1480px;margin:0 auto;padding:28px clamp(18px,4vw,56px) 8px}.yeol-adult-library-head h1{margin:.2rem 0;font-size:clamp(2.4rem,5vw,4.6rem);letter-spacing:-.055em}.yeol-adult-library-head p{margin:.5rem 0;color:var(--yeol-muted)}
.yeol-adult-section-gate{max-width:720px;margin:54px auto 80px;padding:clamp(28px,5vw,52px);text-align:center;border:1px solid rgba(111,63,103,.2);border-radius:24px;background:rgba(255,255,255,.72);box-shadow:0 24px 70px rgba(58,37,62,.12)}.yeol-adult-section-mark{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#6f3f67;color:#fff;font-weight:900;font-size:1.25rem}.yeol-adult-section-gate form{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:24px}.yeol-adult-enter,.yeol-adult-leave{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:999px;font-weight:800;text-decoration:none}.yeol-adult-enter{border:0;background:#6f3f67;color:#fff;cursor:pointer}.yeol-adult-leave{border:1px solid rgba(79,54,81,.18);background:#fff;color:#4a3048}

/* Reading */
.yeol-article-shell{max-width:900px;margin:clamp(24px,5vw,60px) auto;padding:clamp(20px,5vw,54px);border:1px solid var(--yeol-border);border-radius:22px;background:#fffdfd;box-shadow:var(--yeol-shadow);color:#000}.yeol-reader-content{font-size:var(--yeol-reader-font-size);line-height:1.92;color:#000}.yeol-reader-content p,.yeol-reader-content li,.yeol-reader-content blockquote{color:#000!important}.yeol-reader-tools{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.45rem;max-width:760px;margin:0 auto 1rem;padding:.65rem;border:1px solid var(--yeol-border);border-radius:16px;background:#faf7f9}.yeol-reader-tools button{border:1px solid var(--yeol-border);background:#fff;border-radius:999px;padding:.5rem .75rem;cursor:pointer}.yeol-audio-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.55rem;width:100%;padding-top:.5rem;margin-top:.15rem;border-top:1px solid var(--yeol-border)}.yeol-audio-controls label{display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:700}.yeol-audio-controls select{max-width:260px;min-height:36px;border:1px solid var(--yeol-border);border-radius:999px;background:#fff;padding:.35rem 2rem .35rem .7rem}.yeol-audio-controls input[type=range]{width:110px;accent-color:#79526f}.yeol-audio-status{width:100%;text-align:center;font-size:.72rem;color:#6c5c6a}.yeol-speaking{outline:2px solid rgba(121,82,111,.28);outline-offset:5px;border-radius:5px;background:rgba(239,233,238,.72)}body.yeolreads-chapter .yeol-reader-content{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.yeol-copy-notice{text-align:center;font-size:.72rem;color:#756b76;margin:.2rem auto 1.2rem}
body.yeol-night-reading{background:#171319;color:#eee8ef}body.yeol-night-reading .yeol-article-shell{background:#201a22!important;border-color:rgba(255,255,255,.1);color:#eee8ef}body.yeol-night-reading .yeol-reader-content,body.yeol-night-reading .yeol-reader-content p,body.yeol-night-reading .yeol-reader-content li,body.yeol-night-reading .yeol-reader-content blockquote{color:#eee8ef!important}body.yeol-night-reading .yeol-reader-tools{background:#2a222c;color:#eee8ef;border-color:rgba(255,255,255,.12)}body.yeol-night-reading .yeol-reader-tools button,body.yeol-night-reading .yeol-audio-controls select{background:#342c37;color:#f6eff6;border-color:rgba(255,255,255,.16)}
@media print{body.yeolreads-chapter .yeol-reader-content{display:none!important}}

/* Directory pages / menu destination pages */
.yeol-directory-shell{width:min(1440px,calc(100% - 2rem));margin:0 auto;padding:clamp(2rem,5vw,4.5rem) 0;color:#211a23}.yeol-directory-heading{max-width:780px;margin:0 0 2rem}.yeol-directory-heading h1{margin:.25rem 0 .55rem;font-size:clamp(2rem,5vw,4rem);line-height:1;letter-spacing:-.045em}.yeol-directory-tabs{display:flex;gap:.5rem;margin:0 0 2rem;padding:.45rem;width:max-content;max-width:100%;border:1px solid var(--yeol-border);border-radius:999px;background:rgba(255,255,255,.55)}.yeol-directory-tabs a{display:flex;align-items:center;gap:.45rem;padding:.7rem 1rem;border-radius:999px;color:#4f3651;text-decoration:none;font-weight:800}.yeol-directory-tabs a.is-active{background:#79526f;color:#fff}.yeol-genre-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.yeol-genre-card{display:flex;min-height:108px;flex-direction:column;justify-content:space-between;gap:.8rem;padding:1.1rem;border:1px solid var(--yeol-border);border-radius:16px;background:#fffdfd;color:#211a23!important;text-decoration:none}.yeol-library-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(170px,.8fr) minmax(150px,.65fr) auto auto;gap:.75rem;align-items:end;margin:0 0 1.5rem;padding:1rem;border:1px solid var(--yeol-border);border-radius:16px;background:rgba(255,255,255,.5)}.yeol-library-filters label{display:grid;gap:.35rem}.yeol-library-filters input,.yeol-library-filters select{min-height:46px;width:100%;border:1px solid rgba(79,54,81,.18);border-radius:10px;padding:.65rem .75rem;background:#fff}.yeol-library-filters button,.yeol-directory-primary{display:inline-flex;min-height:46px;align-items:center;justify-content:center;border:0;border-radius:999px;padding:.7rem 1.1rem;background:#79526f;color:#fff!important;text-decoration:none;font-weight:800}.yeol-filter-reset,.yeol-directory-secondary{display:inline-flex;min-height:46px;align-items:center;justify-content:center;border:1px solid rgba(79,54,81,.18);border-radius:999px;padding:.7rem 1rem;background:#fff;color:#4f3651!important;text-decoration:none;font-weight:800}.yeol-tier-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin:1.5rem 0}.yeol-tier-grid>div{display:grid;gap:.2rem;padding:1.1rem;border:1px solid var(--yeol-border);border-radius:16px;background:#fffdfd}.yeol-member-plugin-area{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem}.yeol-member-block{padding:1.15rem;border:1px solid var(--yeol-border);border-radius:16px;background:#fffdfd}.yeol-dmca-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:920px;padding:1.2rem;border:1px solid var(--yeol-border);border-radius:18px;background:#fffdfd}.yeol-dmca-form label{display:grid;gap:.4rem;font-weight:700}.yeol-dmca-form input,.yeol-dmca-form select,.yeol-dmca-form textarea{width:100%;border:1px solid rgba(79,54,81,.18);border-radius:10px;padding:.7rem .8rem}.yeol-dmca-form .yeol-field-wide{grid-column:1/-1}.yeol-dmca-form button{width:max-content;border:0;border-radius:999px;padding:.75rem 1.2rem;background:#79526f;color:#fff;font-weight:800}.yeol-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:900px){.yeol-genre-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.yeol-library-filters{grid-template-columns:1fr 1fr}.yeol-tier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.yeol-member-plugin-area{grid-template-columns:1fr}}
@media(max-width:560px){.yeol-genre-grid,.yeol-tier-grid{grid-template-columns:1fr}.yeol-library-filters,.yeol-dmca-form{grid-template-columns:1fr}.yeol-dmca-form .yeol-field-wide{grid-column:auto}}

/* Footer */
.yeol-site-footer{margin-top:48px;padding:34px clamp(18px,4vw,56px);background:#4f3651;color:#fff}.yeol-site-footer a{color:#fff}
.yeol-page-shell{min-height:55vh}.yeol-page-shell>.wp-block-post-content{margin:0}

/* =========================================================
   Yeolreads 2.5 — access types + How Yeolreads Works
   ========================================================= */
.yeol-novel-card{position:relative}
.yeol-access-badges{position:absolute;z-index:4;left:9px;top:9px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;pointer-events:none}
.yeol-novel-card>.yeol-adult-card-badge+.yeol-access-badges{top:40px}
.yeol-access-badge{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border-radius:999px;font-size:.64rem;line-height:1;font-weight:900;letter-spacing:.035em;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.yeol-access-badge--gold{background:#f2c94c;color:#3b2b00;border:1px solid rgba(92,63,0,.18)}
.yeol-access-badge--free{background:#fffdfd;color:#4f3651;border:1px solid rgba(79,54,81,.25)}
.yeol-access-badge--blue{background:#2877c7;color:#fff;border:1px solid rgba(0,57,116,.2)}

.yeol-how-it-works{width:min(1480px,calc(100% - clamp(36px,8vw,112px)));margin:32px auto 42px;padding:clamp(22px,4vw,38px);border:1px solid var(--yeol-border);border-radius:24px;background:rgba(255,255,255,.58);box-shadow:0 16px 45px rgba(31,24,35,.06)}
.yeol-how-it-works.is-compact{width:100%;margin:22px 0 28px;padding:clamp(18px,3vw,28px)}
.yeol-how-heading{max-width:820px;margin-bottom:20px}.yeol-how-heading h2{margin:.15rem 0 .45rem;font-size:clamp(1.7rem,3.5vw,2.7rem);letter-spacing:-.035em}.yeol-how-heading p:last-child{margin:0;color:var(--yeol-muted)}
.yeol-how-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.yeol-how-card{position:relative;overflow:hidden;min-height:185px;padding:22px;border-radius:18px;background:#fffdfd;border:1px solid var(--yeol-border)}.yeol-how-card:after{content:"";position:absolute;right:-55px;bottom:-70px;width:180px;height:180px;border-radius:50%;opacity:.12}.yeol-how-card--gold{border-color:rgba(178,126,0,.3)}.yeol-how-card--gold:after{background:#c89610}.yeol-how-card--blue{border-color:rgba(40,119,199,.28)}.yeol-how-card--blue:after{background:#2877c7}.yeol-how-card h3{margin:14px 0 8px;font-size:1.35rem}.yeol-how-card p{max-width:620px;margin:0;color:#625664;line-height:1.6}.yeol-how-chip{display:inline-flex;padding:5px 10px;border-radius:999px;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.yeol-how-chip--gold{background:#f2c94c;color:#3b2b00}.yeol-how-chip--blue{background:#2877c7;color:#fff}
.yeol-how-perks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.yeol-how-perk{display:grid;gap:5px;padding:14px 15px;border:1px solid var(--yeol-border);border-radius:14px;background:#fffdfd}.yeol-how-perk strong{font-size:.9rem}.yeol-how-perk span{color:var(--yeol-muted);font-size:.79rem;line-height:1.45}.yeol-how-perk--featured{border-color:rgba(40,119,199,.24);background:rgba(40,119,199,.055)}.yeol-how-note{margin:15px 0 0;color:var(--yeol-muted);font-size:.76rem}
.yeol-membership-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}.yeol-tier-grid--perks>div{position:relative}.yeol-tier-grid--perks>div.is-highlighted{border-color:rgba(40,119,199,.25);box-shadow:inset 0 3px 0 #2877c7}.yeol-tier-grid--perks .yeol-tier-kicker{color:var(--yeol-accent);font-size:.7rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.yeol-tier-grid--perks strong{font-size:1.4rem}.yeol-tier-grid--perks small{color:var(--yeol-muted);line-height:1.4}
@media(max-width:900px){.yeol-how-perks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.yeol-how-it-works{width:calc(100% - 24px);margin:20px auto 30px;padding:17px}.yeol-how-access-grid,.yeol-how-perks{grid-template-columns:1fr}.yeol-how-card{min-height:0}.yeol-access-badges{left:7px;top:7px;gap:4px}.yeol-access-badge{font-size:.58rem}.yeol-novel-card>.yeol-adult-card-badge+.yeol-access-badges{top:36px}}

/* Audit hardening 2.5.2 — streak badge + very small screens */
.yeol-access-badge--streak{background:#79526f;color:#fff}
.yeol-novel-title,.yeol-live-row strong,.yeol-true-nav-mobile-panel a,.yeol-account-card,.yeol-folder-card{overflow-wrap:anywhere}
@media(max-width:380px){
  .yeol-header-inner{min-height:72px;padding-left:12px;padding-right:12px;gap:8px}
  .yeol-true-nav-mobile summary{padding:.48rem .72rem}
  .yeol-novel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 8px}
  .yeol-directory-shell{width:calc(100% - 16px)}
  .yeol-account-shell,.yeol-folder-shell,.yeol-submission-shell{width:calc(100% - 16px);padding:14px}
  .yeol-gate-actions>a,.yeol-gate-actions>button,.yeol-age-gate button,.yeol-adult-section-gate form>*{width:100%;text-align:center}
  .yeol-folder-inline{align-items:stretch}.yeol-folder-inline select,.yeol-folder-inline button,.yeol-folder-inline a{width:100%}
  .yeol-library-tab{padding:12px 14px}
}


/* Yeolreads Discord community footer link. */
.yeol-discord-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:1180px;margin:0 auto 24px;padding:14px 16px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.055)}
.yeol-discord-footer-copy{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:2px;align-items:center;min-width:0}.yeol-discord-footer-kicker{grid-column:1/-1;font-size:.64rem;font-weight:900;letter-spacing:.1em;color:#eadde7}.yeol-discord-footer-copy strong{font-size:.95rem;color:#fff}.yeol-discord-footer-copy>span:last-child{font-size:.82rem;color:rgba(255,255,255,.76)}
.yeol-discord-footer-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.58rem .88rem;border-radius:999px;background:#fff;color:#4f3651!important;text-decoration:none;font-size:.78rem;font-weight:900;white-space:nowrap}.yeol-discord-footer-button:hover{opacity:.9}
@media(max-width:700px){.yeol-discord-footer{align-items:flex-start;flex-direction:column;gap:10px}.yeol-discord-footer-copy{display:block}.yeol-discord-footer-kicker,.yeol-discord-footer-copy strong,.yeol-discord-footer-copy>span:last-child{display:block}.yeol-discord-footer-copy strong{margin:.15rem 0}.yeol-discord-footer-button{width:100%}}


/* Yeolreads 2.5.10 — site-wide Discord invitation popup. */
.yeol-discord-popup{position:fixed;right:22px;bottom:22px;z-index:9998;width:min(380px,calc(100vw - 32px));padding:18px 18px 16px;border:1px solid var(--yeol-border);border-radius:18px;background:var(--yeol-paper);color:var(--yeol-ink);box-shadow:0 22px 65px rgba(31,24,35,.22);opacity:0;transform:translateY(18px) scale(.985);pointer-events:none;transition:opacity .22s ease,transform .22s ease}
.yeol-discord-popup[hidden]{display:none!important}.yeol-discord-popup.is-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.yeol-discord-popup-close{position:absolute;top:9px;right:10px;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--yeol-muted);font-size:1.45rem;line-height:1;cursor:pointer}.yeol-discord-popup-close:hover,.yeol-discord-popup-close:focus-visible{background:#f3edf2;color:var(--yeol-ink)}
.yeol-discord-popup-kicker{display:block;padding-right:34px;color:var(--yeol-accent);font-size:.67rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.yeol-discord-popup strong{display:block;margin:.32rem 34px .35rem 0;font-size:1.22rem;line-height:1.18}.yeol-discord-popup p{margin:0;color:var(--yeol-muted);font-size:.88rem;line-height:1.5}
.yeol-discord-popup-actions{display:flex;align-items:center;gap:8px;margin-top:14px}.yeol-discord-popup-join,.yeol-discord-popup-later{display:inline-flex;min-height:42px;align-items:center;justify-content:center;border-radius:999px;padding:.62rem .92rem;font-size:.8rem;font-weight:900;text-decoration:none;cursor:pointer}.yeol-discord-popup-join{border:0;background:var(--yeol-accent-dark);color:#fff!important}.yeol-discord-popup-later{border:1px solid var(--yeol-border);background:#fff;color:var(--yeol-accent-dark)}
@media(max-width:520px){.yeol-discord-popup{right:12px;bottom:12px;width:calc(100vw - 24px);padding:16px;border-radius:16px}.yeol-discord-popup-actions{align-items:stretch;flex-direction:column}.yeol-discord-popup-join,.yeol-discord-popup-later{width:100%}}
@media(prefers-reduced-motion:reduce){.yeol-discord-popup{transition:none;transform:none}}
@media print{.yeol-discord-popup{display:none!important}}


/* Yeolreads 2.5.11 reader audit hardening. */
/* Reader/audio controls belong to chapter pages only; ordinary posts and Main Novel landing pages stay clean. */
body:not(.yeolreads-chapter) .yeol-reader-tools,
body:not(.yeolreads-chapter) .yeol-copy-notice{display:none!important}

/* Keep fixed community UI clear of iPhone/Android browser safe areas and usable in short landscape viewports. */
.yeol-discord-popup{bottom:max(22px,env(safe-area-inset-bottom));max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
@media(max-width:520px){.yeol-discord-popup{bottom:max(12px,env(safe-area-inset-bottom))}}

/* Long search/archive titles and reader controls should never force horizontal page scrolling. */
.wp-block-post-title,.wp-block-post-excerpt,.yeol-reader-tools,.yeol-audio-controls{min-width:0;overflow-wrap:anywhere}
@media(max-width:520px){
  .yeol-reader-tools{padding:.55rem}
  .yeol-audio-controls label{width:100%;justify-content:center;flex-wrap:wrap}
  .yeol-audio-controls select{max-width:100%;width:min(100%,300px)}
}


/* =========================================================
   Yeolreads 2.5.12 — Main Novel detail layout
   Structural redesign only; existing Yeolreads colors preserved.
   ========================================================= */
body.yeolreads-main-novel .yeol-article-shell{
  max-width:1480px;
  margin:clamp(20px,3vw,42px) auto;
  padding:0 clamp(16px,3vw,42px) clamp(28px,4vw,48px);
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:var(--yeol-ink);
}
body.yeolreads-main-novel .yeol-article-shell>.wp-block-post-title,
body.yeolreads-main-novel .yeol-article-shell>.wp-block-post-date{display:none!important}

.yeol-novel-profile{
  display:grid;
  grid-template-columns:minmax(210px,270px) minmax(0,1fr) minmax(250px,310px);
  gap:clamp(20px,3vw,38px);
  align-items:start;
  width:100%;
  margin:0 auto 26px;
  padding:clamp(18px,2.8vw,30px);
  border:1px solid var(--yeol-border);
  border-radius:24px;
  background:rgba(255,253,253,.72);
  box-shadow:var(--yeol-shadow);
}
.yeol-novel-profile-cover-column{min-width:0}
.yeol-novel-profile-cover{overflow:hidden;width:100%;aspect-ratio:2/3;border:1px solid var(--yeol-border);border-radius:16px;background:var(--yeol-paper);box-shadow:0 14px 32px rgba(31,24,35,.10)}
.yeol-novel-profile-cover img{display:block;width:100%;height:100%;object-fit:contain;background:var(--yeol-paper)}
.yeol-novel-profile-cover .yeol-cover-placeholder{display:grid;width:100%;height:100%;place-items:center;font-size:4rem;font-weight:900;color:var(--yeol-accent);background:var(--yeol-paper)}

.yeol-novel-profile-main{min-width:0;padding-top:4px}
.yeol-novel-profile-kickers{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.yeol-novel-profile .yeol-access-badges{position:static;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:6px;pointer-events:auto}
.yeol-novel-type-chip,.yeol-novel-status-chip,.yeol-novel-adult-chip{display:inline-flex;align-items:center;min-height:26px;padding:5px 9px;border-radius:999px;border:1px solid var(--yeol-border);background:var(--yeol-paper);font-size:.68rem;font-weight:900;letter-spacing:.04em}
.yeol-novel-status-chip{color:var(--yeol-accent)}
.yeol-novel-adult-chip{background:var(--yeol-accent);color:#fff;border-color:transparent}
.yeol-novel-profile h1{margin:.1rem 0 .5rem;font-size:clamp(2.2rem,4.8vw,4.35rem);line-height:.98;letter-spacing:-.055em;color:var(--yeol-ink);overflow-wrap:anywhere}
.yeol-novel-original-title,.yeol-novel-author{margin:.25rem 0;color:var(--yeol-muted)}
.yeol-novel-original-title{font-size:1rem}.yeol-novel-author{font-size:.9rem}

.yeol-novel-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0 18px}
.yeol-novel-stats>div{display:grid;gap:3px;min-width:0;padding:12px 13px;border:1px solid var(--yeol-border);border-radius:13px;background:var(--yeol-paper)}
.yeol-novel-stats span{font-size:.64rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:var(--yeol-accent)}
.yeol-novel-stats strong{font-size:.98rem;line-height:1.25;overflow-wrap:anywhere;color:var(--yeol-ink)}
.yeol-novel-stats small{color:var(--yeol-muted);font-size:.69rem}
.yeol-novel-profile-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.yeol-novel-primary-action,.yeol-novel-secondary-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.68rem 1rem;border-radius:999px;text-decoration:none;font-weight:900;font-size:.82rem}
.yeol-novel-primary-action{background:var(--yeol-accent-dark);color:#fff!important;border:1px solid var(--yeol-accent-dark)}
.yeol-novel-secondary-action{background:var(--yeol-paper);color:var(--yeol-accent-dark)!important;border:1px solid var(--yeol-border)}

.yeol-novel-profile-side{display:grid;gap:12px;min-width:0}
.yeol-novel-side-card{padding:15px;border:1px solid var(--yeol-border);border-radius:15px;background:var(--yeol-paper)}
.yeol-novel-side-kicker{display:block;margin-bottom:9px;color:var(--yeol-accent);font-size:.65rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.yeol-reader-path-link{display:grid;gap:3px;padding:10px 0;border-top:1px solid var(--yeol-border);text-decoration:none}
.yeol-reader-path-link:first-of-type{border-top:0;padding-top:2px}
.yeol-reader-path-link strong{font-size:.86rem;color:var(--yeol-ink)}
.yeol-reader-path-link span{font-size:.74rem;line-height:1.4;color:var(--yeol-muted)}
.yeol-reader-path-link:hover strong{color:var(--yeol-accent)}
.yeol-novel-profile-tags{display:flex;flex-wrap:wrap;gap:6px}
.yeol-novel-profile-tags span{display:inline-flex;padding:5px 8px;border:1px solid var(--yeol-border);border-radius:8px;background:rgba(239,233,238,.55);font-size:.69rem;color:var(--yeol-accent-dark)}

/* Reuse the plugin folder control inside the Reader Path column without changing its behavior. */
.yeol-novel-profile-folder .yeol-folder-inline-card{margin:0!important;border-radius:15px!important;box-shadow:none!important}
.yeol-novel-profile-folder .yeol-folder-inline{width:100%;max-width:none}
.yeol-novel-profile-folder .yeol-folder-inline-actions{align-items:stretch}
.yeol-novel-profile-folder .yeol-folder-inline-save,.yeol-novel-profile-folder .yeol-folder-inline-remove-form{width:100%}
.yeol-novel-profile-folder .yeol-folder-inline button,.yeol-novel-profile-folder .yeol-folder-inline-link{width:100%;justify-content:center;text-align:center}

/* Synopsis + plugin-generated Table of Contents remain below the profile, preserving plugin ownership. */
body.yeolreads-main-novel .yeol-reader-content{
  max-width:1040px;
  margin:0 auto;
  padding:clamp(20px,3vw,34px);
  border:1px solid var(--yeol-border);
  border-radius:20px;
  background:var(--yeol-paper);
  box-shadow:0 12px 32px rgba(31,24,35,.05);
  color:var(--yeol-ink);
  font-size:1rem;
  line-height:1.75;
}
body.yeolreads-main-novel .yeol-reader-content p,
body.yeolreads-main-novel .yeol-reader-content li,
body.yeolreads-main-novel .yeol-reader-content blockquote{color:var(--yeol-ink)!important}

@media(max-width:1120px){
  .yeol-novel-profile{grid-template-columns:minmax(190px,240px) minmax(0,1fr)}
  .yeol-novel-profile-side{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}
  .yeol-novel-profile-folder{grid-column:1/-1}
  .yeol-novel-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  body.yeolreads-main-novel .yeol-article-shell{padding-left:12px;padding-right:12px}
  .yeol-novel-profile{grid-template-columns:1fr;gap:18px;padding:16px;border-radius:18px}
  .yeol-novel-profile-cover-column{width:min(74vw,290px);margin:0 auto}
  .yeol-novel-profile-main{text-align:left}
  .yeol-novel-profile-side{grid-column:auto;grid-template-columns:1fr}
  .yeol-novel-profile h1{font-size:clamp(2rem,10vw,3rem)}
  .yeol-novel-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}
  .yeol-novel-profile-actions>a{flex:1 1 150px}
  body.yeolreads-main-novel .yeol-reader-content{padding:17px;border-radius:16px}
}
@media(max-width:380px){
  .yeol-novel-stats{grid-template-columns:1fr 1fr;gap:7px}
  .yeol-novel-stats>div{padding:10px}
  .yeol-novel-profile-cover-column{width:min(82vw,270px)}
}

/* =========================================================
   Yeolreads 2.5.13 — glossy mauve finish
   Same palette, cleaner UI, less explanatory clutter.
   ========================================================= */
:root{
  --yeol-glass:rgba(255,253,253,.66);
  --yeol-glass-strong:rgba(255,253,253,.84);
  --yeol-gloss-border:rgba(255,255,255,.72);
  --yeol-gloss-shadow:0 18px 48px rgba(79,54,81,.10),inset 0 1px 0 rgba(255,255,255,.72);
}

/* Main surfaces keep the existing mauve family and gain a glass/gloss finish. */
.yeol-library-switcher,
.yeol-how-it-works,
.yeol-live-panel,
.yeol-library-filters,
.yeol-genre-card,
.yeol-tier-grid>div,
.yeol-member-block,
.yeol-dmca-form,
.yeol-novel-profile,
body.yeolreads-main-novel .yeol-reader-content,
.yeol-novel-side-card,
.yeol-novel-stats>div{
  background:linear-gradient(145deg,var(--yeol-glass-strong),var(--yeol-glass));
  border-color:rgba(79,54,81,.12);
  box-shadow:var(--yeol-gloss-shadow);
  -webkit-backdrop-filter:blur(12px) saturate(112%);
  backdrop-filter:blur(12px) saturate(112%);
}

/* A subtle reflected highlight makes cards glossy without changing the color scheme. */
.yeol-how-card,
.yeol-novel-profile,
.yeol-live-panel,
.yeol-genre-card,
.yeol-member-block,
.yeol-tier-grid>div,
.yeol-novel-side-card,
.yeol-novel-stats>div{position:relative}
.yeol-how-card:before,
.yeol-novel-profile:before,
.yeol-live-panel:before,
.yeol-genre-card:before,
.yeol-member-block:before,
.yeol-tier-grid>div:before,
.yeol-novel-side-card:before,
.yeol-novel-stats>div:before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:42%;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,0));
  pointer-events:none;
  z-index:0;
}
.yeol-how-card>*,
.yeol-novel-profile>*,
.yeol-live-panel>*,
.yeol-genre-card>*,
.yeol-member-block>*,
.yeol-tier-grid>div>*,
.yeol-novel-side-card>*,
.yeol-novel-stats>div>*{position:relative;z-index:1}

/* Novel covers: glossy frame while keeping every image fully visible. */
.yeol-novel-cover,
.yeol-novel-profile-cover{
  position:relative;
  background:linear-gradient(145deg,var(--yeol-paper),var(--yeol-bg));
  border-color:rgba(79,54,81,.12);
  box-shadow:0 13px 28px rgba(79,54,81,.11),inset 0 1px 0 rgba(255,255,255,.9);
}
.yeol-novel-cover:after,
.yeol-novel-profile-cover:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(125deg,rgba(255,255,255,.24) 0%,rgba(255,255,255,.04) 42%,rgba(255,255,255,0) 65%);
}
.yeol-novel-card{transition:transform .18s ease}
.yeol-novel-card:hover{transform:translateY(-3px)}

/* Glossy mauve actions; no new palette colors. */
.yeol-novel-primary-action,
.yeol-library-filters button,
.yeol-directory-primary,
.yeol-discord-popup-join{
  background:linear-gradient(180deg,var(--yeol-accent),var(--yeol-accent-dark));
  box-shadow:0 8px 18px rgba(79,54,81,.18),inset 0 1px 0 rgba(255,255,255,.22);
}
.yeol-novel-secondary-action,
.yeol-filter-reset,
.yeol-directory-secondary{
  background:linear-gradient(180deg,var(--yeol-paper),var(--yeol-bg));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}

/* Header/footer stay the same mauve, now with a soft glossy depth. */
.yeol-site-header{
  background:var(--yeol-accent-dark)!important;
  box-shadow:0 10px 28px rgba(31,24,35,.12),inset 0 -1px 0 rgba(255,255,255,.06);
}
.yeol-site-footer{
  background:var(--yeol-accent-dark);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.yeol-footer-support-card,
.yeol-discord-footer{
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.06));
  border-color:rgba(255,255,255,.20);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}

/* Keep the effect lightweight and accessible on devices that request reduced motion. */
@media(prefers-reduced-motion:reduce){.yeol-novel-card{transition:none}.yeol-novel-card:hover{transform:none}}
@media(max-width:640px){
  .yeol-library-switcher,.yeol-how-it-works,.yeol-live-panel,.yeol-novel-profile{backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
}


/* =========================================================
   Yeolreads 2.5.14 — Main Novel layout width repair
   Fix constrained-layout squeezing without changing plugin behavior.
   ========================================================= */
/* The shortcode block is a direct child of a constrained WordPress group.
   WordPress otherwise caps it at the 860px content width even though the
   Main Novel profile is designed for the 1480px wide layout. */
body.yeolreads-main-novel .yeol-article-shell > .yeol-novel-profile,
body.yeolreads-main-novel .yeol-article-shell > .yeol-novel-profile-block,
body.yeolreads-main-novel .yeol-article-shell > .wp-block-shortcode:first-child,
body.yeolreads-main-novel .yeol-article-shell > .wp-block-shortcode:has(.yeol-novel-profile){
  width:100%!important;
  max-width:var(--wp--style--global--wide-size,1480px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Stable desktop proportions: cover / content / reader path. */
.yeol-novel-profile{
  grid-template-columns:minmax(220px,280px) minmax(440px,1fr) minmax(260px,320px);
  gap:clamp(20px,2.5vw,34px);
}
.yeol-novel-profile-main{min-width:0;max-width:none}
.yeol-novel-profile h1{
  font-size:clamp(2.35rem,3.7vw,3.75rem);
  line-height:1.02;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:auto;
}
.yeol-novel-stats strong{
  overflow-wrap:break-word;
  word-break:normal;
}

/* Step down before the columns become cramped. */
@media(max-width:1280px){
  .yeol-novel-profile{grid-template-columns:minmax(200px,250px) minmax(0,1fr) minmax(240px,285px)}
  .yeol-novel-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1120px){
  .yeol-novel-profile{grid-template-columns:minmax(190px,240px) minmax(0,1fr)}
  .yeol-novel-profile-side{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}
  .yeol-novel-profile-folder{grid-column:1/-1}
}
@media(max-width:720px){
  body.yeolreads-main-novel .yeol-article-shell > .yeol-novel-profile,
  body.yeolreads-main-novel .yeol-article-shell > .yeol-novel-profile-block,
  body.yeolreads-main-novel .yeol-article-shell > .wp-block-shortcode:first-child,
  body.yeolreads-main-novel .yeol-article-shell > .wp-block-shortcode:has(.yeol-novel-profile){max-width:100%!important}
  .yeol-novel-profile{grid-template-columns:1fr}
  .yeol-novel-profile h1{font-size:clamp(2rem,9vw,3rem)}
}


/* =========================================================
   Yeolreads 2.5.15 — page-state consistency audit
   ========================================================= */
/* The single template contains reader controls as a shared structural slot,
   but only actual Chapter posts should ever display them. */
body:not(.yeolreads-chapter) .yeol-reader-tools,
body:not(.yeolreads-chapter) .yeol-copy-notice{display:none!important}
