:root{--teal:#5e9ea0;--teal-d:#3f7a7c;--teal-l:#e8f2f2;--ink:#221715;--muted:#6b605e;--bg:#fbfaf8}
*{box-sizing:border-box}body{margin:0;font-family:"微軟正黑體","Microsoft JhengHei","Noto Sans TC","Noto Sans CJK TC",sans-serif;color:var(--ink);background:var(--bg);line-height:1.75}
a{color:var(--teal-d)}img{max-width:100%}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
header{background:#fff;border-bottom:3px solid var(--teal);position:sticky;top:0;z-index:9}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;max-width:1100px;margin:0 auto}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:700;font-size:1.15rem;white-space:nowrap}
.brand img{width:48px;height:48px}
nav{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:.95rem}nav a{text-decoration:none;color:var(--ink)}nav a:hover{color:var(--teal-d)}
.hero{background:linear-gradient(135deg,var(--teal-l),#fff);padding:64px 0}
.hero .wrap{display:flex;align-items:center;gap:40px}
.hero img{width:220px;flex-shrink:0;mix-blend-mode:multiply}
.hero h1{font-size:2.2rem;margin:0 0 8px}.hero p{font-size:1.1rem;color:var(--muted);margin:0 0 20px}
.btn{display:inline-block;padding:10px 22px;border-radius:999px;background:var(--teal);color:#fff;text-decoration:none;font-weight:700;margin:4px 8px 4px 0}
.btn:hover{background:var(--teal-d)}.btn.line{background:#fff;color:var(--teal-d);border:2px solid var(--teal)}
section{padding:56px 0}section:nth-of-type(even){background:#fff}
h2{font-size:1.6rem;margin:0 0 6px;border-left:6px solid var(--teal);padding-left:12px}
h3{margin:28px 0 10px}.sub{color:var(--muted);margin:0 0 24px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.card{background:#fff;border:1px solid #e3e0dc;border-radius:12px;padding:20px}
section:nth-of-type(even) .card{background:var(--bg)}
.card h4{margin:0 0 6px;font-size:1.1rem}.meta{color:var(--muted);font-size:.92rem;margin:0 0 12px}
.ph{color:#a0948f}.photo{aspect-ratio:4/3;background:var(--teal-l);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--teal-d);margin-bottom:12px}
.tag{display:inline-block;background:var(--teal-l);color:var(--teal-d);font-size:.8rem;padding:2px 10px;border-radius:999px;margin-bottom:8px}
footer{background:var(--ink);color:#ddd;padding:28px 0;font-size:.9rem}footer a{color:#cfe5e5}
@media(max-width:760px){.bar{flex-direction:column;align-items:flex-start;padding:10px 16px}header{position:static}nav{gap:2px 14px}
.hero{padding:36px 0}.hero .wrap{flex-direction:column;text-align:center;gap:16px}.hero img{width:140px}.hero h1{font-size:1.6rem}section{padding:40px 0}}
nav a.on{color:var(--teal-d);font-weight:700;border-bottom:3px solid var(--teal)}
.menu-toggle,.burger{display:none}
.pagehead{background:linear-gradient(135deg,var(--teal-l),#fff);padding:40px 0}.pagehead h1{margin:0 0 4px;font-size:2rem}.pagehead p{margin:0;color:var(--muted)}
a.teaser{text-decoration:none;color:var(--ink);transition:border-color .2s}a.teaser:hover{border-color:var(--teal)}a.teaser h4{color:var(--teal-d)}
.fnav{display:flex;flex-wrap:wrap;gap:4px 16px;margin-bottom:8px}.fnav a{text-decoration:none}
@media(max-width:760px){.bar{flex-direction:row;flex-wrap:wrap;align-items:center}
.burger{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:8px}.burger span{width:26px;height:3px;background:var(--ink);border-radius:2px}
header nav{display:none;width:100%;flex-direction:column;gap:0}header nav a{padding:10px 4px;border-top:1px solid #eee}header nav a.on{border-bottom:none;border-left:4px solid var(--teal);padding-left:10px}
.menu-toggle:checked~nav{display:flex}.pagehead{padding:28px 0}.pagehead h1{font-size:1.6rem}}
/* bylaws page */
.bl{max-width:860px}
.bl-toc{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;background:#fff;border:1px solid #e3ece9;border-radius:12px;padding:14px 18px;margin-bottom:24px}
.bl-toc a{color:var(--teal-d);text-decoration:none}.bl-toc a:hover{text-decoration:underline}
.bl-title{text-align:center;border:none;padding:0}
.bl-ch{margin-top:28px;scroll-margin-top:80px}
.bl-ch h2{border-left:5px solid var(--teal);padding-left:12px;font-size:1.3rem}
.bl-art{display:grid;grid-template-columns:7.5em 1fr;gap:4px 12px;padding:10px 0;border-bottom:1px dashed #e3ece9}
.bl-art h3{margin:0;font-size:1rem;color:var(--teal-d);white-space:nowrap}
.bl-body p{margin:0 0 6px;line-height:1.85}
.bl-body ol{list-style:none;margin:4px 0 8px;padding:0}
.bl-body li{display:block;padding-left:2em;text-indent:-2em;line-height:1.85;margin-bottom:2px}
.bl-body ol.sub{margin:2px 0 4px}
.bl-body li li,.bl-body ol.sub li{text-indent:-2em}
.bl-body .note{text-indent:0;color:#444;margin:2px 0 6px}
.bl-back{margin-top:28px;text-align:center}
@media (max-width:640px){.bl-art{grid-template-columns:1fr}}
/* featured nearest event */
.feature{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px;align-items:center;background:#fff;border:1px solid #e3ece9;border-radius:16px;padding:24px;margin:16px 0 28px}
section:nth-of-type(even) .feature{background:var(--bg)}
.feature-dm img{width:100%;height:auto;display:block;border-radius:10px;box-shadow:0 6px 24px rgba(0,0,0,.12)}
.feature-info h3{font-size:1.8rem;margin:8px 0 4px}.fsub{color:#555;margin:0 0 16px}
.feature-info dl{display:grid;grid-template-columns:3.5em 1fr;gap:8px 12px;margin:0 0 22px;line-height:1.6}
.feature-info dt{font-weight:700;color:var(--teal-d)}.feature-info dd{margin:0}
.btn.big{font-size:1.25rem;padding:16px 40px}
@media (max-width:760px){.feature{grid-template-columns:1fr;gap:18px;padding:16px}.btn.big{display:block;text-align:center;margin-right:0}}
/* about: full-width stacked banner rows */
.cards.rows{grid-template-columns:1fr;gap:0;border-radius:12px;overflow:hidden;border:1px solid #e3e0dc}
.cards.rows .card{border:none;border-radius:0;display:grid;grid-template-columns:10em 1fr;gap:6px 24px;align-items:start;padding:22px 28px}
.cards.rows .card h4{margin:0}
.cards.rows .card>*:not(h4){grid-column:2}
.cards.rows .card:nth-child(odd){background:#fff}
.cards.rows .card:nth-child(even){background:#eef5f3}
section:nth-of-type(even) .cards.rows .card:nth-child(odd){background:var(--bg)}
@media (max-width:640px){.cards.rows .card{grid-template-columns:1fr}.cards.rows .card>*:not(h4){grid-column:1}}
