/* ===== 2026 輔仁選書師選書展 ===== */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;overflow-x:clip;
  font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;
  color:#241d16;
  background:linear-gradient(180deg,#f1e6cd 0%,#f8efd9 42%,#ead9b9 100%);
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:
    radial-gradient(circle,rgba(103,73,38,.16) 1px,transparent 1.5px),
    radial-gradient(circle,rgba(255,255,255,.34) 1px,transparent 1.6px);
  background-size:30px 30px,44px 44px;background-position:0 0,12px 18px;opacity:.4;
}
.hidden{display:none!important}

@keyframes chestGlow{0%,100%{transform:translateY(0);filter:drop-shadow(0 0 14px rgba(255,199,73,.4))}50%{transform:translateY(-4px);filter:drop-shadow(0 0 30px rgba(255,214,88,.75))}}
@keyframes questShine{0%{transform:translateX(-80%)}48%,100%{transform:translateX(120%)}}
@keyframes goldFlow{0%{background-position:0 0}100%{background-position:220% 0}}
@keyframes goldSheen{0%{background-position:0 0}100%{background-position:260% 0}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes unlockPop{0%{transform:scale(.55);opacity:.3}60%{transform:scale(1.18)}100%{transform:scale(1)}}

/* hero background images (relative to this CSS file → /mandu/img/) */
#heroWrap{background:#1d130a url('img/mandu_fju-2026_computer.png') center/cover no-repeat}

/* book cover hover zoom */
.book-cover{transition:transform .45s ease}
.bookcard:hover .book-cover{transform:scale(1.09)}

@media(max-width:1180px){#bookGrid{grid-template-columns:repeat(4,1fr)!important}#ruleGrid{grid-template-columns:repeat(2,1fr)!important}#subjectCard{grid-column:1 / -1!important}}
@media(min-width:721px){#mqBtn{display:none!important}}

/* desktop scroll-to-top button (選書任務) */
#topBtn{position:fixed;right:max(22px, calc((100vw - 1240px)/2 - 60px));bottom:26px;z-index:42;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:52px;height:52px;border-radius:50%;border:1px solid rgba(213,161,58,.6);background:linear-gradient(135deg,#4a2f1f,#8b5c28 60%,#d5a13a);color:#fff8e8;cursor:pointer;box-shadow:0 10px 24px rgba(58,40,20,.34);font-family:inherit;transition:transform .15s ease,opacity .2s ease}
#topBtn:hover{transform:translateY(-2px)}

/* short viewport: don't let the mission block bury the books */
@media(min-width:721px) and (max-height:900px){
  #missionCard{position:static!important;padding:13px 18px!important}
  #unlockBox{margin-top:10px!important;padding:11px 16px!important}
  #trackWrap{margin-top:8px!important}
  #personalArea > div{margin-top:10px!important}
}

@media(max-width:720px){
  #topBtn{display:none!important}
  #bookGrid{grid-template-columns:repeat(2,1fr)!important;gap:12px!important}
  #missionCard{position:static!important;top:auto!important}
  #fields{grid-template-columns:1fr!important}
  #emailField{grid-column:auto!important}
  #ruleGrid{grid-template-columns:1fr!important}
  #toolbar{flex-wrap:wrap!important}
  #toolbar .tb-search{flex:1 1 100%!important;max-width:none!important}
  #toolbar select,#toolbar button{padding:10px 12px!important;font-size:13.5px!important}
  #heroWrap{padding:34px 14px 64px!important;min-height:280px!important;background-image:url('img/mandu_fju-2026_mobile.png')!important}
  #tabBar{display:none!important}
  #hamBtn{display:flex!important}
  #heroH1{font-size:9.2vw!important;white-space:nowrap!important}
  #heroSub{font-size:6.3vw!important;white-space:nowrap!important;margin-top:.22em!important}
  #milestoneSubLabels{display:none!important}
  [data-badge]{display:none!important}
  #questMsg{text-align:center!important}
  body{padding-bottom:104px}
}
