/* Measured against the embedded website compositions in PDF pp19–50.
   Preserve the written responsive/accessibility rules where a printed mock clips. */
:root { --header-height:80px; }
#header { padding-inline:4%; }
.brand { width:70px; }
.main-nav a { letter-spacing:.23em; font-size:15px; }
.main-nav { gap:30px; }
.main-nav a[aria-current]:before { display:none; }
.main-nav a[aria-current]:after { transform:scaleX(1); }
.hero { min-height:620px; }
.hero-content { padding-inline:0; text-shadow:none; }
.hero-brand { width:58%; max-width:900px; margin-bottom:42px; }
.hero h1 { font-size:34px; margin-bottom:22px; }
.hero .tagline { font-size:15px; letter-spacing:.34em; color:#ddd; }
.hero-foot { left:4%; right:4%; bottom:20px; }
.hero-foot .micro { font-size:13px; letter-spacing:.3em; }
/* Keep the provisional motion behind the identity, as in the dark hero reference. */
.hero-motion { opacity:.28; }
.philosophy { min-height:680px; padding:100px 6%; text-align:center; align-items:center; }
.philosophy > .micro { color:#818181; font-size:15px; letter-spacing:.34em; }
.philosophy > .micro span { color:var(--ink); font-size:10px; margin-left:12px; }
.philosophy h2 { max-width:none; font-size:clamp(42px,4.2vw,64px); line-height:1.15; margin:34px 0 30px; }
.philosophy p { max-width:760px; align-self:center; font-size:17px; line-height:1.8; }
.philosophy:after { content:''; width:36px; height:1px; background:#8d8d8d; margin-top:38px; }
.route-panel { min-height:680px; padding:55px 7%; justify-content:flex-end; align-items:flex-start; }
.route-panel h2 { font-size:clamp(54px,5.4vw,82px); line-height:.98; margin:0 0 24px; }
.route-panel p { max-width:395px; margin:0; font-size:17px; line-height:1.55; }
.route-panel .text-link { margin-top:28px; border-bottom:0; border-top:1px solid; font-size:15px; padding-top:14px; min-height:44px; letter-spacing:.24em; }
.social-section { padding:45px 4% 36px; }
.section-heading { margin-bottom:26px; }
.section-heading h2 { font-size:40px; margin-top:12px; }
.section-heading .micro { font-size:13px; letter-spacing:.34em; color:#888; }
.section-heading .text-link { min-height:44px; font-size:13px; letter-spacing:.22em; padding-block:10px; }
.section-heading .text-link > span { display:none; }
.social-grid { gap:16px; }
.social-tile { aspect-ratio:7/8; }
.social-pending, .social-pending:nth-child(even) { border:1px dashed #bbb; background:#f5f5f5; color:#555; flex-direction:column; padding:20px; gap:8px; text-align:center; font-size:15px; }
.social-pending small { font-size:12px; color:#777; }
/* Compact shared footer: mark + location, email + three links, Instagram. */
footer { padding:32px 4%; display:grid; grid-template-columns:minmax(230px,1fr) auto 44px; grid-template-areas:'identity email social' 'identity links social'; gap:6px 35px; align-items:center; }
.footer-top { grid-area:identity; flex-direction:column; align-items:flex-start; gap:16px; }
.footer-top img { width:74px; }
.footer-top .micro { font-size:12px; letter-spacing:.25em; }
.footer-email { grid-area:email; padding:0; border:0; font-size:32px; display:block; text-align:center; letter-spacing:-.02em; }
.footer-bottom { display:contents; }
.footer-links { grid-area:links; display:flex; justify-content:center; gap:20px; padding:0; margin:0; }
.footer-links a { font-size:12px; letter-spacing:.2em; min-height:44px; display:flex; align-items:center; }
.footer-bottom > .social-link { grid-area:social; font-size:0; width:44px; height:44px; justify-content:center; }
.footer-bottom > .social-link svg { width:26px; height:26px; }
/* Magazine opener: headline top left, count bottom left, copy across a rule. */
.roster-intro { margin-top:var(--header-height); padding:0; grid-template-columns:53% 47%; gap:0; min-height:620px; align-items:stretch; }
.roster-title { padding:55px 6vw 42px 4vw; display:flex; flex-direction:column; justify-content:space-between; }
.roster-intro h1 { font-size:clamp(82px,6.7vw,108px); margin:0; line-height:.94; }
.roster-count { color:#888; font-size:13px; letter-spacing:.28em; margin-top:80px; }
.roster-intro .intro-copy { border-left:1px solid #e5e5e5; padding:100px 5vw 80px 3vw; display:flex; flex-direction:column; justify-content:center; }
.roster-intro .intro-lead { font-family:var(--serif); font-style:italic; font-size:25px; line-height:1.25; margin-bottom:6px; }
.roster-intro .intro-copy p { line-height:1.75; }
.roster-intro .intro-copy .roster-closing { font-family:var(--serif); font-size:24px; }
.talent-index { padding-inline:4%; border-block:1px solid #e5e5e5; padding-block:14px; }
.wall-heading { padding-inline:4%; }
/* Flat 2×2 opening collage, touching the right edge beneath navigation. */
.content-intro { margin-top:var(--header-height); padding:0; grid-template-columns:53% 47%; gap:0; align-items:stretch; }
.content-opening-copy { padding:48px 40px 38px 4vw; }
.content-intro h1 { margin:0; font-size:clamp(60px,4.5vw,72px); line-height:.94; }
.content-description { max-width:460px; font-size:17px; line-height:1.75; margin-top:32px; }
.content-index { margin-top:40px; border-top:1px solid #d5d5d5; }
.content-index a { min-height:56px; padding:12px 0; gap:18px; }
.content-index a > span:nth-child(2) { font-size:27px; flex:0 1 auto; }
.content-index a > small { margin-left:auto; text-align:right; font-size:12px; line-height:1.5; letter-spacing:.23em; text-transform:uppercase; color:#777; }
.content-index .service-number { font-size:14px; color:#888; }
.content-mosaic { padding:0; gap:4px; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:1fr 1fr; align-items:stretch; }
.content-mosaic figure:nth-child(even) { margin:0; }
.content-mosaic figure { height:100%; }
.content-mosaic img,.content-mosaic video,.content-mosaic .media-slot { width:100%; height:100%; min-height:0; aspect-ratio:auto; object-fit:cover; }
.media-slot,.pending-1 .media-slot,.pending-2 .media-slot,.pending-3 .media-slot { background:#f5f5f5; border:1px dashed #bcbcbc; padding:22px; align-items:center; justify-content:center; text-align:center; gap:12px; }
.media-slot:before { content:''; width:17px; height:14px; border:1px solid #b3b3b3; border-radius:2px; background:linear-gradient(135deg,transparent 45%,#bbb 47%,#bbb 51%,transparent 53%) center / 9px 9px no-repeat; }
.slot-title,.content-mosaic .slot-title,.portfolio-grid .slot-title { font-family:var(--sans); font-size:14px; letter-spacing:.04em; text-transform:uppercase; line-height:1.5; overflow-wrap:normal; }
.slot-status { font-size:12px; letter-spacing:0; text-transform:none; color:#777; }
/* Service panels meet at a 43.5/56.5 split; media has its own pale surface. */
.service { padding:0; gap:0; grid-template-columns:43.5% 56.5%; grid-template-areas:'copy work' 'cta work'; min-height:690px; background:white; color:var(--ink); align-items:stretch; }
.service-copy { padding:44px 40px 24px; }
.service-copy > .micro { font-size:13px; letter-spacing:.32em; color:#888; }
.service h2 { margin:12px 0 22px; font-size:clamp(50px,3.8vw,60px); line-height:.98; }
.service p { font-size:17px; line-height:1.65; }
.service-list { margin-top:24px; border-top:1px solid #bbb; }
.service-list li { padding:11px 0; font-size:15px; letter-spacing:.08em; }
.service .service-aside { font-size:14px; line-height:1.65; color:#888; margin-top:16px; }
.service-work { background:#f6f5f3; padding:40px; display:flex; flex-direction:column; gap:20px; }
.service-cta { padding:20px 40px 40px; align-self:end; }
.service-cta .text-link { display:flex; justify-content:center; gap:12px; min-height:56px; padding:16px 20px; width:100%; border:0; background:var(--ink); color:white; font-size:15px; letter-spacing:.25em; }
.service-cta .text-link span { font-size:12px; }
.service-brands { grid-template-columns:56.5% 43.5%; grid-template-areas:'work copy' 'work cta'; }
.service-dark .service-copy,.service-dark .service-cta { background:var(--ink); color:white; }
.service-dark .service-cta .text-link { background:white; color:var(--ink); }
.service-dark .media-slot,.service-dark .pending-1 .media-slot,.service-dark .pending-2 .media-slot { background:#edecea; color:#444; border-color:#bcbcbc; }
.portfolio-grid { flex:1; grid-template-columns:1.4fr 1fr; grid-template-rows:1fr 1fr; min-height:460px; gap:16px; }
.portfolio-grid figure { position:relative; }
.portfolio-grid .media-slot { min-height:0; height:100%; }
.portfolio-grid img,.portfolio-grid video { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; }
.portfolio-grid figcaption { position:absolute; bottom:8px; left:8px; right:8px; padding:8px; background:#ffffffed; color:#222; }
.portfolio-grid figure:has(figcaption) img,.portfolio-grid figure:has(figcaption) video { height:100%; }
.portfolio-brands { grid-template-columns:1.8fr 1fr; }
.portfolio-weddings { grid-template-columns:2.1fr 1fr; grid-template-rows:1.4fr 1fr; }
.portfolio-weddings figure:first-child { grid-column:1; grid-row:1; }
.portfolio-weddings figure:nth-child(2) { grid-column:1; grid-row:2; }
.portfolio-weddings figure:nth-child(3) { grid-column:2; grid-row:1/3; }
.portfolio-single { grid-template-columns:1fr; grid-template-rows:1fr; }
.portfolio-single figure:first-child { grid-column:1; grid-row:1; }
.testimonial { flex:none; margin:0; padding:22px 26px; border:0; background:#fff; color:var(--ink); }
.testimonial blockquote { font-size:23px; font-style:italic; margin:0 0 12px; }
.testimonial figcaption { font-size:12px; letter-spacing:.2em; color:#888; }
.testimonial-pending blockquote { font-size:18px; color:#666; }
.packages { display:flex; flex-direction:column; gap:12px; border:0; margin:24px 0 0; padding:0; }
.packages > div { border:1px solid #ccc; padding:20px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; }
.packages > div:last-child { background:var(--ink); color:white; border-color:var(--ink); }
.packages h3 { font-size:28px; margin:0; }
.packages .micro { font-size:12px; margin:0; color:#999; }
.packages p { grid-column:1/-1; font-size:14px; }
.service .turnaround { font-family:var(--serif); font-size:38px; line-height:1.05; margin:24px 0; }
.service-events { grid-template-columns:1fr 1fr; grid-template-areas:'copy cta' 'work work'; }
.service-events .service-copy { max-width:none; }
.service-events .service-cta { justify-self:stretch; align-self:stretch; display:flex; align-items:end; }
.service-events .service-work { padding-top:40px; }
.portfolio-events { grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:1fr; min-height:450px; }
.portfolio-events figure:first-child { grid-row:1; }
/* Casting card: compact heading, upper-right photo and ruled inline metrics. */
.profile-card { padding:34px; }
.profile-heading { padding:0 125px 26px 0 !important; border-bottom:1px solid #0002; min-height:158px; }
.profile-card h1,.profile-card h2 { font-size:46px; line-height:.95; margin:0 0 14px; }
.profile-card .profile-niche { font-size:12px; letter-spacing:.22em; line-height:1.5; }
.personality-photo { width:112px; height:138px; top:0; right:0; transform:rotate(2deg); border:5px solid #fff; }
.personality-pending { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:#b9b8b4; font-size:12px; line-height:1.5; color:#555; }
.personality-pending small { font-size:10px; margin-top:6px; }
.profile-card .profile-bio { font-size:15px; line-height:1.7; margin-top:20px; padding-bottom:20px; }
.audience-stats { gap:0 22px; margin:12px 0; }
.audience-stats > div { display:flex; justify-content:space-between; align-items:baseline; gap:10px; border-bottom:1px solid #0002; padding:10px 0; min-width:0; }
.audience-stats dt { font-size:11px; line-height:1.3; letter-spacing:.16em; margin:0; flex:1; }
.audience-stats dd { font-family:var(--sans); font-size:13px; line-height:1.4; max-width:50%; }
.analytics-date { font-size:11px; padding:0; margin:12px 0; }
.profile-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; }
.profile-actions .reverse-brand { width:54px; margin:0; }
.profile-actions .talent-social { margin:0; }
.profile-actions .talent-social a { font-size:11px; letter-spacing:.06em; }
.profile-actions .book-link { margin-left:auto; min-height:48px; padding:14px 18px; font-size:12px; letter-spacing:.2em; }
.profile-url { font-size:11px; min-height:36px; padding-top:12px; }
.dialog-shell { width:min(550px,calc(100% - 100px)); }
.card-stage { height:min(780px,calc(100svh - 100px)); }
@media(max-width:1100px) and (min-width:801px) {
 .main-nav { gap:20px; }
 .main-nav a { font-size:12px; letter-spacing:.17em; }
 .content-index a { flex-wrap:wrap; gap:10px; }
 .content-index a > small { width:100%; padding-left:30px; text-align:left; }
 footer { column-gap:18px; }
 .footer-email { font-size:26px; }
 .footer-links { gap:12px; }
 .footer-links a { font-size:10px; }
}
@media(max-width:800px) {
 :root { --header-height:72px; }
 .brand { width:66px; }
 .hero-brand { width:78%; margin-bottom:34px; }
 .hero h1 { font-size:30px; }
 .hero .tagline { font-size:12px; letter-spacing:.28em; max-width:290px; }
 .hero-foot .micro { font-size:11px; letter-spacing:.17em; }
 .philosophy { min-height:580px; padding:80px 7%; }
 .philosophy h2 { font-size:clamp(38px,8vw,58px); line-height:1.1; }
 .philosophy p { font-size:15px; }
 .philosophy > .micro { font-size:11px; }
 .routes { grid-template-columns:1fr; }
 .route-panel { min-height:60svh; padding:40px 7%; }
 .route-panel h2 { font-size:64px; }
 .route-panel p { font-size:15px; }
 .route-panel .text-link { width:auto; font-size:12px; }
 .section-heading { flex-direction:row; flex-wrap:wrap; align-items:end; gap:14px; }
 .section-heading h2 { font-size:34px; }
 .section-heading .micro { font-size:11px; }
 .section-heading .text-link { font-size:11px; }
 .social-section { padding:40px 6%; }
 .social-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .social-pending { font-size:12px; padding:12px; }
 .social-pending small { font-size:10px; }
 footer { padding:32px 6%; grid-template-columns:1fr 44px; grid-template-areas:'identity social' 'email email' 'links links'; gap:22px 12px; }
 .footer-top { gap:12px; }
 .footer-top .micro { text-align:left; font-size:10px; max-width:none; }
 .footer-email { text-align:left; font-size:clamp(24px,6vw,32px); }
 .footer-links { justify-content:flex-start; flex-direction:row; flex-wrap:wrap; gap:4px 20px; }
 .footer-links a { font-size:11px; }
 .roster-intro { grid-template-columns:1fr; min-height:0; }
 .roster-title { padding:40px 6% 30px; }
 .roster-intro h1 { font-size:76px; }
 .roster-count { margin-top:35px; font-size:11px; }
 .roster-intro .intro-copy { padding:30px 6% 40px; border-left:0; border-top:1px solid #eee; }
 .roster-intro .intro-lead { font-size:22px; }
 .roster-intro .intro-copy p { font-size:15px; }
 .roster-intro .intro-copy .roster-closing { font-size:22px; }
 .content-intro { grid-template-columns:1fr; }
 .content-opening-copy { padding:35px 6% 28px; }
 .content-intro h1 { font-size:64px; }
 .content-description { font-size:15px; margin-top:25px; }
 .content-index { margin-top:28px; }
 .content-index a { gap:12px; min-height:62px; flex-wrap:wrap; }
 .content-index a > span:nth-child(2) { font-size:23px; }
 .content-index a > small { font-size:10px; letter-spacing:.13em; max-width:45%; }
 .content-mosaic { display:grid; grid-template-columns:none; grid-template-rows:1fr; grid-auto-flow:column; grid-auto-columns:82%; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; margin:0 6% 35px; padding-bottom:14px; }
 .content-mosaic figure { scroll-snap-align:start; height:350px; }
 .content-mosaic .slot-title,.portfolio-grid .slot-title { font-size:12px; }
 .service,.service-brands,.service-events { grid-template-columns:1fr; grid-template-areas:'copy' 'work' 'cta'; min-height:0; }
 .service-copy { padding:35px 6% 24px; }
 .service-copy > .micro { font-size:11px; }
 .service h2 { font-size:52px; margin-top:12px; }
 .service p { font-size:15px; }
 .service-list li { font-size:12px; }
 .service-work,.service-events .service-work { padding:0 6% 24px; background:inherit; gap:18px; }
 .service-dark { background:var(--ink); color:white; }
 .service-cta { padding:0 6% 40px; }
 .service-events .service-cta { display:block; }
 .service-cta .text-link { font-size:12px; letter-spacing:.2em; }
 .portfolio-grid,.portfolio-weddings,.portfolio-events { display:grid; grid-template-columns:none; grid-template-rows:1fr; grid-auto-flow:column; grid-auto-columns:84%; flex:none; min-height:0; gap:12px; padding-bottom:14px; }
 .portfolio-grid figure,.portfolio-grid figure:first-child,.portfolio-grid figure:nth-child(2),.portfolio-grid figure:nth-child(3) { grid-column:auto; grid-row:auto; height:370px; }
 .portfolio-grid .media-slot { height:100%; aspect-ratio:auto; }
 .portfolio-single { grid-auto-columns:100%; }
 .testimonial { padding:20px; }
 .testimonial blockquote { font-size:21px; }
 .testimonial-pending blockquote { font-size:17px; }
 .testimonial figcaption { font-size:10px; }
 .packages h3 { font-size:25px; }
 .packages > div { padding:16px; }
 .service .turnaround { font-size:34px; }
}
@media(max-width:600px) {
 .dialog-shell { width:100%; padding-top:150px; }
 .mobile-card-preview { width:116px; height:146px; top:0; left:calc(50% - 58px); padding:6px; transform:rotate(-1deg); }
 .mobile-card-preview .portrait { height:110px; }
 .mobile-card-preview .polaroid-caption { padding-top:6px; }
 .card-stage { height:auto; max-height:calc(100svh - 206px); }
 #dialog-card .profile-card { max-height:calc(100svh - 206px); padding:25px 24px 20px; }
 .card-reverse { border-radius:12px 12px 0 0; overflow:hidden; }
 .profile-heading { padding:0 96px 20px 0 !important; min-height:132px; }
 .profile-card h1,.profile-card h2 { font-size:40px; margin:0 0 12px; }
 .profile-card .profile-niche { font-size:10px; letter-spacing:.15em; }
 .personality-photo { width:80px; height:104px; top:0; right:0; }
 .profile-card .profile-bio { margin-top:16px; font-size:15px; line-height:1.65; }
 .audience-stats { column-gap:16px; }
 .audience-stats dt { font-size:10px; letter-spacing:.1em; }
 .audience-stats dd { font-size:12px; }
 .profile-actions { flex-wrap:wrap; gap:10px; }
 .profile-actions .book-link { width:100%; min-height:56px; justify-content:center; gap:16px; }
 .profile-actions .reverse-brand { display:none; }
 .profile-actions .talent-social { order:2; }
 .profile-url { padding-top:10px; }
}
.roster-intro .intro-copy .intro-lead { line-height:1.3; }

/* September 14 audit: written type floors and usable controls take precedence
   over the reduced labels in the printed presentation. PDF 14, 26, 33, 50. */
.nav-heart { font-size:10px; letter-spacing:0; }
.main-nav a[aria-current]:after { width:calc(100% - 22px); }
.service .service-aside, .packages p { font-size:15px; }
.service-dark .service-aside { color:#aaa; }
.profile-url { min-height:44px; font-size:13px; }
.profile-actions { flex-wrap:wrap; }
.profile-actions .book-link { font-size:15px; letter-spacing:.14em; }
.profile-actions .talent-social a { font-size:12px; }
@media(min-width:801px) {
 .hero-foot .micro, .section-heading .micro, .section-heading .text-link,
 .footer-top .micro, .footer-links a, .roster-count, .service-copy > .micro,
 .content-index a > small, .content-index .service-number, .testimonial figcaption,
 .packages .micro, .wall-heading .micro, .profile-edition, .profile-pagination .micro,
 .index-return .micro, .dialog-controls .micro { font-size:15px; }
 .footer-links { gap:16px; }
 .footer-links a { letter-spacing:.12em; }
 .footer-top .micro { letter-spacing:.15em; }
 .content-index a > small { letter-spacing:.12em; }
 .slot-title,.content-mosaic .slot-title,.portfolio-grid .slot-title { font-size:15px; }
 .audience-stats dt { font-size:15px; letter-spacing:.06em; }
 .audience-stats dd, .analytics-date, .profile-actions .talent-social a,
 .profile-url { font-size:15px; }
 .audience-stats > div { align-items:start; }
 .profile-actions .talent-social { max-width:100%; }
}
@media(max-width:800px) {
 .hero .tagline, .hero-foot .micro, .philosophy > .micro,
 .section-heading .micro, .section-heading .text-link, .footer-top .micro,
 .footer-links a, .roster-count, .wall-heading .micro { font-size:15px; letter-spacing:.13em; }
 .route-panel .text-link { width:100%; min-height:56px; font-size:15px; letter-spacing:.16em; }
 .content-index a > small { font-size:12px; }
 .service-cta .text-link { font-size:15px; letter-spacing:.15em; }
 .testimonial figcaption { font-size:12px; }
 .packages .micro { font-size:12px; }
 .profile-pagination a { min-width:0; }
 .profile-pagination a > span:last-child { overflow-wrap:anywhere; }
}
@media(max-width:600px) {
 .profile-name-long h1, .profile-name-long h2 { font-size:30px; line-height:1.05; }
 .mobile-card-preview .polaroid-name { white-space:normal; font-size:10px; line-height:1.1; }
 .audience-stats dt { font-size:12px; letter-spacing:.04em; }
 .analytics-date { font-size:12px; }
 .profile-actions .talent-social { order:0; }
}
