/* Shared editorial system, November 2026. Loaded after component styles. */
:root {
  --ct-page-gutter:38px;
  --ct-page-top:64px;
  --ct-page-paper:#f7f7f7;
}
html {background:var(--ct-page-paper);}
/* WordPress can leave toolbar spacing behind after the portfolio hides the toolbar. */
html:has(body > #triebus-folio) {margin-top:0!important;}
body {background:transparent;}
#triebus-folio {
  --ct-caption-gap:28px;
  --ct-title-gap:48px;
  --ct-section-gap:96px;
  --ct-project-space:clamp(160px,20cqw,256px);
  --ct-subheading-size:clamp(28px,3.1cqw,43px);
  padding-top:calc(var(--ct-page-top) + env(safe-area-inset-top,0px));
}
#triebus-folio > .ct-intro,
#triebus-folio .ct-info-page:not(.ct-info-legal) .ct-info-head {margin-top:0;}
#triebus-folio .ct-intro-note {gap:12px;}
#triebus-folio .ct-ensemble-signature {margin-top:12px;}

/* A fixed, transparent dock from the first rendered frame, without DOM moves. */
body > .ct-nav {
  position:fixed;inset:auto auto max(12px,env(safe-area-inset-bottom,0px)) var(--ct-page-gutter);
  z-index:20;display:flex;align-items:center;flex-wrap:wrap;gap:clamp(18px,2.4vw,38px);
  width:fit-content;max-width:calc(100% - 2 * var(--ct-page-gutter));margin:0;padding:0;
  background:transparent;color:#000;font:500 clamp(17px,1.28vw,20px)/1.2 'Triebus Folio Skyline',sans-serif;
  font-feature-settings:'salt' 0,'ss01' 0;font-synthesis:none;
}
body > .ct-nav a {
  display:inline-flex;align-items:center;min-height:44px;color:inherit;text-decoration:none;
  text-decoration-thickness:1px;text-underline-offset:.2em;
}
body > .ct-nav a:is(:hover,:focus-visible,[aria-current=page]) {text-decoration:underline;}
body > .ct-nav a:focus-visible {outline:1px solid;outline-offset:4px;}
#triebus-folio .ct-footer {padding-bottom:calc(var(--dock-height,44px) + 24px + env(safe-area-inset-bottom,0px));}

/* Reading links share the body cut and size. Expressive glyphs stay in headings. */
#triebus-folio :is(.ct-work-copy .ct-work-control,.ct-work-control,.ct-about-links .ct-link,.ct-publications-link .ct-paper-link,.ct-dates-more > summary) {
  font:400 var(--ct-reading-size)/1.5 var(--ct-reading-face);letter-spacing:normal;
  font-feature-settings:'salt' 0,'ss01' 0;text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:.2em;
}
#triebus-folio .ct-work-copy .ct-work-control,
#triebus-folio .ct-afk .ct-work-copy .ct-work-control {margin:16px 0 0;padding-block:0;}
#triebus-folio .ct-about-links {margin-top:24px;}
#triebus-folio .ct-info-page .ct-info-section h2,
#triebus-folio .ct-info-page .ct-vita-entry > summary {
  font-size:var(--ct-subheading-size);font-weight:500;line-height:1.18;letter-spacing:0;
}
#triebus-folio .ct-info-section {margin-top:var(--ct-section-gap);gap:28px 7%;}
#triebus-folio .ct-vita {margin-top:var(--ct-section-gap);}
#triebus-folio .ct-vita-entry:first-of-type {margin-top:var(--ct-section-gap);}
#triebus-folio .ct-vita-entry {margin-top:40px;}
#triebus-folio .ct-vita-body {margin:28px 0 40px;}

/* Image ink is an explicit contrast choice. Dot and every text node always agree. */
#triebus-folio :is(.ct-credit,.ct-full-credit) {--ct-credit-ink:#fff;}
#triebus-folio :is(.ct-credit,.ct-full-credit)[data-ink=black] {--ct-credit-ink:#000;}
#triebus-folio :is(.ct-credit,.ct-full-credit),
#triebus-folio :is(.ct-credit,.ct-full-credit) * {
  color:var(--ct-credit-ink)!important;text-shadow:none!important;box-shadow:none!important;filter:none!important;
}
#triebus-folio :is(.ct-credit,.ct-full-credit) button::before {background:var(--ct-credit-ink)!important;}
#triebus-folio .ct-full-credit .ct-credit-copy {display:block;}
#triebus-folio .ct-full-credit .ct-credit-copy > span {display:block;}

@media(min-width:1540px) {
  :root {--ct-page-gutter:calc((100vw - 1540px)/2 + 38px);}
}
@media(max-width:820px) {
  :root {--ct-page-gutter:24px;}
}
@media(max-width:800px) {
  :root {--ct-page-top:56px;}
  body > .ct-nav {gap:clamp(18px,5.5vw,30px);font-size:17px;}
  #triebus-folio {--ct-section-gap:80px;--ct-project-space:160px;--ct-title-gap:40px;--ct-caption-gap:28px;}
  #triebus-folio .ct-intro-note {gap:12px;margin-top:48px;}
  #triebus-folio .ct-ensemble-signature {margin:0;}
  #triebus-folio .ct-info-page:not(.ct-info-legal) .ct-info-head {margin-top:0;gap:48px;}
  #triebus-folio .ct-feature-media {grid-column:1/-1;margin-top:var(--ct-title-gap);}
  #triebus-folio .ct-project-body,
  #triebus-folio .ct-afk .ct-project-body {margin-top:var(--ct-title-gap);}
  #triebus-folio .ct-project-body > .ct-photo,
  #triebus-folio .ct-afk .ct-project-body > .ct-photo {width:100%;margin-left:0;}
  #triebus-folio .ct-work-copy,
  #triebus-folio .ct-afk .ct-work-copy,
  #triebus-folio .ct-feature > .ct-work-copy {display:block;margin:var(--ct-caption-gap) 0 0;}
  #triebus-folio .ct-feature .ct-work-control,
  #triebus-folio .ct-project .ct-work-control {margin-left:0;}
  #triebus-folio .ct-directory-list {gap:var(--ct-project-space);}
  #triebus-folio .ct-directory,
  #triebus-folio .ct-reading,
  #triebus-folio .ct-about {margin-top:var(--ct-project-space);}
  #triebus-folio .ct-reading,
  #triebus-folio .ct-about {grid-template-columns:1fr;gap:40px;}
  #triebus-folio .ct-reading-list,
  #triebus-folio .ct-about > div {margin-left:0;}
  #triebus-folio .ct-reading-list {gap:32px;}
  #triebus-folio .ct-info-section {gap:28px;}
}
@media(max-width:480px) {
  :root {--ct-page-gutter:18px;}
}
@media(max-width:800px),(hover:none),(pointer:coarse) {
  /* Stable mobile surface with the same paper tone through Safari's safe area. */
  body > .ct-surface {position:fixed;inset:0 0 auto;height:100lvh;background-color:var(--ct-page-paper);}
  body > .ct-surface::after {
    content:'';position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(to bottom,var(--ct-page-paper) 0,transparent 200px);
  }
}
@media print {body > .ct-nav {display:none;}}
