  :root {
    --black:      #060f00;
    --black-mid:  #0b1a00;
    --green:      #58eb00;
    --green-dim:  #cfd6cb;
     
    --green-glow: rgb(24, 20, 209);
    --green-glow2: rgba(88,235,0,0.18);
    --white:      #e8f5e0;
    --text-dim:   #4a6e30;
    --text-mid:   #7aaa50;
  }

   
  
  *, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
  html { scroll-behavior:smooth; }

  body {
    background:var(--black);
    color:var(--white);
    font-family:'Open Sans', sans-serif;
    overflow-x:hidden;
    cursor:none;
  }

  .cursor {
    position:fixed; width:10px; height:10px;
    background:var(--green); border-radius:50%;
    pointer-events:none; z-index:9999;
    transform:translate(-50%,-50%);
    transition:width .3s, height .3s;
    box-shadow:0 0 10px var(--green);
  }
  .cursor-ring {
    position:fixed; width:38px; height:38px;
    border:1px solid var(--green); border-radius:50%;
    pointer-events:none; z-index:9998;
    transform:translate(-50%,-50%);
    transition:width .3s, height .3s, opacity .3s;
    opacity:0.4;
  }

  /* Scanlines */
  body::before {
    content:''; position:fixed; inset:0;
    background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(88,235,0,0.013) 3px);
    pointer-events:none; z-index:9990;
  }

  .progress-bar-container {
    position:fixed; top:0; left:0; right:0;
    height:2px; z-index:9997;
    background:rgba(88,235,0,0.08);
  }
  .progress-bar {
    height:100%;
    background:var(--green);
    width:0%;
    transition:width .1s;
    box-shadow:0 0 8px var(--green);
  }

  /* HERO */
  .hero {
    position:relative; height:100vh;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    overflow:hidden;
    border-bottom:1px solid rgba(88,235,0,0.1);
  }
  .hero-bg-grid {
    position:absolute; inset:0;
    background:
      repeating-linear-gradient(0deg, transparent, transparent 59px, rgba(88,235,0,0.03) 60px),
      repeating-linear-gradient(90deg, transparent, transparent 59px, rgba(88,235,0,0.03) 60px);
  }
  .hero-glow {
    position:absolute; width:600px; height:600px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(88,235,0,0.055) 0%, transparent 70%);
    pointer-events:none;
  }
  .hero-diagonal {
    position:absolute; bottom:-1px; left:0; right:0;
    height:100px; background:var(--black);
    clip-path:polygon(0 60%, 100% 0%, 100% 100%, 0% 100%);
    z-index:2;
  }

  .logo {
    position: absolute;
    top: 5rem;
    left: 50%;
    transform: translateX(-50%);
    width: 15rem;
    height: auto;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .logo img,
  .logo object {
    width: 100%;
    height: 100%;
    display: block;
  }

  
  .hero-tag {
    font-size:.6rem; letter-spacing:.38em;
    text-transform:uppercase; color:var(--text-dim);
    z-index:3; margin-bottom:1rem;
  }
  .hero-title {
    font-family:'Funnel Display', sans-serif;
    font-weight:800;
    font-size:clamp(3.5rem, 10vw, 7.5rem);
    letter-spacing:.04em; line-height:.92;
    text-align:center; z-index:3;
    background:linear-gradient(135deg, var(--white) 0%, var(--green) 50%, var(--white) 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text; background-size:200% 200%;
    animation:gradientShift 5s ease-in-out infinite;
  }
  .hero-subtitle {
    font-style:italic; font-weight:300; font-size:1rem;
    color:var(--green); letter-spacing:.08em; z-index:3; margin-top:1rem;
  }
  .hero-scroll-cta {
    position:absolute; bottom:120px; left:50%;
    transform:translateX(-50%); z-index:3;
    display:flex; flex-direction:column; align-items:center; gap:.5rem;
  }
  .scroll-line {
    width:1px; height:55px;
    background:linear-gradient(to bottom, transparent, var(--green));
    animation:scrollPulse 2s ease-in-out infinite;
  }
  @keyframes scrollPulse { 0%,100%{opacity:.3;} 50%{opacity:1;} }
  .scroll-text { font-size:.52rem; letter-spacing:.3em; color:var(--text-dim); text-transform:uppercase; }

  /* Divider */
  .section-divider {
    display:flex; align-items:center; gap:1.5rem;
    padding:0 2rem; max-width:900px; margin:0 auto; opacity:.22;
  }
  .section-divider-line { flex:1; height:1px; background:var(--green); }
  .section-divider-diamond { width:6px; height:6px; background:var(--green); transform:rotate(45deg); }

  /* Form sections */
  .form-section {
    padding:5rem 2rem 3rem; max-width:900px; margin:0 auto;
    position:relative; opacity:0; transform:translateY(40px);
    transition:opacity .8s ease, transform .8s ease;
  }
  .form-section.visible { opacity:1; transform:translateY(0); }

  .finisher-section {
    padding:6rem 2rem 8rem; max-width:900px; margin:0 auto;
    text-align:center; opacity:0; transform:translateY(40px);
    transition:opacity .8s ease, transform .8s ease;
  }
  .finisher-section.visible { opacity:1; transform:translateY(0); }

  .section-header { display:flex; align-items:flex-start; gap:2rem; margin-bottom:3rem; }
  .section-number {
    font-family:'Funnel Display', sans-serif; font-weight:800;
    font-size:5rem; color:rgba(88,235,0,0.07);
    line-height:1; flex-shrink:0; min-width:4rem;
  }
  .section-info { flex:1; }
  .section-tag { font-size:.58rem; letter-spacing:.38em; text-transform:uppercase; color:var(--green); margin-bottom:.5rem; }
  .section-title {
    font-family:'Funnel Display', sans-serif; font-weight:700;
    font-size:clamp(2rem, 5vw, 3.2rem); letter-spacing:.02em; line-height:.95; color:var(--white);
  }

  /* Intro */
  .intro-number {
    font-family:'Funnel Display', sans-serif; font-weight:800;
    font-size:9rem; color:rgba(88,235,0,0.04);
    position:absolute; top:2rem; right:0; line-height:1; user-select:none;
  }
  .intro-label {
    font-size:.58rem; letter-spacing:.38em; text-transform:uppercase; color:var(--green);
    margin-bottom:2rem; display:flex; align-items:center; gap:1rem;
  }
  .intro-label::before { content:''; display:block; width:36px; height:1px; background:var(--green); }
  .intro-text {
    font-family:'Funnel Display', sans-serif; font-weight:300;
    font-size:clamp(1.2rem, 3vw, 1.7rem); line-height:1.65; color:var(--white);
  }
  .intro-text em { color:var(--green); font-style:italic; }
  .intro-subtext {
    font-size:.78rem; line-height:1.9; color:var(--text-mid); margin-top:2rem;
    max-width:500px; border-left:1px solid rgba(88,235,0,0.2); padding-left:1.5rem;
  }

  /* Grid fields */
  .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
  .form-grid.single { grid-template-columns:1fr; }
  @media(max-width:600px) { .form-grid { grid-template-columns:1fr; } }
  .field-wrap { position:relative; }
  .field-wrap.span-2 { grid-column:1/-1; }

  label {
    display:block; font-size:.58rem; letter-spacing:.28em;
    text-transform:uppercase; color:var(--text-dim);
    margin-bottom:.5rem; transition:color .3s;
  }
  .field-wrap:focus-within label { color:var(--green); }

  input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea {
    width:100%; background:transparent; border:none;
    border-bottom:1px solid rgba(88,235,0,0.18);
    padding:.75rem 0; color:var(--white);
    font-family:'Open Sans', sans-serif; font-size:.85rem;
    outline:none; transition:border-color .3s, box-shadow .3s;
  }
  input:focus, textarea:focus {
    border-bottom-color:var(--green);
    box-shadow:0 2px 0 -1px rgba(88,235,0,0.12);
  }
  input::placeholder, textarea::placeholder { color:rgba(88,235,0,0.17); font-size:.8rem; font-style:italic; }
  textarea { resize:none; min-height:90px; }

  /* Choices */
  .choice-group { display:flex; flex-direction:column; gap:.6rem; }
  .choice-group.horizontal { flex-direction:row; flex-wrap:wrap; gap:.6rem; }

  .choice-item {
    display:flex; align-items:center; gap:.75rem; cursor:none;
    padding:.65rem 1rem; border:1px solid rgba(88,235,0,0.1);
    transition:border-color .3s, background .3s;
    font-size:.78rem; color:var(--text-mid); user-select:none; position:relative;
  }
  .choice-item:hover { border-color:rgba(88,235,0,0.35); color:var(--white); }
  .choice-item input { opacity:0; position:absolute; width:0; height:0; }
  .choice-dot {
    width:10px; height:10px; border:1px solid var(--green); border-radius:50%;
    flex-shrink:0; transition:background .3s, box-shadow .3s;
  }
  .choice-item input:checked ~ .choice-dot { background:var(--green); box-shadow:0 0 8px rgba(88,235,0,0.6); }
  .choice-item:has(input:checked) { border-color:rgba(88,235,0,0.4); background:rgba(88,235,0,0.04); }
  .choice-item:has(input:checked) .choice-label { color:var(--white); }
  .checkbox-dot { border-radius:0 !important; }

  /* Finisher */
  .finisher-title {
    font-family:'Funnel Display', sans-serif; font-weight:800;
    font-size:clamp(2.5rem,7vw,5rem); letter-spacing:.04em; color:var(--white); margin-bottom:.8rem;
  }
  .finisher-sub { font-style:italic; font-weight:300; color:var(--green); font-size:.95rem; margin-bottom:3rem; }

  /* Button */
  .btn-send {
    display:inline-flex; align-items:center; gap:1rem;
    background:transparent; border:1px solid var(--green);
    color:var(--green); font-family:'Open Sans', sans-serif;
    font-size:.68rem; font-weight:600; letter-spacing:.28em; text-transform:uppercase;
    padding:1.2rem 2.8rem; cursor:none; position:relative; overflow:hidden;
    transition:color .35s; box-shadow:0 0 20px rgba(88,235,0,0.07);
  }
  .btn-send::before {
    content:''; position:absolute; inset:0; background:var(--green);
    transform:scaleX(0); transform-origin:left;
    transition:transform .4s cubic-bezier(.77,0,.18,1);
  }
  .btn-send:hover::before { transform:scaleX(1); }
  .btn-send:hover { color:var(--black); box-shadow:0 0 30px rgba(88,235,0,0.28); }
  .btn-send span, .btn-send svg { position:relative; z-index:1; }
  .btn-send svg { animation:arrowPulse 2s ease-in-out infinite; }
  @keyframes arrowPulse { 0%,100%{transform:translateX(0);} 50%{transform:translateX(4px);} }

  .status-msg { margin-top:1.5rem; font-size:.72rem; letter-spacing:.15em; min-height:1.5rem; }
  .status-msg.success { color:var(--green); }
  .status-msg.error   { color:#eb4b00; }

  .footer {
    border-top:1px solid rgba(88,235,0,0.07);
    padding:2rem; text-align:center;
    font-size:.58rem; letter-spacing:.2em; color:var(--text-dim);
  }