:root{
  --paper:#f6f1e8;
  --paper-2:#efe7da;
  --ink:#25221e;
  --muted:#7e786f;
  --line:#d8cbbb;
  --gold:#c99b63;
  --brown:#7b5f45;
  --footer:#666463;
  --white:#fff;
  --ease:cubic-bezier(.2,.75,.25,1);

  /* Global typography scale — controlled by the theme */
  --font-sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  --font-serif:"Noto Serif TC","Songti TC","PMingLiU",serif;
  --font-en:Georgia,"Times New Roman",serif;
  --text-xs:12px;
  --text-sm:14px;
  --text-base:16px;
  --text-md:18px;
  --text-lg:20px;
  --leading-body:1.8;
  --leading-tight:1.25;
  --tracking-body:.025em;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:var(--text-base);
  font-weight:400;
  line-height:var(--leading-body);
  letter-spacing:var(--tracking-body);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
p{font-size:inherit;line-height:inherit}
.wrap{width:min(1120px,calc(100% - 48px));margin:auto}
.serif{font-family:var(--font-serif)}
.section-title{
  font-family:var(--font-serif);
  font-size:clamp(34px,4.1vw,62px);
  font-weight:500;
  letter-spacing:.05em;
  line-height:1.22;
  margin:0;
}
.ghost{
  position:absolute;
  font-family:var(--font-en);
  font-size:clamp(92px,14vw,220px);
  line-height:.8;
  color:#eadfce;
  opacity:.42;
  pointer-events:none;
  white-space:nowrap;
  letter-spacing:.01em;
}
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].is-visible{opacity:1;transform:none}
.default-content{padding:140px 0 80px}
.plugin-notice{padding:30px;background:#fffdf9;border:1px solid var(--line);color:var(--muted)}

@media(max-width:640px){
  :root{--text-base:15px;--text-md:17px;--text-lg:19px}
  .wrap{width:min(100% - 30px,1120px)}
}
