/* AquaScan public site — layout on top of brand tokens (tokens.css) */

*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{
  background:var(--aq-deep);color:var(--aq-white);
  font-family:var(--font-brand);font-size:var(--fs-body);line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--aq-cyan);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1320px;margin:0 auto;padding:0 var(--sp-6)}

/* ---- header ---- */
.site-head{
  position:sticky;top:0;z-index:20;
  display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);
  padding:var(--sp-4) var(--sp-6);
  background:rgba(11,22,34,.86);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--aq-line);
  transition:background .3s,border-color .3s;
}
.site-head .brand img{height:22px;display:block;transition:opacity .3s}
.site-head nav{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap}
.site-head nav a{color:var(--aq-ice);font-size:.92rem}
.site-head nav a:hover{color:var(--aq-white);text-decoration:none}
/* overlay variant: fixed + transparent over the hero */
.site-head.overlay{position:fixed;left:0;right:0;top:0}
.site-head.overlay:not(.scrolled){background:transparent;border-color:transparent;backdrop-filter:none}
.nav-cta{
  font-size:.88rem;font-weight:var(--fw-semibold);
  background:var(--aq-cyan);color:var(--aq-abyss) !important;
  border-radius:var(--r-pill);padding:9px 20px;white-space:nowrap;transition:.2s;
}
.nav-cta:hover{text-decoration:none;box-shadow:0 4px 18px rgba(58,239,255,.3)}
.partner-link{
  font-size:var(--fs-label);font-weight:var(--fw-semibold);letter-spacing:var(--track-label);
  text-transform:uppercase;color:var(--aq-ice) !important;
  border:1px solid var(--aq-line);border-radius:var(--r-pill);
  padding:7px 16px;transition:.2s;white-space:nowrap;
}
.partner-link:hover{color:var(--aq-cyan) !important;border-color:var(--aq-cyan);text-decoration:none}

/* ---- full-bleed video hero ---- */
.hero-video{
  position:relative;height:min(96vh, 1060px);min-height:640px;
  display:flex;align-items:flex-end;overflow:hidden;background:var(--aq-deep);
}
.hero-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-fallback{
  position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;
  animation:kenburns 36s ease-in-out infinite alternate;
}
@keyframes kenburns{
  from{transform:scale(1) translateX(0)}
  to{transform:scale(1.09) translateX(-1.5%)}
}
@media (prefers-reduced-motion: reduce){
  .hero-fallback{animation:none}
}
.hero-video::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(11,22,34,.42) 0%, rgba(11,22,34,.05) 35%, rgba(11,22,34,.82) 100%);
}
.hero-content{position:relative;z-index:2;width:100%;padding-bottom:var(--sp-7)}
.hero-content .eyebrow{margin-bottom:var(--sp-5)}
.hero-split{
  display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-8);
  margin-bottom:var(--sp-6);flex-wrap:wrap;
}
.hero-split h1{flex:0 1 auto}
.hero-side{margin-left:auto;padding-bottom:8px}
.hero-split h1{
  font-size:clamp(2.6rem, 5.6vw, 5.4rem);font-weight:var(--fw-semibold);
  text-transform:uppercase;letter-spacing:.01em;line-height:1.02;max-width:14ch;
  text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.hero-side{color:var(--aq-ice);max-width:38ch;font-size:1rem;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.hero-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap}

/* mono eyebrow, Saildrone-style brackets */
.eyebrow{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:.82rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--aq-white);margin-bottom:var(--sp-5);
}
.eyebrow::first-letter{color:var(--aq-cyan)}
.coords{
  position:absolute;right:24px;bottom:34px;z-index:2;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:1.05rem;letter-spacing:.2em;color:var(--aq-cyan);opacity:.85;
}

.crumb{
  font-size:var(--fs-label);font-weight:var(--fw-semibold);letter-spacing:2px;
  text-transform:uppercase;color:var(--aq-cyan);
}
.btn{
  display:inline-block;font-weight:var(--fw-semibold);font-size:.95rem;
  background:var(--aq-cyan);color:var(--aq-abyss);
  border-radius:var(--r-pill);padding:13px 28px;transition:.2s;border:none;cursor:pointer;
}
.btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 6px 22px rgba(58,239,255,.25)}
.btn.ghost{background:transparent;color:var(--aq-white);border:1px solid rgba(255,255,255,.4)}
.btn.ghost:hover{color:var(--aq-cyan);border-color:var(--aq-cyan);box-shadow:none}

/* ---- stats strip (post-hero) ---- */
.stats-strip{border-bottom:1px solid var(--aq-line);padding:var(--sp-7) 0}
.stats-strip.no-border{border-bottom:none;padding-bottom:var(--sp-5)}
.proof-band{padding:var(--sp-6) 0;border-bottom:1px solid var(--aq-line)}
.proof-band .marquee{margin-top:0;border-top:none;border-bottom:none;padding:var(--sp-4) 0}
.stats-row{display:flex;gap:var(--sp-6) var(--sp-8);flex-wrap:wrap;align-items:flex-end;justify-content:space-between}
.stat b{
  display:block;font-size:clamp(2.1rem, 3.2vw, 3.2rem);font-weight:600;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  color:var(--aq-cyan);letter-spacing:.06em;line-height:1.05;
}
.stat span{color:var(--aq-ice);font-size:.92rem;opacity:.85}
.stat-note{color:var(--aq-cyan);font-size:.95rem;font-weight:var(--fw-semibold)}

/* ---- statement (h1) ---- */
.statement{padding:calc(var(--sp-8) + 40px) 0}
.statement h1{
  font-size:clamp(2.8rem, 6vw, 5.2rem);font-weight:var(--fw-semibold);
  letter-spacing:var(--track-display);line-height:1.04;max-width:16ch;
  margin-bottom:var(--sp-5);
}
.statement p{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--aq-ice);max-width:52ch}

/* ---- generic sections ---- */
section{padding:calc(var(--sp-8) + 24px) 0}
section.tint{
  background:linear-gradient(180deg,
    rgba(10,77,104,0) 0%, rgba(10,77,104,.16) 120px,
    rgba(10,77,104,.16) calc(100% - 120px), rgba(10,77,104,0) 100%);
}
.sec-no{
  font-size:var(--fs-label);font-weight:var(--fw-semibold);letter-spacing:2px;
  text-transform:uppercase;color:var(--aq-cyan);margin-bottom:var(--sp-5);
}
h2{
  font-size:clamp(1.9rem, 2.6vw, 2.5rem);font-weight:var(--fw-semibold);
  margin-bottom:var(--sp-4);letter-spacing:var(--track-display);max-width:26ch;line-height:1.15;
}
.lead{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--aq-ice);max-width:56ch}
.sec-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-8);align-items:start}

/* numbered steps */
.steps{list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:var(--sp-4);padding:0}
.steps li{position:relative;padding-left:56px;color:var(--aq-ice);font-size:.97rem;counter-increment:step}
.steps li b{color:var(--aq-white);display:block;margin-bottom:2px}
.steps li::before{
  content:counter(step, decimal-leading-zero);
  position:absolute;left:0;top:2px;
  font-size:.8rem;font-weight:var(--fw-semibold);letter-spacing:1px;color:var(--aq-cyan);
  border:1px solid rgba(58,239,255,.4);border-radius:var(--r-pill);padding:4px 9px;
}

.diagram{
  margin-top:var(--sp-7);background:#081019;border:1px solid var(--aq-line);
  border-radius:var(--r-lg);padding:var(--sp-5);overflow-x:auto;
}
.diagram svg{display:block;width:100%;height:auto;min-width:640px}

/* hardware */
.spec-list{display:flex;flex-direction:column;gap:var(--sp-4)}
.spec-list dt{font-weight:var(--fw-semibold);color:var(--aq-white);margin-bottom:2px}
.spec-list dd{color:var(--aq-ice);font-size:.95rem}
.photo-strip{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--sp-5);margin-top:var(--sp-7)}
.photo-strip figure{margin:0}
.photo-strip img{
  width:100%;height:440px;object-fit:cover;display:block;
  border-radius:var(--r-lg);border:1px solid var(--aq-line);
}
.next-head{margin-top:calc(var(--sp-8) + 16px)}
.next-head h3{
  font-size:1.5rem;font-weight:var(--fw-semibold);letter-spacing:var(--track-display);
  margin-bottom:var(--sp-2);
}
.next-head p{color:var(--aq-ice);font-size:.97rem}
.spec-badges{
  list-style:none;padding:var(--sp-5) 0 0;margin-top:var(--sp-4);
  display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-4);
  border-top:1px solid var(--aq-line);
}
.spec-badges b{
  display:block;font-size:1.55rem;font-weight:var(--fw-semibold);
  color:var(--aq-cyan);letter-spacing:var(--track-display);
}
.spec-badges span{
  font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;
  color:var(--aq-ice);opacity:.7;
}
.model-wrap{position:relative}
model-viewer{
  width:100%;height:520px;margin-top:var(--sp-5);
  background:radial-gradient(ellipse at 50% 60%, #0A4D68 0%, #081019 75%);
  border-radius:var(--r-lg);border:1px solid var(--aq-line);
  --progress-bar-color:var(--aq-cyan);
}

/* measure table */
.measure-table{margin-top:var(--sp-7);border-top:1px solid var(--aq-line)}
.mrow{
  display:grid;grid-template-columns:220px 1fr 280px;gap:var(--sp-5);
  padding:var(--sp-4) 0;border-bottom:1px solid var(--aq-line);
  color:var(--aq-ice);font-size:.97rem;align-items:baseline;
}
.mrow b{color:var(--aq-white)}
.mrow div:last-child{font-size:var(--fs-label);letter-spacing:1px;text-transform:uppercase;opacity:.75}
.mhead{font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--aq-ice);opacity:.6}
.mhead div:last-child{opacity:1}

/* full-bleed photo bands */
.band{position:relative;overflow:hidden;min-height:420px;display:flex;align-items:flex-end}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.92)}
.band::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(11,22,34,.55) 0%, rgba(11,22,34,.08) 40%, rgba(11,22,34,.75) 100%);
}
.band-inner{position:relative;z-index:2;width:100%;padding-bottom:var(--sp-7)}
.band-inner p{
  font-size:clamp(1.4rem, 2.8vw, 2rem);font-weight:var(--fw-semibold);
  letter-spacing:var(--track-display);max-width:28ch;text-shadow:0 2px 18px rgba(0,0,0,.45);
}
.band-credit{
  position:absolute;right:14px;bottom:10px;z-index:2;
  font-size:.68rem;color:var(--aq-ice);opacity:.55;
}
/* thesis band: statement over deep water */
.band.thesis{min-height:560px;align-items:center}
.band.thesis .band-inner{padding:var(--sp-8) 0}
.band.thesis .crumb{margin-bottom:var(--sp-4)}
.band.thesis h2{
  font-size:clamp(2.4rem, 4.6vw, 4rem);max-width:18ch;line-height:1.08;margin-bottom:var(--sp-4);
  text-shadow:0 2px 24px rgba(0,0,0,.5);
}
.band.thesis p{color:var(--aq-ice);font-size:var(--fs-lead);line-height:var(--lh-lead);max-width:50ch;text-shadow:0 1px 12px rgba(0,0,0,.5)}

/* light section (Saildrone contrast flip) */
section.light{background:#E8EFF2;color:var(--aq-abyss)}
section.light .eyebrow{color:var(--aq-abyss)}
section.light .eyebrow::first-letter{color:#0073A3}
section.light h2{color:#002E41}
section.light .lead{color:#33505e}
section.light .app{
  background:#F6FAFB;border:1px solid rgba(0,46,65,.1);box-shadow:0 4px 14px rgba(13,27,42,.06);
  position:relative;padding-top:56px;
}
section.light .app h3{color:#002E41}
section.light .app p{color:#33505e}
.card-no{
  position:absolute;top:18px;left:20px;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:.8rem;letter-spacing:.12em;color:#0073A3;
}
section.light .pilot-offer{
  border:1px solid rgba(0,115,163,.4);background:rgba(0,115,163,.07);
}
section.light .pilot-offer p{color:#002E41}
section.light .btn.ghost{color:#002E41;border-color:rgba(0,46,65,.35)}
section.light .btn.ghost:hover{color:#0073A3;border-color:#0073A3}

/* applications */
.apps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin-top:var(--sp-6)}
.app{background:var(--aq-teal-800);border-radius:var(--r-md);padding:var(--sp-5);box-shadow:var(--sh-1)}
.app h3{font-size:1.05rem;font-weight:var(--fw-semibold);margin-bottom:var(--sp-2)}
.app p{color:var(--aq-ice);font-size:.93rem}
.pilot-offer{
  margin-top:var(--sp-6);display:flex;align-items:center;justify-content:space-between;
  gap:var(--sp-5);flex-wrap:wrap;
  border:1px solid rgba(58,239,255,.35);border-radius:var(--r-lg);
  background:var(--aq-cyan-soft);padding:var(--sp-6);
}
.pilot-offer p{max-width:58ch}
.offer-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap;align-items:center}

/* news cards */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin-top:var(--sp-6)}
.news-card{
  display:block;background:var(--aq-teal-800);border-radius:var(--r-md);
  overflow:hidden;box-shadow:var(--sh-1);transition:.2s;color:inherit;
}
.news-card:hover{transform:translateY(-3px);box-shadow:var(--sh-2);text-decoration:none}
.news-card img{width:100%;height:190px;object-fit:cover;display:block}
.news-card > div{padding:var(--sp-4) var(--sp-5) var(--sp-5)}
.news-card time{
  font-size:var(--fs-label);font-weight:var(--fw-semibold);letter-spacing:var(--track-label);
  text-transform:uppercase;color:var(--aq-cyan);
}
.news-card h3{font-size:1.02rem;font-weight:var(--fw-semibold);color:var(--aq-white);margin:var(--sp-2) 0}
.news-card p{color:var(--aq-ice);font-size:.9rem}

/* slim research strip */
.pub-strip{padding:var(--sp-6) 0;border-top:1px solid var(--aq-line);border-bottom:1px solid var(--aq-line)}
.pub-strip-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}
.pub-strip-row p{color:var(--aq-ice);max-width:64ch}

/* partner marquee */
.marquee{
  margin-top:var(--sp-6);overflow:hidden;
  border-top:1px solid var(--aq-line);border-bottom:1px solid var(--aq-line);
  padding:var(--sp-6) 0;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee-track{display:flex;width:max-content;animation:marquee 36s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-set{display:flex;align-items:center;gap:var(--sp-8);padding-right:var(--sp-8)}
.marquee-set img{
  width:auto;filter:brightness(0) invert(1);opacity:.7;
}
.marquee-set .pw{
  font-weight:var(--fw-semibold);letter-spacing:3px;text-transform:uppercase;
  color:#fff;opacity:.7;font-size:.95rem;white-space:nowrap;
}
.eu-item{display:flex;align-items:center;gap:var(--sp-3);opacity:.7;white-space:nowrap}

.eu-item > span{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;line-height:1.35}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.marquee-track{animation:none}}

/* faq */
.faq{margin-top:var(--sp-6);max-width:880px}
.faq details{border-top:1px solid var(--aq-line)}
.faq details:last-child{border-bottom:1px solid var(--aq-line)}
.faq summary{
  cursor:pointer;list-style:none;padding:var(--sp-4) 0;
  font-weight:var(--fw-semibold);display:flex;justify-content:space-between;gap:var(--sp-4);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--aq-cyan);font-weight:400;font-size:1.2rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--aq-ice);font-size:.95rem;max-width:70ch;padding-bottom:var(--sp-4)}

/* newsletter */
.newsletter{border-top:1px solid var(--aq-line);background:linear-gradient(180deg, rgba(10,77,104,.14), rgba(10,77,104,0))}
.nl-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap}
.nl-row h2{margin-bottom:var(--sp-2)}
.nl-row p{color:var(--aq-ice)}
.nl-form{display:flex;gap:var(--sp-3);flex-wrap:wrap}
.nl-form input[type=email]{
  font:inherit;font-size:.95rem;color:var(--aq-white);
  background:rgba(255,255,255,.06);border:1px solid var(--aq-line);border-radius:var(--r-pill);
  padding:12px 22px;min-width:300px;outline:none;transition:.2s;
}
.nl-form input[type=email]:focus{border-color:var(--aq-cyan)}
.nl-form input[type=email]::placeholder{color:rgba(205,232,234,.5)}

/* contact + footer */
.contact{border-top:1px solid var(--aq-line)}
.contact-grid{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}
.contact p{color:var(--aq-ice)}
footer{border-top:1px solid var(--aq-line);padding:var(--sp-6) 0 var(--sp-5)}
.foot-grid{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-6);flex-wrap:wrap}
.foot-fund{display:flex;align-items:center;gap:var(--sp-4)}
.foot-fund img{height:44px;width:auto;opacity:.9}
.foot-fund svg{border-radius:3px;flex:0 0 auto}
.foot-fund p{font-size:.8rem;color:var(--aq-ice);opacity:.8;line-height:1.4}
.foot-links{display:flex;gap:var(--sp-5);flex-wrap:wrap}
.foot-links a{color:var(--aq-ice);font-size:.9rem}
.foot-links a:hover{color:var(--aq-cyan)}
.foot-line{text-align:center;color:var(--aq-ice);opacity:.55;font-size:.82rem;margin-top:var(--sp-6)}

/* research page */
.paper-head{padding-top:var(--sp-7)}
.paper-head h1{
  font-size:clamp(1.9rem, 3.6vw, 2.6rem);font-weight:var(--fw-semibold);
  letter-spacing:var(--track-display);line-height:1.15;max-width:26ch;margin-bottom:var(--sp-4);
}
.byline{color:var(--aq-ice);margin-bottom:var(--sp-2)}
.byline a{color:var(--aq-ice);text-decoration:underline}
.abstract{max-width:72ch}
.abstract p{margin-bottom:var(--sp-4);color:var(--aq-ice)}
.abstract p:first-child{color:var(--aq-white)}
.pub-links{display:flex;gap:var(--sp-3);flex-wrap:wrap}
.pub-links a{
  display:inline-flex;align-items:center;font-size:.88rem;font-weight:var(--fw-semibold);
  border:1px solid var(--aq-cyan);border-radius:var(--r-pill);padding:8px 18px;transition:.2s;
}
.pub-links a:hover{background:var(--aq-cyan-soft);text-decoration:none}
.bibtex-wrap{position:relative;max-width:820px}
.copy-btn{
  position:absolute;top:12px;right:12px;z-index:2;
  font:inherit;font-size:.8rem;font-weight:var(--fw-semibold);
  color:var(--aq-cyan);background:var(--aq-cyan-soft);
  border:1px solid var(--aq-cyan);border-radius:var(--r-pill);
  padding:6px 16px;cursor:pointer;transition:.2s;
}
.copy-btn:hover{background:rgba(58,239,255,.22)}
pre.bibtex{
  background:#081019;border:1px solid var(--aq-line);border-radius:var(--r-md);
  padding:var(--sp-5);overflow-x:auto;font-size:.85rem;line-height:1.5;
  color:var(--aq-ice);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}

@media (max-width:900px){
  .sec-grid{grid-template-columns:1fr;gap:var(--sp-6)}
  .spec-badges{grid-template-columns:repeat(3,1fr)}
  .photo-strip{grid-template-columns:1fr}
  .photo-strip img{height:280px}
  .mrow{grid-template-columns:1fr;gap:var(--sp-1)}
  .apps,.news-grid{grid-template-columns:1fr}
  .site-head{padding:var(--sp-3) var(--sp-4)}
  .site-head nav{gap:var(--sp-4)}
  .site-head nav a:not(.nav-cta):not(.partner-link){display:none}
  .site-head.overlay:not(.scrolled) .brand img{opacity:1}
  .hero-img{min-height:70vh;margin-top:0}
  model-viewer{height:400px}
  .nl-form input[type=email]{min-width:0;flex:1}
}
