/* ============================================================
 *  RP3 — Base / Common  (三案共用 reset + typography baseline)
 *  Route-specific effects (grain/glow/halftone/marquee) 在各 route-*.css
 * ============================================================ */

*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--f-body);
  font-weight: var(--w-body, 400);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  min-height: 100vh;
  position: relative;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; transition: color .3s ease; }
img, picture, svg, video { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }

.rp3-container { max-width: var(--container); margin: 0 auto; padding: 0 var(--s-7); position: relative; }
.rp3-container--narrow { max-width: var(--container-narrow); }

/* Display utilities */
.rp3-display { font-family: var(--f-display); line-height: .94; letter-spacing: -.01em; }
.rp3-display em { font-family: var(--f-display-italic); font-style: italic; font-weight: 500; }
.rp3-cjk-display { font-family: var(--f-cjk-display); font-weight: var(--w-cjk-display, 700); letter-spacing: .04em; }
.rp3-italic { font-family: var(--f-display-italic); font-style: italic; font-weight: 500; }

/* Screen reader */
.screen-reader-text { position: absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }

/* 主 wrapper */
.rp3-main { display: block; }

/* 預設隱藏路線專屬 markup（route-*.css 自行 reveal） */
.rp3-marquee-top, .rp3-marquee-bot { display: none; }
