/* Dunk By / Do It By — shared design system */

:root{
  --ink:#0a0a0a;
  --ink-soft:#161615;
  --paper:#f0f1ec;
  --white:#ffffff;
  --muted:#63636a;
  --muted-on-dark:rgba(255,255,255,.6);
  --accent:#ff4514;
  --accent-ink:#c72f00;
  --accent-dim:#ffe2d4;
  --volt:#ccff33;
  --line:rgba(10,10,10,.13);
  --line-dark:rgba(255,255,255,.14);
  --radius:3px;
  --radius-lg:6px;
  --max:1180px;
  --font-display:'Bebas Neue',Impact,'Arial Narrow',sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --font-mono:'Space Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.container{max-width:var(--max);margin:0 auto;padding:0 24px;}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:400;
  line-height:.98;
  letter-spacing:.01em;
  text-transform:uppercase;
  margin:0 0 18px;
}
h1{font-size:clamp(44px,7.4vw,92px);}
h2{font-size:clamp(32px,4.6vw,54px);}
h3{font-size:22px;}
h4{font-size:18px;letter-spacing:.02em;}
p{margin:0 0 16px;color:var(--muted);font-size:16px;}
strong{color:var(--ink);}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}

::selection{background:var(--ink);color:var(--volt);}

:focus-visible{outline:3px solid var(--volt);outline-offset:2px;}

/* ---------- Utility ---------- */
.mono{font-family:var(--font-mono);}
.eyebrow-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.eyebrow{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent-ink);
}
.eyebrow.on-dark{color:var(--volt);}
.arc-mark{flex:0 0 auto;width:26px;height:16px;display:block;}
.arc-mark path{fill:none;stroke:var(--accent);stroke-width:2.5;}
.on-dark .arc-mark path,
.arc-mark.on-dark path{stroke:var(--volt);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 28px;
  border-radius:var(--radius);
  font-family:var(--font-body);
  font-weight:700;
  font-size:14px;
  letter-spacing:.04em;
  text-transform:uppercase;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn-primary{background:var(--accent);color:var(--white);}
.btn-primary:hover{background:var(--accent-ink);}
.btn-outline{border-color:var(--ink);color:var(--ink);background:transparent;}
.btn-outline:hover{background:var(--ink);color:var(--volt);}
.btn-outline-light{border-color:rgba(255,255,255,.45);color:#fff;background:transparent;}
.btn-outline-light:hover{background:#fff;color:var(--ink);border-color:#fff;}
.btn-block{width:100%;}
.btn-arrow{transition:transform .15s ease;}
.btn:hover .btn-arrow{transform:translateX(3px);}

/* ---------- Header ---------- */
header.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(240,241,236,.92);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;gap:16px;}
.logo{display:flex;align-items:center;gap:11px;flex:0 0 auto;min-width:0;}
.logo .mark{
  width:36px;height:36px;border-radius:var(--radius);background:var(--ink);
  color:var(--volt);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:20px;flex:0 0 auto;
}
.logo .word{font-family:var(--font-display);font-size:19px;letter-spacing:.02em;line-height:1;text-transform:uppercase;white-space:nowrap;}
.logo .sub{
  font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:.08em;margin-top:2px;white-space:nowrap;
}
.nav-cta{display:none;}
nav.main-nav{display:flex;align-items:center;gap:30px;}
nav.main-nav a{
  font-family:var(--font-body);font-size:13px;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:.05em;position:relative;padding:4px 0;
}
nav.main-nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--accent);
  transition:right .18s ease;
}
nav.main-nav a:hover{color:var(--ink);}
nav.main-nav a:hover::after{right:0;}
.header-actions{display:flex;align-items:center;gap:12px;}
.nav-toggle{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:var(--ink);}

@media(max-width:860px){
  header.site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper);}
  nav.main-nav{
    position:fixed;top:65px;left:0;right:0;bottom:0;
    background:var(--paper);flex-direction:column;align-items:flex-start;
    padding:28px 24px;gap:22px;
    transform:translateX(100%);transition:transform .25s ease;
    overflow-y:auto;border-top:1px solid var(--line);
  }
  nav.main-nav.open{transform:translateX(0);}
  nav.main-nav a{font-size:20px;}
  .nav-cta{display:inline-flex;margin-top:10px;}
  .header-actions .btn{display:none;}
  .nav-toggle{display:block;}
}

/* ---------- Sections ---------- */
section{padding:100px 0;}
.section-dark{background:var(--ink);color:#fff;}
.section-dark p{color:rgba(255,255,255,.65);}
.section-dark h2{color:#fff;}
.section-head{max-width:660px;margin:0 auto 56px;text-align:center;}
.section-head .eyebrow-row{justify-content:center;}
.section-head p{font-size:18px;}
.section-head.left{text-align:left;margin-left:0;}
.section-head.left .eyebrow-row{justify-content:flex-start;}

.disclaimer-strip{
  background:var(--ink);color:rgba(255,255,255,.72);
  padding:16px 0;font-size:13px;text-align:center;font-family:var(--font-mono);
}
.disclaimer-strip a{color:var(--volt);font-weight:700;text-decoration:underline;}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:var(--ink);color:#fff;
  padding:80px 0 0;
}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:end;position:relative;z-index:1;padding-bottom:64px;}
.hero-arc{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9;pointer-events:none;}
.hero-arc path{
  fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:6 8;
}
.hero-arc .flight{
  stroke:var(--volt);stroke-width:2.5;stroke-dasharray:1400;stroke-dashoffset:1400;
  animation:draw 2.4s cubic-bezier(.25,.8,.35,1) .3s forwards;
}
.hero-arc .rim{fill:var(--volt);}
@keyframes draw{to{stroke-dashoffset:0;}}

.hero h1{margin-bottom:22px;}
.hero h1 em{font-style:normal;color:var(--volt);}
.hero .lead{font-size:19px;max-width:520px;color:rgba(255,255,255,.68);}
.hero-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;}
.hero-note{margin-top:20px;font-size:12.5px;color:rgba(255,255,255,.45);font-family:var(--font-mono);}

.scoreboard{
  background:var(--ink-soft);
  border:1px solid var(--line-dark);
  border-radius:var(--radius-lg);
  padding:28px;
}
.scoreboard h3{
  font-family:var(--font-mono);text-transform:uppercase;font-size:12px;letter-spacing:.1em;
  color:var(--muted-on-dark);margin-bottom:20px;font-weight:700;
}
.scoreboard-row{display:flex;justify-content:space-between;align-items:baseline;padding:13px 0;border-bottom:1px dashed var(--line-dark);}
.scoreboard-row:last-of-type{border-bottom:none;}
.scoreboard-label{color:rgba(255,255,255,.55);font-size:13px;text-transform:uppercase;letter-spacing:.04em;}
.scoreboard-value{font-family:var(--font-mono);font-weight:700;font-size:17px;color:#fff;}
.scoreboard-value.accent{color:var(--volt);}
.scoreboard-footer{
  margin-top:20px;padding-top:18px;border-top:1px solid var(--line-dark);
  font-size:12px;color:rgba(255,255,255,.4);font-family:var(--font-mono);
}

@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr;padding-bottom:48px;}
}

/* ---------- Steps ---------- */
.steps-wrap{position:relative;}
.steps-arc{position:absolute;top:34px;left:0;width:100%;height:60px;z-index:0;display:none;}
.steps-arc path{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:5 7;}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative;z-index:1;}
.step-card{padding:0;}
.step-num{
  width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--volt);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:16px;
  margin-bottom:20px;border:2px solid var(--ink);
}
.step-card h4{font-size:18px;margin-bottom:8px;text-transform:none;font-family:var(--font-body);font-weight:800;}
.step-card p{font-size:14.5px;margin:0;}

@media(min-width:961px){.steps-arc{display:block;}}
@media (max-width:960px){.steps{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.steps{grid-template-columns:1fr;}}

/* ---------- Features ---------- */
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.feature-card{
  padding:32px 28px;background:var(--paper);
  transition:background-color .15s ease;
}
.feature-card:hover{background:var(--white);}
.feature-tag{
  font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent-ink);margin-bottom:14px;display:block;
}
.feature-card h4{font-size:18px;margin-bottom:8px;text-transform:none;font-family:var(--font-body);font-weight:800;color:var(--ink);}
.feature-card p{font-size:14.5px;margin:0;color:var(--muted);}

@media (max-width:960px){.features-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.features-grid{grid-template-columns:1fr;}}

/* ---------- About / roadmap ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.about-list{list-style:none;margin:0;padding:0;}
.about-list li{
  display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--muted);
  align-items:flex-start;
}
.about-list li:last-child{border-bottom:none;}
.about-list .check{
  flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--volt);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;margin-top:1px;
}
.roadmap-card{
  background:var(--ink);color:#fff;border-radius:var(--radius-lg);padding:30px;
}
.roadmap-card h4{
  font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;
  margin-bottom:20px;color:rgba(255,255,255,.5);font-weight:700;
}
.roadmap-item{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line-dark);}
.roadmap-item:last-child{border-bottom:none;}
.roadmap-item span:last-child{font-size:14.5px;color:rgba(255,255,255,.85);}
.roadmap-tag{
  font-family:var(--font-mono);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  border:1px solid var(--line-dark);padding:5px 10px;border-radius:999px;color:rgba(255,255,255,.55);
  flex:0 0 auto;
}
.roadmap-tag.live{background:var(--volt);color:var(--ink);border-color:var(--volt);}

@media (max-width:860px){.about-grid{grid-template-columns:1fr;}}

/* ---------- Waitlist ---------- */
.waitlist-section{background:var(--ink);color:#fff;position:relative;overflow:hidden;}
.waitlist-arc{position:absolute;right:-8%;top:50%;transform:translateY(-50%);width:60%;max-width:640px;opacity:.14;pointer-events:none;}
.waitlist-arc path{fill:none;stroke:var(--volt);stroke-width:2;}
.waitlist-section .section-head{position:relative;z-index:1;}
.waitlist-form{max-width:540px;margin:0 auto;display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1;}
.waitlist-form input[type="email"]{
  flex:1 1 240px;
  padding:15px 18px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.05);color:#fff;font-size:15px;font-family:var(--font-body);
}
.waitlist-form input[type="email"]::placeholder{color:rgba(255,255,255,.4);}
.waitlist-form input[type="email"]:focus{outline:2px solid var(--volt);border-color:transparent;}
.waitlist-note{text-align:center;font-size:12.5px;color:rgba(255,255,255,.45);margin-top:18px;position:relative;z-index:1;font-family:var(--font-mono);}
.form-status{text-align:center;font-size:14px;margin-top:14px;min-height:20px;color:var(--volt);position:relative;z-index:1;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line);padding:24px 0;}
.faq-item summary{
  cursor:pointer;font-weight:700;font-size:17px;list-style:none;display:flex;justify-content:space-between;align-items:center;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:24px;color:var(--accent);font-weight:400;font-family:var(--font-display);}
.faq-item[open] summary::after{content:"\2013";}
.faq-item p{margin-top:12px;margin-bottom:0;}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:rgba(255,255,255,.7);padding:64px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px;}
.footer-brand .logo .word,.footer-brand .logo .sub{color:#fff;}
.footer-brand .logo .mark{background:var(--volt);color:var(--ink);}
.footer-brand p{color:rgba(255,255,255,.5);font-size:14px;max-width:280px;margin-top:14px;}
footer h5{
  font-family:var(--font-mono);color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px;
}
footer ul{list-style:none;margin:0;padding:0;}
footer li{margin-bottom:11px;}
footer a{font-size:14.5px;color:rgba(255,255,255,.6);}
footer a:hover{color:var(--volt);}
.footer-bottom{
  border-top:1px solid var(--line-dark);padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:12.5px;color:rgba(255,255,255,.4);font-family:var(--font-mono);
}

@media (max-width:760px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.footer-grid{grid-template-columns:1fr;}}

/* ---------- Page hero (contact / legal) ---------- */
.page-hero{padding:72px 0 28px;text-align:center;background:var(--ink);color:#fff;}
.page-hero .eyebrow-row{justify-content:center;}
.page-hero h1{color:#fff;}
.page-hero p{max-width:560px;margin:0 auto;font-size:17px;color:rgba(255,255,255,.65);}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start;}
.contact-card{background:var(--ink);color:#fff;border-radius:var(--radius-lg);padding:32px;}
.contact-card h4{
  font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;
  color:rgba(255,255,255,.5);margin-bottom:20px;font-weight:700;
}
.contact-row{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line-dark);}
.contact-row:last-child{border-bottom:none;}
.contact-icon{
  width:38px;height:38px;border-radius:var(--radius);background:rgba(255,255,255,.08);color:var(--volt);
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:16px;
}
.contact-row strong{display:block;font-size:15px;margin-bottom:2px;color:#fff;}
.contact-row span{font-size:14.5px;color:rgba(255,255,255,.6);}
.contact-row a{color:#fff;font-weight:600;}
.contact-row a:hover{color:var(--volt);}

form.contact-form{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px;}
.form-row{margin-bottom:18px;}
.form-row label{display:block;font-size:13px;font-weight:700;margin-bottom:8px;text-transform:uppercase;letter-spacing:.03em;}
.form-row input,.form-row select,.form-row textarea{
  width:100%;padding:13px 14px;border-radius:var(--radius);border:1px solid var(--line);
  font-family:inherit;font-size:15px;color:var(--ink);background:var(--white);
}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:2px solid var(--accent);border-color:transparent;}
.form-row textarea{resize:vertical;min-height:130px;}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-fineprint{font-size:12.5px;color:var(--muted);margin-top:14px;}

@media (max-width:860px){.contact-grid{grid-template-columns:1fr;} .form-two{grid-template-columns:1fr;}}

/* ---------- Legal (privacy / terms) ---------- */
.legal-hero{padding:64px 0 32px;background:var(--ink);color:#fff;border-bottom:1px solid var(--line-dark);}
.legal-hero .eyebrow-row{justify-content:flex-start;}
.legal-hero h1{color:#fff;}
.legal-hero .updated{font-family:var(--font-mono);font-size:13px;color:rgba(255,255,255,.5);}

.legal-layout{display:grid;grid-template-columns:260px 1fr;gap:56px;padding:56px 0 100px;align-items:start;}
.toc{position:sticky;top:96px;border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;background:var(--white);}
.toc h4{
  font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);
  margin:0 0 14px;font-weight:700;
}
.toc ol{margin:0;padding-left:18px;font-size:14px;}
.toc li{margin-bottom:10px;}
.toc a{color:var(--ink);text-decoration:none;font-weight:600;}
.toc a:hover{color:var(--accent-ink);text-decoration:underline;}

.legal-body h2{font-family:var(--font-body);text-transform:none;font-weight:800;font-size:23px;letter-spacing:-0.01em;margin:46px 0 14px;scroll-margin-top:100px;}
.legal-body h2:first-of-type{margin-top:0;}
.legal-body p{font-size:15.5px;margin:0 0 14px;}
.legal-body ul{font-size:15.5px;margin:0 0 14px;padding-left:22px;color:var(--muted);}
.legal-body li{margin-bottom:8px;}
.callout{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);padding:18px 20px;font-size:14.5px;margin:24px 0;}
.callout strong{color:var(--ink);}
.warn{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);padding:20px 22px;margin:20px 0;}
.warn strong{color:var(--ink);display:block;margin-bottom:6px;font-size:15px;font-family:var(--font-body);text-transform:none;}
.warn p{margin:0;font-size:14.5px;}

@media (max-width:900px){
  .legal-layout{grid-template-columns:1fr;}
  .toc{position:static;}
}

.footer-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;align-items:center;font-family:var(--font-mono);}
.footer-row a{color:rgba(255,255,255,.65);margin-left:18px;}
.footer-row a:hover{color:var(--volt);}
