:root{--green:#063f38;--deep:#022d2b;--mint:#b9d7bf;--cream:#fff9ef;--gold:#f2bd59;--coral:#ef907d;--ink:#2e332f;--line:rgba(6,63,56,.16)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;line-height:1.75}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input{font:inherit}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:12px 5vw;background:rgba(255,249,239,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-weight:900;color:var(--green);letter-spacing:.08em}.brand img{width:48px;height:48px;object-fit:contain}.site-header nav{display:flex;gap:28px;font-size:14px;font-weight:700}.site-header nav a:hover{color:#a2762d}.menu{display:none;border:0;background:transparent;font-size:24px}.hero{min-height:calc(100vh - 74px);padding:7vw 5vw 4vw;display:grid;grid-template-columns:.86fr 1.14fr;gap:4vw;align-items:center;background:radial-gradient(circle at 75% 20%,rgba(242,189,89,.2),transparent 30%),linear-gradient(135deg,#fff9ef 0%,#eef6e8 100%);overflow:hidden}.eyebrow{color:#9b6e27;font-size:12px;font-weight:900;letter-spacing:.2em}.hero h1,.intro h2,.section-head h2,.newsletter h2{margin:.2em 0;font-family:"Noto Serif TC",serif;color:var(--green);line-height:1.25}.hero h1{font-size:clamp(40px,5vw,76px);letter-spacing:-.04em}.hero h1 em{font-style:normal;color:#b17934}.hero-copy>p:not(.eyebrow){max-width:580px;font-size:18px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.button{display:inline-flex;justify-content:center;align-items:center;border-radius:999px;padding:13px 24px;border:1px solid var(--green);font-weight:800;cursor:pointer}.primary{background:var(--green);color:#fff}.ghost{color:var(--green)}.hero-art{width:100%;border-radius:48% 48% 20px 20px / 18% 18% 20px 20px;box-shadow:0 28px 70px rgba(2,45,43,.2)}section{padding:100px 7vw}.intro{text-align:center;max-width:950px;margin:auto}.intro h2{font-size:clamp(30px,4vw,52px)}.intro>p:last-child{max-width:720px;margin:28px auto}.missions{background:var(--green);color:#fff}.missions .eyebrow{color:var(--gold)}.missions h2{color:#fff}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}.section-head h2{font-size:clamp(30px,4vw,50px)}.section-head>p{max-width:520px}.filters,.character-tabs{display:flex;gap:8px;flex-wrap:wrap}.filters button,.character-tabs button{border:1px solid rgba(255,255,255,.3);background:transparent;color:inherit;border-radius:999px;padding:8px 15px;cursor:pointer}.filters .active{background:var(--gold);color:var(--deep);border-color:var(--gold)}.mission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.mission-card{background:#fff;color:var(--ink);border-radius:24px;overflow:hidden;transition:.25s}.mission-card:hover{transform:translateY(-8px)}.mission-cover{height:360px;position:relative;padding:24px;overflow:hidden}.mission-cover span{position:relative;z-index:2;background:#fff;border-radius:99px;padding:6px 12px;font-size:12px;font-weight:800}.mission-cover b{position:absolute;left:24px;top:72px;font-size:28px;line-height:1.2;color:var(--deep);z-index:2}.mission-cover img{position:absolute;right:-35%;bottom:-5%;width:115%;height:88%;object-fit:cover;object-position:left top;mix-blend-mode:multiply}.bear{background:#efd6aa}.heart{background:#f7c8c4}.pop{background:#cfddea}.mission-body{padding:22px}.mission-body p{font-size:12px;color:#8c6a36}.mission-body h3{min-height:58px}.text-link{border:0;background:none;padding:0;color:var(--green);font-weight:900;cursor:pointer}.characters{background:#f5eddf}.character-tabs{margin-bottom:20px}.character-tabs button{color:var(--green);border-color:var(--line)}.character-tabs .active{background:var(--green);color:#fff}.character-stage{display:grid;grid-template-columns:1.2fr .8fr;min-height:610px;background:#fff;border-radius:30px;overflow:hidden}.character-stage img{width:100%;height:100%;object-fit:cover;object-position:left center}.character-stage>div{padding:8vw 5vw;align-self:center}.character-stage h3{margin:0;color:var(--green);font-size:64px}.character-stage #characterTag{color:#a56f2b;font-weight:800}.values{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding-top:0}.values article{padding:48px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.values article+article{border-left:1px solid var(--line)}.values b{color:#b67e32}.newsletter{text-align:center;background:var(--deep);color:#fff}.newsletter h2{color:#fff;font-size:clamp(32px,4vw,54px)}.newsletter form{display:flex;max-width:560px;margin:28px auto 12px;gap:8px}.newsletter input{flex:1;border:0;border-radius:999px;padding:14px 20px}.newsletter .primary{background:var(--gold);color:var(--deep);border-color:var(--gold)}.newsletter small{opacity:.65}footer{padding:54px 7vw 28px;background:#01231f;color:#fff;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}footer>div:nth-child(2){display:flex;gap:22px;flex-wrap:wrap}footer>p{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:20px;font-size:12px;opacity:.6}.footer-brand{display:flex;align-items:center;gap:14px}.footer-brand img{width:62px}.footer-brand p{margin:0;opacity:.7;font-size:13px}dialog{max-width:520px;border:0;border-radius:24px;padding:42px;box-shadow:0 30px 100px #0005}dialog::backdrop{background:#01231fbb}.close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:28px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:800px){.site-header nav{display:none;position:absolute;top:73px;left:0;right:0;background:var(--cream);padding:24px 5vw;flex-direction:column}.site-header nav.open{display:flex}.menu{display:block}.hero{grid-template-columns:1fr;padding-top:56px;min-height:auto}.hero-art{order:-1}.hero h1{font-size:42px}section{padding:72px 6vw}.section-head{align-items:start;flex-direction:column}.mission-grid{grid-template-columns:1fr}.mission-cover{height:320px}.character-stage{grid-template-columns:1fr;min-height:0}.character-stage img{height:400px}.character-stage>div{padding:34px}.character-stage h3{font-size:46px}.values{grid-template-columns:1fr}.values article+article{border-left:0}.newsletter form{flex-direction:column}footer{grid-template-columns:1fr}footer>p{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.mission-card{transition:none}}

/* 首頁角色夥伴：由 script.js 的 characters 陣列自動產生 */
#characters{scroll-margin-top:84px;background:#f5eddf}
.character-heading{text-align:center;max-width:760px;margin:0 auto 38px}
.character-heading h2{margin:.2em 0;font-family:"Noto Serif TC",serif;color:var(--green);font-size:clamp(30px,3.6vw,48px);line-height:1.3}
.character-heading p:last-child{margin:16px auto 0;color:#59615b}
.character-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;max-width:1320px;margin:0 auto}
.character-card{min-width:0;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 12px 34px rgba(2,45,43,.07);transition:transform .22s ease,box-shadow .22s ease}
.character-card:hover{transform:translateY(-5px);box-shadow:0 18px 42px rgba(2,45,43,.12)}
.character-portrait{aspect-ratio:4/5;background:#fff;overflow:hidden}
.character-portrait img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.character-copy{padding:18px 16px 22px;text-align:center}
.character-copy h3{margin:0 0 8px;color:var(--green);font-size:21px}
.character-copy p{margin:0;font-size:14px;line-height:1.7;color:#59615b}
footer a:hover,footer a:focus-visible{color:var(--gold)}
@media(max-width:1000px) and (min-width:801px){.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}.character-card:last-child{grid-column:1/-1;max-width:350px;justify-self:center;width:100%}}
@media(max-width:800px){.character-grid{display:flex;overflow-x:auto;gap:14px;margin-inline:-6vw;padding:2px 6vw 18px;scroll-snap-type:x mandatory;scrollbar-width:thin}.character-card{flex:0 0 82vw;max-width:330px;min-width:260px;scroll-snap-align:center}.character-heading p br{display:none}.character-copy{padding:17px 16px 20px}}
@media(prefers-reduced-motion:reduce){.character-card{transition:none}}
.newsletter form{flex-wrap:wrap}.newsletter-consent{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;font-size:12px;opacity:.82}.newsletter-consent input{flex:0 0 auto;margin-top:5px}.newsletter #newsletterMessage{width:100%;margin:0;color:var(--gold);font-weight:700}.newsletter #newsletterMessage.error{color:#ffb4a8}

/* 教材封面完整呈現：保留原始比例，不裁切、不變形 */
.mission-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;background:#fff;padding:10px;mix-blend-mode:normal}
.mission-cover span{box-shadow:0 4px 16px rgba(2,45,43,.12)}
.mission-cover{margin-bottom:58px;overflow:visible}
.mission-cover b{top:auto;bottom:-51px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:none;padding:8px 10px;border-radius:0;background:transparent;backdrop-filter:none;box-shadow:none;text-align:center;font-size:clamp(18px,2vw,25px);color:var(--green)}

/* Keep the supplied homepage artwork and brand mark fully visible. */
.hero-art{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center;border-radius:24px;box-shadow:0 28px 70px rgba(2,45,43,.2)}
.brand img,.footer-brand img{object-fit:contain;object-position:center}
@media(max-width:800px){.hero-art{width:100%;height:auto;border-radius:18px}}
