/* Shared studio direction, independent of the retired Candy/Notion overrides. */
body:is(.studio-page,.studio-case,.studio-document) {
  --bg: #080807; --ink: #080807; --ink-soft: #4b4b48; --paper: #fffefa; --paper-soft: #f5f5f2;
  --light: #fffefa; --light-soft: #d4d4cf; --accent: #f05b00; --accent-deep: #c74600;
  --line-dark: #d8d8d3; --line-light: #ffffff30; --radius-xl: 0px; --radius-lg: 0px; --radius-md: 4px;
  margin: 0; background: #fffefa; color: #080807; font-family: var(--font-body); font-size: 18px;
}
body:is(.studio-page,.studio-case,.studio-document) .bg-canvas { display: none; }
body:is(.studio-page,.studio-case,.studio-document) main { overflow: clip; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.section,.light-section,.paper,.pricing-section,.faq-section) { width: 100%; max-width: none; margin: 0; padding: 88px var(--gutter); background: #fffefa; color: #080807; border: 0; border-bottom: 1px solid var(--line-dark); }
body:is(.studio-page,.studio-case,.studio-document) main :is(.section-shell,.hero-shell,.case-shell) { width: 100%; max-width: 1440px; margin: 0 auto; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.intro-grid,.section-grid,.services-header,.models-grid,.tailored-grid,.pricing-grid,.faq-grid,.communication-grid,.deliverables-grid,.after-grid,.result-grid,.complex-grid,.quote-grid,.extra-grid) { gap: 64px; }
body:is(.studio-page,.studio-case,.studio-document) main :is(h1,h2,h3,h4,p,ul,ol,figure,article,aside,div) { min-width: 0; }
body:is(.studio-page,.studio-case,.studio-document) main h1 { font-size: 72px !important; font-weight: 700 !important; line-height: 1.08 !important; max-width: 18ch; }
body:is(.studio-page,.studio-case,.studio-document) main h2 { font-size: 44px !important; font-weight: 700 !important; line-height: 1.15 !important; }
body:is(.studio-page,.studio-case,.studio-document) main h3 { font-size: 30px !important; font-weight: 600 !important; line-height: 1.2 !important; }
body.studio-page main .display-heading { max-width: none; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.intro-copy,.section-lead,.body-copy,.large-copy,.service-description,.lead,.stage-copy,.person-copy p,.cta-copy p) { color: inherit; font-size: 22px !important; font-weight: 400; line-height: 1.55 !important; max-width: 60ch; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.kicker,.eyebrow,.section-number,.section-index,.service-number,.stage-meta,.small-label,.scope-title,.output-title,.role,.price-tag,.person-number,.choice-title) { color: #c74600; font-family: var(--font-mono); font-size: 14px !important; line-height: 1.6; text-transform: none; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.kicker,.eyebrow)::before { display: none; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.hero,.case-hero,.page-hero) { position: relative; width: 100%; max-width: none; margin: 0; min-height: 0; padding: calc(var(--header) + 72px) var(--gutter) 64px; background: #080807; color: #fffefa; border: 0; overflow: hidden; }
body.studio-page main .hero-grid { display: block; }
body.studio-page main .hero h1 { margin: 16px 0 28px; font-size: 88px !important; color: #fffefa; }
body.studio-page main .hero .hero-copy { max-width: 760px; margin: 0; color: #fffefa; font-size: 26px !important; font-weight: 400; line-height: 1.5; }
body.studio-page main .hero .kicker { color: #ff791b; }
body.studio-page main .hero :is(.hero-panel,.hero-aside,.hero-side) { position: relative; min-height: 0; margin-top: 48px; padding: 28px 0 0; max-width: none; background: transparent; color: #d4d4cf; border: 0; border-top: 1px solid #ffffff30; box-shadow: none; }
body.studio-page main .hero .text-word { opacity: 1 !important; }
body.studio-page main .hero :is(.hero-copy,.button-row,.hero-note,.kicker,.reveal) { opacity: 1; transform: none; animation: none; }
body.studio-page main .hero > :is(.hero-shell,.section-shell) { animation: studio-enter 600ms cubic-bezier(.16,1,.3,1) both; }
@keyframes studio-enter { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
body.studio-page main .hero :is(.hero-flow,.budget-strip,.service-map) { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
body.studio-page main .hero .service-map { grid-template-columns: repeat(4,minmax(0,1fr)); }
body.studio-page main .hero :is(.service-map a,.hero-flow span,.budget-strip span) { padding: 0; background: transparent; border: 0; color: #fffefa; font-size: 18px; }
body.studio-page main .hero :is(.map-number,.hero-flow strong,.budget-strip em) { color: #ff791b; }
body.studio-page main .hero :is(.hero-note,.hero-side p) { margin: 24px 0 0; color: #d4d4cf; font-size: 16px; max-width: 760px; }
body.studio-page main .hero :is(.scroll-line,.scroll-label,.scroll-indicator,.hero-portrait) { display: none; }
body.studio-page main .hero-note::before { display: none; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.button,.submit-button) { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 14px 24px; border: 1px solid #080807; border-radius: 4px; font-size: 16px !important; text-decoration: none; transform: none; }
body:is(.studio-page,.studio-case,.studio-document) main .button-primary, body.studio-page main .submit-button { background: #f05b00; color: #080807; border-color: #f05b00; box-shadow: none; }
body:is(.studio-page,.studio-case,.studio-document) main .button-secondary { background: transparent; color: inherit; border-color: currentColor; }
body:is(.studio-page,.studio-case,.studio-document) main .button:hover { transform: translateY(-2px); }
body:is(.studio-page,.studio-case,.studio-document) main .button-row { margin-top: 32px; gap: 12px; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.dark,.dark-section,.blue-section,.competency-section) { background: #080807; color: #fffefa; padding: 88px var(--gutter); }
body:is(.studio-page,.studio-case,.studio-document) main :is(.dark,.dark-section,.blue-section) :is(p,li,h2,h3,.large-copy,.body-copy) { color: inherit; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.dark,.dark-section,.blue-section) :is(.eyebrow,.section-number,.section-index,.small-label) { color: #ff791b; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.service-card,.model-card,.package-card,.complex-card,.factor-item,.collaboration-card,.competency-card,.deliverable-card,.principle-card,.contact-form) { border-radius: 0; box-shadow: none; background: transparent; color: inherit; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.service-card,.model-card,.package-card,.complex-card,.collaboration-card,.competency-card,.deliverable-card,.principle-card) { padding: 24px 0; border: 0; border-top: 1px solid var(--line-dark); }
body.studio-page main .service-heading { position: sticky; top: calc(var(--header) + 32px); }
body.studio-page main .service-heading h3 { font-size: 40px !important; }
body.studio-page main :is(.scope-grid,.output-items) { gap: 0 24px; }
body.studio-page main :is(.scope-grid li,.output-items li,.responsibilities li) { color: inherit; padding: 14px 0; border-radius: 0; background: transparent; border-top: 1px solid var(--line-dark); }
body.studio-page main .service-subtitle { font-size: 20px; line-height: 1.5; }
body.studio-page main :is(.price-summary,.faq-question) { min-height: 64px; color: inherit; background: transparent; font: 500 20px/1.45 var(--font-ui); text-align: left; }
body.studio-page main :is(.price-name,.price-value) { text-transform: none; font-weight: 600; }
body.studio-page main .price-value { color: #c74600; font-size: 24px; white-space: nowrap; }
body.studio-page main :is(.price-item,.faq-item) { border: 0; border-bottom: 1px solid var(--line-dark); border-radius: 0; }
body.studio-page main .person-media { border-radius: 0; overflow: hidden; box-shadow: none; }
body.studio-page main .person-media img { filter: none; border-radius: 0; }
body.studio-page main .person-copy p { max-width: 40ch; }
body.studio-page main .person-copy .role { color: #c74600; font: 600 24px/1.4 var(--font-display) !important; text-transform: none; overflow-wrap: break-word; }
body.studio-page main .person-meta .person-number { color: #c74600; font: 700 24px/1.2 var(--font-display) !important; }
body.studio-page main .person-copy .responsibilities { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 24px; margin: 32px 0 0; padding: 0; border-top: 1px solid #d8d8d3; list-style: none; }
body.studio-page main .person-copy .responsibilities li { display: flex; align-items: center; gap: 12px; width: auto; min-height: 56px; padding: 14px 0; border: 0; border-bottom: 1px solid #d8d8d3; border-radius: 0; background: transparent; color: #080807; font: 500 16px/1.5 var(--font-ui); overflow-wrap: break-word; }
body.studio-page main .person-copy .responsibilities li::before { content: ''; flex: 0 0 12px; width: 12px; height: 2px; background: #f05b00; }
@media (max-width: 480px) { body.studio-page main .person-copy .responsibilities { grid-template-columns: minmax(0,1fr); margin-top: 24px; } }
body.studio-page main .split-copy p { font-size: 20px; line-height: 1.6; }
body.studio-page main .contact-form { padding: 0; border: 0; }
body.studio-page main :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),textarea,select) { background: #fffefa; color: #080807; border: 1px solid #90908a; border-radius: 4px; box-shadow: none; min-height: 52px; }
body.studio-page main :is(label,.choice-title,.form-note,.status) { color: #4b4b48; }
body.studio-page main .choice { border-radius: 4px; padding: 12px 14px; border-color: #90908a; color: #080807; }
body.studio-page main .choice:has(input:checked) { border-color: #c74600; background: #fff0e6; }
body.studio-page main :is(input,textarea):focus-visible { outline: 2px solid #c74600; outline-offset: 3px; }
body.studio-page main .direct-link { color: #080807; font-size: 20px; overflow-wrap: anywhere; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.cta,.next-project,.final-cta) { background: #f05b00 url('../hero-grain.png') center/240px repeat; background-blend-mode: soft-light; color: #080807; padding: 72px var(--gutter); }
body:is(.studio-page,.studio-case,.studio-document) main :is(.cta,.next-project,.final-cta) :is(h2,p,.kicker,.eyebrow,.cta-kicker,.lead,.text-link) { color: #080807; }
body:is(.studio-page,.studio-case,.studio-document) main :is(.cta,.next-project,.final-cta) :is(.kicker,.eyebrow,.cta-kicker) .text-word { opacity: 1 !important; }
body:is(.studio-page,.studio-case,.studio-document) main .cta .button-primary { color: #fffefa; background: #080807; border-color: #080807; }
body:is(.studio-page,.studio-case,.studio-document) .footer { padding: 64px var(--gutter) 28px; background: #080807; color: #fffefa; border: 0; }
body:is(.studio-page,.studio-case,.studio-document) .footer :is(.footer-brand,.footer-main,.footer-bottom,.footer-bar) { border-color: #ffffff30; }
body:is(.studio-page,.studio-case,.studio-document) .footer-wordmark { color: #fffefa; font: 600 36px/1.1 var(--font-ui); text-transform: none; }
body:is(.studio-page,.studio-case,.studio-document) .footer-wordmark span { display: inline; }
body:is(.studio-page,.studio-case,.studio-document) .footer-wordmark span + span::before { content: ' '; }
body:is(.studio-page,.studio-case,.studio-document) .footer :is(p,a,.footer-lead,.footer-links a,.footer-contact-item a) { color: #d4d4cf; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
body:is(.studio-page,.studio-case,.studio-document) .footer :is(.footer-group-title,.footer-meta) { color: #ff791b; font-size: 14px; text-transform: none; }
body:is(.studio-page,.studio-case,.studio-document) .footer .text-word { opacity: 1 !important; }
body:is(.studio-page,.studio-case,.studio-document) .footer a:hover { color: #fffefa; }
body.studio-document main .policy-stack { max-width: 1100px; margin: auto; }
body.studio-document main .policy-section { padding-block: 32px; border-top: 1px solid var(--line-dark); }
body.studio-document main .policy-section h2 { font-size: 28px !important; }
body.studio-document main .policy-section p { color: #080807; }
body.studio-case .case-chapters { top: var(--header); background: #fffefa; }
body.studio-case main :is(.hero-media,.hero-screen,.image-frame,.screen-frame,.media-frame) { border-radius: 0; box-shadow: none; }
body.studio-case main :is(.case-meta,.section-grid) { gap: 40px; }
body.studio-case main .hero :is(p,.case-meta,.eyebrow) { color: #d4d4cf; }
body.studio-case main .hero .case-title, body.studio-case main .case-hero .case-title { color: #fffefa; }
@media (max-width: 1023px) {
  body:is(.studio-page,.studio-case,.studio-document) main h1 { font-size: 56px !important; }
  body.studio-page main .hero h1 { font-size: 72px !important; }
  body:is(.studio-page,.studio-case,.studio-document) main h2 { font-size: 36px !important; }
  body:is(.studio-page,.studio-case,.studio-document) main :is(.intro-grid,.section-grid,.services-header,.models-grid,.tailored-grid,.pricing-grid,.faq-grid,.communication-grid,.deliverables-grid,.after-grid,.result-grid,.complex-grid,.quote-grid,.extra-grid) { gap: 32px; }
}
@media (prefers-reduced-motion: reduce) { body.studio-page main .hero > :is(.hero-shell,.section-shell) { animation: none; } }
@media (max-width: 680px) {
  body.studio-page main .person-copy .role { font-size: 20px !important; }
  body.studio-page main .person-meta .person-number { font-size: 20px !important; }
  body:is(.studio-page,.studio-case,.studio-document) { font-size: 16px; }
  body:is(.studio-page,.studio-case,.studio-document) main :is(.section,.light-section,.dark-section,.blue-section,.paper,.dark,.pricing-section,.faq-section) { padding: 56px 20px; }
  body:is(.studio-page,.studio-case,.studio-document) main :is(.hero,.case-hero,.page-hero) { padding: calc(var(--header) + 44px) 20px 40px; }
  body:is(.studio-page,.studio-case,.studio-document) main h1, body.studio-page main .hero h1 { font-size: 48px !important; }
  body:is(.studio-page,.studio-case,.studio-document) main h2 { font-size: 32px !important; }
  body:is(.studio-page,.studio-case,.studio-document) main h3, body.studio-page main .service-heading h3 { font-size: 26px !important; }
  body:is(.studio-page,.studio-case,.studio-document) main :is(.intro-copy,.section-lead,.body-copy,.large-copy,.service-description,.lead,.stage-copy,.person-copy p,.cta-copy p) { font-size: 20px !important; }
  body.studio-page main .hero .hero-copy { font-size: 22px !important; }
  body.studio-page main .hero :is(.hero-flow,.budget-strip,.service-map) { grid-template-columns: 1fr; gap: 20px; }
  body.studio-page main .service-heading { position: static; }
  body:is(.studio-page,.studio-case,.studio-document) main :is(.cta,.next-project,.final-cta) { padding: 56px 20px; }
  body:is(.studio-page,.studio-case,.studio-document) .footer { padding: 48px 20px 24px; }
  body:is(.studio-page,.studio-case,.studio-document) .footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 20px; }
  body:is(.studio-page,.studio-case,.studio-document) .footer-wordmark { font-size: 28px; }
}
