/* Weave Library route styles. Links after tokens.css and uses only shared site tokens. */

.lib { overflow-x: clip; background: var(--cloth); }
html { scroll-snap-type: y proximity; scroll-padding-top: 80px; }

/* Page introduction */
.lib-hero { padding: clamp(8rem, 14vw, 11rem) 0 var(--space-16); background: var(--cloth); }
.lib-hero__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(16rem, 5fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.lib-hero__content { max-width: 46rem; }
.lib-hero__art { width: min(100%, 31rem); max-height: 38rem; margin-inline: auto; object-fit: contain; }

.lib-intro { padding: clamp(3.5rem, 8vw, 7rem) 1.5rem clamp(1.5rem, 4vw, 3rem); text-align: center; background: var(--cloth); }
.lib-intro__eyebrow { margin: 0 0 1rem; color: var(--thread-teal); font-family: var(--font-ui); font-size: .8rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.lib-intro__title { max-width: 16ch; margin: 0 auto .9rem; color: var(--ink); font-family: var(--font-display); font-size: clamp(2.4rem, 6vw, 4.4rem); font-weight: 600; letter-spacing: -.015em; line-height: 1.04; }
.lib-intro__lede { max-width: 56ch; margin: 0 auto; color: var(--ink-2); font-family: var(--font-display); font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.55; }

/* Flagship editorial card */
.lib-flagship { background: var(--cloth); }
.lib-flagship__frame { display: block; color: inherit; text-decoration: none; transition: transform var(--duration-ui) var(--ease-weave), box-shadow var(--duration-ui) var(--ease-weave); }
.lib-flagship__frame:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.lib-flagship__card { display: grid; grid-template-columns: auto 1fr; gap: clamp(1.5rem, 5vw, 3.5rem); align-items: center; padding: clamp(1.5rem, 4vw, 2.75rem); background: var(--cloth); }
.lib-flagship__cover { width: clamp(7.5rem, 15vw, 10rem); }
.lib-flagship__cover img { width: 100%; border: 1px solid var(--hairline); border-radius: var(--radius-sm); box-shadow: var(--shadow-soft); }
.lib-flagship__text { display: flex; flex-direction: column; align-items: flex-start; }
.lib-flagship__eyebrow { margin-bottom: var(--space-3); color: var(--thread-teal); font-family: var(--font-ui); font-size: .75rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.lib-flagship__title { color: var(--ink); font-family: var(--font-display); font-size: clamp(2rem, 4.2vw, 3rem); font-weight: 600; letter-spacing: -.02em; line-height: 1; }
.lib-flagship__tag { margin-top: var(--space-3); color: var(--thread-teal); font-family: var(--font-display); font-size: 1.125rem; font-style: italic; }
.lib-flagship__lede { max-width: 62ch; margin-top: var(--space-3); color: var(--ink-2); line-height: 1.55; }
.lib-flagship__rule { display: flex; width: min(14.25rem, 100%); height: 5px; margin-top: var(--space-5); overflow: hidden; border-radius: var(--radius-pill); }
.lib-flagship__rule span { flex: 1; }
.lib-flagship__rule span:nth-child(1) { background: var(--thread-teal); }
.lib-flagship__rule span:nth-child(2) { background: var(--thread-sage); }
.lib-flagship__rule span:nth-child(3) { background: var(--thread-terracotta); }
.lib-flagship__rule span:nth-child(4) { background: var(--thread-flax); }
.lib-flagship__rule span:nth-child(5) { background: var(--ink-3); }
.lib-flagship__btn { margin-top: var(--space-5); }

/* Audience tabs */
.lib-toggle { position: sticky; top: 0; z-index: 20; display: flex; justify-content: center; gap: .35rem; margin-top: 1.5rem; padding: 1rem; border-bottom: 1px solid var(--hairline); background: color-mix(in srgb, var(--cloth) 88%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.lib-toggle__btn { min-height: 44px; padding: .55rem 1.25rem; border: 1px solid transparent; border-radius: var(--radius-pill); background: transparent; color: var(--ink-2); font-family: var(--font-ui); font-size: .9rem; font-weight: 600; cursor: pointer; transition: transform var(--duration-fast) var(--ease-weave), color var(--duration-ui) var(--ease-weave), background var(--duration-ui) var(--ease-weave), border-color var(--duration-ui) var(--ease-weave); }
.lib-toggle__btn:hover { color: var(--ink); }
.lib-toggle__btn[aria-selected="true"] { border-color: var(--thread-teal); background: var(--thread-teal); color: #FFFFFF; }
.lib-audience { display: none; }
.lib-audience.is-active { display: block; }

/* Full-screen vitrines */
.vitrine { position: relative; display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: clamp(2rem, 6vw, 6rem); min-height: 100svh; padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 7vw, 8rem); overflow: hidden; border-bottom: 1px solid var(--hairline); background: radial-gradient(60% 70% at var(--spot-x, 32%) 42%, color-mix(in srgb, var(--stage, var(--thread-teal)) 10%, transparent), transparent 62%), var(--cloth); scroll-snap-align: start; }
.vitrine::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .025; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); mix-blend-mode: multiply; }
.vitrine:nth-of-type(even) { grid-template-columns: 1.05fr 1fr; --spot-x: 68%; }
.vitrine:nth-of-type(even) .vitrine__stage { order: 1; }
.vitrine:nth-of-type(even) .vitrine__text { order: 2; }
.vitrine__stage { position: relative; display: flex; align-items: center; justify-content: center; }
.book { position: relative; animation: book-float 7s ease-in-out infinite; will-change: transform; }
.book__render { display: block; width: auto; max-width: 100%; height: clamp(340px, 46vh, 540px); filter: drop-shadow(-10px 18px 22px rgb(42 33 24 / 18%)) drop-shadow(-24px 40px 54px rgb(42 33 24 / 14%)); }
@keyframes book-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }

.vitrine__text { position: relative; z-index: 1; max-width: 40ch; }
.vitrine__eyebrow, .lib-shelf__eyebrow, .cslide__eyebrow { display: flex; align-items: center; gap: .6rem; color: var(--thread-teal); font-family: var(--font-ui); font-size: .78rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.vitrine__eyebrow { margin: 0 0 1.1rem; }
.vitrine__eyebrow::before, .lib-shelf__eyebrow::before, .cslide__eyebrow::before { content: ""; display: inline-block; flex: 0 0 1.35em; width: 1.35em; height: 1.35em; background: url("/img/sprig.svg") no-repeat center / contain; }
.vitrine__title { margin: 0 0 1rem; color: var(--ink); font-family: var(--font-display); font-size: clamp(2.1rem, 4.4vw, 3.4rem); font-weight: 600; letter-spacing: -.015em; line-height: 1.05; }
.vitrine__subtitle { margin: -.4rem 0 1.1rem; color: var(--ink-2); font-family: var(--font-ui); font-size: .95rem; font-weight: 600; letter-spacing: .01em; }
.vitrine__promise { margin: 0 0 1.3rem; color: var(--thread-terracotta); font-family: var(--font-display); font-size: clamp(1.1rem, 2.2vw, 1.4rem); font-style: italic; line-height: 1.4; }
.vitrine__what { margin: 0 0 1.8rem; color: var(--ink-2); font-family: var(--font-ui); font-size: 1.02rem; line-height: 1.65; }
.vitrine__cta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.vitrine__author { margin: 1.1rem 0 0; color: var(--ink-3); font-family: var(--font-ui); font-size: .82rem; }
.vitrine__author a { border-bottom: 1px solid var(--hairline); color: var(--ink-2); text-decoration: none; }
.vitrine__author a:hover { color: var(--ink); }

.hallmark { margin: 0 0 1.9rem; padding: .35rem 0; border-top: 1px solid var(--thread-teal); border-bottom: 1px solid var(--thread-teal); }
.hallmark__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .62rem .1rem; border-bottom: 1px solid var(--hairline); }
.hallmark__row:last-child { border-bottom: 0; }
.hallmark__k { color: var(--ink-3); font-family: var(--font-ui); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.hallmark__v { color: var(--ink); font-family: var(--font-display); font-size: 1.05rem; text-align: right; font-feature-settings: "onum" 1, "lnum" 0; }
.hallmark__v--num { font-variant-numeric: oldstyle-nums; }

/* Shared generated actions */
.lib .btn { font-family: var(--font-ui); }
.lib .btn--primary, .lib .btn--secondary, .lib .btn--whatsapp { isolation: isolate; }
.lib-dl { padding: .7rem 1.25rem; font-size: .9rem; }
.exam-card { max-width: 100%; }

/* Shelves and patient route */
.lib-shelf { padding: clamp(3rem, 7vw, 5.5rem) clamp(1.5rem, 7vw, 8rem); border-top: 1px solid var(--hairline); background: var(--cloth); }
.lib-shelf:nth-of-type(3n) { background: var(--cloth); }
.lib-shelf__head { max-width: 60ch; margin: 0 0 2.2rem; }
.lib-shelf__eyebrow { margin: 0 0 .8rem; }
.lib-shelf__title { margin: 0 0 .7rem; color: var(--ink); font-family: var(--font-display); font-size: clamp(1.7rem, 3.4vw, 2.6rem); font-weight: 600; line-height: 1.06; }
.lib-shelf__lede { margin: 0; color: var(--ink-2); font-family: var(--font-ui); font-size: 1.02rem; }
.lib-shelf__lede a { color: var(--thread-teal); text-underline-offset: .18em; }
.lib-shelf__cta { margin-top: var(--space-5); }

.shelf-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; overflow: visible; border: 0; border-radius: 0; background: transparent; }
.shelf-card, .matrix-card { position: relative; overflow: hidden; border: 1px solid color-mix(in srgb, var(--tile-accent, var(--thread-teal)) 20%, var(--hairline)); border-radius: var(--radius-card); background: var(--cloth); box-shadow: var(--shadow-soft); transition: transform var(--duration-ui) var(--ease-weave), box-shadow var(--duration-ui) var(--ease-weave), border-color var(--duration-ui) var(--ease-weave); }
.shelf-card { display: flex; flex-direction: column; gap: .45rem; min-height: 140px; padding: 1.15rem 1.25rem; }
.shelf-card:hover, .matrix-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--tile-accent, var(--thread-teal)) 48%, var(--hairline)); box-shadow: var(--shadow-lift); }
.shelf-card__n { color: var(--tile-accent, var(--thread-teal)); font-family: var(--font-display); font-size: .85rem; letter-spacing: .04em; font-variant-numeric: oldstyle-nums; }
.shelf-card__title { flex: 1; color: var(--ink); font-family: var(--font-display); font-size: 1.12rem; line-height: 1.2; }
.shelf-card__dl { align-self: flex-start; margin-top: .2rem; padding: 0; border: 0; background: none; color: var(--thread-teal); font-family: var(--font-ui); font-size: .82rem; font-weight: 600; letter-spacing: .01em; cursor: pointer; }
.shelf-card__dl:hover { color: var(--ink); }
.tile-deco { display: none; position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; color: var(--tile-accent, var(--thread-teal)); opacity: .16; pointer-events: none; }
.tile-deco svg { display: block; width: 100%; height: 100%; }
.matrix-card > *:not(.tile-deco), .shelf-card > *:not(.tile-deco) { position: relative; z-index: 1; }
.matrix-card:hover .tile-deco, .shelf-card:hover .tile-deco { opacity: .24; }

.shelf-filler { position: relative; display: grid; place-items: center; min-height: 140px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--tile-accent, var(--thread-teal)) 20%, var(--hairline)); border-radius: var(--radius-card); background: var(--cloth); box-shadow: var(--shadow-soft); }
.shelf-filler__art { width: 74%; height: 74%; color: var(--tile-accent, var(--thread-teal)); opacity: .24; }
.shelf-filler__art svg { display: block; width: 100%; height: 100%; }

.lib-soon { display: flex; align-items: center; justify-content: center; min-height: 70svh; padding-inline: var(--space-6); text-align: center; }
.lib-soon__inner { width: min(44rem, 100%); }
.lib-soon__inner .bezel-inner { display: flex; flex-direction: column; align-items: center; padding: clamp(2rem, 6vw, 4.5rem); background: var(--cloth); }
.lib-soon__mark { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 1.5rem; border: 1px solid var(--thread-teal); border-radius: 50%; color: var(--thread-teal); font-size: 1.5rem; }
.lib-soon__title { margin: 0 0 .8rem; color: var(--ink); font-family: var(--font-display); font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 600; }
.lib-soon__text { max-width: 48ch; margin: 0 0 1.6rem; color: var(--ink-2); font-family: var(--font-ui); font-size: 1.05rem; line-height: 1.6; }

/* Carousel bands and controls */
.lib-carousel-band, .lib-matrix-band { padding: clamp(3rem, 7vw, 5.5rem) clamp(1.5rem, 7vw, 8rem); border-top: 1px solid var(--hairline); background: var(--cloth); }
.lib-carousel-band--featured { border-top: 0; }
.carousel { position: relative; }
.carousel--billboard { isolation: isolate; }
.carousel__viewport { overflow: hidden; border-radius: var(--radius-card); }
.carousel__track { display: flex; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; -ms-overflow-style: none; scrollbar-width: none; }
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__arrow { position: absolute; top: 50%; z-index: 5; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgb(255 255 255 / 50%); border-radius: 50%; background: rgb(42 33 24 / 48%); color: #FFFFFF; font-size: 1.6rem; line-height: 1; cursor: pointer; transform: translateY(-50%); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); transition: transform var(--duration-fast) var(--ease-weave), background var(--duration-ui) var(--ease-weave), border-color var(--duration-ui) var(--ease-weave); }
.carousel__arrow:hover { border-color: #FFFFFF; background: rgb(42 33 24 / 70%); }
.carousel__arrow:active { transform: translateY(-50%) scale(.93); }
.carousel__arrow--prev { left: 16px; }
.carousel__arrow--next { right: 16px; }
.carousel__dots { display: flex; justify-content: center; gap: .5rem; margin-top: 1.1rem; }
.carousel__dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: var(--hairline); cursor: pointer; transition: transform var(--duration-ui) var(--ease-weave), background var(--duration-ui) var(--ease-weave); }
.carousel__dot:hover { background: var(--ink-3); }
.carousel__dot[aria-current="true"] { background: var(--thread-teal); transform: scale(1.3); }

.cslide { position: relative; display: flex; flex: 0 0 100%; align-items: center; min-height: clamp(440px, 72svh, 620px); overflow: hidden; background-color: color-mix(in srgb, var(--stage) 72%, #14100b); background-position: right center; background-repeat: no-repeat; background-size: cover; scroll-snap-align: start; scroll-snap-stop: always; }
.cslide__scrim { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(95deg, color-mix(in srgb, var(--stage) 52%, #080604) 0%, color-mix(in srgb, var(--stage) 40%, #080604) 30%, rgb(8 6 4 / 58%) 58%, rgb(8 6 4 / 10%) 90%); }
.cslide__text { position: relative; z-index: 2; max-width: 42ch; padding: clamp(2rem, 4.5vw, 3.4rem) clamp(1.6rem, 5vw, 4.5rem); color: #FFFFFF; text-shadow: 0 1px 16px rgb(6 4 2 / 42%); }
.cslide__eyebrow { margin: 0 0 1rem; color: #FFFFFF; }
.cslide__title { margin: 0 0 .5rem; color: #FFFFFF; font-family: var(--font-display); font-size: clamp(2rem, 4.2vw, 3.1rem); font-weight: 700; letter-spacing: -.015em; line-height: 1.06; }
.cslide__subtitle { margin: 0 0 1rem; color: rgb(255 255 255 / 82%); font-family: var(--font-ui); font-size: .95rem; font-weight: 600; }
.cslide__promise { margin: 0 0 1rem; color: #FFFFFF; font-family: var(--font-display); font-size: clamp(1.05rem, 2vw, 1.32rem); font-style: italic; line-height: 1.4; }
.cslide__list { display: grid; gap: .42rem; margin: 0 0 1.3rem; padding: 0; list-style: none; }
.cslide__list li { position: relative; padding-left: 1.4rem; color: rgb(255 255 255 / 92%); font-family: var(--font-display); font-size: clamp(1rem, 1.5vw, 1.1rem); line-height: 1.36; }
.cslide__list li::before { content: ""; position: absolute; top: .58em; left: 2px; width: 6px; height: 6px; border-radius: 50%; background: var(--thread-teal); }
.cslide__lead { max-width: 34ch; margin: .2rem 0 1.6rem; color: #FFFFFF; font-family: var(--font-display); font-size: clamp(1.18rem, 2.3vw, 1.55rem); line-height: 1.36; }
.cslide__chips { display: flex; flex-wrap: wrap; gap: .55rem; max-width: 32ch; margin: 0 0 1.8rem; padding: 0; list-style: none; }
.cslide__chips li { padding: .44rem .85rem; border: 1px solid rgb(255 255 255 / 55%); border-radius: var(--radius-pill); background: rgb(255 255 255 / 8%); color: #FFFFFF; font-family: var(--font-ui); font-size: .8rem; font-weight: 600; text-shadow: none; }
.cslide:not(.cslide--featured) { min-height: clamp(400px, 64svh, 540px); }
.cslide:not(.cslide--featured) .cslide__scrim { background: linear-gradient(95deg, color-mix(in srgb, var(--stage) 46%, #080604) 0%, color-mix(in srgb, var(--stage) 34%, #080604) 32%, rgb(8 6 4 / 66%) 60%, rgb(8 6 4 / 16%) 92%); }
.cslide:not(.cslide--featured) .cslide__text { max-width: 44ch; padding: clamp(1.65rem, 3.8vw, 2.8rem) clamp(1.4rem, 4.5vw, 3.8rem); }
.cslide:not(.cslide--featured) .cslide__eyebrow { margin-bottom: .72rem; font-size: .875rem; }
.cslide:not(.cslide--featured) .cslide__title { margin-bottom: .38rem; font-size: clamp(1.85rem, 3.6vw, 2.7rem); line-height: 1.04; }
.cslide:not(.cslide--featured) .cslide__subtitle { margin-bottom: .72rem; color: rgb(255 255 255 / 90%); font-size: .9rem; }
.cslide:not(.cslide--featured) .cslide__promise { margin-bottom: .72rem; font-size: clamp(1rem, 1.65vw, 1.18rem); line-height: 1.32; }
.cslide:not(.cslide--featured) .cslide__list { gap: .3rem; margin-bottom: 1rem; }
.cslide:not(.cslide--featured) .cslide__list li { color: rgb(255 255 255 / 96%); font-size: clamp(1rem, 1.2vw, 1.06rem); line-height: 1.3; }
.cslide:not(.cslide--featured) .cslide__cta { gap: .55rem; }
.cslide__cta { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
.cslide--featured { gap: clamp(1.5rem, 4vw, 3.5rem); padding: clamp(1.6rem, 4vw, 3rem) clamp(1.5rem, 5vw, 4.5rem); border: 1px solid color-mix(in srgb, var(--stage) 24%, var(--hairline)); background-color: var(--cloth); background-image: radial-gradient(circle at 82% 24%, color-mix(in srgb, var(--stage) 13%, var(--cloth)) 0%, transparent 44%), linear-gradient(135deg, var(--cloth) 0%, var(--cloth-warm) 68%, color-mix(in srgb, var(--stage) 6%, var(--cloth)) 100%); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cloth) 72%, transparent), var(--shadow-soft); }
.cslide--featured .cslide__text { position: relative; z-index: 2; flex: 1 1 56%; max-width: 50ch; padding: 0; color: var(--ink-2); text-shadow: none; }
.cslide--featured .cslide__eyebrow { color: var(--thread-teal); font-size: .875rem; }
.cslide--featured .cslide__title { color: var(--ink); font-weight: 600; }
.cslide--featured .cslide__subtitle { color: var(--ink-2); font-size: 1rem; }
.cslide--featured .cslide__list li { color: var(--ink-2); }
.cslide--featured .cslide__list li::before { background: color-mix(in srgb, var(--stage) 72%, var(--ink)); }
.cslide__deco { position: absolute; inset: 0; z-index: 1; color: color-mix(in srgb, var(--stage) 72%, var(--ink-3)); opacity: .09; pointer-events: none; }
.cslide__deco svg { display: block; width: 100%; height: 100%; }
.cslide__cover { position: relative; z-index: 2; display: flex; flex: 0 0 36%; align-items: center; justify-content: center; }
.cslide__render { display: block; width: auto; max-width: 100%; height: clamp(240px, 38vh, 380px); animation: book-float 7s ease-in-out infinite; filter: drop-shadow(0 14px 18px rgb(42 33 24 / 16%)) drop-shadow(0 28px 44px rgb(42 33 24 / 12%)); will-change: transform; }

[data-theme="dark"] .cslide--featured, .is-dark .cslide--featured { background-image: radial-gradient(circle at 82% 24%, color-mix(in srgb, var(--stage) 18%, var(--cloth)) 0%, transparent 46%), linear-gradient(135deg, var(--cloth) 0%, var(--cloth-card) 70%, color-mix(in srgb, var(--stage) 9%, var(--cloth)) 100%); }
[data-theme="dark"] .cslide__render, .is-dark .cslide__render { filter: drop-shadow(0 16px 22px rgb(0 0 0 / 34%)) drop-shadow(0 30px 48px rgb(0 0 0 / 24%)); }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .cslide--featured { background-image: radial-gradient(circle at 82% 24%, color-mix(in srgb, var(--stage) 18%, var(--cloth)) 0%, transparent 46%), linear-gradient(135deg, var(--cloth) 0%, var(--cloth-card) 70%, color-mix(in srgb, var(--stage) 9%, var(--cloth)) 100%); }
  :root:not([data-theme="light"]) .cslide__render { filter: drop-shadow(0 16px 22px rgb(0 0 0 / 34%)) drop-shadow(0 30px 48px rgb(0 0 0 / 24%)); }
}

/* Aporia matrix */
.lib-matrix { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; overflow: visible; border: 0; border-radius: 0; background: transparent; }
.matrix-card { display: flex; flex-direction: column; gap: .5rem; min-height: 158px; padding: 1.3rem 1.35rem; }
.matrix-card__n { display: flex; align-items: center; gap: .5rem; color: var(--thread-teal); font-family: var(--font-ui); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.matrix-card__n::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--thread-teal); }
.matrix-card__title { margin: 0; color: var(--ink); font-family: var(--font-display); font-size: 1.2rem; line-height: 1.16; }
.matrix-card__blurb { flex: 1; margin: 0; color: var(--ink-2); font-family: var(--font-ui); font-size: .9rem; line-height: 1.5; }
.matrix-card__cta { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: .35rem; }
.matrix-card__link { color: var(--thread-teal); font-family: var(--font-ui); font-size: .82rem; font-weight: 600; text-decoration: none; }
.matrix-card__link:hover { color: var(--ink); }

/* Assimilate shoveler */
.carousel--shoveler { position: relative; margin: 1.7rem 0 0; }
.carousel--shoveler .carousel__viewport { overflow: visible; }
.carousel--shoveler .carousel__track { align-items: stretch; gap: 1.1rem; padding: .4rem .2rem 1.2rem; }
.cshov-card { display: flex; flex: 0 0 clamp(232px, 27%, 312px); flex-direction: column; min-height: 304px; overflow: hidden; border: 1px solid var(--hairline); border-radius: var(--radius-card); background: var(--cloth); box-shadow: var(--shadow-soft); scroll-snap-align: start; transition: transform var(--duration-ui) var(--ease-weave), box-shadow var(--duration-ui) var(--ease-weave), border-color var(--duration-ui) var(--ease-weave); }
.cshov-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--stage) 50%, var(--hairline)); box-shadow: var(--shadow-lift); }
.cshov-card__banner { position: relative; height: 106px; overflow: hidden; background: linear-gradient(135deg, color-mix(in srgb, var(--stage) 94%, #14100b), color-mix(in srgb, var(--stage) 64%, #14100b)); }
.cshov-card__pattern { position: absolute; inset: 0; color: #FFFFFF; opacity: .16; }
.cshov-card__pattern svg { display: block; width: 100%; height: 100%; }
.cshov-card__glyph { position: absolute; bottom: .72rem; left: .9rem; width: 26px; height: 26px; color: rgb(255 255 255 / 95%); }
.cshov-card__glyph svg { display: block; width: 100%; height: 100%; }
.cshov-card__vol { position: absolute; top: .55rem; right: .85rem; color: rgb(255 255 255 / 94%); font-family: var(--font-display); font-size: 2.7rem; font-weight: 700; font-variant-numeric: oldstyle-nums; line-height: .82; text-align: right; }
.cshov-card__vol small { display: block; margin-bottom: .12rem; color: rgb(255 255 255 / 72%); font-family: var(--font-ui); font-size: .58rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.cshov-card__body { display: flex; flex: 1; flex-direction: column; gap: .42rem; padding: 1rem 1.15rem 1.1rem; }
.cshov-card__title { margin: 0; color: var(--ink); font-family: var(--font-display); font-size: 1.2rem; line-height: 1.14; }
.cshov-card__inside { margin: .15rem 0 .1rem; color: var(--ink-3); font-family: var(--font-ui); font-size: .64rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cshov-card__list { display: grid; flex: 1; gap: .34rem; margin: 0; padding: 0; list-style: none; }
.cshov-card__list li { position: relative; padding-left: 1rem; color: var(--ink-2); font-family: var(--font-ui); font-size: .85rem; line-height: 1.38; }
.cshov-card__list li::before { content: ""; position: absolute; top: .52em; left: 0; width: 5px; height: 5px; border-radius: 50%; background: var(--stage); }
.cshov-card__dl { align-self: flex-start; margin-top: .5rem; padding: 0; border: 0; background: none; color: var(--thread-teal); font-family: var(--font-ui); font-size: .82rem; font-weight: 600; letter-spacing: .01em; cursor: pointer; }
.cshov-card__dl:hover { color: var(--ink); }
.carousel--shoveler .carousel__arrow { top: -3.6rem; width: 46px; height: 46px; border: 1px solid var(--hairline); background: var(--cloth); box-shadow: var(--shadow-soft); color: var(--ink); font-size: 1.6rem; transform: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.carousel--shoveler .carousel__arrow--prev { right: 3.25rem; left: auto; }
.carousel--shoveler .carousel__arrow--next { right: 0; border-color: color-mix(in srgb, var(--thread-teal) 55%, var(--hairline)); color: var(--thread-teal); }
.carousel--shoveler .carousel__arrow:hover { border-color: var(--thread-teal); background: var(--cloth); color: var(--ink); }
.carousel--shoveler .carousel__arrow:active { transform: scale(.92); }
.carousel__dot:active, .matrix-card__link:active, .cshov-card__dl:active, .shelf-card__dl:active, .lib-toggle__btn:active { transform: scale(.96); }

/* Crisis partial */
.lib-crisis { display: grid; grid-template-columns: minmax(0, 3fr) minmax(14rem, 2fr); gap: clamp(1.5rem, 5vw, 4rem); align-items: center; }
.lib-crisis .crisis-block__art { justify-self: center; width: min(100%, 20rem); max-height: 25rem; object-fit: contain; }
.footer p .fi { width: 14px; height: 14px; margin-right: 5px; vertical-align: -2px; }

@media (max-width: 1080px) {
  .shelf-grid { grid-template-columns: repeat(3, 1fr); }
  .lib-matrix { grid-template-columns: repeat(2, 1fr); }
  .shelf-filler { display: none; }
}

@media (max-width: 880px) {
  .lib-hero__grid { grid-template-columns: 1fr; }
  .lib-hero__art { width: min(72%, 24rem); }
  .vitrine, .vitrine:nth-of-type(even) { grid-template-columns: 1fr; gap: clamp(1.6rem, 4vw, 2.3rem); padding: clamp(3rem, 6vw, 4.4rem) clamp(1.4rem, 5vw, 3.2rem); }
  .vitrine__stage { order: 1; }
  .vitrine__text { order: 2; max-width: 60ch; }
  .book__render { height: clamp(320px, 42vh, 430px); }
  .lib-shelf, .lib-carousel-band, .lib-matrix-band { padding: clamp(2.8rem, 6vw, 4.5rem) clamp(1.4rem, 5vw, 3.2rem); }
  .cslide { min-height: clamp(420px, 78svh, 560px); }
  .cslide:not(.cslide--featured) { min-height: clamp(390px, 66svh, 500px); }
  .cslide__text { max-width: none; }
  .cslide--featured { flex-direction: column; align-items: stretch; gap: 1.4rem; }
  .cslide--featured .cslide__text { order: 2; max-width: none; }
  .cslide__cover { order: 1; flex: none; }
  .cslide__render { height: clamp(210px, 30vh, 300px); }
  .cshov-card { flex-basis: clamp(210px, 44%, 264px); }
}

@media (max-width: 720px) {
  .shelf-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .lib-hero { padding-bottom: var(--space-10); }
  .lib-flagship__card { grid-template-columns: 1fr; }
  .lib-flagship__cover { width: 7.5rem; }
  .lib-toggle { top: 0; overflow-x: auto; justify-content: flex-start; }
  .lib-toggle__btn { flex: 0 0 auto; }
  .vitrine, .vitrine:nth-of-type(even) { gap: 1.6rem; padding: 2.7rem 1.3rem; }
  .vitrine__title { font-size: clamp(2rem, 8vw, 2.5rem); }
  .vitrine__what { font-size: 1rem; line-height: 1.62; }
  .vitrine__text { max-width: none; }
  .book__render { height: clamp(280px, 40vh, 360px); }
  .vitrine__cta { gap: .55rem; }
  .lib-dl { padding: .7rem 1rem; }
  .lib-dl.btn--primary, .lib-dl.btn--secondary { flex: 1 1 46%; text-align: center; }
  .shelf-card { min-height: 0; padding: 1.05rem 1.1rem; }
  .lib-shelf { padding: 2.5rem 1.25rem; }
  .lib-shelf__title { font-size: clamp(1.5rem, 6.5vw, 1.95rem); }
  .cslide { align-items: stretch; min-height: 0; }
  .cslide:not(.cslide--featured) { min-height: 0; }
  .cslide__text { padding: 2.2rem 1.4rem 2.4rem; }
  .cslide__scrim { background: linear-gradient(180deg, rgb(12 9 7 / 30%) 0%, rgb(12 9 7 / 62%) 52%, rgb(12 9 7 / 82%) 100%); }
  .cslide:not(.cslide--featured) .cslide__text { padding: 1.65rem 1.2rem 1.85rem; }
  .cslide:not(.cslide--featured) .cslide__scrim { background: linear-gradient(180deg, rgb(12 9 7 / 52%) 0%, rgb(12 9 7 / 72%) 48%, rgb(12 9 7 / 90%) 100%); }
  .cslide__cta .lib-dl { flex: 1 1 46%; text-align: center; }
  .cslide--featured { gap: .45rem; padding: 1.2rem 1.2rem 1.45rem; }
  .cslide--featured .cslide__text { padding: 0; }
  .cslide__cover { display: none; }
  .cslide--featured .cslide__cover { display: flex; min-height: 150px; }
  .cslide--featured .cslide__render { height: clamp(140px, 22vh, 190px); }
  .cslide--featured .cslide__title { font-size: clamp(1.85rem, 8vw, 2.35rem); }
  .lib-matrix { grid-template-columns: 1fr; }
  .cshov-card { flex-basis: 80%; }
  .carousel__arrow { display: none; }
  .lib-crisis { grid-template-columns: 1fr; }
  .lib-crisis .crisis-block__art { grid-row: 1; width: min(58%, 14rem); max-height: 17rem; }
}

@media (max-width: 480px) {
  .shelf-grid, .lib-matrix { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .book, .cslide__render { animation: none; }
  .vitrine { scroll-snap-align: none; }
  .carousel__track { scroll-behavior: auto; }
}
