/* Shared public site, client portal and catalog administration palette. */
:root{
 --brand-paper:#f7f5f0;--brand-ink:#171818;--brand-muted:#545a5d;
 --brand-soft:#ece9e2;--brand-line:#d7d5ce;
 --brand-orange:#e84920;--brand-accent-text:#c63d1c;--brand-accent-dark:#ff9977;--icon-accent:var(--brand-orange);
 --paper:var(--brand-paper);--ink:var(--brand-ink);--muted:var(--brand-muted);
 --soft:var(--brand-soft);--line:var(--brand-line);--dark:var(--brand-ink);
 --accent:var(--brand-accent-text);--orange:var(--brand-orange);--link-accent:var(--brand-accent-text);
}
.inner-v8{--muted:var(--brand-muted);--v8-dark:var(--brand-ink);--v8-light:var(--brand-paper);--v8-soft:var(--brand-soft);--v8-orange:var(--brand-orange)}
.seo10-page{--seo-paper:var(--brand-paper);--seo-dark:var(--brand-ink);--seo-accent:var(--brand-accent-text);--seo-accent-light:var(--brand-accent-dark)}
:is(.reference-footer,.reference-services,.rhythm-game,.rhythm-motion,.v8-dark,.v8-film-band,.v8-game-hero,.v8-course-hero,.case-dark,.d9-game-case-hero,.seo10-audit-band,.seo10-closing,.home-process,.p-sidebar){--accent:var(--brand-accent-dark);--link-accent:var(--brand-accent-dark)}
.text-link .link-label{border-bottom:1px solid var(--link-accent);padding-bottom:3px}
.text-link:not(:has(.link-label)){text-decoration:underline;text-decoration-color:var(--link-accent);text-decoration-thickness:1px;text-underline-offset:6px}
.text-link .arrow{color:var(--link-accent)}
.text-link:hover .link-label{border-bottom-color:currentColor}
.text-link:hover .arrow{color:currentColor}
.language-switch a[aria-current=true]{text-decoration-color:var(--link-accent);text-decoration-thickness:1px;text-underline-offset:7px}
.reference-footer .language-switch a[aria-current]::after{background:var(--link-accent)}
:focus-visible{outline-color:var(--link-accent)}
.portal .p-orange{color:var(--accent)}
.portal .p-languages a[aria-current]{border-bottom-color:var(--accent)}
.portal .p-button:not(.p-button-outline){background:var(--brand-ink);border-color:var(--brand-ink);color:var(--brand-paper)}
.portal .p-button:not(.p-button-outline):hover{background:#303333}

/* Shared traced icons inherit theme colors in light and dark sections. */
:root{--icon-accent:var(--accent,#f43d15)}
.arrow svg{width:1em;height:1em;display:block;--icon-accent:currentColor}
svg.icon,svg.p-icon{overflow:visible;flex-shrink:0}
.portfolio-videos{display:flex;align-items:start;justify-content:center;gap:1.5rem;flex-wrap:wrap;background:var(--ink);padding:clamp(1rem,3vw,3rem)}
.portfolio-videos figure{flex:1 1 240px;max-width:360px;margin:0;color:var(--paper)}
.portfolio-videos video{display:block;width:100%;max-height:72vh;object-fit:contain;background:#101111}
.portfolio-videos figcaption{font-size:.8rem;padding-top:.75rem;color:#d5d5d0}
.portfolio-card .project-media{background:var(--soft)}
.portfolio-card .project-media img{object-fit:contain;transform:none}
.portfolio-card:hover .project-media img{transform:none}
.portfolio-card.has-video .project-media{background:var(--ink)}
.portfolio-cover{aspect-ratio:auto}
.portfolio-cover img,.portfolio-gallery .project-media img{height:auto;object-fit:contain}
.portfolio-gallery .project-media{aspect-ratio:auto}

/* Public typography follows the approved editorial references. Keep the portal
   scale independent; the custom display face is paired with Manrope UI text. */
body:is(.inner-v8,.home-rhythm):not(.portal){font-weight:450}
body:is(.inner-v8,.home-rhythm):not(.portal) main :is(h1,h2){font-family:var(--serif);font-weight:600;font-synthesis:none;font-kerning:normal;letter-spacing:-.025em}
body:is(.inner-v8,.home-rhythm):not(.portal) main :is(h1,h2) em{font-weight:inherit}
body:is(.inner-v8,.home-rhythm):not(.portal) main :is(.button,.rl-button,.ab-button,.pd-button,.pi-button){font-family:var(--sans);font-weight:600;font-size:14px;letter-spacing:0;line-height:1.45}
body:is(.inner-v8,.home-rhythm):not(.portal) main :is(.rl-project,.pd-story,.pd-related) h3{font-family:var(--serif);font-weight:600;letter-spacing:-.02em}
body:is(.inner-v8,.home-rhythm):not(.portal) :is(input,textarea,select){font-family:var(--sans);font-weight:400}

/* One public section label system. Portal labels retain their own scale. */
body:is(.inner-v8,.home-rhythm):not(.portal) main{--section-label-color:#485158;--section-label-rule:var(--brand-orange)}
body:is(.inner-v8,.home-rhythm):not(.portal) main :is(.ai-flow,.ai-process,.ab-philosophy,.career-values,.gp-process,.ws-process,.ws-care,.sp-audit-copy,.sp-process,.rl-rhythm,.pi-reels,.pd-gallery,.home-work-v4,.home-process,.reference-services,.rhythm-game,.rhythm-motion,.v8-band,.v8-film-copy,.v8-game-hero,.v8-course-hero,.d9-game-case-hero){--section-label-color:#e2e5df}
body:is(.inner-v8,.home-rhythm):not(.portal) main :is(.eyebrow,.ai-eyebrow,.ab-eyebrow,.gp-eyebrow,.rl-eyebrow,.ws-eyebrow,.sp-eyebrow,.pi-eyebrow,.pd-eyebrow,.pf-eyebrow,.site-faq-eyebrow,.service-links-eyebrow){display:block;position:relative;font-family:var(--sans);font-size:11px;font-weight:600;font-style:normal;line-height:1.6;letter-spacing:.16em;text-transform:uppercase;text-indent:0;color:var(--section-label-color);background:none;border:0;padding:0;margin:0 0 24px;max-width:100%;height:auto;min-height:0;gap:0;opacity:1}
body:is(.inner-v8,.home-rhythm):not(.portal) main :is(.eyebrow,.ai-eyebrow,.ab-eyebrow,.gp-eyebrow,.rl-eyebrow,.ws-eyebrow,.sp-eyebrow,.pi-eyebrow,.pd-eyebrow,.pf-eyebrow,.site-faq-eyebrow,.service-links-eyebrow)::before{content:none;display:none}
body:is(.inner-v8,.home-rhythm):not(.portal) main :is(.eyebrow,.ai-eyebrow,.ab-eyebrow,.gp-eyebrow,.rl-eyebrow,.ws-eyebrow,.sp-eyebrow,.pi-eyebrow,.pd-eyebrow,.pf-eyebrow,.site-faq-eyebrow,.service-links-eyebrow)::after{content:'';display:block;position:static;width:42px;height:2px;min-width:0;margin:16px 0 0;padding:0;border:0;border-radius:0;background:var(--section-label-rule);transform:none;opacity:1}
