/* Elizabeth G. Robinson — portfolio site (FINAL) */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/fraunces-normal-400-1.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:400 600;font-display:swap;src:url(fonts/fraunces-italic-400-0.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/inter-normal-400-2.woff2) format('woff2')}
:root{--ink:#1C1B1F;--ink2:#2A2930;--paper:#FFFFFF;--stone:#F2F0EC;--wine:#2C6D5C;
--gold:#C5A253;--mut:#6E6961;--faint:#6E6961;--line:#DAD5CE;--icet:#CFC9C2;}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;color:var(--ink);
background:var(--paper);line-height:1.65;font-size:17px}
.serif{font-family:'Fraunces',Georgia,'Times New Roman',serif}
a{color:var(--pine);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible{outline:2px solid var(--pine);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px;top:0;background:var(--pine);color:#fff;padding:8px 16px;z-index:99}
.skip:focus{left:0}
header.site{padding:26px 0;border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px}
.logo{font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:1.25rem;color:var(--ink)}
.logo:hover{text-decoration:none;color:var(--pine)}
nav.main a{color:var(--mut);margin-left:26px;font-size:.95rem;letter-spacing:.02em}
nav.main a:hover{color:var(--pine);text-decoration:none}
nav.main a[aria-current="page"]{color:var(--ink);font-weight:600}
.dark{background:var(--ink);color:var(--paper)}
.dark .kicker{color:var(--gold)}
.kicker{font-size:.78rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--wine)}
.hero{padding:88px 0 80px}
.hero h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(2.1rem,5vw,3.4rem);
line-height:1.12;margin:22px 0 26px;max-width:22ch}
.hero h1 em{font-style:italic;color:var(--icet)}
.hero p.lede{font-size:1.12rem;color:var(--icet);max-width:58ch}
main{display:block}
section{padding:68px 0}
section.tight{padding:48px 0}
h2.sec{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(1.6rem,3.2vw,2.2rem);
line-height:1.2;margin:14px 0 18px}
.grid{display:grid;gap:24px}
.work-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.card{background:var(--stone);display:flex;flex-direction:column;overflow:hidden}
.card .thumb{display:block;width:100%;background:var(--ink)}
.card .thumb svg{display:block;width:100%;height:auto}
.card .body{padding:22px 24px 22px;display:flex;flex-direction:column;flex-grow:1}
.card .num{font-family:'Fraunces',Georgia,serif;font-size:.95rem;color:var(--faint)}
.card h3{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.25rem;line-height:1.25;margin:6px 0 6px}
.card p{color:var(--mut);font-size:.92rem;flex-grow:1}
.card a.go{margin-top:14px;font-size:.9rem;font-weight:600}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:26px}
.stat .v{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:2.2rem;color:var(--wine);line-height:1.1}
.dark .stat .v{color:var(--gold)}
.stat .l{font-size:.84rem;color:var(--mut);margin-top:6px}
.dark .stat .l{color:var(--icet)}
blockquote.pull{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:clamp(1.25rem,2.6vw,1.7rem);
line-height:1.4;max-width:36ch}
blockquote.pull footer{font-family:'Inter',sans-serif;font-style:normal;font-size:.78rem;
letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-top:18px}
footer.site{background:var(--ink);color:var(--icet);padding:64px 0 40px;margin-top:40px}
footer.site h2{font-family:'Fraunces',Georgia,serif;color:var(--paper);font-size:1.8rem;margin-bottom:10px}
footer.site a{color:var(--gold)}
footer.site .fine{font-size:.8rem;color:#96939C;margin-top:36px}
.crumbs{font-size:.85rem;color:var(--faint);margin-top:34px}
.case-hero{padding:38px 0 26px}
.case-hero h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(1.9rem,4.2vw,2.8rem);
line-height:1.15;margin:16px 0 14px;max-width:26ch}
.lab{font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--wine);margin-bottom:14px}
.case-sec{padding:34px 0;border-top:1px solid var(--line)}
.case-sec p{max-width:70ch;margin-bottom:14px}
.case-sec ul{max-width:72ch;padding-left:1.1em;margin-bottom:14px}
.case-sec li{margin-bottom:10px}
.insight{background:var(--stone);padding:42px 0}
.insight p{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:clamp(1.2rem,2.4vw,1.5rem);
line-height:1.45;max-width:46ch}
.figure{padding:34px 0;border-top:1px solid var(--line)}
.figure svg{display:block;width:100%;height:auto;max-width:980px}
.figure figcaption{font-size:.85rem;color:var(--faint);margin-top:12px;max-width:72ch}
.two{display:grid;grid-template-columns:1fr 1fr;gap:40px}
@media(max-width:760px){.two{grid-template-columns:1fr}}
.rolecard{background:var(--stone);padding:24px 28px;font-size:.95rem;color:var(--ink);max-width:74ch}
.rolecard .lab{margin-bottom:8px}
.rolecard .with{margin-top:12px;font-size:.88rem;color:var(--mut)}
.rolecard .with strong{color:var(--wine);font-size:.75rem;letter-spacing:.18em}
.pipe{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0 6px}
.pipe span.step{border:1px solid var(--line);padding:9px 14px;font-size:.85rem;font-weight:600}
.pipe span.arr{color:var(--wine);font-family:Georgia,serif}
.prevnext{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:34px 0 10px;flex-wrap:wrap}
.prevnext a{font-weight:600;font-size:.95rem}
.about-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;align-items:start}
@media(max-width:820px){.about-grid{grid-template-columns:1fr}}
.about-grid img{width:100%;max-width:380px;display:block}
.about-grid p{margin-bottom:15px}
.resume h3{font-family:'Fraunces',Georgia,serif;font-size:1.15rem;margin:34px 0 4px}
.resume .co{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;align-items:baseline}
.resume .dates{color:var(--faint);font-size:.85rem;white-space:nowrap}
.resume .role{color:var(--wine);font-weight:600;font-size:.95rem;margin-bottom:8px}
.resume ul{padding-left:1.1em;margin-bottom:8px}
.resume li{margin-bottom:6px;font-size:.95rem}
.btn{display:inline-block;background:var(--pine);color:#fff !important;padding:12px 22px;font-weight:600;
font-size:.95rem;letter-spacing:.02em}
.btn:hover{text-decoration:none;background:#173B2D}
.note{font-size:.85rem;color:var(--faint)}
.divider{border:0;border-top:1px solid var(--line);margin:0}
.tiers{border-top:1px solid var(--line)}
.tier{display:grid;grid-template-columns:190px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);align-items:baseline}
@media(max-width:700px){.tier{grid-template-columns:1fr;gap:4px}}
.tier .t{font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--wine)}
.tier .names{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.15rem;line-height:1.35}
.tier .note{display:block;font-family:'Inter',sans-serif;font-weight:400;font-size:.88rem;color:var(--mut);margin-top:4px}
.proof{background:var(--ink);color:var(--icet);padding:28px 30px;max-width:980px}
.proof .lab{color:var(--gold)}
.proof .row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;margin-top:10px}
@media(max-width:700px){.proof .row{grid-template-columns:1fr}}
.proof .h{font-size:.75rem;font-weight:700;letter-spacing:.2em;color:var(--paper)}
.proof p{font-size:.9rem;margin-top:6px}

/* ===== v2 — evergreen accents, nav system, no-scroll home ===== */
:root{--pine:#077D5A;--sage:#A9C7B4}
nav.main a:hover{color:var(--pine)}
.navset{display:flex;align-items:center;gap:20px}
.social{display:flex;gap:14px;align-items:center}
.social a{display:inline-flex;color:var(--mut);line-height:0}
.social a:hover{color:var(--pine)}
.social svg{width:18px;height:18px;fill:currentColor}
details.mnav{display:none;position:relative}
details.mnav summary{list-style:none;cursor:pointer;display:inline-flex;padding:6px;color:var(--ink)}
details.mnav summary::-webkit-details-marker{display:none}
details.mnav svg{width:22px;height:22px;fill:currentColor}
details.mnav nav{position:absolute;right:0;top:calc(100% + 12px);background:var(--paper);border:1px solid var(--line);padding:16px 26px;display:flex;flex-direction:column;gap:12px;z-index:60;min-width:150px;box-shadow:0 8px 24px rgba(28,27,31,.12)}
details.mnav nav a{color:var(--ink);font-size:1rem}
details.mnav nav a:hover{color:var(--pine);text-decoration:none}
@media(max-width:640px){nav.main{display:none}details.mnav{display:block}}
blockquote.pull.accent{border-left:3px solid var(--pine);padding-left:26px}
.btn.pine{background:var(--pine)}
.btn.pine:hover{background:#173B2D}
/* home */
body.home{background:var(--ink);color:var(--paper);min-height:100dvh;display:flex;flex-direction:column}
body.home header.site{border-bottom:1px solid #2A2930}
body.home .logo{color:var(--paper)}
body.home .logo:hover{color:var(--gold)}
body.home nav.main a{color:var(--icet)}
body.home nav.main a:hover{color:var(--sage)}
body.home .social a{color:var(--icet)}
body.home .social a:hover{color:var(--sage)}
body.home details.mnav summary{color:var(--paper)}
body.home details.mnav nav{background:var(--ink2);border-color:#3A383F}
body.home details.mnav nav a{color:var(--icet)}
body.home details.mnav nav a:hover{color:var(--sage)}
.homeview{flex:1;display:flex;flex-direction:column;justify-content:space-between}
.hero-zone{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,4vw,64px);align-items:center;padding-top:clamp(24px,5vh,64px);width:100%}
.hero-copy .kicker{color:var(--gold)}
.hero-copy h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(1.85rem,3.4vw,2.9rem);line-height:1.14;margin:18px 0 16px;max-width:24ch}
.hero-copy h1 em{font-style:italic;color:var(--icet)}
.hero-copy p.lede{color:var(--icet);max-width:52ch;font-size:1.06rem}
.hero-copy .go{color:var(--gold);font-weight:600;font-size:.95rem}
.hstate[hidden],.art[hidden]{display:none}
.hero-art .art svg{display:block;width:100%;height:auto}
.art.pane{background:var(--pine);aspect-ratio:640/300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.art.pane .mono{font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:3.4rem;color:var(--gold);line-height:1}
.art.pane .tag{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1rem;color:#E7EFE9}
.worklist-zone{padding-top:20px;padding-bottom:clamp(28px,5vh,56px)}
.worklist{display:flex;flex-wrap:wrap;column-gap:clamp(30px,4.5vw,70px);row-gap:12px;margin-top:14px;align-items:baseline}
.worklist a{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(1.2rem,2.1vw,1.7rem);color:var(--paper);border-bottom:2px solid transparent;padding-bottom:3px}
.worklist a:hover,.worklist a:focus-visible{color:var(--sage);border-bottom-color:var(--sage);text-decoration:none}
.alllink{margin-top:16px;font-size:.88rem}
.alllink a{color:var(--gold)}
@media(max-width:880px){.hero-zone{grid-template-columns:1fr}.hero-art{display:none}
.worklist{flex-direction:column;row-gap:10px}.worklist a{font-size:1.3rem}}
@media(max-height:760px){.hero-zone{padding-top:18px}.hero-copy h1{font-size:clamp(1.6rem,3vw,2.3rem)}}
/* connect */
.connect-list{margin-top:26px;border-top:1px solid var(--line)}
.connect-list .row{display:grid;grid-template-columns:180px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}
@media(max-width:640px){.connect-list .row{grid-template-columns:1fr;gap:4px}}
.connect-list .t{font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--pine)}
.connect-list .v{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.2rem}
.connect-list .v .note{display:block;font-family:'Inter',sans-serif;font-weight:400;font-size:.88rem;color:var(--mut);margin-top:4px}
/* v2.1 mobile fit */
.hero-zone{padding-top:clamp(20px,4vh,56px)}
@media(max-width:640px){
header.site{padding:18px 0}
.hero-zone{padding-top:12px}
.hero-copy h1{font-size:1.5rem;margin:12px 0 10px}
.hero-copy p.lede{font-size:.95rem}
.worklist-zone{padding-top:6px;padding-bottom:18px}
.worklist{row-gap:7px;margin-top:10px}
.worklist a{font-size:1.15rem}
.alllink{margin-top:10px}
}
.art[hidden],.hstate[hidden]{display:none!important}
.hero-art .art:not(.pane):not(.photo){outline:1px solid #3A383F}
/* v2.2 — fixed hero band: hover swaps never move the work list */
@media(min-width:881px){
.hero-zone{height:clamp(350px,50vh,540px);align-items:start;padding-top:clamp(20px,4vh,48px)}
.hero-art{align-self:center}
}
/* v2.3 — condensed work list; standardized hero size on mobile */
.worklist{column-gap:clamp(20px,2.6vw,38px);row-gap:8px;margin-top:12px}
.worklist a{font-size:clamp(1.05rem,1.35vw,1.3rem)}
.worklist-zone{padding-bottom:clamp(24px,4vh,44px)}
.casehead{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.18;font-size:clamp(1.45rem,2.6vw,2.15rem);margin:18px 0 16px;max-width:30ch}
@media(max-width:880px){
.worklist{flex-direction:row;flex-wrap:wrap;column-gap:18px;row-gap:8px}
.worklist a{font-size:1.05rem}
.hero-zone{height:clamp(320px,52vh,400px);align-items:start;overflow:hidden}
.casehead{font-size:1.2rem}
}
/* v2.4 — mobile tap targets + wrap fixes */
.social{gap:2px}
.social a{padding:9px}
.crumbs a{display:inline-block;padding:8px 4px;margin:-8px -4px}
.connect-list .v{overflow-wrap:anywhere}
details.mnav summary{padding:10px}
/* v2.5 — mobile header alignment + vertically centered hero */
@media(max-width:880px){
.homeview{justify-content:center}
.hero-zone{height:clamp(300px,46vh,360px)}
.worklist-zone{padding-top:0}
}
@media(max-width:640px){
header.site .wrap{flex-wrap:nowrap;align-items:center}
.navset{margin-left:auto;gap:8px}
.logo{font-size:1.1rem;white-space:nowrap}
}

/* 09.03.26 additions */
.case-hero .dek{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.15rem;color:var(--mut);max-width:60ch;margin-top:10px}
.art.photo{aspect-ratio:640/400;overflow:hidden;background:#1C1B1F;display:flex;align-items:center;justify-content:flex-start;gap:32px;padding:0}
.art.photo img{height:100%;width:auto;object-fit:cover;object-position:top;display:block;max-height:400px}
.art.photo .tagblock{color:#CFC9C2;font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1rem;line-height:1.45;max-width:24ch}
.art.photo .tagblock b{display:block;font-style:normal;font-weight:600;color:var(--gold);margin-bottom:6px}
.homequote{margin:10px 0 0;font-family:'Fraunces',Georgia,serif;font-style:italic;color:var(--icet);font-size:1rem;max-width:56ch}
.homequote small{display:block;font-family:'Inter',sans-serif;font-style:normal;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-top:6px}

/* 09.04.26 — white homepage */
body.home{background:var(--paper);color:var(--ink)}
body.home header.site{border-bottom:1px solid var(--line)}
body.home .logo{color:var(--ink)}
body.home .logo:hover{color:var(--wine)}
body.home nav.main a,body.home .social a{color:var(--mut)}
body.home nav.main a:hover,body.home .social a:hover{color:var(--wine)}
body.home details.mnav summary{color:var(--ink)}
body.home details.mnav nav{background:var(--paper);border-color:var(--line)}
body.home details.mnav nav a{color:var(--ink)}
body.home details.mnav nav a:hover{color:var(--wine)}
body.home .hero-copy .kicker{color:var(--wine)}
body.home .hero-copy h1{color:var(--ink)}
body.home .hero-copy h1 em{color:var(--wine)}
body.home .hero-copy p.lede{color:var(--ink2)}
body.home .homequote{color:var(--mut)}
body.home .homequote small{color:var(--mut)}
body.home .worklist-zone .kicker{color:var(--wine)!important}
body.home .worklist a{color:var(--ink)}
body.home .worklist a:hover,body.home .worklist a:focus-visible{color:var(--wine);border-bottom-color:var(--wine)}
body.home .art.photo{background:var(--stone)}
body.home .art.photo .tagblock{color:var(--ink2)}
body.home .art.photo .tagblock b{color:var(--wine)}
body.home .hero-art .art:not(.pane):not(.photo){outline:1px solid var(--line)}
body.home .casehead{color:var(--ink)}
body.home .casehead{font-size:clamp(1.4rem,2.4vw,2rem);font-weight:600;max-width:30ch}

/* 09.04.26 — evergreen system, static hero, work grid */
:root{--pine:#077D5A;--pine2:#2E6B53;--sage:#A9C7B4}
a{color:var(--pine)}
.kicker{color:var(--pine)!important;font-weight:700;letter-spacing:.16em}
.lab{color:var(--pine)!important}
.btn{background:var(--pine);border-color:var(--pine)}
.btn.pine{background:var(--wine);border-color:var(--wine)}
body.home .hero-copy .kicker{color:var(--pine)!important;font-size:.82rem}
.kicker .pipe{color:var(--gold);font-weight:400;padding:0 .35em}
.dash{margin:-6px 0 0;font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.02rem}
.dash a{color:var(--wine);text-decoration:none;border-bottom:1px dotted var(--wine)}
.dash a:hover{color:var(--pine);border-bottom-color:var(--pine)}
body.home .hero-copy h1 em{color:var(--pine)}
body.home .logo:hover,body.home nav.main a:hover,body.home .social a:hover{color:var(--pine)}
body.home .art.photo .tagblock b{color:var(--pine)}
body.home .hero-zone{height:auto;min-height:0;padding-bottom:40px;border-bottom:1px solid var(--line)}
body.home .homeview{justify-content:flex-start}
body.home .hero-art{display:block}
@media(max-width:880px){body.home .hero-art{display:block;max-width:420px}}
.worklist-zone{padding-top:44px}
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:36px 40px;margin-top:22px}
@media(max-width:820px){.work-grid{grid-template-columns:1fr}}
.tile{display:block;color:var(--ink);text-decoration:none}
.tile:hover{text-decoration:none}
.tile-art{border:1px solid var(--line);overflow:hidden;background:var(--ink)}
.tile-art svg{display:block;width:100%;height:auto;transition:transform .3s ease}
.tile:hover .tile-art svg{transform:scale(1.02)}
.tile-kicker{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pine);font-weight:700;margin:14px 0 4px}
.tile h3{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.35rem;margin:0 0 6px;color:var(--ink)}
.tile h3 .sub{font-weight:400;font-size:.95rem;color:var(--mut)}
.tile:hover h3{color:var(--pine)}
.tile-hook{margin:0;color:var(--ink2);font-size:.98rem;max-width:52ch}
.case-art{margin:6px auto 26px}
.case-art svg{display:block;width:100%;height:auto;border:1px solid var(--line)}
blockquote.pull.accent{border-left-color:var(--pine)}
blockquote.pull footer a{color:var(--pine);text-decoration:none;border-bottom:1px solid var(--sage)}
.homequote small a{color:var(--pine);text-decoration:none;border-bottom:1px solid var(--sage)}
.insight{background:var(--stone)}
.insight .lab{color:var(--wine)!important}
footer.site h2{color:var(--paper)}
footer.site a{color:var(--sage)}

.hero-copy .kicker{display:block;white-space:normal}
.kicker .pipe{display:inline}
body.home .worklist-zone .kicker{color:var(--pine)!important}
body.home .hero-zone,body.home .worklist-zone{width:100%;box-sizing:border-box}
body.home .hero-copy .kicker{letter-spacing:.12em;font-size:.78rem}
.kicker .pipe{padding:0 .28em}
@media(max-width:880px){
body.home .hero-zone{display:block;height:auto;padding-bottom:28px}
body.home .hero-copy p,body.home .hero-copy h1,body.home .homequote{max-width:100%}
body.home .hero-art{max-width:100%;margin-top:22px}
body.home .art.photo{aspect-ratio:auto;flex-direction:row;align-items:stretch}
body.home .art.photo img{width:45%;height:auto;max-height:none;object-fit:cover}
body.home .art.photo .tagblock{padding:16px 14px;font-size:.92rem;max-width:none}
}
/* 09.04.26 — center the tag block beside the portrait */
.art.photo .tagblock{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:18px 22px;max-width:none}
/* 09.04.26 — precise centering: no gap, photo and text split the pane evenly */
.art.photo{gap:0;justify-content:stretch}
.art.photo img{flex:0 0 50%;width:50%;height:auto;max-height:none;object-fit:cover;object-position:center top}
.art.photo .tagblock{flex:1 1 50%;padding:16px 20px}
.art.photo .tagblock b{margin-bottom:10px}
@media(max-width:880px){body.home .art.photo img{width:50%}}

/* 09.04.26 — case photography */
.photo-fig figure{margin:0}
.photo-fig img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.photo-fig.small img{width:auto;max-width:100%}
.photo-fig figcaption{font-size:.82rem;color:var(--mut);margin-top:8px}
.tile-art img{display:block;width:100%;height:auto;transition:transform .3s ease}
.tile:hover .tile-art img{transform:scale(1.02)}

/* 09.04.26 — photo grids (Dropbox pass) */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start}
.photo-grid.two{grid-template-columns:repeat(2,1fr)}
.photo-grid figure{margin:0}
.photo-grid img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.photo-grid figcaption{font-size:.8rem;color:var(--mut);margin-top:8px}
@media(max-width:720px){.photo-grid,.photo-grid.two{grid-template-columns:1fr}}

/* ===== 09.05.26 (v13) — forensic-review implementation: case anatomy, results panel, brand row ===== */
:root{--cream:#F6F1E7}
/* logo slot (H-2): brand mark, single colour, below breadcrumb, above headline */
.logoslot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:26px 0 4px}
.logoslot .mark{display:inline-flex;align-items:center;height:28px;font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:1.05rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);line-height:1}
.logoslot .mark.secondary{font-size:.82rem;color:var(--mut);letter-spacing:.16em}
.logoslot .mark img,.logoslot .mark svg{width:auto;display:block}
.logoslot .mark{height:auto}
.logoslot .sep{height:30px}
.logoslot .sep{width:1px;height:22px;background:var(--line)}
.logoslot .redact{display:inline-flex;align-items:center;height:28px;padding:0 14px;background:var(--ink);color:var(--cream);font-family:'Inter',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.logoslot .conf{flex-basis:100%;font-size:.8rem;color:var(--mut);font-style:italic;margin-top:2px;max-width:70ch}
/* type hierarchy (H-3) */
.case-hero h1{font-weight:400;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.08;max-width:22ch}
.case-hero .dek{font-size:1.35rem;color:var(--ink);opacity:.8;line-height:1.4;max-width:60ch}
.lab{font-size:.75rem;letter-spacing:.12em;font-weight:600}
.case-sec p{font-size:1.0625rem;line-height:1.65}
.case-sec p.big{font-size:1.2rem;line-height:1.55;max-width:66ch}
.case-sec h3.sub{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:400;font-size:1.15rem;margin:22px 0 8px;color:var(--ink)}
.insight{background:var(--paper);padding:10px 0 24px}
.insight .lab{color:var(--wine)!important}
.insight p.line{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.5rem;line-height:1.35;color:var(--pine);border-left:3px solid var(--gold);padding-left:22px;margin:22px 0 0;max-width:46ch}
.insight p.setup{max-width:70ch;font-size:1.0625rem;margin-bottom:6px}
.insight p.setup+p.setup{margin-top:10px}
/* links in copy */
.case-sec a,.insight a,.results a,.figure figcaption a,.credits a{color:var(--pine);text-decoration:none;border-bottom:1px solid var(--sage)}
.case-sec a:hover,.insight a:hover,.figure figcaption a:hover,.credits a:hover{border-bottom-color:var(--pine)}
.linkbank{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.9rem}
.linkbank li a{border-bottom:1px solid var(--sage)}
.linkbank li a::before{content:"\2197\00a0";color:var(--gold)}
/* results panel — "What it meant" */
.results{background:var(--pine);color:var(--cream);padding:60px 0 54px;margin-top:10px}
.results.wine{background:var(--wine)}
.results .lab{color:var(--gold)!important;margin-bottom:22px}
.results .r{max-width:72ch;margin-bottom:26px}
.results .r:last-of-type{margin-bottom:0}
.results h3{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:1.45rem;line-height:1.25;margin-bottom:8px;color:#fff}
.results p{font-size:1.0125rem;line-height:1.6;color:var(--cream);opacity:.92}
.results .num{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:400;color:var(--gold);font-size:1.55rem;line-height:1;padding:0 .08em}
.results .big{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:22px 28px;margin:6px 0 16px;max-width:900px}
.results .big div{border-top:1px solid rgba(246,241,231,.25);padding-top:12px}
.results .big .v{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:2.75rem;line-height:1;color:var(--gold)}
.results .big .l{font-size:.8125rem;color:var(--cream);opacity:.75;margin-top:8px;line-height:1.4}
.results .attr{font-style:italic;font-size:.8125rem;opacity:.78;margin:8px 0 26px}
.results a{color:var(--cream);border-bottom:1px solid rgba(246,241,231,.5)}
.results a:hover{border-bottom-color:#fff;text-decoration:none}
/* pull quote — LinkedIn recommendation, name linked, no company */
section.quote{padding:54px 0 30px}
blockquote.pull{font-size:1.5rem;line-height:1.4;max-width:44ch;font-weight:400}
blockquote.pull footer{margin-top:16px;font-size:.875rem;letter-spacing:.06em;text-transform:none}
blockquote.pull footer a{font-variant:all-small-caps;letter-spacing:.1em;font-size:1.05rem;color:var(--pine);border-bottom:1px solid var(--sage)}
blockquote.pull footer a:hover{border-bottom-color:var(--pine);text-decoration:none}
/* role + credits */
.credits{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:980px}
@media(max-width:760px){.credits{grid-template-columns:1fr}}
.credits .rolecard{max-width:none;height:100%}
.credits .rolecard p{font-size:.95rem;margin-bottom:8px}
/* closing grid — full portfolio list on every case */
.allwork{border-top:1px solid var(--line);padding:44px 0 20px}
.allwork ol{list-style:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px 34px}
@media(max-width:820px){.allwork ol{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.allwork ol{grid-template-columns:1fr}}
.allwork li{border-bottom:1px solid var(--line)}
.allwork li a{display:block;padding:12px 0 12px;color:var(--ink);text-decoration:none}
.allwork li a:hover{color:var(--pine);text-decoration:none}
.allwork li a .n{font-family:'Fraunces',Georgia,serif;color:var(--mut);font-size:.85rem;margin-right:8px}
.allwork li a .b{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--pine);font-weight:600;margin-top:2px}
.allwork li a .t{font-family:'Fraunces',Georgia,serif;font-size:1.02rem;line-height:1.3}
.allwork li.here a{color:var(--mut)}
.allwork li.here a .t::after{content:"  — this page";font-family:'Inter',sans-serif;font-size:.75rem;color:var(--mut)}
.allwork li.more{grid-column:1/-1;border:0;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);font-weight:600;padding-top:14px}
/* figures */
.figure figcaption{font-size:.85rem;color:var(--mut)}
.figure .cred{color:var(--faint)}
.embed{border:1px solid var(--line);background:var(--stone);padding:22px 24px;max-width:980px}
.embed .lab{margin-bottom:6px}
.embed p{font-size:.95rem;max-width:70ch}
.embed .yt{position:relative;aspect-ratio:16/9;background:var(--ink);margin-top:14px;max-width:720px}
.embed .yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.embed .yt a.play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--cream);font-family:'Fraunces',Georgia,serif;font-size:1.2rem;text-decoration:none;border:0}
.embed .yt a.play span{border:1px solid var(--gold);padding:12px 22px;background:rgba(28,27,31,.6)}
.ugc{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;max-width:980px}
.ugc blockquote{background:var(--stone);padding:20px 22px;font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.02rem;line-height:1.45;margin:0}
.ugc blockquote footer{font-family:'Inter',sans-serif;font-style:normal;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin-top:12px}
.ugc blockquote footer a{border-bottom:1px solid var(--sage)}
/* hub page (Fidelity firsts) */
.hubnav{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.85rem;font-weight:600;margin:14px 0 4px}
.hubnav a{color:var(--pine);border-bottom:1px solid var(--sage);text-decoration:none}
.hub .case-sec h2{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:1.6rem;margin-bottom:10px;scroll-margin-top:24px}
.hub .case-sec h2 .h{color:var(--gold);margin-right:6px}
/* homepage — brand row, flagship grid, more-work strip */
.brandrow{margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}
.brandrow .kicker{font-size:.72rem}
.brandrow ul{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline}
.brandrow li a{font-family:'Fraunces',Georgia,serif;font-weight:700;font-variant:all-small-caps;letter-spacing:.12em;font-size:1.15rem;color:var(--ink);text-decoration:none;border-bottom:2px solid transparent}
.brandrow li a:hover,.brandrow li a:focus-visible{color:var(--pine);border-bottom-color:var(--pine);text-decoration:none}
.brandrow li a .cf{font-family:'Inter',sans-serif;font-variant:normal;letter-spacing:.06em;font-weight:400;font-size:.7rem;color:var(--mut);margin-left:4px;text-transform:uppercase}
.work-grid.flag .tile.lead{grid-column:1/-1}
.work-grid.flag .tile.lead .tile-art img,.work-grid.flag .tile.lead .tile-art svg{aspect-ratio:1280/440;object-fit:cover;width:100%;height:auto}
.work-grid.flag .tile.lead h3{font-size:1.75rem}
.work-grid.flag .tile.lead .tile-hook{font-size:1.06rem;max-width:64ch}
.tile-art img,.tile-art svg{aspect-ratio:1280/600;object-fit:cover;width:100%;height:auto}
.more-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:18px}
@media(max-width:900px){.more-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.more-grid{grid-template-columns:1fr}}
.more-grid .tile h3{font-size:1.1rem}
.more-grid .tile-hook{font-size:.9rem}
.more-grid .tile-art img{aspect-ratio:1280/720}
.worklist-zone+.worklist-zone{padding-top:20px}
/* footer additions */
footer.site .tm{font-size:.76rem;color:#96939C;margin-top:12px;max-width:80ch}
footer.site .social-foot a{margin-right:16px}
/* about — writing module */
.writing{border-top:1px solid var(--line);margin-top:26px;padding-top:20px}
.writing ul{list-style:none;padding:0;margin:8px 0 0}
.writing li{padding:8px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.writing li a{border-bottom:1px solid var(--sage);text-decoration:none}
.writing li .yr{color:var(--mut);font-size:.8rem;margin-left:8px}
.brandrow li a .cf{margin-left:8px}
/* v14c — mobile fixes: hero keeps its side padding; wide diagrams scroll instead of shrinking */
.case-hero.wrap{padding-left:24px;padding-right:24px}
.case-hero h1,.case-hero .dek,.case-hero .kicker{overflow-wrap:anywhere}
@media(max-width:700px){
.results .big{grid-template-columns:repeat(2,1fr)}
.case-hero h1{font-size:clamp(1.9rem,8vw,2.4rem)}
.case-hero .dek{font-size:1.15rem}
.logoslot .mark img{max-height:44px}
}
.hubnav a,.linkbank li a,.results p,.credits p{overflow-wrap:anywhere}
@media(max-width:700px){.results .big .v{font-size:2.1rem}.results .big{gap:18px 16px}}

/* v14d — homepage brand row: official marks (single colour), biopharma as redaction device */
.brandrow ul{gap:18px 34px;align-items:center;margin-top:14px}
.brandrow li a{display:inline-flex;align-items:center;border-bottom:0;opacity:1}
.brandrow li a:hover,.brandrow li a:focus-visible{opacity:1;border-bottom:0}
.brandrow li a img{display:block;width:auto}
.brandrow li a.redact{gap:10px}
.brandrow li a.redact .bar{display:inline-flex;align-items:center;height:24px;padding:0 12px;background:var(--ink);color:var(--cream);font-family:'Inter',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.brandrow li a.redact .cf{font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.06em;color:var(--mut);text-transform:uppercase;margin:0}
@media(max-width:640px){.brandrow ul{gap:14px 24px}.brandrow li a img{max-height:32px}}

/* v14e — no horizontal swipes: figures fit the width; tap/click to enlarge (assets/zoom.js) */
.figure figure{overflow:visible}
.figure figure>svg,.case-art>svg,.photo-fig img,.photo-grid img{max-width:100%;height:auto}
.zoomable{cursor:zoom-in}
.zoom-tap{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin:8px 0 2px;font-weight:600}
.zoom-tap::before{content:"\2922\00a0";color:var(--gold)}
.zoom-overlay{position:fixed;inset:0;background:#1C1B1F;z-index:1000;display:none;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}
.zoom-overlay.on{display:block}
html.zoom-lock,html.zoom-lock body{overflow:hidden}
.zoom-stage{padding:70px 16px 60px;min-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.zoom-stage>svg,.zoom-stage>img{width:max(100%,900px);max-width:none;height:auto;background:#fff;display:block}
.zoom-stage>svg{border:1px solid #3A383F}
.zoom-cap{color:var(--cream);font-size:.9rem;max-width:70ch;opacity:.85}
.zoom-cap a{color:var(--sage)}
.zoom-close{position:fixed;top:12px;right:12px;width:44px;height:44px;border:1px solid var(--gold);background:var(--ink);color:var(--cream);font-size:1.6rem;line-height:1;cursor:pointer;z-index:1001}
.zoom-hint{position:fixed;bottom:14px;left:0;right:0;text-align:center;color:var(--cream);opacity:.7;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;z-index:1001}
@media(min-width:900px){.zoom-stage>svg,.zoom-stage>img{width:min(1400px,96vw)}}
.figure svg,.case-art svg,.tile-art svg{overflow:hidden}
html,body{overflow-x:clip}

/* ============================================================
   v1.17 — brand-system unification
   • Canonical gold = #C5A253 (matches the master résumé rule)
   • Core identity evolves to deep evergreen + gold + ink + warm stone
   • Wine (#76303B) retired: remapped to evergreen; crisis panel → ink
   • Gold is an accent/rule/large-numeral/dark-bg colour ONLY — never
     small text or links on white (it is ~2.4:1 on white, below AA).
   ============================================================ */
:root{
  --gold:#C5A253;          /* canonical Elizabeth gold (résumé rule) */
  --gold-deep:#9B7B33;     /* AA-safe gold for the rare small mark on white (4.5:1) */
  --pine:#077D5A;          /* primary green (09.16.26: was #1E4D3B) — 5.1:1 on white */
  --pine2:#2E6B53;         /* lighter evergreen accent — 5.8:1 on white */
  --wine:#077D5A;          /* RETIRED: any remaining wine reference resolves to evergreen */
  --sage:#A9C7B4;          /* light decorative accent only */
}
/* signature motif: a 3px evergreen rule with a gold tail at the very top of every page */
body::before{content:"";display:block;height:3px;width:100%;flex:0 0 auto;
  background:linear-gradient(90deg,var(--pine) 0 62%,var(--gold) 62% 100%)}

/* navigation: Work · About · Résumé · Connect — hover evergreen + gold underline, visible focus, persistent active */
nav.main a{position:relative;padding-bottom:3px}
nav.main a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--gold);transition:right .22s ease}
nav.main a:hover{color:var(--pine);text-decoration:none}
nav.main a:hover::after,nav.main a:focus-visible::after{right:0}
nav.main a[aria-current="page"]{color:var(--ink);font-weight:600}
nav.main a[aria-current="page"]::after{right:0}
nav.main a:focus-visible{outline:2px solid var(--pine);outline-offset:4px;border-radius:1px}
body.home nav.main a:hover{color:var(--pine)}
body.home nav.main a[aria-current="page"]{color:var(--ink)}
details.mnav nav a[aria-current="page"]{color:var(--pine);font-weight:600}

/* crisis results panel: ink instead of wine (near-black reads right for crisis, gold accents pop) */
.results.wine{background:var(--ink)}
/* secondary button: quiet ink outline rather than a second filled colour */
.btn.pine{background:transparent;color:var(--pine)!important;border:1px solid var(--pine)}
.btn.pine:hover{background:var(--pine);color:#fff!important}

/* homepage "Selected organizations": official full-colour marks at all times (v1.20 removed the monochrome/opacity treatment) */
.brandrow li a.wm{font-family:'Fraunces',Georgia,serif;font-weight:700;font-variant:all-small-caps;letter-spacing:.1em;font-size:1.15rem;color:var(--ink)}
.brandrow li a.wm:hover,.brandrow li a.wm:focus-visible{color:var(--pine)}

/* Astria hero: give the reconstructed ecosystem room to breathe */
.case-art.astria svg{aspect-ratio:1280/620;border:1px solid var(--line)}
/* platform identifier in the case logo slot (e.g. Sprinklr on Astria) */
.logoslot .mark.platform{flex-direction:column;align-items:flex-start;gap:2px;font-family:'Inter',sans-serif;font-weight:700;font-size:1rem;letter-spacing:.14em;color:var(--ink)}
.logoslot .mark.platform .ptag{font-size:.6rem;font-weight:700;letter-spacing:.22em;color:var(--pine);text-transform:uppercase}
/* related-work routing row */
.related{border-top:1px solid var(--line);padding:34px 0 6px}
.related .lab{margin-bottom:14px}
.related .rrow{display:flex;flex-wrap:wrap;gap:14px 34px}
.related a{font-family:'Fraunces',Georgia,serif;font-size:1.05rem;color:var(--ink);border-bottom:1px solid var(--sage);text-decoration:none}
.related a:hover{color:var(--pine);border-bottom-color:var(--pine)}
/* partnership portfolio map */
.pfmap svg{width:100%;height:auto;border:1px solid var(--line)}

/* v1.17.1 — footer build stamp restored; must always match the build/version */
footer.site .ver{font-size:.7rem;color:#96939C;margin-top:22px;letter-spacing:.06em}

/* v1.17.1 — homepage Astria lead tile uses the full case hero */
.work-grid.flag .tile.lead .tile-art svg.astria-home{aspect-ratio:1280/620;object-fit:contain;background:#1C1B1F}

/* ================= v1.18 — Hero V3 (white/gold) as the homepage treatment ================= */
body::before{height:4px}                              /* slightly stronger signature ribbon */
/* gold-framed portrait + caption, flush to the border, stronger portrait proportion */
body.home .art.photo{outline:0;border:3px solid var(--gold);background:var(--cream);gap:0;align-items:stretch;justify-content:stretch;overflow:hidden}
body.home .art.photo img{flex:0 0 55%;width:55%;height:auto;max-height:none;object-fit:cover;object-position:center top;display:block}
body.home .art.photo .tagblock{flex:1 1 45%;background:var(--pine);color:var(--cream);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px 22px;max-width:none}
body.home .art.photo .tagblock b{color:var(--gold);margin-bottom:8px}
@media(max-width:880px){body.home .art.photo img{width:55%}}
/* warmstone panel behind the supporting line — builds hierarchy between tagline and quote */
body.home .hero-copy p.lede{background:var(--stone);border-left:3px solid var(--gold);padding:15px 20px;margin-top:14px}
/* the one intentional dash: — with a "dash" of crisis, links to the crisis case */
body.home .hero-copy .dash{margin:14px 0 2px;font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.05rem;color:var(--ink)}
body.home .hero-copy .dash a{color:var(--pine);border-bottom:1px dotted var(--gold);text-decoration:none}
body.home .hero-copy .dash a:hover{border-bottom-color:var(--pine)}
/* Selected organizations: real brand colours (no monochrome), gold rule above */
.brandrow{border-top:2px solid var(--gold)}
.brandrow li a img{filter:none;opacity:1}
.brandrow li a:hover img,.brandrow li a:focus-visible img{filter:none;opacity:1}
.brandrow li a.wm{color:var(--ink);opacity:1}
.brandrow li a.wm:hover,.brandrow li a.wm:focus-visible{color:var(--pine)}

/* ============================================================
   v1.20 — IA + homepage + evidence pass
   ============================================================ */
/* Primary nav: Work ▾ / About / Connect (Résumé moves to About, Connect and the footer) */
@media(min-width:641px){nav.main{display:flex;align-items:baseline}}
nav.main .dd{position:relative;margin-left:26px}
nav.main .dd>a{margin-left:0;display:inline-flex;align-items:center;gap:6px}
nav.main .dd>a .caret{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .2s}
nav.main .dd.open>a .caret,nav.main .dd:hover>a .caret,nav.main .dd:focus-within>a .caret{transform:rotate(180deg)}
nav.main .dd .menu{position:absolute;left:-18px;top:calc(100% + 14px);min-width:340px;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--gold);box-shadow:0 14px 34px rgba(28,27,31,.14);padding:16px 18px 14px;z-index:80;display:none;text-align:left}
nav.main .dd.open .menu,nav.main .dd:hover .menu,nav.main .dd:focus-within .menu{display:block}
nav.main .dd .menu .lab{display:block;font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--pine);margin:6px 0 6px}
nav.main .dd .menu .lab+.lab{margin-top:14px}
nav.main .dd .menu a{display:block;margin:0;padding:6px 0;font-size:.92rem;color:var(--ink);line-height:1.3;white-space:nowrap}
nav.main .dd .menu a::after{display:none}
nav.main .dd .menu a:hover,nav.main .dd .menu a:focus-visible{color:var(--pine)}
nav.main .dd .menu a.all{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-weight:600;color:var(--pine)}
nav.main .dd .menu a.all::after{display:none}
nav.main .dd>a[aria-current="page"]{color:var(--ink);font-weight:600}
@media(max-width:1000px){nav.main .dd .menu{left:auto;right:-18px}}
/* Mobile accordion inside the hamburger sheet */
details.mnav nav details{border-top:1px solid var(--line);padding-top:8px;margin-top:4px}
details.mnav nav details summary{list-style:none;cursor:pointer;color:var(--ink);font-size:1rem;display:flex;justify-content:space-between;align-items:center;padding:4px 0}
details.mnav nav details summary::-webkit-details-marker{display:none}
details.mnav nav details summary::after{content:"+";color:var(--pine);font-weight:600}
details.mnav nav details[open] summary::after{content:"\2212"}
details.mnav nav details a{display:block;font-size:.92rem;padding:6px 0 6px 12px;border-left:2px solid var(--stone);line-height:1.3}
details.mnav nav details .lab{display:block;font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--pine);margin:8px 0 2px}
details.mnav nav{min-width:250px;max-height:calc(100vh - 90px);overflow:auto}
/* Homepage capability rail: six clickable chips routing into /work/ anchors */
.caprail{list-style:none;padding:0;margin:16px 0 6px;display:flex;flex-wrap:wrap;gap:8px}
.caprail li a{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid var(--pine);color:var(--pine);font-family:'Inter',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;line-height:1.1;background:transparent;transition:background .18s,color .18s}
.caprail li a:hover{background:var(--pine);color:#fff;text-decoration:none}
.caprail li a:focus-visible{outline:2px solid var(--pine);outline-offset:3px;background:var(--stone)}
@media(max-width:640px){.caprail{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:-24px;margin-right:-24px;padding:0 24px 6px}.caprail::-webkit-scrollbar{display:none}.caprail li a{white-space:nowrap}}
body.home .hero-copy h1{max-width:22ch}
body.home .hero-copy p.lede{font-size:1.02rem;max-width:56ch}
/* /work/ index */
.workindex .intro{max-width:66ch;font-size:1.08rem;color:var(--ink2);margin-top:8px}
.workindex .caprail{margin:22px 0 8px}
.workindex .capsec{border-top:1px solid var(--line);padding:38px 0 8px;scroll-margin-top:24px}
.workindex .capsec:first-of-type{border-top:0}
.workindex .capsec h2{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.6rem;margin:6px 0 4px}
.workindex .capsec .why{color:var(--mut);max-width:62ch;margin:0 0 6px}
.workindex .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 22px;margin-top:16px}
@media(max-width:1000px){.workindex .grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.workindex .grid{grid-template-columns:1fr}}
.workindex .grid .tile h3{font-size:1.05rem}
.workindex .grid .tile-hook{font-size:.92rem}
.workindex .grid .tile-art img,.workindex .grid .tile-art svg{aspect-ratio:1280/620;object-fit:cover;width:100%;height:auto}
.workindex .grid .tile-art{background:#1C1B1F}
.workindex .allindex ol{grid-template-columns:repeat(2,1fr)}
/* Capital One operating model: Before / During / At the Final Four / After */
.opmodel{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);margin:18px 0 8px}
.opmodel>div{padding:18px 18px 16px;border-left:1px solid var(--line);position:relative}
.opmodel>div:first-child{border-left:0}
.opmodel>div::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--pine)}
.opmodel>div:nth-child(3)::before{background:var(--gold)}
.opmodel .ph{font-size:.66rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--pine);margin:0 0 6px}
.opmodel h4{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.08rem;margin:0 0 8px;line-height:1.25}
.opmodel ul{margin:0;padding-left:16px;font-size:.9rem;color:var(--ink2)}
.opmodel li{margin:3px 0}
@media(max-width:820px){.opmodel{grid-template-columns:1fr 1fr}.opmodel>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.opmodel>div:nth-child(4){border-top:1px solid var(--line)}}
@media(max-width:480px){.opmodel{grid-template-columns:1fr}.opmodel>div{border-left:0;border-top:1px solid var(--line)}.opmodel>div:first-child{border-top:0}}
/* Astria: risk/reach definitions + real-time examples module */
.defs{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:14px 0 6px}
.defs>div{background:var(--stone);border-left:3px solid var(--gold);padding:14px 18px}
.defs b{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--pine);margin-bottom:4px}
.defs p{margin:0;font-size:.95rem}
@media(max-width:640px){.defs{grid-template-columns:1fr}}
.rtex{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 22px;margin:16px 0 4px}
.rtex>div{border:1px solid var(--line);padding:16px 18px 14px}
.rtex .when{font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--pine)}
.rtex h4{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.08rem;margin:6px 0 6px;line-height:1.25}
.rtex p{margin:0;font-size:.92rem;color:var(--ink2)}
.rtex .need{display:block;margin-top:8px;font-size:.8rem;color:var(--mut)}
.rtex .need b{color:var(--pine);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}
@media(max-width:640px){.rtex{grid-template-columns:1fr}}
/* case logo slot: Sprinklr official horizontal mark */
.logoslot .mark.platform img.sprinklr{height:30px;width:auto}
/* Résumé link moves to the footer */
footer.site .social-foot a.res{border-bottom:1px solid var(--sage)}
.morenote{margin:6px 0 0;color:var(--ink2);font-size:.95rem}
.morenote a{color:var(--pine);border-bottom:1px solid var(--sage);text-decoration:none}
.morenote a:hover{border-bottom-color:var(--pine)}
.workindex-hero{padding-top:8px}
.workindex-hero h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.14;max-width:22ch;margin:12px 0 10px}
.work-index .crumbs{margin-top:10px}
.results .lab.sub{margin-top:26px;font-size:.66rem;letter-spacing:.2em}
.results .attr{font-size:.82rem;color:var(--mut)}
blockquote.pull.interior{margin:18px 0 6px;padding:0 0 0 18px;border-left:3px solid var(--gold)}
blockquote.pull.interior p{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.35rem;margin:0;color:var(--pine)}
.case-hero .deep{margin:14px 0 0}
.case-hero .deep a{display:inline-block;font-family:'Inter',sans-serif;font-size:.86rem;font-weight:700;letter-spacing:.04em;color:var(--pine);border:1px solid var(--pine);padding:9px 14px;text-decoration:none}
.case-hero .deep a:hover{background:var(--pine);color:#fff}
/* v1.21 */
body.home .art.photo .tagblock b{display:block;line-height:1.3;font-size:1.02rem}
.geo{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0 6px}
.geo>div{border:1px solid var(--line);padding:14px 18px}
.geo .ph{display:block;font-size:.66rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--pine);margin-bottom:6px}
.geo ul{margin:0;padding-left:16px;font-size:.92rem}
@media(max-width:560px){.geo{grid-template-columns:1fr}}
/* v1.21 portrait panel: three-line tagline + longer body; frame grows with the copy, image stretches to match */
body.home .art.photo{align-items:stretch}
body.home .art.photo img{flex:0 0 52%;width:52%;height:auto;align-self:stretch;object-fit:cover;object-position:center top}
body.home .art.photo .tagblock{flex:1 1 48%;padding:18px 18px;font-size:.88rem;line-height:1.42}
body.home .art.photo .tagblock b{font-size:.95rem;line-height:1.32;margin-bottom:10px;letter-spacing:.01em}
@media(max-width:880px){body.home .art.photo img{width:52%}}
body.home .art.photo img{flex:0 0 48%;width:48%}
body.home .art.photo .tagblock{flex:1 1 52%;padding:16px 14px;font-size:.86rem;line-height:1.4}
body.home .art.photo .tagblock b{font-size:.9rem;margin-bottom:9px}
body.home .art.photo .tagblock b .ln{display:block;white-space:nowrap}
@media(max-width:880px){body.home .art.photo img{width:48%}body.home .art.photo .tagblock{font-size:.92rem}body.home .art.photo .tagblock b{font-size:1rem}}
@media(max-width:420px){body.home .art.photo .tagblock{font-size:.84rem;padding:14px 10px}body.home .art.photo .tagblock b{font-size:.86rem}}
body.home .art.photo img{min-width:0;max-width:52%}body.home .art.photo .tagblock{min-width:0}
@media(max-width:430px){body.home .art.photo .tagblock{font-size:.8rem;padding:14px 8px}body.home .art.photo .tagblock b{font-size:.76rem;letter-spacing:0}}

/* ============================================================
   v1.23 — Selected Work mega-menu, About submenu, /elsewhere
   Existing tokens only: --pine --gold --ink --ink2 --stone --line --mut --cream
   ============================================================ */

/* ---- Selected Work: two-column mega-menu ---- */
nav.main .dd .menu.mega{min-width:600px;padding:18px 22px 16px}
nav.main .dd .menu.mega .megacols{display:grid;grid-template-columns:1fr 1fr;gap:0 38px}
nav.main .dd .menu.mega .megacol .lab{margin-top:0}
nav.main .dd .menu.mega .megacol .lab+.lab{margin-top:14px}
nav.main .dd .menu.mega a{white-space:normal}
nav.main .dd .menu.mega a.all{margin-top:14px}
/* Escape must beat :hover / :focus-within so the key genuinely closes the menu */
nav.main .dd.esc-closed .menu{display:none}
/* keep the wider menu on-screen: right-align it before it can reach the viewport edge */
nav.main .dd .menu.mega{max-width:calc(100vw - 40px)}
@media(max-width:1399px){nav.main .dd .menu.mega{left:auto;right:-18px}}
@media(max-width:860px){nav.main .dd .menu.mega{min-width:0;width:min(88vw,600px)}
  nav.main .dd .menu.mega .megacols{grid-template-columns:1fr;gap:0}}
/* About menu stays deliberately lighter than the Work mega-menu */
nav.main .dd .menu.about{min-width:230px;padding:14px 18px 12px}

/* Mobile sheet: Elsewhere indented under About, matching the case indent */
details.mnav nav a.sub{
  display:block;font-size:.92rem;padding:6px 0 6px 12px;
  border-left:2px solid var(--stone);line-height:1.3;color:var(--ink)
}
details.mnav nav a.sub[aria-current="page"]{color:var(--pine);font-weight:600;border-left-color:var(--pine)}

/* ---- /elsewhere ---- */
.els-top{padding:34px 0 0}
.els-top .crumbs{margin-top:0;margin-bottom:24px}
.els-h1{
  font-family:'Fraunces',Georgia,serif;font-weight:600;
  font-size:clamp(2rem,3.6vw,2.9rem);line-height:1.12;margin:0;max-width:20ch
}
.els-lede{
  font-family:'Fraunces',Georgia,serif;font-style:italic;
  font-size:1.18rem;color:var(--mut);margin-top:12px;max-width:44ch
}

/* one rhythm for every category block */
.els-sec{padding:clamp(54px,8vh,96px) 0 0}
.els-cat{
  font-family:'Inter',sans-serif;font-weight:700;font-size:.78rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--pine);
  margin:0 0 14px
}
.els-copy{font-size:1.0625rem;line-height:1.65;color:var(--ink2);max-width:60ch;margin:0 0 26px}

/* interiors — equal pair, never a reveal */
.els-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.els-pair figure{margin:0}
.els-pair img{display:block;width:100%;height:auto;border:1px solid var(--line);background:var(--stone)}
.els-st{
  font-family:'Fraunces',Georgia,serif;font-size:1rem;color:var(--ink);margin-top:10px
}
@media(max-width:700px){.els-pair{grid-template-columns:1fr;gap:18px}}
.els-aside{font-size:.95rem;color:var(--mut);margin:16px 0 0;max-width:54ch}


/* garden — upright, given room */
.els-garden{margin:0;max-width:660px}
.els-garden img{display:block;width:100%;height:auto;border:1px solid var(--line);background:var(--stone)}

/* poetry — a quiet reading environment, no photograph */
.els-poetry{margin-top:clamp(54px,8vh,96px);background:var(--stone);padding-top:0}
.els-poetry .wrap{padding-top:clamp(48px,7vh,80px);padding-bottom:clamp(54px,8vh,88px)}
.els-poem{max-width:38rem;border-top:2px solid var(--gold);padding-top:26px}
.els-poem-title{
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-style:italic;
  font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.15;margin:0 0 26px;color:var(--ink)
}
.els-poem-body p{
  font-family:'Fraunces',Georgia,serif;font-size:1.3125rem;line-height:1.66;
  color:var(--ink);margin:0 0 1.5em
}
.els-poem-body p:last-child{margin-bottom:0}
.els-allusions{
  font-family:'Inter',sans-serif;font-size:.8125rem;line-height:1.55;
  color:var(--mut);margin:44px 0 0;max-width:38rem
}
@media(max-width:640px){
  .els-poem-title{font-size:1.95rem}
  .els-poem-body p{font-size:1.1875rem;line-height:1.62}
}

/* About page: one quiet contextual link */
.els-link{margin:34px 0 0}
.els-link a{
  font-family:'Fraunces',Georgia,serif;font-size:1.05rem;color:var(--ink);
  border-bottom:1px solid var(--sage);text-decoration:none
}
.els-link a:hover{color:var(--pine);border-bottom-color:var(--pine)}

/* v1.23.2 — hover bridge: the menus sit 14px below their trigger (plus a 3px gold top border),
   so the pointer used to leave .dd while crossing that gap and the menu closed. This invisible
   strip fills the gap and is part of the menu, so :hover holds all the way down. */
nav.main .dd .menu::before{content:"";position:absolute;left:-1px;right:-1px;top:-18px;height:18px}


/* ===== v1.24 (09.16.26) — homepage hero rebuilt (split stage, capability index with drawer
   choreography, colour logo row), /work rebuilt as a single ordered index with tag filtering,
   case numbering retired, one "Company — kind of work" eyebrow per case sitewide. ===== */

/* --- home: stage --- */
body.home .homeview{display:block}
.hero24{display:grid;grid-template-columns:[full-start] minmax(24px,1fr) [copy-start] minmax(0,496px) [copy-end pane-start] minmax(0,calc(50% + 44px)) [full-end];min-height:600px;padding:0;border-bottom:1px solid var(--line)}
.hero24-copy{grid-column:copy-start/copy-end;padding:44px 40px 32px 0;display:flex;flex-direction:column;justify-content:space-between;gap:22px;min-width:0}
.hero24-top{display:grid;gap:18px}
.hero24-copy .kicker{font-size:.74rem;letter-spacing:.14em}
.hero24-copy h1{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.06;letter-spacing:-.01em;margin:0;max-width:17ch;color:var(--ink);text-wrap:balance}
.hero24-copy h1 em{font-style:italic;color:var(--pine)}
.hero24-copy .dash{margin:0;font-size:1.05rem;color:var(--ink2)}
.capindex{list-style:none;padding:12px 0 0;margin:0;border-top:1px solid var(--line)}
.capindex a{display:block;height:40px;line-height:40px;font-family:'Fraunces',Georgia,serif;font-size:1.08rem;color:var(--ink);text-decoration:none;transition:color .25s ease}
.capindex a:hover{text-decoration:none;color:var(--pine)}
.capindex a:focus-visible{outline:none;color:var(--pine)}
.capindex.live a{color:#B9B4AC}
.capindex.live a.hot{color:var(--mut)}
.hero24-orgs{display:grid;gap:10px}
.hero24-orgs .kicker{font-size:.64rem;color:var(--mut)!important}
.logos24{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;list-style:none;padding:0;margin:0}
.logos24 li{display:flex;align-items:center;height:26px}
.logos24 a{display:inline-flex;align-items:center;height:100%;line-height:0}
.logos24 img{display:block;width:auto}
.logos24 .mar img{height:20px}.logos24 .fid img{height:22px}.logos24 .cap img{height:30px}.logos24 .st img{height:36px}.logos24 .bru img{height:12px}.logos24 .mc img{height:22px}
.logos24 a:hover img{opacity:.75}

/* --- home: pane + choreography --- */
.hero24-pane{grid-column:pane-start/full-end;position:relative;overflow:hidden;background:var(--stone);border-left:1px solid var(--line);min-height:600px;--c1:#077D5A;--c2:#C5A253;--c3:#A9C7B4}
.hero24-pane>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;position:absolute;inset:0;transition:filter .45s ease,transform .6s ease}
.hero24-pane.active>img{filter:grayscale(.35) brightness(1.08);transform:scale(1.02)}
.hero24-pane .veil{position:absolute;inset:0;background:rgba(246,241,231,0);transition:background .45s ease;pointer-events:none}
.hero24-pane.active .veil{background:rgba(246,241,231,.62)}
.hero24-drawer{position:absolute;left:0;top:0;background:#fff;border:1px solid var(--line);border-left:0;padding:0 22px;box-sizing:border-box;overflow:hidden;width:0;opacity:0;will-change:width,height,top;pointer-events:none}
.hero24-drawer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;align-items:center;gap:0 18px;white-space:nowrap;height:44px}
.hero24-drawer.stack ul{flex-direction:column;align-items:flex-start;gap:6px 0;height:auto;padding:14px 0}
.hero24-drawer li{font-family:'Fraunces',Georgia,serif;font-size:1.02rem;color:var(--ink);line-height:1.3;will-change:transform}
.hero24-drawer li i{font-style:normal;color:var(--gold);padding-left:18px}
.hero24-drawer.stack li i{display:none}
.hero24-mark{position:absolute;top:0;height:240px;right:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;opacity:0;transform:translateX(56px);transition:opacity .4s ease,transform .5s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.hero24-mark.in{opacity:1;transform:translateX(0)}
.hero24-mark svg{width:min(86%,320px);height:auto}
.hero24-mark .lab{position:static;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--pine);white-space:nowrap;margin:0}
@media(max-width:880px){
  .hero24{grid-template-columns:1fr;min-height:0}
  .hero24-copy{grid-column:1;padding:32px 24px 28px}
  .hero24-pane{grid-column:1;min-height:0;aspect-ratio:4/3;border-left:0;border-top:1px solid var(--line)}
  .hero24-drawer,.hero24-mark{display:none}
}
@media(hover:none){.hero24-drawer,.hero24-mark,.hero24-pane .veil{display:none}}
@media (prefers-reduced-motion: reduce){.hero24-pane>img,.hero24-pane .veil,.hero24-mark,.capindex a{transition:none}}

/* --- home: selected work below the fold --- */
body.home .worklist-zone{padding-top:52px}
.alllink24{margin:26px 0 0;font-size:.95rem}
.alllink24 a{color:var(--pine);border-bottom:1px solid var(--sage);text-decoration:none}
.alllink24 a:hover{border-bottom-color:var(--pine)}

/* --- /work: ordered index --- */
.workindex24 .head{display:grid;gap:14px;max-width:70ch;padding-top:30px}
.workindex24 h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(1.9rem,3.6vw,2.8rem);line-height:1.15;margin:0;max-width:18ch}
.workindex24 h1 em{font-style:italic;color:var(--pine)}
.workindex24 .lede{margin:0;color:var(--ink2);font-size:1.05rem;max-width:60ch}
.workindex24 .showing{font-size:.82rem;color:var(--mut);min-height:1.3em;margin:26px 0 0}
.workindex24 .showing button{font:inherit;background:none;border:0;color:var(--pine);cursor:pointer;text-decoration:underline;padding:0}
.workindex24 ol{list-style:none;padding:0;margin:8px 0 40px;border-top:1px solid var(--line)}
.workindex24 li{display:grid;grid-template-columns:168px 1fr auto;gap:24px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);transition:opacity .25s}
.workindex24 li.dim{opacity:.22}
.workindex24 .row-art{display:block;aspect-ratio:1280/600;background:var(--ink);overflow:hidden;border:1px solid var(--line)}
.workindex24 .row-art img,.workindex24 .row-art svg{display:block;width:100%;height:100%;object-fit:cover}
.workindex24 .org{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pine);font-weight:700;margin:0 0 4px}
.workindex24 .org i{font-style:normal;color:var(--gold);padding:0 .3em}
.workindex24 h3{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.2rem;line-height:1.25;margin:0;max-width:34ch}
.workindex24 h3 a{color:var(--ink);text-decoration:none}
.workindex24 li:hover h3 a{color:var(--pine)}
.workindex24 .tg{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:280px}
.workindex24 .tg button{font:inherit;cursor:pointer;background:transparent;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);border:1px solid var(--line);padding:5px 9px;line-height:1.1;white-space:nowrap;transition:all .18s}
.workindex24 .tg button:hover{border-color:var(--pine);color:var(--pine)}
.workindex24 .tg button.hit{color:#fff;background:var(--pine);border-color:var(--pine)}
@media(max-width:760px){.workindex24 li{grid-template-columns:1fr;gap:10px}.workindex24 .tg{justify-content:flex-start;max-width:none}}

/* --- case pages: closing list without numbers --- */
.allwork li a .n{display:none}
.allwork ol{grid-template-columns:repeat(2,1fr)}
@media(max-width:560px){.allwork ol{grid-template-columns:1fr}}

.tile-kicker i,.allwork li a .b i{font-style:normal;color:var(--gold);padding:0 .3em}

/* ===================== v1.24.1 (09.16.26) ===================== */
/* header: name + tagline lockup */
.brandlock{display:flex;align-items:baseline;gap:14px;min-width:0}
.brandlock .tagline{font-family:'Inter',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--pine);white-space:nowrap;position:relative;padding-left:15px;line-height:1}
.brandlock .tagline::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-55%);width:1px;height:14px;background:var(--gold)}
@media(max-width:960px){.brandlock .tagline{display:none}}
/* nav: single-column case list */
nav.main .dd .menu.cases{min-width:340px;padding:14px 18px 12px}
nav.main .dd .menu.cases a{white-space:nowrap}
/* home hero */
.hero241{display:grid;grid-template-columns:[full-start] minmax(24px,1fr) [copy-start] minmax(0,600px) [copy-end pane-start] minmax(0,calc(50% - 40px)) [full-end];min-height:600px;padding:0;border-bottom:1px solid var(--line)}
.hero241-copy{grid-column:copy-start/copy-end;padding:56px 48px 44px 0;display:flex;flex-direction:column;justify-content:center;min-width:0}
.hero241-grp{display:grid;gap:48px}
.hero241 h1{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:clamp(1.6rem,2.7vw,2.35rem);line-height:1.08;letter-spacing:-.01em;margin:0;color:var(--ink);text-wrap:balance}
.hero241 h1 em{font-style:italic;color:var(--pine)}
.hero241 .dash{margin:16px 0 0;font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.1rem;color:var(--ink2)}
.hero241 .dash a{color:var(--wine);text-decoration:none;border-bottom:1px dotted var(--wine)}
.hero241 .dash a:hover{color:var(--pine);border-bottom-color:var(--pine)}
.hero241-orgs{display:grid;gap:18px;padding-top:24px;border-top:1px solid var(--line)}
.hero241-orgs .kicker{font-size:.66rem;letter-spacing:.14em;color:var(--mut)!important;text-align:center}
.orgset{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px 36px;list-style:none;padding:0;margin:0 auto;max-width:440px}
.orgset li{height:40px;display:flex;align-items:center}
.orgset a{display:inline-flex;align-items:center;height:100%;line-height:0}
.orgset img{display:block;width:auto;transition:opacity .2s}
.orgset .mar img{height:28px}.orgset .fid img{height:30px}.orgset .cap img{height:40px}.orgset .st img{height:44px}.orgset .bru img{height:15px}.orgset .mc img{height:30px}
.orgset a:hover img{opacity:.7}
.hero241-pane{grid-column:pane-start/full-end;position:relative;overflow:hidden;background:var(--stone);border-left:1px solid var(--line);min-height:600px}
.hero241-pane img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;position:absolute;inset:0}
@media(max-width:880px){
  .hero241{grid-template-columns:1fr;min-height:0}
  .hero241-copy{grid-column:1;padding:36px 24px 32px;justify-content:flex-start}
  .hero241-grp{gap:36px}
  .hero241-pane{grid-column:1;min-height:0;aspect-ratio:4/3;border-left:0;border-top:1px solid var(--line)}
}
/* case pages: eyebrow + capability chips */
.case-hero .kicker .dim{color:var(--mut)}
.case-hero .caps{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.case-hero .caps a{font-family:'Inter',sans-serif;font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);border:1px solid var(--line);padding:5px 9px;line-height:1.1;white-space:nowrap;text-decoration:none;transition:all .18s}
.case-hero .caps a:hover,.case-hero .caps a:focus-visible{border-color:var(--pine);color:var(--pine);text-decoration:none}
.case-hero .caps+h1{margin-top:14px}
/* about: portrait + caption block */
.about-grid .pblock{max-width:380px;border:1px solid #F4E3A1;background:#1E4D3B}
.about-grid .pblock img{display:block;width:100%;max-width:none}
.about-grid .pblock .pcap{margin:0;padding:16px 18px;font-size:.85rem;line-height:1.55;color:#F4E3A1}

/* ============================================================
   v1.25 — Holistic Revision Blueprint (09.17.26)
   One evergreen, one antique gold, warm ivory/paper neutrals, ink.
   To revert the palette only, delete the :root block below.
   ============================================================ */
:root{
  --pine:#173E35;--pine2:#173E35;--wine:#173E35;
  --ink:#1B1D1B;--ink2:#2B2E2B;
  --paper:#FFFDF9;--cream:#F6F2E9;--stone:#F6F2E9;
  --gold:#BDA079;--gold-deep:#7A6443;
  --line:#D8D1C5;--mut:#6B6D68;--faint:#6B6D68;--sage:#D8D1C5;
}
body{background:var(--cream)}
header.site{background:var(--paper)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--pine);outline-offset:3px}
.wrap{max-width:1180px}
.case-sec p,.insight p,.about-grid p{max-width:68ch}

/* ---- Selected Work dropdown: button trigger, ten direct links, two columns */
nav.main .dd>button.ddtrig{font:inherit;font-size:.95rem;letter-spacing:.02em;color:var(--mut);background:none;border:0;cursor:pointer;padding:0 0 3px;display:inline-flex;align-items:center;gap:6px;min-height:44px}
nav.main .dd>button.ddtrig:hover,nav.main .dd.open>button.ddtrig{color:var(--pine)}
nav.main .dd>button.ddtrig.cur{color:var(--ink);font-weight:600}
nav.main .dd>button .caret{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .2s}
nav.main .dd.open>button .caret{transform:rotate(180deg)}
nav.main .dd .menu.cases25{display:none;left:auto;right:-120px;width:780px;max-width:calc(100vw - 40px);min-width:0;padding:18px 26px 14px;background:var(--paper);border:1px solid var(--line);border-top:1px solid var(--gold);box-shadow:none}
nav.main .dd:hover .menu.cases25,nav.main .dd:focus-within .menu.cases25{display:none}
nav.main .dd.open .menu.cases25{display:block}
nav.main .dd .menu.cases25 ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(5,auto);grid-auto-flow:column;gap:0 40px}
nav.main .dd .menu.cases25 li a{display:block;white-space:normal;font-size:.96rem;line-height:1.35;padding:9px 0;color:var(--ink);border-bottom:1px solid transparent}
nav.main .dd .menu.cases25 li a:hover,nav.main .dd .menu.cases25 li a:focus-visible{color:var(--pine);text-decoration:underline;text-underline-offset:3px}
@media(max-width:1100px){nav.main .dd .menu.cases25{right:-160px}}
@media(max-width:900px){nav.main .dd .menu.cases25{right:-150px;width:640px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ---- mobile: one expandable section, flat list of ten */
details.mnav nav{min-width:min(320px,calc(100vw - 32px))}
details.mnav nav>a{min-height:44px;display:flex;align-items:center}
details.mnav nav details.mwork{border-top:0;padding-top:0;margin-top:0}
details.mnav nav details.mwork summary{min-height:44px;font-size:1rem}
details.mnav nav details.mwork ol{list-style:none;margin:0;padding:0}
details.mnav nav details.mwork li a,details.mnav nav details.mwork a.all{display:flex;align-items:center;min-height:44px;font-size:.92rem;line-height:1.3;padding:6px 0 6px 12px;border-left:2px solid var(--line);white-space:normal}
details.mnav nav details.mwork a.all{font-weight:600;color:var(--pine)}

/* ---- homepage hero */
.hero241 h1{font-size:clamp(2.35rem,4.4vw,4.1rem);line-height:1.05;font-weight:400;text-wrap:initial}
.hero241 .herosup{margin:22px 0 0;font-size:1.05rem;line-height:1.6;color:var(--ink2);max-width:46ch}
.hero241-pane{background:var(--cream)}
@media(max-width:900px){.hero241 h1{font-size:clamp(2.3rem,9.5vw,2.75rem)}}
.tile-kicker,.workindex24 .org{letter-spacing:.06em;text-transform:none;font-size:.8rem;font-weight:600;color:var(--pine)}
.tile,.work-grid .tile{box-shadow:none}
.tile-art,.workindex24 .row-art{background:var(--ink)}

/* ---- case pages */
.case-hero .kicker{letter-spacing:.06em;text-transform:none;font-size:.9rem}
.case-hero ul.caps{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.case-hero ul.caps a{font-family:'Inter',sans-serif;font-size:.74rem;font-weight:500;letter-spacing:.02em;color:var(--mut);border:1px solid var(--line);padding:6px 10px;line-height:1.1;white-space:nowrap;text-decoration:none;display:block}
.case-hero ul.caps a:hover,.case-hero ul.caps a:focus-visible{border-color:var(--pine);color:var(--pine)}
.case-hero ul.caps+h1{margin-top:16px}
.case-hero h1{font-size:clamp(2.1rem,4.2vw,3.4rem);line-height:1.1}
.workindex24 .tg button{font-size:.72rem;letter-spacing:.02em;text-transform:none;font-weight:500;padding:6px 10px}
.workindex24 .tg{max-width:340px}
.related25{border-top:1px solid var(--line);padding:56px 0 28px}
.related25 ol{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 34px}
.related25 li{border-top:1px solid var(--line)}
.related25 li a{display:block;padding:16px 0 18px;color:var(--ink);text-decoration:none;min-height:44px}
.related25 li a .b{display:block;font-size:.8rem;font-weight:600;color:var(--pine);margin-bottom:6px}
.related25 li a .t{display:block;font-family:'Fraunces',Georgia,serif;font-size:1.15rem;line-height:1.3}
.related25 li a:hover .t{color:var(--pine)}
.related25 .viewall{margin:22px 0 0;font-weight:600}
@media(max-width:760px){.related25 ol{grid-template-columns:1fr}}

/* ---- crisis: three-stage sequence, public proof under each step */
.stages{padding:64px 0 24px}
.stagelist{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.stagelist li{border-top:2px solid var(--pine);padding-top:16px;display:flex;flex-direction:column;gap:20px}
.stagelist .st-copy{min-height:9.5em}
.stagelist .st-n{font-family:'Fraunces',Georgia,serif;font-size:1rem;color:var(--mut);margin:0 0 4px}
.stagelist h3{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.35rem;line-height:1.2;margin:0 0 8px}
.stagelist .st-copy p:last-child{font-size:.98rem;line-height:1.6;color:var(--ink2);margin:0}
.stagelist figure{margin:0}
.stagelist img{display:block;width:100%;height:auto;border:1px solid var(--line);background:var(--paper)}
.stagelist figcaption{font-size:.82rem;line-height:1.5;color:var(--mut);margin-top:10px}
.st-pull{margin:52px 0 0;padding:0 0 0 22px;border-left:2px solid var(--gold);max-width:30em}
.st-pull p{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.3;color:var(--ink);margin:0}
@media(max-width:860px){.stagelist{grid-template-columns:1fr;gap:40px}.stagelist .st-copy{min-height:0}.stagelist figure{max-width:460px}}

/* ---- about: bio + integrated personal section */
h1.sec{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(2.1rem,4vw,3.2rem);line-height:1.12;margin:14px 0 22px;max-width:18ch}
.about-cta{display:flex;gap:28px;flex-wrap:wrap;margin-top:26px;font-weight:600}
.about-cta a{min-height:44px;display:inline-flex;align-items:center}
#personal{margin-top:clamp(64px,9vh,104px);padding-top:clamp(48px,7vh,80px);border-top:1px solid var(--line)}
h2.els-h1{font-size:clamp(1.9rem,3.2vw,2.5rem);max-width:none}
.els-sec{padding-top:clamp(48px,7vh,80px)}
.els-sub{font-family:'Fraunces',Georgia,serif;font-size:1.5rem;line-height:1.25;margin:0 0 12px}
.els-gardenpair{max-width:860px}
.els-french{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.els-french .fr-num{font-family:'Fraunces',Georgia,serif;font-size:2.6rem;line-height:1;color:var(--ink);border:1px solid var(--line);border-top:4px solid var(--pine);background:var(--paper);padding:12px 18px 10px;font-variant-numeric:tabular-nums}
.els-french .fr-lab{color:var(--ink2);font-size:1.0625rem}
.els-garden figcaption.els-st{font-style:italic}
.els-poetry{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.els-poem{border-top:1px solid var(--gold)}
h4.els-poem-title{font-weight:600}
.els-writing{padding-bottom:clamp(54px,8vh,96px)}
.els-writing .writing{border-top:0;margin-top:0;padding-top:0;max-width:760px}
.els-writing h2.els-cat{margin-bottom:10px}
.els-audio audio{width:100%;max-width:420px;display:block}
.els-audio figcaption{font-size:.85rem;color:var(--mut);margin-top:8px;max-width:54ch}
/* hero: three declarative lines, never re-wrapped on desktop */
@media(min-width:901px){
  .hero241{grid-template-columns:[full-start] minmax(24px,1fr) [copy-start] minmax(0,690px) [copy-end pane-start] minmax(0,calc(50% - 130px)) [full-end]}
  .hero241 h1{font-size:clamp(2.2rem,3.55vw,3.25rem);white-space:nowrap}
}
@media(max-width:1100px){.brandlock .tagline{display:none}}
.case-hero ul.caps a{text-transform:none}
.els-garden{max-width:520px}.els-gardenpair{max-width:860px}

.related25 li a .b{font-family:'Inter',sans-serif}
footer.site .kicker{color:var(--gold)!important}
@media(max-width:900px){header.site .wrap{position:relative}nav.main .dd{position:static}nav.main .dd .menu.cases25{left:24px;right:24px;width:auto;max-width:none;top:calc(100% + 10px)}}
@media(max-width:900px){.hero241 h1{font-size:min(7.1vw,3rem);white-space:nowrap;line-height:1.12}}
.els-audio{margin:4px 0 18px}
.els-audio audio{height:44px}
.els-audio figcaption b{color:var(--ink2);font-weight:600}
/* Boring Calm: portrait beside the copy and player */
.bc-grid{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:36px;align-items:center;max-width:900px}
.bc-photo{margin:0}
.bc-photo img{display:block;width:100%;height:auto;border:1px solid var(--line);background:var(--ink)}
.bc-copy .els-copy{margin-bottom:20px}
@media(max-width:700px){.bc-grid{grid-template-columns:1fr;gap:22px}.bc-photo{max-width:260px}}
/* Boring Calm: three-track stack */
.bc-grid{align-items:start}
.bc-tracks{list-style:none;margin:6px 0 20px;padding:0;border-top:1px solid var(--line)}
.bc-tracks li{padding:16px 0 18px;border-bottom:1px solid var(--line)}
.bc-meta{display:flex;align-items:baseline;gap:12px}
.bc-n{font-size:.78rem;color:var(--mut);font-variant-numeric:tabular-nums;letter-spacing:.06em}
h4.bc-t{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:1.2rem;line-height:1.25;color:var(--ink);margin:0}
.bc-d{margin-left:auto;font-size:.85rem;color:var(--mut);font-variant-numeric:tabular-nums}
.bc-desc{font-size:.92rem;color:var(--mut);margin:2px 0 10px;padding-left:30px}
.bc-desc cite{font-style:italic}
.bc-tracks audio{display:block;width:calc(100% - 30px);max-width:440px;height:44px;margin-left:30px}
@media(max-width:700px){.bc-desc{padding-left:0}.bc-tracks audio{margin-left:0;width:100%}}

/* ============================================================
   v1.26 — Brand system, IA and page rebuild (09.18.26)
   One green family (Evergreen #173E35 / Verdigris #2C6D5C), warm ivory
   neutrals, ink, and gold used only as a hairline or on green panels.
   Separator rule: inline meta uses a gold interpunct; block lists use hairlines.
   ============================================================ */
:root{
  --pine:#173E35;      /* Evergreen 900 — panels, emphasis, buttons */
  --pine2:#173E35;
  --accent:#2C6D5C;    /* Verdigris 600 — links, kickers, labels, rules, focus */
  --wine:#2C6D5C;      /* legacy token now maps to the accent */
  --sage:#DCE7E1;      /* Sage tint — soft fills */
  --ink:#1B1D1B;--ink2:#2B2E2B;
  --paper:#FFFDF9;--cream:#F6F2E9;--stone:#F6F2E9;
  --gold:#BDA079;--gold-deep:#7A6443;
  --line:#D8D1C5;--mut:#5F625D;--faint:#5F625D;
}
a{color:var(--accent)}
a:hover{color:var(--pine)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.kicker,.lab,.tile-kicker,.workindex24 .org,.connect-list .t,.defs b,.rtex .when,.rtex .need b{color:var(--accent)!important}
.insight .lab{color:var(--accent)!important}
.insight p.line{color:var(--pine);border-left-color:var(--gold)}
.btn{background:var(--pine);border-color:var(--pine)}
.btn:hover{background:#0F2C26}
.btn.pine{background:var(--pine);border-color:var(--pine)}
.results{background:var(--pine)}
.results.wine{background:var(--pine)}
.results .lab{color:var(--gold)!important}
nav.main a:hover,nav.main .dd>button.ddtrig:hover,nav.main .dd.open>button.ddtrig{color:var(--accent)}
.logo:hover{color:var(--accent)}
.tile:hover h3,.workindex24 li:hover h3 a,.related25 li a:hover .t{color:var(--accent)}
.related25 li a .b{color:var(--accent)}
.resume .role{color:var(--accent)}
.stagelist li{border-top-color:var(--accent)}
.els-french .fr-num{border-top-color:var(--accent)}
header.site{border-bottom:1px solid var(--line)}
.brandlock .tagline{color:var(--mut)}

/* ---- Selected Work panel: one level, grouped by organization (no nesting) */
nav.main .dd .menu.cases26{display:none;position:absolute;left:auto;right:-140px;top:calc(100% + 10px);width:820px;max-width:calc(100vw - 40px);padding:22px 28px 14px;background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--gold);box-shadow:0 10px 30px rgba(27,29,27,.06);z-index:40;text-align:left}
nav.main .dd.open .menu.cases26{display:block}
nav.main .dd .menu.cases26 .cols{display:grid;grid-template-columns:1.05fr 1fr;gap:0 44px}
nav.main .dd .menu.cases26 ul{list-style:none;margin:0;padding:0}
nav.main .dd .menu.cases26 li.grp{margin:0 0 18px}
nav.main .dd .menu.cases26 .grp-h{display:block;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pine);padding:0 0 6px;border-bottom:1px solid var(--line);margin-bottom:4px}
nav.main .dd .menu.cases26 .grp-h i{font-style:normal;font-weight:400;letter-spacing:.02em;text-transform:none;color:var(--mut);margin-left:8px}
nav.main .dd .menu.cases26 li li a{display:block;white-space:normal;font-size:.95rem;line-height:1.35;padding:7px 0;margin:0;color:var(--ink);border:0}
nav.main .dd .menu.cases26 li li a:hover,nav.main .dd .menu.cases26 li li a:focus-visible{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
nav.main .dd .menu.cases26 .navsub{color:var(--mut);font-size:.86em}
nav.main .dd .menu.cases26 .menu-foot{display:flex;gap:26px;flex-wrap:wrap;margin:6px 0 0;padding-top:12px;border-top:1px solid var(--line)}
nav.main .dd .menu.cases26 .menu-foot a{font-weight:600;font-size:.9rem;color:var(--accent);margin:0;padding:6px 0}
nav.main .dd .menu.cases26 .menu-foot a.early{color:var(--mut);font-weight:500}
@media(max-width:1180px){nav.main .dd .menu.cases26{right:-180px}}
@media(max-width:900px){header.site .wrap{position:relative}nav.main .dd{position:static}nav.main .dd .menu.cases26{left:24px;right:24px;width:auto;max-width:none}}
/* mobile accordion: org headings as labels, cases beneath */
details.mnav nav details.mwork .mgrp{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pine);margin:14px 0 4px}
details.mnav nav details.mwork ol{margin:0 0 4px}
details.mnav nav details.mwork li a{border-left:2px solid var(--line)}

/* ---- footer */
footer.site{background:var(--ink)}
footer.site a{color:var(--sage)}
footer.site .kicker{color:var(--gold)!important}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:end}
.foot-lede{max-width:46ch;color:#CFCBC2;margin:4px 0 18px;font-size:1rem}
.foot-side{border-left:1px solid rgba(216,209,197,.25);padding-left:28px}
.foot-loc{font-size:.92rem;color:#CFCBC2;max-width:34ch;margin:0}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr;gap:22px}.foot-side{border-left:0;padding-left:0;border-top:1px solid rgba(216,209,197,.25);padding-top:18px}}

/* ---- homepage hero */
.hero241 .herokick{font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 16px}
.hero241 .herosup{max-width:50ch;font-size:1.06rem;color:var(--ink2)}
.hero241 .herosup+.herosup{margin-top:10px}
.hero-cta{display:flex;gap:22px;flex-wrap:wrap;margin:22px 0 0;align-items:center}
.hero-cta .btn{padding:11px 18px;font-size:.92rem}
.hero-cta a.quiet{font-weight:600;color:var(--accent);min-height:44px;display:inline-flex;align-items:center}
.hero241-orgs .kicker{font-size:.66rem;letter-spacing:.14em;color:var(--mut)!important;text-align:center}
.orgset{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:22px 34px;list-style:none;padding:0;margin:0}
.orgset li a{display:inline-flex;align-items:center;min-height:44px;padding:4px 2px;opacity:.9;transition:opacity .2s}
.orgset li a:hover{opacity:1}
.orgset li img{display:block;height:auto}
.orgset li.mtom img{width:52px;height:auto}
.orgset li.mc img{width:78px}
.orgset li.wlg img{width:40px}
@media(max-width:600px){.orgset{gap:18px 26px}}

/* ---- work index: grouped by organization, no filters */
.workindex26 .head{display:grid;gap:14px;max-width:70ch;padding-top:30px}
.workindex26 h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(1.9rem,3.6vw,2.8rem);line-height:1.15;margin:0;max-width:20ch}
.workindex26 h1 em{font-style:italic;color:var(--accent)}
.workindex26 .lede{margin:0;color:var(--ink2);font-size:1.05rem;max-width:60ch}
.wi-jump{display:flex;flex-wrap:wrap;gap:6px 18px;margin:22px 0 0;padding:0;list-style:none;font-size:.86rem}
.wi-jump a{color:var(--accent);font-weight:600;min-height:36px;display:inline-flex;align-items:center}
.wi-group{margin:44px 0 0;padding-top:22px;border-top:2px solid var(--pine)}
.wi-group:first-of-type{margin-top:34px}
.wi-org{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin:0 0 4px}
.wi-org h2{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.5rem;margin:0}
.wi-org .yrs{font-size:.86rem;color:var(--mut)}
.wi-role{margin:0 0 10px;color:var(--ink2);font-size:.95rem;max-width:70ch}
.wi-list{list-style:none;padding:0;margin:0}
.wi-list li{display:grid;grid-template-columns:168px 1fr;gap:24px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}
.wi-list .row-art{display:block;aspect-ratio:1280/600;background:var(--ink);overflow:hidden;border:1px solid var(--line)}
.wi-list .row-art img,.wi-list .row-art svg{display:block;width:100%;height:100%;object-fit:cover}
.wi-list .org{font-size:.8rem;font-weight:600;color:var(--accent);margin:0 0 4px}
.wi-list h3{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.2rem;line-height:1.25;margin:0;max-width:34ch}
.wi-list h3 a{color:var(--ink);text-decoration:none}
.wi-list li:hover h3 a{color:var(--accent)}
.wi-list .hook{margin:6px 0 0;font-size:.95rem;color:var(--ink2);max-width:60ch}
.wi-writing{list-style:none;padding:0;margin:8px 0 0;max-width:760px}
.wi-writing li{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.wi-writing li a{font-family:'Fraunces',Georgia,serif;font-size:1.08rem;color:var(--ink)}
.wi-writing li a:hover{color:var(--accent)}
.wi-writing .yr{font-size:.82rem;color:var(--mut);white-space:nowrap}
@media(max-width:700px){.wi-list li{grid-template-columns:1fr;gap:12px}.wi-list .row-art{max-width:360px}}

/* ---- about: sub-navigation + portrait block */
.about-subnav{display:flex;gap:22px;flex-wrap:wrap;margin:0 0 8px;padding:0;list-style:none;font-size:.84rem}
.about-subnav a{color:var(--mut);font-weight:600;min-height:40px;display:inline-flex;align-items:center;border-bottom:2px solid transparent}
.about-subnav a[aria-current="true"],.about-subnav a:hover{color:var(--pine);border-bottom-color:var(--gold);text-decoration:none}
.about-grid .pblock{border:0;background:var(--pine)}
.about-grid .pblock .pcap{padding:14px 18px 6px;color:#F6F2E9}
.pfacts{list-style:none;margin:0;padding:6px 18px 14px;color:#F6F2E9;font-size:.86rem;line-height:1.5}
.pfacts li{padding:7px 0;border-top:1px solid rgba(246,242,233,.18)}
.pfacts li:first-child{border-top:0;padding-top:2px}
.pfacts b{font-weight:600;color:#FFFDF9}
.about-quote{margin:34px 0 0;padding:0 0 0 20px;border-left:2px solid var(--gold);max-width:60ch}
.about-quote p{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.15rem;line-height:1.45;margin:0 0 8px;color:var(--ink)}
.about-quote cite{font-style:normal;font-size:.82rem;color:var(--mut)}
.about-quote cite a{color:var(--accent)}
.about-grid h1.sec{max-width:16ch}
.about-grid p.lead{font-size:1.12rem;color:var(--ink)}
.about-close{font-family:'Fraunces',Georgia,serif;font-size:1.22rem;line-height:1.4;color:var(--pine);margin-top:8px}

/* ---- about: beyond the work */
#personal{border-top:1px solid var(--line)}
.els-top .kicker{margin-bottom:8px}
h2.els-h1{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(1.9rem,3.2vw,2.5rem);line-height:1.15;margin:0;max-width:none}
.els-lede{margin:12px 0 0;color:var(--ink2);max-width:60ch;font-size:1.05rem}
.els-cat{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(1.35rem,2.2vw,1.7rem);letter-spacing:0;text-transform:none;color:var(--pine);margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--gold);display:inline-block;min-width:12ch}
.els-sec{padding-top:clamp(44px,6vh,72px)}
.els-copy{margin-bottom:22px}
/* Duolingo: a number, not a logo (Duolingo's terms don't license the owl to third parties) */
.els-french .fr-num{border-top-color:var(--accent);color:var(--pine)}
.els-french .fr-lab{max-width:40ch}
/* Paradoxical Pillow Parodies: the one deliberately lighter panel */
.pp-panel{background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--gold);padding:28px 28px 22px;max-width:960px}
.pp-panel .els-cat{border-bottom:0;padding-bottom:0;margin-bottom:6px;display:block}
.pp-panel .els-sub{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:400;font-size:1.2rem;color:var(--accent);margin:0 0 14px}
.bc-grid{grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:32px;max-width:none}
.bc-photo img{border:0;background:var(--stone)}
.bc-tracks{border-top:1px solid var(--line)}
h4.bc-t{font-weight:600}
.pp-panel .els-aside{margin-top:14px}
@media(max-width:700px){.pp-panel{padding:22px 18px 16px}.bc-grid{grid-template-columns:1fr}.bc-photo{max-width:300px}}
/* water: two frames */
.els-water{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:880px}
.els-water figure{margin:0}
.els-water img{display:block;width:100%;height:auto;border:1px solid var(--line);background:var(--stone)}
.els-water figcaption{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:.98rem;color:var(--ink2);margin-top:10px}
@media(max-width:640px){.els-water{grid-template-columns:1fr}}
/* interiors: three frames */
.els-trio{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1040px}
.els-trio figure{margin:0}
.els-trio figure.wide{grid-column:1/-1;max-width:640px}
.els-trio img{display:block;width:100%;height:auto;border:1px solid var(--line);background:var(--stone)}
@media(max-width:640px){.els-trio{grid-template-columns:1fr}}
/* poetry: authorship first */
.els-poem .byline{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.els-poem-title{margin-bottom:6px}
.els-poem .note{font-size:.92rem;color:var(--mut);margin:0 0 22px;max-width:48ch}

/* ---- case pages: shared structure */
.case-hero .kicker .pipe{color:var(--gold)}
.case-sec p.lab,.figure .lab{color:var(--accent)!important}
.logoslot .conf{color:var(--mut)}
.logoslot .redact{background:var(--pine);color:#F6F2E9}
.wlgmark{display:inline-flex;align-items:center;gap:12px;margin:6px 0 10px}
.wlgmark img{width:46px;height:46px;border-radius:2px;border:1px solid var(--line);background:#fff}
.wlgmark span{font-size:.9rem;color:var(--ink2)}
.enablement{background:var(--sage);padding:34px 0}
.enablement .lab{color:var(--pine)!important}
.enablement p{max-width:68ch;margin:0 0 10px;font-size:1.03rem}
.enablement p:last-child{margin-bottom:0}
.heard{list-style:none;padding:0;margin:14px 0 6px;display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;max-width:900px}
.heard li{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.05rem;line-height:1.4;color:var(--ink);padding-left:16px;border-left:2px solid var(--gold)}
@media(max-width:640px){.heard{grid-template-columns:1fr}}
.results .big .v{color:var(--gold)}
.quote-block{padding:34px 0 8px}
.quote-block blockquote{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.2rem;line-height:1.45;max-width:58ch;margin:0;padding-left:20px;border-left:2px solid var(--gold);color:var(--ink)}
.quote-block cite{display:block;font-style:normal;font-size:.84rem;color:var(--mut);margin-top:8px}
.quote-block cite a{color:var(--accent)}
.connect-list .v .note a{color:var(--accent)}
.sec-note{font-size:.9rem;color:var(--mut);max-width:68ch}
.wi-group{padding:22px 0 0}
.about-grid h1.sec{max-width:20ch}
.hero241 .herokick{max-width:none}
.hero241-orgs .orgset{display:flex;max-width:none;gap:18px 30px}
.orgset li{height:auto}
/* Capability chips: the pill styling was written for <a>, but the markup is <li><span>,
   so on desktop the capabilities ran together as one undifferentiated string. */
.case-hero ul.caps li span{display:block;font-family:'Inter',sans-serif;font-size:.74rem;
font-weight:500;letter-spacing:.02em;color:var(--mut);border:1px solid var(--line);
padding:6px 10px;line-height:1.1;white-space:nowrap}
@media(max-width:640px){.case-hero ul.caps li span{white-space:normal}}
/* Mobile menu: these links were flex containers, so the "(Project Astria)" span became
   a sibling flex item pinned to the right instead of sitting under the case name. */
details.mnav nav details.mwork li a{display:block;padding-top:12px;padding-bottom:12px}
details.mnav .navsub{display:block;color:var(--mut);font-size:.86em}

/* ── Selected Work: split control ─────────────────────────────────────────
   The label is a real link to /work/ so the index is one click away; the caret
   is the disclosure. */
nav.main .dd>a.ddlink{margin-left:0;display:inline-flex;align-items:center;min-height:44px;
font-size:.95rem;letter-spacing:.02em;color:var(--mut);padding:0 0 3px}
nav.main .dd>a.ddlink:hover,nav.main .dd.open>a.ddlink{color:var(--accent);text-decoration:none}
nav.main .dd>a.ddlink.cur{color:var(--ink);font-weight:600}
nav.main .dd>button.ddtrig{min-width:34px;min-height:44px;padding:0 4px 3px 6px;justify-content:center;gap:0}
nav.main .dd>button.ddtrig:hover,nav.main .dd.open>button.ddtrig{color:var(--accent)}
nav.main .dd.open>button.ddtrig .caret{transform:rotate(180deg)}

/* The case you are reading, marked inside the menu. */
nav.main .dd .menu.cases26 li li a[aria-current="page"]{color:var(--accent);font-weight:600}
nav.main .dd .menu.cases26 li li a[aria-current="page"]::before{content:"";display:inline-block;
width:3px;height:.85em;background:var(--gold);margin-right:8px;vertical-align:-1px}
details.mnav nav details.mwork li a[aria-current="page"]{color:var(--accent);font-weight:600;
border-left-color:var(--gold)}

/* Brand names whose own capitalisation the uppercase label style was destroying
   (McorpCX was rendering as MCORPCX). */
nav.main .dd .menu.cases26 .grp-h.brandcase,details.mnav nav details.mwork .mgrp.brandcase{text-transform:none;
letter-spacing:.04em;font-size:.82rem}

/* Selected Work panel, v1.29.3 (09.19.26). Company date ranges and the
   one-line case descriptions are retired; cases now sit indented under the
   company behind a hairline, the pattern already used by the mobile menu.
   Group gap raised to 24px so the 1.5:1 group-to-item spacing ratio left by
   the single-line rows becomes ~1.8:1. The v1.26 rules below are gone with
   the markup they served: .mphrase (desktop and mobile) had no elements left,
   and the two text-decoration:none overrides existed only to stop the hover
   underline dragging through the description line, so removing them restores
   underline-on-hover as the link affordance instead of colour alone. */
nav.main .dd .menu.cases26 li.grp{margin:0 0 24px}
nav.main .dd .menu.cases26 li li a{padding:9px 0 9px 12px;border-left:1px solid var(--line)}
nav.main .dd .menu.cases26 li li a:hover,
nav.main .dd .menu.cases26 li li a:focus-visible{color:var(--accent);
border-left-color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* ── Beyond the work, reordered ───────────────────────────────────────────
   Streak badge top-right, then the calm app, the poem, the two galleries
   side by side, and interiors as the closing band. */
.els-topgrid{display:flex;justify-content:space-between;align-items:flex-start;gap:48px;flex-wrap:wrap}
.els-topcopy{flex:1 1 520px;min-width:0}
.els-topcopy .els-lede{margin-top:10px}
.duo-badge{display:flex;align-items:center;gap:15px;flex:0 0 auto;margin-top:2px;
padding:13px 20px 13px 16px;border:1px solid var(--line);background:var(--paper);
text-decoration:none;color:var(--ink);transition:border-color .18s}
.duo-badge:hover{border-color:var(--accent);text-decoration:none}
.duo-owl{width:48px;height:auto;flex:0 0 auto;display:block}
.duo-body{display:block;line-height:1.25}
.duo-n{display:block;font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.7rem;color:var(--pine)}
.duo-l{display:block;font-size:.84rem;color:var(--ink2);margin-top:1px}
.duo-l b{font-weight:600}
.duo-d{display:block;font-size:.74rem;color:var(--mut);margin-top:3px}

/* Calm app: blurb spans the panel, photo sits level with the middle of the players */
.pp-blurb .els-copy{max-width:none;margin:0 0 26px}
.pp-v2 .pp-row{display:grid;grid-template-columns:300px 1fr;gap:0 40px;align-items:center}
.pp-v2 .pp-row .bc-photo{margin:0}
.pp-v2 .pp-row .bc-photo img{width:100%;height:auto;display:block}
.pp-v2 .pp-list .bc-tracks{margin:0}

/* Gardening | On the Water, two galleries in one band */
.els-duo{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.els-duo-col .els-pair,.els-duo-col .els-water{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.els-duo-col figure{margin:0}
.els-duo-col img{width:100%;height:auto;display:block;aspect-ratio:4/5;object-fit:cover}
.els-duo-col figcaption{margin-top:8px;min-height:2.6em}

/* Interiors, the closing band: three across rather than two and a half-width orphan */
.els-sec .els-trio{grid-template-columns:repeat(3,1fr);gap:18px;max-width:none}
.els-sec .els-trio figure.wide{grid-column:auto;max-width:none}
.els-sec .els-trio img{aspect-ratio:4/3;object-fit:cover}

@media(max-width:860px){
  .els-duo{grid-template-columns:1fr;gap:34px}
  .pp-v2 .pp-row{grid-template-columns:1fr;gap:22px}
  .pp-v2 .pp-row .bc-photo{max-width:300px}
  .els-sec .els-trio{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){.els-sec .els-trio{grid-template-columns:1fr}}

/* ── Beyond the work, v1.29.2 copy ────────────────────────────────────── */
.duo-badge{max-width:340px;align-items:flex-start}
.duo-owl{margin-top:2px}
.duo-d{line-height:1.45;margin-top:5px}
.pp-tags{display:flex;flex-wrap:wrap;gap:8px 10px;margin:0 0 26px}
.pp-tags span{font-size:.82rem;font-weight:600;letter-spacing:.02em;color:var(--accent);
border:1px solid var(--line);border-radius:999px;padding:5px 13px;background:var(--paper)}
.els-verse{line-height:1.85}
@media(max-width:860px){.duo-badge{max-width:none}}

/* ── Gardening | On the Water: galleries start on the same line ──────────
   The haiku is three lines and the water copy is two, which pushed the two
   galleries out of step. Subgrid ties the heading, copy and gallery rows
   across both columns; the fallback reserves the taller copy block. */
.els-duo{grid-template-rows:auto auto auto;align-items:start}
.els-duo-col{display:grid;grid-template-rows:auto auto 1fr;row-gap:0}
@supports (grid-template-rows: subgrid){
  .els-duo-col{grid-row:span 3;grid-template-rows:subgrid}
}
@supports not (grid-template-rows: subgrid){
  .els-duo-col .els-copy{min-height:5.6em}
}
@media(max-width:860px){
  .els-duo{grid-template-rows:none}
  .els-duo-col{display:block}
  .els-duo-col .els-copy{min-height:0}
}

/* v1.29.6 (09.21.26) — appended only: At a glance on case pages + Résumé header link. No existing rule above is modified. */
/* Case pages: At a glance, inside the case hero under the dek */
.glance31{margin:26px 0 0;max-width:880px;border-top:1px solid var(--gold);padding-top:14px}
.glance31-k{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.glance31 dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 36px}
.glance31 dl>div{min-width:0}
.glance31 dt{font-size:.74rem;font-weight:700;letter-spacing:.04em;color:var(--ink);margin:0 0 3px}
.glance31 dd{margin:0;font-size:.92rem;line-height:1.55;color:var(--ink2)}
@media(max-width:700px){.glance31 dl{grid-template-columns:1fr;gap:12px}}

/* Header: a fourth link (Résumé). Tighten the gap only in the band where four links meet the logo. */
@media(min-width:641px) and (max-width:820px){nav.main a{margin-left:18px}nav.main .dd{margin-left:18px}}
@media(min-width:641px) and (max-width:720px){nav.main a{margin-left:10px}nav.main .dd{margin-left:6px}nav.main a,nav.main .dd>a.ddlink{font-size:.88rem}}

/* v1.29.8 (10.05.26) — appended only: résumé page synced to the 10.01.26 PDF. No existing rule above is modified. */
.resume .strengths{list-style:none;padding-left:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 28px;max-width:880px}
.resume .strengths li{margin:0;font-size:.95rem;padding-left:14px;position:relative}
.resume .strengths li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:1px;background:var(--gold)}
@media(max-width:760px){.resume .strengths{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.resume .strengths{grid-template-columns:1fr}}
.resume .co.rl{margin-top:2px}
.resume .co.rl .role{margin-bottom:8px}
.resume ul + .co.rl{margin-top:18px}
.resume .earlier{margin-top:30px;font-size:.95rem;max-width:80ch}
.resume .resume-quote{margin-top:14px}

/* v1.29.11 — evidence card, event footage, filter strip */
.evidence-card{border:1px solid var(--line);border-left:3px solid var(--gold);background:var(--stone);padding:18px 22px;margin:22px 0 4px;max-width:980px}
.evidence-card .lab{margin-bottom:6px}
.evidence-card p{font-size:.95rem;max-width:70ch;margin:0}
.evidence-card .evidence-links{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:12px}
.evidence-card .ev-btn{display:inline-block;padding:9px 14px;background:var(--pine);color:#fff;font-size:.86rem;font-weight:600;text-decoration:none;border:0;line-height:1.3}
.evidence-card .ev-btn:hover{background:#173B2D;text-decoration:none}
.evidence-card .ev-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
figure.clip{margin:0;max-width:340px}
figure.clip video{display:block;width:100%;height:auto;background:#1B1D1B;border:1px solid var(--line)}
figure.filters{margin:18px 0 0}
figure.filters img{display:block;width:100%;max-width:820px;height:auto;border:1px solid var(--line)}
figure.filters figcaption{font-size:.82rem;color:var(--mut);margin-top:8px}
 ul.terms{padding-left:1.15em;margin:8px 0 14px;max-width:70ch}
ul.terms li{margin-bottom:6px}
.hero-split{display:grid;grid-template-columns:minmax(0,1fr) 330px;column-gap:48px;align-items:start}
.hero-split .hs-text{grid-column:1;min-width:0}
.hero-split .hs-photo{grid-column:2;grid-row:1;margin:4px 0 0}
.hero-split .glance31{grid-column:1 / -1}
.hs-photo img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.hs-photo figcaption{font-size:.8rem;color:var(--mut);margin-top:8px;line-height:1.45}
@media(max-width:860px){.hero-split{grid-template-columns:1fr}.hero-split .hs-photo{grid-column:1;grid-row:auto;max-width:400px;margin:22px 0 0}}

/* v1.29.12 — Beyond the stage proof cards, compact social stats */
.beyond .beyond-lede{font-family:'Fraunces',Georgia,serif;font-size:1.35rem;line-height:1.35;color:var(--ink);margin:0 0 10px;max-width:46ch}
.proof-cards{list-style:none;padding:0;margin:20px 0 12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:1040px}
.proof-cards li{margin:0;list-style:none}
.case-sec ul.proof-cards{margin-left:0;padding-left:0}
.proof-cards a{display:flex;flex-direction:column;height:100%;box-sizing:border-box;padding:18px 18px 16px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--pine);color:var(--ink);text-decoration:none;transition:border-color .18s,box-shadow .18s}
.proof-cards a:hover{border-color:var(--pine);box-shadow:0 2px 10px rgba(27,29,27,.08);text-decoration:none}
.proof-cards a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.proof-cards .pc-k{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pine)}
.proof-cards .pc-t{font-family:'Fraunces',Georgia,serif;font-size:1.08rem;line-height:1.3;margin:8px 0 6px}
.proof-cards .pc-m{font-size:.82rem;color:var(--mut);line-height:1.4}
.proof-cards .pc-go{margin-top:auto;padding-top:12px;font-size:.8rem;font-weight:600;color:var(--pine)}
@media(max-width:860px){.proof-cards{grid-template-columns:1fr}}
.mini-stats{list-style:none;padding:0;margin:14px 0 4px;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:.9rem;color:var(--mut);max-width:880px}
.mini-stats strong{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:1.1rem;color:var(--ink);margin-right:4px}
.social-sec figure.filters img{max-width:520px}

/* v1.29.13 — Fidelity: Instagram link beside launch imagery */
.ig-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:16px}
.ig-cta .note{margin:0}
.ig-btn{display:inline-block;padding:10px 16px;background:var(--pine);color:#fff;font-size:.88rem;font-weight:600;text-decoration:none;line-height:1.3}
.ig-btn:hover{background:#173B2D;color:#fff;text-decoration:none}
.ig-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
