/* Hummingbird × Bee — tempered capital
   palette derived from the hero: fern green, nectar amber, magenta nectar */

:root{
  --ink:#16201a;
  --ink-soft:#4a5a4e;
  --paper:#f3f4ec;
  --paper-2:#e6e9dd;
  --amber:#d99b1c;
  --magenta:#c02f66;
  --fern:#256b45;
  --plum:#5f2a63;
  --bloom:#e01f6e;
  --line:color-mix(in oxyz, var(--ink) 14%, transparent);
  --glass:color-mix(in oxyz, #ffffff 46%, transparent);
  --glass-2:color-mix(in oxyz, #ffffff 26%, transparent);
  --r:2px;
  --pad:clamp(20px, 5vw, 88px);
  --fs-h1:clamp(2.4rem, 6.2vw, 6.4rem);
  --fs-h2:clamp(1.9rem, 3.5vw, 3.5rem);
  --fs-h3:1.06rem;
  --fs-body:clamp(1rem, 1.06vw, 1.12rem);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:
    radial-gradient(120vw 80vh at 82% -10%, color-mix(in oxyz, var(--amber) 22%, transparent), transparent 60%),
    radial-gradient(90vw 70vh at 6% 22%, color-mix(in oxyz, var(--fern) 16%, transparent), transparent 62%),
    radial-gradient(80vw 60vh at 96% 78%, color-mix(in oxyz, var(--magenta) 14%, transparent), transparent 60%),
    var(--paper);
  color:var(--ink);
  font-family:"Switzer","Helvetica Neue",sans-serif;
  font-size:var(--fs-body);
  font-weight:300;
  line-height:1.65;
  letter-spacing:.006em;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;}

/* film grain, keeps flat colour from looking synthetic */
.grain{
  position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.14;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}

/* ————— frosted banner ————— */
.banner{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:14px var(--pad);
  background:linear-gradient(180deg, color-mix(in oxyz,#fff 34%,transparent), color-mix(in oxyz,#fff 12%,transparent));
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  backdrop-filter:blur(22px) saturate(150%);
  border-bottom:1px solid color-mix(in oxyz,#fff 40%,transparent);
  transition:background .5s ease, border-color .5s ease;
  color:var(--ink);
}
.banner.is-scrolled{
  background:color-mix(in oxyz,#fff 66%,transparent);
  border-bottom-color:var(--line);
}
.banner__nav{display:flex;gap:26px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;}
.banner__nav a{text-decoration:none;opacity:.78;position:relative;padding-bottom:2px;}
.banner__nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.8,.2,1);
}
.banner__nav a:hover{opacity:1;}
.banner__nav a:hover::after{transform:scaleX(1);}

/* title sits in the right corner */
.banner__title{
  display:flex;align-items:center;gap:12px;text-decoration:none;text-align:right;
  margin-left:auto;flex:none;white-space:nowrap;
}
.mark{height:36px;width:auto;flex:none;order:2;overflow:visible;}
.mark__stem{stroke:var(--plum);stroke-width:1.8;stroke-linecap:round;fill:none;}
.mark__blooms{fill:var(--bloom);}
.banner__wordmark{display:flex;flex-direction:column;line-height:1;order:1;white-space:nowrap;}
.banner__wordmark em{
  font-family:"Gambetta",serif;font-style:normal;font-weight:400;
  font-size:clamp(1.04rem,1.6vw,1.46rem);letter-spacing:.006em;
}
.banner__x{
  font-family:"Switzer",sans-serif;font-style:normal;font-weight:400;
  font-size:1.02em;margin:0 .3em;position:relative;top:-.02em;
  color:var(--ink);
}
.banner__wordmark small{
  font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;opacity:.66;margin-top:6px;
}

/* ————— hero: image only, page wide ————— */
.hero{position:relative;width:100%;height:100svh;min-height:520px;overflow:hidden;}
.hero__img{
  width:100%;height:100%;object-fit:cover;object-position:56% 48%;
  transform:scale(1.04);
  animation:drift 26s ease-in-out infinite alternate;
}
@keyframes drift{
  from{transform:scale(1.04) translate3d(0,0,0);}
  to{transform:scale(1.1) translate3d(-1.4%,-1%,0);}
}
@media (prefers-reduced-motion:reduce){.hero__img{animation:none;}}

/* ————— shared bits ————— */
.glass{
  background:var(--glass);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  backdrop-filter:blur(18px) saturate(150%);
  border:1px solid color-mix(in oxyz,#fff 62%,transparent);
  border-radius:var(--r);
}
.eyebrow{
  font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 18px;
}
.eyebrow.center{text-align:center;}
.italic{font-family:"Gambetta",serif;font-style:italic;font-weight:300;}
h1,h2,h3{font-family:"Gambetta",serif;font-weight:400;letter-spacing:-.012em;line-height:1.08;margin:0;}
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1);}
[data-reveal].in{opacity:1;transform:none;}

/* ————— statement ————— */
.statement{padding:clamp(56px,9vw,120px) var(--pad) clamp(28px,4vw,56px);}
.statement h1{font-size:var(--fs-h1);max-width:20ch;}
.statement h1 .italic{color:var(--magenta);}
.statement h1 .italic + .italic,
.statement h1 .italic:last-of-type{color:var(--fern);}

.strip{
  margin-top:clamp(32px,5vw,64px);
  display:flex;flex-wrap:wrap;align-items:stretch;
  border-radius:var(--r);overflow:hidden;
}
.chip{
  flex:1 1 190px;display:flex;flex-direction:column;gap:6px;
  padding:18px 22px;border-right:1px solid color-mix(in oxyz,#fff 60%,transparent);
}
.chip:last-child{border-right:0;}
.chip__k{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);}
.chip__v{font-family:"Gambetta",serif;font-size:1rem;}
.chip--cta{
  flex:0 1 210px;flex-direction:row;align-items:center;justify-content:space-between;
  text-decoration:none;font-family:"Gambetta",serif;
  background:color-mix(in oxyz,var(--amber) 82%,#fff);color:#1a1405;
  transition:background .4s ease,letter-spacing .4s ease;
}
.chip--cta:hover{background:var(--magenta);color:#fff;letter-spacing:.02em;}

/* ————— model ————— */
.model{padding:clamp(56px,8vw,120px) var(--pad);}
.model__head{max-width:44ch;margin-bottom:clamp(36px,5vw,64px);}
.model__head h2{font-size:var(--fs-h2);}
.model__head .italic{color:var(--magenta);}
.model__body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,4vw,64px);align-items:start;}
.prose p{margin:0 0 1.15em;max-width:62ch;color:var(--ink-soft);}
.prose strong{color:var(--ink);font-weight:500;}
.prose em{font-family:"Gambetta",serif;font-style:italic;color:var(--ink);}
.stack{display:grid;gap:12px;position:sticky;top:96px;}
.card{padding:20px 22px;position:relative;}
.card h3{font-size:var(--fs-h3);margin-bottom:8px;}
.card p{margin:0;font-size:.94rem;color:var(--ink-soft);}
.card__idx{
  position:absolute;top:18px;right:20px;font-family:"Gambetta",serif;font-style:italic;
  font-size:.9rem;color:var(--amber);
}
.card--accent{background:color-mix(in oxyz,var(--amber) 24%, var(--glass));}

/* ————— forces ————— */
.forces{padding:clamp(56px,8vw,110px) var(--pad);}
.forces__grid{display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:stretch;}
.force{padding:clamp(22px,3vw,40px);}
.force h3{font-size:clamp(1.7rem,3vw,2.6rem);display:flex;flex-direction:column;gap:10px;}
.force__tag{font-family:"Switzer",sans-serif;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);}
.force ul{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px;}
.force li{font-size:.94rem;color:var(--ink-soft);padding-top:10px;border-top:1px solid var(--line);}
.forces__seam{
  width:clamp(46px,7vw,96px);display:grid;place-items:center;position:relative;
}
.forces__seam::before{content:"";position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--magenta),var(--fern),transparent);opacity:.6;}
.forces__seam span{
  writing-mode:vertical-rl;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;
  background:var(--paper);padding:10px 3px;color:var(--ink-soft);z-index:1;
}
.forces__note{text-align:center;margin:clamp(28px,4vw,48px) auto 0;max-width:52ch;color:var(--ink-soft);}

/* ————— numbers ————— */
.numbers{padding:0 var(--pad) clamp(56px,8vw,110px);display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.num{padding:24px 22px;display:flex;flex-direction:column;gap:12px;min-height:170px;justify-content:space-between;}
.num__v{font-family:"Gambetta",serif;font-size:clamp(2.4rem,4vw,3.6rem);line-height:1;letter-spacing:-.03em;}
.num__v i{font-family:"Gambetta",serif;font-style:italic;font-size:.42em;color:var(--amber);}
.num__k{font-size:.78rem;letter-spacing:.02em;color:var(--ink-soft);}

/* ————— invest ————— */
.invest{padding:0 var(--pad) clamp(48px,7vw,96px);}
.invest__inner{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(28px,4vw,64px);padding:clamp(26px,4vw,58px);
  background:linear-gradient(135deg, color-mix(in oxyz,#fff 52%,transparent), color-mix(in oxyz,var(--amber) 16%,transparent));
}
.invest__copy h2{font-size:var(--fs-h2);}
.invest__copy .italic{color:var(--magenta);}
.invest__lede{margin:22px 0 0;color:var(--ink-soft);max-width:40ch;}
.invest__meta{display:grid;gap:0;margin:32px 0 0;}
.invest__meta > div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line);}
.invest__meta dt{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin:0;}
.invest__meta dd{margin:0;font-family:"Gambetta",serif;font-size:.96rem;}

.form{display:grid;gap:12px;align-content:start;}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.field{display:grid;gap:7px;}
.field > span{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);}
.field > span i{font-style:normal;opacity:.55;letter-spacing:.12em;}
input,select,textarea{
  font:inherit;font-size:.96rem;color:var(--ink);
  background:color-mix(in oxyz,#fff 42%,transparent);
  border:1px solid color-mix(in oxyz,var(--ink) 16%,transparent);
  border-radius:var(--r);padding:12px 14px;width:100%;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:border-color .3s ease,background .3s ease;
}
input::placeholder,textarea::placeholder{color:color-mix(in oxyz,var(--ink) 42%,transparent);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--magenta);background:color-mix(in oxyz,#fff 66%,transparent);}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 19px) 51%,calc(100% - 14px) 51%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;}
textarea{resize:vertical;}
.check{display:flex;gap:11px;align-items:flex-start;font-size:.8rem;color:var(--ink-soft);margin-top:4px;}
.check input{width:15px;height:15px;flex:none;margin-top:3px;accent-color:var(--magenta);}
.submit{
  margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:14px;
  font:inherit;font-family:"Gambetta",serif;font-size:1rem;cursor:pointer;
  padding:15px 22px;border:0;border-radius:var(--r);
  background:var(--ink);color:var(--paper);
  transition:background .4s ease,transform .4s cubic-bezier(.2,.8,.2,1);
}
.submit:hover{background:var(--magenta);}
.submit:active{transform:translateY(1px);}
.submit[disabled]{opacity:.6;cursor:progress;}
.submit__arrow{transition:transform .4s cubic-bezier(.2,.8,.2,1);}
.submit:hover .submit__arrow{transform:translateX(5px);}
.form__status{margin:2px 0 0;font-size:.82rem;min-height:1.2em;color:var(--fern);}
.form__status.err{color:var(--magenta);}

/* ————— footer ————— */
.foot{
  display:flex;flex-wrap:wrap;gap:8px 28px;align-items:baseline;
  padding:22px var(--pad) 34px;border-top:1px solid var(--line);
  font-size:.74rem;color:var(--ink-soft);
}
.foot a{text-decoration:none;border-bottom:1px solid var(--line);}
.foot__fine{flex-basis:100%;opacity:.62;font-size:.68rem;max-width:80ch;}

/* ————— responsive ————— */
@media (max-width:940px){
  .model__body,.invest__inner{grid-template-columns:1fr;}
  .stack{position:static;}
  .numbers{grid-template-columns:1fr 1fr;}
  .forces__grid{grid-template-columns:1fr;}
  .forces__seam{width:auto;height:64px;}
  .forces__seam::before{top:auto;left:0;right:0;height:1px;width:auto;background:linear-gradient(90deg,transparent,var(--magenta),var(--fern),transparent);}
  .forces__seam span{writing-mode:horizontal-tb;padding:3px 12px;}
}
@media (max-width:640px){
  .banner{flex-direction:row;align-items:center;padding:10px 18px;}
  .banner__nav{display:none;}
  .hero{height:78svh;}
  .row{grid-template-columns:1fr;}
  .numbers{grid-template-columns:1fr;}
  .chip{flex:1 1 100%;border-right:0;border-bottom:1px solid color-mix(in oxyz,#fff 60%,transparent);}
}

/* wordmark stays on one line */
.banner__line{display:inline-flex;align-items:baseline;white-space:nowrap;}

/* ————— full-bleed image plates ————— */
.plate{
  position:relative;width:100vw;margin-left:calc(50% - 50vw);
  height:100svh;min-height:520px;overflow:hidden;
}
.plate--tall{height:92svh;}
.plate img{
  width:100%;height:100%;object-fit:cover;object-position:50% 46%;
}
.plate--tall img{object-position:46% 50%;}
@media (max-width:640px){
  .plate,.plate--tall{height:70svh;}
}
