
:root{
  --cream:#f7f2e9;
  --ink:#171713;
  --muted:#60635f;
  --green:#476b51;
  --gold:#d4932c;
  --line:rgba(23,23,19,.12);
  --footer-h:128px;
}

*{box-sizing:border-box}

html,body{
  margin:0;
  width:100%;
  height:auto;
  background:var(--cream);
  color:var(--ink);
  overflow-x:hidden;
}

body{
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}

.site-shell{
  width:100%;
  display:grid;
  grid-template-rows:100svh var(--footer-h);
  background:var(--cream);
}

/* ---------- HERO ---------- */

.hero{
  position:relative;
  min-height:0;
  overflow:hidden;
  background:var(--cream);
}

/* Image fills the right 66%; SVG blend handles the soft left-edge transition */
.hero-art{
  position:absolute;
  z-index:0;
  top:0;
  right:0;
  bottom:0;
  width:max(100svh, 62vw); /* square when screen is squarish; floor at 62vw on wide screens */
  overflow:hidden;
}

.hero-art img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}

.hero-blend{
  position:absolute;
  z-index:1;
  top:-2%;
  bottom:-2%;
  left:calc(100vw - max(100svh, 62vw) - 8.5vw); /* tracks the image's left edge */
  width:31vw;
  height:104%;
  overflow:visible;
  pointer-events:none;
}

/* ---------- COPY ---------- */

.hero-copy{
  position:relative;
  z-index:2;
  width:47%;
  height:100%;
  padding-left:4.55vw;
  padding-top:5vh;
  padding-bottom:3vh;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.brand{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:2.8vh;
}

.brand-icon{
  width:64px;
  height:64px;
  border-radius:16px;
  object-fit:cover;
  box-shadow:0 7px 20px rgba(0,0,0,.08);
}

.brand-name{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(12px,1.0vw,16px);
  letter-spacing:.20em;
  text-transform:uppercase;
  white-space:nowrap;
}

h1{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(58px,5.72vw,92px);
  line-height:.91;
  letter-spacing:-.047em;
  max-width:650px;
}

.title-block{
  display:block;
}

.second-block{
  margin-top:.25em;
}

.green{color:var(--green)}
.gold{color:var(--gold)}

.rule{
  width:84px;
  height:1px;
  background:var(--line);
  margin:5.5vh 0 3.5vh;
}

.subhead{
  margin:0;
  font-size:clamp(19px,1.42vw,24px);
  line-height:1.42;
  letter-spacing:-.02em;
}

.cta-stack{
  margin-top:2.8vh;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2.3vh;
}

.app-store{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-width:248px;
  padding:10px 18px 11px 15px;
  color:#fff;
  background:#050505;
  border-radius:11px;
  text-decoration:none;
  box-shadow:0 7px 18px rgba(0,0,0,.12);
}

.apple-mark{
  font-size:38px;
  line-height:1;
  display:flex;
  align-items:center;
}

.badge-copy{
  display:flex;
  flex-direction:column;
  line-height:1.03;
}

.badge-copy small{
  font-size:12px;
}

.badge-copy strong{
  font-size:26px;
  font-weight:500;
  letter-spacing:-.03em;
}

.privacy-note{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--muted);
  font-size:15px;
}

.shield{
  width:20px;
  height:22px;
  border:1.7px solid currentColor;
  border-radius:7px 7px 10px 10px;
  position:relative;
  transform:scale(.88);
}

.shield::after{
  content:"";
  position:absolute;
  left:5px;
  top:6px;
  width:6px;
  height:3px;
  border-left:1.7px solid currentColor;
  border-bottom:1.7px solid currentColor;
  transform:rotate(-45deg);
}

/* ---------- FOOTER ---------- */

.footer{
  height:var(--footer-h);
  border-top:1px solid var(--line);
  background:rgba(247,242,233,.99);
  display:grid;
  grid-template-columns:1.25fr 1.2fr .9fr;
  align-items:center;
  gap:28px;
  padding:14px 4.55vw 14px;
}

.footer-about{
  display:flex;
  align-items:flex-start;
  gap:18px;
}

.footer-icon{
  width:44px;
  height:44px;
  border-radius:11px;
  object-fit:cover;
  flex:0 0 auto;
}

.footer-about p{
  margin:1px 0 0;
  max-width:370px;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}

.footer-center{
  min-height:0;
  border-left:1px solid var(--line);
  padding-left:32px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:12px;
}

.footer-center nav{
  display:flex;
  gap:30px;
  flex-wrap:wrap;
}

.footer a{
  color:var(--ink);
  text-decoration:none;
  font-size:14px;
}

.footer a:hover{
  text-decoration:underline;
  text-underline-offset:4px;
}

.email{color:var(--muted)!important}

.copyright{
  justify-self:end;
  text-align:right;
  color:#71746f;
  font-size:13px;
  white-space:nowrap;
}

/* ---------- SHRINKING LANDSCAPE: expand image panel at narrower desktop widths ---------- */
/*
  As the viewport narrows, hero-art's left edge slides toward 0 so the image
  container stays landscape-shaped. object-fit:cover then fills by width,
  keeping the full horizontal scene visible. The blend shifts left in sync.
  Large screens (> 1250px) are untouched.
*/

@media (max-width:1000px) and (min-width:821px){
  /* extra cream backing for narrow viewports where blend feathering thins out */
  .hero-copy{ background:linear-gradient(to right, var(--cream) 70%, transparent) }
}

/* ---------- SMALLER LAPTOP HEIGHTS ---------- */

@media (max-height:800px) and (min-width:821px){
  :root{--footer-h:110px}

  .brand{
    margin-bottom:2.7vh;
  }

  .brand-icon{
    width:55px;
    height:55px;
  }

  h1{
    font-size:clamp(51px,5.15vw,76px);
  }

  .second-block{
    margin-top:.22em;
  }

  .rule{
    margin:3.5vh 0 2.5vh;
  }

  .subhead{
    font-size:clamp(18px,1.28vw,22px);
  }

  .cta-stack{
    margin-top:1.85vh;
    gap:1.4vh;
  }

  .app-store{
    transform:scale(.92);
    transform-origin:left center;
  }
}

/* ---------- MOBILE ---------- */

@media (max-width:820px){
  body{overflow:auto}

  .site-shell{
    height:auto;
    min-height:100svh;
    overflow:visible;
    grid-template-rows:auto auto;
  }

  /*
    Mobile: text section (cream bg) stacked above the image.
    No overlap — the hero switches to a flex column so the two
    blocks flow naturally one after the other.
  */
  .hero{
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow:visible;
  }

  /* Text block: solid cream, no absolute positioning */
  .hero-copy{
    position:relative;
    order:1;
    width:100%;
    height:auto;
    padding:28px 24px 36px;
    justify-content:flex-start;
    background:var(--cream);
    z-index:2;
  }

  /* Image block: full width, taller so more of the composition is visible */
  .hero-art{
    order:2;
    position:relative;
    width:100%;
    height:82vw;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
    overflow:hidden;
  }

  .hero-art img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 35%;
  }

  /* Cream fade at the top so the image flows from the text section above
     instead of appearing as a disconnected block */
  .hero-art::before{
    content:"";
    position:absolute;
    z-index:1;
    top:0;left:0;right:0;
    height:18%;
    background:linear-gradient(to bottom, var(--cream) 0%, transparent 100%);
    pointer-events:none;
  }

  .hero-blend{
    display:none;
  }

  /* No overlay needed — text and image don't overlap */
  .hero::after{
    display:none;
  }

  .brand{margin-bottom:22px}
  .brand-icon{width:48px;height:48px;border-radius:12px}
  .brand-name{font-size:13px}

  h1{
    font-size:clamp(42px,11vw,64px);
    line-height:.94;
  }

  .second-block{margin-top:.22em}
  .subhead{font-size:18px}
  .rule{margin:20px 0 16px}
  .cta-stack{margin-top:24px;gap:18px}

  .footer{
    height:auto;
    grid-template-columns:1fr;
    gap:24px;
    padding:26px 24px 30px;
  }

  .footer-center{
    min-height:0;
    border-left:0;
    border-top:1px solid var(--line);
    padding:20px 0 0;
  }

  .copyright{
    justify-self:start;
    text-align:left;
  }
}
