*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{font-family:'Georgia','Noto Serif SC','SimSun',serif;background:#0a0a1a;color:#e0d8f0;line-height:1.8;overflow-x:hidden}a{color:inherit;text-decoration:none}

/* navbar */
.navbar{position:fixed;top:0;left:0;width:100%;z-index:1000;padding:.6rem 2rem;transition:background .4s}
.navbar.scrolled{background:rgba(10,10,26,.95);box-shadow:0 2px 20px rgba(138,43,226,.3);backdrop-filter:blur(10px)}
.nav-container{max-width:1300px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}
.nav-logo{display:flex;align-items:center;gap:.6rem;font-size:1.3rem;font-weight:bold;color:#c9a0ff;letter-spacing:2px;text-shadow:0 0 20px rgba(138,43,226,.5)}
.nav-logo-img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid rgba(138,43,226,.4);box-shadow:0 0 12px rgba(138,43,226,.3)}
.nav-menu{display:flex;list-style:none;gap:2rem}
.nav-menu a{position:relative;padding:.5rem 0;font-size:.95rem;letter-spacing:1px;transition:color .3s}
.nav-menu a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:linear-gradient(90deg,#c9a0ff,#8a2be2);transition:width .3s}
.nav-menu a:hover{color:#c9a0ff}.nav-menu a:hover::after{width:100%}
.nav-toggle{display:none;background:none;border:none;color:#c9a0ff;font-size:1.5rem;cursor:pointer}

/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center 20%;z-index:0;animation:heroZoom 20s ease-in-out infinite alternate}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(10,10,26,.6) 0%,rgba(10,10,26,.35) 40%,rgba(10,10,26,.85) 100%);z-index:1}
.hero-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}
.particle{position:absolute;width:3px;height:3px;background:#c9a0ff;border-radius:50%;animation:floatUp linear infinite;opacity:0}
@keyframes floatUp{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(-10vh) scale(1);opacity:0}}
.hero-content{position:relative;z-index:3;animation:fadeInUp 1.2s ease}
@keyframes fadeInUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
.hero-subtitle{font-size:1.1rem;letter-spacing:6px;color:#8a7faf;margin-bottom:1rem;font-style:italic}
.hero-title{font-size:5rem;font-weight:bold;color:#c9a0ff;letter-spacing:16px;margin-bottom:1.5rem;text-shadow:0 0 40px rgba(138,43,226,.6),0 0 80px rgba(138,43,226,.3);animation:glow 3s ease-in-out infinite alternate}
@keyframes glow{from{text-shadow:0 0 30px rgba(138,43,226,.4),0 0 60px rgba(138,43,226,.2)}to{text-shadow:0 0 50px rgba(138,43,226,.7),0 0 100px rgba(138,43,226,.4)}}
.hero-desc{font-size:1.2rem;color:#b8a8d8;margin-bottom:.5rem;font-style:italic}
.hero-author{font-size:1rem;color:#8a7faf;margin-bottom:2.5rem}
.hero-btns{display:flex;gap:1.5rem;justify-content:center}
.btn{padding:.8rem 2rem;border-radius:30px;font-size:1rem;letter-spacing:2px;transition:all .3s;cursor:pointer}
.btn-primary{background:linear-gradient(135deg,#8a2be2,#6a1b9a);color:#fff;border:none;box-shadow:0 4px 20px rgba(138,43,226,.4)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(138,43,226,.6)}
.btn-secondary{background:transparent;color:#c9a0ff;border:2px solid #c9a0ff}
.btn-secondary:hover{background:rgba(138,43,226,.15);transform:translateY(-3px)}
.hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;animation:bounce 2s infinite;z-index:3}
.hero-scroll span{font-size:.8rem;color:#8a7faf;letter-spacing:2px}
.scroll-arrow{width:20px;height:20px;border-right:2px solid #c9a0ff;border-bottom:2px solid #c9a0ff;transform:rotate(45deg);opacity:.8}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-10px)}}

/* section */
.section{padding:6rem 2rem;position:relative}
.section-header{text-align:center;margin-bottom:4rem}
.s-en{font-size:1.05rem;font-weight:bold;color:#8a7faf;letter-spacing:5px;vertical-align:super;margin-right:.7rem;white-space:nowrap}
.section-header h2{font-size:2.5rem;color:#c9a0ff;letter-spacing:6px;margin-bottom:1rem;text-shadow:0 0 20px rgba(138,43,226,.3)}
.divider{width:80px;height:3px;background:linear-gradient(90deg,transparent,#c9a0ff,transparent);margin:0 auto}
.section-sub{color:#8a7faf;font-size:.9rem;margin-top:.8rem;letter-spacing:1px}

/* story */
.story-row{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.story-card{position:relative;border-radius:16px;overflow:hidden;min-height:320px;border:1px solid rgba(138,43,226,.2);transition:transform .4s,border-color .4s,box-shadow .4s}
.story-card:hover{transform:translateY(-10px);border-color:rgba(138,43,226,.5);box-shadow:0 15px 50px rgba(138,43,226,.25)}
.story-card-img{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;transition:transform .5s}
.story-card:hover .story-card-img{transform:scale(1.1)}
.story-card-body{position:relative;z-index:2;padding:2rem;display:flex;flex-direction:column;justify-content:flex-end;height:100%;background:linear-gradient(180deg,rgba(10,10,26,.3) 0%,rgba(10,10,26,.85) 100%)}
.story-card-body h3{font-size:1.3rem;color:#c9a0ff;margin-bottom:.8rem;letter-spacing:2px}
.story-card-body p{color:#b8a8d8;font-size:.9rem;line-height:1.8}

/* characters */
.chars-row{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.char-card{position:relative;border-radius:16px;overflow:hidden;padding:2rem 1.5rem;text-align:center;transition:transform .4s,border-color .4s,box-shadow .4s;border:1px solid rgba(138,43,226,.15);min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.char-card:hover{transform:translateY(-10px);border-color:rgba(138,43,226,.5);box-shadow:0 15px 50px rgba(138,43,226,.3)}
.char-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;filter:brightness(.3);transition:transform .5s}
.char-card:hover .char-bg{transform:scale(1.1)}
.char-avatar{position:relative;z-index:2;width:90px;height:90px;border-radius:50%;object-fit:cover;border:3px solid rgba(138,43,226,.4);margin-bottom:1.2rem;transition:border-color .3s,box-shadow .3s}
.char-card:hover .char-avatar{border-color:rgba(138,43,226,.7);box-shadow:0 0 30px rgba(138,43,226,.4)}
.char-card h3{position:relative;z-index:2;font-size:1.2rem;color:#c9a0ff;margin-bottom:.3rem;letter-spacing:2px}
.char-title{position:relative;z-index:2;font-size:.85rem;color:#8a7faf;margin-bottom:.8rem;font-style:italic}
.char-desc{position:relative;z-index:2;font-size:.82rem;color:#b8a8d8;line-height:1.7}

/* gallery */
.gallery-wrap{max-width:1000px;margin:0 auto;display:flex;align-items:center;gap:1.5rem}
.gallery-frame{flex:1;border-radius:20px;overflow:hidden;border:1px solid rgba(138,43,226,.2);box-shadow:0 0 40px rgba(138,43,226,.1)}
.gallery-slider{position:relative;min-height:450px;overflow:hidden}
.gallery-slide{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:0;transform:scale(.95);transition:opacity .6s,transform .6s;pointer-events:none}
.gallery-slide.active{opacity:1;transform:scale(1);pointer-events:auto}
.slide-cap{position:absolute;bottom:0;left:0;right:0;padding:2.5rem 2rem;background:linear-gradient(transparent,rgba(10,10,26,.9))}
.slide-cap h3{font-size:1.5rem;color:#c9a0ff;margin-bottom:.5rem;letter-spacing:3px}
.slide-cap p{color:#b8a8d8;max-width:500px;line-height:1.8;font-size:.95rem}
.gallery-btn{background:rgba(138,43,226,.2);border:1px solid rgba(138,43,226,.3);color:#c9a0ff;width:52px;height:52px;border-radius:50%;font-size:1.2rem;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.gallery-btn:hover{background:rgba(138,43,226,.4);border-color:rgba(138,43,226,.6);box-shadow:0 0 25px rgba(138,43,226,.4);transform:scale(1.1)}
.gallery-dots{display:flex;justify-content:center;gap:.8rem;margin-top:2rem}
.gallery-dot{width:12px;height:12px;border-radius:50%;background:rgba(138,43,226,.3);border:none;cursor:pointer;transition:all .3s}
.gallery-dot.active{background:#c9a0ff;box-shadow:0 0 12px rgba(138,43,226,.6);transform:scale(1.3)}

/* walls */
.walls-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.wall-item{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:16/10;cursor:pointer;background-size:cover;background-position:center;border:1px solid rgba(138,43,226,.15);transition:transform .3s,border .3s,box-shadow .3s}
.wall-item:hover{transform:translateY(-5px) scale(1.03);border-color:rgba(138,43,226,.5);box-shadow:0 12px 35px rgba(138,43,226,.3);z-index:10}
.wall-item span{position:absolute;bottom:0;left:0;right:0;padding:.6rem 1rem;background:linear-gradient(transparent,rgba(10,10,26,.9));font-size:.72rem;color:#c9a0ff;text-align:right}

/* books */
.books-wrap{max-width:1200px;margin:0 auto}
.books-cat{font-size:1.3rem;color:#c9a0ff;letter-spacing:3px;margin:2.5rem 0 1.2rem;padding-left:1rem;border-left:3px solid #8a2be2}
.books-cat span{font-size:.9rem;color:#8a7faf;font-weight:normal}
.books-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:1rem}
.book-item{background:rgba(20,20,50,.5);border:1px solid rgba(138,43,226,.15);border-radius:12px;transition:transform .3s,border-color .3s,box-shadow .3s}
.book-item:hover{transform:translateY(-6px);border-color:rgba(138,43,226,.5);box-shadow:0 10px 30px rgba(138,43,226,.2)}
.book-cover{height:200px;background-size:contain;background-position:center;background-repeat:no-repeat;background-color:#0a0a1a;border-radius:12px 12px 0 0;overflow:hidden;transition:transform .4s}
.book-item:hover .book-cover{transform:scale(1.05)}
.book-info{position:relative;padding:.8rem .8rem;text-align:center}
.book-info h4{font-size:.78rem;color:#c9a0ff;margin-bottom:.5rem;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book-info h4[data-title]:hover::after{content:attr(data-title);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);max-width:240px;width:max-content;background:rgba(17,17,51,.97);border:1px solid rgba(138,43,226,.5);border-radius:8px;padding:.5rem .9rem;font-size:.8rem;color:#c9a0ff;letter-spacing:1px;line-height:1.7;white-space:normal;z-index:20;box-shadow:0 8px 25px rgba(0,0,0,.5)}
.book-btns{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.book-read,.book-dl{display:inline-block;padding:.3rem .8rem;font-size:.7rem;border-radius:20px;letter-spacing:1px;transition:all .3s;cursor:pointer;border:1px solid rgba(138,43,226,.4);background:transparent;color:#c9a0ff;text-decoration:none;font-family:inherit}
.book-read{background:rgba(138,43,226,.2);border-color:rgba(138,43,226,.5)}
.book-read:hover,.book-dl:hover{background:rgba(138,43,226,.3);border-color:rgba(138,43,226,.7);box-shadow:0 0 15px rgba(138,43,226,.3)}
.book-dl{font-size:.7rem;padding:.3rem .6rem}

/* timeline */
.timeline{max-width:900px;margin:0 auto;position:relative}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent,rgba(138,43,226,.5),transparent);transform:translateX(-50%)}
.tl-item{position:relative;margin-bottom:3rem;width:50%}
.tl-left{left:0;padding-right:3rem;text-align:right}.tl-right{left:50%;padding-left:3rem}
.tl-item::before{content:'';position:absolute;top:2rem;width:16px;height:16px;background:#c9a0ff;border-radius:50%;box-shadow:0 0 20px rgba(138,43,226,.6);z-index:2}
.tl-left::before{right:-8px}.tl-right::before{left:-8px}
.tl-card{background:rgba(20,20,50,.6);border:1px solid rgba(138,43,226,.2);border-radius:16px;overflow:hidden;transition:transform .4s,border-color .4s,box-shadow .4s}
.tl-card:hover{transform:translateY(-6px);border-color:rgba(138,43,226,.5);box-shadow:0 10px 35px rgba(138,43,226,.25)}
.tl-img{width:100%;height:140px;background-size:cover;background-position:center;transition:transform .4s}
.tl-card:hover .tl-img{transform:scale(1.05)}
.tl-body{padding:1.2rem 1.5rem}
.tl-num{font-size:2rem;font-weight:bold;color:#c9a0ff;opacity:.5;display:block;margin-bottom:.3rem;line-height:1}
.tl-body h3{font-size:1.1rem;color:#c9a0ff;margin-bottom:.5rem;letter-spacing:2px}
.tl-body p{font-size:.88rem;color:#b8a8d8;line-height:1.7}

/* footer */
.footer{position:relative;padding:5rem 2rem 2.5rem;text-align:center;overflow:hidden}
.footer-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;filter:brightness(.2) blur(2px);transform:scale(1.1)}
.footer-content{position:relative;z-index:2;max-width:600px;margin:0 auto}
.footer-quote{font-size:1.1rem;color:#c9a0ff;font-style:italic;margin-bottom:1.5rem}
.footer-quote span{color:#8a7faf;font-size:.9rem;font-style:normal}
.footer-links{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem}
.footer-links a{color:#8a7faf;font-size:.9rem;letter-spacing:1px;transition:color .3s}
.footer-links a:hover{color:#c9a0ff}
.footer-copy{color:#5a5a7a;font-size:.8rem}

/* lightbox */
.lightbox{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.92);z-index:3000;display:none;align-items:center;justify-content:center;cursor:zoom-out}
.lightbox.show{display:flex}
.lightbox img{max-width:90vw;max-height:90vh;border-radius:8px;box-shadow:0 0 60px rgba(138,43,226,.3);cursor:default}
.lb-close{position:absolute;top:1.5rem;right:2rem;font-size:2rem;color:#c9a0ff;cursor:pointer;z-index:3001;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(138,43,226,.2);transition:background .3s}
.lb-close:hover{background:rgba(138,43,226,.4)}

/* back-to-top */
.back-to-top{position:fixed;bottom:2rem;right:2rem;width:48px;height:48px;background:rgba(138,43,226,.3);border:1px solid rgba(138,43,226,.4);color:#c9a0ff;border-radius:50%;font-size:1.2rem;cursor:pointer;opacity:0;visibility:hidden;transition:all .3s;z-index:999;display:flex;align-items:center;justify-content:center}
.back-to-top.visible{opacity:1;visibility:visible}
.back-to-top:hover{background:rgba(138,43,226,.5);box-shadow:0 0 25px rgba(138,43,226,.5);transform:translateY(-4px)}

/* reader modal */
.reader-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.94);z-index:4000;display:none;flex-direction:column}
.reader-modal.show{display:flex}
.reader-header{display:flex;align-items:center;padding:.8rem 1.5rem;background:rgba(10,10,26,.95);border-bottom:1px solid rgba(138,43,226,.2);gap:1rem;flex-shrink:0}
.reader-header h3{flex:1;color:#c9a0ff;font-size:.95rem;letter-spacing:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reader-close{background:none;border:1px solid rgba(138,43,226,.3);color:#c9a0ff;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:1.1rem;transition:all .2s}
.reader-close:hover{background:rgba(138,43,226,.3)}
.reader-toc{width:260px;background:#111133;border-right:1px solid rgba(138,43,226,.2);overflow-y:auto;flex-shrink:0;display:none;position:absolute;top:53px;left:0;bottom:0;z-index:10}
.reader-toc.open{display:block}
.reader-toc-item{display:block;width:100%;padding:.6rem 1rem;background:none;border:none;color:#8a7faf;text-align:left;font-size:.8rem;cursor:pointer;transition:all .2s;font-family:inherit;border-bottom:1px solid rgba(138,43,226,.08)}
.reader-toc-item:hover{background:rgba(138,43,226,.1);color:#c9a0ff}
.reader-toc-item.active{background:rgba(138,43,226,.2);color:#c9a0ff}
.reader-main{flex:1;display:flex;overflow:hidden}
.reader-content{flex:1;overflow-y:auto;padding:1.5rem;display:flex;justify-content:center}
.reader-inner{max-width:750px;width:100%;padding:1rem 0}
.reader-inner h1{font-size:1.5rem;color:#c9a0ff;margin-bottom:2rem;text-align:center;letter-spacing:3px;border-bottom:1px solid rgba(138,43,226,.2);padding-bottom:1rem}
.reader-inner p{font-size:17px;line-height:2;margin-bottom:1rem;text-indent:2em;text-align:justify;color:#c0c0d0}
.reader-inner img{max-width:100%;height:auto;border-radius:8px;margin:1rem auto;display:block;max-height:400px}
.reader-inner h2,.reader-inner h3{color:#c9a0ff;margin:2rem 0 1rem;text-align:center}
.reader-inner div{color:#c0c0d0;line-height:2;margin-bottom:.5rem}
.reader-inner code{font-family:Consolas,monospace;font-size:.9em}
.reader-nav{display:flex;justify-content:space-between;margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(138,43,226,.2)}
.reader-nav button{background:rgba(138,43,226,.15);border:1px solid rgba(138,43,226,.3);color:#c9a0ff;padding:.6rem 1.5rem;border-radius:20px;cursor:pointer;font-size:.9rem;letter-spacing:1px;transition:all .3s;font-family:inherit}
.reader-nav button:hover:not(:disabled){background:rgba(138,43,226,.3);border-color:rgba(138,43,226,.5);box-shadow:0 0 15px rgba(138,43,226,.2)}
.reader-nav button:disabled{opacity:.3;cursor:not-allowed}
.reader-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#8a7faf;gap:1rem}
.reader-empty p{font-size:1rem;letter-spacing:2px}
.reader-drop{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;z-index:5}
.reader-drop p{font-size:1.1rem;color:#8a7faf}
.reader-drop-btn{padding:.8rem 2rem;background:rgba(138,43,226,.2);border:2px dashed rgba(138,43,226,.4);color:#c9a0ff;border-radius:12px;cursor:pointer;font-size:1rem;letter-spacing:2px;transition:all .3s;font-family:inherit}
.reader-drop-btn:hover{background:rgba(138,43,226,.3);border-color:rgba(138,43,226,.7)}
.reader-loaded{display:none;flex:1;flex-direction:column;overflow:hidden}
.reader-loaded.show{display:flex}

/* responsive */
@media(max-width:768px){
  .nav-menu{position:fixed;top:0;right:-100%;width:70%;height:100vh;background:rgba(10,10,26,.98);flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;transition:right .4s;backdrop-filter:blur(10px)}
  .nav-menu.active{right:0}.nav-menu a{font-size:1.2rem}
  .nav-toggle{display:block;z-index:1001}
  .hero-title{font-size:2.8rem;letter-spacing:8px}
  .hero-btns{flex-direction:column;align-items:center}
  .story-row{grid-template-columns:1fr}
  .chars-row{grid-template-columns:repeat(2,1fr)}
  .gallery-wrap{flex-direction:column}.gallery-slider{min-height:300px;width:100%}
  .walls-grid{grid-template-columns:repeat(2,1fr)}
  .books-grid{grid-template-columns:repeat(3,1fr)}
  .timeline::before{left:1rem}
  .tl-item{width:100%;padding-left:2.5rem!important;padding-right:0!important;left:0!important;text-align:left!important}
  .tl-item::before{left:.2rem!important}
  .s-en{font-size:.95rem;letter-spacing:3px;vertical-align:6px}
  .section{padding:4rem 1rem}
  .reader-toc{width:100%}
}
@media(max-width:480px){
  .chars-row{grid-template-columns:1fr}
  .hero-title{font-size:2rem;letter-spacing:4px}
  .section-header h2{font-size:1.8rem}
  .walls-grid{grid-template-columns:1fr 1fr}
  .books-grid{grid-template-columns:repeat(2,1fr)}
}