@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');

:root { --ink:#f2eee5; --black:#0d0b0a; --ebony:#1b1614; --skin:#d8c6b6; --clay:#b68878; --umber:#6e4a3e; --line:rgba(242,238,229,.28); --muted:#b8aca1; }
* { box-sizing:border-box; scrollbar-width:none; -ms-overflow-style:none; scrollbar-color:transparent transparent; }
*::-webkit-scrollbar { width:0; height:0; display:none; background:transparent; }
*::-webkit-scrollbar-track,*::-webkit-scrollbar-thumb { background:transparent; border:0; }
html { scroll-behavior:smooth; background:var(--black); }
body { margin:0; background:var(--black); color:var(--ink); font-family:"DM Mono",monospace; font-size:12px; letter-spacing:.02em; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.skip { position:fixed; left:-10000px; }
.skip:focus { left:12px; top:12px; z-index:50; background:var(--acid); color:#000; padding:10px; }
.site-header { height:66px; position:fixed; top:0; left:0; right:0; z-index:20; display:flex; justify-content:space-between; align-items:center; padding:0 18px; mix-blend-mode:difference; color:#fff; }
.wordmark { font-size:14px; font-weight:500; letter-spacing:.08em; }
.on-home .site-header { z-index:30; mix-blend-mode:normal; color:#fff; }
.on-home .wordmark { color:#fff; }
.on-home .site-header nav { transform:translateY(24px); }
@media (min-width:681px) {
  .on-home .site-header { background:transparent; border:0; box-shadow:none; }
  .home-dm-notification { display:none!important; }
}
nav { display:flex; gap:18px; align-items:center; }
nav a { opacity:.78; } nav a:hover, nav a:focus { opacity:1; }
.contact-link { border:1px solid currentColor; padding:8px 10px; }
main { min-height:calc(100vh - 100px); }
.site-footer { position:relative; min-height:62px; border-top:1px solid var(--line); padding:18px 18px 36px; display:flex; gap:22px; justify-content:space-between; color:var(--muted); }
.site-footer a { color:var(--ink); }
.footer-legal-links { display:flex; flex-wrap:wrap; align-self:flex-start; justify-content:center; gap:7px 16px; margin-bottom:8px; transform:translateY(-8px); }
.footer-legal-links a { color:inherit; border-bottom:1px solid transparent; }
.footer-legal-links a:hover,.footer-legal-links a:focus { border-bottom-color:currentColor; }
.footer-actions { display:flex; align-self:flex-start; gap:18px; white-space:nowrap; }
.footer-actions a { border-bottom:1px solid transparent; }
.footer-actions a:hover,.footer-actions a:focus-visible { border-bottom-color:currentColor; }
.footer-design-credit { position:absolute; right:18px; bottom:14px; color:currentColor; font-family:"Playfair Display",serif; font-size:9px; font-style:italic; font-weight:500; letter-spacing:0; }
.mobile-dock { display:none; }

@media (max-width:680px) {
  .site-footer { padding-bottom:32px; }
  .footer-actions { margin-left:auto; gap:12px; }
  .footer-design-credit { right:12px; bottom:12px; font-size:8px; }
}
.transmission-mobile-topic-tape { display:none; }

/* Cover: Cartina Lunga remains the primary image; one Erotocomatose reel periodically interrupts it. */
.home { min-height:108vh; position:relative; overflow:hidden; background:var(--umber); }
.frame { position:absolute; inset:0; background-position:center; background-size:cover; filter:contrast(1.08) saturate(.8); }
.frame::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.55),transparent 60%),linear-gradient(0deg,rgba(0,0,0,.46),transparent 45%); }
.frame { background-image:url('../assets/cover.jpg'); }
.home-reel,.home-mobile-reel { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; filter:contrast(1.1) saturate(.82); }
.home-reel { animation:reel-interruption 32s infinite; }
.home-mobile-reel { display:none; z-index:1; background:transparent; transform:scale(1.14); transition:opacity .72s ease; }
.home-reel::after { content:""; }
@keyframes reel-interruption { 0%, 27%, 76%, 100% { opacity:0; transform:scale(1.02); } 31%, 70% { opacity:1; transform:scale(1); } }
.home-copy { position:relative; z-index:2; min-height:108vh; padding:110px 18px 28px; display:flex; flex-direction:column; justify-content:space-between; }
.home-kicker { color:var(--acid); text-transform:uppercase; }
.home h1 { max-width:1000px; margin:0; font-family:"Playfair Display",serif; font-size:clamp(56px,11.4vw,168px); line-height:.82; font-weight:500; letter-spacing:-.065em; }
.home h1 em { display:block; margin-left:18vw; }
.home-bottom { display:flex; justify-content:space-between; align-items:end; }
.home-note { max-width:265px; line-height:1.55; color:#d2d0ca; }
.enter { color:var(--black); background:var(--acid); padding:13px 15px; }

.page-intro { padding:142px 18px 70px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.page-intro h1 { font-family:"Playfair Display",serif; font-size:clamp(54px,8vw,112px); font-weight:500; line-height:.88; letter-spacing:-.05em; margin:0; }
.page-intro p { max-width:425px; line-height:1.55; margin:0; align-self:end; }
.micro { color:var(--acid); text-transform:uppercase; margin-bottom:16px; }

.studio-list { padding:0 18px; }
.group-heading { display:flex; align-items:baseline; justify-content:space-between; padding:72px 0 18px; border-bottom:1px solid var(--line); color:var(--muted); text-transform:uppercase; }
.group-heading h2 { font-size:12px; font-weight:400; margin:0; }
.project { display:grid; grid-template-columns:54px minmax(180px,1.7fr) minmax(150px,.7fr) 26px; gap:12px; align-items:center; padding:18px 0; border-bottom:1px solid var(--line); transition:color .2s, padding .2s; }
.project:hover { color:var(--acid); padding-left:9px; }
.project-title { font-family:"Playfair Display",serif; font-size:clamp(25px,3.2vw,49px); letter-spacing:-.04em; }
.project-role { color:var(--muted); line-height:1.45; }.project:hover .project-role { color:var(--ink); }
.project-arrow { text-align:right; font-size:20px; }
.method { margin:100px 18px; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr 2fr; gap:20px; }
.method p { font-family:"Playfair Display",serif; font-size:clamp(28px,4vw,50px); line-height:1; margin:0; letter-spacing:-.04em; }
.method span { line-height:1.6; color:var(--muted); }

.project-page { padding-top:66px; }
.project-hero { min-height:88vh; position:relative; display:flex; align-items:flex-end; padding:24px 18px; background-size:cover; background-position:center; }
.project-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.72),transparent 60%); }
.project-hero > * { position:relative; z-index:1; }
.project-meta { display:grid; grid-template-columns:100px 1fr 1fr; width:100%; gap:16px; align-items:end; }
.project-meta h1 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(48px,8vw,110px); font-weight:500; line-height:.9; letter-spacing:-.055em; }
.project-meta p { max-width:290px; margin:0; line-height:1.5; }
.project-body { padding:22px 18px 96px; display:grid; grid-template-columns:1fr 2fr; gap:20px; }
.project-body aside { color:var(--muted); line-height:1.55; }.project-body article { max-width:670px; font-family:"Playfair Display",serif; font-size:clamp(25px,3.8vw,47px); line-height:1.02; letter-spacing:-.04em; }
.credits { grid-column:2; margin-top:65px; border-top:1px solid var(--line); padding-top:17px; color:var(--muted); line-height:1.55; }
.credits strong { color:var(--ink); font-weight:400; }
.project-media { grid-column:1 / -1; margin-top:54px; display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
.project-media figure { margin:0; background:var(--umber); }.project-media video { display:block; width:100%; aspect-ratio:9 / 16; object-fit:cover; background:var(--umber); }.project-media figcaption { padding:9px 0; color:var(--muted); }
.project-media iframe { display:block; width:100%; aspect-ratio:16 / 9; border:0; background:var(--umber); }
.project-media .wide { grid-column:span 2; }.project-media .wide video { aspect-ratio:16 / 9; }
.cartina-case { position:relative; height:120vh; overflow:hidden; background:var(--black); }.cartina-bg { position:sticky; top:0; height:100vh; overflow:hidden; background:var(--black); }.cartina-bg video { position:absolute; top:50%; left:50%; width:100vw; height:100vh; min-width:100%; min-height:100%; transform:translate(-50%,-50%) scale(var(--film-crop,1)); object-fit:cover !important; filter:brightness(.58) contrast(1.15) saturate(.85); }.cartina-bg video[data-film="0"],.cartina-bg video[data-film="2"] { --film-crop:4.1; }.cartina-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,11,10,.58),transparent 70%),linear-gradient(0deg,rgba(13,11,10,.66),transparent 52%); pointer-events:none; }
.cartina-content { position:relative; z-index:1; height:120vh; margin-top:-100vh; }.cartina-lead { height:100vh; padding:110px 18px 32px; display:flex; flex-direction:column; justify-content:space-between; }.cartina-lead .back { padding:0; }.cartina-heading { display:grid; grid-template-columns:100px 1fr 1fr; gap:16px; align-items:end; }.cartina-heading h1 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(56px,10vw,140px); font-weight:500; line-height:.84; letter-spacing:-.065em; }.cartina-heading p { max-width:310px; line-height:1.55; margin:0; }.cartina-statement { max-width:530px; margin:0 0 0 auto; font-family:"Playfair Display",serif; font-size:clamp(22px,2.5vw,37px); line-height:1.02; letter-spacing:-.04em; }
.film-status { color:var(--skin); }.cartina-actions { display:flex; justify-content:space-between; align-items:end; gap:20px; }.archive-toggle { cursor:pointer; appearance:none; border:1px solid rgba(242,238,229,.5); background:var(--ebony); color:var(--ink); padding:12px 14px; }.archive-toggle:hover,.archive-toggle:focus { background:var(--ink); color:var(--black); }.cartina-archive { position:absolute; z-index:3; top:86px; right:18px; bottom:18px; width:min(560px,calc(100vw - 36px)); padding:14px; background:rgba(43,29,24,.91); backdrop-filter:blur(18px); border:1px solid rgba(242,238,229,.4); transform:translateX(calc(100% + 25px)); transition:transform .45s cubic-bezier(.2,.8,.2,1); display:flex; flex-direction:column; overflow:hidden; }.cartina-case.archive-open .cartina-archive { transform:translateX(0); }.archive-head { display:flex; justify-content:space-between; padding-bottom:12px; border-bottom:1px solid var(--line); }.archive-close { appearance:none; border:0; color:var(--ink); background:transparent; cursor:pointer; padding:0; }.archive-grid { overflow-y:auto; padding:14px 0; display:grid; grid-template-columns:1fr 1fr; align-content:start; gap:12px; }.archive-grid figure { margin:0; cursor:zoom-in; }.archive-grid img { display:block; width:100%; height:250px; object-fit:cover; }.archive-grid figcaption { padding-top:6px; color:var(--muted); }.archive-credits { padding-top:12px; border-top:1px solid var(--line); color:var(--muted); line-height:1.5; }.archive-preview { position:absolute; z-index:2; inset:14px; display:flex; align-items:center; justify-content:center; background:rgba(43,29,24,.98); opacity:0; pointer-events:none; transition:opacity .16s ease; }.archive-preview img { max-width:100%; max-height:100%; width:100%; height:100%; object-fit:contain; }.cartina-case.archive-preview-open .archive-preview { opacity:1; }
.project-collaboration { display:inline-block; font-family:"Playfair Display",serif; font-size:.82em; font-style:italic; letter-spacing:0; }
.back { display:inline-block; padding:18px; color:var(--muted); }

.about { padding:142px 18px 100px; }
.about h1 { max-width:900px; font-family:"Playfair Display",serif; font-size:clamp(53px,9vw,130px); font-weight:500; line-height:.85; letter-spacing:-.06em; margin:0 0 86px; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; border-top:1px solid var(--line); padding-top:18px; }
.about-grid p { max-width:560px; font-size:15px; line-height:1.55; margin:0 0 24px; }.about-grid h2 { font-size:12px; font-weight:400; text-transform:uppercase; color:var(--acid); margin:0; }
.about-link { display:inline-block; margin-top:20px; border-bottom:1px solid var(--ink); padding-bottom:3px; }

.case-immersive { position:relative; height:100vh; overflow:hidden; background:var(--black); }.case-background { position:absolute; inset:0; background-position:center; background-size:cover; }.case-background::after { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(13,11,10,.62),transparent 70%),linear-gradient(0deg,rgba(13,11,10,.66),transparent 52%); }.case-background video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.58) contrast(1.15) saturate(.85); }.case-video-link { position:absolute; z-index:2; inset:0; }.case-background iframe { position:absolute; top:50%; left:50%; width:100vw; height:56.25vw; min-width:177.78vh; min-height:100vh; transform:translate(-50%,-50%); border:0; pointer-events:none; filter:brightness(.58) contrast(1.15) saturate(.85); }.case-content { position:relative; z-index:3; height:100%; padding:110px 18px 32px; display:flex; flex-direction:column; justify-content:space-between; }.case-content .back { padding:0; }.case-heading { display:grid; grid-template-columns:100px 1fr 1fr; gap:16px; align-items:end; }.case-heading h1 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(52px,9vw,128px); font-weight:500; line-height:.85; letter-spacing:-.06em; }.case-heading p { max-width:310px; line-height:1.55; margin:0; }.case-actions { display:flex; justify-content:space-between; align-items:end; gap:20px; }.case-film-status { color:var(--skin); }.case-archive { position:absolute; z-index:4; top:86px; right:18px; bottom:18px; width:min(560px,calc(100vw - 36px)); padding:14px; background:rgba(43,29,24,.91); backdrop-filter:blur(18px); border:1px solid rgba(242,238,229,.4); transform:translateX(calc(100% + 25px)); transition:transform .45s cubic-bezier(.2,.8,.2,1); display:flex; flex-direction:column; overflow:hidden; }.case-immersive.archive-open .case-archive { transform:translateX(0); }.case-archive .archive-preview { background:rgba(43,29,24,.98); }.case-immersive.archive-preview-open .archive-preview { opacity:1; }
@media (min-width:681px) {
  .case-content .case-actions { margin-top:auto; }
  .case-cantico .case-heading { margin-top:auto; margin-bottom:28px; transform:translateY(7vh); }
  .case-stigmatality .case-heading { transform:translateY(24vh); }
  .case-poster-girl-objectified .case-heading { transform:translateY(24vh); }
  .case-ai-visual-studies { height:120vh; overflow:visible; }
  .case-ai-visual-studies .case-background { height:100%; overflow:hidden; }
  .case-ai-visual-studies .case-content { position:sticky; top:0; height:100vh; }
  .case-ai-visual-studies .case-heading { margin-top:auto; margin-bottom:28px; transform:translateY(15vh); }
  .case-immersive .archive-toggle { position:absolute; right:18px; bottom:32px; }
}
.film-switch { display:flex; gap:6px; margin-top:10px; }.film-switch-button { appearance:none; border:1px solid rgba(242,238,229,.45); background:rgba(13,11,10,.5); color:var(--ink); padding:7px 9px; cursor:pointer; }.film-switch-button:hover,.film-switch-button:focus,.film-switch-button.is-active { background:var(--ink); color:var(--black); }
.case-statement { align-self:flex-end; max-width:min(520px,45vw); margin:0; font-family:"Playfair Display",serif; font-size:clamp(20px,2.1vw,31px); line-height:1.04; letter-spacing:-.035em; }
.case-statement--stigmatality p { margin:0; }
.case-statement--stigmatality { align-self:flex-start; margin-left:100px; }
.case-buy-links { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.case-buy-link { display:inline-block; padding:9px 11px; border:1px solid rgba(242,238,229,.62); background:rgba(13,11,10,.48); color:var(--ink); font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; letter-spacing:0; }
.case-buy-link:hover,.case-buy-link:focus { background:var(--ink); color:var(--black); }
.case-statement--stigmatality .case-buy-links { gap:18px; }
.case-statement--stigmatality .case-buy-link { padding:0 0 3px; border:0; border-bottom:1px solid transparent; background:transparent; }
.case-statement--stigmatality .case-buy-link:hover,.case-statement--stigmatality .case-buy-link:focus { border-bottom-color:currentColor; background:transparent; color:var(--ink); }
@media (max-width:680px) { .case-statement--stigmatality { margin-left:0; max-width:100%; } }
.case-statement--cantico { align-self:flex-end; margin-left:0; }
.case-statement--cantico p { margin:0; }
.case-statement--cantico .case-buy-links { align-items:flex-start; }
.case-statement--cantico .case-buy-link { padding:0 0 3px; border:0; border-bottom:1px solid transparent; background:transparent; }
.case-statement--cantico .case-buy-link:hover,.case-statement--cantico .case-buy-link:focus { border-bottom-color:currentColor; background:transparent; color:var(--ink); }
.case-press { position:relative; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; }
.case-press summary { cursor:pointer; list-style:none; padding:0 0 3px; border-bottom:1px solid transparent; }
.case-press summary::-webkit-details-marker { display:none; }
.case-press[open] summary,.case-press summary:hover { border-bottom-color:currentColor; }
.case-press-list { position:absolute; z-index:5; left:0; bottom:calc(100% + 10px); width:max-content; min-width:190px; display:grid; gap:8px; padding:11px; background:rgba(13,11,10,.9); border:1px solid rgba(242,238,229,.42); }
.case-press-list a { color:var(--ink); }
.case-press-list span { color:var(--muted); }
@media (max-width:680px) { .case-statement--cantico { margin-left:0; max-width:100%; }.case-press-list { left:auto; right:0; } }
.case-cantico { height:120vh; }
.case-cantico .case-background { position:fixed; z-index:0; inset:0; height:100vh; }
.case-cantico .case-background::after { inset:0; height:auto; bottom:0; }
.case-cantico .case-background video { height:100vh; }
.case-cantico ~ * { position:relative; }
main:has(.case-cantico) + .site-footer { position:relative; z-index:10; background:var(--black); }
main:has(.studio-tape-page) ~ .site-footer,
main:has(.cartina-case) ~ .site-footer,
main:has(.case-immersive) ~ .site-footer { position:relative; z-index:10; background:var(--black); color:var(--muted); --line:rgba(242,238,229,.28); }
main:has(.cartina-case) ~ .site-footer a,
main:has(.case-immersive) ~ .site-footer a { color:var(--ink); }
.case-cantico { overflow:visible; }
.case-cantico .case-content { position:sticky; top:0; height:100vh; }
.case-cantico .case-background iframe { width:300vw; height:169vh; min-width:0; min-height:0; }
.case-cantico.cantico-film-2 .case-background iframe { left:31%; }
.case-cantico #case-film { transform:scale(1.38); }
.case-cantico.cantico-film-2 #case-film { transform:scale(1.5); object-position:72% center; }
.case-stigmatality { height:125vh; }
.case-stigmatality .case-background { position:absolute; inset:0; height:100%; background-color:var(--black); background-repeat:no-repeat; background-size:auto 132%; background-position:center; }
@media (min-width:681px) {
  .cartina-case { overflow:visible; overflow-x:clip; }
  .case-chimaera { height:120vh; overflow:visible; }
  .case-chimaera .case-background { position:absolute; top:0; height:100%; overflow:hidden; }
  .case-chimaera .case-background video { height:100%; }
  .case-chimaera .case-content { position:sticky; top:0; height:100vh; margin-top:0; }
  .case-chimaera .case-heading h1 { transform:translateY(24px); }
  .case-chimaera .case-background video { transform:scale(2.24); }
  .cartina-bg { position:absolute; inset:0; height:100%; }
  .cartina-bg video { height:100%; }
  .cartina-content { position:sticky; top:0; height:100vh; margin-top:0; }
}
@media (max-width:680px) { .case-chimaera .case-background video { transform:scale(1.16); } }
/* A regular, full-bleed contact sheet; the scanned title page is not part of this archive. */
.case-stigmatality .archive-grid { grid-template-columns:1fr 1fr; align-content:start; gap:12px; }
.case-stigmatality .archive-grid figure { display:grid; grid-template-rows:178px auto; overflow:hidden; background:var(--umber); }
.case-stigmatality .archive-grid img { grid-row:1; display:block; width:100%; height:178px; object-fit:cover; transform:scale(1.09); }
.case-stigmatality .archive-grid figure[data-trim-white="true"] img { transform:scale(1.82); }
.case-stigmatality .archive-grid figcaption { grid-row:2; position:relative; z-index:1; padding-top:6px; background:rgba(43,29,24,.91); }
/* Hovering a card reveals the complete photo; no crop is applied in the viewer. */
.case-stigmatality .archive-preview { overflow:hidden; }
.case-stigmatality .archive-preview img { width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; transform:none; }
.case-stigmatality .archive-preview--trim-white img { width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; transform:scale(1.62); }
.case-curators-prj-pps { height:125vh; }.case-curators-prj-pps .case-background { position:absolute; inset:0; height:100%; }.case-curators-prj-pps .case-content { margin-top:0; }
@media (min-width:681px) { .case-stigmatality .case-content,.case-curators-prj-pps .case-content { position:sticky; top:0; height:100vh; } }
/* Static Studio projects use the same full-bleed scrolling stage as the other case studies. */
.case-poster-girl-objectified,.case-hydrasite,.case-pax-bellum,.case-vvutura { height:125vh; overflow:visible; }
.case-poster-girl-objectified .case-background,.case-hydrasite .case-background,.case-pax-bellum .case-background,.case-vvutura .case-background { position:absolute; inset:0; height:100%; }
.case-poster-girl-objectified .case-content,.case-hydrasite .case-content,.case-pax-bellum .case-content,.case-vvutura .case-content { position:sticky; top:0; height:100vh; }
.studio-orbit-page { padding-top:66px; overflow:hidden; }.studio-orbit-intro { min-height:48vh; padding:76px 18px 36px; display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:20px; border-bottom:1px solid var(--line); }.studio-orbit-intro h1 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(60px,10vw,145px); font-weight:500; line-height:.82; letter-spacing:-.065em; }.studio-orbit-intro p { max-width:430px; line-height:1.55; }.orbit-section { position:relative; height:88vh; min-height:620px; overflow:hidden; border-bottom:1px solid var(--line); }.orbit-label { position:absolute; z-index:2; top:20px; left:18px; right:18px; display:flex; justify-content:space-between; color:var(--muted); text-transform:uppercase; }.orbit-track { position:absolute; inset:0; }.orbit-card { position:absolute; left:50%; top:50%; width:min(26vw,340px); aspect-ratio:3/4; overflow:hidden; background:var(--umber); color:var(--ink); will-change:transform,opacity; transition:filter .25s; }.orbit-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(13,11,10,.76),transparent 52%); pointer-events:none; }.orbit-card video,.orbit-card img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.82); }.orbit-card .orbit-card-copy { position:absolute; z-index:1; left:12px; right:12px; bottom:12px; }.orbit-card strong { display:block; font-family:"Playfair Display",serif; font-size:clamp(23px,2.5vw,36px); line-height:.92; font-weight:500; letter-spacing:-.045em; }.orbit-card small { display:block; margin-top:7px; color:var(--skin); line-height:1.35; }.orbit-card:hover { filter:brightness(1.12); }.orbit-caption { position:absolute; left:18px; bottom:20px; max-width:310px; color:var(--muted); line-height:1.55; }
@media (max-width:680px) { .site-header { padding:0 12px; }.wordmark { font-size:10px; } nav { gap:8px; font-size:10px; } .contact-link { padding:6px 7px; }.site-footer { padding:14px 12px; font-size:10px; }.home-copy,.page-intro,.about { padding-left:12px; padding-right:12px; }.home h1 em { margin-left:5vw; }.home-bottom { gap:15px; }.page-intro,.about-grid,.method,.project-body { grid-template-columns:1fr; }.project { grid-template-columns:30px 1fr 18px; }.project-role { display:none; }.project-meta { grid-template-columns:1fr; gap:10px; }.project-meta > span { display:none; }.project-body article,.credits { grid-column:auto; }.project-media { grid-template-columns:1fr; }.project-media .wide { grid-column:auto; }.method { margin:64px 12px; }.studio-list { padding:0 12px; }.project-hero { min-height:70vh; padding:18px 12px; }.project-body { padding-left:12px; padding-right:12px; }.about { padding-top:115px; }.about h1 { margin-bottom:55px; }.cartina-lead { padding:100px 12px 18px; }.cartina-heading { grid-template-columns:1fr; }.cartina-heading > span { display:none; }.cartina-actions { align-items:start; flex-direction:column; }.cartina-archive,.case-archive { top:78px; right:12px; bottom:12px; width:calc(100vw - 24px); }.archive-grid img { height:180px; }.case-content { padding:100px 12px 18px; }.case-heading { grid-template-columns:1fr; }.case-heading > span { display:none; }.case-actions { align-items:start; flex-direction:column; } }

/* Legal documents are deliberately kept outside primary navigation: compact, legible and footer-led. */
.legal-page { min-height:100vh; padding:0 18px 28px; background:#fff; color:var(--black); --line:rgba(13,11,10,.24); }
.legal-layout { width:min(1180px,100%); min-height:calc(100svh - 66px); margin:0 auto; padding:142px 0 28px; display:grid; grid-template-columns:minmax(280px,.82fr) minmax(0,1fr); align-items:center; gap:clamp(52px,10vw,150px); }
.legal-page-head { grid-column:2; align-self:center; }.legal-copy { grid-column:1; grid-row:1; width:100%; max-width:500px; height:min(640px,70svh); justify-self:start; overflow-y:auto; padding-right:12px; scrollbar-width:none; -ms-overflow-style:none; }
.legal-copy::-webkit-scrollbar { display:none; }
.legal-page-head .back { padding:0; color:var(--umber); }
.legal-image { display:block; width:min(100%,390px); height:auto; margin:30px 0 0; }
.legal-image--privacy { width:min(100%,271px); }
.legal-image--privacy { margin-right:auto; margin-left:auto; }
.legal-image--cookies { width:min(100%,336px); }
.legal-nav { display:flex; flex-wrap:wrap; gap:8px 17px; margin:30px 0 0; font-size:11px; text-transform:uppercase; }
.legal-nav a { padding-bottom:3px; border-bottom:1px solid transparent; color:var(--black); }
.legal-nav a:hover,.legal-nav a:focus { border-bottom-color:currentColor; color:var(--umber); }
.legal-status { max-width:330px; margin:22px 0 0; color:var(--umber); font-size:11px; line-height:1.45; }
.legal-page h1 { max-width:480px; margin:32px 0 0; font-family:"Playfair Display",serif; font-size:clamp(56px,7.1vw,102px); font-weight:500; line-height:.86; letter-spacing:-.065em; }
.legal-copy { font-size:15px; line-height:1.55; }
.legal-copy section { margin:0 0 26px; }
.legal-copy h2 { margin:0 0 18px; font-family:"DM Mono",monospace; font-size:12px; font-weight:500; line-height:1.35; letter-spacing:.02em; text-transform:uppercase; }
.legal-copy p { margin:0 0 18px; }.legal-copy a { color:var(--black); border-bottom:1px solid var(--black); }
.legal-copy dl { display:grid; grid-template-columns:minmax(145px,.7fr) 1fr; gap:7px 20px; margin:21px 0 0; padding-top:15px; border-top:1px solid var(--line); }
.legal-copy dt { color:var(--umber); }.legal-copy dd { margin:0; }.legal-updated { margin-bottom:34px!important; color:var(--umber); font-size:11px; text-transform:uppercase; }.legal-related { padding-top:20px; border-top:1px solid var(--line); }.legal-related p { display:flex; flex-wrap:wrap; gap:8px 18px; }
main:has(.legal-page) + .site-footer { background:#fff; color:var(--umber); --line:rgba(13,11,10,.24); }main:has(.legal-page) + .site-footer a { color:var(--black); }
body:has(.legal-page) .site-header { color:var(--black); mix-blend-mode:normal; }
body:has(.legal-page) .legal-related { display:none; }
body:has(.legal-page) .site-footer { background:#fff; color:var(--umber); --line:rgba(13,11,10,.24); }
body:has(.legal-page) .site-footer a { color:var(--black); }
html:has(.legal-page),body:has(.legal-page) { background:#fff; }
.legal-page-head .back { display:none; }
@media (max-width:680px) { .site-footer { align-items:flex-start; flex-wrap:wrap; }.footer-legal-links { width:100%; justify-content:flex-start; order:3; }.legal-page { padding:0 12px 28px; }.legal-layout { min-height:auto; padding:78px 0 28px; display:block; }.legal-page-head,.legal-copy { grid-column:auto; grid-row:auto; }.legal-image { width:min(100%,340px); height:auto; margin-top:0; }.legal-image--privacy { width:min(100%,236px); }.legal-image--cookies { width:min(100%,293px); }.legal-page h1 { margin-top:29px; font-size:clamp(56px,15vw,92px); }.legal-status { margin-top:20px; }.legal-nav { margin-top:29px; }.legal-copy { height:auto; max-width:none; margin-top:28px; padding-right:0; overflow:visible; font-size:13px; line-height:1.58; }.legal-copy section { margin-bottom:34px; }.legal-copy dl { grid-template-columns:1fr; gap:3px; }.legal-copy dd { margin-bottom:7px; } }
.orbit-section { height:auto; min-height:620px; }.orbit-track { position:relative; inset:auto; display:flex; align-items:center; gap:18px; min-height:620px; overflow-x:auto; padding:80px max(18px,calc((100vw - 1160px)/2)) 42px; scroll-snap-type:x mandatory; scrollbar-width:none; }.orbit-track::-webkit-scrollbar { display:none; }.orbit-card { position:relative; left:auto; top:auto; flex:0 0 min(30vw,390px); width:auto; aspect-ratio:4/5; scroll-snap-align:center; will-change:auto; transform:none!important; }.orbit-card:hover { transform:scale(1.025)!important; filter:brightness(1.12); }
.orbit-card--cartina-lunga video { transform:scale(1.78); }
.orbit-card--stigmatality img { transform:scale(1.22); transform-origin:center 56%; }
.orbit-card iframe { position:absolute; top:50%; left:50%; width:100%; height:100%; min-width:178%; min-height:100%; transform:translate(-50%,-50%); border:0; pointer-events:none; filter:saturate(.82); }
.orbit-card--cantico iframe { width:380%; height:171%; min-width:0; min-height:0; }
.orbit-card--cantico video { transform:scale(1.32); }
.orbit-card--vvutura video { transform:scale(1.6); transform-origin:center; object-fit:cover; }
.orbit-card--cantico .video-ui-mask { position:absolute; z-index:2; inset:0; cursor:pointer; }
.orbit-card--cantico .orbit-card-copy { z-index:3; }
.archive-preview { pointer-events:none; }
.cartina-case.archive-preview-open .archive-preview,.case-immersive.archive-preview-open .archive-preview { pointer-events:auto; }
.archive-nav { position:absolute; z-index:1; top:50%; transform:translateY(-50%); appearance:none; border:0; background:rgba(27,22,20,.76); color:var(--ink); width:42px; height:42px; cursor:pointer; font-size:24px; }
.archive-nav--prev { left:14px; }.archive-nav--next { right:14px; }
.archive-preview-back { position:absolute; z-index:1; top:14px; left:14px; appearance:none; border:0; padding:4px 0; background:transparent; color:var(--ink); font:inherit; font-size:11px; cursor:pointer; }
.archive-preview-count { position:absolute; bottom:14px; left:50%; transform:translateX(-50%); color:var(--skin); font-size:12px; }
@media (prefers-reduced-motion: reduce) { .home-reel { display:none; } }

/* Every page shares the Studio palette: ebony ground, ivory type, muted metal details. */
.about { min-height:100vh; background:var(--black); color:var(--ink); --line:rgba(242,238,229,.28); --muted:#b8aca1; --acid:var(--clay); }
.studio-orbit-page { min-height:100vh; background:var(--black); color:var(--ink); --line:rgba(242,238,229,.28); --muted:#b8aca1; }

/* Studio: an uninterrupted moving tape, paused by the visitor. */
.studio-tape-page { position:relative; height:100vh; min-height:720px; overflow:hidden; background:var(--black); color:var(--ink); }
.studio-tape { position:absolute; z-index:1; inset:0; display:flex; align-items:center; overflow-x:auto; overflow-y:hidden; touch-action:pan-y; scrollbar-width:none; -ms-overflow-style:none; }
.studio-tape::-webkit-scrollbar { display:none; }
.studio-tape-run { display:flex; align-items:center; gap:22px; width:max-content; padding-right:22px; animation:none; }
.studio-tape-sequence { display:flex; align-items:center; gap:22px; width:max-content; }
.studio-mobile-heading { display:none; }
.studio-tape-page .studio-tape-card { position:relative; left:auto; top:auto; flex:0 0 clamp(270px,27vw,430px); width:auto; height:70vh; aspect-ratio:auto; scroll-snap-align:none; transform:none!important; }
.studio-tape-page .studio-tape-card:hover { transform:scale(1.025)!important; }
.studio-tape-page .orbit-card--chimaera video { transform:scale(1.12); transform-origin:center; }
.studio-tape-page .orbit-card-copy { z-index:3; top:15px; bottom:auto; color:var(--ink); text-shadow:0 2px 18px rgba(13,11,10,.9); }
.studio-tape-break { flex:0 0 clamp(240px,22vw,360px); align-self:stretch; display:flex; flex-direction:column; justify-content:center; padding:28px; color:var(--ink); border-left:1px solid rgba(242,238,229,.5); border-right:1px solid rgba(242,238,229,.5); font-size:clamp(20px,2vw,32px); line-height:1; text-transform:uppercase; }
.studio-tape-break b { font-family:"Playfair Display",serif; font-size:clamp(68px,9vw,130px); font-weight:500; line-height:.72; letter-spacing:-.08em; }.studio-tape-break small { margin-top:15px; color:var(--skin); font-size:11px; line-height:1.4; }
.studio-tape-shade { position:absolute; z-index:0; inset:0; pointer-events:none; background:var(--black); }
.studio-tape-controls { position:absolute; z-index:4; inset:50% 18px auto; transform:translateY(-50%); display:flex; justify-content:space-between; pointer-events:none; }.studio-tape-controls button { pointer-events:auto; width:48px; height:48px; border:1px solid rgba(242,238,229,.55); background:rgba(13,11,10,.48); color:var(--ink); font-size:25px; cursor:pointer; }.studio-tape-controls button:hover,.studio-tape-controls button:focus { background:var(--ink); color:var(--black); }
.studio-tape-copy { position:relative; z-index:2; height:100%; padding:0 18px; pointer-events:none; }
.studio-tape-copy > div:first-child { position:absolute; left:18px; bottom:34px; }.studio-tape-copy > div:last-child { position:absolute; right:18px; bottom:34px; max-width:260px; }.studio-tape-copy p { font-size:11px; line-height:1.45; margin:0 0 13px; }.studio-tape-copy h1 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(65px,10vw,150px); font-weight:500; line-height:.8; letter-spacing:-.07em; }.studio-tape-note { color:var(--skin); text-transform:uppercase; font-size:10px; line-height:1.4; }
@keyframes studio-tape { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (max-width:680px) { .studio-tape-page { min-height:680px; }.studio-tape-page .studio-tape-card { flex-basis:250px; height:54vh; }.studio-tape-copy > div:first-child { left:12px; bottom:22px; }.studio-tape-copy > div:last-child { right:12px; bottom:22px; max-width:210px; }.studio-tape-break { flex-basis:220px; padding:18px; } }

/* Mobile Studio becomes a vertical, continuous reel feed. Desktop remains horizontal. */
@media (max-width:680px) {
  body:has(.studio-tape-page) .site-header { display:none; }
  .studio-tape-page { height:auto; min-height:0; overflow:visible; }
  .studio-mobile-heading { position:sticky; z-index:10; top:0; display:flex; min-height:66px; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:var(--ink); background:var(--black); text-align:center; }
  .studio-mobile-heading strong { font-size:11px; letter-spacing:.08em; }
  .studio-mobile-home { color:var(--ink); font-size:11px; font-weight:700; letter-spacing:.08em; }
  .studio-mobile-heading span { margin-top:4px; color:var(--skin); font-size:10px; line-height:1.25; text-transform:uppercase; }
  .studio-mobile-heading i { color:var(--muted); font-size:8px; font-style:normal; letter-spacing:.04em; }
  .studio-tape { position:relative; inset:auto; display:block; overflow:visible; touch-action:pan-y; }
  .studio-tape-run,.studio-tape-sequence { width:100%; padding:0; flex-direction:column; align-items:stretch; gap:0; }
  .studio-tape-sequence--duplicate { display:none; }
  .studio-tape-break { display:none; }
  .studio-tape-page .studio-tape-card { flex:0 0 auto; width:100%; height:88svh; min-height:500px; }
  .studio-tape-break { flex:0 0 auto; width:100%; min-height:12svh; padding:14px 18px; border-left:0; border-right:0; border-top:1px solid rgba(242,238,229,.5); border-bottom:1px solid rgba(242,238,229,.5); }
  .studio-tape-controls,.studio-tape-copy { display:none; }
  .studio-tape-page .orbit-card-copy { top:auto; bottom:16px; left:16px; right:16px; }
  .studio-tape-page .orbit-card strong { font-size:clamp(34px,10vw,52px); }
  .studio-tape-page .orbit-card small { max-width:290px; font-size:11px; }
}

/* Explore folds a project's reading and links into the archive panel. */
.case-archive .explore-intro { padding:14px 0 15px; border-bottom:1px solid var(--line); }
.case-archive .case-statement { display:block; max-width:none; margin:0; font-family:"Playfair Display",serif; font-size:clamp(19px,1.65vw,25px); line-height:1.04; letter-spacing:-.035em; }
.case-archive .case-statement p { margin:0; }
.case-curators-prj-pps .case-archive .case-statement a { color:var(--skin); text-decoration:none; }
.case-curators-prj-pps .case-archive .case-statement a:hover,.case-curators-prj-pps .case-archive .case-statement a:focus { color:var(--ink); }
.case-curators-prj-pps .case-archive .archive-credits a { color:var(--ink); border-bottom:0; text-decoration:none; }
.case-curators-prj-pps .case-archive .archive-credits a:hover,.case-curators-prj-pps .case-archive .archive-credits a:focus { color:var(--ink); }
.case-poster-girl-objectified .case-archive .case-statement a { color:var(--skin); text-decoration:none; }
.case-poster-girl-objectified .case-archive .case-statement a:hover,.case-poster-girl-objectified .case-archive .case-statement a:focus { color:var(--ink); }
.case-poster-girl-objectified .case-archive .archive-credits a { color:var(--ink); border-bottom:0; text-decoration:none; }
.case-poster-girl-objectified .case-archive .archive-credits a:hover,.case-poster-girl-objectified .case-archive .archive-credits a:focus { color:var(--ink); }
.case-pax-bellum .case-archive .case-statement a { color:var(--skin); text-decoration:none; }
.case-pax-bellum .case-archive .case-statement a:hover,.case-pax-bellum .case-archive .case-statement a:focus { color:var(--ink); }
.case-pax-bellum .case-archive .archive-credits a { color:var(--ink); border-bottom:0; text-decoration:none; }
.case-pax-bellum .case-archive .archive-credits a:hover,.case-pax-bellum .case-archive .archive-credits a:focus { color:var(--ink); }
.case-hydrasite .case-archive .case-statement a { color:var(--skin); text-decoration:none; }
.case-hydrasite .case-archive .case-statement a:hover,.case-hydrasite .case-archive .case-statement a:focus { color:var(--ink); }
.case-hydrasite .case-archive .archive-credits a { color:var(--ink); border-bottom:0; text-decoration:none; }
.case-hydrasite .case-archive .archive-credits a:hover,.case-hydrasite .case-archive .archive-credits a:focus { color:var(--ink); }
.case-vvutura .case-archive .case-statement a { color:var(--skin); text-decoration:none; }
.case-vvutura .case-archive .case-statement a:hover,.case-vvutura .case-archive .case-statement a:focus { color:var(--ink); }
.case-vvutura .case-archive .archive-credits a { color:var(--ink); border-bottom:0; text-decoration:none; }
.case-vvutura .case-archive .archive-credits a:hover,.case-vvutura .case-archive .archive-credits a:focus { color:var(--ink); }
.case-vvutura .case-archive .vvutura-art-credit { display:inline-block; margin-top:4px; color:#987367; }
a[data-credit-profile-link] { color:#987367; text-decoration:none; }
.archive-credits a[data-credit-profile-link] { border-bottom:1px solid currentColor; }
a[data-credit-profile-link]:hover,a[data-credit-profile-link]:focus { color:var(--ink); }
.case-curators-prj-pps .case-archive .archive-credits a[data-credit-profile-link],.case-poster-girl-objectified .case-archive .archive-credits a[data-credit-profile-link],.case-pax-bellum .case-archive .archive-credits a[data-credit-profile-link],.case-hydrasite .case-archive .archive-credits a[data-credit-profile-link],.case-vvutura .case-archive .archive-credits a[data-credit-profile-link] { color:#987367; border-bottom:1px solid currentColor; }
.case-archive .case-statement--stigmatality,.case-archive .case-statement--cantico { align-self:auto; margin-left:0; }
.case-archive .case-statement--stigmatality { width:100%; margin-right:auto; text-align:left; }
.case-archive .case-buy-links { margin-top:15px; }
.case-archive .case-buy-link { font-size:11px; }
.case-chimaera .case-archive .case-buy-links { gap:18px; }
.case-chimaera .case-archive .case-buy-link { padding:0 0 3px; border:0; border-bottom:1px solid transparent; background:transparent; }
.case-chimaera .case-archive .case-buy-link:hover,.case-chimaera .case-archive .case-buy-link:focus { border-bottom-color:currentColor; background:transparent; color:var(--ink); }
.case-archive .case-press-list { bottom:auto; top:calc(100% + 9px); }
.case-archive .archive-grid { flex:1; min-height:0; }
.cartina-archive .explore-intro { padding:14px 0 15px; border-bottom:1px solid var(--line); }
.cartina-archive .cartina-statement { max-width:none; margin:0; font-family:"Playfair Display",serif; font-size:clamp(19px,1.65vw,25px); line-height:1.04; letter-spacing:-.035em; text-align:left; }
.cartina-archive .archive-grid { flex:1; min-height:0; }

/* Ecosystem pages use the same dark Studio ground. */
.home-doors { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; max-width:440px; }
.home-doors a { padding:9px 10px; border:1px solid rgba(242,238,229,.58); background:rgba(13,11,10,.32); }
.home-doors a:hover,.home-doors a:focus { background:var(--ink); color:var(--black); }
.transmission { min-height:100vh; padding:142px 18px 84px; background:#fff; color:var(--black); --line:rgba(13,11,10,.24); --muted:#6e4a3e; --acid:#6e4a3e; }.contact-page { min-height:100vh; padding:142px 18px 84px; background:var(--black); color:var(--ink); --line:rgba(242,238,229,.28); --muted:#b8aca1; --acid:var(--clay); }
.transmission-intro { display:grid; grid-template-columns:420px minmax(0,1fr); align-items:start; gap:clamp(24px,7vw,112px); padding-bottom:74px; border-bottom:1px solid var(--line); }.transmission-intro .signal-window { position:relative; top:auto; }.transmission-intro-copy { display:flex; min-height:480px; flex-direction:column; align-items:flex-start; }.transmission-intro-copy .micro { margin:0; }
.transmission h1,.contact-page h1 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(56px,9.5vw,132px); font-weight:500; line-height:.84; letter-spacing:-.065em; }
.transmission-intro p,.contact-intro p { max-width:470px; margin:32px 0 0; font-size:15px; line-height:1.55; }.transmission-intro-copy > a { margin-top:auto; color:var(--black); border-bottom:1px solid currentColor; padding-bottom:3px; }
.transmission-sections { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); }
.transmission-card { min-height:280px; padding:18px 20px; border-right:1px solid var(--line); display:flex; flex-direction:column; align-items:flex-start; }
.transmission-card:last-child { border-right:0; }.transmission-card > span { color:var(--muted); }.transmission-card h2 { margin:34px 0 14px; font-family:"Playfair Display",serif; font-size:clamp(32px,4vw,57px); font-weight:500; line-height:.9; letter-spacing:-.05em; }.transmission-card p { max-width:330px; line-height:1.55; margin:0; }.transmission-card a { margin-top:auto; padding-bottom:3px; border-bottom:1px solid currentColor; }.transmission-card--objects { color:var(--muted); }.transmission-card small { margin-top:auto; color:var(--black); text-transform:uppercase; }
.transmission-actions { display:flex; flex-direction:column; gap:10px; margin-top:auto; }.transmission-actions a { margin-top:0; align-self:flex-start; }
.current-signal { display:grid; grid-template-columns:1fr 420px; align-items:start; gap:clamp(24px,7vw,112px); margin-top:88px; border-top:1px solid var(--line); padding-top:16px; }.current-signal-head { display:flex; min-height:480px; flex-direction:column; align-items:flex-start; gap:18px; color:var(--muted); text-transform:uppercase; }.current-signal-head p { max-width:250px; margin:0; text-transform:none; line-height:1.55; }.current-signal-head a { margin-top:auto; color:var(--ink); border-bottom:1px solid currentColor; padding-bottom:3px; text-transform:none; }.signal-window { --signal-width:420px; position:sticky; top:88px; width:var(--signal-width); height:480px; overflow:hidden; background:var(--ebony); border:1px solid var(--line); }.signal-track { display:flex; flex-direction:column; width:100%; animation:signal-transmission-loop 56s linear infinite; will-change:transform; }.signal-sequence { display:grid; gap:12px; padding-bottom:12px; }.signal-post { position:relative; display:block; width:var(--signal-width); height:480px; overflow:hidden; background:var(--ebony); color:var(--ink); }.signal-post img,.signal-post video { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.82) contrast(1.04); }.signal-post span { position:absolute; z-index:1; left:8px; bottom:8px; padding:7px 8px; background:rgba(13,11,10,.84); border:1px solid rgba(242,238,229,.45); font-size:10px; }.signal-post:hover span,.signal-post:focus span { background:var(--ink); color:var(--black); }.signal-loading { min-height:100%; display:grid; place-items:center; padding:24px; color:var(--skin); line-height:1.5; text-align:center; }@keyframes signal-transmission-loop { to { transform:translateY(-50%); } }@media (prefers-reduced-motion:reduce) { .signal-track { animation:none; } }
.about-expanded .working-routes { display:grid; gap:18px; }.working-routes article { padding-bottom:16px; border-bottom:1px solid var(--line); }.working-routes article:last-child { padding-bottom:0; border:0; }.working-routes strong { font-family:"Playfair Display",serif; font-size:26px; font-weight:500; letter-spacing:-.035em; }.working-routes p { margin:8px 0 0; }
.contact-page { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-content:start; }.contact-page > .micro { grid-column:1 / -1; }.contact-intro { display:contents; }.contact-intro h1 { grid-column:1; }.contact-intro p { grid-column:2; }.contact-form { grid-column:2; display:grid; gap:18px; margin-top:48px; }.contact-form label { display:grid; gap:8px; color:var(--muted); }.contact-form input,.contact-form select,.contact-form textarea { width:100%; border:0; border-bottom:1px solid var(--ink); border-radius:0; background:transparent; color:var(--ink); padding:10px 0; font:inherit; outline:none; }.contact-form option { background:var(--ebony); color:var(--ink); }.contact-form textarea { resize:vertical; line-height:1.5; }.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-bottom-width:2px; }.contact-form button { justify-self:start; appearance:none; border:1px solid var(--ink); background:var(--ink); color:var(--black); padding:12px 15px; cursor:pointer; }.contact-form button:hover,.contact-form button:focus { background:transparent; color:var(--ink); }.contact-note { margin:0; color:var(--muted); line-height:1.5; }.contact-note a { color:var(--ink); border-bottom:1px solid currentColor; }
main:has(.transmission) + .site-footer { background:#fff; color:#6e4a3e; --line:rgba(13,11,10,.24); }main:has(.transmission) + .site-footer a { color:var(--black); }
@media (max-width:680px) { .home-doors { justify-content:flex-start; max-width:260px; }.transmission,.contact-page { padding:112px 12px 60px; }.transmission-intro,.contact-page { grid-template-columns:1fr; }.transmission-intro p,.contact-intro h1,.contact-intro p,.contact-form { grid-column:auto; }.transmission-intro { padding-bottom:45px; }.transmission-intro-copy { min-height:0; }.transmission-intro-copy > a { margin-top:28px; }.transmission-sections { grid-template-columns:1fr; }.transmission-card { min-height:285px; border-right:0; border-bottom:1px solid var(--line); padding:18px 0; }.transmission-card h2 { margin-top:34px; }.current-signal { grid-template-columns:1fr; gap:18px; margin-top:54px; }.current-signal-head { min-height:0; }.current-signal-head a { margin-top:4px; }.signal-window { --signal-width:min(100%,340px); position:relative; top:auto; height:430px; }.signal-post { height:430px; }.contact-form { margin-top:24px; }.about-expanded .working-routes { margin-top:0; } }

/* Transmission begins as a full-width moving signal, fading into the reading field. */
.transmission-intro { position:relative; display:block; isolation:isolate; min-height:454px; overflow:hidden; padding-bottom:24px; }
.transmission-intro .signal-window { position:absolute; z-index:0; top:0; right:-18px; left:-18px; width:calc(100% + 36px); height:430px; overflow:hidden; border:0; background:#fff; }
.transmission-intro::after { content:""; position:absolute; z-index:1; inset:0 -18px 0 0; pointer-events:none; background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.08) 20%,rgba(255,255,255,.72) 48%,#fff 68%,#fff 100%); }
.transmission-intro .signal-track { display:flex; flex-direction:row; width:max-content; height:100%; animation:transmission-tape 64s linear infinite; }
.transmission-intro .signal-sequence { display:flex; gap:10px; height:100%; padding:0 10px 0 0; }
.transmission-intro .signal-post { flex:0 0 clamp(340px,34vw,480px); width:clamp(340px,34vw,480px); height:100%; }
.transmission-intro-copy { position:relative; z-index:2; width:min(520px,46%); min-height:430px; margin-left:50%; justify-content:center; }
.transmission-intro-copy > a { margin-top:28px; }
.transmission-topic-links { display:flex; flex-wrap:wrap; gap:8px 17px; margin-top:19px; }.transmission-topic-links button { appearance:none; border:0; border-bottom:1px solid transparent; padding:0 0 3px; background:transparent; color:var(--muted); cursor:pointer; font:inherit; letter-spacing:inherit; }.transmission-topic-links button:hover,.transmission-topic-links button:focus,.transmission-topic-links button.is-active { border-bottom-color:currentColor; color:var(--black); outline:0; }.transmission-intro-copy [data-transmission-copy],.transmission-intro-copy [data-transmission-title] { transition:opacity .11s ease; }.transmission-intro-copy [data-transmission-copy].is-swapping,.transmission-intro-copy [data-transmission-title].is-swapping { opacity:.2; }.transmission-intro-copy [data-transmission-title].is-extended { font-size:clamp(44px,4.5vw,68px); }
@keyframes transmission-tape { to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) { .transmission-intro .signal-track { animation:none; } }
@media (max-width:680px) { .transmission-intro { min-height:560px; padding-bottom:45px; }.transmission-intro .signal-window { right:-12px; left:-12px; width:calc(100% + 24px); height:430px; }.transmission-intro::after { inset:0 -12px 0; background:linear-gradient(0deg,#fff 18%,rgba(255,255,255,.84) 43%,rgba(255,255,255,.08) 75%,rgba(255,255,255,0) 100%); }.transmission-intro .signal-post { flex-basis:320px; width:320px; }.transmission-intro-copy { width:100%; min-height:515px; margin-left:0; padding-top:190px; }.transmission-topic-links { margin-top:15px; gap:8px 14px; }.transmission-intro-copy > a { margin-top:28px; } }

/* Transmission is a compact, continuously moving signal feed rather than another hero reel. */
.transmission { min-height:100vh; padding:0; background:#fff; color:var(--black); --line:rgba(13,11,10,.24); --muted:var(--umber); --acid:var(--umber); }
.transmission-intro { position:relative; min-height:100vh; padding:92px 18px 30px; display:grid; grid-template-columns:minmax(260px,340px) minmax(440px,560px); justify-content:center; align-items:center; column-gap:0; overflow:hidden; }
.transmission-intro::after { content:none; }
.transmission-intro .signal-window { position:relative; z-index:2; width:100%; height:min(68vh,650px); overflow:hidden; transform:translateX(clamp(38px,5vw,84px)); background:var(--ebony); border:1px solid rgba(242,238,229,.44); box-shadow:12px 12px 0 rgba(13,11,10,.14); }
.signal-window::before { content:"LIVE SIGNAL / 001"; position:absolute; z-index:2; top:0; left:0; right:0; padding:9px 10px; border-bottom:1px solid rgba(242,238,229,.35); color:var(--ink); background:rgba(13,11,10,.68); font-size:10px; }
.signal-feed { position:absolute; inset:0; overflow-y:auto; overflow-x:hidden; scroll-snap-type:y mandatory; scroll-behavior:smooth; scrollbar-width:none; overscroll-behavior:contain; touch-action:pan-y; }
.signal-feed::-webkit-scrollbar { display:none; }
.signal-feed-run { display:flex; flex-direction:column; height:100%; }
.signal-feed-card { position:relative; display:block; flex:0 0 100%; height:100%; overflow:hidden; background:var(--ebony); scroll-snap-align:start; scroll-snap-stop:always; }
.signal-feed-card img,.signal-feed-card video { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.84) contrast(1.03); }
.signal-feed-card span { position:absolute; z-index:1; left:0; bottom:0; padding:7px 9px; color:var(--ink); background:rgba(13,11,10,.75); font-size:10px; }
.transmission-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.transmission-orbit { position:relative; z-index:4; width:100%; height:min(72vh,680px); min-height:530px; transform:translateX(-18px); }
.transmission-description { position:absolute; z-index:2; top:50%; left:50%; width:min(330px,64%); transform:translate(-50%,-50%); text-align:center; }
.transmission-description p { margin:0; color:var(--black); font-family:"Playfair Display",serif; font-size:clamp(23px,2.05vw,34px); line-height:1.04; letter-spacing:-.035em; white-space:pre-line; }
.transmission-overlay-close { display:none; }
.transmission-apply,.transmission-conclave-action,.transmission-capsule-action,.transmission-objects-action { display:inline-block; margin-top:20px; padding:0 0 3px; border:0; border-bottom:1px solid currentColor; border-radius:0; background:transparent; color:var(--black); font-family:"DM Mono",monospace; font-size:12px; font-style:normal; font-weight:400; line-height:normal; letter-spacing:normal; text-decoration:none; text-transform:none; }
.transmission-apply[hidden],.transmission-conclave-action[hidden],.transmission-capsule-action[hidden],.transmission-objects-action[hidden] { display:none!important; }
.transmission-apply:hover,.transmission-apply:focus,.transmission-conclave-action:hover,.transmission-conclave-action:focus,.transmission-capsule-action:hover,.transmission-capsule-action:focus,.transmission-objects-action:hover,.transmission-objects-action:focus { color:var(--umber); }
.transmission-objects-action { margin-left:0; }
.transmission-description p.transmission-objects-typing { margin-top:8px; font-family:"DM Mono",monospace; font-size:13px; font-style:normal; font-weight:400; line-height:1.45; letter-spacing:.02em; }
.transmission-description p.is-typing::after { content:"▍"; display:inline-block; margin-left:3px; font-family:"DM Mono",monospace; font-size:.72em; animation:transmission-cursor .72s steps(2,end) infinite; }
.typing-lead { display:block; font-family:"DM Mono",monospace; font-size:.6em; line-height:1.4; letter-spacing:.01em; }
.typing-offer { display:block; margin-top:24px; opacity:0; transition:opacity .35s ease; }
.typing-offer.is-visible { opacity:1; }
@keyframes transmission-cursor { 50% { opacity:0; } }
.transmission-orbit-card { position:absolute; z-index:1; border:0; padding:0; background:transparent; color:var(--black); font-family:"Playfair Display",serif; font-size:clamp(35px,3.45vw,58px); font-weight:500; line-height:.9; letter-spacing:-.055em; text-align:center; white-space:nowrap; cursor:pointer; animation:transmission-title-orbit 80s linear infinite; }
.transmission-orbit-card:nth-of-type(2) { animation-delay:-20s; }.transmission-orbit-card:nth-of-type(3) { animation-delay:-40s; }.transmission-orbit-card:nth-of-type(4) { animation-delay:-60s; }
.transmission-orbit-card:hover,.transmission-orbit-card:focus,.transmission-orbit-card.is-active { color:var(--umber); outline:0; }
@keyframes transmission-title-orbit { 0% { top:2%; left:50%; transform:translate(-50%,0) scale(1); } 25% { top:50%; left:94%; transform:translate(-50%,-50%) scale(.82); } 50% { top:93%; left:50%; transform:translate(-50%,-100%) scale(1); } 75% { top:50%; left:6%; transform:translate(-50%,-50%) scale(.82); } 100% { top:2%; left:50%; transform:translate(-50%,0) scale(1); } }
.transmission-follow { position:absolute; z-index:4; right:18px; bottom:28px; color:var(--black); border-bottom:1px solid currentColor; padding-bottom:3px; }
.transmission--paper { background:#fff; color:var(--black); --line:rgba(13,11,10,.24); --muted:var(--umber); --acid:var(--umber); }
.transmission--paper .transmission-orbit-card,.transmission--paper .transmission-description p { color:var(--black); }
main:has(.transmission) + .site-footer { background:#fff; color:var(--umber); --line:rgba(13,11,10,.24); }main:has(.transmission) + .site-footer a { color:var(--black); }
@media (max-width:800px) { .transmission-intro { min-height:auto; padding:88px 12px 72px; display:flex; flex-direction:column; gap:38px; overflow:visible; }.transmission-intro .signal-window { width:min(64vw,270px); height:56svh; min-height:390px; transform:none; }.transmission-orbit { width:min(100%,530px); height:500px; min-height:0; transform:none; }.transmission-description { width:min(275px,60%); }.transmission-description p { font-size:clamp(21px,5.4vw,29px); }.transmission-orbit-card { font-size:clamp(30px,9.2vw,48px); }.transmission-follow { right:12px; bottom:19px; }.signal-feed-card { height:100%; } }

/* On phones, the Transmission topics run beneath Live Signal as a horizontal sequence. */
@media (max-width:680px) {
  .transmission-intro { gap:16px; padding-bottom:94px; }
  .transmission-orbit { width:100%; height:242px; overflow:hidden; }
  .transmission-description { top:126px; left:50%; width:min(278px,82%); transform:translateX(-50%); }
  .transmission-orbit-card { top:26px!important; left:100%; transform:translateX(0)!important; animation:transmission-title-tape 12s linear infinite; font-size:clamp(18px,5.8vw,23px); letter-spacing:-.035em; }
  .transmission-orbit-card br { display:none; }
  .transmission-orbit-card:nth-of-type(2) { animation-delay:-3s; }
  .transmission-orbit-card:nth-of-type(3) { animation-delay:-6s; }
  .transmission-orbit-card:nth-of-type(4) { animation-delay:-9s; }
}
@keyframes transmission-title-tape { from { left:100%; } to { left:-135%; } }

/* The Conclave stays on Transmission's paper ground; the film appears as a message, not a hero. */
.conclave-page { min-height:100vh; background:#fff; color:var(--black); --line:rgba(13,11,10,.24); }
.conclave-content { min-height:100vh; padding:110px 18px 42px; display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,500px); grid-template-rows:auto 1fr; column-gap:clamp(44px,9vw,150px); row-gap:18px; }
.conclave-page .back { grid-column:1 / -1; align-self:start; color:var(--umber); }
.conclave-heading { grid-column:1 / -1; display:grid; grid-template-columns:100px minmax(0,1fr) minmax(320px,500px); gap:16px; align-items:start; }
.conclave-heading > span { padding-top:11px; color:var(--umber); font-size:11px; text-transform:uppercase; }
.conclave-heading h1 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(60px,10.5vw,150px); font-weight:500; line-height:.82; letter-spacing:-.07em; }
.conclave-title-block { min-width:0; }
.conclave-actions { display:flex; flex-wrap:wrap; gap:8px 15px; margin-top:22px; font-family:"DM Mono",monospace; font-size:11px; text-transform:uppercase; }
.conclave-actions a { padding-bottom:2px; border-bottom:1px solid transparent; color:var(--black); text-decoration:none; }
.conclave-actions a:hover,.conclave-actions a:focus { border-bottom-color:currentColor; color:var(--umber); }
.conclave-chat { align-self:start; width:min(100%,340px); height:min(66vh,650px); overflow-y:auto; padding:8px 12px 8px 0; scrollbar-width:none; font-family:"DM Mono",monospace; font-size:clamp(12px,1.05vw,15px); font-style:italic; line-height:1.45; letter-spacing:-.01em; }
.conclave-chat::-webkit-scrollbar { display:none; }
.conclave-chat p { width:max-content; max-width:88%; margin:0 0 12px; }
.conclave-chat p.is-self { margin-right:auto; text-align:left; }
.conclave-chat p.is-other { margin-left:auto; text-align:right; }
.conclave-chat b { color:var(--umber); font-size:.92em; font-style:normal; font-weight:400; letter-spacing:.02em; }
.conclave-chat a { padding-bottom:2px; border-bottom:1px solid currentColor; color:var(--black); font-style:normal; text-decoration:none; }
.conclave-chat a:hover,.conclave-chat a:focus { color:var(--umber); }
.conclave-chat .conclave-instagram-preview { position:relative; display:block; width:min(100%,216px); margin:8px 0 2px; padding:0; border:0; overflow:hidden; }
.conclave-instagram-preview img { display:block; width:100%; height:232px; object-fit:cover; filter:saturate(.88) contrast(1.03); transition:filter .2s ease,transform .2s ease; }
.conclave-instagram-preview span { position:absolute; right:7px; bottom:7px; padding:5px 6px; background:rgba(255,255,255,.9); color:var(--black); font-family:"DM Mono",monospace; font-size:9px; font-style:normal; letter-spacing:0; white-space:nowrap; }
.conclave-instagram-preview:hover img,.conclave-instagram-preview:focus img { filter:saturate(1) contrast(1.05); transform:scale(1.015); }
.conclave-chat-video { display:block; width:min(100%,340px); max-height:280px; margin:8px 0 2px 0; object-fit:cover; background:var(--ebony); }
main:has(.conclave-page) + .site-footer { background:#fff; color:var(--umber); --line:rgba(13,11,10,.24); }
main:has(.conclave-page) + .site-footer a { color:var(--black); }
@media (max-width:680px) { .conclave-content { min-height:100svh; padding:94px 12px 46px; display:flex; flex-direction:column; gap:0; }.conclave-heading { display:grid; grid-template-columns:1fr; gap:18px; }.conclave-heading > span { padding-top:54px; }.conclave-heading h1 { font-size:clamp(74px,21vw,126px); }.conclave-actions { max-width:310px; margin-top:18px; }.conclave-chat { width:min(100%,310px); height:48svh; margin-top:24px; padding-right:4px; font-size:13px; }.conclave-chat-video { width:min(100%,310px); max-height:230px; } }

/* About and Contact share Transmission's paper ground. */
.about,.contact-page { background:#fff; color:var(--black); --line:rgba(13,11,10,.24); --muted:var(--umber); --acid:var(--umber); }
.about .about-link { border-bottom-color:var(--black); }
.contact-page .contact-form input,.contact-page .contact-form select,.contact-page .contact-form textarea { border-bottom-color:var(--black); color:var(--black); }
.contact-page .contact-form option { background:#fff; color:var(--black); }
.contact-page .contact-form button { border-color:var(--black); background:var(--black); color:#fff; }
.contact-page .contact-form button:hover,.contact-page .contact-form button:focus { background:transparent; color:var(--black); }
.contact-page .contact-note a { color:var(--black); }
main:has(.contact-page) + .site-footer { position:relative; z-index:3; background:#fff; color:var(--umber); --line:rgba(13,11,10,.24); }
main:has(.contact-page) + .site-footer a { color:var(--black); }
body.on-contact .site-footer { position:relative; z-index:10; isolation:isolate; background:#fff; color:var(--umber); --line:rgba(13,11,10,.24); }
body.on-contact .site-footer a { color:var(--black); }
body:has(.about) .site-footer { background:#fff; color:var(--black); --line:rgba(13,11,10,.24); }
body:has(.about) .site-footer a { color:var(--umber); }
html:has(.about),body:has(.about) { background:#fff; }

/* Contact is a single full-bleed moving field: the form is the only copy. */
.contact-page { position:relative; isolation:isolate; display:grid; min-height:100vh; padding:clamp(112px,14vh,170px) 18px 72px; overflow:hidden; background:var(--black); color:#fff; align-items:center; }
.contact-reel { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.contact-thread-reel { display:none; }
.contact-page::before { content:""; position:absolute; z-index:-1; inset:0; background:rgba(13,11,10,.32); pointer-events:none; }
.contact-form-shell { width:min(510px,100%); justify-self:end; padding:clamp(20px,3vw,42px); border:1px solid rgba(255,255,255,.72); background:rgba(13,11,10,.24); backdrop-filter:blur(4px); }
.contact-page .contact-form { display:grid; width:100%; gap:18px; margin:0; }
.contact-page .contact-form label { color:rgba(255,255,255,.86); }
.contact-page .contact-form input,.contact-page .contact-form select,.contact-page .contact-form textarea { border-bottom-color:#fff; color:#fff; }
.contact-page .contact-form input::placeholder,.contact-page .contact-form textarea::placeholder { color:rgba(255,255,255,.67); }
.contact-page .contact-form option { background:var(--black); color:#fff; }
.contact-page .contact-form button { border-color:#fff; background:#fff; color:var(--black); }
.contact-page .contact-form button:hover,.contact-page .contact-form button:focus { background:transparent; color:#fff; }
@media (max-width:680px) { .contact-page { padding:100px 12px 54px; align-items:end; }.contact-form-shell { justify-self:stretch; padding:20px; }.contact-page .contact-form { margin:0; } }

/* Contact follows the case-study scroll: image travels, enquiry stays available. */
body:has(.contact-page) .site-header { color:#fff; mix-blend-mode:normal; }
.contact-page { display:block; min-height:165vh; padding:0 18px; overflow:clip; }
.contact-reel { position:fixed; z-index:0; height:100vh; }
.contact-page::before { z-index:1; background:rgba(13,11,10,.27); }
.contact-form-shell { position:sticky; z-index:2; top:clamp(88px,18vh,170px); left:0; right:auto; width:min(510px,100%); height:min(650px,calc(100svh - clamp(88px,18vh,170px) - 34px)); margin:0 auto 0 0; justify-self:start; padding:clamp(20px,3vw,42px); overflow:hidden; border-color:rgba(255,255,255,.82); background:rgba(225,225,225,.38); backdrop-filter:blur(7px); }
.contact-mobile-chat,.contact-mobile-thread-head,.contact-mobile-message,.contact-mobile-selected { display:none; }
@media (max-width:680px) { .contact-page { min-height:150vh; padding:0 12px; }.contact-form-shell { top:86px; width:100%; height:calc(100svh - 108px); margin-left:0; padding:20px; } }

/* Selecting the call route temporarily turns the enquiry box into Tally. */
.contact-form[hidden],.contact-tally[hidden] { display:none!important; }
.contact-tally { display:grid; width:100%; height:100%; grid-template-rows:auto auto minmax(0,1fr); gap:10px; }
.contact-tally-back { justify-self:start; appearance:none; border:0; border-bottom:1px solid currentColor; padding:0 0 3px; background:transparent; color:#fff; font:inherit; cursor:pointer; }
.contact-tally-back:hover,.contact-tally-back:focus { color:rgba(255,255,255,.68); outline:0; }
.contact-tally-privacy { max-width:48ch; margin:0; color:rgba(255,255,255,.8); font-size:11px; line-height:1.45; }
.contact-tally-privacy a { color:#fff; }
.contact-tally iframe { display:block; width:100%; min-height:0; height:100%; border:0; background:#fff; }
@media (min-width:681px) {
  .contact-form-shell .contact-mobile-thread-body { height:100%; }
  .contact-form-shell .contact-tally { height:100%; }
}

/* About opens as one image-led sentence; the biography begins below the fold. */
.about { padding:0 18px 100px; }
.about-entry { position:relative; min-height:100svh; margin:0 -18px; overflow:hidden; display:grid; place-items:center; }
.about-entry img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 28%; }
.about-entry h1 { position:relative; z-index:1; max-width:960px; margin:0; padding:0 18px; color:var(--black); font-family:"Playfair Display",serif; font-size:clamp(62px,10vw,148px); font-weight:500; line-height:.86; letter-spacing:-.07em; text-align:center; }
.about .about-grid { margin-top:0; padding-top:72px; }
@media (max-width:680px) { .about { padding:0 12px 60px; }.about-entry { min-height:100svh; margin:0 -12px; }.about-entry img { object-position:center top; }.about-entry h1 { padding:0 12px; font-size:clamp(58px,17vw,102px); }.about .about-grid { padding-top:46px; } }

/* About introduction: title first, then portrait and profile after two seconds. */
.about-entry { height:100svh; min-height:0; display:block; transition:height 1.05s cubic-bezier(.22,.8,.22,1); }
.about-entry::after { content:""; position:absolute; inset:0; background:rgba(255,255,255,.12); pointer-events:none; }
.about-entry img { object-fit:cover; background:#fff; transition:top 1.05s cubic-bezier(.22,.8,.22,1), left 1.05s cubic-bezier(.22,.8,.22,1), width 1.05s cubic-bezier(.22,.8,.22,1), height 1.05s cubic-bezier(.22,.8,.22,1), transform 1.05s cubic-bezier(.22,.8,.22,1), object-fit 0s linear 1.05s; }
.about-entry h1 { position:absolute; inset:0; z-index:2; display:grid; place-items:center; transition:opacity .4s ease, transform .7s ease; }
.about-profile { position:absolute; z-index:2; top:58%; left:52%; width:min(500px,39vw); transform:translateY(-50%); opacity:0; pointer-events:none; transition:opacity .55s ease .45s; }
.about-profile h2 { margin:0 0 18px; color:var(--umber); font-size:12px; font-weight:400; text-transform:uppercase; }
.about-profile p { max-width:500px; margin:0 0 18px; font-size:15px; line-height:1.55; }
.about--revealed .about-entry { height:120svh; }
.about--revealed .about-entry img { top:clamp(96px,12vh,150px); right:auto; bottom:auto; left:clamp(18px,7vw,124px); width:min(28vw,360px); height:min(42vw,540px); object-fit:contain; object-position:center; }
.about--revealed .about-entry::after { background:rgba(255,255,255,.04); }
.about--revealed .about-entry h1 { opacity:0; transform:scale(.96); pointer-events:none; }
.about--revealed .about-profile { opacity:1; }
.about .about-grid { position:relative; z-index:1; }
.about--revealed .about-entry { --portrait-left:clamp(18px,7vw,124px); --portrait-top:clamp(96px,12vh,150px); --portrait-width:min(28vw,360px); --portrait-height:min(42vw,540px); }
.about-orbit { position:absolute; z-index:3; top:var(--portrait-top); left:var(--portrait-left); width:var(--portrait-width); height:var(--portrait-height); opacity:0; pointer-events:none; transition:opacity .5s ease .5s; }
.about--revealed .about-orbit { opacity:1; pointer-events:auto; }
.about-orbit button { position:absolute; border:0; padding:0; background:transparent; color:var(--black); font-family:"Playfair Display",serif; font-size:clamp(23px,2.05vw,34px); font-weight:500; line-height:.92; letter-spacing:-.055em; white-space:nowrap; cursor:pointer; transition:left 1.2s cubic-bezier(.22,.8,.22,1), top 1.2s cubic-bezier(.22,.8,.22,1), transform 1.2s cubic-bezier(.22,.8,.22,1), color .25s ease; }
.about-orbit button:hover,.about-orbit button:focus,.about-orbit button.is-bottom { color:var(--umber); outline:0; }
.about-orbit button.is-bottom { left:50%; top:104%; transform:translate(-50%,-50%) scale(1.08); }
.about-orbit button.is-upper-left { left:5%; top:13%; transform:translate(-50%,-50%) scale(.82); }
.about-orbit button.is-upper-right { left:114%; top:60%; transform:translate(-50%,-50%) scale(.86); }
.about-orbit-copy { position:absolute; z-index:3; top:calc(var(--portrait-top) + var(--portrait-height) + 56px); left:var(--portrait-left); width:var(--portrait-width); margin:0; opacity:0; color:var(--black); font-size:14px; line-height:1.25; text-align:center; transition:opacity .5s ease .65s; }
.about--revealed .about-orbit-copy { opacity:1; }

/* The authorial information is one compact, scrollable sequence. */
.about-info-scroll { position:absolute; z-index:2; top:calc(var(--portrait-top) + 48px); left:52%; width:min(500px,39vw); height:calc(var(--portrait-height) + 104px); overflow-y:auto; padding-right:12px; color:var(--black); opacity:0; pointer-events:none; scrollbar-width:none; -ms-overflow-style:none; scroll-behavior:auto; overscroll-behavior:auto; transition:opacity .55s ease .45s; }
.about-info-scroll::-webkit-scrollbar { display:none; }
.about-info-panel { min-height:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; padding:0 8px 12px 0; box-sizing:border-box; }
.about-info-panel h2 { margin:0 0 18px; color:var(--umber); font-size:12px; font-weight:400; letter-spacing:.02em; }
.about-info-panel p { max-width:500px; margin:0 0 14px; font-size:15px; line-height:1.55; }
.about--revealed .about-info-scroll { opacity:1; pointer-events:auto; }
@media (max-width:680px) { .about-info-scroll { top:calc(var(--portrait-top) + var(--portrait-height) + 111px); left:12px; width:calc(100% - 24px); height:50svh; padding-right:8px; }.about-info-panel p { font-size:13px; margin-bottom:12px; }.about-orbit-copy { top:calc(var(--portrait-top) + var(--portrait-height) + 45px); font-size:10px; line-height:1.25; } }

/* Tighter exit from the About composition into the footer. */
.about { padding-bottom:28px; }
@media (min-width:681px) { .about--revealed .about-entry { height:106svh; } }

@media (max-width:680px) { .about-entry { height:100svh; }.about:not(.about--revealed) .about-entry img { transform:scale(1.8); object-position:center 44%; }.about-profile { top:auto; right:12px; bottom:40px; left:12px; width:auto; transform:none; }.about-profile p { font-size:13px; margin-bottom:12px; }.about--revealed .about-entry { --portrait-left:12px; --portrait-top:78px; --portrait-width:48vw; --portrait-height:72vw; height:120svh; }.about--revealed .about-entry img { top:var(--portrait-top); right:auto; bottom:auto; left:var(--portrait-left); width:var(--portrait-width); height:var(--portrait-height); object-fit:contain; object-position:center; transform:none; }.about--revealed .about-profile { opacity:1; }.about-orbit button { font-size:clamp(16px,4.4vw,22px); }.about-orbit button.is-upper-left { left:0; top:-28%; }.about-orbit button.is-upper-right { left:126%; top:42%; }.about-orbit-copy { top:calc(var(--portrait-top) + var(--portrait-height) + 60px); font-size:11px; } }
@media (max-width:680px) { .about--revealed.about--info-expanded .about-entry { --portrait-width:22vw; --portrait-height:33vw; }.about--revealed.about--info-expanded .about-entry img { transition-duration:.35s; }.about--revealed.about--info-expanded .about-info-scroll { height:72svh; transition:top .35s cubic-bezier(.22,.8,.22,1),height .35s cubic-bezier(.22,.8,.22,1),opacity .35s ease .2s; } }
@media (max-width:680px) { .about--revealed.about--info-expanded.about--image-hovered .about-entry { --portrait-width:48vw; --portrait-height:72vw; }.about--revealed.about--info-expanded.about--image-hovered .about-info-scroll { height:50svh; } }
@media (max-width:680px) { .about--revealed .about-entry { --portrait-left:50%; }.about--revealed .about-entry img,.about--revealed .about-orbit,.about--revealed .about-orbit-copy { transform:translateX(-50%); } }
@media (max-width:680px) { .about-orbit button.is-upper-left { left:8%; top:0; }.about-orbit button.is-upper-right { left:108%; top:54%; }.about-orbit button.is-bottom { top:104%; } }
@media (max-width:680px) { .about-orbit-copy { top:calc(var(--portrait-top) + var(--portrait-height) + 36px); left:50%; width:min(84vw,420px); } }

/* Cartina Film 02 has its own crop so every film remains full-bleed. */
.cartina-bg video[data-film] { --film-crop:2.9; }

/* Home: fixed typography over a moving full-bleed signal. */
.home { min-height:0; height:120vh; overflow:visible; }
.home-background { position:sticky; top:0; height:100vh; overflow:hidden; background:var(--umber); }
.home-background .frame,.home-background .home-reel,.home-background .home-mobile-reel { position:absolute; inset:0; width:100%; height:100%; }
.home-background .frame { background-position:center calc(50% + var(--home-scroll,0%)); }
.home-background .home-reel { object-position:center calc(50% + var(--home-scroll,0%)); }
.home-background .home-mobile-reel { object-position:center calc(50% + var(--home-scroll,0%)); }
.home-copy { position:sticky; top:0; z-index:2; box-sizing:border-box; min-height:100vh; height:100vh; margin-top:-100vh; justify-content:flex-start; pointer-events:none; }
.home h1 { margin-top:28vh; }
.home h1 { transition:margin .55s cubic-bezier(.22,.8,.22,1),text-align .55s ease; }
@media (max-width:680px) {
.home:has(.home-dm.is-open[aria-hidden="false"]) .home-copy h1 { margin:auto 6vw 10vh auto; text-align:right; }
.home:has(.home-dm.is-open[aria-hidden="false"]) .home-copy h1 em { margin-left:0; }
}

/* A private-message arrival, rather than a conventional landing prompt. */
.home-dm { position:fixed; z-index:20; inset:0; display:grid; place-items:center; padding:18px; background:rgba(242,238,229,.32); backdrop-filter:blur(9px); opacity:0; pointer-events:none; transition:opacity .42s ease; }
.home-dm.is-open { opacity:1; pointer-events:auto; }
.home-dm-window { width:min(620px,100%); max-height:min(680px,calc(100svh - 36px)); overflow:auto; padding:22px; color:var(--black); background:rgba(248,247,244,.94); border:1px solid rgba(40,30,26,.16); box-shadow:0 28px 90px rgba(13,11,10,.28); }
.home-dm-window header { display:flex; align-items:center; gap:12px; padding-bottom:16px; border-bottom:1px solid rgba(40,30,26,.12); }
.home-dm-avatar { display:grid; flex:0 0 42px; width:42px; height:42px; place-items:center; border-radius:50%; background:var(--bone); font-family:"Playfair Display",serif; font-size:20px; }
.home-dm-window header b { display:block; font-size:16px; font-weight:500; }
.home-dm-window header small { display:flex; align-items:center; gap:6px; margin-top:2px; color:#6f6d69; font-size:11px; }
.home-dm-window header small i { display:block; width:7px; height:7px; border-radius:50%; background:#12853c; }
.home-dm-window header button { margin-left:auto; appearance:none; border:0; padding:2px 6px; color:#777; background:transparent; font-size:30px; line-height:1; cursor:pointer; }
.home-dm-messages { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding-top:22px; }
.home-dm-bubble,.home-dm-guide,.home-dm-enter { margin:0; opacity:0; transform:translateY(8px); transition:opacity .35s ease,transform .35s ease; }
.home-dm-bubble.is-visible,.home-dm-guide.is-visible,.home-dm-enter.is-visible { opacity:1; transform:translateY(0); }
.home-dm-bubble { max-width:78%; padding:14px 16px; border-radius:17px 17px 17px 4px; background:#efeeeb; font-size:clamp(18px,2vw,24px); line-height:1.3; }
.home-dm-guide { display:grid; gap:4px; padding:13px 16px; border-radius:17px 17px 17px 4px; background:#efeeeb; }
.home-dm-guide a { color:inherit; border:0; padding:4px 0; font-size:clamp(16px,1.7vw,20px); line-height:1.35; text-decoration:none; }
.home-dm-guide a:hover,.home-dm-guide a:focus { color:var(--umber); }
.home-dm-enter { align-self:flex-end; appearance:none; border:0; padding:12px 16px; color:var(--ink); background:var(--ebony); font:inherit; cursor:pointer; }
.home-dm-enter:hover,.home-dm-enter:focus { color:var(--black); background:var(--ink); }
@media (max-width:680px) { .home-dm { padding:12px; align-items:end; }.home-dm-window { max-height:calc(100svh - 24px); padding:16px; }.home-dm-bubble { max-width:92%; font-size:18px; }.home-dm-guide a { font-size:16px; } }

/* The home message arrives as a light private signal, not as a white modal. */
.home-dm { align-items:end; justify-items:end; padding:28px; background:transparent; backdrop-filter:none; }
.home-dm-window { width:min(500px,100%); max-height:calc(100svh - 56px); padding:0; color:var(--ink); background:transparent; border:0; box-shadow:none; overflow:auto; }
.home-dm-window header { padding:0 4px 10px; color:var(--ink); border:0; text-shadow:0 1px 12px rgba(13,11,10,.35); }
.home-dm-avatar { background:rgba(242,238,229,.46); backdrop-filter:blur(12px); }
.home-dm-window header small { color:var(--ink); }
.home-dm-window header button { color:var(--ink); text-shadow:0 1px 12px rgba(13,11,10,.38); }
.home-dm-messages { padding-top:6px; }
.home-dm-bubble,.home-dm-guide { background:rgba(242,238,229,.58); box-shadow:0 12px 36px rgba(13,11,10,.18); backdrop-filter:blur(14px) saturate(.9); }
.home-dm-enter { background:rgba(13,11,10,.58); box-shadow:0 12px 36px rgba(13,11,10,.18); backdrop-filter:blur(14px); }
@media (max-width:680px) { .home-dm { padding:14px 12px; }.home-dm-window { width:min(100%,440px); }.home-dm-window header { padding-left:2px; } }

.home-dm-window { width:min(360px,calc(100vw - 56px)); color:#ece9e2; }
.home-dm-window header { color:#ece9e2; font-size:12px; }
.home-dm-window header b { font-size:14px; }
.home-dm-window header small,.home-dm-window header button { color:rgba(236,233,226,.78); }
.home-dm-avatar { width:34px; height:34px; flex-basis:34px; color:#ece9e2; background:rgba(58,55,52,.56); font-size:16px; }
.home-dm-messages { gap:8px; }
.home-dm-bubble { max-width:88%; padding:10px 12px; color:#ece9e2; background:rgba(57,54,51,.66); font-size:15px; line-height:1.34; box-shadow:0 10px 28px rgba(13,11,10,.22); backdrop-filter:blur(16px) saturate(.82); }
.home-dm-guide { gap:2px; padding:9px 12px; color:#ece9e2; background:rgba(57,54,51,.66); box-shadow:0 10px 28px rgba(13,11,10,.22); backdrop-filter:blur(16px) saturate(.82); }
.home-dm-guide a { color:#ece9e2; padding:3px 0; font-size:14px; }
.home-dm-guide a { display:flex; align-items:flex-start; gap:7px; }
.home-dm-guide a i { flex:0 0 14px; color:var(--skin); font-size:14px; font-style:normal; line-height:1.1; text-align:center; }
.home-dm-guide a span { display:block; }
.home-dm-guide a:hover,.home-dm-guide a:focus { color:#fff; }
.home-dm-enter { padding:9px 12px; color:#ece9e2; background:rgba(35,33,31,.68); font-size:14px; }
@media (max-width:680px) { .home-dm-window { width:min(290px,calc(100vw - 28px)); }.home-dm-bubble { font-size:13px; }.home-dm-guide a { font-size:12px; } }

.home-dm-window { width:min(280px,calc(100vw - 56px)); }
.home-dm-window header { padding-bottom:7px; }
.home-dm-bubble { padding:8px 10px; font-size:13px; }
.home-dm-guide { padding:7px 10px; }
.home-dm-guide a { font-size:12px; }
.home-dm-enter { padding:8px 10px; font-size:12px; }
.home-dm.is-open { pointer-events:none; }
.home-dm.is-open .home-dm-window { pointer-events:auto; }

/* Mobile primary navigation: a compact, tactile dock separate from desktop navigation. */
@media (max-width:680px) {
  body { padding-bottom:84px; }
  .mobile-dock { position:fixed; z-index:50; right:10px; bottom:max(10px,env(safe-area-inset-bottom)); left:10px; display:grid; grid-template-columns:repeat(4,1fr); gap:3px; padding:5px; border:1px solid rgba(242,238,229,.25); border-radius:18px; background:rgba(13,11,10,.9); box-shadow:0 10px 30px rgba(0,0,0,.28); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
  .mobile-dock a { display:flex; min-height:54px; flex-direction:column; align-items:center; justify-content:center; gap:3px; border-radius:13px; color:rgba(242,238,229,.58); font-size:9px; letter-spacing:.01em; text-align:center; }
  .mobile-dock i { height:17px; color:var(--skin); font-size:20px; font-style:normal; line-height:17px; }
  .mobile-dock a[data-mobile-nav-route="studio"] i,.mobile-dock a[data-mobile-nav-route="about"] i { font-size:23px; transform:translateY(-1px); }
  .mobile-dock a.is-active { color:var(--ink); background:rgba(242,238,229,.16); }
  .mobile-dock a.is-active i { color:var(--ink); }
  main:has(.case-cantico) ~ .mobile-dock { background:var(--black); backdrop-filter:none; -webkit-backdrop-filter:none; }
}

/* On a phone the wordmark stays alone above the content; the full menu lives in the dock. */
@media (max-width:680px) {
  .site-header { z-index:60; height:56px; padding:0 14px; mix-blend-mode:normal; color:var(--ink); }
  .site-header nav { display:none; }
  .wordmark { font-size:11px; color:inherit; }
  .on-home .site-header { color:#fff; }
  body:has(.transmission) .site-header,body:has(.about) .site-header,body:has(.conclave-page) .site-header { color:var(--black); }
  body:has(.studio-tape-page) .site-header { display:flex; color:var(--ink); }
  .studio-mobile-heading { top:56px; min-height:48px; }
  .studio-mobile-home { display:none; }
  .home-kicker { appearance:none; border:0; padding:0; color:var(--acid); background:transparent; font:inherit; text-align:left; text-transform:uppercase; }
  .home-dm-notification { position:absolute; z-index:40; top:110px; left:18px; display:flex; align-items:center; gap:8px; min-height:26px; opacity:0; transform:translateY(-4px); transition:opacity .28s ease,transform .28s ease; cursor:pointer; pointer-events:auto; }
  .home-dm-notification[hidden] { display:none!important; }
  .home-dm-notification.is-visible { opacity:1; transform:translateY(0); }
  .home-dm-notification::before { content:'●'; color:#fff; font-size:11px; animation:home-notification-pulse 1.85s ease-in-out infinite; }
  .home-dm-notification span { color:#fff; font-size:10px; letter-spacing:.04em; }
  .home-dm-notification b { color:#e5d0c1; font-size:9px; font-weight:400; letter-spacing:.02em; }
  .home-dm { align-items:start; justify-items:stretch; padding:68px 12px 94px; }
  .home-dm { justify-items:start; }
  .home-dm-window { width:min(254px,calc(100vw - 28px)); max-height:calc(100svh - 162px); }
  .home-dm.is-open,.home-dm.is-open .home-dm-window,.home-dm.is-open .home-dm-window * { pointer-events:auto; }
  .home-reel { display:none; }
  .home-mobile-reel { display:block; }
  .home-mobile-reel.is-playing { opacity:1; }
  .home-mobile-reel.is-active { z-index:2; }
}

/* Mobile Conclave: its entry, title and live chat share the first screen. */
@media (max-width:680px) {
  .conclave-content { min-height:calc(100svh - 58px); padding:66px 12px 12px; }
  .conclave-page .back { position:relative; z-index:8; display:inline-flex; width:max-content; padding:8px 0; touch-action:manipulation; }
  .conclave-heading { gap:8px; }
  .conclave-heading > span { display:none; }
  .conclave-title-block { transform:translate(18px,12px); }
  .conclave-heading h1 { font-size:clamp(60px,18vw,88px); line-height:.84; }
  .conclave-actions { margin-top:12px; }
  .conclave-chat { justify-self:end; align-self:start; width:min(88%,278px); height:42svh; margin-top:22px; margin-right:12px; margin-left:auto; padding-right:4px; font-size:12px; }
  .conclave-chat-video { width:min(100%,278px); max-height:180px; }
}

/* Contact on phones is a compact social inbox: choose a conversation before opening the form. */
@media (max-width:680px) {
  body:has(.contact-page) .site-header { color:var(--ink); }
  .contact-page { min-height:calc(100svh + 60px); padding:66px 12px 36px; overflow:visible; background:var(--black); color:var(--ink); }
  .contact-page::before,.contact-reel { display:none; }
  .contact-mobile-chat { position:sticky; top:66px; display:grid; grid-template-rows:auto auto minmax(0,1fr); width:100%; max-width:540px; height:calc(100svh - 158px); margin:0 auto; padding:13px 15px 18px; overflow:hidden; border:1px solid rgba(255,255,255,.7); border-radius:29px; background:rgba(255,250,251,.93); box-shadow:0 16px 42px rgba(0,0,0,.24); }
  .contact-mobile-chat header { display:grid; grid-template-columns:32px 1fr 32px; align-items:center; min-height:43px; text-align:center; }
  .contact-mobile-chat header a,.contact-mobile-chat header span { display:grid; width:32px; height:32px; place-items:center; color:var(--black); font-size:28px; line-height:1; }
  .contact-mobile-chat header strong { font-size:13px; letter-spacing:.27em; transform:translateX(.13em); }
  .contact-mobile-search { display:flex; align-items:center; gap:8px; height:42px; margin:7px 0 12px; padding:0 14px; border-radius:999px; background:rgba(35,30,31,.08); color:rgba(13,11,10,.72); }
  .contact-mobile-search span { font-size:25px; line-height:1; transform:translateY(-1px); }
  .contact-mobile-search input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:var(--black); font:inherit; font-size:11px; }
  .contact-mobile-search input::placeholder { color:rgba(13,11,10,.48); }
  .contact-mobile-rows { display:grid; min-height:0; overflow-y:auto; overscroll-behavior:auto; scrollbar-width:none; -ms-overflow-style:none; }
  .contact-mobile-rows::-webkit-scrollbar { display:none; }
  .contact-mobile-row { position:relative; display:grid; grid-template-columns:64px minmax(0,1fr) auto 18px; align-items:center; gap:11px; min-height:75px; width:100%; padding:7px 0; border:0; border-top:1px solid rgba(13,11,10,.1); background:transparent; color:var(--black); text-align:left; cursor:pointer; }
  .contact-mobile-row:first-child { border-top:0; }
  .contact-mobile-row[hidden] { display:none; }
  .contact-mobile-row img { display:block; grid-row:1; width:64px; height:64px; border-radius:15px; object-fit:cover; background:#d8c6cf; }
  .contact-mobile-row-copy { display:grid; gap:3px; min-width:0; }
  .contact-mobile-row-copy strong { font-family:Arial,sans-serif; font-size:15px; font-weight:700; line-height:.98; letter-spacing:-.045em; }
  .contact-mobile-row-copy small { font-family:Arial,sans-serif; font-size:12px; line-height:1.1; letter-spacing:-.025em; }
  .contact-mobile-row-dot { width:8px; height:8px; border-radius:50%; background:var(--clay); box-shadow:0 0 0 3px rgba(182,136,120,.14); }
  .contact-mobile-row b { font-family:Arial,sans-serif; font-size:30px; font-weight:400; line-height:1; }
  .contact-mobile-row:hover .contact-mobile-row-copy strong,.contact-mobile-row:focus-visible .contact-mobile-row-copy strong { color:var(--clay); }
  .contact-mobile-row:focus-visible { outline:2px solid var(--clay); outline-offset:-2px; }
  .contact-form-shell { position:static; width:100%; height:auto; min-height:0; margin:0; padding:17px 16px 20px; overflow:visible; border:1px solid rgba(242,238,229,.26); border-radius:29px; background:rgba(27,22,20,.94); color:var(--ink); box-shadow:0 16px 42px rgba(0,0,0,.3); backdrop-filter:blur(12px); }
  .contact-page:not(.contact-mobile-form-open) .contact-form-shell { display:none; }
  .contact-page.contact-mobile-form-open { min-height:100svh; }
  .contact-page.contact-mobile-form-open .contact-mobile-chat { display:none; }
  .contact-page .contact-form { gap:14px; }
  .contact-page .contact-form label { color:var(--skin); font-size:10px; }
  .contact-page .contact-form input,.contact-page .contact-form select,.contact-page .contact-form textarea { border-bottom-color:rgba(242,238,229,.5); color:var(--ink); font-size:13px; }
  .contact-page .contact-form textarea { min-height:98px; }
  .contact-page .contact-form > label:first-of-type { display:none; }
  .contact-mobile-form-back { display:inline-block!important; padding:0 0 3px!important; border:0!important; border-bottom:1px solid currentColor!important; border-radius:0!important; background:transparent!important; color:var(--skin)!important; font-size:11px!important; }
  .contact-mobile-selected { margin:3px 0 6px; color:var(--ink); font-family:Arial,sans-serif; font-size:22px; font-weight:700; letter-spacing:-.05em; line-height:1; }
  .contact-page .contact-form button[type="submit"] { margin-top:2px; border-radius:999px; padding:11px 15px; }
  .contact-privacy-note { margin:0; color:var(--skin); font-size:9px; line-height:1.45; }
  .contact-tally { min-height:calc(100svh - 178px); grid-template-rows:auto auto minmax(470px,1fr); color:var(--ink); }
  .contact-tally-back { color:var(--skin); }
  .contact-tally-privacy { color:var(--skin); }
  .contact-tally-privacy a { color:var(--ink); }

  /* A selected reason becomes a direct-message thread over the Contact reel. */
  body:has(.contact-page.contact-mobile-form-open) .site-header { display:flex; }
  body:has(.contact-page.contact-mobile-form-open) .mobile-dock { display:grid; }
  .contact-page.contact-mobile-form-open { min-height:calc(100svh + 60px); padding:66px 12px 36px; isolation:isolate; }
  .contact-page.contact-mobile-form-open .contact-reel { display:none; }
  .contact-page.contact-mobile-form-open::before { display:none; }
  .contact-page.contact-mobile-form-open .contact-form-shell { position:sticky; z-index:61; top:76px; isolation:isolate; align-self:start; display:grid; grid-template-rows:auto minmax(0,1fr); width:min(calc(100vw - 24px),540px); max-width:none; height:calc(100svh - 180px); min-height:0; margin:0 auto; padding:8px 12px 14px; overflow:hidden; border:1px solid rgba(255,255,255,.62); border-radius:25px; background:rgba(249,245,246,.3); box-shadow:0 18px 45px rgba(0,0,0,.28); color:var(--black); backdrop-filter:blur(4px); scrollbar-width:none; }
  .contact-page.contact-mobile-form-open .contact-form-shell::-webkit-scrollbar { display:none; }
  .contact-thread-reel { display:block; position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; border-radius:inherit; }
  .contact-page.contact-mobile-form-open .contact-form-shell::before { content:""; position:absolute; z-index:-1; inset:0; border-radius:inherit; background:linear-gradient(180deg,rgba(255,249,250,.34),rgba(255,249,250,.64)); pointer-events:none; }
  .contact-mobile-thread-head { display:grid; grid-template-columns:32px 48px minmax(0,1fr) 34px; align-items:center; gap:8px; min-height:61px; color:var(--black); }
  .contact-mobile-thread-body { min-height:0; overflow-y:auto; overscroll-behavior:auto; scrollbar-width:none; }
  .contact-mobile-thread-body::-webkit-scrollbar { display:none; }
  .contact-mobile-thread-head button { position:relative; z-index:3; width:32px; height:32px; border:0; background:transparent; color:var(--black); font-size:28px; line-height:1; cursor:pointer; pointer-events:auto; }
  .contact-mobile-thread-head img { width:46px; height:46px; border-radius:11px; object-fit:cover; background:rgba(255,255,255,.75); }
  .contact-mobile-thread-head span { display:grid; gap:2px; min-width:0; }
  .contact-mobile-thread-head strong { font-family:Arial,sans-serif; font-size:14px; line-height:.98; letter-spacing:-.04em; }
  .contact-mobile-thread-head small { font-family:Arial,sans-serif; font-size:11px; animation:contact-online-pulse 2.8s ease-in-out infinite; }
  .contact-mobile-thread-head i { font-family:Arial,sans-serif; font-size:17px; font-style:normal; letter-spacing:1px; }
  .contact-mobile-message { display:block; max-width:calc(100% - 25px); margin:10px 0 12px 47px; padding:13px 14px; border-radius:18px 18px 18px 4px; background:rgba(239,235,237,.32); box-shadow:inset 0 1px rgba(255,255,255,.4); backdrop-filter:blur(10px); color:var(--black); font-family:Arial,sans-serif; font-size:13px; line-height:1.25; }
  .contact-page.contact-mobile-form-open .contact-form { gap:7px; padding:9px 10px; border:1px solid rgba(255,255,255,.48); border-radius:17px; background:rgba(249,245,246,.62); box-shadow:0 8px 22px rgba(13,11,10,.12); color:var(--black); opacity:0; transform:translateY(8px); pointer-events:none; transition:opacity .35s ease,transform .35s ease; }
  .contact-page.contact-mobile-form-ready .contact-form { opacity:1; transform:translateY(0); pointer-events:auto; }
  .contact-page.contact-mobile-form-open .contact-form label { gap:3px; color:var(--black); font-family:Arial,sans-serif; font-size:9px; font-weight:700; }
  .contact-page.contact-mobile-form-open .contact-form input,.contact-page.contact-mobile-form-open .contact-form textarea { min-height:28px; padding:5px 8px; border:1px solid rgba(13,11,10,.18); border-radius:9px; background:rgba(255,255,255,.9); color:var(--black); font-family:Arial,sans-serif; font-size:11px; }
  .contact-page.contact-mobile-form-open .contact-form textarea { min-height:47px; }
  .contact-page.contact-mobile-form-open .contact-form button[type="submit"] { width:100%; min-height:31px; justify-self:stretch; padding:7px 12px; border:0; background:var(--black); color:var(--ink); font-size:11px; }
  .contact-page.contact-mobile-form-open .contact-mobile-selected { display:none; }
  .contact-page.contact-mobile-form-open .contact-privacy-note { margin:0; color:rgba(13,11,10,.66); font-size:8px; line-height:1.25; }
  .contact-page.contact-mobile-form-open .contact-form label.has-contact-validation { position:relative; z-index:4; }
  .contact-mobile-validation { position:absolute; z-index:8; top:calc(100% + 5px); left:2px; max-width:calc(100% - 4px); padding:6px 8px; border:1px solid rgba(13,11,10,.16); border-radius:7px; background:rgba(255,253,253,.96); box-shadow:0 4px 12px rgba(13,11,10,.18); color:var(--black); font-family:Arial,sans-serif; font-size:9px; font-weight:500; line-height:1.2; white-space:nowrap; pointer-events:none; animation:contact-validation-in .16s cubic-bezier(.2,.8,.2,1) both; }
  .contact-mobile-validation::before { content:""; position:absolute; top:-5px; left:13px; width:8px; height:8px; border-top:1px solid rgba(13,11,10,.16); border-left:1px solid rgba(13,11,10,.16); background:rgba(255,253,253,.96); transform:rotate(45deg); }
  @keyframes contact-validation-in { from { opacity:0; transform:translateY(-3px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
  @keyframes contact-online-pulse { 0%,100% { opacity:.4; } 50% { opacity:1; } }
  .contact-mobile-composer { display:none; }
  .contact-mobile-composer span { font-family:Arial,sans-serif; font-size:24px; line-height:1; }
  .contact-mobile-composer input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:var(--black); font-family:Arial,sans-serif; font-size:12px; }
  .contact-mobile-composer i { font-family:Arial,sans-serif; font-size:17px; font-style:normal; }
  .contact-page.contact-mobile-form-open .contact-tally { opacity:0; pointer-events:none; transition:opacity .35s ease; }
  .contact-page.contact-mobile-form-ready .contact-tally { opacity:1; pointer-events:auto; }
}

/* Explore project viewer — opened by tapping an archive image on mobile. */
@media (max-width:680px) {
  /* Every Studio case study keeps its copy fixed while the full-bleed visual travels beneath it. */
  .cartina-case { height:125svh; overflow:visible; }
  .cartina-bg,.cartina-content { height:125svh; }
  .case-immersive { height:125svh; overflow:visible; }
  .case-immersive .case-background { height:125svh; }
  .case-immersive .case-content { position:sticky; top:0; height:100svh; }
  .case-stigmatality { height:125svh; overflow:visible; }
  .case-stigmatality .case-background { height:125svh; }
  .case-stigmatality .case-content { position:sticky; top:0; height:100svh; padding-top:66px; justify-content:flex-start; }
  .case-stigmatality .case-heading { margin-top:27svh; }
  .case-ai-visual-studies { height:125svh; overflow:visible; }
  .case-ai-visual-studies .case-background { height:125svh; }
  .case-ai-visual-studies .case-content { position:sticky; top:0; height:100svh; }
  .case-poster-girl-objectified,.case-pax-bellum { height:125svh; }
  .case-poster-girl-objectified .case-background,.case-pax-bellum .case-background { height:125svh; }
  .case-poster-girl-objectified .case-content,.case-pax-bellum .case-content { height:100svh; }
  .case-poster-girl-objectified .case-background video,.case-pax-bellum .case-background video { object-fit:cover; object-position:50% 50%; transform:none; }
  .case-hydrasite .case-background { background-size:auto 118%; }
  .case-cantico .case-background,
  .case-cantico .case-background video { position:absolute; height:125svh; }
  .case-cantico .case-content { justify-content:flex-start; }
  .case-cantico .case-heading { margin-top:40svh; }
  .case-ai-visual-studies .case-content { justify-content:flex-start; }
  .case-ai-visual-studies .case-heading { margin-top:47svh; }
  .case-poster-girl-objectified .case-content { justify-content:flex-start; }
  .case-poster-girl-objectified .case-heading { margin-top:40svh; }
  .case-curators-prj-pps .case-content { justify-content:flex-start; }
  .case-curators-prj-pps .case-heading { margin-top:27svh; }
  .cartina-bg video,.cartina-bg video[data-film="0"],.cartina-bg video[data-film="1"],.cartina-bg video[data-film="2"] { --film-crop:1.22; object-fit:cover!important; }
  .case-archive .archive-head,.cartina-archive .archive-head { position:sticky; z-index:8; top:0; margin:0 -14px; padding:12px 14px; background:rgba(43,29,24,.98); }
  .archive-lightbox { position:fixed; z-index:120; inset:0; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(13,11,10,.94); }
  .archive-lightbox-dialog { position:relative; display:flex; width:100%; height:100%; align-items:center; justify-content:center; touch-action:pan-y; }
  .archive-lightbox figure { display:flex; width:100%; height:100%; margin:0; flex-direction:column; align-items:center; justify-content:center; }
  .archive-lightbox img { display:block; max-width:100%; max-height:calc(100% - 54px); object-fit:contain; }
  .archive-lightbox figcaption { margin-top:10px; color:var(--ink); font-size:11px; }
  .lightbox-close,.lightbox-arrow { position:absolute; z-index:1; appearance:none; border:1px solid rgba(242,238,229,.52); color:var(--ink); background:rgba(13,11,10,.72); font-family:"DM Mono",monospace; cursor:pointer; }
  .lightbox-close { top:max(8px,env(safe-area-inset-top)); left:max(8px,env(safe-area-inset-left)); padding:8px 10px; font-size:11px; }
  .archive-lightbox .lightbox-arrow { display:none; }
  .lightbox-arrow { top:50%; width:42px; height:42px; transform:translateY(-50%); font-size:24px; }
  .lightbox-prev { left:0; }.lightbox-next { right:0; }
  .lightbox-close:focus,.lightbox-arrow:focus { outline:1px solid var(--ink); outline-offset:3px; }
}

/* Mobile project headers share The Conclave's compact opening rhythm. */
@media (max-width:680px) {
  .case-content,.cartina-lead { padding:66px 12px 18px; }
  .case-content .back,.cartina-lead .back { padding:8px 0; }
  .case-heading,.cartina-heading { gap:8px; margin-top:22px; }
  .case-heading h1,.cartina-heading h1 { font-size:clamp(37px,12.5vw,56px); line-height:.84; }
  .case-heading p,.cartina-heading p { margin-top:4px; }
  .case-statement,.cartina-statement { margin-top:24px; }
  .case-actions,.cartina-actions { margin-top:auto; }
  .case-stigmatality .case-heading h1 { font-size:clamp(37px,12.5vw,56px); }
  .case-actions .archive-toggle,.cartina-actions .archive-toggle,.case-heading .archive-toggle,.cartina-heading .archive-toggle { display:inline-block; justify-self:start; align-self:start; width:max-content; margin-top:12px; padding:0 0 3px; border:0; border-bottom:1px solid currentColor; background:transparent; color:var(--ink); }
}
@keyframes home-notification-pulse { 0%,100% { opacity:.18; transform:scale(.52); } 50% { opacity:1; transform:scale(1.34); } }

/* A single mobile ticker keeps the four Transmission titles evenly spaced. */
@media (max-width:680px) {
  .transmission-orbit { height:84px; overflow:hidden; }
  .transmission-orbit-card { display:none; }
  .transmission-mobile-topic-tape { position:absolute; z-index:3; top:23px; right:0; left:0; display:block; overflow-x:auto; overflow-y:hidden; touch-action:pan-x; scrollbar-width:none; }
  .transmission-mobile-topic-tape::-webkit-scrollbar { display:none; }
  .transmission-mobile-topic-run { display:flex; align-items:center; width:max-content; gap:10px; padding:0 10px 4px 0; animation:transmission-mobile-topic-loop 30s linear infinite; }
  .transmission-mobile-topic-run button { flex:0 0 auto; appearance:none; border:0; padding:0; color:var(--black); background:transparent; font-family:"Playfair Display",serif; font-size:clamp(18px,5.8vw,23px); font-weight:500; letter-spacing:-.035em; line-height:1.18; white-space:nowrap; cursor:pointer; }
  .transmission-mobile-topic-dot { flex:0 0 auto; color:var(--umber); font-family:"DM Mono",monospace; font-size:16px; line-height:1; }
  .transmission-mobile-topic-run button:hover,.transmission-mobile-topic-run button:focus { color:var(--umber); outline:0; }
  .signal-window .transmission-description { position:absolute; z-index:5; top:50%; left:50%; width:min(82%,270px); max-height:calc(100% - 86px); overflow-y:auto; padding:15px; transform:translate(-50%,-50%); color:var(--ink); background:rgba(13,11,10,.70); border:1px solid rgba(242,238,229,.48); box-shadow:0 12px 28px rgba(13,11,10,.22); text-align:center; opacity:0; pointer-events:none; transition:opacity .28s ease; -webkit-backdrop-filter:blur(13px); backdrop-filter:blur(13px); }
  .signal-window.has-topic-overlay .transmission-description { opacity:1; pointer-events:auto; }
  .signal-window .transmission-overlay-close { position:absolute; top:7px; right:8px; display:block; width:24px; height:24px; padding:0; border:0; color:var(--ink); background:transparent; font-family:"DM Mono",monospace; font-size:22px; line-height:1; cursor:pointer; }
  .signal-window .transmission-overlay-close:focus { outline:1px solid var(--ink); outline-offset:2px; }
  .signal-window .transmission-description p { color:var(--ink); font-size:clamp(18px,5vw,22px); line-height:1.07; }
  .signal-window .transmission-description p.transmission-objects-typing { font-size:13px; line-height:1.45; }
  .signal-window .typing-lead { padding-top:12px; }
  .signal-window .transmission-description a { color:var(--ink); }
  .transmission--paper .signal-window .transmission-description p { color:var(--ink); }
}
@keyframes transmission-mobile-topic-loop { to { transform:translateX(calc(-50% - 5px)); } }

/* Explore panels stay unavailable until their explicit trigger is used. */
.cartina-case,.case-immersive { overflow-x:clip; }
