:root{
  --green-600:#0a9a54;
  --green-700:#088643;
  --green-50:#f0fdf5;
  --green-100:#dcfce7;
  --green-gradient:linear-gradient(135deg, #12b164 0%, #0a9a54 100%);
  --black:#111418;
  --text:#1a1f2e;
  --text-light:#475569;
  --muted:#64748b;
  --border:#e2e8f0;
  --bg:#ffffff;
  --bg-subtle:#f8fafc;
  --shadow-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --radius-xl:20px;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

html,body{
  height:100%;
}

body{
  margin:0;
  font-family:"Manrope",system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img{
  max-width:100%;
  display:block;
}

h1,h2,h3{
  line-height:1.2;
  font-weight:700;
  color:var(--text);
  margin-top:0;
}

h1{
  font-size:clamp(2rem, 5vw, 3.5rem);
  font-weight:800;
  letter-spacing:-0.02em;
}

h2{
  font-size:clamp(1.75rem, 4vw, 2.5rem);
  font-weight:700;
  margin-bottom:1rem;
}

h3{
  font-size:1.25rem;
  font-weight:600;
}

p{
  margin:0 0 1rem;
}

.container{
  width:min(1200px, 92%);
  margin-inline:auto;
}

.center{
  text-align:center;
}

.muted{
  color:var(--muted);
}

.tiny{
  font-size:.875rem;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Header */
.site-header{
  position:sticky;
  top:0;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);
  z-index:100;
  transition:box-shadow 0.2s ease;
}

.site-header.scrolled{
  box-shadow:var(--shadow-sm);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:inherit;
  transition:transform 0.2s ease;
}

.brand:hover{
  transform:translateY(-2px);
}

.logo{
  width:42px;
  height:42px;
  object-fit:contain;
  border-radius:var(--radius-sm);
}

.brand-text{
  font-weight:800;
  letter-spacing:0.5px;
  font-size:1.125rem;
  background:var(--green-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.nav{
  display:flex;
  gap:8px;
}

.nav a{
  color:var(--text-light);
  text-decoration:none;
  padding:8px 14px;
  border-radius:var(--radius-sm);
  font-weight:500;
  transition:all 0.2s ease;
  font-size:0.9375rem;
}

.nav a:hover{
  background:var(--green-50);
  color:var(--green-600);
  transform:translateY(-1px);
}

@media (max-width:640px){
  .nav{
    display:none;
  }
}

/* Sections */
.section{
  padding:clamp(48px, 8vw, 96px) 0;
}

.hero{
  background:linear-gradient(180deg, var(--green-50) 0%, rgba(248,250,252,0.5) 60%, #fff 100%);
  padding-top:clamp(60px, 10vw, 100px);
  padding-bottom:clamp(60px, 10vw, 100px);
  position:relative;
  overflow:hidden;
}

.hero::before{
  content:'';
  position:absolute;
  top:-50%;
  right:-20%;
  width:800px;
  height:800px;
  background:radial-gradient(circle, rgba(10,154,84,0.08) 0%, transparent 70%);
  border-radius:50%;
  pointer-events:none;
}

.grid-2{
  display:grid;
  gap:clamp(32px, 6vw, 64px);
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:center;
}

.grid-3{
  display:grid;
  gap:clamp(20px, 4vw, 32px);
  grid-template-columns:repeat(3,minmax(0,1fr));
}

@media (max-width:900px){
  .grid-2{
    grid-template-columns:1fr;
  }
  .grid-3{
    grid-template-columns:1fr;
  }
}

.lead{
  font-size:clamp(1rem, 2.5vw, 1.25rem);
  color:var(--text-light);
  line-height:1.7;
  max-width:540px;
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:13px 24px;
  border-radius:var(--radius-md);
  font-weight:600;
  font-size:0.9375rem;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
  overflow:hidden;
}

.btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(255,255,255,0.2);
  opacity:0;
  transition:opacity 0.25s ease;
}

.btn:hover::before{
  opacity:1;
}

.btn-primary{
  background:var(--green-gradient);
  color:#fff;
  box-shadow:0 4px 12px rgba(10,154,84,0.25);
}

.btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(10,154,84,0.35);
}

.btn-primary:active{
  transform:translateY(0);
}

.btn-ghost{
  background:#fff;
  border-color:var(--border);
  color:var(--text);
  box-shadow:var(--shadow-sm);
}

.btn-ghost:hover{
  background:var(--green-50);
  border-color:var(--green-600);
  color:var(--green-600);
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
}

.cta-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:28px 0;
}

.store-badges{
  display:flex;
  gap:14px;
  align-items:center;
  margin-top:24px;
}

.badge{
  transition:transform 0.2s ease, opacity 0.2s ease;
  display:inline-block;
}

.badge:hover{
  transform:translateY(-3px);
  opacity:0.85;
}

.badge img{
  height:44px;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,0.08));
}

/* Cards / Apps */
.apps{
  background:var(--bg-subtle);
}

.apps .center.muted{
  font-size:1rem;
}

.cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(24px, 4vw, 40px);
  margin-top:48px;
}

@media (max-width:900px){
  .cards{
    grid-template-columns:1fr;
  }
}

.card{
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  padding:28px;
  background:#fff;
  box-shadow:var(--shadow-md);
  transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
}

.card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow-xl);
  border-color:var(--green-100);
}

.card::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:var(--radius-xl);
  background:var(--green-gradient);
  opacity:0;
  transition:opacity 0.3s ease;
  pointer-events:none;
  z-index:-1;
}

.card:hover::before{
  opacity:0.04;
}

.card-header{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
  position:relative;
}

.app-icon{
  width:56px;
  height:56px;
  object-fit:contain;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
  transition:transform 0.3s ease;
}

.card:hover .app-icon{
  transform:scale(1.05);
}

.card-actions{
  display:flex;
  gap:12px;
  margin-top:20px;
  flex-wrap:wrap;
}

.card-actions .btn{
  flex:1;
  min-width:120px;
}

/* Device mock */
.device-mock{
  display:flex;
  justify-content:center;
  margin:24px 0;
}

.mock-screen{
  position:relative;
  width:100%;
  max-width:280px;
  aspect-ratio:9/19;
  border:8px solid #1a1f2e; /* slimmer bezel */
  border-bottom-width:12px;
  border-radius:26px;
  background:#000;
  overflow:hidden;
  --screen-pad:8px;
  box-shadow:0 20px 60px rgba(0,0,0,0.25), inset 0 0 0 1px rgba(255,255,255,0.1);
  transition:transform 0.3s ease;
}

.card:hover .mock-screen{
  transform:scale(1.02);
}

.mock-screen img{
  position:absolute;
  top:var(--screen-pad);
  left:var(--screen-pad);
  right:var(--screen-pad);
  bottom:var(--screen-pad);
  width:auto;
  height:auto;
  max-width:calc(100% - (var(--screen-pad) * 2));
  max-height:calc(100% - (var(--screen-pad) * 2));
  object-fit:contain;
  border-radius:20px;
  display:block;
  opacity:0;
  transition:opacity .4s ease;
  background:#000;
}
.mock-screen.fill img{object-fit:cover;object-position:top center}
.mock-screen img.visible{opacity:1}

/* In case an input exists, disable pointer events so clicks don't open file picker */
.mock-screen input[type="file"]{display:none;pointer-events:none}

.drop-hint{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,0.5);
  text-align:center;
  padding:20px;
  font-size:0.875rem;
  background:linear-gradient(135deg, rgba(10,154,84,0.1), rgba(18,177,100,0.1));
  transition:background 0.2s ease;
}

.mock-screen.dragover{
  outline:3px dashed var(--green-600);
  outline-offset:-16px;
}

.mock-screen.dragover .drop-hint{
  background:linear-gradient(135deg, rgba(10,154,84,0.2), rgba(18,177,100,0.2));
  color:rgba(255,255,255,0.9);
}

.hero-mock{
  margin-inline:auto;
}

.hero-mock .mock-screen{
  max-width:320px;
}

/* Reset button for device mock */
.mock-reset{
  position:absolute;
  top:6px;
  right:6px;
  z-index:3;
  background:rgba(0,0,0,0.55);
  color:#fff;
  border:none;
  border-radius:10px;
  padding:4px 8px;
  font-size:12px;
  letter-spacing:.1px;
  cursor:pointer;
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .2s ease, transform .2s ease, background .2s ease;
}
.mock-screen:hover .mock-reset{opacity:1;transform:translateY(0)}
.mock-reset:hover{background:rgba(0,0,0,0.7)}

/* Features */
.features{
  background:#fff;
}

.feature{
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:28px 24px;
  background:linear-gradient(135deg, #fff 0%, var(--green-50) 100%);
  transition:all 0.3s ease;
  position:relative;
  overflow:hidden;
}

.feature::before{
  content:'';
  position:absolute;
  top:-50%;
  right:-50%;
  width:150%;
  height:150%;
  background:radial-gradient(circle, rgba(10,154,84,0.06) 0%, transparent 70%);
  transition:transform 0.5s ease;
}

.feature:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
  border-color:var(--green-100);
}

.feature:hover::before{
  transform:translate(-10%, -10%);
}

.feature-icon{
  font-size:2.5rem;
  margin-bottom:12px;
  display:inline-block;
  transition:transform 0.3s ease;
  position:relative;
  z-index:1;
}

.feature:hover .feature-icon{
  transform:scale(1.1) rotate(5deg);
}

.feature h3{
  position:relative;
  z-index:1;
  margin-bottom:8px;
}

.feature p{
  position:relative;
  z-index:1;
  color:var(--text-light);
  margin:0;
}

/* Subscribe */
.subscribe{
  background:var(--bg-subtle);
}

.subscribe .waitlist{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:flex-start;
}

.subscribe input{
  flex:1;
  min-width:260px;
  padding:14px 18px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  font-size:1rem;
  transition:all 0.2s ease;
  background:#fff;
}

.subscribe input:focus{
  outline:none;
  border-color:var(--green-600);
  box-shadow:0 0 0 3px rgba(10,154,84,0.1);
}

.form-msg{
  margin:8px 0 0;
  font-size:0.9375rem;
  font-weight:500;
}

.contact-card{
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:28px;
  background:#fff;
  box-shadow:var(--shadow-md);
  display:flex;
  flex-direction:column;
}

.contact-card h3{
  margin-bottom:8px;
}

.contact-card p{
  font-size:0.9375rem;
}

.contact-card ul{
  list-style:none;
  padding:0;
  margin:0 0 12px;
}

.contact-card li{
  margin:10px 0;
  color:var(--text-light);
  font-size:0.9375rem;
}

.contact-card a{
  color:var(--green-600);
  text-decoration:none;
  font-weight:500;
  transition:color 0.2s ease;
}

.contact-card a:hover{
  color:var(--green-700);
  text-decoration:underline;
}

/* Footer */
.site-footer{
  border-top:1px solid var(--border);
  padding:32px 0;
  background:#fff;
  margin-top:auto;
}

.footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.footer-inner p{
  color:var(--muted);
  margin:0;
  font-size:0.9375rem;
}

.footer-inner nav{
  display:flex;
  gap:20px;
}

.footer-inner a{
  color:var(--muted);
  text-decoration:none;
  font-size:0.9375rem;
  transition:color 0.2s ease;
}

.footer-inner a:hover{
  color:var(--green-600);
}
