:root {
  --bg:#020403;
  --panel:#0a0d0b;
  --panel-2:#0e120f;
  --text:#f6f7f6;
  --muted:#a5aaa6;
  --green:#57b62c;
  --green-bright:#86d82f;
  --line:#1d241f;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:20;background:rgba(2,4,3,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav-wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:1.35rem;letter-spacing:-.03em}
.brand img{width:48px;height:48px;object-fit:contain}
.brand-word .green{color:var(--green-bright)}
.nav-links{display:flex;align-items:center;gap:26px;font-weight:650}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--green-bright)}
.hero{border-bottom:1px solid var(--line);padding:82px 0 76px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);align-items:center;gap:56px}
.eyebrow{color:var(--green);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:850}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(3.2rem,6.5vw,6.5rem);line-height:.98;letter-spacing:-.055em;margin:22px 0 28px;max-width:760px}
h1 .green{color:var(--green-bright)}
.hero-copy{font-size:clamp(1rem,1.5vw,1.22rem);color:var(--muted);max-width:650px;margin-bottom:34px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 24px;border-radius:10px;border:1px solid transparent;font-weight:800;transition:.2s ease;cursor:pointer}
.btn-primary{background:linear-gradient(135deg,var(--green),#3f9922);color:#fff;box-shadow:0 10px 30px rgba(76,175,39,.18)}
.btn-primary:hover,.btn-primary:focus-visible{transform:translateY(-1px);filter:brightness(1.08)}
.hero-art{display:flex;justify-content:center;align-items:center}
.hero-art img{width:min(100%,500px);filter:drop-shadow(0 18px 45px rgba(45,110,30,.12))}
.how{padding:74px 0 72px}
.section-intro{text-align:center;max-width:850px;margin:0 auto 46px}
.section-intro h2{font-size:clamp(2rem,4vw,3.55rem);line-height:1.08;letter-spacing:-.04em;margin:14px 0 15px}
.section-intro p{color:var(--muted);font-size:1.05rem}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;align-items:start}
.step{text-align:center}
.step-number{width:38px;height:38px;border-radius:999px;display:grid;place-items:center;background:var(--green);font-weight:900;margin:0 auto 18px}
.phone{width:min(100%,295px);aspect-ratio:9/18.8;margin:0 auto 22px;border:3px solid #333b36;border-radius:36px;background:#050605;overflow:hidden;box-shadow:0 22px 48px rgba(0,0,0,.4);position:relative}
.phone::before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:82px;height:19px;border-radius:20px;background:#020302;z-index:3}
.phone img{width:100%;height:100%;object-fit:cover;object-position:top center}
.phone.app-built{padding:40px 14px 16px;text-align:left}
.phone-status{display:flex;justify-content:space-between;color:#cdd1ce;font-size:.68rem;margin-bottom:16px}
.screen-kicker{text-transform:uppercase;letter-spacing:.14em;text-align:center;color:#909591;font-size:.7rem}
.screen-title{font-size:1rem;margin:5px 0 13px}
.recipient{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px 8px;border:1px solid #1d241f;border-radius:12px;margin:8px 0;background:#0b0d0c}
.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#132715}
.recipient strong{font-size:.78rem;display:block}.recipient small{font-size:.62rem;color:#8f9691}.distance{font-size:.67rem;font-weight:800}
.step h3{font-size:1.35rem;margin-bottom:8px}.step p{color:var(--muted);max-width:330px;margin-inline:auto}
.site-footer{
  border-top:1px solid var(--line);
  background:var(--bg);
  padding:48px 0 56px;
}
.footer-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:32px;
  color:#8f918f;
  font-size:.95rem;
}
.footer-copyright{
  white-space:nowrap;
}
.footer-links{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:32px;
}
.footer-links a{
  color:#8f918f;
  text-decoration:none;
  transition:color .2s ease;
}
.footer-links a:hover,
.footer-links a:focus-visible{
  color:var(--green-bright);
}
.page-shell{padding:70px 0 90px}.page-shell h1{font-size:clamp(2.5rem,5vw,4.6rem)}
.contact-card{max-width:800px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:34px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-field{display:flex;flex-direction:column;gap:8px}.form-field.full{grid-column:1/-1}
label{font-weight:750}input,select,textarea{width:100%;background:#050706;color:#fff;border:1px solid #2b332d;border-radius:9px;padding:13px;font:inherit}textarea{resize:vertical}.form-help,.form-status{color:var(--muted);font-size:.9rem}.honeypot{position:absolute;left:-10000px}
@media(max-width:850px){.hero-grid{grid-template-columns:1fr}.hero{padding-top:58px}.hero-art img{width:min(86%,460px)}.steps{grid-template-columns:1fr}.step{margin-bottom:25px}.footer-row{flex-direction:column;text-align:center}.footer-links{justify-content:center}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}}
@media(max-width:560px){.container{width:min(100% - 28px,var(--max))}.nav-wrap{min-height:68px}.brand img{width:40px;height:40px}.brand{font-size:1.12rem}.nav-links{gap:16px}.hero{padding:48px 0 58px}h1{font-size:clamp(2.7rem,15vw,4.2rem)}.hero-grid{gap:28px}.how{padding:58px 0}.contact-card{padding:22px}
.site-footer{padding:42px 0 54px}
.footer-row{
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:26px;
}
.footer-copyright{
  width:100%;
  white-space:normal;
}
.footer-links{
  width:100%;
  flex-wrap:wrap;
  justify-content:center;
  gap:18px 34px;
}
.footer-links a:last-child{
  flex-basis:100%;
  text-align:center;
}
}

@media(max-width:850px){.phone{width:295px;max-width:100%}.phone img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}.step-number{position:relative;z-index:2}}

.phone.phone-complete{aspect-ratio:auto;height:auto;border:0;border-radius:0;background:transparent;overflow:visible;box-shadow:none}
.phone.phone-complete::before{display:none}
.phone.phone-complete img{display:block;width:100%;height:auto;object-fit:contain;object-position:center}
@media(max-width:850px){.phone.phone-complete{width:262px;max-width:88vw}.phone.phone-complete img{width:100%;height:auto;object-fit:contain}}


.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.store-links{display:flex;flex-wrap:wrap;gap:12px}
.store-badge{display:flex;flex-direction:column;justify-content:center;min-width:168px;min-height:56px;padding:8px 16px;border:1px solid #5a5e5b;border-radius:9px;background:#050605;color:#fff;line-height:1.05}
.store-badge:hover,.store-badge:focus-visible{border-color:var(--green);transform:translateY(-1px)}
.store-kicker{font-size:.64rem;letter-spacing:.04em;color:#d8d8d8;margin-bottom:3px}
.store-badge strong{font-size:1.16rem}
@media(max-width:560px){.store-links{width:100%}.store-badge{flex:1 1 150px;min-width:0}}


/* Normalize the three How It Works columns and phone display areas. */
.steps {
  align-items: stretch;
}

.step {
  display: grid;
  grid-template-rows: auto 610px auto 1fr;
  align-items: start;
}

.step-number {
  grid-row: 1;
}

.step .phone {
  grid-row: 2;
  width: min(100%, 295px);
  height: 610px;
  aspect-ratio: auto;
  align-self: start;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 22px;
}

.step .phone:not(.phone-complete) img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

.step .phone.phone-complete {
  width: min(100%, 295px);
  height: 610px;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  box-shadow: none;
}

.step .phone.phone-complete img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

.step h3 {
  grid-row: 3;
  align-self: start;
}

.step p {
  grid-row: 4;
  align-self: start;
}

/* The middle Tap in TapTapTips is the green brand accent. */
.brand-word > .green {
  color: var(--green-bright);
}

@media (max-width: 850px) {
  .step {
    grid-template-rows: auto 590px auto 1fr;
  }

  .step .phone,
  .step .phone.phone-complete {
    width: min(100%, 285px);
    height: 590px;
    max-width: 88vw;
  }
}
.steps .step:nth-child(2) .phone {
  border: none;
}
