:root{--bg:#070916;--surface:#101328;--surface-2:#191e38;--line:#262f52;--text:#f5f3ff;--muted:#98a1b8;--pink:#f071e6;--violet:#8b5cf6;--cyan:#38bdf8;--gold:#facc15;--shadow:0 24px 60px #02030aab;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;background:var(--bg);color:var(--text);line-height:1.5}
.stars{position:fixed;z-index:-1;inset:0;opacity:.65;background:radial-gradient(circle at 15% 20%,#8b5cf633 0 1px,transparent 2px),radial-gradient(circle at 85% 10%,#38bdf833 0 1px,transparent 2px),radial-gradient(circle at 50% 60%,#f071e622 0 1px,transparent 2px),linear-gradient(135deg,#070916,#0c0f24 50%,#050712);background-size:120px 130px,180px 180px,240px 220px,100% 100%}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;height:70px;padding:0 max(22px,calc((100vw - 1200px)/2));border-bottom:1px solid #ffffff14;background:#070916f2;backdrop-filter:blur(18px)}
.brand{color:var(--pink);font-family:Georgia,serif;font-size:1.35rem;font-weight:700;font-style:italic;text-decoration:none;letter-spacing:.02em;text-shadow:0 0 20px #f071e644}
.brand--large{display:block;text-align:center;font-size:1.75rem}
.main-nav{display:flex;gap:26px;margin-left:56px}
.nav-link,.side-panel a{color:var(--muted);font-size:.92rem;text-decoration:none;font-weight:600}
.nav-link{height:70px;display:grid;place-items:center;border-bottom:2px solid transparent}
.nav-link:hover,.nav-link.is-active{color:#fff;border-color:var(--pink)}
.header-actions{display:flex;gap:8px;margin-left:auto}
.icon-button{display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:12px;background:transparent;color:var(--text);font:inherit;font-size:1.5rem;cursor:pointer;transition:background .15s ease}
.icon-button:hover{background:#ffffff15}
.side-panel{position:fixed;z-index:32;right:0;top:0;width:min(340px,92vw);height:100dvh;padding:20px;background:#0d1127;border-left:1px solid var(--line);box-shadow:var(--shadow);transform:translateX(105%);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.side-panel.is-open{transform:none}
.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;font-size:1.1rem}
.side-panel a,.panel-button{display:block;width:100%;padding:13px 10px;border:0;background:transparent;color:#e2e6f3;text-align:left;font:inherit;font-weight:550;text-decoration:none;cursor:pointer;border-radius:8px;transition:background .15s,color .15s}
.side-panel a:hover,.panel-button:hover{background:#ffffff10;color:var(--pink)}
.side-panel hr{border:0;border-top:1px solid var(--line);margin:14px 0}
.scrim{position:fixed;z-index:31;inset:0;background:#05060bcc;backdrop-filter:blur(3px)}
.search-area{max-width:1160px;margin:22px auto 0;padding:0 24px}
.search-wrap{display:flex;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 10px 30px #0005}
.search-wrap input{width:100%;padding:15px 18px;border:0;background:transparent;color:var(--text);font:inherit;font-size:1.02rem;outline:none}
.filter-row,.genre-index,.tabs{display:flex;gap:9px;flex-wrap:wrap}
.filter-row{margin-top:14px}
.chip{border:1px solid var(--line);border-radius:99px;padding:9px 15px;background:var(--surface);color:var(--muted);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s ease}
.chip:hover,.chip.is-selected{border-color:var(--pink);background:#f071e626;color:#fff}
main{max-width:1200px;margin:0 auto;padding:0 24px 70px}
.view{display:none}
.view.is-visible{display:block}
.hero{position:relative;overflow:hidden;min-height:380px;padding:82px 6% 48px;border-bottom:1px solid #ffffff10}
.eyebrow{margin:0 0 10px;color:var(--pink);font-size:.75rem;font-weight:800;letter-spacing:.12em}
.hero h1,.page-heading h1,.prose h1{position:relative;z-index:1;margin:0;max-width:680px;font-size:clamp(2.6rem,6.2vw,5.6rem);line-height:.96;letter-spacing:-.06em}
.hero h1 em{color:#e2c4ff;font-family:Georgia,serif;font-weight:400}
.hero-copy{position:relative;z-index:1;max-width:540px;margin:22px 0;color:#bec3d6;font-size:1.05rem}
.hero-actions{position:relative;z-index:1;display:flex;gap:12px;flex-wrap:wrap}
.button{min-height:46px;border:1px solid transparent;border-radius:12px;padding:11px 20px;background:linear-gradient(135deg,var(--violet),var(--pink));color:#fff;font:inherit;font-weight:750;cursor:pointer;box-shadow:0 10px 25px #8b5cf644;transition:all .18s ease}
.button:hover{filter:brightness(1.1);transform:translateY(-1px)}
.button--ghost{border-color:#ffffff33;background:#ffffff0d;box-shadow:none}
.button--soft{background:#ffffff14;box-shadow:none}
.orb{position:absolute;border-radius:99px;filter:blur(2px);pointer-events:none}
.orb--one{right:6%;top:-50px;width:320px;height:320px;background:radial-gradient(circle at 30% 30%,#f071e64d,transparent 70%)}
.orb--two{right:22%;bottom:-100px;width:280px;height:220px;background:#38bdf82b;filter:blur(50px)}
.section-block{margin-top:64px}
.section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px}
.section-title h2{margin:0;font-size:1.65rem;letter-spacing:-.03em}
.text-button{border:0;background:transparent;color:var(--pink);font:inherit;font-size:.9rem;font-weight:750;cursor:pointer}
.text-button:hover{text-decoration:underline}
.featured-rail{display:grid;grid-auto-columns:minmax(240px,1fr);grid-auto-flow:column;gap:16px;overflow-x:auto;padding:4px 2px 14px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.story-card{position:relative;overflow:hidden;min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);cursor:pointer;scroll-snap-align:start;box-shadow:0 12px 30px #0004;transition:transform .22s cubic-bezier(.16,1,.3,1),border-color .22s ease,box-shadow .22s ease}
.story-card:hover{border-color:#f071e699;transform:translateY(-5px);box-shadow:0 18px 40px #0008}
.cover{position:relative;display:flex;align-items:end;min-height:270px;padding:14px;background:var(--cover,linear-gradient(140deg,#5b4d95,#16233f));isolation:isolate}
.cover:before{position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 78% 20%,#ffffff88 0 5%,transparent 5.8%),linear-gradient(145deg,transparent 45%,#070a1ca8);content:""}
.cover:after{position:absolute;inset:auto 13% 11% auto;width:44%;aspect-ratio:1;border:1px solid #ffffff55;border-radius:50%;box-shadow:inset 0 0 0 22px #ffffff18;content:""}
.cover-label{z-index:1;border-radius:99px;padding:5px 10px;background:#07091aeb;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.02em}
.story-card__body{padding:14px 15px 16px}
.story-card h3{min-height:46px;margin:0;font-size:.98rem;line-height:1.35;font-weight:700}
.meta{display:flex;align-items:center;gap:12px;margin-top:8px;color:var(--muted);font-size:.76rem}
.tag{color:#e2c4ff;font-weight:600}
.story-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.story-grid .cover{min-height:245px}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.rank-card,.comment-card{padding:24px;border:1px solid var(--line);border-radius:18px;background:#0f132bee;box-shadow:0 12px 30px #0005}
.tabs{margin-bottom:15px;border-bottom:1px solid var(--line)}
.tab{margin-bottom:-1px;border:0;border-bottom:2px solid transparent;padding:11px 15px;background:transparent;color:var(--muted);font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:color .15s ease}
.tab.is-active{border-color:var(--pink);color:#fff}
.rank-list{display:grid;gap:8px;margin:0 0 15px;padding:0;list-style:none;counter-reset:rank}
.rank-item{display:grid;grid-template-columns:30px 48px 1fr auto;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #ffffff0d;counter-increment:rank}
.rank-item:before{content:counter(rank);color:var(--cyan);font-size:.85rem;font-weight:800}
.rank-item:first-child:before{color:var(--gold)}
.rank-thumb{width:44px;aspect-ratio:.74;border-radius:7px;background:var(--cover)}
.rank-name{overflow:hidden;font-size:.89rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.rank-stat{color:var(--muted);font-size:.74rem}
.comment-list{display:grid;gap:14px}
.comment{display:grid;grid-template-columns:32px 1fr;gap:11px;padding-bottom:13px;border-bottom:1px solid #ffffff0d}
.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#38bdf8);font-size:.72rem;font-weight:800;color:#fff}
.comment p{margin:4px 0 0;color:#e2e2ec;font-size:.84rem}
.comment small{color:var(--muted);font-size:.74rem}
.page-heading{padding:62px 0 32px}
.page-heading h1,.prose h1{font-size:clamp(2.2rem,5.2vw,4rem)}
.page-heading>p:last-child,.prose p{max-width:640px;color:var(--muted);font-size:1.02rem}
.genre-index{margin:0 0 22px}
.genre-index button{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px}
.genre-index button:hover{color:#fff;background:#ffffff10}
.catalog-layout{display:grid;grid-template-columns:220px 1fr;gap:24px}
.genre-list{display:grid;align-content:start;gap:5px}
.genre-option{border:1px solid transparent;border-radius:10px;padding:11px 13px;background:transparent;color:var(--muted);font:inherit;font-weight:600;text-align:left;cursor:pointer;transition:all .15s ease}
.genre-option:hover,.genre-option.is-active{border-color:var(--line);background:var(--surface);color:#fff}
.result-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;color:var(--muted);font-size:.88rem}
.rank-list--large{max-width:780px}
.rank-list--large .rank-item{grid-template-columns:42px 72px 1fr auto;padding:13px 0}
.rank-list--large .rank-thumb{width:64px}
.history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.history-item{display:flex;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;box-shadow:0 8px 20px #0003;transition:border-color .18s ease}
.history-item .rank-thumb{flex:none;width:58px}
.history-item strong{display:block;font-size:.92rem;font-weight:700}
.history-item p{margin:5px 0;color:var(--muted);font-size:.78rem}
.prose{padding:74px 0}
.prose p{font-size:1.08rem}
.story-dialog,.reader-dialog{width:min(920px,calc(100vw - 30px));max-height:92dvh;border:1px solid var(--line);border-radius:20px;background:#0d1127;color:var(--text);box-shadow:var(--shadow)}
.story-dialog::backdrop,.reader-dialog::backdrop{background:#03040ab8;backdrop-filter:blur(6px)}
.dialog-close{position:absolute;z-index:3;right:16px;top:14px;width:40px;height:40px;border:0;border-radius:10px;background:#ffffff14;color:#fff;font-size:1.6rem;cursor:pointer}
.detail{display:grid;grid-template-columns:250px 1fr;gap:28px;padding:30px}
.detail .cover{min-height:340px;border-radius:14px}
.detail h2{margin:4px 0 12px;font-size:2.1rem;line-height:1.15;font-weight:750}
.detail p{color:var(--muted)}
.detail-tags{display:flex;gap:8px;flex-wrap:wrap}
.detail-tags span{border:1px solid #f071e65e;border-radius:99px;padding:5px 10px;color:#f3b6ed;font-size:.74rem;font-weight:600}
.chapter-list{display:grid;gap:8px;margin:20px 0}
.chapter-button{display:flex;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:var(--surface);color:#e8e7ef;font:inherit;font-weight:600;text-align:left;cursor:pointer;transition:border-color .15s ease}
.chapter-button:hover{border-color:var(--pink)}
.reader-dialog{width:min(780px,100vw);height:100dvh;max-height:100dvh;margin:0;border-radius:0}
.reader-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 16px;background:#0d1127f2;backdrop-filter:blur(14px)}
.reader-top span{overflow:hidden;max-width:70%;font-size:.88rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.reader-pages{display:grid;gap:12px;padding:0 15px 15px}
.reader-page{position:relative;display:grid;place-items:center;min-height:400px;overflow:hidden;border-radius:8px;background:var(--page);box-shadow:inset 0 0 90px #05081299}
.reader-page:before{position:absolute;width:48%;aspect-ratio:.78;border:2px solid #fff9;border-radius:48% 44% 46% 42%;background:#ffffff28;box-shadow:85px 22px 0 -25px #ffffff22;content:""}
.reader-page span{z-index:1;border-radius:99px;padding:8px 12px;background:#07091aeb;font-size:.8rem;font-weight:700}
.reader-nav{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:12px;background:#0d1127f2;backdrop-filter:blur(14px)}
.reader-nav select{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:#fff;padding:9px;font:inherit;font-size:.8rem;font-weight:600}
.age-gate{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:22px;background:#03040ae8;backdrop-filter:blur(14px)}
.age-gate[hidden]{display:none}
.age-card{width:min(580px,100%);padding:38px;border:1px solid #925bad8a;border-radius:20px;background:#0d1127;box-shadow:var(--shadow)}
.age-card h1{margin:18px 0 8px;color:#ff778c;font-size:1.85rem;font-weight:750}
.age-card>p{color:var(--muted)}
.gate-label{display:block;margin-top:24px;font-weight:700}
.age-card input{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface-2);color:#fff;font:inherit;outline:none}
.age-card input:focus{border-color:var(--pink)}
.form-error{color:#ff96a5!important;font-size:.86rem}
.gate-actions{display:flex;gap:12px;margin-top:18px}
.gate-actions .button{flex:1}
.to-top{position:fixed;right:20px;bottom:20px;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:#fff;font-size:1.3rem;cursor:pointer;box-shadow:0 8px 20px #0004}
footer{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:30px max(24px,calc((100vw - 1200px)/2));border-top:1px solid #ffffff14;color:var(--muted);font-size:.82rem}
footer a:not(.brand){color:var(--muted);font-weight:550}
.sr-only{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0,0,0,0)}
@media(max-width:760px){
  .site-header{height:60px;padding:0 15px}
  .main-nav{display:none}
  .featured-rail{grid-auto-columns:75%}
  .story-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .story-grid .cover{min-height:210px}
  .story-card__body{padding:12px}
  .story-card h3{font-size:.88rem}
  .two-column{grid-template-columns:1fr;gap:16px}
  .hero{min-height:340px;padding:58px 4% 38px}
  .catalog-layout{grid-template-columns:1fr}
  .genre-list{grid-template-columns:repeat(2,1fr)}
  .history-grid{grid-template-columns:1fr}
  .detail{grid-template-columns:1fr;padding:24px}
  .detail .cover{min-height:240px}
  .page-heading{padding-top:46px}
  .rank-list--large .rank-item{grid-template-columns:32px 56px 1fr auto}
  .rank-list--large .rank-thumb{width:50px}
  footer{align-items:flex-start;flex-direction:column}
  .age-card{padding:26px}
  .reader-nav{grid-template-columns:1fr 1fr}
  .reader-nav select{grid-column:span 2;grid-row:1}
  .reader-page{min-height:320px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}