/* ------------------------------------------------------------------
   sniffi.ai — shared site styles.

   Dark grey rather than black, and aimed at "instrument" rather than
   "mysterious": near-neutral greys, one gold accent, high contrast and a
   lot of empty space. The illustrations are light artwork, so they sit on
   the dark page as white cards, the way slides sit on a dark deck.
   ------------------------------------------------------------------ */

:root{
  --page:#1C1F24;
  --raised:#23272D;
  --sunken:#17191D;
  --ink:#E7EAEE;
  --muted:#99A3AE;
  --faint:#6E7883;
  --rule:#333941;
  --gold:#E0AE2B;
  --link:#8FBBDF;
  --card:#FFFFFF;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--page);
  color:var(--ink);
  font-family:'Georgia',Gelasio,serif;
  font-size:18px;line-height:1.65;
  -webkit-text-size-adjust:100%;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:740px;margin:0 auto;padding:0 24px}
.wide{max-width:1320px;margin:0 auto;padding:0 24px}

a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:#fff}

.skip{position:absolute;left:-9999px}
.vis-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip:focus{left:8px;top:8px;background:#fff;color:#000;padding:10px 14px;z-index:99}

/* ---------------------------------------------------------- header */
.site-head{border-bottom:1px solid var(--rule);background:var(--sunken)}
.site-head .wide{display:flex;align-items:center;gap:24px;padding-top:19px;padding-bottom:19px}
.wordmark{
  font-family:'Century Gothic',Questrial,sans-serif;
  font-size:26px;letter-spacing:.02em;color:#fff;text-decoration:none;
}
.wordmark:hover{color:#fff}
.site-nav{margin-left:auto;display:flex;gap:26px}
.site-nav a{
  font-family:'Century Gothic',Questrial,sans-serif;
  font-size:14px;letter-spacing:.04em;color:var(--muted);text-decoration:none;
}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:#fff}

/* ---------------------------------------------------------- type */
h1{font-size:40px;line-height:1.2;margin:0 0 18px;font-weight:400;letter-spacing:-.01em}
h2.kicker{
  font-family:'Century Gothic',Questrial,sans-serif;
  font-size:11.5px;letter-spacing:.19em;text-transform:uppercase;
  color:var(--faint);font-weight:400;margin:0 0 15px;
}
h3{font-size:25px;line-height:1.3;margin:0 0 12px;font-weight:400}
p{margin:0 0 18px}
p:last-child{margin-bottom:0}
.lede{font-size:21px;line-height:1.55;color:#CDD4DB}
hr.rule{border:0;border-top:1px solid var(--rule);margin:0}
section{padding:38px 0}

/* ---------------------------------------------------------- hero */
/* padding-top/bottom only: a shorthand here would wipe .wrap's side padding */
.hero{padding-top:74px;padding-bottom:16px}
.hero p.big{
  font-size:31px;line-height:1.35;margin:0 0 16px;color:#fff;letter-spacing:-.01em;
}
.hero p.sub{font-size:19px;color:var(--muted);margin:0}

/* ---------------------------------------------------------- slides */
/* the opening graphic sits on the page background, not the sunken band */
.hero-slide{background:transparent;border-top:0;border-bottom:0;padding:52px 0 10px}
/* narrower than the panels below it: this one supports the headline,
   the ones in the panel section are the thing itself */
/* every homepage slide sits in this one centred column, so all are the same size */
.wrap-slides{max-width:828px;margin:0 auto;padding:0 24px}
.slides{background:var(--sunken);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:54px 0 60px}
.slide-stack{display:flex;flex-direction:column;gap:30px;margin:32px 0 34px}
.hero-slide .slide-stack{margin:0}
figure.slide{
  margin:0;background:var(--card);border-radius:9px;overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.36);
}
figure.slide svg{display:block;width:100%;height:auto}
/* A 1600 wide drawing squeezed into a phone column leaves its captions at
   about 5 px. Below tablet width the slide keeps a readable minimum width
   and scrolls sideways inside its own card instead. */
@media (max-width:760px){
  figure.slide{overflow-x:auto;-webkit-overflow-scrolling:touch}
  figure.slide svg{min-width:660px}
}
.ask{font-size:20px;margin:0;color:#CDD4DB}

/* ---------------------------------------------------------- contact */
.contact dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:9px 26px;align-items:baseline}
.contact dt{
  font-family:'Century Gothic',Questrial,sans-serif;
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--faint);
}
.contact dd{margin:0}

/* ---------------------------------------------------------- lineage */
.era{
  font-family:'Century Gothic',Questrial,sans-serif;
  font-size:11.5px;letter-spacing:.19em;text-transform:uppercase;
  color:var(--gold);margin:0 0 30px;
}
.entry{
  display:grid;grid-template-columns:104px 1fr;gap:0 30px;
  padding:30px 0;border-top:1px solid var(--rule);
}
.entry:first-of-type{border-top:0}
.year{
  font-family:'Century Gothic',Questrial,sans-serif;
  font-size:16px;color:var(--gold);letter-spacing:.03em;padding-top:5px;
}
.entry h3{margin-bottom:11px}
.entry p{font-size:17.5px;color:#C6CDD5}
.figs{display:flex;flex-wrap:wrap;gap:18px;margin-top:18px}
.figs figure{margin:0;max-width:232px}
.figs img{
  display:block;width:100%;height:auto;border-radius:5px;
  border:1px solid var(--rule);background:var(--raised);
}
.figs figcaption{font-size:13px;line-height:1.45;color:var(--faint);margin-top:7px;font-style:italic}
.frontier .entry{grid-template-columns:1fr}
.frontier .entry h3{color:#fff}

/* ---------------------------------------------------------- legal */
.legal h3{font-size:20px;margin:30px 0 9px}
.legal p{font-size:17px;color:#C6CDD5}
.legal .meta{font-size:15px;color:var(--faint)}

/* ---------------------------------------------------------- footer */
.site-foot{border-top:1px solid var(--rule);background:var(--sunken);padding:30px 0 46px}
.site-foot .wide{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:baseline}
.site-foot a{color:var(--muted);text-decoration:none;font-size:15px}
.site-foot a:hover{color:#fff}
.site-foot .copy{color:var(--faint);font-size:15px;margin-left:auto}

/* ---------------------------------------------------------- narrow */
@media (max-width:760px){
  body{font-size:17px}
  h1{font-size:31px}
  .hero{padding-top:46px;padding-bottom:10px}
  .hero p.big{font-size:25px}
  .lede{font-size:19px}
  .entry{grid-template-columns:1fr;gap:0}
  .year{padding-top:0;margin-bottom:7px}
  .contact dl{grid-template-columns:1fr;gap:2px}
  .contact dd{margin-bottom:14px}
  .site-foot .copy{margin-left:0;width:100%}
}

/* five nav items do not fit beside the wordmark on a phone: give the nav its own row */
@media (max-width:600px){
  .site-head .wide{flex-wrap:wrap;row-gap:9px;padding-top:15px;padding-bottom:13px}
  .site-nav{margin-left:0;width:100%;justify-content:space-between;gap:8px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}

@media print{
  body{background:#fff;color:#000}
  .site-head,.site-foot,.skip{display:none}
  figure.slide{box-shadow:none;border:1px solid #ccc}
  a{color:#000}
}
