/* Base */
:root{
  --bg:#0b1b2a;        /* dark blue-ish */
  --bg-2:#0a1624;
  --panel:#0f2236;
  --text:#ffffff;
  --muted:#cdd7e1cc;
  --edge:#ffffff1a;
  --accent:#10b981;    /* green accent */
  --accent-2:#34d399;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--text); background:var(--bg);
}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}

/* Layout helpers */
.container{width:100%; max-width:1200px; margin-inline:auto; padding-inline:1rem}
.section{padding: clamp(56px, 8vw, 100px) 0}
.section-contrast{background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%)}
.section-header h2{margin:0 0 .25rem; font-size: clamp(1.8rem, 2.6vw, 2.4rem)}
.section-header .muted{color:var(--muted); margin:0}

/* Header */
.site-header{
  position: sticky; top:0; z-index:50;
  backdrop-filter: saturate(1.2) blur(8px);
  background: color-mix(in oklab, var(--bg) 85%, transparent);
  border-bottom:1px solid var(--edge);
}
.header-inner{height:64px; display:flex; align-items:center; justify-content:space-between; gap:.75rem}
.brand{display:flex; align-items:center; gap:.6rem; font-weight:700}
.brand-mark{
  display:inline-grid; place-items:center;
  width:36px; height:36px; border-radius:8px;
  background: var(--accent); color:#0b1b2a; font-weight:900;
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--accent) 30%, transparent), 0 6px 18px color-mix(in oklab, var(--accent) 30%, transparent);
}
.brand-name{letter-spacing:.2px}

.desktop-nav{display:none; gap:1rem; align-items:center}
.desktop-nav a, .desktop-nav .linkish{
  padding:.5rem .75rem; border:1px solid transparent; border-radius:.5rem; color:#e7f6f1;
}
.desktop-nav a:hover, .desktop-nav .linkish:hover{
  border-color: color-mix(in oklab, var(--accent) 40%, transparent);
  background: color-mix(in oklab, var(--accent) 12%, transparent);
  color:white;
}

/* Mobile nav */
.mobile-toggle{
  width:42px; height:36px; border:1px solid var(--edge); border-radius:.5rem; background:#ffffff08; cursor:pointer;
  display:grid; place-items:center; gap:4px; padding:6px;
}
.mobile-toggle .bar{width:20px; height:2px; background:#ffffffcc}
.mobile-drawer{
  position:fixed; inset:0; background: #0b1b2acc; backdrop-filter: blur(6px);
  transform: translateX(100%); transition: transform .28s ease; z-index:49;
}
.mobile-drawer.open{transform: translateX(0)}
.mobile-nav{
  position:absolute; right:0; top:0; height:100%; width:min(78vw, 320px); background:var(--bg-2);
  border-left:1px solid var(--edge); padding:1rem; display:flex; flex-direction:column; gap:.5rem;
}
.mobile-nav a, .mobile-nav .btn{padding:.75rem .9rem; border-radius:.6rem}
.mobile-nav a:hover{background:#ffffff10}

/* Show desktop nav at >= 900px */
@media (width >= 900px){
  .desktop-nav{display:flex}
  .mobile-toggle{display:none}
}

/* Hero */
.hero{
  position:relative; min-height: clamp(520px, 80vh, 820px);
  background-size: cover; background-position: center;
  border-bottom:1px solid var(--edge);
}
.hero::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 0%, rgba(9,20,35,.35) 50%, rgba(9,20,35,.75) 100%);
}
.hero-inner{position:relative; z-index:1; padding-top: clamp(80px, 12vh, 140px); max-width:780px}
.pill{
  display:inline-flex; align-items:center; gap:.5rem;
  background: #10b9811a; color:#bbf7d0; border:1px solid #34d39966;
  padding:.35rem .65rem; border-radius:999px; font-size:.9rem;
}
.pill-dot{width:8px; height:8px; border-radius:50%; background:var(--accent)}
.hero-title{margin:.75rem 0 0; font-size: clamp(2.2rem, 6vw, 4rem); line-height:1.05}
.hero-subtitle{color:var(--muted); font-size: clamp(1rem, 2.2vw, 1.25rem)}
.hero-ctas{margin-top:1.1rem; display:flex; gap:.75rem; flex-wrap:wrap}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border-radius:.6rem; padding:.7rem 1rem; font-weight:600; cursor:pointer; border:1px solid transparent}
.btn-primary{background:var(--accent); color:#0b1b2a; border-color: color-mix(in oklab, var(--accent) 50%, transparent)}
.btn-primary:hover{background:var(--accent-2)}
.btn-outline{background:#ffffff10; border-color:#ffffff33; color:#ffffff}
.btn-outline:hover{background:#ffffff18}
.btn-link{padding:.25rem .25rem; border:none; background:transparent; color:#a7f3d0}
.w-full{width:100%}

/* Cards */
.cards{display:grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap:1rem; margin-top:1rem}
@media (width >= 700px){ .cards{grid-template-columns: repeat(2, 1fr)} }
@media (width >= 1000px){ .cards{grid-template-columns: repeat(3, 1fr)} }
.card{
  background:var(--panel); border:1px solid var(--edge); border-radius:.9rem; padding:1rem; box-shadow: var(--shadow);
}
.card:hover{border-color: color-mix(in oklab, var(--accent) 35%, transparent)}
.card h3{margin:.25rem 0 .25rem; font-size:1.15rem}
.card p{margin:0; color:var(--muted)}
.link{display:inline-flex; align-items:center; gap:.4rem; margin-top:.6rem; color:#a7f3d0}
.link:hover{color:white}

/* Grid 2 */
.grid-2{display:grid; gap: clamp(1rem, 3vw, 2rem)}
@media (width >= 900px){ .grid-2{grid-template-columns: 1fr 1fr} }

/* Bullets */
.bullets{margin:0; padding:0; list-style:none; display:grid; gap:.65rem; color:#daedf7}
.bullets .dot{display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--accent); margin-right:.5rem}

/* Media frame */
.media-frame{position:relative; margin:0}
.media-img{width:100%; height:100%; object-fit:cover; border-radius:.9rem; border:1px solid var(--edge); box-shadow: var(--shadow)}
.badge{
  position:absolute; right:-10px; bottom:-10px; background:var(--accent); color:#0b1b2a;
  padding:.4rem .6rem; border-radius:.6rem; border:1px solid color-mix(in oklab, var(--accent) 40%, transparent);
}

/* Form */
.form{display:grid; gap:.8rem}
.field-row{display:grid; gap:.8rem}
@media (width >= 700px){ .field-row{grid-template-columns: 1fr 1fr} }
.field{display:grid; gap:.35rem}
.label{font-size:.9rem; color:#cfe7e0}
input, textarea{
  background:#ffffff12; color:white; border:1px solid #ffffff26; border-radius:.6rem; padding:.7rem .85rem; outline:none;
}
input::placeholder, textarea::placeholder{color:#e7f6f166}
input:focus, textarea:focus{border-color: color-mix(in oklab, var(--accent) 40%, transparent); box-shadow: 0 0 0 4px #34d39922}
.status{margin:.2rem 0 0; color:#a7f3d0}

/* Footer */
.site-footer{border-top:1px solid var(--edge); background:var(--bg-2)}
.footer-inner{display:flex; gap:1rem; align-items:center; justify-content:space-between; padding:1rem 0}
.site-footer a{color:#d4f5ea}
.site-footer a:hover{color:white}

/* Chat */
.chat-fab{
  position:fixed; right:16px; bottom:16px; z-index:60;
  background:var(--accent); color:#0b1b2a; border:none; border-radius:999px; padding:.75rem 1rem; font-weight:700; box-shadow: var(--shadow); cursor:pointer;
}
.chat-panel{
  position:fixed; right:16px; bottom:76px; width:min(92vw, 360px); background:var(--panel); border:1px solid var(--edge); border-radius:.9rem; box-shadow: var(--shadow); display:none; z-index:60;
}
.chat-panel.open{display:grid; grid-template-rows:auto 1fr auto}
.chat-header{display:flex; align-items:center; justify-content:space-between; padding:.75rem 1rem; border-bottom:1px solid var(--edge)}
.icon-btn{background:transparent; border:1px solid var(--edge); color:#cfe7e0; border-radius:.5rem; padding:.25rem .5rem; cursor:pointer}
.chat-messages{padding: .75rem 1rem; display:grid; gap:.5rem; max-height:40vh; overflow:auto}
.msg{max-width:85%; padding:.6rem .75rem; border-radius:.7rem; border:1px solid var(--edge)}
.msg.bot{background:#ffffff10}
.msg.user{background:#10b9811a; border-color:#34d39955}
.chat-form{display:flex; gap:.5rem; padding:.75rem; border-top:1px solid var(--edge)}
.chat-form input{flex:1}