/* Isolated artwork staging: full-canvas environments, local warm-paper glass. */
:is(.art-site,.artwork-prototype) {
 --field-blue: #dcebef; --field-neutral: #f3e7cb; --muted: #315461;
 --art-space-xs: 8px; --art-space-sm: 12px; --art-space-md: 16px;
 --art-space-lg: 24px; --art-space-xl: 32px; --art-space-section: 48px;
 --art-space-composition: 64px;
 --art-card-pad: var(--art-space-lg); --art-panel-pad: var(--art-space-xl);
 --art-grid-gap: var(--art-space-lg); --art-radius: 12px;
 --art-glass-primary: rgba(255,254,245,.20);
 --art-glass-secondary: rgba(255,254,245,.38);
 --art-glass-clarity: rgba(255,254,245,.88);
 --art-glass: var(--art-glass-primary); --art-glass-prose: var(--art-glass-clarity);
 --art-glass-filter: blur(5px) contrast(95%) brightness(103%);
 --art-glass-line: rgba(255,255,250,.48);
 --art-glass-highlight: rgba(255,255,250,.50);
 --art-glass-shadow: inset 0 1px 0 var(--art-glass-highlight),0 4px 18px #094f6e08;
}
.art-site main { padding-top: 0; padding-bottom: 0; }
.art-site h1,.art-site main h2 { font-family: Georgia,'Times New Roman',serif; letter-spacing: -.035em; }
.art-site h1 { font-size: clamp(2.6rem,4.3vw,4.25rem); }
.art-site .composition-page { position: relative; }
.art-site .composition-field { position: relative; isolation: isolate; width: 100vw; margin-left: calc(50% - 50vw); overflow: clip; }
.art-site .composition-content { position: relative; z-index: 1; width: min(1200px,calc(100% - 80px)); margin: auto; padding-block: var(--art-space-section); }
.art-site .composition-environment { position: absolute; inset: 0; pointer-events: none; z-index: 0; mask-image: linear-gradient(#000 90%,transparent); }
.art-site .composition-environment > svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.art-site .composition-desktop-scene { max-height: 760px; }
.art-site .composition-mass { fill: var(--field-blue); opacity: .78; }
.art-site .composition-neutral { fill: var(--field-neutral); opacity: .55; }
.art-site .composition-lines { fill: none; stroke: #237d9e; stroke-width: 1.5; opacity: .7; }
.art-site .composition-lines path { vector-effect: non-scaling-stroke; }
.art-site .work-wash { fill: #d8ebee; fill-opacity: .6; stroke: none; }
.art-site .work-wash-neutral { fill: #f2e5ca; fill-opacity: .5; }
.art-site .composition-mobile-scene { display: none!important; }
.art-site .composition-subject { mix-blend-mode: multiply; }
/* Editorial openings stay unboxed. Only the dense explanation receives paper. */
.art-site .composition-reading { width: 53%; position: relative; }
.art-site .composition-reading .page-heading { margin-bottom: var(--art-space-lg); }
.art-site .composition-reading .lead { font-size: 20px; }
.art-site .composition-reading section > p { max-width: 65ch; }
.art-site .composition-reading h2 { font-size: clamp(1.7rem,2.4vw,2.3rem); }
.art-site :is(.composition-editorial,.composition-reverse) .composition-content { min-height: 660px; display: flex; align-items: center; }
.art-site :is(.composition-reverse,.composition-story-left) .composition-reading { margin-left: 47%; }
.art-site .composition-mobile-band { display: none; }
.art-site :is(.composition-collection,.composition-collection-left) .composition-intro { min-height: 380px; width: 53%; margin-bottom: var(--art-space-lg); }
.art-site .composition-collection-left .composition-intro { margin-left: 47%; }
.art-site :is(.composition-collection,.composition-collection-left) .cards { width: 100%; position: relative; }
.art-site .composition-quiet-content { margin-block: var(--art-space-xl); position: relative; }
.art-site .composition-quiet-content > * { margin: 0; }
.art-site .composition-quiet .composition-content { min-height: 340px; }
.art-site .composition-quiet .composition-reading { width: 64%; }
.art-site .intensity-quiet .composition-lines { opacity: .35; }
.art-site .intensity-quiet .composition-mass { opacity: .4; }
.art-site .composition-closing .composition-content { min-height: 250px; padding-block: var(--art-space-section) var(--art-space-composition); }
.art-site .composition-closing .composition-reading { width: 74%; }
.art-site .composition-closing .composition-lines { opacity: .5; }
.art-site .composition-closing .composition-reading > .cta-panel { color: var(--ink); }
.art-site .composition-home .hero { gap: var(--art-space-section); padding: 0; }
.art-site .composition-home .hero > div { min-width: 0; }
.art-site .composition-home .hero-person { align-self: center; padding: var(--art-card-pad); }
.art-site .composition-home .hero > div:first-child,.art-site.archetype-overview .composition-intro > .page-heading { padding: var(--art-panel-pad); }
.art-site .composition-family .section-surface { background: transparent; border: 0; padding: 0; }
.art-site .composition-family h2,.art-site .composition-family .section-surface>p { width: 48%; }
/* Space here is occupied by the family composition, not stacked margins. */
.art-site .composition-family .cards { margin-top: 180px; width: 100%; }
.art-site .composition-through .journey { padding: var(--art-panel-pad); }
.art-site :is(.composition-story,.composition-story-left) .composition-content { min-height: 450px; }
.art-site :is(.composition-story,.composition-story-left) .composition-reading { width: 53%; }
.art-site .composition-action .composition-reading { width: 49%; }
.art-site .composition-action .page-heading { min-height: 340px; }
.art-site .composition-action-group { margin-top: var(--art-space-lg); position: relative; }
.art-site .composition-profiles .composition-content { padding-block: var(--art-space-lg); }
/* Same component type, same edge spacing and flow. */
.art-site .cards { gap: var(--art-grid-gap); }
.art-site .card { padding: var(--art-card-pad); }
.art-site .card .line-icon { margin-bottom: var(--art-space-sm); }
.art-site .card .eyebrow { margin-bottom: var(--art-space-xs); }
.art-site .card h3 { margin: 0 0 var(--art-space-sm); }
.art-site .card p { margin: 0 0 var(--art-space-sm); }
.art-site .card-link { padding-top: var(--art-space-sm); }
.art-site :is(.section-surface,.section-blue,.cta-panel,.profile,form,.conversation-panel,.personal-note,.practitioner-moment) { padding: var(--art-panel-pad); }
.art-site :is(.enquiry-layout,.profile,.team-preview,.journey-grid) { gap: var(--art-grid-gap); }
.art-site .profile { margin: 0; }
.art-site :is(.section-surface,.section-blue,.cta-panel,.conversation-panel,form) h2 { margin-bottom: var(--art-space-sm); }
.art-site :is(.composition-reading,.card,.cta-panel,form,.conversation-panel) > :last-child { margin-bottom: 0; }
.art-site .composition-reading > section { padding: var(--art-panel-pad); }
.art-site .form-fields { gap: var(--art-space-md); margin-top: var(--art-space-lg); }
.art-site .form-fields label { margin: 0 0 var(--art-space-xs); }
.art-site .conversation-person { gap: var(--art-space-md); margin-bottom: var(--art-space-lg); }
.art-site .person-caption { padding: var(--art-space-md) 0 0; }
.art-site .cta-panel { gap: var(--art-space-lg); }
.art-site main .button,.artwork-prototype main .button { max-width: 100%; gap: var(--art-space-sm); }
.art-site .cta-panel .button { background: var(--ink); color: var(--paper); }
/* Opaque fallbacks first. Never put blur on a whole section or its typography. */
.art-site :is(.card,.cta-panel,form,.conversation-panel,.profile,.composition-home .hero>div,.composition-through .journey,.composition-reading>section),
.artwork-prototype :is(.work-feature,.work-card-group,.card),
.art-site.archetype-overview .composition-intro > .page-heading,
.artwork-prototype .work-card-group .card {
 background: var(--paper); border: 1px solid var(--art-glass-line);
 border-radius: var(--art-radius); box-shadow: var(--art-glass-shadow);
}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
 .art-site :is(.card,.cta-panel,form,.conversation-panel,.profile,.composition-home .hero>div,.composition-through .journey),
 .artwork-prototype :is(.work-feature,.work-card-group,.card),
.art-site.archetype-overview .composition-intro > .page-heading,
 .artwork-prototype .work-card-group .card {
  background: var(--art-glass); backdrop-filter: var(--art-glass-filter); -webkit-backdrop-filter: var(--art-glass-filter);
 }
 .art-site .composition-reading > section { background: var(--art-glass-prose); backdrop-filter: var(--art-glass-filter); -webkit-backdrop-filter: var(--art-glass-filter); }
 /* Supporting groups have quieter glass; dense explanations retain paper. */
 .art-site :is(.composition-home .hero > div:first-child,.composition-through .journey),
 .art-site.archetype-overview .composition-intro > .page-heading,
 .art-site.archetype-resource .card { background: var(--art-glass-secondary); }
 /* A group wrapper must remain clear so each child sees the same environment. */
 .artwork-prototype .work-card-group { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; }
}
.art-site .card:hover,.art-site .card:focus-visible { border-color: var(--blue); background: rgba(255,254,245,.65); }
.art-site :is(.review,.concept-notice,.form-help) { background: #f5ecd8; }
.artwork-prototype .work-card-group .cards { gap: var(--art-grid-gap); }
.artwork-prototype .work-card-group .card { padding: var(--art-card-pad); }
.artwork-prototype .work-feature { padding: var(--art-panel-pad); gap: var(--art-space-xl); }
@media (min-width:1600px) {
 .art-site :is(.composition-editorial,.composition-reverse) .composition-content { min-height: 720px; }
}
@media (max-width:1100px) {
 .art-site .composition-content { width: calc(100% - 64px); }
 .art-site .composition-reading { width: 57%; }
 .art-site :is(.composition-reverse,.composition-story-left) .composition-reading { width: 57%; margin-left: 43%; }
 .art-site :is(.composition-editorial,.composition-reverse) .composition-content { min-height: 620px; }
 .art-site .composition-home .hero { gap: var(--art-space-xl); }
 .art-site :is(.composition-collection,.composition-collection-left) .composition-intro { min-height: 340px; width: 57%; }
 .art-site .composition-collection-left .composition-intro { margin-left: 43%; }
 .art-site .composition-family .cards { margin-top: 180px; }
}
@media (max-width:740px) {
 :is(.art-site,.artwork-prototype) { --art-panel-pad: var(--art-space-lg); --art-grid-gap: var(--art-space-md); --art-glass-primary: rgba(255,254,245,.56); --art-glass-secondary: rgba(255,254,245,.68); --art-glass-clarity: rgba(255,254,245,.92); --art-glass-filter: blur(4px); }
 .art-site h1 { font-size: clamp(2.4rem,9vw,3.2rem); }
 .art-site .hero h1 { font-size: clamp(1.9rem,8.5vw,3.2rem); }
 .art-site .composition-content { width: calc(100% - 48px); padding-block: var(--art-space-lg); }
 .art-site :is(.composition-reading,.composition-reverse .composition-reading,.composition-quiet .composition-reading,.composition-closing .composition-reading,.composition-action .composition-reading,.composition-story .composition-reading,.composition-story-left .composition-reading) { width: 100%; margin-left: 0; }
 .art-site :is(.composition-editorial,.composition-reverse) .composition-content { display: block; min-height: 0; padding-bottom: 235px; }
 .art-site .composition-environment { height: 250px!important; top: auto; bottom: 0; left: 0; }
 .art-site .composition-desktop-scene,.art-site .composition-ground { display: none!important; }
 .art-site .composition-mobile-scene { display: block!important; }
 .art-site :is(.composition-collection,.composition-collection-left) .composition-intro { width: 100%; min-height: 0; margin-left: 0; }
 .art-site :is(.composition-collection,.composition-collection-left) > .composition-environment { display: none; }
 .art-site .composition-mobile-band { display: block; position: relative; height: 210px; width: 100vw; margin-left: -24px; }
 .art-site .composition-mobile-band .composition-environment { top: 0; height: 210px!important; }
 .art-site .composition-family h2,.art-site .composition-family .section-surface>p { width: 100%; }
 .art-site .composition-family .cards { margin-top: 220px; }
 .art-site .composition-family .composition-environment { top: 130px; bottom: auto; }
 .art-site .composition-home .composition-environment { display: none; }
 .art-site .composition-quiet .composition-content { min-height: 0; padding-bottom: 80px; }
 .art-site .composition-quiet .composition-environment,.art-site .composition-closing .composition-environment { opacity: .45; height: 80px!important; }
 .art-site .composition-through .composition-environment { display: none; }
 .art-site :is(.composition-story,.composition-story-left) .composition-content { padding-bottom: 250px; }
 .art-site .composition-closing .composition-content { min-height: 0; padding-bottom: 100px; }
 .art-site .composition-action .page-heading { min-height: 0; }
 .art-site .composition-action > .composition-environment { display: none; }
 .art-site .composition-action .composition-mobile-band .composition-environment { top: 0; bottom: auto; }
 .art-site .composition-action-group { margin-top: var(--art-space-lg); }
 .art-site .composition-profiles .composition-environment { display: none; }
}
@media(prefers-contrast:more) {
 .art-site .composition-environment { opacity: .3; }
 .art-site :is(.card,.cta-panel,form,.conversation-panel,.profile,.composition-home .hero>div,.composition-through .journey,.composition-reading>section),
 .artwork-prototype :is(.work-feature,.work-card-group,.card),
.art-site.archetype-overview .composition-intro > .page-heading,
 .artwork-prototype .work-card-group .card { background: var(--paper); border-color: var(--line); backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media print { .art-site .composition-environment { display:none; } .art-site .composition-content { min-height:0!important; padding:var(--art-space-md)!important; } }

/* Supporting scenes use native-scale extracts; illustration clearance follows
   their actual rendered geometry, independent of the environmental field. */
.art-site .composition-supporting { z-index:1; position:absolute; width:min(300px,23vw); height:auto; right:max(40px,calc(50% - 600px)); bottom:32px; mix-blend-mode:multiply; }
.art-site .composition-compact-figure { width:min(420px,35vw); top:48px; bottom:auto; }
@media(max-width:1100px) {
 .art-site .composition-supporting { right:32px; width:24vw; }
 .art-site .composition-compact-figure { width:min(420px,38vw); }
}
@media(max-width:740px) {
 .art-site .composition-supporting { display:none; }
 .art-site .has-supporting-figure .composition-content { padding-bottom:220px; }
 .art-site .has-supporting-figure .composition-environment { height:200px!important; opacity:1; }
 .art-site .has-supporting-figure .composition-mobile-scene { width:min(340px,100%); left:50%; transform:translateX(-50%); }
}

/* Progressive fallback: figures remain readable before clearance is ready or
   when scripting is unavailable. Pale washes remain; no reading-side mask. */
.art-site .composition-environment:has(.composition-subject,.composition-supporting) svg[data-motif] > path:not(.work-wash),
.artwork-prototype .work-routes-zone svg[data-motif] > path:not(.work-wash) { visibility:hidden; }

/* Kim's heading-font review: locally hosted, body type and spacing preserved. */
@font-face {font-family:Atkinson;src:url('/assets/fonts/atkinson-600.ttf') format('truetype');font-weight:600;font-display:swap;}
@font-face {font-family:Atkinson;src:url('/assets/fonts/atkinson-700.ttf') format('truetype');font-weight:700;font-display:swap;}
@font-face {font-family:Lexend;src:url('/assets/fonts/lexend-600.ttf') format('truetype');font-weight:600;font-display:swap;}
@font-face {font-family:Lexend;src:url('/assets/fonts/lexend-700.ttf') format('truetype');font-weight:700;font-display:swap;}
:is(.art-site,.artwork-prototype) h1,:is(.art-site,.artwork-prototype) main h2 {font-family:Atkinson,Arial,sans-serif;letter-spacing:-.02em;}
:is(.art-site,.artwork-prototype).heading-lexend h1,:is(.art-site,.artwork-prototype).heading-lexend main h2 {font-family:Lexend,Arial,sans-serif;}
.art-site .emily-portrait {object-position:50% 32%;}
.art-site .profile>.emily-portrait {height:auto;max-height:480px;object-fit:cover;align-self:start;}
.art-site .service-price {max-width:70ch;background:rgba(255,254,245,.88);border-left:2px solid var(--ink);padding:var(--art-space-md) var(--art-space-lg);margin:0;}
.art-site .service-price p {font-size:16px;margin:8px 0 0;}
.art-site .report-link {display:inline-flex;align-items:center;gap:16px;min-height:48px;padding:12px 16px;margin-top:12px;border:1px solid var(--line);border-radius:4px;font-weight:600;line-height:1.5;}
.art-site .report-section {max-width:70ch;}
.art-site details {background:rgba(255,254,245,.88);border:1px solid var(--line);border-radius:4px;scroll-margin-top:24px;}
.art-site summary {cursor:pointer;padding:16px 20px;min-height:48px;font-weight:600;}
.art-site details>div {padding:0 20px 20px;}
.art-site details dt {font-weight:600;margin-top:16px;}
.art-site details dd {margin:4px 0 0;}
.art-site .teaching-photo {max-width:786px;margin:0;}
.art-site .teaching-photo img {width:100%;height:auto;display:block;border-radius:4px;}
.art-site .teaching-photo figcaption {font-size:14px;line-height:1.5;background:var(--paper);padding:12px 16px;border-left:2px solid #a8782c;}
.art-site .qualifications {margin-block:16px;}
@media(max-width:740px) {.art-site .profile>.emily-portrait {max-width:320px;max-height:420px;width:100%;}.art-site .report-link {width:100%;}}
/* Three practitioners keep a balanced row without changing the shared cards. */
@media(min-width:1101px) {.art-site .team-preview {grid-template-columns:repeat(3,minmax(0,1fr));}.art-site .team-preview article {grid-template-columns:100px minmax(0,1fr);}.art-site .team-preview img {width:100px;height:150px;}}
@media(min-width:741px) and (max-width:1100px) {.art-site .team-preview article:last-child {grid-column:1/-1;max-width:650px;}}
.art-site .team-preview img.emily-portrait {object-position:50% 32%;}

/* Team summaries share a rhythm; fuller biographies remain optional. */
.art-site.archetype-people .profile>img {width:100%;height:auto;max-height:340px;object-fit:contain;object-position:top;align-self:start;}
.art-site.archetype-people .profile h3 {margin-top:var(--space-4,16px);margin-bottom:8px;}
.art-site.archetype-people .qualifications {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px;padding-left:20px;}
.art-site.archetype-people .profile-more {margin-top:16px;}
.art-site.archetype-people .profile-more>div>p+p {margin-top:12px;}
@media(max-width:740px) {
 .art-site.archetype-people .profile>img {max-width:280px;max-height:300px;}
 .art-site.archetype-people .qualifications {grid-template-columns:1fr;}
}

/* Shared report dialog: warm paper, calm typography and native modal semantics. */
html.report-modal-open {overflow:hidden;scroll-behavior:auto;}
html.report-modal-open body {position:fixed;width:100%;overflow:hidden;}
.art-site .diagnostic-report-dialog {width:min(780px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid rgba(13,88,121,.24);border-radius:8px;background:rgba(255,254,245,.98);color:var(--blue);box-shadow:0 18px 60px rgba(6,51,71,.18);overflow:auto;overscroll-behavior:contain;}
.diagnostic-report-dialog::backdrop {background:rgba(9,42,55,.36);}
.art-site .report-dialog-heading {position:sticky;top:0;z-index:1;display:flex;align-items:start;gap:20px;padding:24px 28px 16px;background:#fffef5;border-bottom:1px solid var(--line);}
.art-site .report-dialog-heading h2 {font-size:clamp(24px,3vw,32px);line-height:1.2;margin:0;flex:1;}
.art-site .report-dialog-close {flex:none;min-height:48px;padding:8px 14px;border:1px solid var(--line);border-radius:4px;background:#fffef5;color:inherit;font:inherit;font-weight:600;cursor:pointer;}
.art-site .report-dialog-content {padding:20px 28px 28px;}
.art-site .report-dialog-content h3 {margin:24px 0 12px;}
.art-site .report-dialog-content dt {font-weight:600;margin-top:16px;}
.art-site .report-dialog-content dd {margin:4px 0 0;}
@media(max-width:740px) {
 .art-site .diagnostic-report-dialog {width:calc(100vw - 20px);max-height:calc(100dvh - 24px);}
 .art-site .report-dialog-heading {gap:12px;padding:18px 16px 12px;}
 .art-site .report-dialog-heading h2 {font-size:24px;}
 .art-site .report-dialog-content {padding:16px 20px 24px;}
}
