:root{--primary-color: #8B4513;--secondary-color: #D4A574;--accent-color: #C19A6B;--bg-dark: #2C1810;--bg-light: #F5E6D3;--text-dark: #3D2914;--text-light: #F5F0EB;--gold: #D4AF37;--gold-light: #F0D78C;--shadow: rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:"Noto Serif TC",serif;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);min-height:100vh;overflow:hidden;color:var(--text-dark);position:relative}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url(background.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:.12;z-index:-1;pointer-events:none}#loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,var(--bg-dark) 0%,#1a0f0a 100%);display:flex;justify-content:center;align-items:center;z-index:9999;transition:opacity .8s ease,visibility .8s ease}#loading-screen.hidden{opacity:0;visibility:hidden}.loading-content{text-align:center;color:var(--gold)}.loading-icon{width:60px;height:60px;border:3px solid var(--gold-light);border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{to{transform:rotate(360deg)}}.loading-content p{font-size:1.2rem;letter-spacing:3px}#music-control{position:fixed;top:20px;right:20px;z-index:100}#music-toggle{width:50px;height:50px;border-radius:50%;background:linear-gradient(145deg,var(--gold),var(--secondary-color));border:none;cursor:pointer;display:flex;justify-content:center;align-items:center;box-shadow:0 4px 15px var(--shadow);transition:transform .3s ease,box-shadow .3s ease}#music-toggle:hover{transform:scale(1.1);box-shadow:0 6px 20px var(--shadow)}#music-toggle svg{width:24px;height:24px;color:var(--bg-dark)}#music-toggle.playing{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 4px 15px var(--shadow)}50%{box-shadow:0 4px 25px var(--gold)}}#ebook-container{width:100%;height:100vh;display:flex;justify-content:center;align-items:center;perspective:2000px;padding:20px;position:relative}.page{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(95vw,1400px);height:min(85vh,800px);background:var(--bg-light);border-radius:8px;box-shadow:0 10px 60px #00000080,0 0 1px #ffffff1a;transition:transform .6s cubic-bezier(.4,0,.2,1),opacity .5s ease;transform-style:preserve-3d;overflow:hidden}.page.hidden{opacity:0;pointer-events:none;transform:translate(-50%,-50%) translate(100%)}.page.prev{transform:translate(-50%,-50%) translate(-100%);opacity:0;pointer-events:none}.page.active{opacity:1;transform:translate(-50%,-50%) translate(0)}.cover-page{background:linear-gradient(145deg,#2c1810,#4a2c1a,#2c1810)}.cover-background{width:100%;height:100%;position:relative;display:flex;justify-content:center;align-items:center}.cover-pattern{position:absolute;top:0;left:0;width:100%;height:100%;background-image:repeating-linear-gradient(45deg,transparent,transparent 20px,rgba(212,175,55,.03) 20px,rgba(212,175,55,.03) 40px);pointer-events:none}.cover-border{width:calc(100% - 40px);height:calc(100% - 40px);border:3px solid var(--gold);border-radius:3px;position:relative;display:flex;justify-content:center;align-items:center}.cover-border:before,.cover-border:after{content:"";position:absolute;width:calc(100% - 20px);height:calc(100% - 20px);border:1px solid var(--gold-light);opacity:.5}.cover-content{text-align:center;padding:40px;position:relative}.cover-decoration{position:absolute;width:60px;height:60px;border-color:var(--gold);border-style:solid;border-width:0}.cover-decoration.top-left{top:-30px;left:-30px;border-top-width:3px;border-left-width:3px}.cover-decoration.top-right{top:-30px;right:-30px;border-top-width:3px;border-right-width:3px}.cover-decoration.bottom-left{bottom:-30px;left:-30px;border-bottom-width:3px;border-left-width:3px}.cover-decoration.bottom-right{bottom:-30px;right:-30px;border-bottom-width:3px;border-right-width:3px}.cover-title-wrapper{margin-bottom:40px}.cover-title{font-family:Ma Shan Zheng,"Noto Serif TC",serif;color:var(--gold);text-shadow:2px 2px 4px rgba(0,0,0,.5),0 0 30px rgba(212,175,55,.3);line-height:1.6}.title-line{display:block;font-size:clamp(1.2rem,3vw,1.8rem);font-weight:400;letter-spacing:8px;margin-bottom:15px;color:var(--gold-light)}.title-main{display:block;font-size:clamp(2rem,6vw,3.5rem);font-weight:700;letter-spacing:12px}.cover-subtitle{display:flex;justify-content:center;align-items:center;gap:20px;margin-bottom:60px;color:var(--secondary-color);font-size:clamp(.9rem,2vw,1.1rem);letter-spacing:4px}.subtitle-decoration{color:var(--gold);font-size:1.5em}.cover-credits{position:absolute;bottom:40px;left:50%;transform:translate(-50%);color:var(--gold-light);text-align:center}.cover-credits p{font-size:clamp(.9rem,2vw,1.1rem);letter-spacing:3px;margin-bottom:8px}.credits-sub{font-size:clamp(.75rem,1.5vw,.9rem)!important;opacity:.8}.pdf-page{display:flex;justify-content:center;align-items:center;padding:15px;background:linear-gradient(145deg,#fffef9,#f8f4ee)}.pdf-page canvas{max-width:100%;max-height:100%;box-shadow:0 2px 10px #0000001a}.page-number{position:absolute;bottom:15px;left:50%;transform:translate(-50%);font-size:.85rem;color:var(--primary-color);opacity:.7;letter-spacing:2px}#navigation{position:fixed;bottom:30px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:20px;background:#2c1810f2;padding:12px 25px;border-radius:50px;box-shadow:0 4px 20px var(--shadow);border:1px solid var(--gold);z-index:100}#navigation button{display:flex;align-items:center;gap:8px;background:transparent;border:none;color:var(--gold-light);font-family:"Noto Serif TC",serif;font-size:.95rem;cursor:pointer;padding:8px 15px;border-radius:25px;transition:all .3s ease}#navigation button:hover:not(:disabled){background:#d4af3733;color:var(--gold)}#navigation button:disabled{opacity:.4;cursor:not-allowed}#navigation button svg{width:20px;height:20px}#page-indicator{color:var(--gold);font-size:1rem;min-width:100px;text-align:center}#page-indicator .separator{margin:0 8px;opacity:.5}#thumbnail-nav{position:fixed;left:20px;top:50%;transform:translateY(-50%);z-index:100}#toggle-thumbnails{width:45px;height:45px;border-radius:50%;background:linear-gradient(145deg,var(--bg-dark),#3D2914);border:2px solid var(--gold);color:var(--gold);cursor:pointer;display:flex;justify-content:center;align-items:center;transition:all .3s ease}#toggle-thumbnails:hover{background:var(--gold);color:var(--bg-dark)}#toggle-thumbnails svg{width:22px;height:22px}#thumbnails-panel{position:absolute;left:55px;top:50%;transform:translateY(-50%);background:#2c1810fa;border:1px solid var(--gold);border-radius:10px;padding:15px;max-height:70vh;overflow-y:auto;display:none;flex-direction:column;gap:10px;min-width:120px;box-shadow:0 4px 20px var(--shadow)}#thumbnails-panel.show{display:flex}.thumbnail{padding:10px 15px;background:#d4af371a;border:1px solid transparent;border-radius:5px;color:var(--gold-light);cursor:pointer;font-size:.85rem;text-align:center;transition:all .3s ease}.thumbnail:hover{background:#d4af3733;border-color:var(--gold)}.thumbnail.active{background:var(--gold);color:var(--bg-dark);font-weight:600}#thumbnails-panel::-webkit-scrollbar{width:6px}#thumbnails-panel::-webkit-scrollbar-track{background:#0003;border-radius:3px}#thumbnails-panel::-webkit-scrollbar-thumb{background:var(--gold);border-radius:3px}@media(max-width:768px){.page{width:95vw;height:75vh}#navigation{padding:10px 15px;gap:10px;bottom:15px}#navigation button span{display:none}#thumbnail-nav{left:10px}.cover-content{padding:20px}.cover-credits{bottom:20px}}@keyframes pageFlipIn{0%{transform:translate(-50%,-50%) translate(50%);opacity:0}to{transform:translate(-50%,-50%) translate(0);opacity:1}}@keyframes pageFlipOut{0%{transform:translate(-50%,-50%) translate(0);opacity:1}to{transform:translate(-50%,-50%) translate(-50%);opacity:0}}.page.flip-in{animation:pageFlipIn .5s cubic-bezier(.4,0,.2,1) forwards}.page.flip-out{animation:pageFlipOut .5s cubic-bezier(.4,0,.2,1) forwards}.pdf-page:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none}.page:after{content:"";position:absolute;left:0;top:0;width:30px;height:100%;background:linear-gradient(to right,rgba(0,0,0,.15),transparent);pointer-events:none}
