:root{--bg:#f6f1e8;--ink:#2c241c;--muted:#6d6358;--gold:#c4b07a;--gold-hover:#b49e68;--gold-soft:#ece4cf;--brown:#692d0f;--line:#e2d8c8;--footer:#2a231c;--serif:"Noto Serif TC", "Songti TC", serif;--sans:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--page:1080px}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.7}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}.page-shell{flex-direction:column;min-height:100vh;display:flex}.wrap{width:min(var(--page),calc(100% - 40px));margin-inline:auto}.site-header{z-index:20;background:color-mix(in srgb,var(--bg) 92%,#fff);border-bottom:1px solid var(--line);position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:24px;min-height:64px;display:flex}.brand{align-items:baseline;gap:10px;display:flex}.brand__name{font-family:var(--serif);letter-spacing:.14em;font-size:1.2rem;font-weight:500}.brand__meta{color:var(--muted);font-size:.85rem}.nav{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.nav a{font-size:.92rem}.nav a.router-link-exact-active{color:var(--brown)}.btn{border:1px solid var(--gold);cursor:pointer;background:var(--gold-soft);color:var(--ink);letter-spacing:.12em;border-radius:2px;justify-content:center;align-items:center;padding:.7rem 1.5rem;font-weight:500;display:inline-flex}.btn:hover{background:var(--gold-hover)}.btn--ghost{color:var(--ink);border:1px solid var(--ink);background:0 0}.btn--ghost:hover{background:var(--ink);color:var(--bg)}.btn:disabled{cursor:not-allowed;color:#888;background:#ddd;border-color:#ddd}.hero-banner{position:relative}.hero-banner:after{content:"";background:linear-gradient(to bottom,transparent 55%,var(--bg));pointer-events:none;position:absolute;inset:0}.hero-banner img{-o-object-fit:cover;object-fit:cover;width:100%;height:min(52vw,420px)}.intro{text-align:center;padding:48px 0 24px}.intro h1{font-family:var(--serif);letter-spacing:.18em;margin:0 0 10px;font-size:clamp(2.1rem,4vw,3rem);font-weight:500}.intro__sub{color:var(--muted);margin:0 0 16px}.kicker{margin:0 0 8px;font-size:.85rem}.kicker,.lede{color:var(--muted)}.lede{max-width:38rem;margin:0 auto 24px}.section{padding:36px 0 64px}.page-title,.section-heading{text-align:center}.page-title h1,.section-heading h2{font-family:var(--serif);letter-spacing:.08em;margin:0;font-size:1.55rem;font-weight:500}.section-rule{justify-content:center;align-items:center;gap:12px;width:min(200px,50%);margin:14px auto 32px;display:flex}.section-rule:after,.section-rule:before{content:"";background:var(--gold);flex:1;height:1px}.section-rule span{background:var(--brown);flex:none;width:6px;height:6px;transform:rotate(45deg)}.section-more{text-align:center;color:var(--brown);margin-top:28px;display:block}.page-title{padding:48px 0 8px}.page-title p{color:var(--muted);max-width:40rem;margin:0 auto}.grid-2,.grid-3{gap:20px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr 1fr}.card{border:1px solid var(--line);background:#fff;flex-direction:column;min-height:100%;padding:16px;display:flex}.card img{-o-object-fit:cover;object-fit:cover;width:100%;height:180px;margin-bottom:14px}.card__tag{color:var(--brown);margin-bottom:6px;font-size:.78rem}.card h3,.carousel__slide h3,.prose h2,.timeline strong{font-family:var(--serif);font-weight:500}.card h3{margin:0 0 8px;font-size:1.2rem}.card p,.prose li,.prose p{color:var(--muted)}.card__meta{justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;font-size:.9rem;display:flex}.carousel{gap:16px;display:grid}.carousel__viewport{scroll-snap-type:x mandatory;scrollbar-width:none;gap:16px;padding-bottom:8px;display:flex;overflow-x:auto}.carousel__viewport:focus-visible{outline:2px solid var(--brown);outline-offset:4px}.carousel__viewport::-webkit-scrollbar{display:none}.carousel__slide{scroll-snap-align:center;border:1px solid var(--line);background:#fff;flex-direction:column;flex:0 0 min(72%,480px);justify-content:flex-end;gap:8px;min-height:160px;padding:28px;display:flex}.carousel__slide h3{letter-spacing:.1em;margin:0;font-size:1.7rem}.carousel__controls{justify-content:space-between;align-items:center;gap:12px;display:flex}.carousel__dots{gap:8px;display:flex}.carousel__dot{cursor:pointer;background:#ddd;border:0;border-radius:50%;width:8px;height:8px;padding:0}.carousel__dot.is-on{background:var(--brown)}.prose{max-width:42rem}.prose h2{font-size:1.15rem;font-weight:600}.prose ul{padding-left:1.1rem}.media-frame{aspect-ratio:16/9;background:#111}.media-frame iframe{border:0;width:100%;height:100%}.notice{border-left:3px solid var(--gold);color:var(--muted);background:#faf7ee;padding:10px 14px;font-size:.9rem}.calendar{gap:16px;display:grid}.day-block{border:1px solid var(--line);background:#fff;padding:16px 18px 18px}.day-block__title{justify-content:space-between;margin-bottom:12px;display:flex}.slots{flex-wrap:wrap;gap:8px;display:flex}.slot{border:1px solid var(--line);cursor:pointer;background:#fff;min-width:92px;padding:10px 12px}.slot.is-on{background:var(--gold);border-color:var(--gold)}.slot:disabled{color:#aaa;cursor:not-allowed;background:#f3f3f3;text-decoration:line-through}.form{gap:14px;display:grid}.field{gap:6px;display:grid}.field span{font-size:.82rem}.field input,.field select,.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:2px;padding:10px 12px}.success{border:1px solid var(--gold);text-align:center;background:#faf7ee;padding:28px}.site-footer{background:var(--footer);margin-top:auto;padding:36px 0 44px;font-size:.9rem;line-height:1.8}.site-footer__inner{gap:16px;display:grid}.site-footer__place{color:#f3f3f3;margin:0}.site-footer__hint{color:var(--muted);font-size:.82rem}.site-footer__hint p{margin:0}.site-footer a{color:inherit;text-underline-offset:3px;text-decoration:underline}.map{border:0;width:100%;height:280px}.split{grid-template-columns:1.1fr .9fr;align-items:start;gap:40px;display:grid}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:1px solid var(--line);padding:0 0 22px 18px}.timeline strong{margin-bottom:4px;display:block}@media (width<=860px){.hero-banner img{height:220px}.grid-2,.grid-3,.split{grid-template-columns:1fr}.site-header__inner{flex-wrap:wrap;padding-block:10px}.nav{width:100%}.carousel__slide{flex-basis:86%;min-height:140px;padding:20px}}
