:root{--bg:#F6F4EE;--ink:#2A2A26;--head:#23231F;--green:#3F7D5A;--green-d:#2E5C43;--line:#E4E1D8;--card-line:#E7E4DB;--muted:#9A9A8E;--muted2:#6B6B62;}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--bg);color:var(--ink);font-family:'Karla',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
img{display:block;max-width:100%;}
.serif{font-family:'Source Serif 4',Georgia,serif;}
.wrap{max-width:720px;margin:0 auto;padding:0 24px;}
.wrap-wide{max-width:1080px;margin:0 auto;padding:0 24px;}
header.site{position:sticky;top:0;z-index:30;background:rgba(246,244,238,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
header.site .row{max-width:1080px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;}
.brand .mark{width:32px;height:32px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Source Serif 4',serif;font-weight:600;font-size:18px;}
.brand .name{font-family:'Source Serif 4',serif;font-weight:600;font-size:18px;color:var(--head);letter-spacing:-.01em;}
nav.site{display:flex;gap:28px;font-size:14px;font-weight:600;color:var(--muted2);}
nav.site a{text-decoration:none;}
nav.site a.active{color:var(--green);}
.crumb{font-size:13px;color:var(--muted);margin:32px 0 18px;}
.crumb a{text-decoration:none;}
.crumb .here{color:var(--green);font-weight:600;}
.tag{display:inline-block;background:#EAF1EB;color:var(--green-d);font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:6px 13px;border-radius:999px;}
h1.title{font-family:'Source Serif 4',serif;font-weight:600;font-size:46px;line-height:1.08;letter-spacing:-.02em;color:var(--head);margin:16px 0 0;text-wrap:balance;}
p.blurb{font-size:19px;line-height:1.6;color:#54544C;margin:18px 0 0;text-wrap:pretty;}
.meta{display:flex;flex-wrap:wrap;gap:30px;margin:28px 0 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.meta .k{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.meta .v{font-size:17px;font-weight:700;color:var(--head);font-family:'Source Serif 4',serif;margin-top:3px;}
.hero{display:block;width:100%;height:460px;object-fit:cover;border-radius:16px;margin:34px 0 0;background:#ECE9E0;}
.hero-empty{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;border:1px dashed #CFCCC0;}
.cap{font-size:12.5px;color:var(--muted);margin:10px 0 0;text-align:center;font-style:italic;}
.card{margin:44px 0 0;background:#fff;border:1px solid var(--card-line);border-radius:18px;overflow:hidden;box-shadow:0 1px 3px rgba(40,40,30,.04);}
.card .head{padding:30px 32px 26px;border-bottom:1px solid #EEEBE2;}
.card .eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green);}
.card h2{font-family:'Source Serif 4',serif;font-weight:600;font-size:28px;line-height:1.15;color:var(--head);margin:10px 0 0;letter-spacing:-.01em;}
.card .sub{margin-top:12px;font-size:13.5px;color:#7A7A70;}
.card .sub b{color:#45463E;font-weight:600;}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#EEEBE2;border-bottom:1px solid #EEEBE2;}
.stats div{background:#fff;padding:16px 18px;}
.stats .k{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);}
.stats .v{font-size:15px;font-weight:600;color:var(--head);margin-top:4px;}
.sec{padding:30px 32px 8px;}
.sec h3{font-family:'Source Serif 4',serif;font-weight:600;font-size:21px;color:var(--head);margin:0;}
ul.ing{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;}
ul.ing li{display:flex;gap:13px;align-items:flex-start;padding:9px 8px;border-radius:9px;}
ul.ing .box{flex:none;width:20px;height:20px;border-radius:6px;background:#fff;border:1.5px solid #CFCCC0;margin-top:2px;}
ul.ing .t{font-size:16px;line-height:1.5;color:#3A3A33;}
ol.steps{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:18px;}
ol.steps li{display:flex;gap:16px;align-items:flex-start;}
ol.steps .n{flex:none;width:30px;height:30px;border-radius:50%;background:#EAF1EB;color:var(--green-d);font-family:'Source Serif 4',serif;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:15px;}
ol.steps .t{font-size:16px;line-height:1.62;color:#3A3A33;padding-top:3px;}
.tip{margin:26px 32px 0;background:#F4F7F1;border:1px solid #E2EAD9;border-left:3px solid var(--green);border-radius:10px;padding:18px 20px;}
.tip .lbl{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-bottom:6px;}
.tip p{margin:0;font-size:15.5px;line-height:1.6;color:#45463E;}
.nut{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#EEEBE2;border:1px solid #EEEBE2;border-radius:12px;overflow:hidden;margin-top:16px;}
.nut div{background:#fff;padding:14px 16px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.nut .l{font-size:13.5px;color:#7A7A70;}
.nut .v{font-size:15.5px;font-weight:700;color:var(--head);font-family:'Source Serif 4',serif;}
.note{margin:16px 0 0;font-size:13px;color:var(--muted);font-style:italic;}
.kw{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.kw span{background:#F1EFE8;color:var(--muted2);font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:7px;}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:36px 0 0;}
.pager a{text-decoration:none;background:#fff;border:1px solid var(--card-line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;}
.pager a.next{text-align:right;align-items:flex-end;}
.pager .lbl{font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.04em;}
.pager .t{font-family:'Source Serif 4',serif;font-size:16px;color:var(--head);font-weight:600;line-height:1.2;}
.alllink{display:block;text-align:center;font-size:13px;font-weight:700;color:var(--green);text-decoration:none;margin:28px 0 8px;}
section.about{margin-top:64px;background:var(--head);color:#E8E6DD;}
section.about .inner{max-width:720px;margin:0 auto;padding:58px 24px;}
section.about h3{font-family:'Source Serif 4',serif;font-weight:600;font-size:26px;color:#fff;margin:0;letter-spacing:-.01em;}
section.about p{font-size:16px;line-height:1.7;color:#C9C7BD;margin:16px 0 0;}
section.about .disc{font-size:12.5px;line-height:1.6;color:#86847B;margin:28px 0 0;}
footer.site{background:#1A1A17;color:#86847B;}
footer.site .row{max-width:1080px;margin:0 auto;padding:22px 24px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;font-size:13px;}
footer.site a{text-decoration:none;}
footer.site .links{display:flex;gap:22px;}
/* index */
.hero-head{padding:48px 0 0;}
h1.index{font-family:'Source Serif 4',serif;font-weight:600;font-size:48px;line-height:1.06;letter-spacing:-.02em;color:var(--head);margin:16px 0 0;max-width:760px;text-wrap:balance;}
p.index-sub{font-size:19px;line-height:1.6;color:#54544C;margin:16px 0 0;max-width:680px;text-wrap:pretty;}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:44px 0 0;}
.gcard{text-decoration:none;display:flex;flex-direction:column;background:#fff;border:1px solid var(--card-line);border-radius:18px;overflow:hidden;box-shadow:0 1px 3px rgba(40,40,30,.04);}
.gcard img,.gcard .gimg{width:100%;height:188px;object-fit:cover;background:#ECE9E0;}
.gcard .body{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1;}
.gcard .course{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green);}
.gcard h2{font-family:'Source Serif 4',serif;font-weight:600;font-size:21px;line-height:1.2;color:var(--head);margin:9px 0 0;letter-spacing:-.01em;text-wrap:balance;}
.gcard p{font-size:14.5px;line-height:1.55;color:var(--muted2);margin:10px 0 0;flex:1;}
.gcard .foot{display:flex;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid #EEEBE2;font-size:13px;color:#7A7A70;}
.gcard .foot b{color:var(--head);font-weight:700;}
@media(max-width:920px){.grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.grid{grid-template-columns:1fr;}h1.title{font-size:36px;}h1.index{font-size:36px;}.stats{grid-template-columns:repeat(2,1fr);}.hero{height:300px;}}
@media print{header.site,nav.site,.pager,.alllink,.crumb{display:none!important;}*,*::before,*::after{-webkit-print-color-adjust:exact;print-color-adjust:exact;}}