/* Shared editorial hierarchy: statement, explanation, evidence, action. */
:root { --reading: color-mix(in srgb, var(--ink) 76%, var(--paper)); }
.shooting-page { --section-gap:clamp(3.5rem,7vw,6.5rem); }
.shooting-page .shooting-hero { padding-block:clamp(2.5rem,5vw,5rem); }
.shooting-page .shooting-hero h1 { margin:1.2rem 0 1.5rem; font-size:clamp(2.8rem,5.2vw,5.6rem); font-weight:650; line-height:1.06; letter-spacing:-.05em; text-wrap:initial; overflow-wrap:normal; }
.hero-secondary { display:block; margin-top:.35em; font-size:.64em; font-weight:400; line-height:1.1; letter-spacing:-.04em; color:var(--reading); }
.shooting-page .shooting-hero__copy>p:not(.eyebrow) { max-width:48ch; color:var(--reading); line-height:1.65; }
.shooting-page .shooting-hero .shooting-intro { font-size:clamp(1.13rem,1.7vw,1.4rem); line-height:1.4; letter-spacing:-.015em; }
.eyebrow, .shooting-page .eyebrow, .service-paths .eyebrow, .uiux-home .eyebrow { display:flex; align-items:baseline; gap:.75rem; color:var(--ink); font-size:.75rem; font-weight:600; letter-spacing:.015em; line-height:1.6; text-transform:none; }
.section-folio { position:relative; top:-.32em; flex:none; font-size:.59rem; font-weight:500; line-height:1; letter-spacing:0; font-variant-numeric:tabular-nums; opacity:.65; }
.eyebrow::before { content:none; }
.shooting-page .shooting-section { margin-top:var(--section-gap); padding-top:clamp(2.5rem,5vw,4rem); }
.shooting-page .shooting-section h2 { font-size:clamp(2rem,3.7vw,3.6rem); font-weight:600; letter-spacing:-.04em; line-height:1.12; margin:1rem 0 1.6rem; overflow-wrap:normal; }
.shooting-page .shooting-section p { color:var(--reading); line-height:1.7; }
.shooting-page .shooting-section p.eyebrow { color:var(--ink); }
.shooting-page .shooting-section h3, .design-service-list dt { line-height:1.25; }
.shooting-page .shooting-section p strong { color:var(--ink); font-weight:600; }
.shooting-page figcaption { font-size:.75rem; line-height:1.6; }
.shooting-page .shooting-button, .form-submit { background:var(--ink); color:var(--paper); border-color:var(--ink); box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; font-size:.9rem; }
.shooting-page .shooting-button::before, .shooting-page .shooting-button::after, .form-submit::before, .form-submit::after { display:none; }
.shooting-page .shooting-button:hover, .form-submit:hover:not(:disabled), .form-submit:focus-visible { background:var(--ink); color:var(--paper); box-shadow:0 0 0 4px color-mix(in srgb,var(--ink) 12%,transparent); }
.shooting-page .shooting-button>span[aria-hidden] { background:var(--paper); color:var(--ink); }
.shooting-actions { gap:.6rem 1.4rem; margin-top:1.5rem; }
.shooting-actions>a:not(.shooting-button) { color:var(--reading); font-size:.82rem; }
.shooting-page .shooting-header nav a:last-child, .quick-nav a:last-child { background:var(--ink); color:var(--paper); }
.quick-nav a:last-child>span { color:var(--ink); background:var(--paper); }
.shooting-page .shooting-header nav a:last-child:hover, .quick-nav a:last-child:hover { color:var(--paper); background:var(--ink); opacity:.85; }
.shooting-steps { counter-reset:steps; gap:2.5rem; }
.shooting-steps li { counter-increment:steps; border-top:1px solid var(--line); padding-top:1.25rem; }
.shooting-steps li::before { content:"0" counter(steps); display:block; margin-bottom:1.5rem; font-size:.78rem; font-weight:600; letter-spacing:.08em; }
.shooting-steps h3 { font-size:1.5rem; font-weight:600; max-width:20ch; }
.shooting-steps p { font-size:.95rem; }
.design-service-list>div { padding:1.5rem 0; }
.design-service-list dt { font-size:1.5rem; }
.design-service-list dd { max-width:45ch; font-size:.96rem; color:var(--reading); }
.shooting-styles article { border-top:1px solid var(--line); margin-top:1.5rem; padding-top:.3rem; }
.shooting-styles h3 { font-size:1.4rem; margin-top:1rem; }
.shooting-page .shooting-faq { max-width:none; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); column-gap:clamp(2rem,6vw,6rem); align-items:start; }
.shooting-faq__heading { grid-column:1; grid-row:1; }
.shooting-faq__items { grid-column:2; }
.shooting-page .shooting-faq h2 { font-size:clamp(2rem,3vw,2.9rem); max-width:17ch; }
.shooting-faq summary { display:flex; gap:1.5rem; align-items:center; justify-content:space-between; list-style:none; padding:1.35rem 0; font-size:1rem; font-weight:600; }
.shooting-faq summary::-webkit-details-marker { display:none; }
.shooting-faq summary::after { content:"+"; flex:none; font-size:1.45rem; font-weight:400; line-height:1; }
.shooting-faq details[open] summary::after { content:"−"; }
.shooting-faq details[open] summary { padding-bottom:1rem; }
.shooting-faq details p { font-size:.95rem; padding-right:2rem; }
.shooting-page .shooting-inquiry { border-top:3px solid var(--ink); padding-top:clamp(2rem,5vw,4rem); }
.shooting-page .shooting-inquiry h2 { font-size:clamp(2.4rem,4.4vw,4.3rem); max-width:15ch; }
.shooting-inquiry>div:first-child>p:not(.eyebrow) { max-width:39ch; }
.shooting-inquiry>div:last-child { background:color-mix(in srgb,var(--ink) 4%,var(--paper)); padding:clamp(1.3rem,3vw,2.5rem); border-radius:4px; }
.form-field label { text-transform:none; letter-spacing:0; font-size:.83rem; line-height:1.5; }
.interest-form .interest-consent { font-size:.78rem; line-height:1.6; }
.interest-form .form-submit { font-weight:600; }

/* Portfolio: quieter service links, one distinct digital-services feature. */
.service-paths { border-top:0; }
.service-paths article { padding-block:2.5rem; }
.service-paths article:first-child { padding-left:0; }
.service-paths h2 { font-size:clamp(2rem,3.4vw,3.5rem); font-weight:500; line-height:1.1; }
.service-paths p:not(.eyebrow) { max-width:43ch; color:var(--reading); }
.uiux-home { background:var(--ink); color:var(--paper); border:0; gap:clamp(2rem,6vw,6rem); padding:clamp(1.5rem,5vw,5rem); }
.uiux-home .eyebrow { color:var(--paper); max-width:none; }
.uiux-home h2 { max-width:12ch; font-size:clamp(2.8rem,5.4vw,5.5rem); font-weight:600; letter-spacing:-.05em; }
.uiux-home p { color:color-mix(in srgb,var(--paper) 80%,var(--ink)); max-width:48ch; }
.uiux-home a { border-top:1px solid color-mix(in srgb,var(--paper) 35%,transparent); padding-top:1.4rem; color:var(--paper); line-height:1.5; text-decoration:none; }
.uiux-home a:hover { text-decoration:underline; text-underline-offset:5px; }
.uiux-home a:focus-visible { outline-color:var(--paper); }
.uiux-home a span { font-size:1.65rem; flex:none; }
.primary-action__title { font-weight:500; }
.project-dialog__copy h2 { line-height:1.02; }
.project-dialog__description { font-size:clamp(1rem,1.2vw,1.15rem); line-height:1.7; color:var(--reading); }
.text-dialog__intro { line-height:1.4; }
.about-copy>p:not(.text-dialog__intro) { line-height:1.7; }
.legal-page { max-width:52rem; padding-block:clamp(3rem,7vw,6rem); }
.legal-page h1 { font-size:clamp(2.7rem,7vw,5.5rem); line-height:1.05; letter-spacing:-.05em; }
.legal-page h2 { font-size:clamp(1.4rem,2.4vw,1.9rem); line-height:1.3; letter-spacing:-.025em; padding-top:1.2rem; border-top:1px solid var(--line); }
.legal-page p { font-size:1rem; line-height:1.75; color:var(--reading); }

/* UI/UX: different visual roles instead of a wall of equivalent cards. */
.uiux-page .uiux-hero { grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:clamp(2rem,4vw,4rem); }
.uiux-page .shooting-hero h1 { font-size:clamp(2.8rem,4.8vw,5rem); }
.uiux-page .shooting-hero__copy>p.eyebrow { font-size:.72rem; line-height:1.6; }
.uiux-page .shooting-hero .shooting-intro { max-width:28ch; margin-block:1.4rem 1rem; }
.uiux-page .shooting-hero__copy>p.hero-credit { font-size:.75rem; margin-top:1.1rem; color:var(--muted); }
.uiux-preview { position:relative; }
.uiux-page .uiux-preview figcaption { display:flex; gap:.6rem; align-items:center; font-size:.7rem; }
.uiux-preview figcaption::before { content:none; }
.uiux-contents { display:flex; align-items:center; gap:1rem 2.5rem; padding:1rem 0; border-block:1px solid var(--line); }
.uiux-contents>span { font-size:.65rem; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); margin-right:auto; }
.uiux-contents a { display:inline-flex; gap:.65rem; align-items:center; min-height:44px; text-decoration:none; font-size:.8rem; font-weight:600; }
.uiux-contents a span { font-size:.65rem; font-weight:400; color:var(--muted); }
.uiux-contents a:hover { text-decoration:underline; text-underline-offset:5px; }
.uiux-proofline { border-top:0; padding:1.5rem 0; gap:2rem; }
.uiux-proofline strong { font-size:.85rem; }
.uiux-proofline p+p { border-left:1px solid var(--line); padding-left:2rem; }
.uiux-page .uiux-services { margin-top:0; padding-top:var(--section-gap); border-top:0; }
.uiux-section-lead>p { font-size:1.05rem; max-width:47ch; }
.uiux-page .uiux-section-lead h2 { font-size:clamp(2.3rem,4.1vw,4rem); }
.type-light { font-weight:400; color:var(--reading); }
.uiux-service-grid { display:block; border:0; margin-top:2.7rem; }
.uiux-service-grid article { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 clamp(2rem,5vw,5rem); border:0; border-top:1px solid var(--line); padding:2rem 0; }
.uiux-service-grid article:last-child { border-bottom:1px solid var(--line); }
.uiux-number { display:flex; align-items:center; gap:1rem; grid-column:1; font-size:.63rem; line-height:1.4; letter-spacing:.1em; color:var(--muted); }
.uiux-number b { color:var(--ink); font-size:.8rem; font-weight:600; letter-spacing:0; }
.uiux-service-grid h3 { grid-column:1; margin:.8rem 0 0; font-size:clamp(1.65rem,2.55vw,2.6rem); font-weight:500; line-height:1.15; letter-spacing:-.035em; }
.uiux-service-description { grid-column:2; grid-row:1 / 3; }
.uiux-service-grid p { margin:0; font-size:.96rem; }
.uiux-page .uiux-service-grid .uiux-result { display:flex; align-items:flex-start; gap:.75rem; margin-top:1rem; padding-top:0; color:var(--ink); font-size:.87rem; line-height:1.6; }
.uiux-result::before { content:none; }
.uiux-result strong { font-weight:600; }
.uiux-page .uiux-case { border-top:0; padding:clamp(1.5rem,4vw,4rem); background:color-mix(in srgb,var(--ink) 4%,var(--paper)); }
.uiux-page .uiux-case h2 { font-size:clamp(2.5rem,4.4vw,4.5rem); max-width:18ch; }
.uiux-case__intro { align-items:center; }
.uiux-case__intro>div:last-child p { font-size:.95rem; }
.uiux-case-facts { gap:2rem; margin-top:2.5rem; }
.uiux-case-facts span { color:var(--ink); font-weight:700; font-size:.65rem; }
.uiux-case-facts p { max-width:30ch; }
.uiux-page .uiux-detail { margin:2.5rem 0 1.5rem; }
.uiux-page .uiux-detail .vm-showcase { max-width:56rem; }
.uiux-comparison-panel>summary { font-weight:600; font-size:.95rem; }
.uiux-page .uiux-method { --ink:#f4f1e8; --paper:#191a17; --muted:#b3b3a9; --reading:#ccccc3; --line:rgba(244,241,232,.23); color:var(--ink); background:var(--paper); border:0; padding:clamp(1.5rem,4.5vw,4.5rem); gap:clamp(2rem,5vw,5rem); }
:root[data-theme="dark"] .uiux-page .uiux-method { --ink:#191a17; --paper:#edece5; --muted:#63645c; --reading:#50514a; --line:rgba(25,26,23,.25); }
.uiux-page .uiux-method h2 { font-size:clamp(2.6rem,4.4vw,4.5rem); max-width:15ch; line-height:1.03; }
.uiux-page .uiux-method h2 .type-light { display:block; font-size:.6em; margin-bottom:.5em; }
.uiux-method p { font-size:.95rem; }
.uiux-process { align-self:center; }
.uiux-process li { grid-template-columns:2.2rem minmax(0,1fr); padding:1.4rem 0; }
.uiux-process li>span { font-size:.8rem; color:var(--ink); }
.uiux-process h3 { font-size:1.4rem; font-weight:500; }
.uiux-page .uiux-process p { font-size:.89rem; }
.uiux-entry-grid { gap:0; border:1px solid var(--line); }
.uiux-entry-grid article { border:0; padding:clamp(1.4rem,2.6vw,2.5rem); }
.uiux-entry-grid article+article { border-left:1px solid var(--line); }
.uiux-entry-grid article:first-child { background:color-mix(in srgb,var(--ink) 6%,var(--paper)); }
.uiux-entry-grid .entry-label { display:block; margin-bottom:1.5rem; font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.uiux-entry-grid h3 { font-size:clamp(1.4rem,2vw,2rem); font-weight:600; margin:0 0 1rem; }
.uiux-entry-grid p { margin-bottom:0; }
.uiux-entry-grid a { display:inline-flex; align-items:center; gap:1rem; min-height:44px; margin-top:1rem; font-size:.85rem; font-weight:600; text-underline-offset:5px; }
.uiux-page .uiux-search h2,.uiux-page .uiux-local h2 { font-size:clamp(2rem,3vw,3rem); }
.uiux-search-list { padding:0 0 0 2rem; background:none; border-left:2px solid var(--ink); }
.uiux-search-list h3 { font-size:1.2rem; font-weight:600; }
.uiux-search-list li { position:relative; padding-left:1.7rem; }
.uiux-search-list li::before { content:"✓"; position:absolute; left:0; font-size:.85rem; }
.uiux-page .uiux-local { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:clamp(2rem,5vw,5rem); }
.uiux-local .eyebrow,.uiux-local h2 { grid-column:1; }
.uiux-local h2 { grid-row:2 / 4; margin-bottom:0; }
.uiux-local p:not(.eyebrow) { grid-column:2; margin-top:0; font-size:.95rem; }
.uiux-local p:nth-of-type(2) { grid-row:2; }
.uiux-local p:nth-of-type(3) { grid-row:3; }

@media(max-width:1000px) {
 .shooting-page .shooting-header { gap:1rem; }
 .shooting-brand { width:12rem; }
 .uiux-contents { gap:1rem 1.5rem; }
}
@media(max-width:800px) {
 .shooting-page .shooting-hero,.uiux-page .uiux-hero { grid-template-columns:1fr; gap:2.2rem; }
 .shooting-page .shooting-hero h1,.uiux-page .shooting-hero h1 { font-size:clamp(2.65rem,8.8vw,4.7rem); max-width:18ch; }
 .shooting-page .shooting-hero__copy>p:not(.eyebrow) { max-width:48ch; }
 .shooting-page .shooting-hero .shooting-intro { font-size:1.2rem; }
 .hero-secondary { font-size:.65em; margin-top:.4em; }
 .shooting-page .shooting-section h2 { max-width:21ch; }
 .shooting-page .shooting-faq { grid-template-columns:1fr; gap:1rem; }
 .shooting-faq__items { grid-column:1; }
 .shooting-page .shooting-faq h2 { max-width:23ch; }
 .shooting-page .shooting-inquiry { gap:1.5rem; }
 .uiux-contents { display:grid; grid-template-columns:1fr 1fr; gap:.2rem 1rem; }
 .uiux-contents>span { grid-column:1 / -1; margin-bottom:.5rem; }
 .uiux-service-grid article { gap:0 2rem; }
 .uiux-page .uiux-section-lead h2 { margin-bottom:0; }
 .uiux-section-lead>p { margin:0; }
 .uiux-page .uiux-local { grid-template-columns:1fr; }
 .uiux-local h2,.uiux-local p:not(.eyebrow) { grid-column:1; grid-row:auto; }
 .uiux-local h2 { margin-bottom:1.5rem; }
 .uiux-page .uiux-method { gap:2rem; }
 .uiux-page .uiux-method h2 { font-size:clamp(2.8rem,8vw,4.5rem); }
 .uiux-search-list { margin-top:1rem; }
 .uiux-home { gap:1rem; }
 .uiux-home h2 { max-width:15ch; }
 .uiux-home a { width:100%; justify-content:space-between; }
 .shooting-steps { gap:1rem; }
 .shooting-steps li::before { margin-bottom:.8rem; }
}
@media(max-width:560px) {
 .shooting-page .eyebrow { font-size:.7rem; letter-spacing:.01em; gap:.6rem; }
 .shooting-page .shooting-hero__copy>p.eyebrow { font-size:.68rem; }
 .shooting-page .shooting-section { padding-top:2.5rem; }
 .shooting-page .shooting-hero { padding-block:2.5rem; }
 .shooting-page .shooting-section h2 { font-size:2.15rem; line-height:1.12; }
 .shooting-page .shooting-actions>a:not(.shooting-button) { justify-content:center; width:100%; }
 .uiux-service-grid article { grid-template-columns:1fr; padding-block:1.7rem; }
 .uiux-service-description { grid-column:1; grid-row:auto; margin-top:1.2rem; }
 .uiux-service-grid h3 { font-size:1.85rem; margin-top:.75rem; }
 .uiux-service-grid h3 br { display:none; }
 .uiux-service-grid p { font-size:.95rem; }
 .uiux-proofline { gap:1rem; }
 .uiux-proofline p+p { padding-left:0; border:0; }
 .uiux-proofline strong { font-size:.78rem; }
 .uiux-case-facts { grid-template-columns:1fr; gap:.8rem; }
 .uiux-case-facts>div { display:block; }
 .uiux-case-facts p { margin:.35rem 0; max-width:38ch; }
 .uiux-page .uiux-case,.uiux-page .uiux-method { padding:1.5rem; margin-inline:-.25rem; }
 .uiux-page .uiux-case h2 { font-size:2.25rem; }
 .uiux-page .uiux-method h2 { font-size:2.8rem; }
 .uiux-entry-grid article+article { border-left:0; border-top:1px solid var(--line); }
 .uiux-entry-grid .entry-label { margin-bottom:.8rem; }
 .uiux-page .shooting-inquiry h2 { font-size:2.6rem; }
 .uiux-search-list { padding-left:1.25rem; }
 .service-paths article { padding-inline:0; }
 .project-dialog__description { line-height:1.65; }
}
@media(min-width:801px) {
 .shooting-page:not(.design-page):not(.uiux-page) .shooting-hero__image img { aspect-ratio:1; }
}
@media(prefers-reduced-transparency:reduce), (prefers-contrast:more) {
 .shooting-page .shooting-button,.form-submit { color:var(--paper); background:var(--ink) !important; }
}
@media(forced-colors:active) {
 .shooting-page .shooting-button,.form-submit { color:CanvasText !important; background:Canvas !important; }
 .uiux-home,.uiux-page .uiux-method { color:CanvasText; background:Canvas; border:1px solid CanvasText; }
 .uiux-home p,.uiux-home h2,.uiux-home a,.uiux-home .eyebrow,.uiux-page .uiux-method * { color:CanvasText; }
}

/* A compact invitation, with one primary action and a quieter personal introduction. */
.site-offer { margin:1rem auto 0; max-width:42rem; font-size:.82rem; line-height:1.75; color:var(--muted); }
.site-offer a { color:var(--ink); text-decoration-thickness:1px; text-underline-offset:3px; }
/* Two readable service promises. Each line keeps its own rhythm at every size. */
.site-header .site-brand { width:min(55vw,19rem); margin:1.5rem 0 .5rem; }
.site-header .site-focus { margin:0; font-size:.67rem; font-weight:550; letter-spacing:.1em; line-height:1.65; }
.site-header .site-intro { width:100%; max-width:22ch; margin:1.35rem 0 0; font-size:clamp(3.1rem,6.1vw,5.75rem); font-weight:550; line-height:1.12; letter-spacing:-.045em; }
.site-intro>span { display:block; }
.site-intro>span:first-child { font-weight:470; color:var(--ink); }
.site-intro>span+span { margin-top:.075em; font-weight:580; color:var(--ink); }
.site-header .site-offer { max-width:56ch; margin:1.6rem auto 0; font-size:.96rem; line-height:1.75; color:var(--reading); text-wrap:pretty; }
.site-offer strong { color:var(--ink); font-weight:600; }
.site-authorship { max-width:55ch; margin:.9rem auto 0; font-size:.81rem; line-height:1.65; color:var(--reading); text-wrap:balance; }
.site-authorship strong { font-weight:600; color:var(--ink); }
.site-region { max-width:60ch; margin:1rem auto .6rem; font-size:.71rem; line-height:1.6; color:var(--muted); text-wrap:balance; }
.site-actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.6rem 1.8rem; margin:1.5rem 0 0; }
.site-method-link { display:inline-flex; align-items:center; min-height:44px; font-size:.83rem; text-underline-offset:4px; }
.studio-photo-note { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1.5rem; padding:2rem 0; border-block:1px solid var(--line); }
.studio-photo-note h3 { margin:0 0 .4rem; font-size:1.1rem; font-weight:550; line-height:1.3; letter-spacing:-.02em; }
.studio-photo-note p { max-width:60ch; margin:0; font-size:.84rem; line-height:1.65; color:var(--reading); }
.studio-photo-note>a { display:inline-flex; align-items:center; min-height:44px; font-size:.83rem; text-underline-offset:4px; }
@media(max-width:760px) {
 .site-header { padding-top:.5rem; }
 .site-header .site-kicker { position:static; max-width:none; font-size:.58rem; line-height:1.6; }
 .site-header .site-brand { width:min(62vw,16rem); margin:.5rem 0 .6rem; }
 .site-header .site-focus { max-width:36ch; font-size:.59rem; letter-spacing:.06em; }
 .site-header .site-intro { max-width:22ch; margin-top:1.2rem; font-size:clamp(1.75rem,8.6vw,4rem); line-height:1.16; letter-spacing:-.045em; }
 .site-intro>span { text-wrap:balance; }
 .site-intro>span+span { margin-top:.12em; }
 .site-header .site-offer { max-width:40ch; margin-top:1.25rem; font-size:.88rem; line-height:1.75; }
 .site-authorship { max-width:34ch; font-size:.76rem; }
 .site-region { max-width:42ch; font-size:.68rem; }
 .site-actions { gap:.25rem 1.4rem; margin-top:1.25rem; }
 .site-actions .studio-contact__button { min-height:48px; font-size:.82rem; padding:.8rem 1.2rem; }
 .studio-photo-note { grid-template-columns:auto minmax(0,1fr); gap:1rem; align-items:start; }
 .studio-photo-note>a { grid-column:2; justify-self:start; }
}
.studio-contact { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(16rem,.7fr); gap:3rem; align-items:center; margin:clamp(3rem,6vw,6rem) var(--page-edge) 0; padding-block:clamp(2.5rem,5vw,4.5rem); border-block:1px solid var(--line); }
.studio-contact h2 { margin:1.1rem 0 1.2rem; font-size:clamp(2.3rem,4.2vw,4.3rem); line-height:1.1; letter-spacing:-.045em; font-weight:550; }
.studio-contact__intro>p:last-child { color:var(--reading); max-width:38ch; font-size:.95rem; line-height:1.7; margin-bottom:0; }
.studio-contact__actions { display:flex; flex-direction:column; align-items:flex-start; justify-self:end; width:min(100%,22rem); }
.studio-contact__button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:.9rem 1.6rem; border:1px solid var(--ink); border-radius:999px; background:var(--ink); color:var(--paper); text-decoration:none; font-size:.92rem; font-weight:600; line-height:1.4; transition:box-shadow .2s; }
.studio-contact__button:hover { box-shadow:0 0 0 5px color-mix(in srgb,var(--ink) 10%,transparent); }
.studio-contact__mail { display:inline-flex; align-items:center; min-height:44px; margin-top:.5rem; font-size:.85rem; text-underline-offset:4px; }
.studio-contact__profile { display:flex; align-items:center; gap:1rem; width:100%; margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--line); text-decoration:none; }
.studio-contact__profile img { width:48px; height:48px; flex:none; object-fit:cover; border-radius:50%; filter:grayscale(1); }
.studio-contact__profile strong { display:block; font-size:.86rem; font-weight:600; }
.studio-contact__profile span span { display:block; margin-top:.3rem; color:var(--muted); font-size:.74rem; line-height:1.5; }
.studio-contact__profile:hover strong { text-decoration:underline; text-underline-offset:4px; }
.studio-contact a:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
@media(max-width:800px) {
 .studio-contact { grid-template-columns:1fr; gap:2rem; }
 .studio-contact__actions { justify-self:start; width:100%; }
 .studio-contact__profile { max-width:25rem; }
}
@media(max-width:560px) {
 .site-offer { max-width:29ch; font-size:.77rem; }
 .studio-contact h2 { font-size:clamp(2rem,8vw,2.8rem); }
 .studio-contact__button { width:100%; }
 .shooting-page .shooting-hero h1,.uiux-page .shooting-hero h1 { font-size:clamp(2.2rem,8.4vw,3.1rem); letter-spacing:-.045em; }
}
@media(forced-colors:active) { .studio-contact__button { background:ButtonFace; color:ButtonText; border-color:ButtonText; } }

/* Studio refinement: quiet typography, a single reading surface, reliable mobile glass. */
.facetten-cover img { filter:grayscale(1); object-position:47% 45%; }
.eyebrow,.shooting-page .eyebrow { font-size:.72rem; font-weight:650; letter-spacing:.045em; }
.section-folio,.shooting-steps li::before { display:none; }
.uiux-process li { grid-template-columns:minmax(0,1fr); }
.uiux-number { font-size:.65rem; letter-spacing:.08em; }
.project-dialog__copy h2 { font-size:clamp(2.6rem,4.1vw,4.9rem); font-weight:550; letter-spacing:-.045em; line-height:1.07; text-wrap:balance; }
.project-dialog__description { max-width:43ch; margin:1.25rem 0 2rem; font-size:1rem; line-height:1.7; }
.project-dialog__copy dl { margin:0 0 .8rem; }
.project-dialog__copy dl div { grid-template-columns:6.5rem minmax(0,1fr); gap:.9rem; padding:.65rem 0; }
.project-dialog__copy dd { line-height:1.5; font-size:.8rem; }
.project-dialog__copy dt { font-size:.63rem; line-height:1.8; letter-spacing:.035em; }
.project-dialog__link { display:flex; flex-direction:column; align-items:flex-start; gap:.6rem; }
.project-dialog__link a { font-size:.84rem; line-height:1.5; margin-top:.25rem; min-height:36px; display:inline-flex; align-items:center; }
dialog { width:min(1320px,calc(100% - 3rem)); height:calc(100% - 3rem); height:calc(100dvh - 3rem); margin:auto; border:1px solid var(--line); border-radius:18px; background:var(--paper); box-shadow:0 30px 100px rgb(0 0 0 / .15); }
dialog[open] { grid-template-rows:auto minmax(0,1fr); }
.dialog-toolbar { width:100%; min-height:64px; padding:.6rem 1.1rem; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); background:var(--paper); }
.dialog-toolbar__label { color:var(--muted); font-size:.69rem; letter-spacing:.025em; }
.dialog-close { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; width:auto; min-width:110px; height:44px; padding:.55rem .9rem; border-radius:999px; background:color-mix(in srgb,var(--ink) 5%,var(--paper)); box-shadow:none; font-size:.76rem; font-weight:550; -webkit-backdrop-filter:none; backdrop-filter:none; }
.dialog-close .ui-icon { width:16px; height:16px; }
.dialog-close::after { display:none; }
.dialog-close:hover { background:color-mix(in srgb,var(--ink) 10%,var(--paper)); color:var(--ink); }
.dialog-close:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.dialog-shell { width:100%; margin:0; scroll-padding:1.5rem; scrollbar-gutter:stable; }
.project-dialog__shell { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:start; }
.project-dialog__media,html[data-theme="dark"] .project-dialog__media { position:sticky; top:0; align-self:start; min-height:0; padding:clamp(1.3rem,3vw,3rem); background:transparent; }
.project-dialog__media .project-gallery { border:0; border-radius:0; background:transparent; box-shadow:none; padding:0; }
.project-dialog__media .project-gallery__stage { max-height:calc(100dvh - 15rem); min-height:0; background:color-mix(in srgb,var(--ink) 3%,var(--paper)); }
.project-dialog__copy { align-self:start; min-width:0; padding:clamp(2rem,3.8vw,4rem) clamp(1.5rem,3vw,3rem) 3rem 1rem; }
.project-gallery__nav { margin-top:.6rem; }
.project-gallery__count { font-variant-numeric:tabular-nums; }
.quick-nav { position:sticky; top:max(.65rem,env(safe-area-inset-top)); }
.quick-nav,.shooting-header nav { -webkit-backdrop-filter:blur(18px) saturate(145%); backdrop-filter:blur(18px) saturate(145%); }
.tfp-section { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:start; }
.shooting-page .tfp-section h2 { font-size:clamp(2rem,3.4vw,3.3rem); }
.shooting-page .tfp-lead { font-size:1.15rem; color:var(--ink); margin-top:0; }
.tfp-details { margin:1.4rem 0; padding-block:1rem; border-block:1px solid var(--line); }
.tfp-details summary { cursor:pointer; font-size:.85rem; font-weight:600; line-height:1.5; }
.tfp-details ul { padding-left:1.2rem; margin:1rem 0 0; font-size:.86rem; line-height:1.7; color:var(--reading); }
.tfp-details li+li { margin-top:.6rem; }
.tfp-link { display:inline-flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:44px; font-size:.88rem; text-underline-offset:5px; }
.legal-page { max-width:48rem; }
.legal-page p { max-width:66ch; }
.legal-nav { display:flex; gap:1.5rem; flex-wrap:wrap; padding-block:1rem; border-block:1px solid var(--line); margin:2rem 0; font-size:.8rem; }
.legal-page ul { line-height:1.7; padding-left:1.2rem; color:var(--reading); }
.legal-page li+li { margin-top:.6rem; }
@media(max-width:800px) {
 .tfp-section { grid-template-columns:1fr; gap:1rem; }
 .shooting-header { position:sticky; top:0; z-index:25; flex-wrap:nowrap; align-items:center; width:100%; padding:.55rem var(--page-edge); background:color-mix(in srgb,var(--paper) 78%,transparent); -webkit-backdrop-filter:blur(20px) saturate(145%); backdrop-filter:blur(20px) saturate(145%); }
 .shooting-header .shooting-brand { width:6.5rem; }
 .shooting-header .shooting-brand span { display:none; }
 .shooting-header nav { flex-wrap:nowrap; gap:0; padding:.2rem; border:0; box-shadow:none; background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none; }
 .shooting-header nav a { font-size:.7rem; padding:.45rem .65rem; }
 .shooting-header nav::before,.shooting-header nav::after { display:none; }
}
@media(max-width:720px) {
 .quick-nav { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); width:calc(100% - 1.25rem); max-width:31rem; margin:1rem auto; gap:.1rem; padding:.3rem; border-radius:24px; background:color-mix(in srgb,var(--paper) 63%,transparent); -webkit-backdrop-filter:blur(20px) saturate(155%); backdrop-filter:blur(20px) saturate(155%); }
 .quick-nav a:not(:last-child),.quick-nav a:last-child { min-width:0; min-height:42px; margin:0; padding:.45rem .3rem; font-size:.7rem; }
 .quick-nav a:nth-of-type(-n+3) { grid-column:span 2; }
 .quick-nav a:nth-of-type(4),.quick-nav a:last-child { grid-column:span 3; }
 .quick-nav .nav-droplet { display:none; }
 #arbeiten,#hauptinhalt { scroll-margin-top:7.5rem; }
 dialog { width:100%; height:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
 .dialog-toolbar { min-height:62px; padding:max(.45rem,env(safe-area-inset-top)) 1rem .45rem; }
 .dialog-shell { width:100%; scrollbar-gutter:auto; }
 .project-dialog__shell { display:block; }
 .project-dialog__media { position:relative; padding:1.25rem 1.25rem .5rem; }
 .project-dialog__media .project-gallery__stage { max-height:48dvh; }
 .project-dialog__copy { padding:1.5rem 1.5rem max(2.5rem,env(safe-area-inset-bottom)); }
 .project-dialog__copy h2 { font-size:clamp(2.2rem,8vw,3.2rem); line-height:1.08; }
 .project-dialog__description { margin:1rem 0 1.5rem; font-size:.94rem; line-height:1.65; }
 .project-dialog__copy dl div { grid-template-columns:5.6rem minmax(0,1fr); gap:.6rem; }
 .project-dialog__copy dd { font-size:.76rem; }
 .text-dialog__shell { padding-top:2rem; }
 .contact-dialog .dialog-shell { padding-top:2rem; }
 .shooting-page .shooting-section { scroll-margin-top:6rem; }
}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {
 .quick-nav,.shooting-header { background:var(--paper)!important; -webkit-backdrop-filter:none; backdrop-filter:none; }
}
@media(forced-colors:active) {
 .quick-nav,.shooting-header,.dialog-toolbar,.dialog-close { color:CanvasText; background:Canvas!important; -webkit-backdrop-filter:none; backdrop-filter:none; }
 dialog { border:1px solid CanvasText; }
}
@media(max-width:560px) {
 .shooting-header { gap:.4rem; }
 .shooting-header .shooting-brand { width:5rem; }
 .shooting-header nav a { font-size:.65rem; padding:.45rem .5rem; }
 .uiux-page .shooting-header nav a[href="#leistungen"],.uiux-page .shooting-header nav a[href="#vanessa"] { display:none; }
}
/* The editorial cover is intentionally framed; the remaining photographs keep their full format. */
.project-gallery[data-project-slug="facetten"] .project-gallery__slide:first-child img { object-fit:cover; object-position:47% 45%; }
@media(max-width:720px) {
 #project-dialog:has(.project-gallery[data-project-slug="facetten"]) .project-dialog__media { padding:1.25rem 1.25rem .5rem; }
 .project-gallery[data-project-slug="facetten"] .project-gallery__stage { height:42dvh; }
}
@media(max-width:800px) {
 .shooting-page .shooting-header nav { width:auto; min-width:0; flex:0 1 auto; gap:0; }
 .shooting-page .shooting-header nav a:not(:last-child),.shooting-page .shooting-header nav a:last-child { flex:0 0 auto; }
}
@media(max-width:560px) {
 .shooting-page .shooting-header nav a { font-size:.65rem; padding:.45rem .5rem; }
}
@media(max-width:800px) { .shooting-header .nav-droplet { display:none; } }
/* Form feedback belongs to the reading surface, in both colour schemes. */
.interest-form { --field-error:#9f3028; gap:1.35rem; }
:root[data-theme="dark"] .interest-form { --field-error:#f1aaa0; }
.interest-form .form-field { gap:.55rem; }
.interest-form .form-field label { text-transform:none; letter-spacing:0; font-size:.84rem; font-weight:550; }
.interest-form .form-field input,.interest-form .form-field textarea,.interest-form .form-field select {
 min-height:54px; padding:.85rem 1rem; border:1px solid color-mix(in srgb,var(--ink) 19%,transparent); border-radius:12px;
 background:color-mix(in srgb,var(--ink) 2%,var(--paper)); color:var(--ink); font:inherit; font-size:16px; line-height:1.5; scroll-margin-block:7rem;
}
.interest-form .form-field textarea { min-height:136px; }
.interest-form .form-field :is(input,textarea,select):focus-visible { border-color:var(--ink); outline:2px solid color-mix(in srgb,var(--ink) 16%,transparent); outline-offset:3px; }
.interest-form .form-field [aria-invalid="true"] { border-color:var(--field-error); }
.interest-form p.field-message { margin:.05rem 0 0; color:var(--field-error); font-size:.79rem; line-height:1.6; max-width:48ch; }
.interest-form .form-field [aria-invalid="true"]:focus-visible { border-color:var(--field-error); }
.interest-form>.field-message { margin-top:-1rem; padding-left:2.2rem; }
.interest-form .field-message[hidden] { display:none; }
.interest-form .interest-consent { font-size:.8rem; color:var(--reading); }
.interest-form .interest-consent input { appearance:none; display:grid; place-content:center; border:1px solid var(--muted); border-radius:5px; background:var(--paper); color:var(--paper); accent-color:var(--ink); scroll-margin-block:7rem; cursor:pointer; }
.interest-form .interest-consent input::before { content:""; width:6px; height:11px; border:solid currentColor; border-width:0 2px 2px 0; transform:translateY(-1px) rotate(45deg) scale(0); }
.interest-form .interest-consent input:checked { background:var(--ink); border-color:var(--ink); }
.interest-form .interest-consent input:checked::before { transform:translateY(-1px) rotate(45deg) scale(1); }
.interest-form .interest-consent input[aria-invalid="true"] { border-color:var(--field-error); }
.shooting-inquiry>div:last-child { border-radius:20px; }
.interest-form .form-status:empty { display:none; }
.interest-form .form-status[data-state="validation"] { border:0; padding:0; color:var(--reading); font-size:.79rem; }
.interest-form .form-status[data-state="success"] { padding:1rem 1.1rem; border:1px solid var(--line); border-radius:12px; background:color-mix(in srgb,var(--ink) 3%,var(--paper)); line-height:1.6; }
.interest-form .form-submit { min-height:54px; line-height:1.45; letter-spacing:0; text-transform:none; border-radius:999px; }
.contact-dialog h2 { letter-spacing:-.045em; font-weight:550; }
.contact-dialog__intro { max-width:29ch; }
.contact-heading>p:not(.eyebrow) { max-width:42ch; }
.about-portrait picture { aspect-ratio:4 / 5; border:0; border-radius:14px; box-shadow:none; }
.about-portrait img { object-position:50% 36%; }
.about-portrait figcaption { font-size:.72rem; font-weight:400; letter-spacing:0; text-transform:none; line-height:1.6; }
.about-portrait figcaption span { display:block; font-size:.66rem; margin-top:.25rem; }
.studio-contact__profile img { object-position:50% 30%; }
.about-dialog__shell { grid-template-areas:"portrait heading" "portrait intro" "portrait profile"; gap:1.75rem clamp(2rem,4vw,4rem); padding:clamp(2rem,4vw,4rem); }
.about-heading { grid-area:heading; }
.about-heading .eyebrow { margin-bottom:1rem; }
.about-heading h2 { font-size:clamp(3rem,5vw,4.5rem); line-height:1.06; letter-spacing:-.045em; font-weight:550; margin:0; }
.about-copy>.text-dialog__intro { font-size:clamp(1.2rem,1.7vw,1.5rem); font-weight:500; line-height:1.5; letter-spacing:-.02em; }
.about-copy>p:not(.text-dialog__intro) { font-size:1rem; }
.about-dialog__shell .profile-grid { margin-bottom:0; }
.about-dialog__shell .profile-grid dt { text-transform:none; letter-spacing:0; font-weight:600; font-size:.8rem; margin-bottom:.6rem; }
.about-dialog__shell .profile-grid dd { font-size:.87rem; line-height:1.7; color:var(--reading); }
@media(max-width:900px) {
 .about-dialog__shell { grid-template-areas:"heading" "portrait" "intro" "profile"; gap:1.5rem; padding:2rem 1.5rem; }
 .about-heading h2 { font-size:clamp(2.4rem,8.5vw,3.2rem); }
 .about-portrait { width:min(100%,25rem); }
}
@media(forced-colors:active) {
 .interest-form .form-field :is(input,textarea,select) { border-color:CanvasText; background:Canvas; color:CanvasText; }
 .interest-form .form-field [aria-invalid="true"] { border-width:2px; border-style:dashed; }
 .interest-form .field-message { color:CanvasText; }
 .interest-form .interest-consent input { appearance:auto; }
 .interest-form .interest-consent input::before { content:none; }
}
@media(min-width:721px) and (max-width:1000px) {
 .project-dialog__shell { display:block; }
 .project-dialog__media { position:relative; padding:1.5rem 2rem .5rem; }
 .project-dialog__media .project-gallery__stage { max-height:48dvh; }
 .project-dialog__copy { padding:2rem 2.5rem 3rem; }
 .project-dialog__description { max-width:52ch; }
}
