@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400&family=DM+Serif+Display:ital@0;1&display=swap");

:root{
  --ink:#17121F;
  --raise:#241A31;
  --text:#EEE9F2;
  --mint:#5AD1A8;
  --dim:#928AA0;
  --edge:rgba(238,233,242,.12);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  background:var(--ink);
  color:var(--text);
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:1.05rem;
  line-height:1.72;
  font-weight:400;
  min-height:100vh;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--text);text-decoration:none}
a:hover{color:var(--mint)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:2px solid var(--mint);
  outline-offset:3px;
}
h1,h2,h3{
  font-family:"DM Serif Display",Georgia,serif;
  font-weight:400;
  line-height:1.18;
  color:var(--text);
  margin:0 0 .6em;
}
h1{font-size:clamp(2.4rem,5.2vw,4rem)}
h2{font-size:clamp(1.75rem,3.2vw,2.6rem)}
h3{font-size:1.28rem;font-family:"DM Sans",system-ui,sans-serif;font-weight:700}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 1.1em;padding-left:1.15em}
li{margin:.28em 0}
hr{border:0}

.core{max-width:1080px;margin-inline:auto;padding-inline:24px}
.core--slim{max-width:720px}

.strip{padding-block:clamp(72px,9vw,130px)}
.strip--raised{
  background:var(--raise);
  border-block:1px solid var(--edge);
  padding-block:clamp(72px,9vw,130px);
}
.strip--raised .core{padding-top:96px}

.hairline{
  height:1px;
  background:linear-gradient(90deg,var(--mint),transparent);
  width:120px;
  margin:0 auto 28px;
  border:0;
}

.split{
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:clamp(24px,4vw,64px);
  align-items:start;
}
.split__tag{
  color:var(--mint);
  font-size:.86rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:500;
  margin:0;
  padding-top:.35rem;
}
.split__text p + p{margin-top:1em}
.split__text img{
  width:100%;
  border-radius:14px;
  border:1px solid var(--edge);
  margin:18px 0 8px;
}

@media (max-width:880px){
  .split{grid-template-columns:1fr;gap:18px}
}

/* sticky pill navigation */
.pill-bar{
  position:sticky;
  top:14px;
  z-index:50;
  background:rgba(36,26,49,.86);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--edge);
  border-radius:999px;
  padding:10px 12px 10px 22px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin:18px auto 0;
}
.pill-bar.is-open{
  border-radius:22px;
  align-items:flex-start;
  flex-wrap:wrap;
}
.pill-bar__name{
  font-family:"DM Sans",system-ui,sans-serif;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--text);
  display:inline-flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
}
.pill-bar__name::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--mint);
  flex-shrink:0;
}
.pill-nav{
  display:flex;
  align-items:center;
  gap:4px 10px;
  flex-wrap:wrap;
}
.pill-nav__link{
  color:var(--text);
  font-size:.92rem;
  font-weight:500;
  padding:8px 10px;
  border-radius:999px;
}
.pill-nav__link:hover{color:var(--mint)}
.pill-nav__link.is-here{
  box-shadow:inset 0 -2px 0 var(--mint);
  border-radius:0;
  padding-bottom:6px;
}
.pill-nav .mint-btn{margin-left:8px;padding:10px 18px;font-size:.9rem}
.pill-toggle{
  display:none;
  background:transparent;
  border:0;
  width:42px;
  height:42px;
  border-radius:999px;
  cursor:pointer;
  padding:10px 9px;
  flex-direction:column;
  justify-content:center;
  gap:5px;
}
.pill-toggle span{
  display:block;
  height:2px;
  background:var(--text);
  border-radius:2px;
  width:100%;
}

@media (max-width:820px){
  .pill-bar{padding:10px 10px 10px 18px}
  .pill-toggle{display:flex}
  .pill-nav{display:none;width:100%;flex-direction:column;align-items:stretch;padding:8px 8px 12px}
  .pill-bar.is-open .pill-nav{display:flex}
  .pill-nav__link{padding:10px 12px}
  .pill-nav__link.is-here{box-shadow:none;color:var(--mint)}
  .pill-nav .mint-btn{margin:8px 0 0;width:100%;text-align:center}
}

.stage{
  position:relative;
  min-height:clamp(520px,72vh,680px);
  display:flex;
  align-items:center;
  justify-content:center;
  background:url("../images/hero.jpg") center/cover no-repeat;
  overflow:hidden;
}
.stage__veil{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(23,18,31,.72),rgba(23,18,31,.92));
}
.stage__inner{
  position:relative;
  z-index:1;
  text-align:center;
  max-width:820px;
  margin-inline:auto;
  padding:72px 24px 56px;
}
.stage__lead{
  color:var(--text);
  opacity:.88;
  font-size:1.12rem;
  max-width:640px;
  margin:0 auto 1.6em;
}
.stage__inner .mint-btn,.stage__inner .line-btn{margin:.25rem .35rem}

.factbar{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 0;
  margin-top:28px;
  color:var(--dim);
  font-size:.92rem;
}
.factbar__item{display:inline-flex;align-items:center}
.factbar__item + .factbar__item::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--mint);
  margin:0 14px;
  display:inline-block;
}

.brief-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;
}
.brief,.prog,.note{
  background:var(--raise);
  border:1px solid var(--edge);
  border-radius:14px;
  padding:26px 24px;
  transition:border-color .25s ease,transform .25s ease;
}
.brief:hover,.prog:hover,.note:hover{
  border-color:rgba(90,209,168,.45);
  transform:translateY(-3px);
}
.brief__head{
  font-family:"DM Sans",system-ui,sans-serif;
  font-weight:700;
  font-size:1.12rem;
  margin:0 0 .7em;
}

.ladder{display:flex;flex-direction:column;gap:22px}
.ladder__row{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px 18px;
  align-items:start;
}
.ladder__num{
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--mint);
  color:#17121F;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.95rem;
}

.prog__meta{
  color:var(--dim);
  font-size:.92rem;
  margin:0 0 1em;
}
.prog__meta span{display:block;margin:.15em 0}
.prog__list{margin:.8em 0 0;padding-left:1.1em}
.prog + .prog,.note + .note{margin-top:18px}
.split__text > .prog + .prog{margin-top:18px}

.qa{border-top:1px solid var(--edge)}
.qa + .qa{margin:0}
.qa__q{
  font-family:"DM Sans",system-ui,sans-serif;
  font-weight:700;
  font-size:1.05rem;
  margin:0;
  padding:18px 0 8px;
}
.qa__a{
  color:var(--text);
  padding:0 0 20px;
  border-bottom:1px solid var(--edge);
}
.qa__a p{margin:0 0 .8em}

.note__date{
  color:var(--dim);
  font-size:.86rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  display:block;
  margin-bottom:.7em;
}

.mint-btn,.line-btn{
  display:inline-block;
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:1rem;
  line-height:1.2;
  cursor:pointer;
  border:0;
  text-align:center;
  text-decoration:none;
}
.mint-btn{
  background:var(--mint);
  color:#17121F;
  font-weight:700;
  padding:14px 26px;
  border-radius:999px;
}
.mint-btn:hover{background:#7ce0bd;color:#17121F}
.line-btn{
  background:transparent;
  color:var(--text);
  border:1px solid rgba(238,233,242,.4);
  padding:13px 25px;
  border-radius:999px;
  font-weight:500;
}
.line-btn:hover{background:var(--text);color:#17121F;border-color:var(--text)}

.cta-block{text-align:center}
.cta-block p{max-width:640px;margin-inline:auto}
.cta-block .mint-btn{margin-top:8px}

.footline{
  background:var(--raise);
  padding:22px 0;
  border-top:1px solid var(--edge);
}
.footline .core{
  display:flex;
  flex-wrap:wrap;
  gap:8px 22px;
  justify-content:center;
  text-align:center;
  font-size:.9rem;
  color:var(--dim);
}
.footline__links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 0;
  justify-content:center;
}
.footline a{color:var(--text)}
.footline a:hover{color:var(--mint)}
.footline .sep{
  color:var(--mint);
  margin:0 10px;
  user-select:none;
}

.cookie-slab{
  position:fixed;
  inset:auto 16px 16px;
  max-width:640px;
  margin-inline:auto;
  left:16px;
  right:16px;
  background:var(--raise);
  border:1px solid var(--edge);
  border-radius:14px;
  padding:18px 20px;
  z-index:80;
  font-size:.9rem;
  box-shadow:0 12px 40px rgba(0,0,0,.28);
}
.cookie-slab p{margin:0 0 12px}
.cookie-slab .mint-btn,.cookie-slab .line-btn{
  padding:10px 18px;
  font-size:.88rem;
  margin-right:8px;
  margin-top:4px;
}
.cookie-slab[hidden]{display:none}

.form-field{margin:0 0 16px}
.form-field label{
  display:block;
  font-size:.86rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--dim);
  margin-bottom:8px;
  font-weight:500;
}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%;
  background:var(--ink);
  color:var(--text);
  border:1px solid var(--edge);
  border-radius:14px;
  padding:12px 14px;
  font-family:"DM Sans",system-ui,sans-serif;
  font-size:1rem;
}
.form-field textarea{min-height:140px;resize:vertical}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  border-color:var(--mint);
}
.form-field .check{
  display:flex;
  align-items:flex-start;
  gap:10px;
  text-transform:none;
  letter-spacing:0;
  font-size:1rem;
  color:var(--text);
  text-transform:none;
}
.form-field .check input{width:auto;margin-top:.35rem}
.hp-wrap{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.form-note{
  color:var(--dim);
  font-size:.9rem;
  margin-top:12px;
}
.form-alert{
  border:1px solid var(--mint);
  background:rgba(90,209,168,.1);
  color:var(--text);
  border-radius:14px;
  padding:16px 18px;
  margin-bottom:20px;
}
.form-alert.is-err{
  border-color:rgba(232,140,160,.7);
  background:rgba(180,70,90,.16);
}
.form-alert ul{margin:.4em 0 0}

.map-frame{
  width:100%;
  height:380px;
  border:0;
  border-radius:14px;
  display:block;
}

.week-list{list-style:none;padding:0;margin:0}
.week-list li{
  border-bottom:1px solid var(--edge);
  padding:14px 0;
  display:grid;
  grid-template-columns:7.5rem 1fr;
  gap:16px;
}
.week-list strong{
  color:var(--mint);
  font-size:.86rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:500;
}

.glossary dt{
  font-weight:700;
  margin-top:1em;
}
.glossary dd{
  margin:0.25em 0 0;
  color:var(--text);
}

.legal h2{margin-top:1.4em}
.legal table{
  width:100%;
  border-collapse:collapse;
  font-size:.95rem;
}
.legal th,.legal td{
  border:1px solid var(--edge);
  padding:12px 14px;
  text-align:left;
  vertical-align:top;
}
.legal th{background:var(--raise);color:var(--mint);font-weight:500}

.contact-facts p{margin:0 0 .7em}
.contact-facts a{color:var(--mint)}

.lift-in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
html.js .lift-in{opacity:0;transform:translateY(14px)}
html.js .lift-in.shown{opacity:1;transform:none}
.no-js .lift-in{opacity:1 !important;transform:none !important}
@media (prefers-reduced-motion:reduce){
  .lift-in{opacity:1 !important;transform:none !important;transition:none}
  html{scroll-behavior:auto}
}

@media (max-width:640px){
  .week-list li{grid-template-columns:1fr;gap:4px}
  .cookie-slab{inset:auto 10px 10px}
}