/* 藏書閣 v2 — 完整保留原始貓咪首圖，以原圖透明熱區進入藏書收藏。 */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.library-shell{background:#1d1727}
.library-top{height:65px;background:linear-gradient(95deg,#28192f,#39263b 65%,#241829);border-bottom:1px solid #e9b86a77}
.library-hero{display:block;width:100%;height:auto;min-height:0;aspect-ratio:1676 / 940;position:relative;background:#2f2333;overflow:hidden;border-bottom:3px solid #d6ab6c;isolation:isolate}
.library-hero::after{content:none!important}
.library-hero-art{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:#302437;user-select:none;-webkit-user-drag:none;pointer-events:none}
.library-sign-hotspot{position:absolute;display:block;left:55.5%;top:9.7%;width:37.0%;height:30.8%;z-index:1;border-radius:23%;cursor:pointer}
.library-sign-hotspot:hover{box-shadow:inset 0 0 0 2px #ffe5a96f,0 0 20px #eeb96b45;transition:box-shadow .18s ease}
.library-sign-hotspot:focus-visible{outline:4px solid #fff0bd;outline-offset:1px}
/* 使用用戶指定的月夜長廊原圖，以下區塊完全獨立於原始主圖。 */
.library-journeys{position:relative;isolation:isolate;min-height:800px;background:#241a37 url('/assets/library-moon-background-v2.jpg') center 48%/cover no-repeat;overflow:hidden;border-bottom:2px solid #c99d5a}
.library-journeys-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#1d142aab 0%,#24182a64 21%,#25182f85 44%,#1a152778 72%,#21182ed4 100%);pointer-events:none}
.library-journeys::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;box-shadow:inset 0 10px 24px #0f0a1685,inset 0 -30px 60px #150d22b8}
.library-journeys-content{max-width:1480px;min-height:800px;margin:0 auto;padding:60px 30px 65px;text-align:center;position:relative;display:flex;flex-direction:column;align-items:center}
.library-journeys-heading{position:relative;z-index:1;padding:20px 42px 23px;border:1px solid #dbb978b8;border-radius:58px 58px 19px 19px;outline:1px solid #f5db9838;outline-offset:-8px;background:linear-gradient(125deg,#31233de8,#482d3be3 50%,#241929e8);box-shadow:0 15px 42px #150e198f,inset 0 0 30px #9c642047;max-width:800px;width:100%}
.library-journeys-overline{display:block;color:#ffdf9c;letter-spacing:.2em;font-size:11px;margin-bottom:12px}
.library-journeys-heading h2{font-size:clamp(23px,2.5vw,38px);font-weight:800;letter-spacing:.13em;color:#ffe3a2;margin:0 0 9px;text-shadow:0 3px 5px #35192c}
.library-journeys-heading p{font-size:14px;color:#f2dcb8;letter-spacing:.1em;margin:0}
.library-quicklinks{display:flex!important;align-items:flex-start;justify-content:center;flex-wrap:nowrap;gap:clamp(4px,1.1vw,15px);max-width:1150px;width:100%;margin:33px auto 0;padding:0!important;z-index:2}
.library-quicklinks a{display:block!important;flex:0 1 135px;min-width:0;position:relative;aspect-ratio:89 / 260;min-height:0!important;margin:0;padding:0!important;background:transparent url('/assets/archive-hanging-plaque-v2.png') center center/100% 100% no-repeat!important;border:0!important;border-radius:0!important;box-shadow:none!important;transform-origin:50% 9%;filter:drop-shadow(0 7px 9px #110919ab);transition:transform .22s ease,filter .22s ease!important;isolation:isolate}
.library-quicklinks a:hover{transform:translateY(-7px) rotate(-1deg)!important;filter:drop-shadow(0 3px 15px #ffd08b99) brightness(1.13)}
.library-quicklinks a:active{transform:translateY(2px)!important}
.library-quicklinks a:focus-visible{outline:3px solid #fff1c6;border-radius:30px}
.library-quicklinks a::before{content:"✦";position:absolute;top:13%;left:50%;transform:translateX(-50%);font-size:clamp(10px,1.1vw,18px);color:#f3cc89;line-height:1;text-shadow:0 0 10px #ffdd80;pointer-events:none}
.library-quicklinks .plaque-label{display:block;position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);height:auto;width:max-content;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;font-weight:800;line-height:1.25;letter-spacing:.03em;font-size:clamp(17px,2.0vw,29px);color:#ffe8b4;text-shadow:0 2px 4px #2b1731,0 0 8px #c6a076;pointer-events:none}
.library-journeys-hint{margin:8px 0 0;position:relative;z-index:2;font-size:12px;color:#ffde9a;letter-spacing:.12em;text-shadow:0 2px 6px #160e25}
.library-journeys-archive{position:relative;z-index:2;margin:23px auto 0;padding:13px 30px;border-radius:30px;color:#372232;background:linear-gradient(155deg,#fff2cf,#e2b96f);border:1px solid #fae3ae;box-shadow:0 6px 25px #0e081a88,inset 0 1px #fff9e5;font-size:16px;font-weight:800;letter-spacing:.1em;transition:transform .2s,filter .2s}
.library-journeys-archive:hover{transform:translateY(-2px);filter:brightness(1.07)}
.library-ornament-books,.library-ornament-orb{position:absolute;z-index:0;pointer-events:none;object-fit:contain;filter:drop-shadow(0 8px 8px #140b1c7a)}
.library-ornament-books{left:0;bottom:14px;width:clamp(130px,18vw,260px);opacity:.90}
.library-ornament-orb{right:1%;bottom:25px;width:clamp(110px,15vw,210px);opacity:.92}
.library-collection{position:relative;margin:0 auto 35px;z-index:1}
.library-collection:before{content:"";position:absolute;top:0;left:50%;z-index:-1;transform:translateX(-50%);width:min(100vw,1500px);height:390px;background:radial-gradient(ellipse at 50% 0,#60415f63,transparent 70%);pointer-events:none}
.collection-heading{position:relative}
.collection-book-art{display:block;width:115px;height:128px;object-fit:contain;margin:0 auto -10px;filter:drop-shadow(0 8px 9px #150f20);pointer-events:none}
.library-card:before{content:"📖";font-size:57px;opacity:.35;right:8px;top:18px}
@media (min-width:1100px){.library-journeys{background-size:cover;background-position:center 43%}.library-journeys-content{min-height:800px}}
@media (max-width:900px){.library-journeys,.library-journeys-content{min-height:720px}.library-journeys-content{padding:52px 18px 42px}.library-quicklinks a{flex-basis:calc((100% - 48px)/7)}.library-quicklinks .plaque-label{font-size:clamp(14px,2.2vw,22px)}.library-ornament-books{width:165px}.library-ornament-orb{width:150px}}
@media (max-width:650px){
 .library-top{min-height:58px;padding:8px 14px}
 .library-logo{font-size:16px}
 .library-hero{min-height:0!important;height:auto!important;background:none!important;aspect-ratio:1676/940;}
 .library-hero-art{width:100%;height:auto;object-fit:contain}
 .library-sign-hotspot{left:54%;top:8%;width:42%;height:34%}
 .library-journeys{min-height:750px;background-position:center center;background-size:auto 100%;}
 .library-journeys-content{min-height:750px;padding:29px 9px 37px}
 .library-journeys-heading{border-radius:35px 35px 15px 15px;padding:17px 13px;width:calc(100% - 20px)}
 .library-journeys-overline{font-size:8px;letter-spacing:.15em;margin-bottom:8px}
 .library-journeys-heading h2{font-size:clamp(17px,4.5vw,23px);letter-spacing:.06em}
 .library-journeys-heading p{font-size:11px}
 .library-quicklinks{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 4px!important;justify-items:center;margin:22px auto 0!important;padding:0 2px!important;max-width:460px}
 .library-quicklinks a{display:block!important;width:100%;max-width:104px;aspect-ratio:89/260;min-height:0!important}
 .library-quicklinks .plaque-label{font-size:clamp(14px,3.8vw,20px);left:50%;top:49%;height:auto;width:max-content;letter-spacing:0}
 .library-quicklinks a::before{top:14%;font-size:12px}
 .library-quicklinks a:nth-child(n+5){transform:translateX(50%)}
 .library-quicklinks a:nth-child(n+5):hover{transform:translate(50%,-4px)!important}
 .library-journeys-hint{margin-top:5px;font-size:9px;letter-spacing:.02em}
 .library-journeys-archive{margin-top:16px;padding:10px 16px;font-size:13px}
 .library-ornament-books,.library-ornament-orb{display:none}
 .library-collection{margin:0;padding-top:25px}
 .collection-book-art{height:110px;width:100px}
}
@media (max-width:375px){.library-journeys,.library-journeys-content{min-height:700px}.library-quicklinks{gap:0 2px}.library-quicklinks .plaque-label{font-size:14px}}
@media(prefers-reduced-motion:reduce){.library-quicklinks a,.library-journeys-archive{transition:none!important}}

/* 藏書閣 v3：使用指定的學士貓趴書堆素材，取代標題書堆並放到收藏統計右側。 */
.collection-book-art{display:none!important}
.library-overview{position:relative;min-height:176px;padding-right:200px;isolation:isolate}
.library-overview>div{position:relative;z-index:1}
.library-overview p{position:relative;z-index:1;flex:1;max-width:520px}
.library-overview-cat{
 position:absolute;right:17px;bottom:2px;width:149px;height:auto;max-height:none;
 object-fit:contain;filter:drop-shadow(0 8px 11px #160e2399);
 z-index:1;pointer-events:none;user-select:none;
}
@media(max-width:900px){
 .library-overview{min-height:160px;padding-right:170px}
 .library-overview-cat{right:10px;width:136px}
}
@media(max-width:650px){
 .library-overview{min-height:154px;padding:17px 150px 17px 15px;align-items:center;overflow:visible}
 .library-overview>div{white-space:normal;flex-wrap:wrap;column-gap:7px;row-gap:0;align-items:baseline;min-width:0}
 .library-overview .shelf-caption{font-size:14px}
 .library-overview strong{font-size:40px;line-height:1.12}
 .library-overview>div>span:last-child{font-size:14px}
 .library-overview-cat{right:8px;bottom:2px;width:130px;max-width:39%}
}
@media(max-width:370px){
 .library-overview{padding-right:128px;padding-left:12px;min-height:141px}
 .library-overview-cat{width:115px}
 .library-overview .shelf-caption,.library-overview>div>span:last-child{font-size:12px}
 .library-overview strong{font-size:36px}
}


/* v4 — 依照提供的素材直接修改網站：固定整頁背景、單排吊牌、刪掉卡片書圖示。 */
/* 同一張月夜藏書閣圖像固定在視窗後面，頁面捲動不跟著移動。 */
html{background-color:#1c1427}
body{background:#1c1427 url('/assets/library-moon-background-v2.jpg') center center / cover fixed no-repeat}
.library-shell{position:relative;isolation:isolate;background:transparent!important}
.library-shell::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:#1c1427 url('/assets/library-moon-background-v2.jpg') center center / cover no-repeat}
.library-shell::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(21,13,35,.34),rgba(24,16,34,.49) 50%,rgba(16,11,26,.60))}
/* 原始首圖仍是原樣；圖片以外的內容透出同一張固定底圖。 */
.library-journeys{background:none!important;min-height:700px}
.library-journeys-content{min-height:700px}
.library-journeys-shade{background:linear-gradient(180deg,rgba(24,15,33,.42) 0%,rgba(24,15,33,.30) 45%,rgba(19,13,27,.56) 100%)}
.library-journeys::before{box-shadow:inset 0 10px 22px rgba(15,9,19,.3),inset 0 -25px 30px rgba(15,9,19,.4)}
.library-collection{background:linear-gradient(180deg,rgba(28,18,39,.69),rgba(27,19,36,.76));border-radius:12px;padding-bottom:50px}
.library-footer{background:rgba(22,15,31,.82)}
/* 修正紀錄卡上方的書本偽元素，不再顯示書符號。 */
.library-card::before{content:none!important;display:none!important}
/* 吊牌維持原本指定的金框素材、實際文字可點擊；七張永遠同一排。 */
.library-quicklinks{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;align-items:start;justify-content:center;gap:clamp(4px,1vw,14px);max-width:1080px}
.library-quicklinks a{display:block!important;width:100%;max-width:132px;min-width:0;justify-self:center;flex:none;aspect-ratio:89/260;background-image:url('/assets/archive-hanging-plaque-v2.png')!important}
.library-quicklinks a:nth-child(n+5){transform:none!important}
.library-quicklinks a:nth-child(n+5):hover{transform:translateY(-7px) rotate(-1deg)!important}
.library-quicklinks .plaque-label{text-orientation:upright;letter-spacing:0;white-space:nowrap}
@media(max-width:900px){
 .library-journeys,.library-journeys-content{min-height:0!important}
 .library-journeys-content{padding:36px 16px 57px}
 .library-quicklinks{gap:clamp(2px,.8vw,7px);max-width:760px}
 .library-quicklinks a{max-width:104px}
 .library-quicklinks .plaque-label{font-size:clamp(12px,2vw,20px)}
}
@media(max-width:650px){
 /* 窄手機仍是七張一排，不換行，也不把最後三張平移至第二排。 */
 .library-journeys,.library-journeys-content{min-height:0!important}
 .library-journeys-content{padding:28px 9px 48px!important}
 .library-quicklinks{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:2px!important;width:100%;max-width:500px;margin:19px auto 0!important;padding:0 1px!important;justify-items:center;overflow:visible}
 .library-quicklinks a{width:100%;max-width:65px;min-width:0;min-height:0!important;aspect-ratio:89/260;transform:none!important}
 .library-quicklinks a:nth-child(n+5){transform:none!important}
 .library-quicklinks a:hover,.library-quicklinks a:nth-child(n+5):hover{transform:translateY(-3px)!important}
 .library-quicklinks .plaque-label{font-size:clamp(10px,2.8vw,15px);letter-spacing:0;line-height:1.1;top:48%}
 .library-quicklinks a::before{font-size:9px;top:13%}
 .library-journeys-hint{margin-top:8px}
 .library-journeys-archive{margin-top:18px}
 .library-collection{margin:0;padding:24px 12px 49px;border-radius:0}
 .library-collection::before{opacity:.55}
}
@media(max-width:350px){.library-quicklinks{gap:0!important}.library-quicklinks .plaque-label{font-size:10px}.library-quicklinks a::before{font-size:8px}}
