@font-face { font-family:'Cormorant Garamond'; src:url('/fonts/cormorant.woff2') format('woff2'); font-weight:300 700; font-style:normal; font-display:swap; }
@font-face { font-family:'Cormorant Garamond'; src:url('/fonts/cormorant-italic.woff2') format('woff2'); font-weight:300 700; font-style:italic; font-display:swap; }
@font-face { font-family:'Jost'; src:url('/fonts/jost.woff2') format('woff2'); font-weight:100 900; font-style:normal; font-display:swap; }

:root {
  color-scheme: dark;
  --night:#07060b; --night-2:#0d0b16; --night-3:#1b1630;
  --ink:#efe7d6; --ink-2:#b8ad97; --muted:#a59c8a; --faint:#8a8273;
  --hairline:rgba(216,195,154,.28); --gold:#d8c39a;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',system-ui,sans-serif;
}
* { box-sizing:border-box; margin:0; }
html { -webkit-text-size-adjust:100%; }
html,body { min-height:100%; background:var(--night); color:var(--ink); }
body {
  min-height:100vh; display:flex; flex-direction:column;
  font-family:var(--sans); font-weight:300; font-size:1rem; line-height:1.65;
  background:radial-gradient(ellipse at 50% 0%, var(--night-3) 0%, var(--night-2) 38%, var(--night) 75%) no-repeat;
  background-color:var(--night);
}
a { color:var(--gold); text-underline-offset:3px; }
a:focus-visible { outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }
strong { font-weight:500; }

/* Header and footer shared by every page */
.top { padding:28px 16px 0; text-align:center; }
.mark { font-family:var(--serif); font-weight:400; font-size:1.375rem; letter-spacing:.42em; padding-left:.42em; color:var(--ink); text-decoration:none; }
.foot { margin-top:auto; padding:48px 16px 32px; text-align:center; font-size:.8125rem; letter-spacing:.06em; color:var(--muted); }
.foot nav { display:flex; flex-wrap:wrap; justify-content:center; gap:4px 20px; margin-bottom:14px; }
.foot nav a { color:var(--ink-2); padding:10px 2px; }
.foot p { font-size:.75rem; letter-spacing:.14em; }

/* Document pages */
main.doc { width:100%; max-width:46rem; margin:0 auto; padding:40px 16px 0; overflow-wrap:anywhere; }
.doc h1 { font-family:var(--serif); font-weight:400; font-size:clamp(1.75rem,7vw,2.25rem); line-height:1.2; margin-bottom:20px; }
.doc h2 { font-family:var(--serif); font-weight:500; font-size:1.5rem; line-height:1.25; margin:40px 0 12px; color:var(--ink); }
.doc p, .doc ul, .doc table { margin-top:12px; }
.doc ul { padding-left:1.25rem; }
.doc li { margin-top:8px; }
.doc hr { border:0; border-top:1px solid var(--hairline); margin:32px 0 0; }
.doc .meta { color:var(--ink-2); }
.doc .legal { color:var(--muted); font-size:.875rem; margin-top:40px; font-style:italic; }

/* Tables: stacked cards at phone width, grid above */
.doc table { width:100%; border-collapse:collapse; font-size:.9375rem; }
.doc th, .doc td { text-align:left; vertical-align:top; padding:10px 10px; border-bottom:1px solid var(--hairline); }
.doc th { font-weight:500; color:var(--ink-2); }
@media (max-width:640px) {
  .doc table, .doc tbody, .doc tr, .doc td { display:block; width:100%; }
  .doc thead { position:absolute; left:-9999px; }
  .doc tr { padding:12px 0; border-bottom:1px solid var(--hairline); }
  .doc td { border:0; padding:4px 0; }
  .doc td::before { content:attr(data-label); display:block; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
}

/* Holding page */
body.home { align-items:center; }
.home .stage { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:48px 16px 0; }
.card { width:min(260px,62vw); aspect-ratio:2/3; border-radius:14px; overflow:hidden;
  box-shadow:0 0 0 1px var(--hairline), 0 30px 80px -20px rgba(120,90,200,.45), 0 10px 30px rgba(0,0,0,.6);
  animation:rise 1.6s ease-out both; }
.card img { width:100%; height:100%; object-fit:cover; display:block; }
.rule { width:40px; height:1px; background:var(--gold); opacity:.6; margin:40px auto 28px; }
.home h1 { font-family:var(--serif); font-weight:400; font-size:clamp(28px,6vw,40px); letter-spacing:.42em; padding-left:.42em; color:var(--ink); }
.home p.line { font-family:var(--serif); font-style:italic; font-size:clamp(18px,4.2vw,22px); color:var(--ink); margin-top:14px; }
.home p.note { font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-top:28px; }
.fade { animation:fade 1.6s ease-out .5s both; }
.credit { margin-top:40px; font-size:11px; letter-spacing:.14em; color:var(--muted); }
.home .foot { margin-top:0; width:100%; }

/* 404 */
.lost { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:48px 16px 0; }
.lost h1 { font-family:var(--serif); font-weight:400; font-size:1.75rem; letter-spacing:.42em; padding-left:.42em; }
.lost p { font-family:var(--serif); font-style:italic; font-size:1.375rem; margin-top:14px; }

@keyframes rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@keyframes fade { from { opacity:0; } to { opacity:1; } }
@media (prefers-reduced-motion:reduce) { .card,.fade { animation:none; } }
