:root{
  --ink:#002266;          /* navy from the mark */
  --muted:#7c879b;
  --line:#ececef;
  --bg:#ffffff;
}

*{box-sizing:border-box;margin:0;padding:0}

html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;min-height:100dvh;
}

a{color:inherit;text-decoration:none}
a:hover{color:#335fb8}

.stage{
  position:relative;
  min-height:100vh;min-height:100dvh;
  max-width:1080px;margin:0 auto;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(26px,4.5vw,54px);
}

/* top meta row */
.meta{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.tag{font-family:'Space Grotesk',sans-serif;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-weight:500}

/* center emblem block */
.emblem{
  flex:1;display:flex;flex-direction:column;justify-content:center;
  padding:40px 0;
}
.emblem img{
  width:clamp(220px,42vw,520px);height:auto;display:block;
  margin-left:-6px;            /* tiny optical bleed */
  margin-bottom:34px;
}
.wordmark{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(34px,7vw,72px);
  font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  line-height:1;
}
.etym{
  margin-top:20px;
  font-size:clamp(13px,1.5vw,15px);color:var(--muted);
  letter-spacing:.02em;line-height:1.6;
}

/* bottom contact row */
.foot{
  display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:22px;
}
.foot .name{font-size:13px;letter-spacing:.06em;color:var(--ink);font-weight:500}
.contact{display:flex;gap:30px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.contact span{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#aab2c2;margin-bottom:3px}
.contact a,.contact div>p{color:var(--ink);font-size:14.5px}

@media(max-width:560px){
  .wordmark{letter-spacing:.16em}
  .contact{gap:20px}
  .emblem{padding:24px 0}
}

/* centre the nameplate on phones / narrow windows */
@media(max-width:640px){
  .meta{justify-content:center}
  .emblem{align-items:center;text-align:center}
  .emblem img{margin-left:0}
  .foot{flex-direction:column;align-items:center;text-align:center;gap:12px}
}

/* live AIS telemetry strip (right margin, large screens only) */
.telemetry{
  position:absolute;right:clamp(26px,4.5vw,54px);top:20%;bottom:16%;width:300px;
  overflow:hidden;pointer-events:none;z-index:1;display:none;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  -webkit-mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent);
  mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent);
}
.telemetry.on{display:block}
.telemetry .edge{position:absolute;top:0;bottom:0;left:6px;display:flex;align-items:center}
.telemetry .edge span{
  writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);
  font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:#bcc4d2;
}
.telemetry .track{
  position:absolute;left:26px;right:0;
  display:flex;flex-direction:column;gap:15px;text-align:left;
  animation:tscroll linear infinite;will-change:transform;
}
.telemetry .tg{margin-bottom:2px;white-space:nowrap}
.telemetry .tg .nm{font-size:10.5px;letter-spacing:.03em;color:#46587a}
.telemetry .tg .mt{font-size:9.5px;color:#9aa7ba;margin-top:1px}
@keyframes tscroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@media(max-width:699px){.telemetry.on{display:none}}

/* horizontal two-row ticker (phones) */
.ticker{
  display:none;margin-top:20px;padding-top:16px;
  border-top:1px solid var(--line);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.ticker .trows{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
}
.ticker .trow{
  display:flex;width:max-content;white-space:nowrap;gap:30px;
  animation:xscroll linear infinite;will-change:transform;
}
.ticker .trow.rev{animation-direction:reverse;margin-top:9px}
.ticker .ti{font-size:11px;color:#9aa7ba;letter-spacing:.02em}
.ticker .ti b{color:#46587a;font-weight:500;letter-spacing:.05em;margin-right:7px}
.ticker .tickhead{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#bcc4d2;margin-bottom:10px;text-align:center}
@keyframes xscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:699px){.ticker.on{display:block}}
