
/* =========================================================
   徐博士升學情報站 UI Shell v2.0
   Shared navigation, responsive fixes, search and polish
   ========================================================= */
:root{
  --dx-navy:#07152d;--dx-navy-2:#0d2144;--dx-panel:#12294e;
  --dx-gold:#d8b64b;--dx-gold-2:#f0d989;--dx-ivory:#fffaf0;
  --dx-line:rgba(216,182,75,.25);--dx-shadow:0 26px 80px rgba(4,14,34,.24);
  --dx-ease:cubic-bezier(.22,.8,.28,1)
}
html{scroll-padding-top:84px}
body{min-height:100vh}
.dx-skip{position:fixed;left:16px;top:10px;z-index:1000;transform:translateY(-160%);background:#fff;color:#07152d;padding:10px 14px;border-radius:10px;font-weight:800;box-shadow:0 8px 28px rgba(0,0,0,.25);transition:transform .2s}
.dx-skip:focus{transform:translateY(0)}
.dx-progress{position:fixed;z-index:999;left:0;top:0;width:100%;height:3px;pointer-events:none;background:rgba(216,182,75,.08)}
.dx-progress>i{display:block;width:0;height:100%;background:linear-gradient(90deg,#d8b64b,#f5e2a2);box-shadow:0 0 16px rgba(240,217,137,.65)}
.dx-backtop{position:fixed;right:20px;bottom:20px;z-index:90;width:46px;height:46px;border:1px solid rgba(216,182,75,.45);border-radius:50%;display:grid;place-items:center;background:rgba(7,21,45,.88);color:#f0d989;font:900 18px/1 system-ui;box-shadow:0 12px 36px rgba(0,0,0,.28);backdrop-filter:blur(12px);cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:.28s var(--dx-ease)}
.dx-home-float{position:fixed;right:20px;bottom:78px;z-index:84;display:flex;align-items:center;gap:9px;min-height:48px;padding:7px 12px 7px 8px;border:1px solid rgba(216,182,75,.48);border-radius:999px;background:linear-gradient(145deg,rgba(18,43,82,.96),rgba(6,19,42,.98));color:#fffaf0;text-decoration:none;box-shadow:0 14px 34px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.055);backdrop-filter:blur(12px);transition:.24s var(--dx-ease)}
.dx-home-float:hover{transform:translateY(-3px);border-color:#f0d989;box-shadow:0 18px 42px rgba(0,0,0,.4),0 0 0 3px rgba(216,182,75,.08)}.dx-home-float-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(216,182,75,.13);border:1px solid rgba(240,217,137,.42);color:#f0d989;font-size:17px}.dx-home-float-copy{display:grid;line-height:1.1}.dx-home-float-copy small{font:700 8px/1.1 Georgia,serif;letter-spacing:.12em;color:#b9a15d}.dx-home-float-copy b{margin-top:3px;font-size:12px;letter-spacing:.08em}

/* 更新日期與浮動首頁的可愛提醒動態 */
.dx-update-date{display:inline-block;margin-left:8px;color:#f0d989;font-size:.9em;font-weight:700;letter-spacing:.05em;white-space:nowrap}
@keyframes dxHomeHop{
  0%,68%,100%{translate:0 0;rotate:0deg}
  72%{translate:0 -7px;rotate:-1.5deg}
  76%{translate:0 0;rotate:1deg}
  79%{translate:0 -3px;rotate:-.5deg}
  83%{translate:0 0;rotate:0deg}
}
@keyframes dxHomeIconFlip{
  0%,74%,100%{transform:rotateY(0) scale(1)}
  82%{transform:rotateY(180deg) scale(1.08)}
  90%{transform:rotateY(360deg) scale(1)}
}
.dx-home-float{animation:dxHomeHop 7.2s ease-in-out infinite;transform-origin:70% 100%;will-change:translate,rotate}
.dx-home-float-icon{animation:dxHomeIconFlip 11.8s cubic-bezier(.4,0,.2,1) infinite;transform-style:preserve-3d;backface-visibility:visible}
.dx-home-float:hover{animation-play-state:paused;transform:translateY(-3px)}
.dx-home-float:hover .dx-home-float-icon{animation-play-state:paused}

.dx-backtop.is-on{opacity:1;transform:none;pointer-events:auto}
.dx-backtop:hover{background:#d8b64b;color:#07152d;transform:translateY(-3px)}


/* ---------- official Dr. Hsu logo · radar scan ---------- */
@keyframes dx-radar-sweep{
  to{transform:rotate(360deg)}
}
@keyframes dx-radar-breathe{
  0%,100%{transform:scale(.985);filter:brightness(.96) saturate(.96) drop-shadow(0 6px 14px rgba(0,0,0,.22))}
  48%,54%{transform:scale(1.025);filter:brightness(1.08) saturate(1.08) drop-shadow(0 0 18px rgba(240,217,137,.28))}
}
@keyframes dx-radar-ring{
  0%,100%{opacity:.46;transform:scale(.94)}
  50%{opacity:.9;transform:scale(1.02)}
}
.dx-radar-logo{
  position:relative;display:grid;place-items:center;flex:0 0 auto;overflow:hidden;isolation:isolate;
  border-radius:50%;background:#07152d;border:1px solid rgba(240,217,137,.38);
  box-shadow:0 7px 18px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.025);
}
.dx-radar-logo>img.dx-seal,
.dx-radar-logo>img.dx-logo-mark{
  position:relative;z-index:1;display:block;width:100%!important;height:100%!important;object-fit:cover;
  border:0!important;border-radius:50%!important;background:#07152d!important;box-shadow:none!important;
  transform-origin:50% 50%;will-change:transform,filter;animation:dx-radar-breathe 5.8s ease-in-out infinite;
}
.dx-radar-logo::before{
  content:"";position:absolute;z-index:3;inset:-13%;border-radius:50%;pointer-events:none;
  background:conic-gradient(from 0deg,
    transparent 0 76%,rgba(240,217,137,.025) 80%,rgba(240,217,137,.22) 86%,
    rgba(255,250,224,.92) 89%,rgba(240,217,137,.3) 91%,transparent 96% 100%);
  -webkit-mask:radial-gradient(circle,transparent 0 13%,#000 15% 100%);
  mask:radial-gradient(circle,transparent 0 13%,#000 15% 100%);
  mix-blend-mode:screen;transform-origin:50% 50%;animation:dx-radar-sweep 2.6s linear infinite;
}
.dx-radar-logo::after{
  content:"";position:absolute;z-index:2;inset:5%;border-radius:50%;pointer-events:none;
  background:
    radial-gradient(circle,transparent 0 31%,rgba(240,217,137,.18) 32%,transparent 34% 55%,rgba(240,217,137,.14) 56%,transparent 58%),
    linear-gradient(90deg,transparent 49%,rgba(240,217,137,.16) 50%,transparent 51%),
    linear-gradient(0deg,transparent 49%,rgba(240,217,137,.13) 50%,transparent 51%);
  box-shadow:inset 0 0 18px rgba(216,182,75,.11);animation:dx-radar-ring 3.2s ease-in-out infinite;
}
#pre .dx-radar-logo{width:118px;height:118px}
.lock .dx-radar-logo{width:46px;height:46px;flex-basis:46px}
.dx-appbrand .dx-radar-logo{width:44px;height:44px;flex-basis:44px}
@media(max-width:760px){
  .lock .dx-radar-logo{width:42px;height:42px;flex-basis:42px}
  .dx-appbrand .dx-radar-logo{width:38px;height:38px;flex-basis:38px}
}
@media(prefers-reduced-motion:reduce){
  .dx-radar-logo::before,.dx-radar-logo::after,.dx-radar-logo>img{animation:none!important}
  .dx-radar-logo::before{transform:rotate(28deg);opacity:.55}
}

/* ---------- detail pages: app shell ---------- */
body.dx-subpage{padding:0 14px 58px!important;background:
  radial-gradient(900px 500px at 12% -8%,rgba(37,99,235,.12),transparent 64%),
  radial-gradient(760px 460px at 92% 4%,rgba(216,182,75,.12),transparent 62%),
  #e9edf4!important}
.dx-appbar{position:sticky;top:0;z-index:120;margin:0 -14px 18px;background:rgba(7,21,45,.92);color:#fff;border-bottom:1px solid rgba(216,182,75,.24);box-shadow:0 10px 30px rgba(5,15,36,.15);backdrop-filter:blur(18px) saturate(1.2)}
.dx-appbar-in{max-width:1220px;min-height:66px;margin:auto;padding:8px 20px;display:flex;align-items:center;gap:18px}
.dx-appbrand{display:flex;align-items:center;gap:11px;min-width:max-content;text-decoration:none;color:inherit}
.dx-seal{width:38px;height:38px;border:1.5px solid var(--dx-gold);border-radius:50%;display:grid;place-items:center;color:var(--dx-gold-2);font:900 18px/1 "Microsoft JhengHei",sans-serif;box-shadow:inset 0 0 0 4px rgba(216,182,75,.06)}
.dx-brandtext{display:grid;line-height:1.2}.dx-brandtext small{font-size:10px;letter-spacing:.26em;color:var(--dx-gold);font-weight:800}.dx-brandtext b{font-size:13px;letter-spacing:.08em;color:#fffaf0}
.dx-pagecrumb{min-width:0;padding-left:18px;border-left:1px solid rgba(216,182,75,.24);color:#cbd5e1;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
.dx-appnav{margin-left:auto;display:flex;align-items:center;gap:4px}
.dx-appnav a,.dx-action{border:0;background:transparent;color:#d7dfec;text-decoration:none;font:700 12.5px/1.2 "Microsoft JhengHei",system-ui,sans-serif;letter-spacing:.04em;padding:10px 11px;border-radius:10px;cursor:pointer;transition:.22s}
.dx-appnav a:hover,.dx-appnav a.is-current,.dx-action:hover{color:#fff;background:rgba(216,182,75,.12)}
.dx-actions{display:flex;gap:7px;padding-left:8px;border-left:1px solid rgba(216,182,75,.2)}
.dx-action{border:1px solid rgba(216,182,75,.27);color:var(--dx-gold-2);display:inline-flex;align-items:center;gap:6px}
body.dx-subpage .sheet{margin:0 auto!important;border-radius:24px!important;border:1px solid rgba(255,255,255,.85);box-shadow:var(--dx-shadow)!important;isolation:isolate}
body.dx-subpage .sheet>.hero,body.dx-subpage .sheet>.top{position:relative}
body.dx-subpage .sheet>.hero:after,body.dx-subpage .sheet>.top:after{content:"";position:absolute;right:-100px;bottom:-140px;width:340px;height:340px;border-radius:50%;border:1px solid rgba(255,255,255,.11);box-shadow:0 0 0 40px rgba(255,255,255,.035),0 0 0 90px rgba(255,255,255,.025);pointer-events:none}
body.dx-subpage .card,body.dx-subpage .panel{transition:transform .25s var(--dx-ease),box-shadow .25s var(--dx-ease)}
@media (hover:hover){body.dx-subpage .card:hover,body.dx-subpage .panel:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(20,30,60,.11)}}
.dx-related{max-width:1180px;margin:22px auto 0;padding:0 4px;color:#17233d;font-family:"Microsoft JhengHei",system-ui,sans-serif}
.dx-related-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:11px}.dx-related-head h2{font-size:17px;margin:0}.dx-related-head p{font-size:11.5px;color:#69758b;margin:0}
.dx-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.dx-related-card{display:flex;align-items:center;gap:12px;min-height:76px;padding:14px 15px;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid rgba(16,42,80,.1);color:#17233d;text-decoration:none;box-shadow:0 8px 26px rgba(22,36,68,.07);transition:.25s var(--dx-ease)}
.dx-related-card:hover{transform:translateY(-3px);border-color:rgba(216,182,75,.7);box-shadow:0 14px 34px rgba(22,36,68,.12)}
.dx-related-icon{flex:0 0 auto;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#0d2144;color:#f0d989;font-size:17px}
.dx-related-card small{display:block;color:#7b879b;font-size:10.5px;letter-spacing:.08em}.dx-related-card b{display:block;margin-top:4px;font-size:13.5px;line-height:1.4}.dx-related-card .arr{margin-left:auto;color:#b08c22;font-size:20px}
.dx-sitefoot{max-width:1180px;margin:18px auto 0;padding:15px 4px 0;border-top:1px solid rgba(13,33,68,.12);display:flex;justify-content:space-between;gap:16px;color:#6b778b;font:600 11px/1.7 "Microsoft JhengHei",system-ui,sans-serif}.dx-sitefoot b{color:#26334c}

/* ---------- homepage polish ---------- */
body.dx-home{background:#07152d}
body.dx-home .nav{box-shadow:0 8px 30px rgba(0,0,0,.18)}
body.dx-home .nav .in{min-height:68px}
.dx-menu-btn{display:none;margin-left:auto;width:42px;height:42px;border:1px solid rgba(216,182,75,.3);border-radius:12px;background:rgba(216,182,75,.06);color:#f0d989;cursor:pointer;font-size:19px}
.dx-mobile-menu{display:none;border-top:1px solid rgba(216,182,75,.15);padding:10px 18px 15px;background:rgba(7,21,45,.97)}
.dx-mobile-menu.is-open{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.dx-mobile-menu a{padding:12px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(216,182,75,.12);font-size:13px;color:#dce4f0;text-align:center}
body.dx-home .hero{min-height:670px;display:flex;align-items:center}
body.dx-home .hero:after{content:"";position:absolute;width:min(560px,50vw);aspect-ratio:1;right:-7%;top:-24%;border-radius:50%;background:radial-gradient(circle at 36% 36%,rgba(240,217,137,.22),rgba(201,162,39,.04) 45%,transparent 70%);filter:blur(3px);pointer-events:none}
body.dx-home .hero .in{width:100%;padding-top:92px;padding-bottom:88px}
body.dx-home h1.title{max-width:760px;text-wrap:balance;text-shadow:0 12px 40px rgba(0,0,0,.18)}
body.dx-home .lede{font-size:17px;max-width:700px}
body.dx-home .stats{gap:12px}
body.dx-home .stat{border-radius:14px;min-width:132px;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(216,182,75,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.05);backdrop-filter:blur(8px)}
body.dx-home .cta{border-radius:12px;min-height:50px;justify-content:center}
body.dx-home .cta.solid{box-shadow:0 12px 28px rgba(201,162,39,.18)}
body.dx-home .wm{right:4%;opacity:.72}
.dx-finder-wrap{position:relative;z-index:4;max-width:1180px;margin:-38px auto 4px;padding:0 24px}
.dx-finder{border:1px solid rgba(216,182,75,.28);border-radius:22px;background:linear-gradient(145deg,rgba(26,48,89,.96),rgba(9,22,47,.98));box-shadow:0 28px 70px rgba(0,0,0,.34);padding:20px;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(400px,1.5fr);gap:22px;align-items:center;backdrop-filter:blur(20px)}
.dx-finder-copy small{font:600 italic 12px/1.2 Georgia,serif;letter-spacing:.18em;color:#d8b64b}.dx-finder-copy h2{font-size:21px;line-height:1.35;margin:7px 0 0;color:#fffaf0}.dx-finder-copy p{font-size:11.5px;color:#92a1bb;line-height:1.7;margin:6px 0 0}
.dx-finder-tools{min-width:0}.dx-searchbox{height:48px;display:flex;align-items:center;gap:10px;padding:0 15px;border:1px solid rgba(216,182,75,.24);border-radius:14px;background:rgba(4,14,34,.55)}.dx-searchbox svg{width:18px;color:#d8b64b}.dx-searchbox input{width:100%;border:0;outline:0;background:transparent;color:#fffaf0;font:600 14px/1.2 "Microsoft JhengHei",system-ui,sans-serif}.dx-searchbox input::placeholder{color:#7888a5}
.dx-filter-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.dx-chip{border:1px solid rgba(216,182,75,.2);border-radius:999px;padding:7px 11px;background:transparent;color:#b9c5d8;font:700 11.5px/1 "Microsoft JhengHei",system-ui,sans-serif;cursor:pointer}.dx-chip:hover,.dx-chip.is-on{background:#d8b64b;color:#07152d;border-color:#d8b64b}.dx-result{margin-left:auto;color:#8696b1;font-size:11.5px}.dx-result b{color:#f0d989;font-size:14px}
.dx-noresult{display:none;max-width:1180px;margin:32px auto;padding:28px;border:1px dashed rgba(216,182,75,.35);border-radius:16px;text-align:center;color:#cbd5e1}.dx-noresult.is-on{display:block}
body.dx-home .vol{padding-top:88px}
body.dx-home .rbox,body.dx-home .ci{border-radius:18px}
body.dx-home .ci{padding:24px;background:linear-gradient(155deg,rgba(31,58,105,.92),rgba(11,26,54,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
body.dx-home .card:hover .ci{transform:translateY(-4px);box-shadow:0 28px 58px rgba(0,0,0,.44)}
body.dx-home .rdout,body.dx-home .cell,body.dx-home .flag,body.dx-home .cta{border-radius:10px}
body.dx-home .dx-filter-hidden{display:none!important}
body.dx-home .dx-section-hidden{display:none!important}

@media(max-width:920px){
  .dx-appnav{display:none}.dx-pagecrumb{margin-left:auto;max-width:260px}.dx-related-grid{grid-template-columns:1fr 1fr}.dx-related-card:last-child{grid-column:1/-1}
  .dx-finder{grid-template-columns:1fr}.dx-finder-copy p{display:none}
}
@media(max-width:640px){
  html{scroll-padding-top:70px}
  .dx-backtop{right:14px;bottom:66px;width:42px;height:42px}.dx-home-float{right:14px;bottom:14px;min-height:43px;padding:5px 9px 5px 6px}.dx-home-float-icon{width:31px;height:31px}.dx-home-float-copy small{display:none}.dx-home-float-copy b{font-size:11px}
  body.dx-subpage{padding:0 0 34px!important}
  .dx-appbar{margin:0 0 12px}.dx-appbar-in{min-height:60px;padding:7px 12px;gap:9px}.dx-seal{width:34px;height:34px;font-size:16px}.dx-brandtext small{font-size:8px}.dx-brandtext b{font-size:11.5px}.dx-pagecrumb{display:none}.dx-actions{margin-left:auto;padding-left:0;border-left:0}.dx-action{padding:9px}.dx-action span{display:none}.dx-appnav{display:none}
  body.dx-subpage .sheet{width:auto!important;margin:12px!important;border-radius:20px!important}
  body.dx-subpage .hero .brand,body.dx-subpage .top .brand{position:static!important;display:inline-flex!important;width:max-content!important;max-width:100%!important;margin:0 0 12px!important;padding:6px 12px!important;border-width:1px!important;font-size:11.5px!important;line-height:1.2!important;letter-spacing:.08em!important}
  body.dx-subpage .hero,body.dx-subpage .top{padding-top:20px!important}
  body.dx-subpage .hero h1,body.dx-subpage .head-h1{max-width:100%!important;font-size:clamp(25px,8vw,31px)!important;line-height:1.15!important}
  body.dx-subpage .sheet>.hero:after,body.dx-subpage .sheet>.top:after{width:220px;height:220px;right:-110px;bottom:-120px}
  .dx-related{padding:0 12px;margin-top:18px}.dx-related-head{align-items:start}.dx-related-head p{display:none}.dx-related-grid{grid-template-columns:1fr;gap:8px}.dx-related-card:last-child{grid-column:auto}.dx-sitefoot{margin:14px 12px 0;display:block}.dx-sitefoot span{display:block;margin-top:4px}
  body.dx-home .nav .in{min-height:60px;padding:9px 18px}body.dx-home .nav .links{display:none}.dx-menu-btn{display:grid;place-items:center}.dx-mobile-menu.is-open{display:grid}
  body.dx-home .hero{min-height:auto}body.dx-home .hero .in{padding:68px 24px 80px}body.dx-home .wm{display:none}body.dx-home h1.title{font-size:clamp(37px,12vw,49px);line-height:1.12}body.dx-home .lede{font-size:15.5px;line-height:1.9}body.dx-home .stats{display:grid;grid-template-columns:1fr 1fr}.dx-finder-wrap{margin:-44px auto 0;padding:0 16px}.dx-finder{padding:17px;border-radius:18px;gap:15px}.dx-finder-copy h2{font-size:18px}.dx-filter-row{gap:6px}.dx-result{width:100%;margin:3px 0 0;text-align:right}body.dx-home .vol{padding:68px 18px 8px}body.dx-home .ruler{padding:0 18px}body.dx-home .vhead{align-items:center}.vnum{width:48px!important;height:48px!important;font-size:20px!important}body.dx-home .ci{padding:20px}
}
@media(max-width:390px){.dx-brandtext small{display:none}.dx-brandtext b{font-size:11px}.dx-appbrand{gap:7px}.dx-action{padding:8px}.dx-related-card{padding:12px}.dx-finder-copy small{font-size:10.5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.dx-progress{display:none}}
@media print{
  .dx-appbar,.dx-related,.dx-sitefoot,.dx-backtop,.dx-home-float,.dx-progress,.dx-skip,.dx-menu-btn,.dx-mobile-menu,.dx-finder-wrap{display:none!important}
  body.dx-subpage,body.dx-home{padding:0!important;background:#fff!important}.sheet{box-shadow:none!important;border:0!important;margin:0!important;max-width:none!important}.grain,.vignette,.cur,.cur-r,#pre{display:none!important}
}
