/* Atelier public face. Colours, type and space come from tokens.css. No theme script. */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--im-bg);
  color: var(--im-text);
  font-family: var(--im-font-body);
  font-size: var(--im-text-md);
  font-weight: var(--im-weight-regular);
  line-height: var(--im-leading-body);
  -webkit-font-smoothing: antialiased;
}

::selection { background: var(--im-selection); }

a {
  color: var(--im-accent);
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

a:focus-visible {
  outline: none;
  box-shadow: var(--im-focus-ring);
  border-radius: var(--im-radius-sm);
}

h1, h2, h3 {
  font-family: var(--im-font-display);
  color: var(--im-ink);
  font-weight: var(--im-weight-semibold);
  line-height: var(--im-leading-tight);
  margin: 0;
}

:lang(zh-Hant) { line-height: var(--im-leading-cjk); }
:lang(zh-Hant) :is(h1, h2, h3) { line-height: 1.35; }

.wrap {
  max-width: var(--im-content-max);
  margin: 0 auto;
  padding: 0 var(--im-space-6);
}

.skip {
  position: absolute;
  left: -999px;
  top: var(--im-space-2);
  background: var(--im-surface);
  color: var(--im-text);
  padding: var(--im-space-2) var(--im-space-3);
  border-radius: var(--im-radius-sm);
}

.skip:focus { left: var(--im-space-2); }

.site-header {
  border-bottom: var(--im-border-width) solid var(--im-border);
  background: var(--im-bg);
  position: sticky;
  top: 0;
  z-index: 5;
}

.header-row {
  display: flex;
  align-items: center;
  gap: var(--im-space-6);
  height: 72px;
}

.brand {
  display: inline-flex;
  line-height: 0;
  border-radius: var(--im-radius-sm);
}

.brand img { height: 40px; width: auto; }

.brand:has(.brand-text) {
  align-items: center;
  gap: var(--im-space-3);
  line-height: 1;
  color: var(--im-ink);
  text-decoration: none;
}

.brand-mark img { display: block; height: 34px; width: auto; }

.brand-text {
  font-family: var(--im-font-display);
  font-weight: var(--im-weight-semibold);
  font-size: var(--im-text-xl);
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.primary-nav {
  display: flex;
  gap: var(--im-space-5);
  margin-left: auto;
}

.primary-nav a {
  color: var(--im-muted);
  text-decoration: none;
  font-size: var(--im-text-sm);
  font-weight: var(--im-weight-medium);
}

.primary-nav a:hover { color: var(--im-text); }

.header-tools {
  display: flex;
  align-items: center;
  gap: var(--im-space-3);
}

.header-cta {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 var(--im-space-4);
  border-radius: var(--im-radius-pill);
  background: var(--im-accent);
  color: var(--im-on-accent);
  font-size: var(--im-text-sm);
  font-weight: var(--im-weight-semibold);
  text-decoration: none;
  white-space: nowrap;
}

.lang-toggle {
  display: inline-flex;
  border: var(--im-border-width) solid var(--im-border);
  border-radius: var(--im-radius-pill);
  padding: 3px;
  background: var(--im-surface);
}

.lang-toggle a {
  font-size: var(--im-text-xs);
  font-weight: var(--im-weight-semibold);
  text-decoration: none;
  color: var(--im-muted);
  padding: 4px 10px;
  border-radius: var(--im-radius-pill);
  letter-spacing: 0.02em;
}

.lang-toggle a[aria-current="page"] {
  background: var(--im-bg);
  color: var(--im-text);
  box-shadow: 0 0 0 1px var(--im-border);
}

.section { padding-top: var(--im-space-8); padding-bottom: var(--im-space-8); }
.section > h1, .section > h2, .about h2 { font-size: var(--im-text-2xl); margin-bottom: var(--im-space-5); }

.intro { padding-top: var(--im-space-8); padding-bottom: var(--im-space-7); }

.status {
  margin: 0 0 var(--im-space-3);
  font-family: var(--im-font-mono);
  font-size: var(--im-text-xs);
  font-weight: var(--im-weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--im-muted);
}

.intro h1 {
  font-size: var(--im-text-4xl);
  margin-bottom: var(--im-space-5);
}

.lead {
  max-width: var(--im-measure);
  margin: 0 0 var(--im-space-5);
  font-size: var(--im-text-lg);
}

.verbs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--im-space-3) var(--im-space-5);
  margin: 0 0 var(--im-space-5);
  padding: 0;
  list-style: none;
  font-family: var(--im-font-display);
  font-size: var(--im-text-xl);
  font-weight: var(--im-weight-semibold);
  color: var(--im-ink);
}

.note {
  max-width: var(--im-measure);
  margin: 0;
  color: var(--im-muted);
}

.about {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: var(--im-space-7);
  border-top: var(--im-border-width) solid var(--im-border);
  padding-top: var(--im-space-7);
}

#about { padding-top: 0; }
.about p { max-width: var(--im-measure); margin: 0 0 var(--im-space-3); color: var(--im-muted); }

.facts {
  margin: 0;
  display: grid;
  gap: var(--im-space-3);
  align-content: start;
  padding: var(--im-space-5);
  background: var(--im-surface);
  border-radius: var(--im-radius);
  border: var(--im-border-width) solid var(--im-border);
}

.facts div { display: grid; grid-template-columns: 7rem 1fr; gap: var(--im-space-3); }
.facts dt {
  font-family: var(--im-font-mono);
  font-size: var(--im-text-xs);
  color: var(--im-muted);
  padding-top: 3px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.facts dd { margin: 0; }

.site-footer {
  border-top: var(--im-border-width) solid var(--im-border);
  background: var(--im-surface);
}

.footer-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--im-space-4);
  padding-top: var(--im-space-5);
  padding-bottom: var(--im-space-5);
  font-size: var(--im-text-sm);
  color: var(--im-muted);
}

.footer-row p { margin: 0; }
.footer-row nav { display: flex; flex-wrap: wrap; gap: var(--im-space-5); }
.footer-row a { color: var(--im-muted); }
.footer-row a:hover { color: var(--im-text); }

.legal-main {
  padding-top: var(--im-space-8);
  padding-bottom: var(--im-space-8);
}

.legal-main h1 {
  font-size: var(--im-text-3xl);
  margin-bottom: var(--im-space-5);
}

.legal-main h2 {
  font-size: var(--im-text-xl);
  margin: var(--im-space-6) 0 var(--im-space-3);
}

.legal-main p,
.legal-main li { max-width: var(--im-measure); }

.legal-main p { margin: 0 0 var(--im-space-4); }

.draft {
  margin: 0 0 var(--im-space-4);
  padding: var(--im-space-3) var(--im-space-4);
  background: var(--im-surface);
  border: var(--im-border-width) solid var(--im-border);
  border-left: 3px solid var(--im-mirage);
  border-radius: var(--im-radius);
}

.updated {
  color: var(--im-muted);
  font-size: var(--im-text-sm);
}

@media (max-width: 760px) {
  .wrap { padding: 0 var(--im-space-4); }
  .header-row { height: 64px; gap: var(--im-space-3); }
  .brand img { height: 32px; }
  .brand-mark img { height: 28px; }
  .brand-text { font-size: var(--im-text-lg); }
  .primary-nav { display: none; }
  .header-tools { margin-left: auto; }
  .about { grid-template-columns: 1fr; }
  .section, .intro { padding-top: var(--im-space-7); padding-bottom: var(--im-space-7); }
  .about { gap: var(--im-space-5); }
  .facts div { grid-template-columns: 6rem 1fr; }
  .intro h1 { font-size: var(--im-text-3xl); }
}
