@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-800-normal.woff2) format("woff2")}
:root{--ground:#a8b9ac;--ink:#14201a;--soft:#2c3d33;--mag:#870d5a;--paper:#d9e2da;--line:#5f7366;--mist:#c3d0c6;--river:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 300' preserveAspectRatio='none'%3E%3Cg fill='none'%3E%3Cpath d='M40.8 -30L60 0C108 75 12 225 60 300L79.2 330' stroke='%2314201a' stroke-width='14'/%3E%3Cpath d='M40.8 -30L60 0C108 75 12 225 60 300L79.2 330' stroke='%23a8b9ac' stroke-width='3' stroke-dasharray='2 14'/%3E%3C/g%3E%3C/svg%3E");--note:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='110' viewBox='0 0 70 110'%3E%3Crect x='2' y='22' width='56' height='86' rx='16' fill='%23a8b9ac'/%3E%3Cg stroke='%2314201a' stroke-opacity='.6' stroke-width='1.3'%3E%3Cpath d='M8 80H50M8 88H50M8 96H50'/%3E%3C/g%3E%3Cellipse cx='28' cy='88' rx='10' ry='6.8' transform='rotate(-22 28 88)' fill='%23870d5a' stroke='%23a8b9ac' stroke-width='2'/%3E%3Cpath d='M37.2 85.6V33' stroke='%23870d5a' stroke-width='2.2'/%3E%3Cpath d='M38.3 33c1.4 7.5 12.5 11.5 11 24.5-.9-6.6-5.6-10.8-11-12.5z' fill='%23870d5a'/%3E%3C/svg%3E")}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:24px}
body{margin:0;background:var(--ground);color:var(--ink);font:17px/1.65 "Plus Jakarta Sans",system-ui,sans-serif;overflow-wrap:break-word}
a{color:inherit;text-decoration-color:var(--mag);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--mag)}
:focus-visible{outline:3px solid var(--mag);outline-offset:3px}
img,svg{max-width:100%}
img{height:auto;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:var(--paper);padding:10px 16px;z-index:20}
.skip:focus{left:12px}
.tag{font:700 12px/1.3 "Plus Jakarta Sans",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--mag);margin:0}
.tag-light{color:#e7a9cf}
.top{position:relative;z-index:10}
.bar{display:flex;align-items:center;justify-content:space-between;padding:22px 28px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-height:44px;background:var(--ground);padding:6px 14px 6px 8px;margin-left:-8px;border-radius:14px}
.mark{border-radius:10px;flex:none}
.brand b{font:800 22px/1 "Plus Jakarta Sans",sans-serif;letter-spacing:-.01em}
.top nav{display:flex;gap:26px;font-size:15px;font-weight:500}
.top nav a{text-decoration:none;border-bottom:2px solid transparent;padding:10px 0 2px}
.top nav a:hover,.top nav a[aria-current]{border-color:var(--mag);color:var(--ink)}
.menu{display:none;font:700 15px/1 "Plus Jakarta Sans",sans-serif;color:var(--ink);background:none;border:2px solid var(--ink);border-radius:22px;padding:0 18px;min-height:44px;cursor:pointer}
.crumbs{font-size:14px;color:var(--soft);display:flex;flex-wrap:wrap;gap:8px;padding-top:4px;padding-bottom:4px}
.crumbs a{text-decoration:none;border-bottom:1px solid var(--line)}
.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:56px;padding:60px 0 40px;align-items:end}
h1{font:800 clamp(36px,5vw,70px)/1.05 "Plus Jakarta Sans",sans-serif;margin:0;letter-spacing:-.02em}
h1 em,h1 span{color:var(--mag);font-style:italic;font-weight:500}
.hero p{margin:0;font-size:19px;max-width:40ch}
.hero .tag{font-size:14px}
.hero .source{margin-top:22px;font-size:13px}
.source{margin-top:22px;font:700 13px/1.4 "Plus Jakarta Sans",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.yr{margin-top:34px}
.staff{display:block;width:100%;height:auto}
.staff-m{display:none;width:100%;height:auto}
.course{position:relative;margin-top:30px;background:var(--river) center top/120px 300px repeat-y}
.land{display:grid;grid-template-columns:1fr 120px 1fr;min-height:300px;position:relative}
.land::after{content:"";position:absolute;left:50%;top:50%;width:70px;height:110px;margin:-88px 0 0 -28px;background:var(--note) no-repeat}
.land .txt{padding:30px 0;align-self:center}
.land:nth-child(odd) .txt{grid-column:1;text-align:right;padding-right:34px}
.land:nth-child(even) .txt{grid-column:3;padding-left:34px}
.land h2{font:800 clamp(26px,3.1vw,40px)/1.1 "Plus Jakarta Sans",sans-serif;margin:10px 0 12px;letter-spacing:-.015em}
.land p{margin:0;max-width:44ch;display:inline-block;text-align:inherit}
.go{display:inline-block;margin-top:14px;font-weight:700;text-decoration:none;border-bottom:2px solid var(--mag);padding:6px 0 2px}
.home-read{padding:40px 0 10px}
.home-read .prose{max-width:760px;margin:0 auto}
.page-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:end;padding-top:36px;padding-bottom:40px}
.page-hero.single{grid-template-columns:1fr}
.ph-text h1{margin:12px 0 18px}
.lead{font-size:19px;margin:0;max-width:46ch;color:var(--soft)}
.hero-photo{margin:0}
.hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border:2px solid var(--ink)}
figcaption{font-size:14px;line-height:1.5;color:var(--soft);margin-top:8px}
.credit{display:inline-block;font-size:12.5px}
.reading{display:grid;grid-template-columns:220px minmax(0,760px);gap:56px;padding-top:24px;padding-bottom:56px;justify-content:center}
.reading.solo{grid-template-columns:minmax(0,760px)}
.toc{position:sticky;top:24px;align-self:start;font-size:15px}
.toc ol{list-style:none;margin:12px 0 0;padding:0;border-left:2px solid var(--line)}
.toc li{margin:0}
.toc a{display:block;padding:7px 0 7px 14px;text-decoration:none;line-height:1.35}
.toc a:hover{color:var(--mag);box-shadow:inset 2px 0 var(--mag);margin-left:-2px;padding-left:16px}
.prose{position:relative;padding-left:64px;background:var(--river) 0 0/40px 300px repeat-y;min-width:0}
.prose>*:first-child{margin-top:0}
.prose h2{position:relative;font:800 clamp(25px,2.6vw,34px)/1.15 "Plus Jakarta Sans",sans-serif;letter-spacing:-.015em;margin:56px 0 14px}
.prose h2::before{content:"";position:absolute;left:-72px;top:-30px;width:56px;height:88px;background:var(--note) no-repeat 0 0/56px 88px}
.prose h3{font:700 20px/1.3 "Plus Jakarta Sans",sans-serif;margin:30px 0 8px}
.prose p,.prose ul,.prose ol{margin:0 0 18px}
.prose ul,.prose ol{padding-left:22px}
.prose li{margin-bottom:6px}
.prose li::marker{color:var(--mag)}
.prose blockquote{margin:24px 0;padding:4px 0 4px 20px;border-left:3px solid var(--ink);font-size:19px}
.table-wrap{margin:28px 0;overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.45}
caption{text-align:left;font-weight:700;padding-bottom:10px;caption-side:top}
th{text-align:left;font-weight:700;border-bottom:2px solid var(--ink);padding:10px 12px 10px 0;vertical-align:bottom}
td{border-bottom:1px solid var(--line);padding:11px 12px 11px 0;vertical-align:top}
.num{text-align:right;font-variant-numeric:tabular-nums}
figure{margin:30px 0}
.chart{background:var(--paper);border:1px solid rgba(20,32,26,.16);border-radius:20px;padding:26px 28px 20px;box-shadow:0 18px 40px -28px rgba(20,32,26,.45),inset 0 1px 0 rgba(255,255,255,.55)}
.chart rect{rx:6px}
.chart path,.chart line,.chart polyline{stroke-linecap:round;stroke-linejoin:round}
.chart text[font-weight="700"]{font-weight:600;letter-spacing:.01em}
.chart figcaption{margin-top:16px;padding-top:12px;border-top:1px solid rgba(20,32,26,.12);font-size:13.5px;font-style:italic}
.chart svg{display:block;width:100%;height:auto;max-width:640px;margin:0 auto}
.photo img{width:100%;border:2px solid var(--ink)}
.pub-photo img{width:100%;max-width:528px;border:2px solid var(--ink)}
.mouth{background:var(--ink);color:var(--paper);padding:70px 0}
.mouth .in{display:grid;grid-template-columns:1fr 1.3fr;gap:56px}
.mouth h2{font:800 clamp(28px,3.3vw,44px)/1.08 "Plus Jakarta Sans",sans-serif;margin:10px 0 0;color:var(--paper)}
.mouth p{margin:0 0 16px;color:var(--mist)}
.mouth a{color:var(--paper)}
.faq details{border-top:1px solid #4b6054}
.faq details:last-child{border-bottom:1px solid #4b6054}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:700 24px/1 "Plus Jakarta Sans",sans-serif;color:#e7a9cf;flex:none}
.faq details[open] summary::after{content:"\2212"}
.faq h3{font:700 19px/1.3 "Plus Jakarta Sans",sans-serif;margin:0;color:var(--paper)}
.faq details p{margin:0 0 18px}
.onward{padding-top:56px;padding-bottom:64px}
.onward>h2{margin-bottom:18px}
.stops{display:grid;grid-template-columns:repeat(3,1fr);gap:0 36px;border-top:2px solid var(--ink)}
.stop{position:relative;display:flex;flex-direction:column;gap:8px;padding:22px 0 0 44px;text-decoration:none;min-height:44px}
.stop::before{content:"";position:absolute;left:0;top:14px;width:32px;height:50px;background:var(--note) no-repeat 0 0/32px 50px}
.stop-title{font:800 24px/1.15 "Plus Jakarta Sans",sans-serif;letter-spacing:-.01em}
.stop-title em{font-style:italic;font-weight:500;color:var(--mag)}
.stop .go{align-self:flex-start;margin-top:4px}
.stop:hover .stop-title{color:var(--mag)}
.foot{background:var(--ink);color:#9fb3a5;border-top:1px solid #31443a;padding:40px 0 56px;font-size:15px}
.foot .in{display:grid;grid-template-columns:auto 1fr;gap:18px 40px;align-items:start}
.foot-brand{display:flex;align-items:center;gap:10px;margin:0;color:var(--paper)}
.foot-brand b{font:800 20px/1 "Plus Jakarta Sans",sans-serif}
.foot-line{margin:0;max-width:60ch}
.foot nav{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 24px}
.foot nav a{color:var(--paper);text-decoration:none;padding:10px 0;border-bottom:1px solid #4b6054}
.foot nav a:hover{color:#e7a9cf}
.note-404{padding:40px 0 20px}
@media(max-width:1000px){
 .reading{grid-template-columns:minmax(0,760px)}
 .toc{display:none}
}
@media(max-width:820px){
 .staff{display:none}
 .staff-m{display:block}
 .menu{display:inline-flex;align-items:center}
 .bar{flex-wrap:wrap;padding:14px 16px}
 .top nav{display:none;flex-basis:100%;flex-direction:column;gap:0;margin-top:10px;border-top:2px solid var(--ink)}
 .top nav.open{display:flex}
 .top nav a{padding:12px 0;border-bottom:1px solid var(--line);font-size:17px}
 .wrap{padding:0 16px}
 .hero{grid-template-columns:1fr;gap:24px;padding-top:28px}
 .course{background-position:left top;background-size:70px 380px}
 .land{grid-template-columns:70px 1fr;min-height:380px}
 .land::after{left:35px}
 .land .txt,.land:nth-child(odd) .txt,.land:nth-child(even) .txt{grid-column:2;text-align:left;padding:34px 0 34px 8px}
 .page-hero{grid-template-columns:1fr;gap:24px;padding-top:18px}
 .mouth{padding:52px 0}
 .mouth .in{grid-template-columns:1fr;gap:24px}
 .stops{grid-template-columns:1fr}
 .stop{padding-bottom:18px;border-bottom:1px solid var(--line)}
 .foot .in{grid-template-columns:1fr}
}
@media(max-width:640px){
 body{font-size:16.5px}
 .prose{padding-left:34px;background-size:22px 300px}
 .prose h2::before{left:-38px;top:-14px;width:30px;height:47px;background-size:30px 47px}
 .chart{padding:16px 14px 14px;border-radius:16px}
 .table-wrap{overflow:visible}
 table,thead,tbody,tr,th,td,caption{display:block}
 thead{position:absolute;left:-9999px}
 tr{border-top:2px solid var(--ink);padding:10px 0}
 td{border:0;padding:3px 0}
 td:first-child{font-weight:700;font-size:17px}
 td[data-label]::before{content:attr(data-label) ": ";font-weight:700;color:var(--soft)}
 .num{text-align:left}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(min-width:1600px){.wrap{max-width:1360px}.reading{grid-template-columns:240px minmax(0,800px)}}
.wave{position:absolute;inset:0 0 auto;width:100%;height:112px;overflow:visible;pointer-events:none;z-index:0}
.top .bar{position:relative;z-index:1}
.top .bar{padding-top:56px}
@media(max-width:820px){.top .bar{padding-top:76px}.wave{height:56px;top:22px}.hero .tag{font-size:12px}}
.chimes{position:absolute;top:12px;left:20px;margin:0;padding:2px 8px;background:var(--ground);border-radius:8px;font:500 12px/1.4 "Plus Jakarta Sans",sans-serif;letter-spacing:.04em;color:var(--soft)}
.chimes i{font-weight:500;color:var(--mag)}
@media(max-width:820px){.chimes{top:6px;left:8px;font-size:11px;background:none;padding:0 8px}}
