/* Shared production components and Ludo profile pages. */
.ll-reading-progress { display: none; }
.ll-preview-badge { position: fixed; z-index: 10001; top: 12px; right: 12px; padding: 8px 11px; border: 1px solid #f3ad60; background: #081e23; color: #f1ebe1; font-size: 10px; font-weight: 700; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; }
.admin-bar .ll-preview-badge { top: 44px; }
.ll-preview-index { padding: clamp(72px, 9vw, 128px) 0; background: var(--ll-ivory); color: var(--ll-body); }
.ll-preview-index h1 { max-width: 850px; margin: 14px 0 20px; color: var(--ll-ink); font-family: var(--ll-serif); font-size: clamp(3rem, 6vw, 6rem); font-weight: 400; line-height: .94; }
.ll-preview-index > .ll-shell > p { max-width: 720px; }
.ll-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 48px; border-top: 1px solid var(--ll-border); }
.ll-preview-grid a { display: grid; min-height: 92px; grid-template-columns: minmax(120px, .5fr) minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--ll-border); color: var(--ll-ink); }
.ll-preview-grid a:nth-child(odd) { padding-right: 28px; }
.ll-preview-grid a:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--ll-border); }
.ll-preview-grid a span { color: var(--ll-muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.ll-preview-grid a strong { font-family: var(--ll-serif); font-size: 1.35rem; font-weight: 400; }
.ll-preview-grid a:hover strong { color: var(--ll-lyla); }

.ll-button {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	padding: 11px 20px;
	border: 1px solid var(--ll-ink);
	font-size: 14px;
	line-height: 1.2;
	text-decoration: none;
}
.ll-button--primary { background: var(--ll-night); color: var(--ll-text-on-dark); }
.ll-button--secondary { background: transparent; color: var(--ll-ink); }
.ll-button:hover { transform: translateY(-2px); }
.ll-action-row { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 22px; }
.ll-handwritten { color: var(--ll-ink); font-family: "Segoe Print", "Bradley Hand", cursive; font-size: clamp(1rem, 1.5vw, 1.35rem); font-style: italic; line-height: 1.35; transform: rotate(-3deg); }
.ll-lead { max-width: 700px; color: var(--ll-body); font-family: var(--ll-serif); font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.5; }
.ll-subtitle { color: var(--ll-ink); font-family: var(--ll-serif); font-size: clamp(1.5rem, 3vw, 2.3rem); }

.ll-profile-hero { padding: clamp(56px, 8vw, 112px) 0 72px; }
.ll-profile-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); align-items: center; gap: clamp(48px, 7vw, 112px); }
.ll-profile-hero h1 { max-width: 820px; margin: 14px 0 22px; color: var(--ll-ink); font-family: var(--ll-serif); font-size: clamp(3.2rem, 6vw, 6rem); font-weight: 400; letter-spacing: -.045em; line-height: .96; }
.ll-page-figure { position: relative; min-width: 0; margin: 0; }
.ll-page-figure .ll-cover-image, .ll-page-figure > .ll-mineral-art { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ll-page-figure figcaption { position: absolute; right: 2%; bottom: -45px; }
.ll-photo-slot { display: grid; aspect-ratio: 4 / 3; place-items: center; border: 1px solid var(--ll-border); background: var(--ll-mineral-pale); color: var(--ll-muted); }
.ll-photo-slot span { max-width: 18ch; text-align: center; }
.ll-native-content { border-top: 1px solid var(--ll-border); }

.ll-territory-grid, .ll-path-grid, .ll-reason-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 54px; }
.ll-territory-grid article, .ll-path-grid article, .ll-reason-grid article { min-width: 0; padding: 0 26px 20px; border-left: 1px solid var(--ll-border); }
.ll-territory-grid article:first-child, .ll-path-grid article:first-child, .ll-reason-grid article:first-child { padding-left: 0; border-left: 0; }
.ll-territory-grid article > span, .ll-path-grid article > span, .ll-reason-grid article > span { color: var(--ll-mineral); font-family: var(--ll-serif); font-size: 2rem; }
.ll-territory-grid h3, .ll-path-grid h3, .ll-reason-grid h3 { margin: 20px 0 12px; color: var(--ll-ink); font-family: var(--ll-serif); font-size: clamp(1.45rem, 2vw, 2.05rem); font-weight: 400; line-height: 1.05; }
.ll-territory-grid p, .ll-path-grid p, .ll-reason-grid p { color: var(--ll-body); line-height: 1.7; }
.ll-territory-grid__secondary { opacity: .78; }

.ll-light-band { padding: clamp(64px, 8vw, 104px) 0; background: var(--ll-ivory-2); color: var(--ll-body); }
.ll-dark-band { padding: clamp(64px, 8vw, 104px) 0; background: var(--ll-night); color: var(--ll-text-on-dark); }
.ll-dark-band h2, .ll-dark-band a { color: var(--ll-text-on-dark); }
.ll-dark-band p { color: var(--ll-muted-on-dark); }
.ll-method-line, .ll-between-cases, .ll-contact-process, .ll-about-notes { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(48px, 8vw, 128px); }
.ll-method-line h2, .ll-between-cases h2, .ll-contact-process h2, .ll-about-notes h2, .ll-contact-band h2, .ll-dark-band h2 { margin: 14px 0 0; color: inherit; font-family: var(--ll-serif); font-size: clamp(2.25rem, 4vw, 4rem); font-weight: 400; line-height: 1.02; }
.ll-method-line ol, .ll-contact-process ol { margin: 0; padding: 0; list-style: none; counter-reset: method; }
.ll-method-line li, .ll-contact-process li { display: grid; grid-template-columns: 48px 1fr; min-height: 58px; align-items: center; border-bottom: 1px solid var(--ll-border); counter-increment: method; }
.ll-method-line li::before { content: "0" counter(method); color: var(--ll-mineral); font-family: var(--ll-serif); font-size: 1.35rem; }
.ll-between-cases ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.ll-between-cases li { padding: 20px; border-bottom: 1px solid var(--ll-border); }
.ll-now-grid { display: grid; grid-template-columns: minmax(260px, 1.3fr) repeat(3, minmax(0, 1fr)); gap: 0; }
.ll-now-grid > a { display: flex; min-width: 0; flex-direction: column; gap: 12px; padding: 12px 28px; border-left: 1px solid rgb(255 255 255 / 18%); }
.ll-now-grid > a span { color: var(--ll-muted-on-dark); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.ll-now-grid > a strong { font-family: var(--ll-serif); font-size: 1.2rem; font-weight: 400; }

.ll-social-row, .ll-chip-list { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 28px 0 0; padding: 0; list-style: none; }
.ll-social-row a { border-bottom: 1px solid var(--ll-mineral); }
.ll-contact-visual { display: grid; min-height: 420px; place-items: end center; padding: 40px; background: linear-gradient(145deg, var(--ll-mineral-pale), var(--ll-mineral)); }
.ll-contact-process ol li { grid-template-columns: 56px 1fr; align-items: start; padding: 14px 0; }
.ll-contact-process li::before { content: counter(list-item, decimal-leading-zero); grid-row: 1 / 3; color: var(--ll-mineral); font-family: var(--ll-serif); font-size: 1.5rem; }
.ll-contact-process strong { color: var(--ll-ink); font-family: var(--ll-serif); font-size: 1.35rem; font-weight: 400; }
.ll-contact-process span { color: var(--ll-muted); }

.ll-contact-band { padding: clamp(60px, 8vw, 96px) 0; background: var(--ll-ivory-2); color: var(--ll-body); }
.ll-contact-band__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); align-items: center; gap: 48px; }
.ll-contact-band p { max-width: 620px; color: var(--ll-muted); }

.ll-chip-list li { padding: 6px 12px; border: 1px solid currentColor; border-radius: 999px; font-size: 12px; }
.ll-project-teaser { min-width: 0; border-top: 1px solid rgb(255 255 255 / 24%); color: var(--ll-text-on-dark); }
.ll-project-teaser__image { display: block; overflow: hidden; aspect-ratio: 16 / 8; background: #15343a; }
.ll-project-teaser__image img, .ll-project-teaser__image .ll-mineral-art { width: 100%; height: 100%; object-fit: cover; }
.ll-project-teaser__body { padding: 26px 0 8px; }
.ll-project-teaser h3 { margin: 10px 0 14px; font-family: var(--ll-serif); font-size: clamp(1.65rem, 2.4vw, 2.5rem); font-weight: 400; line-height: 1.05; }
.ll-project-teaser p { color: var(--ll-muted-on-dark); }
.ll-project-teaser .ll-chip-list { margin: 20px 0; color: var(--ll-muted-on-dark); }
.ll-lyla-light .ll-project-teaser { border-color: var(--ll-border); color: var(--ll-ink); }
.ll-lyla-light .ll-project-teaser p, .ll-lyla-light .ll-project-teaser .ll-chip-list { color: var(--ll-muted); }
.ll-lyla-light .ll-project-teaser .ll-arrow-link--dark { color: var(--ll-ink); }

.ll-project-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin: 0 0 80px; border-block: 1px solid rgb(255 255 255 / 18%); }
.ll-project-metrics > div { display: flex; min-width: 0; flex-direction: column; padding: 34px 24px; border-left: 1px solid rgb(255 255 255 / 18%); }
.ll-project-metrics > div:first-child { border-left: 0; }
.ll-project-metrics strong { color: var(--ll-lyla); font-family: var(--ll-serif); font-size: clamp(2.5rem, 5vw, 5rem); font-weight: 400; line-height: 1; }
.ll-project-metrics span { margin-top: 10px; color: var(--ll-text-on-dark); }
.ll-project-metrics small { margin-top: 8px; color: var(--ll-muted-on-dark); }
