:root{
  --page:#D9E5E2;
  --page-2:#E8E2D6;
  --ink:#132019;
  --body:#2E3A34;
  --mute:#5A675F;
  --line:rgba(19,32,25,.22);
  --gold:#A67C3A;
  --glass:rgba(255,255,255,.42);
  --jamb:72rem;
  --read:58ch;
  --display:"Fraunces",Georgia,serif;
  --sans:"Karla",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:hidden}
html{scroll-behavior:smooth}
body{
  min-height:100vh;
  color:var(--body);
  font-family:var(--display);
  font-size:1.08rem;
  line-height:1.65;
  background:
    radial-gradient(120% 80% at 12% -10%,rgba(255,255,255,.55),transparent 55%),
    radial-gradient(90% 70% at 100% 0%,rgba(166,124,58,.12),transparent 45%),
    linear-gradient(165deg,var(--page) 0%,#CFE0DC 42%,var(--page-2) 100%);
  background-attachment:fixed;
}
h1,h2,h3,.tt-name,.tt-a,.srun-name,.order-line,.clasp-k,.hero-brand,.hero-go,.sect-k{
  font-family:var(--sans);
  font-weight:700;
  color:var(--ink);
}
h1{font-size:clamp(1.85rem,4vw,2.85rem);line-height:1.08;margin:0 0 1rem;font-weight:600;letter-spacing:-.02em}
h2{font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.15;margin:0 0 .75rem}
h3{font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.15;margin:0 0 1rem}
p{margin:0 0 1rem}
a{color:var(--ink);text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover,a:focus-visible{text-decoration-thickness:3px}
a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
img{display:block;width:100%;height:auto}
.jamb-w{width:100%;max-width:var(--jamb);margin:0 auto;padding:0 1.5rem}

/* header */
.tint-top{
  position:relative;
  z-index:5;
  padding:1.25rem 0 1rem;
  border-bottom:1px solid transparent;
}
.page-home .tint-top{position:absolute;left:0;right:0;top:0;border:0}
.tt-name{
  display:inline-block;
  font-size:.95rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
}
.page-home .tt-name{color:rgba(255,248,236,.92)}
.page-home .tt-a{color:rgba(255,248,236,.88)}
.page-home .tt-key{
  border-color:rgba(255,248,236,.7);
  color:rgba(255,248,236,.92);
}
.tt-key{
  display:block;
  margin:1rem 0 0 0;
  border:1.5px solid var(--ink);
  background:none;
  color:var(--ink);
  font-family:var(--sans);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:.35rem .85rem;
  cursor:pointer;
}
.tt-list[data-open="false"]{display:none}
.tt-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.55rem}
.tt-a{
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
}
.tt-a[href="#main"]{
  position:absolute;width:1px;height:1px;margin:0;padding:0;
  clip-path:inset(50%);white-space:nowrap;
}
.tt-a[href="#main"]:focus{
  position:static;width:auto;height:auto;margin:1rem 0 0 1.5rem;clip-path:none;
}
.tt-a[aria-current="page"]{text-decoration:underline;text-underline-offset:.26em;text-decoration-thickness:2px}

/* homepage hero */
.hero{
  position:relative;
  min-height:100svh;
  display:grid;
  align-items:end;
  color:#FFF8EC;
  overflow:hidden;
}
.hero-plane{
  position:absolute;
  inset:0;
  margin:0;
}
.hero-plane img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.04);
}
.hero-veil{
  position:absolute;
  inset:0;
  background:
    linear-gradient(100deg,rgba(10,18,16,.78) 0%,rgba(10,18,16,.45) 48%,rgba(10,18,16,.2) 100%),
    linear-gradient(0deg,rgba(10,18,16,.55) 0%,transparent 42%);
}
.hero-copy{
  position:relative;
  z-index:2;
  padding:7.5rem 1.5rem 3.2rem;
  max-width:var(--jamb);
  margin:0 auto;
  width:100%;
}
.hero-brand{
  margin:0 0 .85rem;
  font-size:clamp(2.8rem,9vw,6.4rem);
  line-height:.9;
  letter-spacing:-.04em;
  color:#FFF8EC;
  font-weight:700;
}
.hero-line{
  margin:0 0 .9rem;
  max-width:16ch;
  font-family:var(--display);
  font-weight:500;
  font-size:clamp(1.35rem,2.8vw,2rem);
  line-height:1.2;
  color:rgba(255,248,236,.92);
  letter-spacing:0;
}
.hero-say{
  margin:0 0 1.6rem;
  max-width:34ch;
  font-size:1.05rem;
  color:rgba(255,248,236,.78);
}
.hero-go{
  display:inline-block;
  padding:.7rem 1.15rem;
  border:1.5px solid rgba(255,248,236,.75);
  color:#FFF8EC;
  text-decoration:none;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.72rem;
  background:rgba(255,248,236,.06);
}
.hero-go:hover,.hero-go:focus-visible{
  background:rgba(255,248,236,.14);
  text-decoration:none;
}

/* home sections */
.home-block{padding:clamp(3rem,7vw,5.5rem) 0}
.sect-k{
  margin:0 0 1.6rem;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--mute);
}
.sect-run{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.srun-row{
  display:grid;
  gap:.35rem;
  padding:1.35rem 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
}
.srun-name{
  font-size:clamp(1.45rem,3vw,2.15rem);
  line-height:1.05;
  letter-spacing:-.02em;
}
.srun-say{margin:0;max-width:48ch;color:var(--mute)}
.srun-row:hover .srun-name{color:var(--gold)}

.method-block h2{max-width:18ch}
.method-block .clasp-p{max-width:var(--read)}
.method-link{
  display:inline-block;
  margin-top:.4rem;
  font-family:var(--sans);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  border-bottom:2px solid var(--gold);
}
.method-link:hover{border-bottom-width:3px}

/* inner pages */
.first-say{padding:clamp(1.2rem,3vw,2rem) 0 clamp(1.6rem,3.2vw,2.4rem)}
.fsay-p{max-width:var(--read)}
.first-say--with-pic{display:grid;gap:1.4rem;align-items:end}
.hero-side{margin:0;max-width:14rem}
.hero-side img{aspect-ratio:1/1;object-fit:cover;width:100%}
.order-line{margin:0 0 clamp(1.6rem,3.2vw,2.4rem);font-size:.85rem;letter-spacing:.04em}
.kite-pic{padding:clamp(2rem,4vw,3rem) 0 0;margin:0}
.kite-pic img{aspect-ratio:21/10;object-fit:cover}
.clasp-set{padding:clamp(2.4rem,5vw,3.8rem) 0 0}
.clasp-p{max-width:var(--read)}
.clasp-pic{margin:1.4rem 0}
.clasp-pic img{aspect-ratio:11/9;object-fit:cover}
.clasp-facts{margin:1.3rem 0 0;font-size:.92rem;color:var(--ink)}
.clasp-k{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}
.white-note{
  background:var(--glass);
  backdrop-filter:blur(8px);
  color:var(--body);
  margin:clamp(2.4rem,5vw,3.4rem) 0 0;
  padding:1.4rem;
  max-width:var(--read);
  font-size:.95rem;
  border:1px solid var(--line);
}

.end-bar{
  margin-top:clamp(2.6rem,5vw,3.8rem);
  border-top:1px solid var(--line);
  padding:1.5rem 0 2.5rem;
}
.eb-mail{font-family:var(--sans);font-weight:700;font-size:1rem}
.eb-row{list-style:none;margin:.9rem 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;font-size:.9rem}
.eb-p{margin:0;font-size:.82rem;color:var(--mute)}

html:not([data-js="on"]) .tt-list[data-open="false"]{display:flex}
html:not([data-js="on"]) .tt-key{display:none}

@media (min-width:690px){
  .tt-list[data-open="false"]{display:flex}
  .tt-list{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:.85rem}
  .tt-key{display:none}
  .first-say--with-pic{grid-template-columns:minmax(0,1fr) minmax(0,12rem);column-gap:2.4rem;align-items:end}
  .hero-side{max-width:12rem;justify-self:end}
  .end-bar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1.2rem;align-items:baseline}
  .eb-row{margin:0}
  .hero-copy{padding-bottom:4rem}
}

@media (min-width:980px){
  .sect-run{grid-template-columns:1fr 1fr;column-gap:3rem}
  .sect-run li:nth-child(odd) .srun-row{padding-right:1rem}
  .sect-run li:nth-child(even) .srun-row{padding-left:1rem}
}

@media (min-width:1140px){
  .first-say:not(.first-say--with-pic){display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);column-gap:3.2rem;align-items:end}
  .first-say--with-pic{grid-template-columns:minmax(0,1fr) minmax(0,16rem);column-gap:3.2rem}
  .hero-side{max-width:16rem}
  .hero-copy{padding-left:2.4rem;padding-right:2.4rem}
}

@media (min-width:1420px){
  .jamb-w{padding:0 2.4rem}
}

@media (prefers-reduced-motion:no-preference){
  .hero-plane img{animation:hero-drift 18s ease-in-out alternate infinite}
  .hero-copy{animation:rise .9s ease both}
  .srun-row{transition:transform .25s ease,border-color .25s ease}
  .srun-row:hover{transform:translateX(.35rem)}
  .hero-go{transition:background .2s ease,transform .2s ease}
  .hero-go:hover{transform:translateY(-2px)}
  a{transition:text-decoration-thickness .15s ease,color .2s ease}
}
@keyframes hero-drift{
  from{transform:scale(1.04) translate3d(0,0,0)}
  to{transform:scale(1.08) translate3d(-1.2%,1%,0)}
}
@keyframes rise{
  from{opacity:0;transform:translateY(1.1rem)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .hero-plane img,.hero-copy{animation:none}
}
