/* Shared styles for the hand-written pages (waitlist.html, listed.html).
   Type, colour and spacing are lifted from the built homepage so these pages
   sit beside it without a seam. Fonts are the same Latin subsets the homepage
   inlines, served as files. */

@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 400 500; font-display: swap; src: url("fonts/eb-garamond-400.woff2") format("woff2"); }
@font-face { font-family: "EB Garamond"; font-style: italic; font-weight: 400; font-display: swap; src: url("fonts/eb-garamond-400-italic.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/ibm-plex-mono-400.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/ibm-plex-mono-500.woff2") format("woff2"); }

:root {
  --ground: #0e0d12;
  --cream: #e8e2d6;
  --cream-bright: #f4f0e8;
  --rule: rgba(232, 226, 214, .16);
  --serif: "EB Garamond", Georgia, serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
}

html, body { margin: 0; }
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--ground);
  color: var(--cream);
  font-family: var(--serif);
  overflow-x: hidden;
}
a { color: var(--cream); text-decoration: none; border-bottom: 1px solid rgba(232, 226, 214, .28); }
a:hover { color: #fff; border-bottom-color: rgba(232, 226, 214, .7); }
a:focus-visible { outline: 1px solid var(--cream-bright); outline-offset: 4px; }

.bar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 12px 24px;
  padding: 16px clamp(14px, 4vw, 54px);
}
.bar a { border-bottom: none; }
.brand { display: flex; align-items: center; gap: 13px; }
.brand img { width: 34px; height: 34px; opacity: .92; }
.brand span {
  font: 500 14px/1 var(--serif);
  letter-spacing: clamp(.12em, .9vw, .3em);
  text-transform: uppercase; white-space: nowrap;
}
.bar .menu {
  font: 400 11px/1 var(--mono); letter-spacing: .2em; text-transform: uppercase;
  border: 1px solid rgba(232, 226, 214, .3); border-radius: 2px;
  padding: 9px 17px; white-space: nowrap;
}
.bar .menu:hover { border-color: rgba(232, 226, 214, .75); background: rgba(232, 226, 214, .06); }

main {
  position: relative; flex: 1;
  padding: clamp(50px, 8vw, 110px) clamp(20px, 5vw, 60px) clamp(80px, 11vw, 150px);
  overflow: hidden;
}
main::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(78% 130% at 50% 108%, rgba(63, 56, 87, .55) 0%, rgba(35, 32, 50, .3) 38%, transparent 72%);
}
.col { position: relative; max-width: 680px; margin: 0 auto; }

.kicker {
  font: 400 10px/1 var(--mono); letter-spacing: .28em; text-transform: uppercase;
  color: rgba(232, 226, 214, .5);
}
h1 {
  margin: 28px 0 0;
  font: italic 400 clamp(30px, 4.6vw, 50px)/1.22 var(--serif);
  letter-spacing: .01em; color: var(--cream-bright); text-wrap: balance;
}
p {
  margin: 26px 0 0;
  font: 400 clamp(17px, 1.6vw, 21px)/1.68 var(--serif);
  color: rgba(232, 226, 214, .86); text-wrap: pretty;
}

section { margin-top: clamp(48px, 6vw, 72px); padding-top: 26px; border-top: 1px solid var(--rule); }
section p:first-of-type { margin-top: 20px; }

.terms { margin: 22px 0 0; }
.terms div {
  display: grid; grid-template-columns: 170px 1fr; gap: 6px 24px; align-items: baseline;
  padding: 15px 0; border-bottom: 1px solid rgba(232, 226, 214, .1);
}
.terms dt {
  font: 400 10px/1.5 var(--mono); letter-spacing: .2em; text-transform: uppercase;
  color: rgba(232, 226, 214, .56);
}
.terms dd { margin: 0; font: 400 clamp(17px, 1.5vw, 20px)/1.5 var(--serif); color: var(--cream-bright); }
@media (max-width: 520px) { .terms div { grid-template-columns: 1fr; } }

.act { margin-top: 40px; }
.join {
  display: inline-block;
  font: 500 12px/1 var(--mono); letter-spacing: .2em; text-transform: uppercase;
  color: var(--ground); background: var(--cream-bright);
  border: 1px solid var(--cream-bright); border-radius: 2px;
  padding: 19px 28px;
  transition: background .25s ease, color .25s ease;
}
.join:hover { color: var(--cream-bright); background: transparent; border-color: var(--cream-bright); }
.fine {
  margin-top: 22px; max-width: 520px;
  font: 400 11px/1.75 var(--mono); letter-spacing: .06em;
  color: rgba(232, 226, 214, .5);
}
.back { font: 400 11px/1 var(--mono); letter-spacing: .22em; text-transform: uppercase; }

footer { border-top: 1px solid rgba(232, 226, 214, .12); }
footer .in {
  max-width: 1180px; margin: 0 auto; box-sizing: border-box;
  padding: 36px clamp(20px, 5vw, 60px);
  display: flex; flex-wrap: wrap; gap: 18px; align-items: center; justify-content: space-between;
  font: 400 10px/1 var(--mono); letter-spacing: .22em; text-transform: uppercase;
  color: rgba(232, 226, 214, .5);
}
footer nav { display: flex; flex-wrap: wrap; gap: clamp(16px, 2.4vw, 30px); }
footer a { border-bottom: none; color: rgba(232, 226, 214, .6); }
footer a:hover { color: var(--cream-bright); }
