:root{--ink:#21143b;--muted:#897e9e;--purple:#7b35d3;--violet:#a855f7;--pink:#f4a6d7;--lav:#f3eaff;--cream:#fffaff;--line:#eee5f7;--dark:#170b35;--shadow:0 20px 60px #31105d18}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;background:#fffaffee;position:sticky;top:0;z-index:10;border-bottom:1px solid #eee5f7;backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:2px;font-size:16px}.brand img{width:44px;height:44px;object-fit:cover;border-radius:50%}.brand b{color:var(--purple)}nav{display:flex;gap:34px;color:#726681;font-size:13px}nav a:hover{color:var(--purple)}.top-actions{display:flex;align-items:center;gap:12px}.btn{border:0;border-radius:999px;padding:13px 22px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:.2s}.btn:hover{transform:translateY(-2px);filter:brightness(1.04)}.btn-primary{color:white;background:linear-gradient(110deg,#6f2cc4,#a44de6 65%,#d06bc4);box-shadow:0 10px 25px #8737c833}.btn-light{background:#f2e9fb;color:#7134ad}.btn-google{background:#fff;border:1px solid var(--line);width:100%;color:#35264d}.btn-danger{background:#fff0f2;color:#c42b57}.icon-btn,.avatar{border:0;background:transparent;font-size:27px;color:var(--purple)}.avatar{width:38px;height:38px;border-radius:50%;background:var(--lav)}.hero{min-height:590px;background:radial-gradient(ellipse at 78% 35%,#51227f 0,#29104e 36%,#170b35 75%);color:#fff;position:relative;overflow:hidden;padding:95px 10vw 80px;display:flex;align-items:center}.hero-copy{position:relative;z-index:2;max-width:550px}.eyebrow{font-size:10px;letter-spacing:2.6px;font-weight:800;color:#b37ae4}.hero h1,.about h2,.section h2,.modal h2{font:800 clamp(42px,6vw,72px)/1.04 "Playfair Display",serif;margin:20px 0}.hero h1 em,.about em,.section h2 em,.modal h2 em{color:#d9a5ff;font-style:normal}.hero p{color:#d9cce9;max-width:430px;line-height:1.8;font-size:15px;margin:0 0 30px}.hero-note{margin-top:26px;color:#cbb5e7;font-size:12px}.hero-art{position:absolute;right:9%;top:7%;width:min(43vw,520px);height:470px;display:grid;place-items:center}.hero-art img{width:100%;height:100%;object-fit:contain;mix-blend-mode:screen;filter:drop-shadow(0 20px 45px #9a36ff55);position:relative;z-index:1}.orb{position:absolute;border:1px solid #bd7aff66;border-radius:50%;width:85%;aspect-ratio:1}.orb-two{width:65%;border-color:#f5b8ef55}.hero-bottom{position:absolute;bottom:25px;left:10vw;color:#a98acb;letter-spacing:3px;font-size:10px}.hero-bottom i{color:#d47bea;margin:0 14px}.section{padding:90px 8vw}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:30px}.section h2{font-size:43px;margin:12px 0 0}.muted{color:var(--muted);font-size:13px}.toolbar{display:flex;gap:12px;margin:25px 0}.searchbox{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 15px;display:flex;align-items:center;gap:8px;flex:1;color:#a18caf}.searchbox input{border:0;outline:0;width:100%;padding:14px 0;background:transparent}.toolbar select{border:1px solid var(--line);background:#fff;border-radius:12px;padding:0 14px;color:#645575}.novel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.novel-card{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 8px 25px #30104b08;transition:.25s}.novel-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.cover{height:250px;background:linear-gradient(145deg,#e9d8ff,#fce2f4);display:grid;place-items:center;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover}.cover-placeholder{font:700 24px "Playfair Display";color:#7e4aaf;text-align:center;padding:20px}.novel-info{padding:17px}.novel-info h3{font:700 18px "Playfair Display";margin:0 0 7px}.novel-info p{font-size:11px;color:var(--muted);line-height:1.6;height:36px;overflow:hidden}.novel-tags{display:flex;justify-content:space-between;color:#9970b9;font-size:10px;margin:13px 0}.novel-info button{width:100%}.empty-state{grid-column:1/-1;text-align:center;padding:55px 20px;background:#fff;border:1px dashed #decbed;border-radius:18px;color:#8a769d}.genre-strip{background:#f5eafa;padding:42px 8vw}.genre-pills{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.genre-pills button{border:1px solid #e2c9f5;background:#fff;color:#7742a5;border-radius:99px;padding:12px 18px}.about{padding:80px 10vw;display:flex;align-items:center;justify-content:space-between;gap:70px}.about h2{font-size:48px}.about p{max-width:480px;color:#756984;line-height:1.9}footer{background:#1a0c36;color:#c9b5df;padding:30px 8vw;display:flex;align-items:center;justify-content:space-between;font-size:11px}footer .brand{color:white}.hidden{display:none!important}.modal{position:fixed;inset:0;background:#170b35b8;z-index:50;display:grid;place-items:center;padding:20px;backdrop-filter:blur(8px)}.modal-card{background:#fffaff;border-radius:24px;padding:36px;width:min(100%,440px);position:relative;box-shadow:var(--shadow)}.modal-card h2{font-size:38px}.modal-card p{line-height:1.6}.modal-close{border:0;background:transparent;color:#8963a8;font-size:27px;position:absolute;right:20px;top:16px}.modal-card input,.admin-login input,.form-grid input,.form-grid textarea,.form-grid select,.settings-list input{width:100%;border:1px solid var(--line);border-radius:11px;padding:13px;margin:7px 0;background:#fff;outline-color:#b27be0}.or{text-align:center;color:#a292b2;font-size:11px;margin:18px}.full{width:100%}.fine{font-size:10px;color:#a296af;line-height:1.6}.reader-shell{background:#fffaff;width:min(100%,1000px);height:min(94vh,900px);border-radius:22px;overflow:auto}.reader-top{position:sticky;top:0;background:#fffaffed;border-bottom:1px solid var(--line);padding:18px 25px;display:flex;justify-content:space-between;align-items:center;z-index:2}.text-btn{border:0;background:transparent;color:#8752b3}.reader-content{max-width:690px;margin:auto;padding:50px 25px 70px}.reader-meta{color:#a27bc1;letter-spacing:1.5px;font-size:10px;text-transform:uppercase}.reader-content h1{font:700 38px "Playfair Display";margin:15px 0 24px}.reader-progress{height:4px;background:#eee3f6;border-radius:9px;margin-bottom:35px}.reader-progress span{height:100%;display:block;background:linear-gradient(90deg,#8a39d1,#e29ad5);width:0}.chapter-body{font:17px/2 "Playfair Display",serif;white-space:pre-wrap;color:#493b59}.reader-bottom{display:flex;justify-content:space-between;margin-top:50px}.gate{background:#f5eafa;border:1px solid #e6d3f4;padding:25px;border-radius:18px;margin:25px 0}.gate h3{font:700 23px "Playfair Display"}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#281346;color:#fff;border-radius:12px;padding:13px 20px;font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1}
@media(max-width:900px){.hero{padding:75px 7vw}.hero-art{right:-5%;opacity:.45}.hero-copy{max-width:500px}.novel-grid{grid-template-columns:repeat(3,1fr)}nav{gap:15px}.about{padding:65px 7vw}}@media(max-width:620px){.topbar{padding:0 5vw;height:68px}.brand{font-size:13px}.brand img{width:36px;height:36px}nav{display:none}.hero{min-height:560px;padding:70px 7vw 80px}.hero-art{width:90vw;right:-25%;top:10%;opacity:.28}.hero h1{font-size:52px}.hero-bottom{left:7vw;font-size:8px;letter-spacing:1px}.hero-bottom i{margin:0 4px}.section{padding:60px 5vw}.section-head{display:block}.section h2{font-size:34px}.toolbar{flex-wrap:wrap}.searchbox{flex-basis:100%}.toolbar select{height:43px;flex:1;min-width:0}.novel-grid{grid-template-columns:repeat(2,1fr);gap:12px}.cover{height:190px}.novel-info{padding:12px}.novel-info h3{font-size:15px}.about{display:block;padding:60px 7vw}.about h2{font-size:39px}footer{flex-wrap:wrap;gap:18px}.reader-content{padding:35px 20px}.reader-content h1{font-size:30px}.chapter-body{font-size:16px}.reader-top{padding:15px}.modal-card{padding:28px 22px}}

/* Sulix Novels visual polish */
.powered{font-size:10px;letter-spacing:.4px;color:#a98fbd}.powered b{color:#c98df4;font-weight:800}
.notify-toggle{display:inline-flex;align-items:center;gap:10px;background:#f6edfc;border:1px solid #e8d7f4;border-radius:999px;padding:10px 15px;color:#74439b;font-size:12px;font-weight:700;cursor:pointer}
.notify-toggle input{position:absolute;opacity:0;pointer-events:none}.toggle-ui{width:34px;height:19px;border-radius:30px;background:#c8b7d8;position:relative;transition:.2s}.toggle-ui:after{content:"";position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:white;transition:.2s;box-shadow:0 1px 3px #0002}.notify-toggle input:checked+.toggle-ui{background:linear-gradient(90deg,#7c36c8,#d16ac5)}.notify-toggle input:checked+.toggle-ui:after{left:18px}
.resume-card{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:linear-gradient(110deg,#f4e9ff,#fff0f8);border:1px solid #ead6f7;border-radius:14px;padding:14px;margin:22px 0;color:#8750ac;font-size:12px}.resume-card b{color:#512078}.resume-card .btn{margin-left:auto;padding:9px 16px}
.community-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.community-link{border:1px solid #e7d6f3}.badge-soft{font-size:9px;letter-spacing:1px;border-radius:99px;padding:7px 9px;background:#f5eafa;color:#8144b2;white-space:nowrap}
.chapter-row{transition:.2s}.chapter-row:hover{border-color:#d4b3ee;background:#fffaff;transform:translateX(2px)}.chapter-name small{letter-spacing:.2px}
.novel-card{box-shadow:0 14px 36px #4c1a7020}.cover{position:relative}.cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,#35114b18);pointer-events:none}.hero:before{content:"";position:absolute;width:700px;height:700px;border-radius:50%;border:1px solid #b75be344;right:-220px;top:-400px;box-shadow:0 0 0 45px #a24ce50a,0 0 0 90px #a24ce508}
.section h2 em,.about h2 em{background:linear-gradient(90deg,#9b55d6,#d889ce);-webkit-background-clip:text;background-clip:text;color:transparent}
.btn-primary{background:linear-gradient(115deg,#6d2eb8 0%,#9a46dc 52%,#d56dbd 100%)}
.reader-shell{box-shadow:0 25px 90px #16062966}.reader-top{backdrop-filter:blur(14px)}.reader-progress{overflow:hidden}.reader-progress span{transition:width .15s}
@media(max-width:620px){.resume-card{align-items:flex-start}.resume-card .btn{margin-left:0}.novel-detail-actions{align-items:flex-start}.notify-toggle{font-size:11px}}

.novel-title-link{color:inherit}.novel-title-link:hover{color:#8b43c5;text-decoration:underline;text-decoration-color:#d5a6ef;text-underline-offset:4px}
.resume-highlight{border-color:#b77bdf!important;background:linear-gradient(100deg,#f5eaff,#fff1fa)!important;box-shadow:0 0 0 3px #c68be522!important}

.novel-detail-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:24px 0}
.chapter-list-head{display:flex;justify-content:space-between;align-items:center;margin-top:38px}
.chapter-list-head h2{font:700 24px "Playfair Display";margin:0}
.chapter-tools{display:flex;gap:8px}.chapter-tools input,.chapter-tools select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;color:#655475;max-width:170px;min-width:0}
.chapter-row{width:100%;text-align:left;border:1px solid var(--line);background:white;border-radius:12px;padding:13px;display:flex;align-items:center;gap:13px;margin:8px 0;transition:.18s}
.chapter-num{font:700 18px "Playfair Display";color:#9b65c5;min-width:30px}
.chapter-name{flex:1;min-width:0}.chapter-name b,.chapter-name small{display:block}.chapter-name b{color:#35234b}.chapter-name small{font-size:10px;color:#9b8aa8;margin:4px 0}
.mini-progress{display:block;background:#f0e7f7;height:3px;border-radius:5px;overflow:hidden}.mini-progress span{display:block;height:3px;background:linear-gradient(90deg,#9650d2,#e48bc8)}
@media(max-width:620px){.chapter-list-head{display:block}.chapter-tools{margin:12px 0}.chapter-tools input{flex:1;width:100%}.chapter-tools select{width:125px}.chapter-row{padding:11px}}

/* Email confirmation mini-page */
.confirm-card{text-align:center;max-height:calc(100dvh - 40px);overflow-y:auto;animation:confirmIn .55s cubic-bezier(.2,.8,.2,1) both}
.modal:not(.hidden) .confirm-card{animation:confirmIn .55s cubic-bezier(.2,.8,.2,1) both}
.confirm-card h2{font-size:clamp(30px,8vw,38px);margin:10px 0 8px}
.confirm-card .btn{margin-top:10px}
.mail-wrap{position:relative;width:96px;height:96px;margin:4px auto 14px;animation:mailFloat 3.6s ease-in-out infinite}
.mail-glow{position:absolute;inset:-6px;border-radius:50%;background:radial-gradient(circle,#f4a6d766,#a855f722 60%,transparent 72%);animation:mailPulse 2.8s ease-in-out infinite}
.mail-icon{position:relative;width:96px;height:96px;filter:drop-shadow(0 10px 18px #7b35d333)}
.mail-check{position:absolute;right:-2px;bottom:6px;width:30px;height:30px;border-radius:50%;background:linear-gradient(110deg,#6f2cc4,#d06bc4);box-shadow:0 6px 14px #8737c844;display:grid;place-items:center;border:3px solid var(--cream);animation:checkPop .6s .45s cubic-bezier(.2,1.6,.4,1) both}
.mail-check svg{width:16px;height:16px}
.mail-check path{stroke-dasharray:24;stroke-dashoffset:24;animation:checkDraw .45s .85s ease forwards}
.confirm-email{margin:16px 0 4px;padding:12px 16px;background:var(--lav);border:1px solid var(--line);border-radius:14px;color:var(--purple);font-weight:700;font-size:14px;word-break:break-all}
.confirm-tips{list-style:none;margin:14px 0 8px;padding:0;text-align:left;font-size:12px;color:var(--muted);line-height:1.6}
.confirm-tips li{position:relative;padding:6px 0 6px 22px}
.confirm-tips li:before{content:"✦";position:absolute;left:2px;color:var(--violet)}
.confirm-status{min-height:18px;margin:8px 0 0;font-size:12px;color:var(--purple)}
.confirm-status.error{color:#c42b57}
.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
@keyframes confirmIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
@keyframes mailFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes mailPulse{0%,100%{transform:scale(.92);opacity:.7}50%{transform:scale(1.1);opacity:1}}
@keyframes checkPop{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes checkDraw{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.confirm-card,.mail-wrap,.mail-glow,.mail-check,.mail-check path{animation:none}.mail-check path{stroke-dashoffset:0}}

#accountModal{z-index:60}
.account-card{width:min(100%,520px);max-height:calc(100dvh - 40px);overflow-y:auto;padding:32px}
.account-card h2{font-size:34px;margin:10px 0 20px}
.account-identity{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid #e8d8f6;border-radius:16px;background:linear-gradient(120deg,#f6ecff,#fff3fa)}
.account-avatar{width:48px;height:48px;display:grid;place-items:center;flex:none;border-radius:50%;background:linear-gradient(135deg,#7834c5,#d06bc4);color:#fff;font-size:20px;font-weight:700}
.account-identity strong,.account-identity span:not(.account-avatar){display:block;overflow-wrap:anywhere}
.account-identity strong{font-size:15px}.account-identity div span{margin-top:4px;color:#786787;font-size:12px}
.account-section{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}
.account-section h3{margin:0 0 7px;font-size:14px;color:var(--ink)}.account-section p{margin:0 0 10px;color:var(--muted);font-size:12px}
.account-section label{display:block;color:#635471;font-size:12px;font-weight:700}
.account-section select{width:100%;margin-top:7px;padding:12px;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:#fff}
.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.reader-preview{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fffaff;color:#493b59}.reader-preview span{font-size:9px;letter-spacing:1.2px;font-weight:700;opacity:.7}.account-section .reader-preview p{margin:8px 0 0;color:inherit;font:17px/1.6 "Playfair Display",serif}.account-section .reader-preview[data-text-size="small"] p{font-size:15px}.account-section .reader-preview[data-text-size="large"] p{font-size:21px}.reader-preview[data-theme="sepia"]{background:#f5ecd9;color:#493b2c}.reader-preview[data-theme="dark"]{background:#201a29;color:#e5dce9;border-color:#514456}
.account-status{min-height:0;margin:8px 0;color:#7134ad;font-size:12px;line-height:1.5}.account-status:empty{display:none}
.account-notifications{display:grid;gap:8px}.account-notification{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;font-size:12px}.account-notification span{overflow-wrap:anywhere}.account-notification input{width:auto;margin:0;accent-color:var(--purple)}
.account-reset{padding:10px 0;text-align:left;font-size:12px;font-weight:700}
.account-card :focus-visible{outline:3px solid #aa6fe2;outline-offset:3px}
.reader-top .reader-account{margin-left:auto;margin-right:35px;font-size:12px;font-weight:700}
.reader-shell[data-theme="sepia"]{background:#f5ecd9;color:#493b2c}.reader-shell[data-theme="sepia"] .reader-top{background:#f5ecd9ed}.reader-shell[data-theme="sepia"] .chapter-body{color:#493b2c}
.reader-shell[data-theme="dark"]{background:#201a29;color:#f5edf9}.reader-shell[data-theme="dark"] .reader-top{background:#201a29ed;border-color:#514456}.reader-shell[data-theme="dark"] .chapter-body{color:#e5dce9}
.reader-shell[data-text-size="small"] .chapter-body{font-size:15px}.reader-shell[data-text-size="medium"] .chapter-body{font-size:17px}.reader-shell[data-text-size="large"] .chapter-body{font-size:21px}
@media(max-width:620px){.account-card{padding:24px}.account-card h2{font-size:30px}.reader-shell[data-text-size="medium"] .chapter-body{font-size:16px}}
