/* Pacific Silicon — shared styles. Design lifted from the Seya.ai site (~/Desktop/Seya):
   dark ground, Neue Haas Grotesk display, Geist body, coral accent, pill forms, paper footer. */

@font-face { font-family:'NHG Display'; src:url('/assets/fonts/nhg-disp-55.otf') format('opentype'); font-weight:400; font-display:swap; }
@font-face { font-family:'NHG Display'; src:url('/assets/fonts/nhg-disp-65.otf') format('opentype'); font-weight:500; font-display:swap; }
@font-face { font-family:'NHG Display'; src:url('/assets/fonts/nhg-disp-75.otf') format('opentype'); font-weight:700; font-display:swap; }
@font-face { font-family:'Biro Script'; src:url('/assets/fonts/biro-script.otf') format('opentype'); font-weight:400; font-display:swap; }

:root {
  --bg:#141417; --fg:#f5f4ef; --paper:#f5f4ef; --ink:#1a1a1f;
  --accent:#ff7449; --accent-hover:#f4602f; --periwinkle:#a2a4ca; --muted:#9b9cb2;
  --line:rgba(245,244,239,.12); --line-strong:rgba(245,244,239,.3);
  --card:#1b1b20;
  --display:'NHG Display', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --sans:'Geist', system-ui, -apple-system, Arial, Helvetica, sans-serif;
  --mono:'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --script:'Biro Script', 'Segoe Script', cursive;
  --ease-out-strong:cubic-bezier(.23,1,.32,1);
  --gutter:clamp(24px, 5vw, 40px);
}
* { box-sizing:border-box; }
html { color-scheme:dark; }
body {
  margin:0; background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a { color:inherit; }
::selection { background:var(--accent); color:#fff; }

/* One-time entrance: staggered fade-up, ease-out (Seya .rise) */
@keyframes rise { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
.rise { opacity:0; animation:rise 600ms var(--ease-out-strong) forwards; animation-delay:var(--rise-delay, 0ms); }
@media (prefers-reduced-motion: reduce) {
  @keyframes rise { from { opacity:0; } to { opacity:1; } }
  .rise { animation:rise 200ms ease forwards; transform:none; }
}

/* ---- Header (absolute over the hero on every page) ---- */
.hdr {
  position:absolute; inset:0 0 auto 0; z-index:10;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:24px var(--gutter);
}
.brand { display:block; line-height:0; }
.brand img { height:22px; width:auto; display:block; filter:brightness(0) invert(1); }
.hdr-right { display:flex; align-items:center; gap:28px; }
.nav { display:flex; gap:24px; font-size:14px; font-weight:500; color:rgba(255,255,255,.72); }
.nav a { text-decoration:none; transition:color 150ms; }
.nav a:hover, .nav a[aria-current="page"] { color:#fff; }
.pill {
  display:inline-block; border-radius:999px; border:1px solid rgba(255,255,255,.25);
  padding:8px 20px; font-size:14px; font-weight:500; color:#fff; text-decoration:none;
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); transition:border-color 150ms; white-space:nowrap;
}
.pill:hover { border-color:rgba(255,255,255,.6); }

/* ---- Hero ---- */
.hero { position:relative; display:flex; align-items:center; overflow:hidden; min-height:100svh; }
.hero.short { min-height:clamp(420px, 62svh, 640px); }
.hero video, .hero .still { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero .scrim-x { position:absolute; inset:0; background:linear-gradient(to right, rgba(0,0,0,.75), rgba(0,0,0,.4) 50%, rgba(0,0,0,.1)); }
.hero .scrim-y { position:absolute; inset:0 0 auto 0; height:160px; background:linear-gradient(to bottom, rgba(0,0,0,.6), transparent); }
.hero .scrim-b { position:absolute; inset:auto 0 0 0; height:220px; background:linear-gradient(to top, var(--bg), transparent); }
.hero-inner { position:relative; z-index:2; width:100%; padding:144px 0 72px; }
.hero-copy { max-width:760px; }
.hero h1 {
  margin:0; font-family:var(--display); font-weight:500; color:#fff;
  font-size:clamp(44px, 7vw, 76px); line-height:1.04; letter-spacing:-.02em; text-wrap:balance;
}
.hero h1 span { color:var(--accent); }
.hero .sub { margin:28px 0 0; max-width:560px; font-size:clamp(17px, 1.6vw, 21px); line-height:1.55; color:rgba(255,255,255,.75); text-wrap:balance; }
.hero .cta-wrap { margin-top:40px; }

/* Hero CTA line: Trade button + text-only secondary link */
.cta-line { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.textlink { display:inline-flex; align-items:center; gap:6px; color:#fff; font-size:16px; font-weight:500; text-decoration:none; white-space:nowrap; }
.textlink span { transition:transform 150ms ease-out; }
.textlink:hover span { transform:translateX(3px); }

.btn {
  flex:none; display:inline-flex; align-items:center; gap:8px; border:0; cursor:pointer;
  border-radius:999px; background:var(--accent); color:#fff; padding:12px 24px;
  font:500 16px/1.2 var(--sans); text-decoration:none; white-space:nowrap;
  transition:background-color 150ms ease-out, transform 150ms ease-out;
}
.btn:hover { background:var(--accent-hover); }
.btn:active { transform:scale(.97); }
.btn.ghost { background:transparent; border:1px solid rgba(255,255,255,.3); }
.btn.ghost:hover { background:transparent; border-color:rgba(255,255,255,.7); }

/* ---- Page body on the dark ground ---- */
.wrap { max-width:1152px; margin:0 auto; padding:0 var(--gutter); }
.row { display:grid; grid-template-columns:180px 1fr; gap:40px; padding:72px 0; border-top:1px solid var(--line); }
.label { font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding-top:6px; }
.body { max-width:720px; min-width:0; }
.row h2 { margin:0 0 16px; font-family:var(--display); font-weight:500; font-size:clamp(28px, 3.4vw, 40px); line-height:1.1; letter-spacing:-.015em; text-wrap:balance; }
.row p { margin:0; color:rgba(245,244,239,.72); font-size:17px; line-height:1.65; }
.lede p { font-family:var(--display); font-weight:400; font-size:clamp(22px, 2.6vw, 30px); line-height:1.35; letter-spacing:-.01em; color:var(--fg); }

/* Products: three cards, each a funnel entry (Buy / Sell / Secure) */
.products { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; padding:72px 0; border-top:1px solid var(--line); }
.card {
  display:flex; flex-direction:column; gap:14px; min-height:300px;
  padding:28px 28px 26px; border-radius:20px; background:var(--card); border:1px solid var(--line);
  text-decoration:none; color:var(--fg);
  transition:border-color 150ms ease-out, transform 150ms ease-out, background-color 150ms ease-out;
}
.card:hover { border-color:rgba(245,244,239,.3); background:#1f1f25; transform:translateY(-2px); }
.card:active { transform:translateY(0); }
.card h2 { margin:0; font-family:var(--display); font-weight:500; font-size:clamp(34px, 3.4vw, 44px); line-height:1; letter-spacing:-.02em; }
.card p { margin:0; color:rgba(245,244,239,.72); font-size:16px; line-height:1.6; }
.card-link { margin-top:auto; display:inline-flex; align-items:center; gap:6px; color:var(--accent); font-size:15px; font-weight:500; }
.card-link span { transition:transform 150ms ease-out; }
.card:hover .card-link span { transform:translateX(3px); }
@media (max-width:900px) { .products { grid-template-columns:1fr; gap:14px; padding:56px 0; } .card { min-height:0; } }

/* Method: numbered movements */
.movements { margin-top:36px; }
.movement { display:grid; grid-template-columns:72px 1fr; gap:24px; padding:28px 0; border-top:1px solid var(--line); }
.movement:last-child { border-bottom:1px solid var(--line); }
.movement .n { font-family:var(--mono); font-size:13px; color:var(--accent); padding-top:6px; }
.movement .h { font-family:var(--display); font-weight:500; font-size:24px; letter-spacing:-.01em; margin-bottom:8px; }
.movement p { font-size:16px; }

/* Code card (RFQ listing) */
.code {
  border:1px solid var(--line); background:var(--card); border-radius:16px; overflow:hidden;
  font-family:var(--mono); font-size:13.5px; line-height:1.9; color:rgba(245,244,239,.8);
}
.code-head { display:flex; justify-content:space-between; gap:12px; padding:12px 22px; border-bottom:1px solid var(--line); color:var(--muted); font-size:12px; letter-spacing:.06em; }
.code-head .ok { color:var(--accent); }
.code-body { padding:20px 22px; overflow-x:auto; }
.code .k { color:var(--muted); }
.code .k2 { color:var(--periwinkle); }
.code .v { color:var(--accent); }
.caption { margin-top:14px; font-size:14px; color:var(--muted); }

/* Instruments */
.inst { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:22px 0; border-top:1px solid var(--line); }
.inst:last-child { border-bottom:1px solid var(--line); }
.inst .name { font-family:var(--display); font-weight:500; font-size:clamp(22px, 2.4vw, 28px); letter-spacing:-.01em; }
.inst .num { font-family:var(--mono); font-size:12px; color:var(--muted); letter-spacing:.06em; white-space:nowrap; }

/* Closing CTA */
.closing { text-align:center; padding:96px 0 128px; border-top:1px solid var(--line); }
.closing .eyebrow { font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.closing .big { margin:18px auto 0; font-family:var(--display); font-weight:500; font-size:clamp(40px, 6vw, 64px); line-height:1.04; letter-spacing:-.02em; max-width:720px; text-wrap:balance; }
.closing .big span { color:var(--accent); }
.cta-row { display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin-top:40px; }

/* Paper footer with the handwritten line (Seya) */
.footer { background:var(--paper); color:var(--ink); padding:40px var(--gutter) 36px; }
.footer .quote { margin:0 auto; max-width:900px; text-align:center; font-family:var(--script); font-size:clamp(26px, 3.2vw, 34px); line-height:1.25; color:#6f72a6; }
.footer .meta { max-width:1152px; margin:36px auto 0; display:flex; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#6b6b73; }
.footer .meta a { text-decoration:none; }
.footer .meta a:hover { color:var(--ink); }

/* ---- /buyers : RFQ form ---- */
.rfq-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,420px); gap:56px; align-items:start; margin-top:40px; }
.form { display:grid; grid-template-columns:1fr 1fr; gap:26px 24px; }
.field { display:flex; flex-direction:column; gap:8px; min-width:0; }
.field.full { grid-column:1 / -1; }
.field label { font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.field label small { text-transform:none; letter-spacing:0; font-family:var(--sans); font-size:12px; color:var(--muted); margin-left:6px; }
.field input, .field select, .field textarea {
  width:100%; border:0; border-bottom:1px solid var(--line-strong); background:transparent;
  font:400 17px/1.4 var(--sans); color:var(--fg);
  padding:8px 0 10px; border-radius:0; outline:none; -webkit-appearance:none; appearance:none;
}
.field select { background-image:linear-gradient(45deg, transparent 50%, var(--fg) 50%), linear-gradient(135deg, var(--fg) 50%, transparent 50%); background-position:calc(100% - 10px) 55%, calc(100% - 5px) 55%; background-size:5px 5px, 5px 5px; background-repeat:no-repeat; padding-right:24px; }
.field select option { color:var(--ink); background:#fff; }
.field textarea { resize:vertical; min-height:88px; }
.field input:focus, .field select:focus, .field textarea:focus { border-bottom-color:var(--accent); box-shadow:0 1px 0 var(--accent); }
.field input::placeholder, .field textarea::placeholder { color:rgba(245,244,239,.35); }
.field .hint { font-size:13px; color:var(--muted); }
.form .actions { grid-column:1 / -1; display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:10px; }
.form .note { font-size:13.5px; color:var(--muted); max-width:380px; line-height:1.5; }
.preview { position:sticky; top:28px; }
.preview .code-body { min-height:300px; }
.term-item { display:grid; grid-template-columns:160px 1fr; gap:24px; padding:18px 0; border-top:1px solid var(--line); }
.term-item:last-child { border-bottom:1px solid var(--line); }
.term-item .t { font-family:var(--mono); font-size:12px; letter-spacing:.06em; color:var(--accent); padding-top:4px; }
.term-item .d { font-size:16px; line-height:1.6; color:rgba(245,244,239,.72); }

/* ---- /research ---- */
.paper { display:grid; grid-template-columns:110px 1fr; gap:28px; padding:34px 0; border-top:1px solid var(--line); }
.paper:last-child { border-bottom:1px solid var(--line); }
.paper .meta { font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); line-height:1.9; padding-top:6px; }
.paper .meta .st { color:var(--accent); }
.paper h3 { margin:0 0 10px; font-family:var(--display); font-weight:500; font-size:24px; letter-spacing:-.01em; line-height:1.2; text-wrap:balance; }
.paper h3 a { text-decoration:none; transition:color 150ms; }
.paper h3 a:hover { color:var(--accent); }
.paper p { font-size:16px; }
.paper .read { display:inline-block; margin-top:14px; font-size:14px; font-weight:500; color:var(--accent); text-decoration:none; }
.paper .read:hover { text-decoration:underline; }
.papers { margin-top:36px; }
.subscribe form { display:flex; gap:14px; align-items:flex-end; flex-wrap:wrap; margin-top:28px; }
.subscribe .field { flex:1 1 260px; }

@media (max-width:900px) {
  .rfq-grid { grid-template-columns:1fr; }
  .preview { position:static; }
}
@media (max-width:760px) {
  .nav { display:none; }
  .hdr { padding:20px var(--gutter); }
  .brand img { height:18px; }
  .hero-inner { padding:120px 0 56px; }
  .row { grid-template-columns:1fr; gap:16px; padding:56px 0; }
  .movement { grid-template-columns:1fr; gap:6px; }
  .form { grid-template-columns:1fr; }
  .term-item { grid-template-columns:1fr; gap:6px; }
  .paper { grid-template-columns:1fr; gap:8px; }
  .closing { padding:72px 0 96px; }
  .btn { padding:11px 18px; font-size:15px; }
}
}
