:root {
  --forest: #123f32;
  --forest-deep: #082d24;
  --forest-soft: #275c49;
  --orange: #bc3c1b;
  --orange-dark: #973015;
  --river: #4b93b9;
  --river-pale: #d9ebf1;
  --gold: #d1a267;
  --cream: #f3eee4;
  --paper: #faf8f3;
  --ink: #18312e;
  --muted: #5e6e69;
  --line: rgba(18, 63, 50, .16);
  --shadow: 0 22px 60px rgba(8, 45, 36, .13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; background: var(--paper); color: var(--ink); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
p { text-wrap: pretty; }
::selection { background: var(--gold); color: var(--forest-deep); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.skip-link { position: fixed; left: 12px; top: 10px; z-index: 100; padding: 10px 14px; background: var(--cream); color: var(--forest-deep); font-weight: 750; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.site-header { min-height: 76px; padding: 10px clamp(18px, 4vw, 58px); display: grid; grid-template-columns: minmax(220px, .8fr) auto auto; gap: clamp(18px, 3vw, 40px); align-items: center; position: sticky; top: 0; z-index: 50; color: white; background: rgba(8, 45, 36, .97); border-bottom: 1px solid rgba(255, 255, 255, .13); backdrop-filter: blur(14px); }
.header-brand { display: flex; align-items: center; gap: 11px; font-size: .9rem; font-weight: 700; letter-spacing: .02em; }
.header-mark { width: 38px; height: 38px; display: grid; place-items: center; background: var(--cream); color: var(--orange); border-radius: 50%; font-size: .73rem; font-weight: 850; letter-spacing: .02em; }
.main-nav { display: flex; align-items: center; gap: clamp(15px, 2.4vw, 30px); }
.main-nav a { color: rgba(255, 255, 255, .74); font-size: .86rem; transition: color 180ms ease; }
.main-nav a:hover { color: white; }
.mobile-menu { display: none; position: relative; }
.mobile-menu summary { min-height: 40px; display: flex; align-items: center; cursor: pointer; list-style: none; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary::after { content: ""; width: 7px; height: 7px; margin-left: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.mobile-menu nav { width: min(300px, calc(100vw - 28px)); padding: 9px; display: grid; position: absolute; right: 0; top: 54px; background: var(--forest-deep); box-shadow: var(--shadow); }
.mobile-menu nav a { padding: 13px; border-bottom: 1px solid rgba(255, 255, 255, .12); color: rgba(255, 255, 255, .86); }

.button { min-height: 52px; padding: 0 23px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; font-weight: 750; line-height: 1.1; text-align: center; transition: transform 180ms ease, background 180ms ease, color 180ms ease; }
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 40px; padding-inline: 17px; font-size: .85rem; }
.button-orange { background: var(--orange); color: white; box-shadow: 0 12px 28px rgba(188, 60, 27, .22); }
.button-orange:hover { background: var(--orange-dark); }
.button-glass { color: white; border-color: rgba(255, 255, 255, .42); background: rgba(255, 255, 255, .08); backdrop-filter: blur(8px); }
.button-glass:hover { background: rgba(255, 255, 255, .15); }
.button-cream { background: var(--cream); color: var(--forest-deep); }

.hero { min-height: calc(100vh - 76px); padding: clamp(44px, 6.5vw, 86px) clamp(20px, 5vw, 72px) clamp(92px, 10vw, 136px); display: grid; align-items: center; position: relative; isolation: isolate; overflow: hidden; color: white; background: linear-gradient(90deg, rgba(5, 35, 28, .96) 0%, rgba(8, 45, 36, .88) 38%, rgba(8, 45, 36, .24) 74%, rgba(8, 45, 36, .08) 100%), url("assets/chippewa-hero-v1.webp") center / cover; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 65%, rgba(8, 45, 36, .55)); pointer-events: none; }
.hero-inner { width: min(1280px, 100%); margin: 0 auto; }
.hero-copy { width: min(730px, 65%); }
.logo-card { width: clamp(210px, 22vw, 330px); margin-bottom: 24px; padding: clamp(9px, 1vw, 13px); background: rgba(255, 255, 255, .96); border: 1px solid rgba(255, 255, 255, .7); border-radius: 6px; box-shadow: 0 24px 58px rgba(0, 0, 0, .27); }
.logo-card img { width: 100%; }
.launch-chip { width: fit-content; margin: 0 0 18px; padding: 7px 11px; display: flex; align-items: center; gap: 9px; border: 1px solid rgba(255, 255, 255, .23); background: rgba(8, 45, 36, .42); color: rgba(255, 255, 255, .84); font-size: .76rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.launch-chip span { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 5px rgba(209, 162, 103, .16); }
.hero h1 { max-width: 720px; margin: 0; font-size: clamp(2.7rem, 5.2vw, 5.3rem); font-weight: 350; letter-spacing: -.045em; line-height: .98; }
.hero-copy > p { max-width: 670px; margin: 24px 0 0; color: rgba(255, 255, 255, .82); font-size: clamp(1.04rem, 1.5vw, 1.23rem); line-height: 1.63; }
.hero-actions { margin-top: 31px; display: flex; flex-wrap: wrap; gap: 12px; }
.hero-side-note { padding: 18px 0; display: flex; gap: 0; position: absolute; right: clamp(20px, 4vw, 58px); bottom: 20px; border-top: 1px solid rgba(255, 255, 255, .26); border-bottom: 1px solid rgba(255, 255, 255, .26); color: rgba(255, 255, 255, .75); font-size: .75rem; font-weight: 650; letter-spacing: .04em; }
.hero-side-note span { padding: 0 17px; }
.hero-side-note span + span { border-left: 1px solid rgba(255, 255, 255, .24); }

.intro-panel { width: min(1180px, calc(100% - 46px)); margin: -62px auto 0; padding: clamp(26px, 4vw, 46px); display: grid; grid-template-columns: 160px 1fr minmax(160px, auto); gap: clamp(24px, 4vw, 48px); align-items: center; position: relative; z-index: 4; background: white; border: 1px solid var(--line); box-shadow: var(--shadow); }
.intro-marker { min-height: 138px; display: grid; align-content: center; justify-items: center; background: var(--river-pale); border: 1px solid rgba(75, 147, 185, .3); color: var(--forest); }
.intro-marker span { font-size: 2rem; font-weight: 850; letter-spacing: .08em; }
.intro-marker small { color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .11em; }
.section-label { margin: 0 0 12px; color: var(--orange); font-size: .75rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.section-label-light { color: #f0c98d; }
.intro-panel h2, .section-heading h2, .launch-copy h2, .community-copy h2, .questions-intro h2, .contact-section h2 { margin: 0; color: var(--forest); font-size: clamp(2.05rem, 3.7vw, 3.75rem); font-weight: 390; letter-spacing: -.035em; line-height: 1.05; }
.intro-panel > div:nth-child(2) > p:last-child, .section-heading > p:last-child, .community-copy > p, .questions-intro > p:last-child { color: var(--muted); line-height: 1.68; }
.intro-panel > div:nth-child(2) > p:last-child { margin: 14px 0 0; }
.text-link { color: var(--forest); font-size: .9rem; font-weight: 750; border-bottom: 2px solid var(--gold); padding-bottom: 5px; }
.text-link span { display: inline-block; margin-left: 5px; transition: transform 180ms ease; }
.text-link:hover span { transform: translateX(4px); }

.coming-section { width: min(1180px, calc(100% - 46px)); margin: 0 auto; padding: clamp(82px, 10vw, 130px) 0; }
.section-heading { max-width: 780px; margin-bottom: 38px; }
.section-heading > p:last-child { max-width: 690px; margin: 18px 0 0; font-size: 1.04rem; }
.feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(260px, auto); gap: 18px; }
.feature-card { min-height: 270px; position: relative; overflow: hidden; background: white; border: 1px solid var(--line); box-shadow: 0 14px 38px rgba(8, 45, 36, .07); }
.feature-card-copy { padding: clamp(24px, 3vw, 36px); }
.feature-card-copy > span { color: var(--orange); font-size: .74rem; font-weight: 800; letter-spacing: .08em; }
.feature-card h3 { margin: 46px 0 11px; color: var(--forest); font-size: clamp(1.45rem, 2.4vw, 2.2rem); font-weight: 450; letter-spacing: -.02em; }
.feature-card p { margin: 0; color: var(--muted); line-height: 1.65; }
.feature-card-large { grid-row: span 2; display: grid; grid-template-rows: minmax(330px, 1fr) auto; }
.feature-card-large img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; }
.feature-card-large h3 { margin-top: 26px; }
.feature-card-accent { color: white; background: linear-gradient(135deg, var(--forest), var(--forest-soft)); }
.feature-card-accent .feature-card-copy > span, .feature-card-accent h3, .feature-card-accent p { color: white; }
.feature-card-accent p { opacity: .74; }
.feature-card-photo { min-height: 330px; }
.feature-card-photo > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.feature-card-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 45, 36, .93), rgba(8, 45, 36, .38)); }
.feature-card-photo .feature-card-copy { width: 58%; position: relative; z-index: 2; color: white; }
.feature-card-photo .feature-card-copy > span { color: #f0c98d; }
.feature-card-photo h3, .feature-card-photo p { color: white; }
.feature-card-photo p { opacity: .82; }

.launch-section { padding: clamp(74px, 9vw, 120px) clamp(22px, 5vw, 74px); display: grid; grid-template-columns: minmax(0, .8fr) minmax(420px, 1fr); gap: clamp(50px, 8vw, 110px); background: linear-gradient(135deg, var(--forest-deep), var(--forest)); color: white; }
.launch-copy { max-width: 650px; }
.launch-copy h2 { color: white; }
.launch-copy > p:not(.section-label) { margin: 20px 0 0; color: rgba(255, 255, 255, .72); font-size: 1.05rem; line-height: 1.7; }
.launch-copy .button { margin-top: 28px; }
.launch-steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .21); }
.launch-steps li { padding: 22px 0; display: grid; grid-template-columns: 54px 1fr; gap: 19px; border-bottom: 1px solid rgba(255, 255, 255, .21); }
.launch-steps li > span { padding-top: 5px; color: #f0c98d; font-size: .73rem; font-weight: 800; letter-spacing: .08em; }
.launch-steps h3 { margin: 0; font-size: 1.34rem; font-weight: 550; }
.launch-steps p { margin: 6px 0 0; color: rgba(255, 255, 255, .69); line-height: 1.55; }

.community-section { width: min(1180px, calc(100% - 46px)); margin: clamp(78px, 10vw, 128px) auto; display: grid; grid-template-columns: minmax(350px, .78fr) 1fr; gap: clamp(28px, 6vw, 78px); align-items: center; }
.community-photo { min-height: 650px; position: relative; }
.community-photo::before { content: ""; position: absolute; left: -16px; top: 22px; width: 70%; height: 70%; z-index: -1; background: var(--river-pale); }
.community-photo img { width: 100%; height: 650px; object-fit: cover; object-position: 66% center; }
.community-copy > p { margin: 18px 0 0; font-size: 1.03rem; }
.audience-list { margin-top: 27px; border-top: 1px solid var(--line); }
.audience-list a { min-height: 91px; padding: 18px 44px 18px 0; display: grid; align-content: center; gap: 5px; position: relative; border-bottom: 1px solid var(--line); transition: padding 180ms ease, background 180ms ease; }
.audience-list a::after { content: "→"; position: absolute; right: 12px; top: calc(50% - 12px); color: var(--orange); font-size: 1.2rem; }
.audience-list a:hover { padding-left: 12px; background: linear-gradient(90deg, rgba(75, 147, 185, .1), transparent); }
.audience-list span { color: var(--forest); font-weight: 750; }
.audience-list small { color: var(--muted); font-size: .9rem; line-height: 1.45; }

.questions-section { padding: clamp(70px, 9vw, 112px) clamp(22px, 5vw, 74px); display: grid; grid-template-columns: minmax(280px, .65fr) minmax(0, 1fr); gap: clamp(42px, 8vw, 106px); background: var(--cream); }
.questions-intro { max-width: 560px; }
.questions-intro > p:last-child { margin-top: 18px; }
.question-list { border-top: 1px solid rgba(18, 63, 50, .25); }
.question-list details { padding: 0; border-bottom: 1px solid rgba(18, 63, 50, .25); }
.question-list summary { min-height: 76px; padding: 20px 44px 20px 0; display: flex; align-items: center; position: relative; color: var(--forest); font-weight: 750; cursor: pointer; list-style: none; }
.question-list summary::-webkit-details-marker { display: none; }
.question-list summary::after { content: "+"; position: absolute; right: 8px; top: 21px; color: var(--orange); font-size: 1.5rem; font-weight: 400; }
.question-list details[open] summary::after { content: "−"; }
.question-list details p { margin: -5px 44px 23px 0; color: var(--muted); line-height: 1.65; }

.contact-section { padding: clamp(68px, 9vw, 116px) clamp(22px, 6vw, 88px); display: grid; grid-template-columns: 1fr minmax(330px, .5fr); gap: clamp(38px, 8vw, 110px); align-items: center; background: linear-gradient(135deg, var(--orange-dark), var(--orange)); color: white; }
.contact-section > div:first-child { max-width: 790px; }
.contact-section h2 { color: white; }
.contact-section > div:first-child > p:last-child { max-width: 700px; color: rgba(255, 255, 255, .79); font-size: 1.04rem; line-height: 1.67; }
.contact-card { padding: 29px; display: grid; gap: 10px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .28); }
.contact-card p { margin: 0; color: rgba(255, 255, 255, .72); font-size: .78rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.contact-card > a:not(.button) { width: fit-content; margin-bottom: 10px; color: white; font-size: clamp(1.2rem, 2vw, 1.65rem); border-bottom: 1px solid rgba(255, 255, 255, .5); }

.site-footer { padding: 56px clamp(24px, 5vw, 72px) 25px; display: grid; grid-template-columns: 190px 1fr .45fr; gap: 44px; align-items: start; background: var(--forest-deep); color: white; }
.site-footer > img { width: 180px; padding: 8px; background: white; border-radius: 4px; }
.site-footer > p { max-width: 630px; margin: 0; color: rgba(255, 255, 255, .65); line-height: 1.65; }
.site-footer nav { display: grid; gap: 10px; justify-content: end; }
.site-footer nav a { color: rgba(255, 255, 255, .72); font-size: .88rem; }
.site-footer nav a:hover { color: white; }
.footer-bottom { grid-column: 1 / -1; margin-top: 25px; padding-top: 17px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255, 255, 255, .15); color: rgba(255, 255, 255, .43); font-size: .75rem; }

@media (max-width: 1020px) {
  .site-header { grid-template-columns: minmax(0, 1fr) auto auto; }
  .main-nav { display: none; }
  .mobile-menu { display: block; }
  .hero-copy { width: min(740px, 76%); }
  .intro-panel { grid-template-columns: 140px 1fr; }
  .intro-panel > .text-link { grid-column: 2; justify-self: start; }
  .launch-section, .questions-section, .contact-section { grid-template-columns: 1fr; }
  .community-section { grid-template-columns: minmax(300px, .72fr) 1fr; gap: 32px; }
  .community-photo, .community-photo img { min-height: 560px; height: 560px; }
  .site-footer { grid-template-columns: 180px 1fr; }
  .site-footer nav { grid-column: 1 / -1; grid-template-columns: repeat(4, auto); justify-content: start; }
}

@media (max-width: 720px) {
  .site-header { min-height: 66px; padding: 9px 14px; gap: 10px; }
  .header-brand > span:last-child { display: none; }
  .header-mark { width: 36px; height: 36px; }
  .site-header > .button { min-height: 38px; padding-inline: 13px; }
  .mobile-menu nav { right: -80px; }
  .hero { min-height: auto; padding: 34px 18px 92px; background-position: 62% center; }
  .hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(5, 35, 28, .25); }
  .hero-copy { width: 100%; }
  .logo-card { width: min(230px, 66vw); margin-bottom: 20px; }
  .hero h1 { font-size: clamp(2.55rem, 12vw, 4rem); }
  .hero-copy > p { font-size: 1rem; }
  .hero-actions .button { width: 100%; }
  .hero-side-note { display: none; }
  .intro-panel { width: calc(100% - 28px); margin-top: -34px; padding: 21px; grid-template-columns: 1fr; gap: 20px; }
  .intro-marker { width: 140px; min-height: 112px; }
  .intro-panel > .text-link { grid-column: auto; }
  .coming-section, .community-section { width: calc(100% - 28px); }
  .coming-section { padding: 72px 0; }
  .feature-grid { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .feature-card-large { grid-row: auto; }
  .feature-card, .feature-card-photo { min-height: 270px; }
  .feature-card-large img { min-height: 270px; }
  .feature-card-photo .feature-card-copy { width: 86%; }
  .launch-section, .questions-section, .contact-section { padding: 64px 19px; }
  .launch-section { grid-template-columns: 1fr; gap: 43px; }
  .launch-steps li { grid-template-columns: 44px 1fr; }
  .community-section { margin: 72px auto; grid-template-columns: 1fr; }
  .community-photo { order: 2; min-height: 390px; }
  .community-photo img { height: 390px; min-height: 390px; }
  .questions-section { grid-template-columns: 1fr; gap: 34px; }
  .contact-section { grid-template-columns: 1fr; }
  .contact-card { padding: 22px; }
  .contact-card .button { width: 100%; }
  .site-footer { padding: 46px 22px 23px; grid-template-columns: 1fr; gap: 26px; }
  .site-footer > img { width: 165px; }
  .site-footer nav { grid-column: auto; grid-template-columns: repeat(2, 1fr); }
  .footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
