  :root {
    --paper:#FAF9F6; --ink:#10233A; --muted:#5B6B7E; --line:#E4E1D8;
    --sea-a:#0D7CE9; --sea-b:#15CFF1; --navy:#0B1A2C;
  }
  * { margin:0; box-sizing:border-box }
  html { scroll-behavior:smooth }
  body {
    background:var(--paper); color:var(--ink);
    font:16px/1.65 'Arimo', sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  .display { font-family:'Newsreader', serif; font-weight:300; letter-spacing:-.01em }
  .mono { font-family:'IBM Plex Mono', monospace }
  .wrap { max-width:1060px; margin:0 auto; padding:0 24px }
  a { color:inherit }

  /* load-in */
  .rise { opacity:0; transform:translateY(14px); animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards }
  @keyframes rise { to { opacity:1; transform:none } }

  header .wrap {
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:14px 0;
    padding-top:28px; padding-bottom:28px;
  }
  nav { white-space:nowrap }
  nav a:first-child { margin-left:0 }
  .logo { height:52px; aspect-ratio:574.9/163; width:auto; color:var(--ink) }
  nav a {
    text-decoration:none; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase;
    color:var(--muted); margin-left:28px; padding-bottom:4px;
    border-bottom:1px solid transparent; transition:.25s;
  }
  nav a:hover { color:var(--ink); border-bottom-color:var(--sea-a) }
  @media (max-width:640px){ nav a { margin-left:16px; font-size:.72rem } .logo{height:42px} }

  /* hero */
  .hero { position:relative; padding:96px 0 110px; overflow:hidden }
  .hero::before {
    content:''; position:absolute; inset:-40% -20% auto auto; width:70%; height:130%;
    background:radial-gradient(closest-side, rgba(21,207,241,.16), rgba(13,124,233,.07) 55%, transparent 75%);
    pointer-events:none;
  }
  .kicker {
    font-size:.8rem; letter-spacing:.22em; text-transform:uppercase; color:var(--sea-a);
    font-weight:700; margin-bottom:22px;
  }
  .hero h1 {
    font-size:clamp(2.6rem, 6.4vw, 4.6rem); line-height:1.06; max-width:16ch;
  }
  .hero h1 em { font-style:italic; font-weight:300;
    background:linear-gradient(100deg, var(--sea-a), var(--sea-b));
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .hero p { margin-top:30px; max-width:54ch; font-size:1.08rem; color:var(--muted) }
  .hero .est { margin-top:44px; font-size:.82rem; color:var(--muted); display:flex; gap:14px; align-items:center }
  .hero .est::before { content:''; width:56px; height:2px; background:linear-gradient(90deg, var(--sea-a), var(--sea-b)) }

  /* sections */
  section { padding:84px 0; border-top:1px solid var(--line) }
  .sec-head { display:flex; align-items:baseline; gap:20px; margin-bottom:48px }
  .sec-head .no { font-family:'IBM Plex Mono', monospace; font-size:.8rem; color:var(--sea-a) }
  .sec-head h2 { font-family:'Newsreader', serif; font-weight:400; font-size:2rem }

  .services { display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:1px; background:var(--line); border:1px solid var(--line) }
  .svc { background:var(--paper); padding:34px 28px; transition:background .3s }
  .svc:hover { background:#fff }
  .svc h3 { font-size:1.02rem; margin-bottom:10px }
  .svc h3::before { content:'— '; color:var(--sea-a) }
  .svc p { font-size:.92rem; color:var(--muted) }

  /* now building */
  .building { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center }
  @media (max-width:760px){ .building { grid-template-columns:1fr } }
  .building h3 { font-family:'Newsreader', serif; font-weight:400; font-size:1.7rem; margin-bottom:16px }
  .building p { color:var(--muted) }
  .tide {
    height:220px; border-radius:12px; position:relative; overflow:hidden;
    background:linear-gradient(160deg, var(--navy) 10%, #0d3a5c 55%, var(--sea-a) 130%);
  }
  .tide::after {
    content:''; position:absolute; inset:0;
    background:
      radial-gradient(90px 26px ellipse at 22% 78%, rgba(21,207,241,.5), transparent 70%),
      radial-gradient(140px 34px ellipse at 68% 62%, rgba(21,207,241,.28), transparent 70%),
      radial-gradient(70px 20px ellipse at 84% 84%, rgba(255,255,255,.18), transparent 70%);
  }
  .tide span {
    position:absolute; left:22px; bottom:18px; color:#fff; font-size:.78rem; letter-spacing:.16em;
    text-transform:uppercase; opacity:.85;
  }

  /* registry */
  .registry { background:var(--navy); color:#EAF2F8; border-radius:14px; padding:52px; }
  @media (max-width:640px){ .registry { padding:32px 24px } }
  .registry h2 { font-family:'Newsreader', serif; font-weight:400; font-size:1.8rem; margin-bottom:6px }
  .registry .sub { color:#8FB3CC; font-size:.9rem; margin-bottom:38px }
  .reg-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:28px 40px }
  .reg dt { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:#7DD7EC; margin-bottom:6px }
  .reg dd { font-family:'IBM Plex Mono', monospace; font-size:.92rem; line-height:1.5; color:#EAF2F8 }
  .reg dd a { color:#EAF2F8; text-decoration:none; border-bottom:1px solid rgba(125,215,236,.4) }
  .registry .id-line { margin-top:40px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12);
    font-size:.85rem; color:#8FB3CC; font-style:italic; font-family:'Newsreader', serif }

  footer { padding:56px 0 64px }
  footer .wrap { display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap }
  footer .logo { height:40px; color:var(--muted) }
  footer p { font-size:.82rem; color:var(--muted) }
  footer .social { display:flex; gap:22px }
  footer .social a {
    text-decoration:none; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase;
    color:var(--muted); padding-bottom:3px; border-bottom:1px solid transparent; transition:.25s;
  }
  footer .social a:hover { color:var(--ink); border-bottom-color:var(--sea-a) }

/* ---- contact page ---- */
.contact-lede { max-width:60ch }
.contact-grid { display:grid; grid-template-columns:1.35fr .9fr; gap:56px; align-items:start }
@media (max-width:860px){ .contact-grid { grid-template-columns:1fr; gap:40px } }
.form-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:10px }
.form-card iframe { width:100%; border:none; display:block; border-radius:10px }
.ways h3 { font-family:'Newsreader',serif; font-weight:400; font-size:1.25rem; margin-bottom:8px }
.way { padding:22px 0; border-bottom:1px solid var(--line) }
.way:last-child { border-bottom:0 }
.way p { font-size:.92rem; color:var(--muted); margin-top:6px }
.way a { color:var(--sea-a); text-decoration:none; font-weight:500 }
.way a:hover { text-decoration:underline }
a.pill {
  display:inline-block; margin-top:12px; padding:11px 20px; border-radius:999px;
  background:linear-gradient(100deg,var(--sea-a),var(--sea-b)); color:#fff;
  text-decoration:none; font-size:.88rem; font-weight:500;
}
a.pill:hover { opacity:.9 }
.note { font-size:.82rem; color:var(--muted); margin-top:30px }


/* ---- legal pages ---- */
.legal { max-width:72ch }
.legal p { color:var(--muted); margin-bottom:18px }
.legal ul { color:var(--muted); margin:0 0 18px 22px }
.legal li { margin-bottom:8px }
.legal strong { color:var(--ink) }
.legal h2 {
  font-family:'Newsreader', serif; font-weight:400; font-size:1.35rem;
  color:var(--ink); margin:38px 0 14px;
}
.legal a { color:var(--sea-a) }
footer .legal-links { display:flex; gap:18px }
footer .legal-links a { font-size:.78rem; color:var(--muted); text-decoration:none }
footer .legal-links a:hover { color:var(--ink) }
