/* 慢聊好所在 The Slow Talk — shared styles */
:root{
  --bg:#FAFAFA;
  --ink:#3E3E3E;
  --ink-soft:#6b6762;
  --coffee:#8C6A4E;
  --coffee-dark:#7a5b42;
  --sage:#A7B6A2;
  --sage-ink:#5f6e5b;
  --sage-wash:#EEF1EC;
  --amber:#D9A066;
  --amber-wash:#F6EBDD;
  --line:#E4E1DC;
  --serif:"Noto Serif TC","Songti TC",serif;
  --sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  --wrap:1080px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.85;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
a{color:inherit}
img,svg{display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.en{display:block;font-size:.86em;color:var(--ink-soft);line-height:1.7;margin-top:.35em}
:focus-visible{outline:2px solid var(--coffee);outline-offset:3px;border-radius:2px}

/* page transitions between documents (supported browsers only) */
@view-transition{navigation:auto}
.top{view-transition-name:site-header}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:vt-out .22s ease-in both}
  ::view-transition-new(root){animation:vt-in .38s ease-out both}
  @keyframes vt-out{to{opacity:0}}
  @keyframes vt-in{from{opacity:0;transform:translateY(8px)}}
}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* header + nav */
.top{position:sticky;top:0;z-index:20;background:rgba(250,250,250,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;font-family:var(--serif);font-weight:600;color:var(--coffee);letter-spacing:.06em;white-space:nowrap}
.brand small{font-family:var(--sans);font-weight:400;color:var(--ink-soft);letter-spacing:0;font-size:.8rem}
.nav{display:flex;gap:24px;font-size:.92rem}
.nav a{text-decoration:none;color:var(--ink-soft);padding:4px 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--coffee)}
.nav a[aria-current="page"]{color:var(--coffee);border-bottom-color:var(--amber)}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font:inherit;font-size:.88rem;color:var(--coffee);cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:inline-block}
  .nav{display:none;position:absolute;left:0;right:0;top:64px;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 24px 16px}
  .nav.open{display:flex}
  .nav a{padding:12px 0;border-bottom:1px solid var(--line);font-size:1rem}
  .nav a[aria-current="page"]{border-bottom-color:var(--line)}
  .nav a:last-child{border-bottom:0}
}

/* buttons */
.actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;flex-wrap:wrap;max-width:100%;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;text-decoration:none;font:inherit;font-size:.95rem;line-height:1.5;border:1px solid var(--coffee);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn.primary{background:var(--coffee);color:#fff}
.btn.primary:hover{background:var(--coffee-dark)}
.btn.ghost{color:var(--coffee);background:transparent}
.btn.ghost:hover{border-color:var(--amber);color:#9a6a33}
.btn .sub{opacity:.75;font-size:.82em}
.tag{display:inline-block;font-size:.78rem;color:#7b6a3f;background:var(--amber-wash);padding:2px 10px;border-radius:999px;margin-left:8px;vertical-align:middle;font-family:var(--sans);font-weight:400}

/* inner page heading */
.page-head{padding:72px 0 48px}
.page-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(2rem,5vw,3.2rem);line-height:1.35;letter-spacing:.06em;margin:0}
.page-head h1 .en{font-family:var(--serif);font-weight:400;font-size:.45em;color:var(--coffee);letter-spacing:.02em;margin-top:.5em}
.page-head .intro{max-width:34em;margin:28px 0 0}
.block{padding:0 0 88px}
.rule{border:0;border-top:1px solid var(--line);margin:0}

/* "next page" link at the end of each page */
.next{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:32px 0;border-top:1px solid var(--line);text-decoration:none}
.next .label{font-size:.85rem;color:var(--ink-soft)}
.next .title{font-family:var(--serif);font-size:1.35rem;color:var(--coffee)}
.next .title small{display:block;font-family:var(--sans);font-size:.62em;color:var(--ink-soft)}
.next:hover .title{color:var(--coffee-dark)}
.next .go{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--coffee);display:grid;place-items:center;color:var(--coffee);transition:background .2s,color .2s}
.next:hover .go{background:var(--coffee);color:#fff}

/* footer */
footer.site{border-top:1px solid var(--line);padding:40px 0 56px;font-size:.85rem;color:var(--ink-soft)}
footer.site .note{max-width:52em;margin:0 0 20px}
footer.site .row{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer.site .row a{color:inherit}

/* English subtitles inside headings */
h2 .en,h3 .en{font-family:var(--sans);font-weight:400;font-size:.62em;color:var(--coffee);letter-spacing:0}
