:root {
	--color-primary:#111;--color-secondary:#2f3a8f;--color-accent:#6657e8;
	--color-background:#f7f7f5;--color-surface:#fff;--color-surface-dark:#171717;
	--color-text-primary:#171717;--color-text-secondary:#606060;--color-text-light:#fff;
	--color-border:#e3e3df;--color-success:#18864b;--color-warning:#d78a16;--color-error:#c93b3b;
	--container-wide:1440px;--container-main:1240px;--container-reading:760px;
	--space-section:clamp(5rem,9vw,9rem);--radius-small:8px;--radius-card:16px;--radius-image:20px;
	--font-sans:"Inter","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--color-background);color:var(--color-text-primary);font-family:var(--font-sans);font-size:17px;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%;height:auto}
svg{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
h1,h2,h3,h4,p{margin-top:0}
h1,h2,h3,h4{font-weight:600;letter-spacing:-.035em;line-height:1.08}
h1{font-size:clamp(2.65rem,6vw,5rem)}
h2{font-size:clamp(2.15rem,4vw,3.5rem)}
h3{font-size:clamp(1.35rem,2vw,1.85rem)}
p:last-child{margin-bottom:0}
::selection{background:var(--color-accent);color:#fff}
:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}
.container-wide,.container-main,.container-reading{width:100%;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,4rem)}
.container-wide{max-width:calc(var(--container-wide) + 8rem)}
.container-main{max-width:calc(var(--container-main) + 8rem)}
.container-reading{max-width:calc(var(--container-reading) + 8rem)}
.section{padding-block:var(--space-section)}
.section--tint{background:#efefeb}
.section--dark{background:var(--color-surface-dark);color:var(--color-text-light)}
.lead{max-width:760px;color:var(--color-text-secondary);font-size:clamp(1.08rem,2vw,1.35rem);line-height:1.6}
.section--dark .lead{color:#bdbdb8}
.eyebrow{display:block;margin-bottom:1.2rem;color:var(--color-accent);font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.section--dark .eyebrow,.site-footer .eyebrow{color:#a99fff}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-100px;left:1rem;z-index:9999;padding:.75rem 1rem;background:#fff}
.skip-link:focus{top:1rem}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-visible,.no-js .reveal{opacity:1;transform:none}

