:root{color-scheme:light;--ink:#173c35;--green:#24594c;--cream:#f8f5ec;--mint:#dcebe0;--line:#cbd9ce;--muted:#466259;--orange:#ffc5a3}
*{box-sizing:border-box}html{scroll-padding-top:5rem}body{margin:0;background:var(--cream);color:var(--ink);font:1.1rem/1.7 "Atkinson Hyperlegible Next","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;word-break:keep-all}a{color:inherit}a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid #bc531c;outline-offset:5px}.wrap{width:min(1120px,calc(100% - 3rem));margin-inline:auto}.skip{position:absolute;left:1rem;top:-10rem;background:white;padding:.5rem;z-index:2}.skip:focus{top:.5rem}
header{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--cream);z-index:1}.nav{display:flex;justify-content:space-between;align-items:center;min-height:72px;gap:1rem}.brand{text-decoration:none;font-weight:850;letter-spacing:-.05em}.brand span{font-size:.8em;font-weight:650;color:var(--muted);margin-left:.45rem}.links{display:flex;gap:1.4rem;font-size:.93rem}.links a{text-decoration:none}.links a:hover{text-decoration:underline}
.hero{padding:clamp(3rem,8vw,6rem) 0;background:var(--mint)}.hero-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,5rem);align-items:center}.eyebrow{font-weight:800;font-size:.95rem;letter-spacing:.02em;margin:0 0 .9rem;color:var(--green)}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.06em;line-height:1.18}h1{font-size:clamp(2.5rem,6.4vw,5.15rem);margin-bottom:1.35rem}h2{font-size:clamp(2rem,4.5vw,3.3rem);margin-bottom:1rem}h3{font-size:1.45rem;margin-bottom:.65rem}.lead{max-width:38ch;color:var(--muted);font-size:1.16rem}.button{display:inline-block;background:var(--ink);color:white;text-decoration:none;border-radius:.5rem;padding:.76rem 1.25rem;font-weight:750}.button:hover{background:var(--green)}
.section{padding:clamp(3rem,7vw,5.6rem) 0}.tint{background:#e9f0e7}.section p{max-width:66ch}.facts,.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.6rem 0}.facts div,.card{background:#fffcf5;border:1px solid var(--line);padding:1.15rem 1.3rem;border-radius:.8rem}.facts dt{font-size:.93rem;color:var(--muted)}.facts dd{margin:0;font-weight:800;font-size:1.35rem}.weeks{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 2rem}.weeks li{padding:.85rem 0;border-top:1px solid var(--line);display:flex;gap:.8rem}.weeks strong{min-width:3.5rem;color:var(--green)}.cards{grid-template-columns:1fr 1fr}.card p{margin-bottom:0}.faq{max-width:800px}.faq details{border-top:1px solid var(--line);padding:1rem .15rem}.faq details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:750}details p{padding-top:.65rem;margin-bottom:0}footer{background:var(--ink);color:var(--cream);padding:2rem 0}footer p{margin:0}footer a{font-size:.95rem}.foot{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.about-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,6vw,4.5rem)}.about-copy p:last-child{margin-bottom:0}.about-name{margin:0;padding:clamp(1.4rem,4vw,2.4rem);border:1px solid var(--line);border-radius:1rem;background:#fffcf5}.about-name strong{display:block;font-size:clamp(1.65rem,4vw,2.6rem);line-height:1.25;letter-spacing:-.05em;margin-bottom:.65rem}.about-name p{margin:0;color:var(--muted)}
@media(max-width:760px){.hero-grid,.about-grid{grid-template-columns:1fr}.links{gap:.85rem}.nav{flex-wrap:wrap;justify-content:space-between;padding:.7rem 0}.weeks{grid-template-columns:1fr}}
@media(max-width:480px){.wrap{width:calc(100% - 2rem)}.cards{grid-template-columns:1fr}.facts{gap:.4rem}.facts div{padding:.65rem .48rem}.facts dd{font-size:1rem}.facts dt{font-size:.8rem}.brand span{display:none}.links{width:100%;flex-wrap:wrap;font-size:.9rem;gap:.5rem 1rem}}

body { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
.brand { white-space: nowrap; }
.links { gap: .35rem 1rem; flex-wrap: wrap; }
.links a { display: inline-flex; align-items: center; min-height: 44px; }
.links a[aria-current="page"] { font-weight: 800; text-decoration: underline; text-underline-offset: .35em; }
.detail h1 { font-size: clamp(2rem, 5vw, 3.65rem); }
.detail .button { margin-top: 1.2rem; }
.demo { min-width: 0; margin: 0; padding: clamp(.8rem, 2vw, 1.35rem); background: var(--ink); color: var(--cream); border-radius: 1.1rem; box-shadow: 0 12px 0 #bad0c3; }
.demo figcaption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem .8rem; margin-bottom: .75rem; }
.demo-toggle { padding: .45rem .75rem; min-height: 44px; font: inherit; font-size: .87rem; font-weight: 700; color: inherit; background: transparent; border: 1px solid #95b3a5; border-radius: .4rem; cursor: pointer; }
.demo-panel { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: .65rem; }
.demo-pane { min-width: 0; padding: .75rem; border: 1px solid #6d9183; border-radius: .65rem; }
.demo-label { display: block; margin-bottom: .5rem; font-size: .85rem; font-weight: 750; color: #dcebe0; }
.prompt { min-height: 7.5em; margin: 0; font-size: .96rem; overflow-wrap: anywhere; }
.demo-status { margin: .55rem 0 0; min-height: 1.7em; color: var(--orange); font-size: .85rem; font-weight: 750; }
.demo-screen { min-height: 10rem; display: flex; flex-direction: column; justify-content: center; background: #f8f5ec; color: var(--ink); padding: .8rem; border-radius: .45rem; }
.demo-screen p { margin: 0 0 .45rem; font-size: .84rem; }
.demo-screen strong { font-size: 1.14rem; line-height: 1.3; }
.demo-screen span { display: block; margin-top: .7rem; width: fit-content; max-width: 100%; padding: .24rem .5rem; background: #24594c; color: white; border-radius: .3rem; font-size: .8rem; }
.demo-screen[data-stage="waiting"] .demo-preview { visibility: hidden; }
.demo-screen[data-stage="building"] .demo-preview { opacity: .35; }
.demo-preview { transition: opacity .35s ease; }
@media(max-width:900px) { .nav { flex-wrap: wrap; gap: .25rem 1rem; padding: .45rem 0; } .links { width: 100%; } }
@media(max-width:480px) { .demo-panel { grid-template-columns: 1fr; } .prompt { min-height: 3.4em; } .demo-screen { min-height: 8rem; } .links { gap: 0 .8rem; font-size: .85rem; } header { position: static; } }
@media(prefers-reduced-motion:reduce) { .demo-preview { transition: none; } }
.skip-description { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.card h2 { font-size: 1.45rem; letter-spacing: -.045em; }
.member-content { max-width: 900px; }
.member-content form { display: flex; flex-wrap: wrap; align-items: end; gap: .65rem 1rem; margin-bottom: 1rem; }
.member-content label { display: grid; gap: .3rem; font-weight: 700; }
.member-content input, .member-content select { min-height: 44px; max-width: 100%; padding: .45rem .6rem; border: 1px solid var(--muted); border-radius: .35rem; background: white; font: inherit; color: var(--ink); }
.member-content button { border: 0; cursor: pointer; font: inherit; font-weight: 750; }
.member-content .card { overflow-wrap: anywhere; }
.member-filters { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: 1rem; }
.member-content > .card { margin-bottom: .8rem; }
.member-content .message-form { display: grid; max-width: 42rem; }
.member-content .message-form button { justify-self: start; }
.member-content .message-checkbox { display: flex; align-items: center; }
.member-content textarea { min-width: 0; padding: .6rem; border: 1px solid var(--muted); border-radius: .35rem; color: var(--ink); font: inherit; resize: vertical; }
.message-body { white-space: pre-wrap; }

.site-menu { position: relative; margin-left: auto; }
header .nav { flex-wrap: nowrap; min-height: 64px; }
header .menu-badge { display: flex; align-items: center; gap: .5rem; min-height: 44px; padding: .35rem .9rem; border: 1px solid var(--line); border-radius: 999px; background: #fffdf7; color: var(--ink); list-style: none; font-size: .95rem; }
.menu-badge::-webkit-details-marker { display: none; }
.menu-badge::marker { content: ''; }
.menu-icon { width: 1rem; height: .75rem; border-block: 2px solid; position: relative; }
.menu-icon::after { content: ''; position: absolute; width: 100%; top: calc(50% - 1px); border-top: 2px solid; }
.site-menu[open] .menu-badge { background: var(--ink); color: white; }
.site-menu .links { position: absolute; z-index: 3; top: calc(100% + .55rem); right: 0; display: grid; gap: 0; width: min(16rem, calc(100vw - 2rem)); max-height: min(70vh, 30rem); overflow-y: auto; padding: .45rem; background: #fffdf7; border: 1px solid var(--line); border-radius: .8rem; box-shadow: 0 .65rem 1.5rem #173c3526; }
.site-menu:not([open]) .links { display: none; }
.site-menu .links a { padding: .25rem .7rem; border-radius: .35rem; }
.site-menu .links a:hover, .site-menu .links a[aria-current="page"] { background: var(--mint); }
.footer-links { display: flex; flex-wrap: wrap; gap: .45rem 1rem; }
.legal-copy { max-width: 780px; }
.legal-copy h2 { margin-top: 2rem; font-size: clamp(1.3rem, 3vw, 1.65rem); letter-spacing: -.035em; }
.legal-copy li { margin-bottom: .55rem; }
.policy-note { color: var(--muted); font-weight: 750; }

.autumn-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #fffdf4;
  background: #172d22 url('/autumn-ginkgo.jpg') center 49% / cover no-repeat;
}
.autumn-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(90deg, #102219f5 0%, #102219d9 35%, #1022197a 66%, #1022190a 100%);
}
.autumn-leaves { position: absolute; top: 0; right: 0; width: 55%; height: 100%; z-index: -1; pointer-events: none; }
.autumn-inner { min-height: clamp(38rem, 78vh, 53rem); display: flex; align-items: center; padding-block: clamp(4rem, 8vw, 7rem); }
.autumn-copy { width: min(100%, 890px); }
.autumn-kicker { margin-bottom: 1rem; color: #ffe49b; font-size: .94rem; font-weight: 800; letter-spacing: .11em; }
.autumn-title { display: grid; gap: .19em; margin-bottom: 1.8rem; font-size: clamp(2.15rem, 3.85vw, 3.9rem); line-height: 1.28; letter-spacing: -.057em; }
.autumn-line { display: grid; min-width: 0; }
.autumn-line > span { grid-area: 1 / 1; }
.autumn-title:not(.is-typing) .autumn-typing { display: none; }
.autumn-title.is-typing .autumn-original { opacity: 0; }
.autumn-typing { overflow-wrap: anywhere; }
.autumn-typing::after { content: ''; display: none; width: 2px; height: .8em; margin-left: .12em; background: #ffe49b; }
.autumn-title.is-typing .is-current .autumn-typing::after { display: inline-block; }
.autumn-lead { color: #fff5d9; font-size: clamp(1rem, 2vw, 1.22rem); }
.autumn-actions { display: flex; gap: .6rem 1.15rem; align-items: center; flex-wrap: wrap; }
.autumn-primary { background: #ffe49b; color: #172d22; border-radius: .3rem; }
.autumn-primary:hover { background: #fff1c4; }
.autumn-primary span { margin-left: .45rem; }
.autumn-secondary { padding: .65rem 0; text-underline-offset: .25em; font-weight: 750; }
.autumn-motion { margin-top: 1rem; min-height: 44px; padding: .3rem .65rem; color: #fffdf4; background: #14271e; border: 1px solid #c2c6af; border-radius: .35rem; font: inherit; font-size: .86rem; cursor: pointer; }
.home-guide { background: #223e31; color: #fffdf4; }
.guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.guide-grid a { display: grid; grid-template-columns: 1fr auto; align-content: center; padding: 1rem 1.3rem; border-inline-start: 1px solid #557264; text-decoration: none; }
.guide-grid a:last-child { border-inline-end: 1px solid #557264; }
.guide-grid a:hover { background: #2e4e40; }
.guide-grid a strong { grid-column: 1; font-size: 1.15rem; }
.guide-grid a span { grid-column: 1; color: #e0eddf; font-size: .88rem; }
.guide-grid a .guide-arrow { grid-area: 1 / 2 / 3; align-self: center; color: #ffe49b; font-size: 1.15rem; }
.home-course { background: #fbf8ef; }
@media (max-width: 760px) {
  .autumn-inner { min-height: 32rem; }
  .autumn-hero { background-position: 66% center; }
  .autumn-hero::before { background: linear-gradient(90deg, #102219f5, #102219ab 75%, #10221975); }
  .autumn-leaves { width: 75%; }
}
@media (max-width: 480px) {
  .autumn-title { font-size: clamp(1.95rem, 8.8vw, 2.5rem); }
  .autumn-inner { min-height: 0; padding-block: 3.75rem; }
  .guide-grid { grid-template-columns: 1fr; }
  .guide-grid a, .guide-grid a:last-child { border-inline: 0; border-block-end: 1px solid #557264; padding: .75rem .2rem; }
}
@media (prefers-reduced-motion: reduce) { .autumn-leaves { display: none; } }

.autumn-motion[aria-disabled="true"] { cursor: default; }
.account-menu { border-top: 1px solid var(--line); margin-top: 2rem; padding-top: 1.15rem; }
.account-menu a { display: inline-block; padding-block: .4rem; }
.login-signup { margin-top: 2rem; border-top: 1px solid var(--line); padding-top: 1.1rem; }

.masthead { --brand-column: clamp(12rem, 24vw, 17rem); background: #fffdf7; z-index: 5; }
.masthead-utility { background: #202d27; color: #fffdf7; }
.masthead-utility .wrap { display: flex; justify-content: flex-end; }
.masthead-utility a { padding: .3rem .15rem; min-height: 34px; font-size: .86rem; text-underline-offset: .2em; }
.masthead-main { display: flex; align-items: center; gap: .7rem; min-height: 74px; }
.masthead-brand { display: flex; align-items: center; gap: .5rem; white-space: nowrap; text-decoration: none; }
.masthead-brand img { border-radius: 50%; }
.masthead-brand strong { font-size: 1.08rem; letter-spacing: -.045em; }
.masthead-brand span { color: var(--muted); font-size: .82rem; padding-left: .5rem; border-left: 1px solid var(--line); }
.desktop-menu { display: none; }
.mobile-menu-group { display: grid; padding: .4rem 0; border-bottom: 1px solid var(--line); }
.mobile-menu-group:last-child { border-bottom: 0; }
.mobile-menu-group strong { padding: .2rem .7rem; font-size: .9rem; color: var(--green); }
.site-menu .mobile-menu-group a { padding-left: 1rem; }
.about-symbol { margin: 0; padding: clamp(1rem, 3vw, 2rem); background: #f0f1e8; border: 1px solid var(--line); border-radius: 1rem; text-align: center; }
.about-symbol img { display: block; width: min(100%, 300px); height: auto; margin-inline: auto; border-radius: .6rem; }
.about-symbol figcaption { color: var(--muted); margin-top: .7rem; font-size: .93rem; }
.about-philosophy { background: var(--mint); scroll-margin-top: 4rem; }
.about-philosophy-grid { display: grid; gap: 2rem 4rem; grid-template-columns: 1.2fr 1fr; align-items: center; }
.about-philosophy-grid h2 { font-size: 1.4rem; }
.philosophy-statement { margin: 0; font-weight: 800; font-size: clamp(1.45rem, 3.4vw, 2.5rem); line-height: 1.35; letter-spacing: -.045em; }
.about-philosophy-grid p:last-child { margin-bottom: 0; }
@media (min-width: 920px) {
  .masthead[data-menu-ready="true"] .mobile-menu { display: none; }
  .masthead-main { min-height: 80px; gap: 0; }
  .masthead-brand { flex: 0 0 var(--brand-column); }
  .masthead[data-menu-ready="true"] .desktop-menu { display: block; flex: 1; }
  .desktop-menu-buttons, .desktop-menu-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .desktop-menu-buttons button { min-height: 80px; padding: .55rem; font: inherit; font-size: 1.04rem; font-weight: 800; color: var(--ink); border: 0; border-bottom: 3px solid transparent; background: transparent; cursor: pointer; }
  .desktop-menu-buttons button.is-active { border-bottom-color: var(--green); }
  .desktop-menu-panel:not([hidden]) { display: block; position: absolute; inset: calc(100% - 1px) 0 auto; background: #fffdf7; box-shadow: 0 .6rem 1.2rem #13291b26; border-top: 1px solid var(--line); }
  .desktop-menu-columns { padding: 1rem 0 1.5rem var(--brand-column); }
  .desktop-menu-columns > div { display: flex; flex-direction: column; gap: .1rem; text-align: center; }
  .desktop-menu-columns a { display: block; padding: .55rem .45rem; text-decoration: none; border-radius: .3rem; }
  .desktop-menu-columns a:hover, .desktop-menu-columns a[aria-current="page"] { background: var(--mint); text-decoration: underline; text-underline-offset: .2em; }
}
@media (max-width: 760px) {
  .about-philosophy-grid { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
  .masthead-brand span { display: none; }
}

.instructor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
#instructors { scroll-margin-top: 4rem; }
.about-philosophy-grid h2 { font-size: 1.45rem; }
@media (max-width: 760px) { .instructor-grid { grid-template-columns: 1fr; } }

#vision-heading { scroll-margin-top: 3rem; }

.member-content .inquiry-form { display: grid; max-width: 42rem; }
.inquiry-form .button { justify-self: start; }
.inquiry-form textarea { width: 100%; }
.inquiry-form fieldset { min-width: 0; padding: .9rem 1.1rem; border: 1px solid var(--line); border-radius: .45rem; }
.inquiry-form fieldset p:last-child { margin-bottom: 0; }
.inquiry-error { color: #922b1b; font-weight: 750; }
.inquiry-card { margin-block: .75rem; overflow-wrap: anywhere; }
.inquiry-card small { margin-left: .35rem; color: var(--muted); }
.account-menu a + a { margin-left: 1rem; }
