/* Core styles — root level files only (style.css) */
/* Ocean-inspired gradients, wave dividers, responsive layout, and smooth reveals */

:root{
  --deep-blue: #052f4f;
  --teal: #0aa3a3;
  --soft-teal: #53c0bf;
  --white: #ffffff;
  --muted: #e9f6f7;
  --radius: 12px;
  --container-width: 1100px;
  --transition: 300ms cubic-bezier(.22,.9,.3,1);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--deep-blue);
  background: linear-gradient(180deg,#eaf6fb 0%, #f8feff 100%);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.6;
}

/* container */
.container{
  max-width:var(--container-width);
  padding:24px;
  margin:0 auto;
}

/* header */
.site-header{
  position:sticky;
  top:0;
  z-index:40;
  background:linear-gradient(180deg, rgba(255,255,255,0.85), rgba(255,255,255,0.6));
  backdrop-filter: blur(6px);
  box-shadow: 0 6px 18px rgba(5,47,79,0.06);
}

.nav-container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.logo{
  font-weight:700;
  color:var(--deep-blue);
  text-decoration:none;
  font-size:18px;
}

/* nav */
.site-nav{
  display:flex;
  gap:14px;
  align-items:center;
}

.site-nav a{
  color:var(--deep-blue);
  text-decoration:none;
  padding:10px 14px;
  border-radius:10px;
  transition: background var(--transition), color var(--transition), transform var(--transition);
}

.site-nav a:hover{
  background:linear-gradient(90deg,var(--soft-teal),var(--teal));
  color:var(--white);
  transform:translateY(-2px);
}

/* mobile toggle */
.mobile-toggle{
  display:none;
  background:none;
  border:none;
  font-size:20px;
  padding:8px;
}

/* hero */
.hero{
  padding:56px 0;
  color:var(--white);
  min-height:220px;
  display:flex;
  align-items:center;
  position:relative;
}

.gradient-bg{
  background: linear-gradient(135deg,var(--deep-blue) 0%, #0f6f86 45%, var(--teal) 100%);
  color:var(--white);
  border-radius:16px;
  margin:28px;
  padding:32px;
  box-shadow: 0 10px 30px rgba(5,47,79,0.12);
}

.lede{opacity:0.95}

/* article */
.article-card{
  background:var(--white);
  border-radius:12px;
  padding:28px;
  margin:28px 0;
  box-shadow: 0 8px 20px rgba(5,47,79,0.06);
}

.article-card h2, .article-card h3{
  color:var(--deep-blue);
}

.article-card code{
  background:#f1f7f9;
  padding:3px 6px;
  border-radius:6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", monospace;
  font-size:90%;
}

/* wave dividers */
.wave-divider svg{display:block;width:100%;height:80px}
.top-wave svg path, .bottom-wave svg path{
  fill: rgba(255,255,255,0.95);
  transition: d 400ms var(--transition);
}

/* footer */
.site-footer{
  padding:28px 0 48px;
  color:var(--deep-blue);
}

.footer-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}

/* content reveal animation */
.reveal{
  opacity:0;
  transform:translateY(18px) scale(0.995);
  transition: opacity 600ms var(--transition), transform 600ms var(--transition);
}

.reveal.visible{
  opacity:1;
  transform:translateY(0) scale(1);
}

/* responsive */
@media (max-width:900px){
  .container{padding:18px}
  .site-nav a{padding:8px 10px}
  .mobile-toggle{display:inline-block}
  .site-nav{gap:6px}
  .nav-container{align-items:center}
  .site-nav{position: absolute; right:16px; top:64px; background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,255,255,0.98)); border-radius:10px; padding:10px; display:flex; flex-direction:column; box-shadow:0 8px 24px rgba(5,47,79,0.08)}
  .site-nav.hidden{display:none}
}

/* article lists and form styling */
.contact-form label{display:block;margin-bottom:12px}
.contact-form input, .contact-form textarea{
  width:100%; padding:10px; border-radius:8px; border:1px solid #dceff0; font-size:15px;
}
.form-actions{display:flex; justify-content:flex-end}
button{cursor:pointer; background:linear-gradient(90deg,var(--teal),var(--soft-teal)); border:none; color:var(--white); padding:10px 16px; border-radius:8px; font-weight:600; transition:transform var(--transition)}
button:hover{transform:translateY(-3px)}

/* small helpers */
.note{font-size:13px;color:#567d87}

/* ensure footer nav stacks on small screens */
@media (max-width:520px){
  .footer-inner{flex-direction:column; gap:8px; text-align:center}
}
