/* esomnia.co — shared stylesheet (brand system per SITE-BRIEF, 26 Oct 2026) */
@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&display=swap');

:root{
  --paper:#FFFFFF; --tint:#FAF3E7; --hair:#EAE4D8; --faint:#BBB4A7;
  --grey:#87806F; --ink2:#4A4239; --ink:#171310;
  --gold:#C39A57; --gold-dark:#997436;
  --panel:#FFFFFF; --line-soft:rgba(23,19,16,0.07);
  --shadow:0 1px 2px rgba(23,19,16,.04),0 10px 34px rgba(23,19,16,.06);
  --c-dev:#3987E5; --c-design:#9085E9; --c-marketing:#D55181; --c-content:#C98500;
  --c-research:#1FAE9E; --c-legal:#E0574F; --c-ops:#8A94A8; --c-general:#7D8296;
  --c-finance:#4F9B5E; --c-compliance:#5F7E7B; --c-sales:#E07B39; --c-support:#46A0B5;
  --c-people:#B06BB3; --c-product:#5B6BD6; --c-data:#2F6F8F;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:'Jost',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-weight:400;font-size:15px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  display:flex;flex-direction:column;min-height:100vh}
main{flex:1 0 auto}

/* ---- the mark ---- */
.mark .ring{fill:none;stroke:var(--ink);stroke-width:8}
.mark .core{fill:var(--gold)}
.mark .orbit{transform-box:view-box;transform-origin:60px 60px;animation:omniaSpin 18s linear infinite}
.mark .orbit circle{fill:var(--gold)}
.mark .word{fill:var(--ink);font-family:'Jost',sans-serif;font-weight:600;font-size:118px;letter-spacing:1px}
@keyframes omniaSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.mark .orbit{animation:none}}

/* ---- top bar ---- */
.topbar{display:flex;align-items:center;justify-content:space-between;
  padding:20px 26px;max-width:1120px;margin:0 auto;width:100%}
.topbar .lockup{display:inline-flex;align-items:center;text-decoration:none}
.topbar .lockup svg{height:26px;width:auto;display:block}
.topnav{display:flex;align-items:center;gap:26px}
.topnav a{font-family:'Jost',sans-serif;font-size:12px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--grey);text-decoration:none;transition:color .3s var(--ease);padding:6px 0}
.topnav a:hover{color:var(--gold-dark)}
.topnav a.here{color:var(--gold-dark);border-bottom:1px solid var(--gold)}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold-dark);outline-offset:3px}

/* ---- type ---- */
.voice{font-family:'Jost',sans-serif;font-weight:300;line-height:1.14;letter-spacing:-.01em;
  text-wrap:balance;color:var(--ink);margin:0}
.display{font-size:clamp(30px,6vw,54px)}
.display-s{font-size:clamp(26px,4.4vw,38px)}
h1{font-family:'Jost',sans-serif;font-size:32px;font-weight:500;line-height:1.2;margin:0 0 14px;text-wrap:balance}
h2{font-family:'Jost',sans-serif;font-size:24px;font-weight:500;line-height:1.25;margin:0 0 10px;text-wrap:balance}
h3{font-family:'Jost',sans-serif;font-size:18px;font-weight:500;line-height:1.3;margin:0 0 8px}
p{margin:0 0 14px;font-size:15px;color:var(--ink2)}
.lede{font-size:18px;color:var(--ink2);line-height:1.6}
.eyebrow{font-family:'Jost',sans-serif;text-transform:uppercase;letter-spacing:.32em;font-size:11px;
  color:var(--gold-dark);font-weight:600;margin:0 0 18px}
.subtle{color:var(--grey);font-size:14.5px;line-height:1.6}
.omnia-voice{font-family:'Jost',sans-serif;font-style:italic;font-weight:400;color:var(--gold-dark)}

/* ---- layout ---- */
.col{width:100%;max-width:680px;margin:0 auto;padding:0 24px}
.col.wide{max-width:900px}
.section{padding:64px 0}
.section + .section{border-top:1px solid var(--line-soft)}
.block-label{font-family:'Jost',sans-serif;text-transform:uppercase;letter-spacing:.26em;font-size:10.5px;
  color:var(--grey);margin:34px 0 15px;font-weight:600;padding-bottom:9px;border-bottom:1px solid var(--hair)}

/* ---- buttons ---- */
.btn{display:inline-block;font-family:'Jost',sans-serif;text-transform:uppercase;letter-spacing:.2em;
  font-size:12px;font-weight:500;padding:15px 30px;border-radius:2px;cursor:pointer;text-decoration:none;
  border:1px solid var(--ink);background:var(--ink);color:#FFFFFF;transition:all .3s var(--ease);
  -webkit-tap-highlight-color:transparent;text-align:center}
.btn:hover{background:var(--gold-dark);border-color:var(--gold-dark)}
.btn:disabled{opacity:.28;cursor:not-allowed;background:var(--ink);border-color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink2);border-color:var(--hair)}
.btn.ghost:hover{color:var(--ink);border-color:var(--gold);background:transparent}
.row{display:flex;align-items:center;gap:18px;margin-top:32px;flex-wrap:wrap}

/* ---- fields ---- */
.field{position:relative;margin-top:24px}
.field textarea,.field input{width:100%;background:transparent;border:none;border-bottom:1.5px solid var(--hair);
  color:var(--ink);font-family:inherit;font-size:18px;line-height:1.6;padding:12px 2px;resize:none;outline:none;
  transition:border-color .4s var(--ease)}
.field textarea::placeholder,.field input::placeholder{color:var(--faint)}
.field textarea:focus,.field input:focus{border-color:var(--gold)}
.field .hint{font-size:12px;color:var(--faint);margin-top:9px}

/* ---- panels & cards ---- */
.panel{background:var(--panel);border:1px solid var(--hair);border-radius:4px;padding:22px 24px}
.trust{margin-top:30px;padding:20px 22px;border:1px solid var(--hair);border-radius:4px;background:var(--tint);
  display:flex;gap:14px;align-items:flex-start}
.trust .ic{color:var(--gold-dark);flex:0 0 auto;margin-top:2px}
.trust p{margin:0;font-size:14px;line-height:1.6;color:var(--ink2)}
.trust b{color:var(--ink);font-weight:600}

/* department dot — always with its word */
.dept{display:inline-flex;align-items:center;gap:7px;font-family:'Jost',sans-serif;font-size:12px;color:var(--ink2)}
.dept .dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}

/* ---- team cards ---- */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-top:26px}
.person{background:var(--panel);border:1px solid var(--hair);border-radius:4px;padding:20px 20px 16px}
.person .avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:'Jost',sans-serif;font-size:14px;font-weight:600;color:#fff;margin-bottom:14px}
.person .nm{font-family:'Jost',sans-serif;font-size:16px;font-weight:500;color:var(--ink)}
.person .ti{font-size:13px;color:var(--grey);margin:2px 0 10px}

/* ---- the three beats / steps ---- */
.beat{display:flex;gap:20px;padding:26px 0;border-bottom:1px solid var(--line-soft);align-items:flex-start}
.beat:last-of-type{border-bottom:none}
.beat .n{font-family:'Jost',sans-serif;font-weight:300;font-size:34px;line-height:1;color:var(--gold);
  flex:0 0 52px;text-align:right;padding-top:2px}
.beat h3{margin-top:2px}
.beat p{margin-bottom:0}

/* ---- six-chapter strip ---- */
.chapters{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 0;margin-top:26px}
.chapters .chap{display:flex;align-items:center;font-family:'Jost',sans-serif;font-size:10px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--grey)}
.chapters .chap .n{width:5px;height:5px;border-radius:50%;background:var(--gold);margin-right:9px}
.chapters .sep{width:24px;height:1px;background:var(--hair);margin:0 12px}

/* ---- reading pages (terms, privacy) ---- */
.reading h2{margin-top:36px}
.reading .meta{font-size:12.5px;color:var(--grey);letter-spacing:.06em;margin-bottom:28px}

/* ---- footer ---- */
footer{flex-shrink:0;border-top:1px solid var(--hair);margin-top:72px}
.foot-in{max-width:1120px;margin:0 auto;padding:26px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot-in .mark-line{font-family:'Jost',sans-serif;font-size:12.5px;color:var(--grey);letter-spacing:.04em}
.footnav{display:flex;gap:20px;flex-wrap:wrap}
.footnav a{font-family:'Jost',sans-serif;font-size:12px;color:var(--grey);text-decoration:none;
  letter-spacing:.08em;transition:color .3s var(--ease)}
.footnav a:hover{color:var(--gold-dark)}

/* ---- arrival (index) ---- */
.arrival{min-height:calc(100vh - 140px);display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;gap:30px;padding:6vh 24px}
.arrival #heroMark{width:min(360px,74vw);height:auto}
.arrival .q-arrival{max-width:11ch}
.arrival .onLine{color:var(--grey);font-size:15.5px;max-width:44ch;margin:0}
.arrival .field{max-width:520px;width:100%;margin-top:0}

/* ---- mobile ---- */
@media (max-width:720px){
  .topbar{padding:16px}
  .topnav{gap:16px}
  .section{padding:44px 0}
  .col{padding:0 16px}
  .team-grid{grid-template-columns:1fr}
  .beat .n{flex-basis:36px;font-size:28px}
  .chapters .sep{width:12px;margin:0 7px}
  .foot-in{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  *{transition-duration:.001ms!important;animation-duration:.001ms!important}
  .mark .orbit{animation:none!important}
  html{scroll-behavior:auto}
}
