/* ============================================================
   style.css — Eusomnia 7-OH Clinical Resource
   Art direction: "Ink & Lancet" — dark clinical editorial.
   ============================================================ */

/* ---------------- layout primitives ---------------- */
.wrap{width:min(100% - var(--space-8),var(--content-wide));margin-inline:auto}
.wrap--default{width:min(100% - var(--space-8),var(--content-default))}
.wrap--prose{width:min(100% - var(--space-8),var(--content-prose))}
.wrap--narrow{width:min(100% - var(--space-8),var(--content-narrow))}
@media (max-width:640px){
  .wrap,.wrap--default,.wrap--prose,.wrap--narrow{width:min(100% - var(--space-6),var(--content-wide))}
}
.section{padding-block:clamp(var(--space-12),7vw,var(--space-24))}
.section--tight{padding-block:clamp(var(--space-10),5vw,var(--space-16))}
.section--alt{background:var(--color-surface);border-block:1px solid var(--color-divider)}
.stack>*+*{margin-top:var(--space-4)}
.stack-lg>*+*{margin-top:var(--space-8)}

/* ---------------- typography ---------------- */
h1,h2,h3,h4{line-height:1.15;letter-spacing:-.02em;text-wrap:balance}
.display{font-family:var(--font-display);font-weight:400;font-size:var(--text-3xl);line-height:1.02;letter-spacing:-.03em}
.h1{font-family:var(--font-display);font-weight:400;font-size:var(--text-2xl);line-height:1.08;letter-spacing:-.025em}
.h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);line-height:1.15;letter-spacing:-.02em}
.h3{font-family:var(--font-body);font-weight:600;font-size:var(--text-lg);line-height:1.3;letter-spacing:-.012em}
.h4{font-family:var(--font-body);font-weight:600;font-size:var(--text-base);line-height:1.4;letter-spacing:-.005em}

.eyebrow{
  font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-faint);
}
.lede{font-size:var(--text-lg);line-height:1.5;color:var(--color-text-muted);font-weight:400;text-wrap:pretty}
.muted{color:var(--color-text-muted)}
.faint{color:var(--color-text-faint)}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.small{font-size:var(--text-sm)}
.xs{font-size:var(--text-xs)}

.prose{max-width:68ch}
.prose p{margin-block:var(--space-4);text-wrap:pretty}
.prose p:first-child{margin-top:0}
.prose h2{margin-top:var(--space-12);margin-bottom:var(--space-4)}
.prose h3{margin-top:var(--space-8);margin-bottom:var(--space-3)}
.prose ul,.prose ol{margin-block:var(--space-4);padding-left:var(--space-5)}
.prose ul li{list-style:none;position:relative;padding-left:var(--space-4);margin-bottom:var(--space-2)}
.prose ul li::before{content:'';position:absolute;left:0;top:.68em;width:6px;height:1px;background:var(--color-primary-dim)}
.prose ol{counter-reset:li}
.prose ol li{list-style:none;position:relative;padding-left:var(--space-6);margin-bottom:var(--space-2);counter-increment:li}
.prose ol li::before{content:counter(li,decimal-leading-zero);position:absolute;left:0;top:.1em;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-primary);}
.prose strong{font-weight:600;color:var(--color-text)}
.prose a{color:var(--color-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--transition)}
.prose a:hover{color:var(--color-primary-hover)}

/* ---------------- links + buttons ---------------- */
.link{color:var(--color-primary);text-decoration:none;border-bottom:1px solid var(--color-primary-dim);transition:border-color var(--transition),color var(--transition)}
.link:hover{color:var(--color-primary-hover);border-color:var(--color-primary)}

.btn{
  display:inline-flex;align-items:center;gap:var(--space-2);
  font-size:var(--text-sm);font-weight:500;letter-spacing:-.005em;
  padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);
  border:1px solid transparent;text-decoration:none;cursor:pointer;
  transition:background var(--transition),border-color var(--transition),color var(--transition),transform var(--transition);
}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--color-primary);color:var(--color-text-inverse);font-weight:600}
.btn--primary:hover{background:var(--color-primary-hover)}
.btn--ghost{border-color:var(--color-border-strong);color:var(--color-text)}
.btn--ghost:hover{border-color:var(--color-primary);color:var(--color-primary)}
.btn--alert{background:var(--color-alert);color:#fff;font-weight:600}
.btn--alert:hover{filter:brightness(1.08)}
.btn svg{flex:none}

/* ---------------- header ---------------- */
.header{
  position:sticky;top:0;z-index:60;
  background:color-mix(in oklab,var(--color-bg) 88%,transparent);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid var(--color-divider);
}
.header__inner{display:flex;align-items:center;gap:var(--space-6);min-height:var(--space-16);}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;flex:none}
.brand__mark{color:var(--color-primary);flex:none}
.brand__text{display:flex;flex-direction:column;line-height:1.1}
.brand__name{font-family:var(--font-display);font-size:1.0625rem;letter-spacing:-.015em;color:var(--color-text)}
.brand__sub{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-faint)}

.nav{margin-left:auto;display:flex;align-items:center;gap:var(--space-1)}
.nav a{
  font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none;
  padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);
  transition:color var(--transition),background var(--transition);white-space:nowrap;
}
.nav a:hover{color:var(--color-text);background:var(--color-surface-2)}
.nav a[aria-current='page']{color:var(--color-text);font-weight:500}
.nav a[aria-current='page']::after{content:'';display:block;height:1px;background:var(--color-primary);margin-top:2px}

.header__actions{display:flex;align-items:center;gap:var(--space-2);flex:none}
.icon-btn{
  display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-md);
  background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;
  transition:color var(--transition),border-color var(--transition)
}
.icon-btn:hover{color:var(--color-text);border-color:var(--color-border-strong)}
.nav-toggle{display:none}

@media (max-width:1000px){
  .nav{
    position:fixed;inset:var(--space-16) 0 auto;flex-direction:column;align-items:stretch;gap:0;
    background:var(--color-bg);border-bottom:1px solid var(--color-border);
    padding:var(--space-3) var(--space-4) var(--space-6);
    transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity var(--transition),transform var(--transition);
    max-height:calc(100dvh - var(--space-16));overflow-y:auto;
  }
  .nav[data-open='true']{opacity:1;transform:none;pointer-events:auto}
  .nav a{padding:var(--space-3) var(--space-2);font-size:var(--text-base);border-bottom:1px solid var(--color-divider)}
  .nav a[aria-current='page']::after{display:none}
  .nav-toggle{display:grid}
}

/* ---------------- status bar ---------------- */
.statusbar{
  background:var(--color-caution-wash);
  border-bottom:1px solid color-mix(in oklab,var(--color-caution) 35%,transparent);
  font-size:var(--text-sm);
}
.statusbar__inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding-block:var(--space-3)}
.statusbar__dot{width:7px;height:7px;border-radius:var(--radius-full);background:var(--color-caution);flex:none;position:relative}
.statusbar__dot::after{content:'';position:absolute;inset:-4px;border-radius:inherit;border:1px solid var(--color-caution);opacity:.45;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:.6}100%{transform:scale(1.5);opacity:0}}
.statusbar__label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-caution)}
.statusbar__text{color:var(--color-text);flex:1 1 340px;min-width:0}
.statusbar__text a{color:var(--color-text);text-decoration:underline;text-underline-offset:3px}

/* ---------------- hero ---------------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--color-divider)}
.hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 85% 70% at 60% 15%,#000 0%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 85% 70% at 60% 15%,#000 0%,transparent 78%);
}
.hero__inner{position:relative;padding-block:clamp(var(--space-16),8vw,var(--space-24));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
@media (max-width:900px){.hero__inner{grid-template-columns:1fr}}
.hero__title{margin-top:var(--space-5)}
.hero__title em{font-style:italic;color:var(--color-primary)}
.hero__lede{margin-top:var(--space-6);max-width:56ch}
.hero__cta{margin-top:var(--space-8);display:flex;flex-wrap:wrap;gap:var(--space-3)}
.hero__meta{margin-top:var(--space-10);display:flex;flex-wrap:wrap;gap:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-divider)}
.hero__meta div{min-width:0}
.hero__figure{position:relative}

/* ---------------- cards / grids ---------------- */
.grid{display:grid;gap:var(--space-5)}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:760px){.grid--2{grid-template-columns:1fr}}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}

.card{
  background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-lg);padding:var(--space-6);
  transition:border-color var(--transition),background var(--transition),transform var(--transition);
  position:relative;display:flex;flex-direction:column;
}
a.card{text-decoration:none}
a.card:hover{border-color:var(--color-primary-dim);transform:translateY(-2px)}
.card__num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-primary);letter-spacing:.12em}
.card__title{margin-top:var(--space-3);font-family:var(--font-body);font-weight:600;font-size:var(--text-lg);letter-spacing:-.012em}
.card__body{margin-top:var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.6}
.card__more{margin-top:var(--space-5);font-size:var(--text-sm);color:var(--color-primary);display:inline-flex;align-items:center;gap:var(--space-2)}
a.card:hover .card__more{gap:var(--space-3)}
.card__more span{transition:transform var(--transition)}

/* stat */
.stat{border-left:2px solid var(--color-primary-dim);padding-left:var(--space-4)}
.stat__value{font-family:var(--font-display);font-size:var(--text-xl);line-height:1;letter-spacing:-.02em;color:var(--color-text)}
.stat__label{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.5}

/* ---------------- callouts ---------------- */
.callout{
  border:1px solid var(--color-border);border-left-width:3px;border-radius:var(--radius-md);
  background:var(--color-surface);padding:var(--space-5) var(--space-6);
  font-size:var(--text-sm);line-height:1.65;
}
.callout__title{
  font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;
  margin-bottom:var(--space-3);display:flex;align-items:center;gap:var(--space-2)
}
.callout p+p{margin-top:var(--space-3)}
.callout--alert{border-left-color:var(--color-alert);background:var(--color-alert-wash)}
.callout--alert .callout__title{color:var(--color-alert)}
.callout--caution{border-left-color:var(--color-caution);background:var(--color-caution-wash)}
.callout--caution .callout__title{color:var(--color-caution)}
.callout--info{border-left-color:var(--color-primary);background:var(--color-primary-wash)}
.callout--info .callout__title{color:var(--color-primary)}
.callout--legal{border-left-color:var(--color-border-strong);background:var(--color-surface-2)}
.callout--legal .callout__title{color:var(--color-text-faint)}

/* ---------------- tables ---------------- */
.table-scroll{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}
table.data{width:100%;border-collapse:collapse;font-size:var(--text-sm);min-width:640px}
table.data caption{text-align:left;padding:var(--space-4) var(--space-5) 0;font-size:var(--text-xs);color:var(--color-text-faint);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase}
table.data th,table.data td{padding:var(--space-3) var(--space-4);text-align:left;vertical-align:top;border-bottom:1px solid var(--color-divider)}
table.data thead th{
  font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:var(--color-text-faint);border-bottom:1px solid var(--color-border);white-space:nowrap;
}
table.data tbody tr:last-child td{border-bottom:none}
table.data tbody tr:hover{background:var(--color-surface-2)}
table.data td:first-child{color:var(--color-text);font-weight:500}
table.data .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------------- timeline ---------------- */
.timeline{position:relative;padding-left:var(--space-8)}
.timeline::before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--color-border)}
.timeline__item{position:relative;padding-bottom:var(--space-8)}
.timeline__item:last-child{padding-bottom:0}
.timeline__item::before{content:'';position:absolute;left:calc(-1 * var(--space-8) + 1px);top:6px;width:9px;height:9px;border-radius:var(--radius-full);background:var(--color-bg);border:1px solid var(--color-border-strong)}
.timeline__item--live::before{background:var(--color-caution);border-color:var(--color-caution)}
.timeline__item--done::before{background:var(--color-primary-dim);border-color:var(--color-primary-dim)}
.timeline__date{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;color:var(--color-primary);text-transform:uppercase}
.timeline__title{margin-top:var(--space-2);font-weight:600;font-size:var(--text-base)}
.timeline__body{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);max-width:62ch}

/* ---------------- section headers ---------------- */
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--space-6) var(--space-12);align-items:end;margin-bottom:var(--space-10);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-divider)}
@media (max-width:820px){.sec-head{grid-template-columns:1fr;align-items:start}}
.sec-head__title{margin-top:var(--space-3)}
.sec-head__note{font-size:var(--text-sm);color:var(--color-text-muted);max-width:56ch}

/* ---------------- page header ---------------- */
.pagehead{border-bottom:1px solid var(--color-divider);background:var(--color-surface);position:relative;overflow:hidden}
.pagehead::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:48px 48px;
  mask-image:linear-gradient(90deg,#000,transparent 60%);-webkit-mask-image:linear-gradient(90deg,#000,transparent 60%);
}
.pagehead__inner{position:relative;padding-block:clamp(var(--space-12),6vw,var(--space-20))}
.crumb{display:flex;flex-wrap:wrap;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-faint)}
.crumb a{text-decoration:none;color:var(--color-text-faint)}
.crumb a:hover{color:var(--color-primary)}
.pagehead__title{margin-top:var(--space-5);max-width:20ch}
.pagehead__lede{margin-top:var(--space-5);max-width:62ch}

/* ---------------- TOC layout ---------------- */
.doc{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(var(--space-8),4vw,var(--space-16))}
.doc>*{min-width:0}
@media (max-width:940px){.doc{grid-template-columns:minmax(0,1fr)}.doc__aside{position:static!important;order:-1}}
.doc__aside{position:sticky;top:calc(var(--space-16) + var(--space-4));align-self:start;max-height:calc(100dvh - var(--space-24));overflow-y:auto}
.toc__title{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-faint);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-divider)}
.toc ol{margin-top:var(--space-3);counter-reset:toc}
.toc li{counter-increment:toc}
.toc a{
  display:flex;gap:var(--space-3);padding:var(--space-2) 0;font-size:var(--text-sm);
  color:var(--color-text-muted);text-decoration:none;line-height:1.4;transition:color var(--transition)
}
.toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);flex:none;padding-top:.15em}
.toc a:hover{color:var(--color-text)}
.toc a.is-active{color:var(--color-primary)}
.toc a.is-active::before{color:var(--color-primary)}

.doc__section{scroll-margin-top:calc(var(--space-20) + var(--space-4))}
.doc__section+.doc__section{margin-top:clamp(var(--space-12),6vw,var(--space-20));padding-top:clamp(var(--space-10),5vw,var(--space-16));border-top:1px solid var(--color-divider)}
.doc__section>*+*{margin-top:var(--space-5)}
.doc__section h2{max-width:24ch}

/* ---------------- content slot (for editorial hand-off) ---------------- */
.slot{
  border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);
  padding:var(--space-5) var(--space-6);background:var(--color-surface-2);
  font-size:var(--text-sm);color:var(--color-text-muted);
}
.slot__tag{
  font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;
  color:var(--color-text-faint);display:block;margin-bottom:var(--space-2)
}
.slot code{font-family:var(--font-mono);font-size:.9em;color:var(--color-primary)}

/* ---------------- badges / pills ---------------- */
.pill{
  display:inline-flex;align-items:center;gap:var(--space-2);
  font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;
  padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);
  border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface)
}
.pill--alert{border-color:color-mix(in oklab,var(--color-alert) 45%,transparent);color:var(--color-alert);background:var(--color-alert-wash)}
.pill--caution{border-color:color-mix(in oklab,var(--color-caution) 45%,transparent);color:var(--color-caution);background:var(--color-caution-wash)}
.pill--info{border-color:color-mix(in oklab,var(--color-primary) 40%,transparent);color:var(--color-primary);background:var(--color-primary-wash)}
.pill--ok{border-color:color-mix(in oklab,var(--color-success) 45%,transparent);color:var(--color-success);background:var(--color-success-wash)}

/* ---------------- pull quote ---------------- */
.pullquote{
  font-family:var(--font-display);font-size:var(--text-xl);line-height:1.3;letter-spacing:-.02em;
  border-left:2px solid var(--color-primary);padding-left:var(--space-6);margin-block:var(--space-10);
  max-width:26ch;text-wrap:balance
}
.pullquote cite{display:block;margin-top:var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-faint)}

/* ---------------- author / credential strip ---------------- */
.author{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-5);align-items:start}
.author__mark{width:56px;height:56px;border-radius:var(--radius-full);border:1px solid var(--color-border);display:grid;place-items:center;font-family:var(--font-display);font-size:1.25rem;color:var(--color-primary);background:var(--color-surface-2);flex:none}
.credlist{display:flex;flex-wrap:wrap;gap:var(--space-2)}

/* ---------------- resource list ---------------- */
.reslist{border-top:1px solid var(--color-divider)}
.reslist__item{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3) var(--space-6);align-items:baseline;
  padding-block:var(--space-5);border-bottom:1px solid var(--color-divider);
}
.reslist__item:hover{background:var(--color-surface)}
.reslist__name{font-weight:600;font-size:var(--text-base)}
.reslist__name a{text-decoration:none;color:var(--color-text);border-bottom:1px solid var(--color-primary-dim)}
.reslist__name a:hover{color:var(--color-primary)}
.reslist__desc{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);max-width:70ch}
.reslist__meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
@media (max-width:600px){.reslist__item{grid-template-columns:1fr}}

/* ---------------- references ---------------- */
.refs{counter-reset:ref}
.refs li{
  counter-increment:ref;position:relative;padding-left:var(--space-10);
  padding-block:var(--space-4);border-bottom:1px solid var(--color-divider);
  font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6
}
.refs li::before{content:counter(ref);position:absolute;left:0;top:var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-primary)}
.refs li a{word-break:break-word}
.refs cite{font-style:italic;color:var(--color-text)}

/* ---------------- forms / contact ---------------- */
.offergrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-5)}
.offer{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);background:var(--color-surface);display:flex;flex-direction:column}
.offer__icon{color:var(--color-primary);margin-bottom:var(--space-4)}
.offer p{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);flex:1}
.offer .btn{margin-top:var(--space-5);align-self:flex-start}

/* ---------------- CTA band ---------------- */
.cta-band{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);padding:clamp(var(--space-8),5vw,var(--space-16));position:relative;overflow:hidden}
.cta-band::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 120% at 100% 0%,var(--color-primary-wash),transparent 70%);pointer-events:none}
.cta-band>*{position:relative}

/* ---------------- footer ---------------- */
.footer{border-top:1px solid var(--color-divider);background:var(--color-surface);margin-top:var(--space-16)}
.footer__grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:var(--space-8);padding-block:clamp(var(--space-10),5vw,var(--space-16))}
@media (max-width:820px){.footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.footer__grid{grid-template-columns:1fr}}
.footer h4{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-faint);margin-bottom:var(--space-4)}
.footer li+li{margin-top:var(--space-2)}
.footer a{font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none;transition:color var(--transition)}
.footer a:hover{color:var(--color-primary)}
.footer__bottom{border-top:1px solid var(--color-divider);padding-block:var(--space-6);display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-faint)}

/* ---------------- misc ---------------- */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-3) var(--space-5);border-radius:0 0 var(--radius-md) 0}
.skip:focus{left:0}
.divider{height:1px;background:var(--color-divider);border:none}
/* Scroll-in: CSS-only, progressive enhancement. Content is ALWAYS visible
   if the browser does not support scroll-driven animations. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .reveal{
      animation:reveal-in linear both;
      animation-timeline:view();
      animation-range:entry 0% cover 22%;
    }
    @keyframes reveal-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  }
}
.copy-note{font-size:var(--text-xs);color:var(--color-text-faint)}
.letter{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:clamp(var(--space-6),4vw,var(--space-10))}
.letter p{margin-block:var(--space-4);font-size:var(--text-sm);line-height:1.7}
.letter p:first-of-type{margin-top:0}
