
:root{--ink:#161512;--paper:#f4f0e8;--paper2:#fbfaf7;--accent:#8a5c42;--line:rgba(22,21,18,.18);--max:1500px}*{box-sizing:border-box}html{scroll-behavior:smooth;text-size-adjust:100%;-moz-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;overflow-x:hidden}img{display:block;width:100%;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin:0 0 1rem}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.02;letter-spacing:-.045em;overflow-wrap:break-word}h1{font-size:clamp(3.5rem,10vw,10rem)}h2{font-size:clamp(2.6rem,6.2vw,6.5rem)}h3{font-size:clamp(1.5rem,3vw,3rem)}.italic{font-style:italic}.wrap{width:min(var(--max),calc(100% - 64px));margin-inline:auto}.section{padding:clamp(90px,12vw,190px) 0}.kicker{font-size:.68rem;line-height:1.4;text-transform:uppercase;letter-spacing:.22em;font-weight:700}.lead{font-family:inherit;font-size:1rem;line-height:1.75;max-width:760px;color:inherit}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:999;background:#fff;padding:1rem}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:0 3.2vw;position:fixed;z-index:50;inset:0 0 auto;background:rgba(244,240,232,.9);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand strong{display:block;font-size:.98rem;line-height:1.2;letter-spacing:.1em}.brand span{display:block;font-size:.54rem;letter-spacing:.27em;text-transform:uppercase}.site-header nav{display:flex;align-items:center;gap:clamp(1.2rem,2.3vw,2.7rem);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.nav-cta{border-bottom:1px solid;padding-bottom:.25rem}.menu{display:none;background:none;border:1px solid var(--line);padding:.6rem .8rem}.button{display:inline-flex;align-items:center;gap:.75rem;padding:.9rem 0;border-bottom:1px solid currentColor;font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;font-weight:700}.button:after{content:'↗';font-size:1rem}.mag-hero{min-height:860px;height:100svh;position:relative;background:#1d1b18;color:#fff;overflow:hidden}.mag-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.03)}.mag-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.05) 68%),linear-gradient(0deg,rgba(0,0,0,.35),transparent 45%)}.mag-hero-copy{position:absolute;z-index:2;left:4vw;right:4vw;bottom:6vh;display:grid;grid-template-columns:1.7fr .65fr;gap:6vw;align-items:end}.mag-hero h1{font-size:clamp(4rem,10.4vw,10.8rem);margin:0;max-width:1200px}.mag-hero-aside{max-width:420px;padding-bottom:1.3rem}.mag-hero-aside p{font-size:clamp(1rem,1.35vw,1.25rem)}.issue{position:absolute;z-index:2;top:120px;left:4vw;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase}.vertical-caption{position:absolute;z-index:2;right:1.2vw;top:50%;writing-mode:vertical-rl;transform:translateY(-50%);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase}.editorial-intro{display:grid;grid-template-columns:.55fr 1.45fr;gap:8vw;align-items:start}.editorial-intro .dropcap:first-letter{float:left;font-family:Georgia,serif;font-size:6.2rem;line-height:.75;padding:.18rem .65rem 0 0;color:var(--accent)}.pullquote{margin:clamp(70px,10vw,140px) auto;width:min(1100px,calc(100% - 48px));font-family:Georgia,serif;font-style:italic;font-size:clamp(2.2rem,5.3vw,5.3rem);line-height:1.1;text-align:center}.folio{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:.85rem;margin-top:2rem;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}.spread{display:grid;grid-template-columns:1.35fr .65fr;gap:2.2vw;align-items:start}.spread.reverse{grid-template-columns:.65fr 1.35fr}.spread-media{position:relative;min-height:760px}.spread-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.spread-copy{padding:8vh 2vw 0}.spread-number{font-family:Georgia,serif;font-size:clamp(4rem,9vw,9rem);line-height:.8;color:var(--accent);opacity:.75}.spread-copy h2{font-size:clamp(2.7rem,5.2vw,5.7rem)}.spread-copy p:not(.kicker){max-width:470px}.thumb-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2vw;margin-top:1.2vw}.thumb-strip img{aspect-ratio:1.15;object-fit:cover}.project-index{counter-reset:item;border-top:1px solid var(--line)}.index-row{counter-increment:item;display:grid;grid-template-columns:80px 1.2fr .7fr 130px;gap:2vw;padding:1.4rem 0;border-bottom:1px solid var(--line);align-items:center}.index-row:before{content:counter(item,decimal-leading-zero);font-family:Georgia,serif;font-size:1.5rem}.index-row h3{margin:0;font-size:clamp(1.35rem,2.1vw,2.35rem)}.index-row p{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.index-row .arrow{text-align:right;font-size:1.4rem}.dark{background:var(--ink);color:var(--paper)}.dark .lead{color:#ccc7bd}.stats-mag{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid rgba(255,255,255,.2)}.stat-mag{padding:3.5rem 2rem;border-right:1px solid rgba(255,255,255,.2)}.stat-mag:last-child{border:0}.stat-mag b{display:block;font-family:Georgia,serif;font-size:clamp(3.5rem,7vw,7.5rem);font-weight:400;line-height:.9}.stat-mag span{font-size:.67rem;text-transform:uppercase;letter-spacing:.18em}.page-hero{padding:clamp(170px,18vw,270px) 0 clamp(80px,10vw,150px)}.page-hero h1{max-width:1250px}.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 3rem}.filter{padding:.7rem 1rem;background:none;border:1px solid var(--line);cursor:pointer;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em}.filter.active{background:var(--ink);color:var(--paper)}.portfolio-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:5vw 1.4vw}.portfolio-item{grid-column:span 5;min-height:620px}.portfolio-item:nth-child(4n+2){grid-column:7/span 6;margin-top:10vw}.portfolio-item:nth-child(4n+3){grid-column:2/span 6}.portfolio-item:nth-child(4n){grid-column:9/span 4;margin-top:-3vw}.portfolio-item.wide{grid-column:1/-1;min-height:78vh}.portfolio-item.hidden{display:none}.project-card{position:relative;overflow:hidden;background:#d8d2c9}.project-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .75s ease}.project-card:hover img{transform:scale(1.025)}.project-label{position:absolute;left:0;right:0;bottom:0;padding:7rem 1.5rem 1.4rem;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.78))}.project-label p{font-size:.63rem;text-transform:uppercase;letter-spacing:.14em;margin:0}.project-label h3{margin:.25rem 0 0}.project-hero{height:100svh;min-height:780px;position:relative;color:#fff}.project-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.55),transparent 68%),linear-gradient(0deg,rgba(0,0,0,.4),transparent 50%)}.project-hero-copy{position:absolute;z-index:2;left:4vw;right:4vw;bottom:5vh}.project-hero-copy h1{font-size:clamp(4rem,10vw,10rem);max-width:1250px;margin:.1em 0}.project-intro-mag{display:grid;grid-template-columns:.55fr 1.45fr;gap:8vw}.project-facts{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);margin:4rem 0 7rem}.project-facts div{padding:1.7rem;border-right:1px solid var(--line)}.project-facts div:last-child{border:0}.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:2vw;margin-top:5vw}.gallery figure{margin:0;grid-column:span 5;min-height:580px}.gallery figure:nth-child(3n+2){grid-column:7/span 6;margin-top:10vw}.gallery figure:nth-child(3n+3){grid-column:2/span 8}.gallery figure.wide{grid-column:1/-1;min-height:82vh;margin-top:0}.gallery figure img{width:100%;height:100%;object-fit:cover}.about-grid,.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:start}.portrait{min-height:760px}.portrait img{height:100%;object-fit:cover}.bio{padding:2.2rem 0;border-top:1px solid var(--line)}.role{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.process-step{padding:2.2rem 1.5rem 2.2rem 0;border-bottom:1px solid var(--line)}.process-step span{display:block;margin-bottom:5rem;font-family:Georgia,serif;font-size:2rem;color:var(--accent)}.contact-list{border-top:1px solid var(--line)}.contact-list div{padding:1.5rem 0;border-bottom:1px solid var(--line)}form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field{display:flex;flex-direction:column;gap:.4rem;min-width:0}.full{grid-column:1/-1}label{font-size:.65rem;text-transform:uppercase;letter-spacing:.14em}input,select,textarea{width:100%;min-height:50px;padding:.9rem;border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0}textarea{min-height:160px;resize:vertical}footer{padding:100px 4vw 35px;background:#ded7cb}.footer-mark{font-family:Georgia,serif;font-size:clamp(2.8rem,8vw,8.5rem);line-height:.95;letter-spacing:-.06em;border-bottom:1px solid var(--line);padding-bottom:2rem;overflow-wrap:anywhere}.footer-grid{display:grid;grid-template-columns:1.5fr .7fr .8fr;gap:4vw;padding:3rem 0}.copyright{border-top:1px solid var(--line);padding-top:1rem;display:flex;justify-content:space-between;font-size:.68rem}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s,transform .75s}.reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.project-card img{transition:none}}@media(max-width:920px){.wrap{width:min(var(--max),calc(100% - 36px))}.site-header{height:74px}.menu{display:block}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:1.5rem;flex-direction:column;align-items:flex-start}.site-header nav.open{display:flex}.mag-hero-copy,.editorial-intro,.spread,.spread.reverse,.project-intro-mag,.about-grid,.contact-grid{grid-template-columns:1fr}.mag-hero-aside{display:none}.vertical-caption{display:none}.spread-media{min-height:62vh}.spread-copy{padding:3rem 0 6rem}.portfolio-grid{display:grid;grid-template-columns:1fr;gap:24px}.portfolio-item,.portfolio-item:nth-child(n),.portfolio-item.wide{grid-column:auto;margin:0;min-height:62vh}.index-row{grid-template-columns:55px 1fr 90px}.index-row p{display:none}.stats-mag{grid-template-columns:1fr}.stat-mag{border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.project-facts{grid-template-columns:1fr}.project-facts div{border-right:0;border-bottom:1px solid var(--line)}.gallery{grid-template-columns:1fr}.gallery figure,.gallery figure:nth-child(n),.gallery figure.wide{grid-column:auto;margin:0;min-height:60vh}.process-grid{grid-template-columns:1fr}.process-step span{margin-bottom:2rem}.footer-grid{grid-template-columns:1fr}.copyright{display:block}}@media(max-width:620px){.wrap{width:calc(100% - 28px)}.site-header{padding-inline:14px}.mag-hero{min-height:700px}.mag-hero-copy{left:18px;right:18px}.mag-hero h1{font-size:clamp(3.4rem,17vw,5.2rem)}.issue{left:18px;top:100px}.spread-media{min-height:480px}.thumb-strip{grid-template-columns:1fr}.portfolio-item,.portfolio-item:nth-child(n){min-height:480px}.project-hero{min-height:650px}.gallery figure,.gallery figure:nth-child(n),.gallery figure.wide{min-height:420px}form{grid-template-columns:1fr}.full{grid-column:auto}.footer-mark{font-size:2.7rem}}

/* Production form, accessibility and cross-browser refinements */
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--accent);box-shadow:0 1px 0 var(--accent)}
.form-honey{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.consent label{display:flex;align-items:flex-start;gap:.7rem;font-size:.78rem;letter-spacing:0;text-transform:none;line-height:1.45}
.consent input{width:1.1rem;min-height:auto;height:1.1rem;margin-top:.18rem;flex:0 0 auto}
.submit-button[disabled]{opacity:.55;cursor:wait}
.form-status{margin-top:1rem;min-height:1.6em;font-size:.9rem}
.form-status.success{color:#245d35}.form-status.error{color:#8b2525}
.philosophy{background:var(--paper2)}.philosophy-grid{display:grid;grid-template-columns:.45fr 1.55fr;gap:8vw;align-items:start}.philosophy-grid>div{max-width:900px}.philosophy-grid h2{font-size:clamp(2.6rem,5.7vw,6rem)}.philosophy-grid>div>p:not(.lead){max-width:760px}.signature{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:1.25rem;margin-top:2.5rem}
@supports not (height:100svh){.mag-hero,.project-hero{height:100vh}}
@media(max-width:920px){.philosophy-grid{grid-template-columns:1fr}.portrait{min-height:0}.portrait img{height:auto;aspect-ratio:3/4;object-fit:cover}}
@media(max-width:620px){h1,h2,h3{letter-spacing:-.035em}.section{padding:76px 0}.page-hero{padding-top:140px}.contact-grid{gap:3.5rem}.form-status{font-size:.82rem}}

/* Final light-background typography contrast pass */
:root{
  --text-dark:#3a3a3a;
  --heading-dark:#2f2f2f;
  --text-muted:#4a4a4a;
  --small-text:#565656;
}
body{color:var(--text-dark)}
body h1,body h2,body h3{color:var(--heading-dark)}
body p,body li,body dd,body address{color:var(--text-dark)}
.lead{color:#414141}
.kicker,.role,.folio,.index-row p,.stat-mag span,label,.copyright,.brand span{color:var(--small-text)}
.site-header,.site-header nav,.menu,.filter,input,select,textarea{color:var(--heading-dark)}
input::placeholder,textarea::placeholder{color:#686868;opacity:1}
footer{color:var(--text-dark)}
footer h1,footer h2,footer h3,.footer-mark{color:var(--heading-dark)}

/* Preserve light text wherever the background is intentionally dark or photographic. */
.dark,.dark h1,.dark h2,.dark h3,.dark p,.dark li,.dark .kicker,.dark .role,.dark .folio,.dark .stat-mag span,
.mag-hero,.mag-hero h1,.mag-hero h2,.mag-hero h3,.mag-hero p,.mag-hero .kicker,
.project-hero,.project-hero h1,.project-hero h2,.project-hero h3,.project-hero p,.project-hero .kicker,
.project-label,.project-label h1,.project-label h2,.project-label h3,.project-label p{color:#fff}
.dark .lead{color:#d8d4cc}
.filter.active{color:var(--paper)}

/* Final dark-background contrast pass */
:root{
  --dark-heading:#f7f3eb;
  --dark-body:#eee9df;
  --dark-muted:#d9d2c7;
}
.dark,
.mag-hero,
.project-hero,
.project-label{color:var(--dark-body)}
.dark h1,.dark h2,.dark h3,
.mag-hero h1,.mag-hero h2,.mag-hero h3,
.project-hero h1,.project-hero h2,.project-hero h3,
.project-label h1,.project-label h2,.project-label h3{color:var(--dark-heading)}
.dark p,.dark li,.dark dd,.dark address,
.mag-hero p,.project-hero p,.project-label p{color:var(--dark-body)}
.dark .lead{color:var(--dark-body)}
.dark .kicker,.dark .role,.dark .folio,.dark .stat-mag span,
.mag-hero .kicker,.mag-hero .issue,.mag-hero .vertical-caption,
.project-hero .kicker,.project-label .kicker{color:var(--dark-muted)}
.dark a,.mag-hero a,.project-hero a,.project-label a{color:var(--dark-heading)}
.dark .button,.mag-hero .button,.project-hero .button{border-color:currentColor}


/* High-contrast typography for every dark section — release candidate v1.1 */
:root{
  --dark-heading-bright:#fffaf1;
  --dark-body-bright:#f4efe6;
  --dark-secondary-bright:#ded6ca;
  --dark-label-bright:#e9dfd2;
  --dark-field-line:rgba(255,250,241,.58);
}

.dark,
.dark-section,
[data-theme="dark"]{
  color:var(--dark-body-bright) !important;
}

.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6,
.dark-section h1,.dark-section h2,.dark-section h3,
[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3{
  color:var(--dark-heading-bright) !important;
}

.dark p,.dark li,.dark dd,.dark dt,.dark address,.dark blockquote,
.dark .lead,.dark .dropcap,.dark .contact-list,.dark .contact-list a,
.dark-section p,.dark-section li,.dark-section .lead,
[data-theme="dark"] p,[data-theme="dark"] li,[data-theme="dark"] .lead{
  color:var(--dark-body-bright) !important;
  opacity:1 !important;
}

.dark .kicker,.dark .role,.dark .folio,.dark .folio span,
.dark .stat-mag span,.dark label,.dark .copyright,.dark small,
.dark-section .kicker,.dark-section label,
[data-theme="dark"] .kicker,[data-theme="dark"] label{
  color:var(--dark-label-bright) !important;
  opacity:1 !important;
}

.dark a:not(.button),.dark-section a:not(.button),[data-theme="dark"] a:not(.button){
  color:var(--dark-heading-bright) !important;
}

.dark input,.dark select,.dark textarea,
.dark-section input,.dark-section select,.dark-section textarea,
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea{
  color:var(--dark-heading-bright) !important;
  -webkit-text-fill-color:var(--dark-heading-bright) !important;
  border-bottom-color:var(--dark-field-line) !important;
  caret-color:var(--dark-heading-bright);
  background-color:transparent;
}

.dark input::placeholder,.dark textarea::placeholder,
.dark-section input::placeholder,.dark-section textarea::placeholder,
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{
  color:var(--dark-secondary-bright) !important;
  opacity:1 !important;
}

.dark select option,.dark-section select option,[data-theme="dark"] select option{
  color:#222 !important;
  background:#fffaf1 !important;
}

.dark .button,.dark-section .button,[data-theme="dark"] .button{
  color:var(--dark-heading-bright) !important;
  border-color:var(--dark-heading-bright) !important;
}

.dark .contact-list,.dark .contact-list div,
.dark .stats-mag,.dark .stat-mag{
  border-color:rgba(255,250,241,.28) !important;
}

/* v1.2 — unified high-contrast typography on every dark or photographic section */
:root{
  --dark-text-unified:#fffaf1;
  --dark-text-secondary:#f5eee4;
  --dark-text-label:#f0e4d5;
  --dark-border-unified:rgba(255,250,241,.68);
}

/* Solid dark sections */
.dark,
.dark-section,
[data-theme="dark"]{
  color:var(--dark-text-unified) !important;
}

.dark h1,.dark h2,.dark h3,.dark h4,.dark h5,.dark h6,
.dark-section h1,.dark-section h2,.dark-section h3,.dark-section h4,.dark-section h5,.dark-section h6,
[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,[data-theme="dark"] h4,[data-theme="dark"] h5,[data-theme="dark"] h6{
  color:var(--dark-text-unified) !important;
}

.dark p,.dark li,.dark dd,.dark dt,.dark address,.dark blockquote,.dark .lead,
.dark-section p,.dark-section li,.dark-section dd,.dark-section dt,.dark-section address,.dark-section blockquote,.dark-section .lead,
[data-theme="dark"] p,[data-theme="dark"] li,[data-theme="dark"] dd,[data-theme="dark"] dt,[data-theme="dark"] address,[data-theme="dark"] blockquote,[data-theme="dark"] .lead{
  color:var(--dark-text-secondary) !important;
}

.dark .kicker,.dark .role,.dark .folio,.dark .folio span,.dark .stat-mag span,.dark label,.dark small,.dark .copyright,
.dark-section .kicker,.dark-section .role,.dark-section .folio,.dark-section label,.dark-section small,
[data-theme="dark"] .kicker,[data-theme="dark"] .role,[data-theme="dark"] .folio,[data-theme="dark"] label,[data-theme="dark"] small{
  color:var(--dark-text-label) !important;
}

.dark a,.dark-section a,[data-theme="dark"] a{
  color:var(--dark-text-unified) !important;
}

.dark input,.dark select,.dark textarea,
.dark-section input,.dark-section select,.dark-section textarea,
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea{
  color:var(--dark-text-unified) !important;
  -webkit-text-fill-color:var(--dark-text-unified) !important;
  border-bottom-color:var(--dark-border-unified) !important;
  caret-color:var(--dark-text-unified) !important;
}

.dark input::placeholder,.dark textarea::placeholder,
.dark-section input::placeholder,.dark-section textarea::placeholder,
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{
  color:var(--dark-text-secondary) !important;
  opacity:.9 !important;
}

/* Photographic and overlay sections use the same text palette */
.mag-hero,.project-hero,.project-label{
  color:var(--dark-text-unified) !important;
}
.mag-hero h1,.mag-hero h2,.mag-hero h3,
.project-hero h1,.project-hero h2,.project-hero h3,
.project-label h1,.project-label h2,.project-label h3{
  color:var(--dark-text-unified) !important;
}
.mag-hero p,.mag-hero .lead,.mag-hero .kicker,.mag-hero .issue,.mag-hero .vertical-caption,
.project-hero p,.project-hero .lead,.project-hero .kicker,.project-hero .issue,
.project-label p,.project-label .kicker{
  color:var(--dark-text-secondary) !important;
}

/* Preserve the copper editorial drop cap/accent. */
.dark .dropcap:first-letter,
.dark-section .dropcap:first-letter,
[data-theme="dark"] .dropcap:first-letter{
  color:var(--accent) !important;
}


/* v1.3 — explicit portfolio dark-section contrast */
.page-hero.dark,
.section.dark {
  background: var(--ink);
}
.page-hero.dark h1,
.page-hero.dark h2,
.page-hero.dark h3 {
  color: #fffaf1 !important;
}
.page-hero.dark .lead,
.page-hero.dark p:not(.kicker),
.section.dark p,
.section.dark li {
  color: #f5eee4 !important;
}
.page-hero.dark .kicker,
.page-hero.dark .folio,
.page-hero.dark .folio span,
.section.dark .kicker,
.section.dark label {
  color: #f0e4d5 !important;
  opacity: 1 !important;
}
.page-hero.dark .folio,
.section.dark .filters {
  border-color: rgba(255,250,241,.32) !important;
}
.section.dark .filter {
  color: #f0e4d5 !important;
  border-color: rgba(255,250,241,.42) !important;
}
.section.dark .filter:hover,
.section.dark .filter:focus-visible {
  color: #fffaf1 !important;
  border-color: #fffaf1 !important;
}
.section.dark .filter.active {
  color: var(--ink) !important;
  background: #fffaf1 !important;
  border-color: #fffaf1 !important;
}

/* v1.4 — authoritative dark-section typography system.
   This block intentionally comes last and supersedes all earlier color rules. */
:root {
  --dark-heading-final: #fffaf1;
  --dark-body-final: #f6efe5;
  --dark-label-final: #eadfce;
  --dark-border-final: rgba(255, 250, 241, .62);
}

:is(.dark, .dark-section, [data-theme="dark"], .mag-hero, .project-hero, .project-label) {
  color: var(--dark-body-final) !important;
}

:is(.dark, .dark-section, [data-theme="dark"], .mag-hero, .project-hero, .project-label)
:is(h1, h2, h3, h4, h5, h6, .footer-mark, .pullquote, .stat-mag b, .index-row h3) {
  color: var(--dark-heading-final) !important;
  opacity: 1 !important;
}

:is(.dark, .dark-section, [data-theme="dark"], .mag-hero, .project-hero, .project-label)
:is(p, li, dd, dt, address, blockquote, .lead, .contact-list, .contact-list a, .index-row p, .project-label p) {
  color: var(--dark-body-final) !important;
  opacity: 1 !important;
}

:is(.dark, .dark-section, [data-theme="dark"], .mag-hero, .project-hero, .project-label)
:is(.kicker, .role, .folio, .folio span, .issue, .vertical-caption, label, small, .copyright, .stat-mag span) {
  color: var(--dark-label-final) !important;
  opacity: 1 !important;
}

:is(.dark, .dark-section, [data-theme="dark"], .mag-hero, .project-hero, .project-label) a {
  color: var(--dark-heading-final) !important;
}

:is(.dark, .dark-section, [data-theme="dark"]) :is(input, select, textarea) {
  color: var(--dark-heading-final) !important;
  -webkit-text-fill-color: var(--dark-heading-final) !important;
  caret-color: var(--dark-heading-final) !important;
  border-bottom-color: var(--dark-border-final) !important;
  opacity: 1 !important;
}

:is(.dark, .dark-section, [data-theme="dark"]) :is(input, textarea)::placeholder {
  color: var(--dark-label-final) !important;
  -webkit-text-fill-color: var(--dark-label-final) !important;
  opacity: 1 !important;
}

:is(.dark, .dark-section, [data-theme="dark"]) :is(.folio, .contact-list, .contact-list div, .stats-mag, .stat-mag, .project-index, .index-row) {
  border-color: rgba(255, 250, 241, .28) !important;
}

:is(.dark, .dark-section, [data-theme="dark"]) .filter {
  color: var(--dark-label-final) !important;
  border-color: rgba(255, 250, 241, .44) !important;
}

:is(.dark, .dark-section, [data-theme="dark"]) .filter:is(:hover, :focus-visible) {
  color: var(--dark-heading-final) !important;
  border-color: var(--dark-heading-final) !important;
}

:is(.dark, .dark-section, [data-theme="dark"]) .filter.active {
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important;
  background: var(--dark-heading-final) !important;
  border-color: var(--dark-heading-final) !important;
}

/* Retain the copper editorial accent instead of whitening it. */
:is(.dark, .dark-section, [data-theme="dark"]) .dropcap:first-letter,
:is(.dark, .dark-section, [data-theme="dark"]) .spread-number,
:is(.dark, .dark-section, [data-theme="dark"]) .process-step > span {
  color: var(--accent) !important;
}
\n\n/* v1.5 — screenshot-targeted dark-section treatment.
   Applied to actual source sections identified by the user. */
:root {
  --reference-dark-heading: #fff8ed;
  --reference-dark-body: #f3ecdf;
  --reference-dark-label: #e8ddcc;
  --reference-dark-accent: #9a6243;
  --reference-dark-line: rgba(255, 248, 237, .42);
}

section.dark[data-theme="dark"] {
  background: #161512 !important;
  color: var(--reference-dark-body) !important;
}

section.dark[data-theme="dark"] :is(h1,h2,h3,h4,h5,h6,.index-row h3) {
  color: var(--reference-dark-heading) !important;
  opacity: 1 !important;
}

section.dark[data-theme="dark"] :is(p,li,dd,dt,address,blockquote,.lead,.bio p,.process-step p,.project-facts p,.spread-copy p,.index-row p) {
  color: var(--reference-dark-body) !important;
  opacity: 1 !important;
}

section.dark[data-theme="dark"] :is(.kicker,.role,.folio,.folio span,label,small,.process-step .kicker,.project-facts .kicker) {
  color: var(--reference-dark-label) !important;
  opacity: 1 !important;
}

section.dark[data-theme="dark"] :is(.spread-number,.process-step > span) {
  color: var(--reference-dark-accent) !important;
  opacity: 1 !important;
}

section.dark[data-theme="dark"] :is(.project-index,.index-row,.project-facts,.process-grid,.process-step,.bio,.folio) {
  border-color: var(--reference-dark-line) !important;
}

section.dark[data-theme="dark"] a,
section.dark[data-theme="dark"] .button,
section.dark[data-theme="dark"] .arrow {
  color: var(--reference-dark-heading) !important;
  opacity: 1 !important;
}

/* v1.8 — Safari-safe dark-section typography compatibility layer.
   Uses only explicit selectors and a new stylesheet filename to avoid stale cache. */
:root {
  --safari-dark-heading: #fff8ed;
  --safari-dark-body: #f3ecdf;
  --safari-dark-label: #e8ddcc;
  --safari-dark-accent: #9a6243;
  --safari-dark-line: rgba(255, 248, 237, .48);
}

.dark,
.dark-section,
[data-theme="dark"],
.mag-hero,
.project-hero,
.project-label {
  color: var(--safari-dark-body) !important;
}

.dark h1, .dark h2, .dark h3, .dark h4, .dark h5, .dark h6,
.dark-section h1, .dark-section h2, .dark-section h3, .dark-section h4, .dark-section h5, .dark-section h6,
[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3, [data-theme="dark"] h4, [data-theme="dark"] h5, [data-theme="dark"] h6,
.mag-hero h1, .mag-hero h2, .mag-hero h3,
.project-hero h1, .project-hero h2, .project-hero h3,
.project-label h1, .project-label h2, .project-label h3,
.dark .index-row h3, .dark-section .index-row h3, [data-theme="dark"] .index-row h3,
.dark .footer-mark, .dark .pullquote, .dark .stat-mag b {
  color: var(--safari-dark-heading) !important;
  -webkit-text-fill-color: var(--safari-dark-heading) !important;
  opacity: 1 !important;
}

.dark p, .dark li, .dark dd, .dark dt, .dark address, .dark blockquote,
.dark .lead, .dark .bio p, .dark .process-step p, .dark .project-facts p,
.dark .spread-copy p, .dark .index-row p, .dark .contact-list, .dark .contact-list a,
.dark-section p, .dark-section li, .dark-section dd, .dark-section dt, .dark-section address, .dark-section blockquote,
.dark-section .lead, .dark-section .bio p, .dark-section .process-step p, .dark-section .project-facts p,
.dark-section .spread-copy p, .dark-section .index-row p, .dark-section .contact-list, .dark-section .contact-list a,
[data-theme="dark"] p, [data-theme="dark"] li, [data-theme="dark"] dd, [data-theme="dark"] dt,
[data-theme="dark"] address, [data-theme="dark"] blockquote, [data-theme="dark"] .lead,
[data-theme="dark"] .bio p, [data-theme="dark"] .process-step p, [data-theme="dark"] .project-facts p,
[data-theme="dark"] .spread-copy p, [data-theme="dark"] .index-row p,
.mag-hero p, .mag-hero .lead,
.project-hero p, .project-hero .lead,
.project-label p {
  color: var(--safari-dark-body) !important;
  -webkit-text-fill-color: var(--safari-dark-body) !important;
  opacity: 1 !important;
}

.dark .kicker, .dark .role, .dark .folio, .dark .folio span, .dark label, .dark small,
.dark .copyright, .dark .stat-mag span, .dark .issue, .dark .vertical-caption,
.dark-section .kicker, .dark-section .role, .dark-section .folio, .dark-section .folio span,
.dark-section label, .dark-section small,
[data-theme="dark"] .kicker, [data-theme="dark"] .role, [data-theme="dark"] .folio,
[data-theme="dark"] .folio span, [data-theme="dark"] label, [data-theme="dark"] small,
.mag-hero .kicker, .mag-hero .issue, .mag-hero .vertical-caption,
.project-hero .kicker, .project-label .kicker {
  color: var(--safari-dark-label) !important;
  -webkit-text-fill-color: var(--safari-dark-label) !important;
  opacity: 1 !important;
}

.dark a, .dark-section a, [data-theme="dark"] a,
.mag-hero a, .project-hero a, .project-label a,
.dark .button, .dark-section .button, [data-theme="dark"] .button,
.dark .arrow, .dark-section .arrow, [data-theme="dark"] .arrow {
  color: var(--safari-dark-heading) !important;
  -webkit-text-fill-color: var(--safari-dark-heading) !important;
  opacity: 1 !important;
}

.dark input, .dark select, .dark textarea,
.dark-section input, .dark-section select, .dark-section textarea,
[data-theme="dark"] input, [data-theme="dark"] select, [data-theme="dark"] textarea {
  color: var(--safari-dark-heading) !important;
  -webkit-text-fill-color: var(--safari-dark-heading) !important;
  caret-color: var(--safari-dark-heading) !important;
  border-bottom-color: var(--safari-dark-line) !important;
  opacity: 1 !important;
}

.dark input::placeholder, .dark textarea::placeholder,
.dark-section input::placeholder, .dark-section textarea::placeholder,
[data-theme="dark"] input::placeholder, [data-theme="dark"] textarea::placeholder {
  color: var(--safari-dark-label) !important;
  -webkit-text-fill-color: var(--safari-dark-label) !important;
  opacity: 1 !important;
}

.dark .project-index, .dark .index-row, .dark .project-facts, .dark .process-grid,
.dark .process-step, .dark .bio, .dark .folio, .dark .contact-list, .dark .contact-list div,
.dark .stats-mag, .dark .stat-mag,
.dark-section .project-index, .dark-section .index-row, .dark-section .project-facts,
.dark-section .process-grid, .dark-section .process-step, .dark-section .bio, .dark-section .folio,
[data-theme="dark"] .project-index, [data-theme="dark"] .index-row, [data-theme="dark"] .project-facts,
[data-theme="dark"] .process-grid, [data-theme="dark"] .process-step, [data-theme="dark"] .bio,
[data-theme="dark"] .folio {
  border-color: var(--safari-dark-line) !important;
}

.dark .spread-number, .dark .process-step > span, .dark .dropcap:first-letter,
.dark-section .spread-number, .dark-section .process-step > span, .dark-section .dropcap:first-letter,
[data-theme="dark"] .spread-number, [data-theme="dark"] .process-step > span,
[data-theme="dark"] .dropcap:first-letter {
  color: var(--safari-dark-accent) !important;
  -webkit-text-fill-color: var(--safari-dark-accent) !important;
  opacity: 1 !important;
}

.dark .filter, .dark-section .filter, [data-theme="dark"] .filter {
  color: var(--safari-dark-label) !important;
  -webkit-text-fill-color: var(--safari-dark-label) !important;
  border-color: var(--safari-dark-line) !important;
}
.dark .filter:hover, .dark .filter:focus-visible,
.dark-section .filter:hover, .dark-section .filter:focus-visible,
[data-theme="dark"] .filter:hover, [data-theme="dark"] .filter:focus-visible {
  color: var(--safari-dark-heading) !important;
  -webkit-text-fill-color: var(--safari-dark-heading) !important;
  border-color: var(--safari-dark-heading) !important;
}
.dark .filter.active, .dark-section .filter.active, [data-theme="dark"] .filter.active {
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important;
  background: var(--safari-dark-heading) !important;
  border-color: var(--safari-dark-heading) !important;
}

/* v1.9 homepage quotation hero */
.mag-hero .hero-quote{display:flex;flex-direction:column;gap:.22em;max-width:1050px;font-size:clamp(3rem,7.6vw,8rem);line-height:.94;letter-spacing:-.045em;text-transform:uppercase;color:#f7f1e8;-webkit-text-fill-color:#f7f1e8}
.mag-hero .hero-quote-text{display:block}
.mag-hero .hero-quote-credit{display:block;margin-top:.45em;font-family:Arial,Helvetica,sans-serif;font-size:clamp(.7rem,1vw,1rem);font-style:normal;font-weight:700;line-height:1.2;letter-spacing:.22em;text-transform:uppercase;color:#ded3c5;-webkit-text-fill-color:#ded3c5}
@media(max-width:620px){.mag-hero .hero-quote{font-size:clamp(2.75rem,13vw,4.7rem);line-height:.98}.mag-hero .hero-quote-credit{margin-top:.7em;font-size:.68rem}}


/* v2.0 — Homepage studio quotation */
.studio-quote {
  max-width: 15ch;
}
.studio-quote-attribution {
  display: block;
  margin-top: 1.25rem;
  font-family: var(--sans, Arial, sans-serif);
  font-size: clamp(.68rem, .85vw, .9rem);
  font-style: normal;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #ded3c5;
  -webkit-text-fill-color: #ded3c5;
}
@media (max-width: 700px) {
  .studio-quote { max-width: none; }
  .studio-quote-attribution { margin-top: .9rem; }
}

/* v3.9 — Cross-browser Process card alignment (Firefox, Safari, Chromium).
   Fixed row tracks avoid font-metric-dependent vertical offsets. */
@media (min-width: 1251px) {
  .process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    column-gap: clamp(1.5rem, 3vw, 4.5rem);
  }

  .process-grid .process-step {
    display: grid;
    grid-template-rows: 6.25rem 5.75rem auto;
    align-content: start;
    min-width: 0;
    padding: 2.25rem 0 2.5rem;
  }

  .process-grid .process-step > .kicker,
  .process-grid .process-step > span:first-child {
    display: block;
    align-self: start;
    margin: 0;
    min-height: 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.15rem, 1.55vw, 1.75rem);
    line-height: 1.18;
    letter-spacing: .13em;
    white-space: normal;
  }

  .process-grid .process-step > h3 {
    align-self: start;
    margin: 0;
    font-size: clamp(2rem, 2.55vw, 3rem);
    line-height: 1.04;
    letter-spacing: -.04em;
  }

  .process-grid .process-step > p {
    align-self: start;
    margin: 0;
    max-width: 34ch;
    font-size: clamp(.95rem, 1.05vw, 1.12rem);
    line-height: 1.55;
  }
}

@media (min-width: 921px) and (max-width: 1250px) {
  .process-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 clamp(2rem, 5vw, 4rem);
  }

  .process-grid .process-step {
    display: grid;
    grid-template-rows: 4.75rem 4.75rem auto;
    align-content: start;
    min-width: 0;
    padding: 2.25rem 0 3rem;
  }

  .process-grid .process-step > .kicker,
  .process-grid .process-step > span:first-child {
    margin: 0;
    font-size: clamp(1.15rem, 2.2vw, 1.6rem);
    line-height: 1.2;
  }

  .process-grid .process-step > h3 {
    margin: 0;
    font-size: clamp(2rem, 3.4vw, 2.8rem);
    line-height: 1.05;
  }

  .process-grid .process-step > p {
    margin: 0;
    max-width: 38ch;
    line-height: 1.55;
  }
}

@media (max-width: 920px) {
  .process-grid .process-step {
    display: block;
    padding: 2.25rem 0;
  }
  .process-grid .process-step > .kicker,
  .process-grid .process-step > span:first-child {
    margin: 0 0 1.25rem;
    line-height: 1.2;
  }
  .process-grid .process-step > h3 {
    margin: 0 0 .85rem;
  }
  .process-grid .process-step > p {
    margin: 0;
    max-width: 42ch;
  }
}


.page-hero h1{
  max-width:11ch;
  text-wrap:balance;
}
.page-hero h1 .hero-balance{
  font-style:italic;
}
