/* Talty Literary 1.5.0 — manuscript-page system. Self-hosted OFL fonts. */
@font-face { font-family: Newsreader; src: url("../fonts/Newsreader.ttf") format("truetype"); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: Newsreader; src: url("../fonts/Newsreader-Italic.ttf") format("truetype"); font-weight: 200 800; font-style: italic; font-display: swap; }
@font-face { font-family: "Atkinson Hyperlegible"; src: url("../fonts/AtkinsonHyperlegible-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Atkinson Hyperlegible"; src: url("../fonts/AtkinsonHyperlegible-Bold.ttf") format("truetype"); font-weight: 700; font-style: normal; font-display: swap; }
:root {
    --paper: #FBFAF8; --ink: #191C1A; --spruce: #2F4A3C; --oxblood: #6E2230; --gold: #B08B3F;
    --tl-display: Newsreader, Georgia, serif;
    --tl-sans: "Atkinson Hyperlegible", Arial, sans-serif;
    --tl-pad: clamp(1.25rem, 4vw, 4rem); --tl-max: 82rem;
    --tl-columns: minmax(0, 22fr) minmax(0, 58fr) minmax(0, 8fr);
    --tl-gap: clamp(1.5rem, 3.4vw, 3rem);
}
html { scroll-behavior: smooth; }
body.brand-system--tl { margin: 0; background: var(--paper); color: var(--ink); font: 400 1.25rem/1.6 var(--tl-display); font-optical-sizing: auto; }
.brand-system--tl *, .brand-system--tl *::before, .brand-system--tl *::after { box-sizing: border-box; }
.brand-system--tl img { max-width: 100%; height: auto; display: block; }
.brand-system--tl p { margin: 0 0 1.1em; }
/* ---------------------------------------------------------------------------
   LINK SYSTEM — five types, closed set. Every anchor on the site is exactly one.
   Adding a sixth type means adding it here and to tests/link-system-contracts.mjs;
   an anchor belonging to none of them fails that test.

   1. PROSE      a bare <a> inside a sentence.        Serif, oxblood, underlined.
   2. .tl-action "go here next" — stands alone.       Sans, oxblood, gold rule.
   3. .tl-nav    an entry in a list of destinations.  Sans, no rule until hover.
   4. .tl-quiet  legal and utility, subordinate.      Small sans, spruce.
   5. .tl-title  a record title that happens to link. Inherits the heading; ink.

   WHY ONLY TYPE 1 KEEPS ITS UNDERLINE AT REST. Oxblood on ink measures 1.58:1,
   so a link inside a paragraph is NOT distinguishable from the text around it by
   colour — the underline is the only thing carrying SC 1.4.1, and removing it
   from prose breaks the site. Types 2-5 may drop the rule only because they do
   not sit inside a block of text, which is the condition 1.4.1 applies to. The
   class is the assertion that a link is standalone. Do not move one of these
   classes onto a link inside a sentence, and do not strip the underline from a
   bare anchor.

   Measured against the palette: oxblood/paper 10.41:1, spruce/paper 9.30:1,
   ink/paper 16.47:1, paper/oxblood 10.41:1 (all AA text). The gold rule is
   decoration, not the sole identifier: gold/paper 3.05:1, gold/spruce 3.05:1,
   gold/ink 5.41:1 (all clear the 3:1 non-text floor).
   --------------------------------------------------------------------------- */
.brand-system--tl a { color: var(--oxblood); text-underline-offset: .22em; text-decoration-thickness: 1px; }
.brand-system--tl a:hover { text-decoration-thickness: 2px; }
.brand-system--tl .tl-action {
    display: inline-block; font: 400 .95rem/1.5 var(--tl-sans); letter-spacing: .01em;
    text-decoration: underline; text-decoration-color: var(--gold);
    text-decoration-thickness: 2px; text-underline-offset: .45em;
}
.brand-system--tl .tl-action:hover, .brand-system--tl .tl-action:focus-visible { text-decoration-color: currentColor; }
.brand-system--tl .tl-nav { font: 400 1rem/1.5 var(--tl-sans); text-decoration: none; }
.brand-system--tl .tl-quiet { font: 400 .875rem/1.5 var(--tl-sans); color: var(--spruce); text-decoration: none; }
.brand-system--tl .tl-nav:hover, .brand-system--tl .tl-nav:focus-visible,
.brand-system--tl .tl-quiet:hover, .brand-system--tl .tl-quiet:focus-visible { text-decoration: underline; text-decoration-thickness: 2px; }
.brand-system--tl .tl-title { color: inherit; text-decoration: none; }
.brand-system--tl .tl-title:hover, .brand-system--tl .tl-title:focus-visible { color: var(--oxblood); text-decoration: underline; text-decoration-thickness: 2px; }
.brand-system--tl :focus-visible { outline: 3px solid var(--oxblood); outline-offset: 5px; }
.brand-system--tl h1, .brand-system--tl h2, .brand-system--tl h3, .brand-system--tl h4 { font-family: var(--tl-display); font-weight: 400; line-height: 1.08; letter-spacing: -.025em; margin: 0 0 .6em; text-wrap: pretty; }
.brand-system--tl h1 { font-size: clamp(2.65rem, 4.8vw, 4.6rem); max-width: 23ch; }
.brand-system--tl h2 { font-size: clamp(2rem, 3vw, 2.9rem); }
.brand-system--tl h3 { font-size: 1.7rem; }
.brand-system--tl strong { font-weight: 600; }
.brand-system--tl .container, .manuscript-row { width: min(100%, var(--tl-max)); margin-inline: auto; padding-inline: var(--tl-pad); }
.manuscript-row { display: grid; grid-template-columns: var(--tl-columns); gap: var(--tl-gap); padding-block: clamp(2.5rem, 4.5vw, 4.5rem); }
.manuscript-text { min-width: 0; max-width: 68ch; }
.margin-note, .eyebrow, .record-meta, .record-areas, .utility, .site-kicker { font: 400 .875rem/1.5 var(--tl-sans); color: var(--spruce); letter-spacing: normal; text-transform: none; }
.margin-note { grid-column: 1; padding-top: .35rem; }
.brand-system--tl .margin-note h2 { font: 700 1rem/1.4 var(--tl-sans); letter-spacing: normal; color: var(--spruce); }
.manuscript-text { grid-column: 2; }
.home-opening { grid-template-columns: minmax(0, 1fr) minmax(9rem, .2fr); padding-block: clamp(3rem, 5.5vw, 5rem); }
.home-opening .manuscript-text { grid-column: 1; max-width: none; }
.brand-system--tl .home-opening h1 { font-size: clamp(3.2rem, 6.7vw, 6.2rem); max-width: 21ch; line-height: 1.02; margin-bottom: .4em; text-wrap: balance; }
.home-opening .literary-deck { max-width: 46ch; margin-bottom: 1rem; }
.brand-system--tl .home-founder { font: .875rem/1.5 var(--tl-sans); color: var(--spruce); margin-bottom: 0; }
.home-index { grid-column: 2; align-self: end; padding-bottom: .15rem; }
.home-index a { display: block; padding-block: .8rem; border-top: 1px solid var(--gold); font: 1.1rem/1.4 var(--tl-sans); text-decoration: none; }
.home-index a:last-child { border-bottom: 1px solid var(--gold); }
.home-index a:hover, .home-index a:focus-visible { text-decoration: underline; }
.literary-deck, .lead { font-size: clamp(1.3rem, 2vw, 1.55rem); line-height: 1.5; max-width: 58ch; }
.schedule { border-block: 1px solid var(--gold); padding-block: 2rem; }
.schedule p { margin-bottom: .65rem; }
.schedule p a + a { margin-left: 1.25rem; }
.schedule-entry { padding-block: 1.1rem; border-bottom: 1px solid var(--gold); }
.schedule-entry:last-child { border-bottom: 0; }
.schedule-entry h3 { margin-bottom: .25rem; }
.record-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-bottom: .65rem; }
.study-band .manuscript-text { grid-column: 2 / -1; max-width: none; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: var(--tl-gap); font-size: 1.35rem; }
.study-band article { display: flex; flex-direction: column; align-items: start; }
.study-band article + article { border-left: 1px solid var(--gold); padding-left: var(--tl-gap); }
.study-band h3 { font-size: clamp(2.5rem, 3.7vw, 3.6rem); }
.study-band article > a { margin-top: auto; }
.manuscript-divider { width: min(100%, var(--tl-max)); margin-inline: auto; text-align: center; color: var(--gold); font: 1.5rem/1 var(--tl-display); padding-block: .5rem; }
.gather-band { border-top: 1px solid var(--gold); }
.gather-band .manuscript-text { grid-column: 2 / -1; max-width: none; }
.gather-band article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); column-gap: var(--tl-gap); padding-block: 1.5rem; border-bottom: 1px solid var(--gold); }
.gather-band article:first-child { padding-top: 0; }
.gather-band article:last-child { padding-bottom: 0; border-bottom: 0; }
.gather-band h3 { grid-column: 1; grid-row: 1 / 3; font-size: clamp(1.7rem, 2.5vw, 2.4rem); }
.gather-band article > p, .gather-band article > a { grid-column: 2; }
.gather-band p { margin-bottom: .5rem; }
.craft-stage { background: var(--spruce); color: var(--paper); }
.craft-pull { padding-block: clamp(3.5rem, 6vw, 6rem); }
.craft-pull .margin-note, .brand-system--tl .craft-pull a { color: var(--paper); }
.craft-pull :focus-visible { outline-color: var(--paper); }
.craft-mark { display: block; margin-top: 1.25rem; color: var(--gold); font: 5rem/1 var(--tl-display); }
.craft-pull .manuscript-text > p { font-size: clamp(1.8rem, 3vw, 2.65rem); line-height: 1.3; }
.contact-close { border-top: 1px solid var(--gold); }
.contact-close p { max-width: 42ch; }
/* The skip link targets #main-content, which IS .site-main — a descendant
   selector cannot reach it. Without its own scroll-margin the element lands at
   viewport top, behind the 6rem sticky header, so "Skip to content" hid the
   first screenful of every page from keyboard users. The descendant rule below
   covers in-page anchors; this one covers the skip target itself. */
.brand-system--tl .site-main { padding: 0; scroll-margin-top: 6rem; }
.brand-system--tl .site-main [id] { scroll-margin-top: 7rem; }
.skip-link { position: fixed; top: .5rem; left: .5rem; z-index: 2000; transform: translateY(-200%); padding: .65rem 1rem; background: var(--paper); }
.skip-link:focus { transform: none; }
.site-header { position: sticky; top: 0; z-index: 1000; background: var(--paper); border-bottom: 1px solid var(--gold); }
.header-inner { display: flex; min-height: 6rem; align-items: center; justify-content: space-between; gap: 2rem; }
.brand-system--tl .site-logo { text-decoration: none; }
.brand-wordmark__name { font: 400 2.1rem/1 var(--tl-display); letter-spacing: -.03em; }
.main-nav ul { display: flex; gap: 1.45rem; align-items: center; list-style: none; padding: 0; margin: 0; }
.main-nav a { display: block; padding-block: .8rem; font: 400 1rem/1.3 var(--tl-sans); text-decoration: none; white-space: nowrap; }
.main-nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; }
.mobile-menu-toggle { display: none; background: transparent; border: 1px solid var(--oxblood); color: var(--oxblood); }
.site-button-row, .button-row { display: flex; flex-wrap: wrap; gap: .8rem 1.3rem; align-items: center; margin-top: 1.4rem; }
.site-button, .brand-button, .btn { display: inline-block; padding: .7rem 1rem; border: 1px solid var(--oxblood); font: 400 1rem/1.4 var(--tl-sans); text-decoration: none; border-radius: 0; }
.brand-system--tl .site-button--literary, .brand-system--tl .brand-button--primary, .brand-system--tl .btn--primary { background: var(--oxblood); color: var(--paper); }
.brand-system--tl .brand-button--secondary, .brand-system--tl .site-button--secondary, .brand-system--tl .btn--secondary { background: transparent; color: var(--oxblood); }
.brand-system--tl .btn--small, .brand-system--tl .brand-button--small { padding: .5rem .75rem; font-size: .875rem; }
.page-hero, .page-header { padding-block: clamp(2.5rem, 5vw, 5rem); border-bottom: 1px solid var(--gold); }
.page-hero .container, .page-header .container { display: grid; grid-template-columns: var(--tl-columns); column-gap: var(--tl-gap); }
.page-hero .container > *, .page-header .container > * { grid-column: 2; min-width: 0; }
.page-hero .container > .eyebrow { grid-column: 1; grid-row: 1 / span 4; padding-top: .4rem; }
.page-header__description { max-width: 58ch; }
.offer-layout { display: grid; grid-template-columns: var(--tl-columns); gap: var(--tl-gap); padding-block: 3rem; }
.offer-aside { grid-column: 1; font: .875rem/1.5 var(--tl-sans); color: var(--spruce); }
.brand-system--tl .offer-aside h2 { font: 700 1rem/1.5 var(--tl-sans); letter-spacing: normal; }
.offer-aside ul { list-style: none; margin: 0 0 1rem; padding: 0; }
.offer-aside li { margin-bottom: .7rem; }
.offer-content { grid-column: 2; min-width: 0; max-width: 68ch; }
.offer-content > section { padding-bottom: 2.5rem; margin-bottom: 2.5rem; border-bottom: 1px solid var(--gold); }
.offer-content > section:last-child { margin-bottom: 0; }
.offer-content .eyebrow { margin-bottom: 1rem; }
.deliverable { padding-block: 1.25rem; border-top: 1px solid var(--gold); }
.deliverable p { margin-bottom: 0; }
.deliverable h3 { font-size: 1.6rem; }
.boundary { border-top: 1px solid var(--gold); padding-top: 1.5rem; }
.program-listing { display: grid; grid-template-columns: var(--tl-columns); column-gap: var(--tl-gap); padding-block: 2rem; border-bottom: 1px solid var(--gold); }
.program-listing > * { grid-column: 2; min-width: 0; }
.brand-system--tl .program-listing > h2 { grid-column: 1; grid-row: 1 / span 3; color: var(--spruce); font: 700 1rem/1.5 var(--tl-sans); letter-spacing: normal; }
.program-listing__records article { padding-block: 1.5rem; border-bottom: 1px solid var(--gold); }
.program-listing__records article:first-child { padding-top: 0; }
.program-listing__records article:last-child { border-bottom: 0; }
.chip { display: inline-block; border: 1px solid var(--spruce); color: var(--spruce); padding: .2rem .5rem; font: .875rem/1.4 var(--tl-sans); }
/* The four join-statuses differ by FORM, not by colour. Gold reaches only
   2.82:1 against the #F0F2EF listing band, under the 3:1 non-text floor, and
   a second hue would carry meaning colour is not allowed to carry alone. One
   spruce throughout: 8.61:1 on the band, 9.30:1 on paper. The label states the
   status in words regardless, so the form is reinforcement, never the message. */
.chip--open { background: var(--spruce); color: var(--paper); }
.chip--application { border-width: 3px; border-style: double; }
.chip--development { border-style: dashed; }
/* A record card: status first, then the title, then what is known about it. */
.record-card__status { margin-bottom: .6rem; }
.record-card__summary { font-size: 1.05rem; }
.record-card__note { font: 400 .875rem/1.5 var(--tl-sans); color: var(--spruce); margin-bottom: 0; }
.program-listing > .tl-action { margin-top: 2.5rem; }
.integration-slot { margin-block: 1rem; }
/* The frame belongs to an embed. Any other mode renders a link, and reserving
   iframe-shaped space around a link draws an empty box on a live page. */
.integration-slot--media[data-mode="embed"] { width: 100%; min-width: 0; aspect-ratio: 16 / 9; border: 1px solid var(--gold); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; padding: 1rem; text-align: center; }
.integration-slot iframe { display: block; width: 100%; height: 34rem; border: 0; }
.integration-slot--media iframe { height: 100%; min-height: 0; flex: 1; }
.inquiry-topics { list-style: none; margin: 0; padding: 0; }
.inquiry-topics li { padding-block: .65rem; border-bottom: 1px solid var(--gold); }
.inquiry-layout { display: grid; grid-template-columns: var(--tl-columns); gap: var(--tl-gap); padding-block: 3rem; }
input, select, textarea { max-width: 100%; font: 1rem/1.5 var(--tl-sans); padding: .7rem; border: 1px solid var(--spruce); background: var(--paper); color: var(--ink); }
.page-content { padding-block: 3rem; }
.brand-system--tl .container--narrow { width: min(100%, var(--tl-max)); padding-left: calc(var(--tl-pad) + (min(100vw, var(--tl-max)) - 2 * var(--tl-pad) - 2 * var(--tl-gap)) * .25 + var(--tl-gap)); padding-right: calc(var(--tl-pad) + (min(100vw, var(--tl-max)) - 2 * var(--tl-pad) - 2 * var(--tl-gap)) * .091 + var(--tl-gap)); }
.policy-content h2 { font-size: 1.85rem; margin-top: 2rem; }
.record-page { width: min(100%, var(--tl-max)); padding: 3rem var(--tl-pad); margin-inline: auto; }
.record-page__body { max-width: 68ch; }
.record-page__meta { display: flex; flex-wrap: wrap; gap: 1rem; font: .875rem/1.5 var(--tl-sans); color: var(--spruce); padding-block: 1rem; }
.posts-grid, .people-list { display: block; }
.offering-card, article.post, .person-record { padding-block: 2rem; border-bottom: 1px solid var(--gold); }
.person-record img { max-width: 16rem; }
.steps { padding-left: 1.25rem; }
.step { margin-bottom: 1rem; }
.site-footer { border-top: 1px solid var(--gold); padding-block: 3rem 2rem; }
.footer__content { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem; }
.footer__tagline { max-width: 30ch; margin-top: 1rem !important; font-size: 1.5rem; line-height: 1.35; }
.brand-system--tl .footer__nav-title { font: 700 .875rem/1.5 var(--tl-sans); color: var(--spruce); letter-spacing: normal; }
.footer__nav ul { list-style: none; margin: 0; padding: 0; }
.footer__nav li { margin-bottom: .65rem; }
.footer__nav a { font: 1rem/1.5 var(--tl-sans); }
.footer__bottom { border-top: 1px solid var(--gold); margin-top: 2.5rem; padding-top: 1.5rem; font: .875rem/1.5 var(--tl-sans); }
.footer__legal { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-bottom: 1.5rem; }
.footer__bottom p { margin-bottom: .4rem; }
.preview-banner { padding: .4rem 1rem; text-align: center; font: .875rem/1.4 var(--tl-sans); color: var(--spruce); border-bottom: 1px solid var(--gold); }
@media (max-width: 900px) {
    :root { --tl-columns: minmax(0, 1fr); --tl-gap: 1.25rem; }
    .manuscript-row > *, .page-hero .container > *, .page-hero .container > .eyebrow, .page-header .container > *, .offer-layout > *, .program-listing > *, .brand-system--tl .program-listing > h2 { grid-column: 1; grid-row: auto; }
    .margin-note, .offer-aside { max-width: 58ch; }
    .manuscript-text { max-width: 68ch; }
    .page-hero .container { row-gap: .25rem; }
    .home-opening { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .home-index { grid-column: 1; display: flex; flex-wrap: wrap; gap: 0 1.5rem; border-top: 1px solid var(--gold); }
    .home-index a, .home-index a:last-child { border: 0; padding-block: .75rem; }
    .study-band .manuscript-text, .gather-band .manuscript-text { grid-column: 1; }
    .craft-mark { font-size: 2.5rem; margin-top: .5rem; }
    .header-inner { min-height: 5rem; }
    .has-js .mobile-menu-toggle { display: flex; align-items: center; justify-content: center; min-width: 2.8rem; min-height: 2.8rem; padding: .5rem; }
    .main-nav { width: 100%; }
    .main-nav ul { display: block; padding-block: 1rem; }
    .main-nav a { padding-block: .8rem; }
    .has-js .brand-system--tl .main-nav { display: none; position: absolute; top: 100%; left: 0; padding-inline: var(--tl-pad); border-bottom: 1px solid var(--gold); background: var(--paper); }
    .has-js .main-nav.is-open { display: block; }
    html:not(.has-js) .header-inner { flex-wrap: wrap; padding-top: 1rem; }
    html:not(.has-js) .brand-system--tl .main-nav { position: static; width: 100%; }
    .brand-system--tl .container--narrow { padding-inline: var(--tl-pad); }
    .footer__content { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .footer__about { grid-column: 1 / -1; }
    .offer-aside { padding-bottom: 1rem; border-bottom: 1px solid var(--gold); }
}
@media (max-width: 640px) {
    .study-band .manuscript-text { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .study-band article + article { border-left: 0; padding-left: 0; border-top: 1px solid var(--gold); padding-top: 2rem; }
}
@media (max-width: 500px) {
    .brand-wordmark__name { font-size: 1.75rem; }
    .brand-system--tl .home-opening h1 { font-size: clamp(2.85rem, 11vw, 3.8rem); }
    .home-opening { padding-top: 2rem; }
    .header-inner { gap: .75rem; }
    .study-band .manuscript-text { font-size: 1.25rem; }
    .gather-band article { display: block; }
    .footer__content { gap: 1.25rem; }
}
@media (prefers-reduced-motion: no-preference) {
    .home-index a { transition: padding-left 180ms ease; }
    .home-index a:hover, .home-index a:focus-visible { padding-left: .35rem; }
    .main-nav a { transition: text-underline-offset 180ms ease; }
    .main-nav a:hover { text-decoration: underline; text-underline-offset: .4em; }
    .site-button, .brand-button { transition: background-color 180ms ease, color 180ms ease; }
    .brand-system--tl .site-button:hover, .brand-system--tl .brand-button:hover { background: var(--oxblood); color: var(--paper); }
    .has-js .main-nav.is-open { animation: tl-menu-in 180ms ease-out; }
    @keyframes tl-menu-in { from { opacity: .8; transform: translateY(-.35rem); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (max-width: 360px) {
    .brand-system--tl .header-inner { gap: .5rem; padding-inline: .75rem; }
}

/* Editorial composition. Reading margins remain on reading pages, not every band. */
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.brand-system--tl .header-inner { min-height: 5.25rem; }
.editorial-opening { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr); gap: clamp(2rem, 4vw, 4rem); padding-block: 3.5rem 2.5rem; align-items: center; }
.brand-system--tl .editorial-opening h1 { font-size: clamp(3.1rem, 5.15vw, 5rem); line-height: 1.02; max-width: 21ch; text-wrap: pretty; margin-bottom: .5em; }
.editorial-opening .literary-deck { font-size: clamp(1.2rem, 1.7vw, 1.4rem); max-width: 40ch; }
.editorial-opening .button-row { margin-block: 1.5rem; gap: .75rem; }
.brand-system--tl .editorial-opening .home-founder { font-size: .85rem; }
/* The opening object: six craft elements as spines on a shelf.
   Drawn in CSS — no image asset, nothing generated, nothing implying a room or
   a book the company has not published. Uneven heights because a real shelf is
   uneven; the row runs past the right gutter because a shelf continues. */
.opening-shelf { margin: 0; align-self: end; min-width: 0; display: flex; flex-direction: column; }
.opening-shelf .shelf { display: flex; align-items: flex-end; gap: .45rem; margin-right: calc(var(--rail, 4vw) * -2); padding-bottom: .4rem; }
.opening-shelf .spine {
    flex: 1 1 0; min-width: 0; position: relative;
    display: flex; align-items: flex-end; justify-content: center;
    padding: 1rem 0 1.15rem;
    border: 1px solid var(--ink);
    background: #F1EFE9;
}
/* the band a bound spine carries near its head */
.opening-shelf .spine::before {
    content: ""; position: absolute; left: 0; right: 0; top: 1.6rem; height: 1.35rem;
    border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; opacity: .45;
}
.opening-shelf .spine span {
    writing-mode: vertical-rl; transform: rotate(180deg);
    font: 400 clamp(.95rem, 1.45vw, 1.3rem)/1 var(--tl-display);
    letter-spacing: .01em; white-space: nowrap;
}
.opening-shelf .spine--1 { height: 17rem; background: var(--spruce); color: var(--paper); border-color: var(--spruce); }
.opening-shelf .spine--2 { height: 20.5rem; }
.opening-shelf .spine--3 { height: 15.5rem; background: var(--gold); color: #1B1403; border-color: var(--gold); }
.opening-shelf .spine--4 { height: 19rem; }
.opening-shelf .spine--5 { height: 16.5rem; background: var(--oxblood); color: var(--paper); border-color: var(--oxblood); }
.opening-shelf .spine--6 { height: 21rem; }
.opening-shelf .shelf-floor { border-top: 2px solid var(--ink); margin-right: calc(var(--rail, 4vw) * -2); }
.opening-shelf .shelf-caption { font: 400 .875rem/1.5 var(--tl-sans); color: var(--spruce); padding-top: .65rem; }
.home-directory .home-index { display: flex; justify-content: flex-end; gap: 1.75rem; border-top: 1px solid var(--gold); }
.home-directory .home-index a { border: 0; font-size: .9rem; padding-block: .8rem; }
.home-directory .home-index a:hover { padding-left: 0; }
.tl-page-home .schedule { grid-template-columns: minmax(8rem, .25fr) minmax(0, 1fr); padding-block: 1.6rem; background: #F0F2EF; border: 0; }
.tl-page-home .schedule > .manuscript-text { max-width: none; display: flex; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap; align-items: center; }
.tl-page-home .schedule .integration-slot, .tl-page-home .schedule p { margin: 0; }
.tl-page-home .schedule-entry { width: 100%; display: grid; grid-template-columns: 11rem minmax(0, 1fr) auto; gap: 1rem; align-items: center; }
.tl-page-home .schedule-entry .record-meta, .tl-page-home .schedule-entry .utility { margin: 0; }
.editorial-study, .editorial-gather { padding-block: clamp(3rem, 5vw, 5rem); }
.brand-system--tl .editorial-study > .margin-note h2, .brand-system--tl .editorial-gather > .margin-note h2 { font-family: var(--tl-display); font-weight: 400; font-size: 2.25rem; margin-bottom: 1.25rem; }
.editorial-study .manuscript-text { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 3rem; }
.editorial-study article { padding: 1.5rem 0; }
.editorial-study h3 { max-width: 16ch; font-size: clamp(2.5rem, 4vw, 3.75rem); }
.editorial-study p { max-width: 39ch; font-size: 1.35rem; }
.editorial-study .study-manuscripts { padding: 2rem 2.25rem; border: 0; background: var(--ink); color: var(--paper); }
.brand-system--tl .study-manuscripts a { color: var(--paper); }
.study-manuscripts :focus-visible { outline-color: var(--paper); }
.study-manuscripts .margin-art { width: min(100%, 17rem); height: 6rem; margin-bottom: 1.5rem; color: var(--paper); }
.editorial-study .study-manuscripts h3 { font-size: clamp(2rem, 3vw, 2.8rem); }
.editorial-study .study-manuscripts p { font-size: 1.5rem; line-height: 1.35; }
.editorial-gather { border-top: 1px solid var(--gold); }
.editorial-gather .manuscript-text { display: grid; grid-template-columns: 1.05fr 1fr 1.25fr; gap: 2rem; }
.editorial-gather article { display: flex; flex-direction: column; align-items: start; border: 0; padding: .5rem 1.5rem .5rem 0; }
.editorial-gather article + article { padding-left: 1.75rem; border-left: 1px solid var(--gold); }
.editorial-gather article > a { margin-top: auto; padding-top: .75rem; }
.editorial-gather h3 { font-size: 2rem; }
.craft-pull { grid-template-columns: minmax(0, .3fr) minmax(0, 1fr); }
.craft-pull .manuscript-text { max-width: 48ch; }
.craft-mark { display: none; }
.brand-system--tl .tl-page-home { color: var(--ink); }
.tl-page-courses .page-hero .container, .tl-page-for-organizations .page-hero .container, .tl-page-events .page-hero .container { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 1rem 4rem; }
.tl-page-courses .page-hero .eyebrow, .tl-page-for-organizations .page-hero .eyebrow, .tl-page-events .page-hero .eyebrow { grid-column: 1 / -1; grid-row: auto; margin-bottom: 0; }
.tl-page-courses .page-hero h1, .tl-page-for-organizations .page-hero h1, .tl-page-events .page-hero h1 { grid-column: 1; grid-row: 2 / 4; font-size: clamp(2.65rem, 4.6vw, 4.6rem); }
.tl-page-courses .page-hero .lead, .tl-page-for-organizations .page-hero .lead, .tl-page-events .page-hero .lead { grid-column: 2; grid-row: 2; font-size: 1.3rem; }
.tl-page-courses .page-hero .button-row, .tl-page-for-organizations .page-hero .button-row, .tl-page-events .page-hero .button-row { grid-column: 2; grid-row: 3; margin-top: 0; align-self: start; }
.tl-page-mentorship .page-hero { background: var(--ink); color: var(--paper); }
.tl-page-mentorship .page-hero .eyebrow { color: var(--paper); }
.tl-page-mentorship .page-hero .brand-button { color: var(--paper); background: transparent; border-color: var(--paper); }
.tl-page-mentorship .page-hero :focus-visible { outline-color: var(--paper); }
.tl-page-mentorship .offer-layout, .tl-page-for-organizations .offer-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr); }
.tl-page-courses .deliverable-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.tl-page-courses .program-listing, .tl-page-events .program-listing { background: #F0F2EF; }
.program-listing__records { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.program-listing__records article { border-top: 1px solid var(--spruce); border-bottom: 0; padding-block: 1.5rem; }
.program-listing__records article:first-child { padding-top: 1.5rem; }
.program-listing__records h3 { font-size: 2rem; }
.tl-page-events #for-readers { background: var(--spruce); color: var(--paper); }
.tl-page-events #for-readers .margin-note { color: var(--paper); }
.program-format { border-top: 1px solid var(--gold); padding-block: 1.1rem; }
.program-format summary { font-size: 1.65rem; line-height: 1.3; cursor: pointer; }
.program-format p { padding-top: 1rem; margin-bottom: 0; }
.contact-close .manuscript-text { max-width: none; }
.contact-close h2 { max-width: 22ch; }
.public-form { max-width: 64ch; font-family: var(--tl-sans); font-size: 1rem; }
.form-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.5rem; }
.form-field { min-width: 0; }
.form-field--wide { grid-column: 1 / -1; }
.form-field label { display: block; margin-bottom: .4rem; }
.form-field input:not([type="checkbox"]), .form-field select, .form-field textarea { width: 100%; border-radius: 0; }
.form-field .check-label { display: flex; align-items: start; gap: .65rem; }
.check-label input { width: 1.15rem; height: 1.15rem; flex-shrink: 0; margin-top: .25rem; accent-color: var(--spruce); }
.required-label, .form-privacy { font-size: .875rem; color: var(--spruce); }
.form-privacy { margin-top: 1rem !important; }
.form-review-note { font-size: .875rem; border-left: 3px solid var(--spruce); padding-left: 1rem; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.field-error { font-size: .9rem; color: var(--ink); font-weight: 700; margin-top: .35rem !important; }
[aria-invalid="true"] { border-width: 2px; }
.list-form .form-fields { grid-template-columns: 1fr; }
.form-receipt { padding-block: 3rem; }
.form-receipt > p { max-width: 60ch; }
.form-receipt .public-form { margin-block: 2rem; }
.form-receipt [data-form-result]:focus { outline: none; }
.brand-system--tl button { cursor: pointer; }
.preview-banner { position: relative; z-index: 1001; }
@media (max-width: 1000px) {
    .editorial-opening { gap: 2rem; }
    .brand-system--tl .editorial-opening h1 { font-size: 3.2rem; }
    .editorial-study .manuscript-text { gap: 1.5rem; }
    .editorial-study .study-manuscripts { padding: 1.75rem; }
}
@media (max-width: 900px) {
    .editorial-opening { grid-template-columns: minmax(0, 1fr); padding-block: 2rem; }
    .brand-system--tl .editorial-opening h1 { font-size: clamp(2.65rem, 6vw, 4.5rem); max-width: 24ch; }
    .editorial-opening .opening-shelf .shelf { gap: .35rem; margin-right: calc(var(--rail, 4vw) * -1); }
    .editorial-opening .opening-shelf .shelf-floor { margin-right: calc(var(--rail, 4vw) * -1); }
    .editorial-opening .opening-shelf .spine { height: 12.5rem; }
    .editorial-opening .opening-shelf .spine--2,
    .editorial-opening .opening-shelf .spine--4,
    .editorial-opening .opening-shelf .spine--6 { height: 14.5rem; }
    .editorial-opening .opening-shelf .spine::before { top: 1.1rem; height: 1rem; }
    .home-directory .home-index { justify-content: start; }
    .tl-page-home .schedule { grid-template-columns: 1fr; }
    .tl-page-home .schedule > .manuscript-text { grid-column: 1; }
    .tl-page-home .schedule-entry { grid-template-columns: 1fr; gap: .5rem; }
    .craft-pull, .tl-page-mentorship .offer-layout, .tl-page-for-organizations .offer-layout { grid-template-columns: 1fr; }
    .tl-page-courses .page-hero .container, .tl-page-for-organizations .page-hero .container, .tl-page-events .page-hero .container { grid-template-columns: 1fr; gap: 1rem; }
    .tl-page-courses .page-hero .container > *, .tl-page-for-organizations .page-hero .container > *, .tl-page-events .page-hero .container > * { grid-column: 1; grid-row: auto; }
    .editorial-gather .manuscript-text { gap: 1rem; }
    .editorial-gather article + article { padding-left: 1rem; }
}
@media (max-width: 640px) {
    .editorial-study .manuscript-text, .editorial-gather .manuscript-text, .tl-page-courses .deliverable-grid, .program-listing__records, .form-fields { grid-template-columns: 1fr; }
    .editorial-study .study-manuscripts { border-top: 0; }
    .editorial-gather article, .editorial-gather article + article { padding: 1.5rem 0; border-left: 0; border-bottom: 1px solid var(--gold); }
    .editorial-gather article:last-child { border: 0; padding-bottom: 0; }
    .editorial-gather article:first-child { padding-top: 0; }
    .editorial-gather article > a { padding-top: 0; }
    .form-field--wide { grid-column: 1; }
    .editorial-opening .brand-button { font-size: .95rem; }
}
