@layer base, layout, components, responsive;
@layer base {
  :root { --brown:#280e10; --deep-brown:#200b0d; --green:#8db936; --ink:#280e10; --yellow:#f6931f; --white:#fff; --paper:var(--green); --line:rgba(40,14,16,.3); --muted:#462422; --serif:Georgia,'Times New Roman',serif; color-scheme:light; }
  * { box-sizing:border-box; }
  html { scroll-behavior:smooth; scroll-padding-top:120px; }
  body { margin:0; font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.6; color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased; }
  a { color:inherit; text-decoration:none; text-underline-offset:4px; }
  button { font:inherit; }
  img { max-width:100%; display:block; object-fit:cover; }
  h1,h2,h3,p,figure { margin:0; }
  h1,h2,h3 { font-weight:600; line-height:1.08; letter-spacing:-.045em; overflow-wrap:break-word; }
  h2 { font-size:clamp(2.35rem,3.65vw,3.8rem); }
  h3 { font-size:1.45rem; }
  em { font-family:var(--serif); font-weight:400; }
  p { text-wrap:pretty; }
  ::selection { background:var(--yellow); color:var(--deep-brown); }
  :focus-visible { outline:3px solid var(--brown); outline-offset:5px; }
  .hero :focus-visible,.fall-card :focus-visible,.support-section :focus-visible { outline-color:var(--yellow); }
  .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .skip-link { position:fixed; top:-100px; left:20px; padding:12px 20px; background:var(--yellow); z-index:100; }
  .skip-link:focus { top:12px; }
}
@layer layout {
  .wrap { width:min(1240px,calc(100% - 112px)); margin-inline:auto; }
  .section { padding-block:104px; }
  .site-header { position:sticky; top:0; z-index:50; background:var(--green); border-bottom:1px solid var(--line); }
  .header-inner { width:min(1376px,calc(100% - 80px)); min-height:112px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
  #main-nav { display:flex; align-items:center; gap:26px; }
  #main-nav>a:not(.button) { font-size:.9rem; }
  .brand { display:flex; flex-direction:column; align-items:flex-start; gap:0; flex-shrink:0; }
  .foundation-logo { width:230px; height:auto; object-fit:contain; }
  .hero { position:relative; overflow:hidden; isolation:isolate; background:var(--deep-brown); min-height:710px; display:flex; flex-direction:column; justify-content:center; color:var(--white); }
  .hero-scenes,.hero-shade { position:absolute; inset:0; width:100%; height:100%; z-index:-2; }
  .hero-scene { position:absolute; inset:0; opacity:0; transition:opacity 1.1s ease; }
  .hero-scene.is-active { opacity:1; }
  .hero-scene picture,.hero-scene img,.hero-scene video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .hero-scene video { opacity:0; transition:opacity .5s ease; }
  .hero-scene video.is-playing { opacity:1; }
  .hero-shade { z-index:-1; background:linear-gradient(90deg,rgba(30,53,13,.88) 0%,rgba(30,53,13,.57) 45%,rgba(30,53,13,.12) 100%),linear-gradient(0deg,rgba(30,53,13,.7),transparent 35%); }
  .hero-content { padding-block:72px 112px; }
  .hero h1 { font-size:clamp(4rem,6.9vw,6.8rem); line-height:1.01; letter-spacing:-.055em; margin-top:24px; max-width:720px; }
  .hero h1 em { color:var(--white); }
  .hero-description { font-size:1.12rem; line-height:1.6; max-width:450px; margin-top:28px; margin-bottom:30px; }
  .hero-bottom { position:absolute; bottom:26px; left:0; right:0; display:flex; justify-content:space-between; align-items:center; }
  .hero-bottom>p { font-size:.75rem; letter-spacing:.15em; font-weight:700; }
  .hero-controls { display:none; gap:20px; align-items:center; }
  .hero-controls { flex-shrink:0; }
  .js-enabled .hero-controls { display:flex; }
  .scene-selectors { display:flex; gap:6px; }
  .scene-selector,.background-toggle { color:white; background:rgba(38,9,11,.58); border:1px solid rgba(255,255,255,.55); min-width:44px; min-height:44px; padding:9px 11px; font-size:.875rem; cursor:pointer; }
  .scene-selector[aria-pressed="true"] { background:var(--green); color:var(--deep-brown); border-color:var(--green); }
  .background-toggle { display:flex; align-items:center; justify-content:center; gap:9px; min-width:104px; }
  .scene-selector:hover,.background-toggle:hover { border-color:var(--yellow); }
  .next-retreat { background:var(--green); border-bottom:1px solid var(--line); }
  .next-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; padding-block:25px; }
  .retreat-logo { width:185px; height:auto; flex-shrink:0; object-fit:contain; }
  .next-copy .eyebrow { display:block; margin-bottom:5px; }
  .next-inner p { display:flex; align-items:center; gap:26px; }
  .next-inner strong { font-size:1.2rem; letter-spacing:-.03em; }
  .next-location { font-size:.9rem; }
  .next-inner>a { font-size:.9rem; font-weight:600; display:flex; gap:24px; align-items:center; }
  .intro { display:grid; grid-template-columns:1.05fr 1fr; gap:100px; }
  .intro h2 { margin-top:24px; }
  .intro-copy { padding-top:40px; }
  .intro-copy p+p { margin-top:20px; }
  .intro-copy>p:not(.lead) { color:var(--muted); max-width:490px; }
  .lead { font-size:1.5rem; line-height:1.4; letter-spacing:-.025em; }
  .intro-copy .text-link { margin-top:27px; }
  .section-heading { margin-bottom:38px; }
  .section-heading h2 { margin-top:16px; }
  .experience-section { padding-bottom:104px; }
  .experience-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:68px; align-items:stretch; }
  .community-photo { position:relative; aspect-ratio:4/3; align-self:center; overflow:hidden; }
  .community-photo img { width:100%; height:100%; position:absolute; }
  .community-photo figcaption { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(38,9,11,.85)); padding:65px 28px 24px; color:white; font-size:.875rem; }
  .experience-list { display:flex; flex-direction:column; }
  .experience-list article { display:flex; gap:30px; padding:29px 0; border-top:1px solid var(--line); flex:1; }
  .experience-list article:last-child { border-bottom:1px solid var(--line); }
  .item-number { font-size:.85rem; color:var(--brown); padding-top:4px; }
  .experience-list h3 { margin-bottom:11px; }
  .experience-list p { font-size:1rem; color:var(--muted); max-width:380px; }
  .included-section { background:var(--brown); color:var(--white); --muted:var(--white); border-top:1px solid rgba(255,255,255,.3); }
  .included-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:90px; }
  .included-grid h2 { margin-block:26px; }
  .included-grid>div>p:last-child { color:var(--muted); }
  .included-list { list-style:none; padding:0; margin:0; }
  .included-list li { display:flex; gap:24px; border-bottom:1px solid rgba(255,255,255,.3); padding:19px 0; }
  .included-list li:first-child { padding-top:0; }
  .included-list li>span { font-size:.8rem; margin-top:4px; color:var(--muted); }
  .included-list strong { font-weight:600; font-size:1.06rem; }
  .included-list p { color:var(--muted); font-size:1rem; margin-top:2px; }
  .heading-row { display:flex; justify-content:space-between; align-items:flex-end; gap:50px; margin-bottom:45px; }
  .heading-row>p { color:var(--muted); padding-bottom:6px; }
  .retreat-layout { display:grid; grid-template-columns:1.4fr 1fr; gap:44px; }
  .retreat-card { padding:36px; }
  .fall-card { background:var(--brown); color:var(--white); }
  .retreat-top { display:flex; align-items:center; justify-content:space-between; }
  .season-label { font-size:.8rem; letter-spacing:.14em; }
  .year-label { font-size:.875rem; color:var(--white); }
  .retreat-card h3 { font-size:clamp(2.75rem,4vw,4.3rem); margin-top:36px; letter-spacing:-.045em; }
  .retreat-card h3 em { display:block; color:var(--yellow); }
  .island-name { margin-top:18px; font-size:1.1rem; }
  .retreat-card-bottom { border-top:1px solid rgba(255,255,255,.3); margin-top:34px; padding-top:26px; display:flex; flex-direction:column; align-items:flex-start; gap:25px; }
  .retreat-card-bottom p { font-size:.95rem; color:var(--white); }
  .retreat-card-bottom strong { font-weight:600; color:var(--white); }
  .spring-card { border:1px solid var(--line); display:flex; gap:20px; align-items:center; justify-content:space-between; margin-top:18px; padding:27px 30px; }
  .spring-card h3 { font-size:1.8rem; margin-block:10px 4px; }
  .spring-card p { color:var(--muted); font-size:.95rem; }
  .spring-card>a { font-size:.9rem; font-weight:600; display:flex; gap:20px; }
  .pricing-panel { border-top:2px solid var(--brown); padding-top:28px; }
  .pricing-panel h3 { font-size:1.8rem; margin-top:12px; }
  .rates { margin-block:25px 20px; }
  .rates>div { display:flex; justify-content:space-between; gap:20px; padding:17px 0; border-bottom:1px solid var(--line); }
  .rates dt { font-size:1rem; }
  .rates dt span { display:block; font-size:.8rem; color:var(--muted); margin-top:2px; }
  .rates dd { margin:0; font-size:1.2rem; letter-spacing:-.03em; font-weight:600; }
  .pricing-note { font-size:.9rem; color:var(--muted); margin-bottom:17px; }
  .registration-note { font-size:.8rem; line-height:1.65; color:var(--muted); margin-top:22px; max-width:360px; }
  .values-band { padding-block:44px; background:var(--yellow); }
  .values-band .wrap { display:flex; align-items:center; justify-content:space-between; gap:32px; }
  .values-band p { font-size:.75rem; letter-spacing:.12em; max-width:110px; font-weight:700; }
  .values-band .wrap>div { display:flex; flex-wrap:wrap; gap:34px; }
  .values-band span { font-size:clamp(1.8rem,2.7vw,2.8rem); font-family:var(--serif); font-style:italic; line-height:1.2; }
  .faq-section { display:grid; grid-template-columns:.9fr 1.25fr; gap:80px; }
  .faq-heading h2 { margin-block:20px; }
  .faq-heading>p:not(.eyebrow) { color:var(--muted); }
  .faq-heading .text-link { margin-top:24px; }
  .faq-list { border-top:1px solid var(--line); }
  .faq-list details { border-bottom:1px solid var(--line); }
  .faq-list summary { padding:24px 0; list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:1.08rem; font-weight:500; line-height:1.4; }
  .faq-list summary::-webkit-details-marker { display:none; }
  .faq-icon { width:14px; height:14px; position:relative; flex-shrink:0; }
  .faq-icon::before,.faq-icon::after { content:''; background:var(--brown); position:absolute; top:6px; left:0; width:14px; height:1px; }
  .faq-icon::after { transform:rotate(90deg); transition:transform .2s; }
  details[open] .faq-icon::after { transform:rotate(0); }
  .answer { padding:0 30px 24px 0; color:var(--muted); font-size:1rem; }
  .answer p+p { margin-top:15px; }
  .answer a { text-decoration:underline; color:var(--deep-brown); overflow-wrap:anywhere; }
  .support-section { background:var(--brown); color:var(--white); padding-block:76px; }
  .support-inner { display:grid; grid-template-columns:1.1fr 1fr; gap:100px; align-items:center; }
  .support-inner h2 { margin-top:24px; }
  .support-inner h2 em { color:var(--white); }
  .support-inner>div:last-child>p { color:var(--white); font-size:1.08rem; margin-bottom:28px; max-width:430px; }
  .site-footer { padding-top:58px; }
  .footer-main { display:grid; grid-template-columns:1.15fr 1.15fr 1fr; gap:36px; padding-bottom:52px; }
  .footer-brand .foundation-logo { width:270px; max-width:100%; }
  .footer-main>div>p { font-size:.9rem; color:var(--muted); margin-top:20px; }
  .footer-contact,.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:10px; font-size:.9rem; }
  .footer-contact .eyebrow { margin-bottom:7px; }
  .footer-contact>a { overflow-wrap:anywhere; }
  .footer-links>a { display:flex; gap:18px; }
  .photo-credit { font-size:.75rem; color:var(--muted); padding-bottom:20px; }
  .photo-credit a { text-decoration:underline; }
  .footer-bottom { border-top:1px solid var(--line); padding-block:24px; display:flex; justify-content:space-between; gap:20px; font-size:.75rem; color:var(--muted); }
  .retreat-media { background:var(--green); color:var(--brown); border-top:1px solid var(--line); }
  .retreat-media .eyebrow { color:var(--brown); }
  .retreat-media :focus-visible { outline-color:var(--brown); }
  .photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 24px; }
  .photo-grid figure { min-width:0; }
  .photo-grid img { width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; }
  .photo-grid figcaption { padding-top:13px; font-size:1rem; }
  .motion-grid { display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:35px; align-items:start; padding-top:100px; }
  .motion-heading { padding-top:24px; }
  .motion-heading h2 { margin-block:22px 28px; font-size:clamp(2.3rem,3.4vw,3.4rem); }
  .motion-heading p { max-width:290px; }
  .motion-heading .motion-note { margin-top:22px; font-size:.875rem; }
  .video-card { min-width:0; }
  .video-card video { width:100%; height:auto; display:block; aspect-ratio:9/16; background:#000; object-fit:contain; }
  .video-card figcaption { padding-top:18px; }
  .video-card figcaption strong { display:block; font-size:1.12rem; font-weight:500; margin-bottom:6px; }
  .video-card figcaption span,.video-error { font-size:.875rem; line-height:1.6; }
  .video-error { padding-block:12px; }
}
@layer components {
  .eyebrow { font-size:.75rem; font-weight:600; letter-spacing:.13em; line-height:1.6; }
  .button { background:var(--brown); color:var(--white); border:1px solid transparent; padding:16px 24px; display:inline-flex; align-items:center; justify-content:center; gap:34px; font-size:.95rem; line-height:1.4; font-weight:600; transition:background .2s,color .2s,transform .2s; min-height:52px; }
  .button:hover { background:var(--deep-brown); transform:translateY(-2px); }
  .button span[aria-hidden] { font-size:1.25rem; line-height:1; }
  .button-small { padding:13px 21px; font-size:.875rem; gap:24px; min-height:48px; }
  .button-yellow { background:var(--yellow); color:var(--deep-brown); }
  .button-yellow:hover { background:#ffb43d; }
  .text-link { display:inline-flex; gap:26px; align-items:center; font-size:.95rem; font-weight:600; padding-block:5px; border-bottom:1px solid var(--brown); }
  .text-link:hover { border-bottom-color:var(--deep-brown); }
  a:not(.button):not(.brand):hover { text-decoration:underline; }
  .menu-toggle { display:none; }
}
@layer responsive {
  @media(min-width:1600px) { .hero { min-height:800px; } }
  @media(max-width:1100px) {
    .wrap { width:calc(100% - 72px); }
    .header-inner { width:calc(100% - 56px); }
    #main-nav { gap:22px; }
    .next-inner { gap:20px; }
    .next-inner p { flex-direction:column; gap:0; align-items:flex-start; }
    .next-copy { flex:1; }
    .intro { gap:60px; }
    .experience-grid { gap:44px; }
    .included-grid,.support-inner { gap:65px; }
    .faq-section { gap:48px; }
    .footer-main { grid-template-columns:1fr 1.2fr; }
    .footer-links { grid-column:2; }
    .values-band .wrap>div { gap:24px; }
  }
  @media(max-width:1000px) {
    .wrap { width:calc(100% - 48px); }
    .section { padding-block:72px; }
    .header-inner { width:calc(100% - 40px); min-height:80px; }
    .foundation-logo { width:190px; }
    .header-logo { width:150px; }
    .menu-toggle { display:flex; align-items:center; gap:12px; border:0; padding:12px 0 12px 12px; background:transparent; color:var(--ink); min-height:44px; font-size:.875rem; cursor:pointer; }
    .menu-lines { width:20px; height:12px; border-block:1px solid var(--ink); }
    #main-nav { position:absolute; top:100%; left:0; right:0; padding:22px 24px 28px; flex-direction:column; align-items:stretch; gap:0; background:var(--green); border-bottom:1px solid var(--line); box-shadow:0 8px 12px #26090b18; }
    #main-nav>a:not(.button) { padding:13px 0; font-size:1rem; }
    #main-nav .button { margin-top:13px; }
    body.js-enabled #main-nav:not(.is-open) { display:none; }
    body:not(.js-enabled) .site-header { position:relative; }
    body:not(.js-enabled) #main-nav { position:static; box-shadow:none; }
    body:not(.js-enabled) .header-inner { flex-wrap:wrap; padding-top:16px; }
    body:not(.js-enabled) .menu-toggle { display:none; }
    .hero { min-height:675px; }
    .hero-content { padding-block:64px 112px; }
    .hero h1 { font-size:clamp(3.85rem,10.5vw,5.5rem); }
    .hero-bottom { gap:20px; }
    .hero-bottom>p { max-width:230px; min-width:0; }
    .next-inner { flex-wrap:wrap; column-gap:32px; row-gap:14px; padding-block:23px; }
    .next-inner p { gap:3px; }
    .next-inner>a { margin-left:auto; max-width:185px; }
    .intro { grid-template-columns:1fr 1fr; gap:35px; }
    .intro-copy { padding-top:34px; }
    .intro-copy .lead { font-size:1.25rem; }
    .intro h2 { font-size:2.6rem; }
    .experience-grid { grid-template-columns:1fr; gap:30px; }
    .experience-section { padding-bottom:72px; }
    .experience-list p { max-width:none; }
    .experience-list article { gap:24px; padding:25px 0; }
    .included-grid { grid-template-columns:1fr; gap:35px; }
    .included-list { display:grid; grid-template-columns:1fr 1fr; gap:0 30px; }
    .included-list li:first-child { padding-top:19px; }
    .heading-row { align-items:flex-start; flex-direction:column; gap:22px; }
    .retreat-layout { grid-template-columns:1fr; gap:38px; }
    .retreat-card h3 { font-size:3.5rem; }
    .retreat-card h3 em { display:inline; }
    .pricing-panel { padding-top:24px; }
    .registration-note { max-width:none; }
    .values-band .wrap { flex-direction:column; gap:20px; }
    .values-band p { max-width:none; }
    .values-band .wrap>div { justify-content:center; gap:14px 24px; }
    .values-band span { font-size:2.2rem; }
    .faq-section { grid-template-columns:1fr; gap:36px; }
    .support-inner { grid-template-columns:1fr 1fr; gap:38px; }
    .support-inner>div:last-child>p { font-size:1rem; }
    .footer-main { gap:32px; }
    .photo-grid { gap:24px 18px; }
    .motion-grid { grid-template-columns:1fr 1fr; gap:28px; padding-top:70px; }
    .motion-heading { grid-column:1/-1; padding-top:0; }
    .motion-heading h2 br { display:none; }
    .motion-heading p { max-width:520px; }
  }
  @media(max-width:540px) {
    .hero { min-height:656px; }
    .hero-content { padding-block:58px 154px; }
    .hero h1 { font-size:clamp(3.35rem,12.5vw,4.75rem); margin-top:24px; }
    .hero-eyebrow { max-width:255px; font-size:.75rem; }
    .hero-description { font-size:1rem; max-width:290px; margin-top:25px; }
    .hero-shade { background:linear-gradient(90deg,rgba(30,53,13,.84),rgba(30,53,13,.42)),linear-gradient(0deg,rgba(30,53,13,.74),transparent); }
    .hero-bottom { flex-direction:column; align-items:flex-start; gap:15px; }
    .hero-bottom>p { max-width:none; }
    .hero-controls { width:100%; justify-content:space-between; gap:10px; }
    .scene-selectors { gap:5px; }
    .hero-bottom>p { letter-spacing:.1em; font-size:.75rem; }
    .next-inner { flex-direction:column; align-items:flex-start; gap:12px; }
    .next-inner { gap:23px; padding-block:27px; }
    .next-copy { width:100%; }
    .next-inner>a { max-width:none; margin-left:0; }
    .intro { grid-template-columns:1fr; gap:26px; }
    .intro-copy { padding-top:0; }
    .intro-copy .lead { font-size:1.4rem; }
    .intro h2 { font-size:2.8rem; }
    .section-heading h2 { font-size:2.3rem; }
    .community-photo img { object-position:center; }
    .community-photo figcaption { font-size:.8rem; padding-inline:20px; }
    .included-list { display:block; }
    .included-list li:first-child { padding-top:0; }
    .retreat-card { padding:27px; }
    .retreat-card h3 { font-size:3rem; }
    .retreat-card h3 em { display:block; }
    .retreat-card-bottom { margin-top:28px; }
    .retreat-card-bottom .button { width:100%; gap:15px; padding-inline:15px; }
    .spring-card { padding:23px; }
    .spring-card>a { gap:10px; }
    .spring-card h3 { font-size:1.65rem; }
    .spring-card .eyebrow { font-size:.75rem; letter-spacing:.07em; }
    .rates dt span { max-width:220px; }
    .values-band { padding-block:35px; }
    .values-band .wrap>div { display:grid; grid-template-columns:1fr 1fr; gap:12px 25px; text-align:center; }
    .values-band span { font-size:2.15rem; }
    .support-inner { grid-template-columns:1fr; gap:28px; }
    .support-section { padding-block:60px; }
    .support-inner .button { gap:24px; }
    .footer-main { grid-template-columns:1fr; }
    .footer-links { grid-column:auto; }
    .footer-bottom { flex-direction:column; align-items:flex-start; gap:14px; }
    .footer-bottom p { max-width:320px; }
    .faq-list summary { font-size:1rem; }
    .answer { padding-right:8px; }
    .button { max-width:100%; }
    .photo-grid { grid-template-columns:1fr 1fr; gap:22px 14px; }
    .photo-grid figcaption { font-size:.875rem; line-height:1.4; padding-top:10px; }
    .motion-grid { grid-template-columns:1fr; gap:34px; }
    .motion-heading { grid-column:auto; }
    .video-card { width:min(100%,360px); margin-inline:auto; }
    .motion-heading h2 br { display:initial; }
  }
  @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }
}
