/* Homepage V2.1: isolated from the internal pages. */
.v21-up01-label .v21-up01-marks{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;mask-image:linear-gradient(90deg,rgba(0,0,0,.25),rgba(0,0,0,.55) 40%,#000 100%)}
.v21-up01-label .v21-up01-cm{position:absolute;width:80px;height:80px;object-fit:contain;left:32px;top:68px;opacity:.35;pointer-events:none;mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.15))}
.v21-up01-label .v21-up01-client{position:absolute;width:calc(100% - 100px);height:calc(100% - 100px);object-fit:contain;left:50px;top:50px;opacity:.22}
.v21-up01-label .v21-up01-open{display:inline-block;margin-top:12px;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:3px}
.v21-up01-label:hover .v21-up01-open{border-bottom-color:#fff}
@media(max-width:767px){.v21-up01-label .v21-up01-marks{mask-image:linear-gradient(180deg,rgba(0,0,0,.2),#000 48%,rgba(0,0,0,.6))}.v21-up01-label .v21-up01-cm{left:22px;top:49px}.v21-up01-label .v21-up01-client{opacity:.2}}
.home-v21 main{font-family:'DM Sans',-apple-system,'Segoe UI',sans-serif}
.home-v21 .v21-section{padding:112px 0}
.home-v21 main h2{font-size:54px;line-height:1.08}
.home-v21 main h2 em{font-weight:400;color:#c52a2e}
.home-v21 .eyebrow{font-family:inherit;font-size:11px;margin-bottom:26px}
.home-v21 .v21-hero{min-height:760px;align-items:center}
.home-v21 .hero-content{max-width:645px;padding:54px 0 96px}
.home-v21 .v21-signature{font-size:22px;line-height:1.4;margin-bottom:30px;font-weight:500}
.home-v21 .v21-signature span{display:block;font-size:13px;font-weight:400;margin-top:5px}
.home-v21 .hero h1{font-size:58px;line-height:1.07;max-width:600px}
.home-v21 .hero h1 em{display:block;font-weight:400;color:#c52a2e}
.home-v21 .hero .intro{max-width:510px;margin-top:25px;font-size:17px;line-height:1.65}
.home-v21 .hero-index{font-family:inherit;font-size:10px}
.home-v21 .hero .actions{gap:25px}
.home-v21 .text-link{font-size:13px}
.home-v21 .v21-experiences{padding:32px 0 28px;border-bottom:1px solid var(--line)}
.v21-experience-head{display:flex;justify-content:space-between;gap:24px;align-items:baseline}
.home-v21 .v21-experience-head h2{font:12px/1.5 'DM Sans',sans-serif;text-transform:uppercase}
.v21-experience-head p{font-size:12px;color:var(--muted)}
.v21-names{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:28px 0 20px}
.v21-names a{display:flex;flex-direction:column;gap:9px;text-decoration:none;padding:4px 28px;border-left:1px solid var(--line)}
.v21-names a:first-child{padding-left:0;border:0}
.v21-company{font:30px/1.2 Georgia,serif}
.v21-names a>span:last-child{font-size:10px;color:var(--muted)}
.v21-disclosure{font-size:10px;color:var(--muted)}
.v21-problem-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:110px}
.v21-problem-intro>p:not(.eyebrow){max-width:350px;margin:28px 0;color:var(--muted)}
.v21-problem-rows article{display:grid;grid-template-columns:32px 1fr;gap:24px;border-top:1px solid var(--line);padding:26px 0 30px}
.v21-index{font-size:11px;line-height:1.5;color:var(--green)}
.v21-problem-rows h3{font:27px/1.2 Georgia,serif;margin-bottom:17px}
.v21-problem-rows p{font-size:15px;color:var(--muted)}
.v21-output{display:block;font-size:12px;margin-top:20px;color:var(--green)}
.home-v21 .v21-selected{background:#f3efe8;padding-bottom:80px}
.v21-selection-heading{display:grid;grid-template-columns:1.25fr 1fr;gap:100px;align-items:end}
.v21-selection-heading>div:last-child p{font-size:16px;color:var(--muted);margin-bottom:20px}
.v21-portfolio-note{font-size:11px;color:var(--muted);padding:17px 0;border-top:1px solid #c7bdb3;margin:34px 0 30px}
.v21-visual{display:flex;flex-direction:column;justify-content:space-between;position:relative;text-decoration:none;padding:32px;overflow:hidden;isolation:isolate;outline-offset:6px}
.v21-visual-top,.v21-visual-bottom{font-size:11px;line-height:1.65}
.v21-visual-top{display:flex;justify-content:space-between;gap:24px}
.v21-visual-top>span{font-size:23px;line-height:1}
.v21-visual-name{font-family:Georgia,serif;line-height:1.02;font-weight:400;transition:transform .25s ease}
.v21-visual:hover .v21-visual-name{transform:translateX(7px)}
.v21-visual-main{aspect-ratio:16/9;background:#292522;color:#fff}
.v21-visual-main:hover{color:#fff}
.v21-visual-main .v21-visual-name{font-size:94px;align-self:center;width:75%;padding-left:10%;border-left:1px solid #91867c}
.v21-featured-caption{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding:34px 0 55px}
.v21-featured-caption .eyebrow{margin-bottom:12px}
.v21-featured-caption h3{font:33px/1.15 Georgia,serif;margin-bottom:18px}
.v21-featured-caption h3 a,.v21-secondary-caption h3 a{text-decoration:none}
.v21-featured-caption p:not(.eyebrow){font-size:15px;color:var(--muted);max-width:410px}
.v21-case-facts{margin:0}
.v21-case-facts div{display:grid;grid-template-columns:85px 1fr;gap:16px;border-top:1px solid #c7bdb3;padding:10px 0;font-size:12px;line-height:1.5}
.v21-case-facts dt{color:var(--green)}
.v21-case-facts dd{margin:0;color:var(--muted)}
.v21-secondary-projects{display:grid;grid-template-columns:1.12fr .88fr;gap:64px;align-items:start}
.v21-visual-coworking{aspect-ratio:4/5;background:#e6dfd7;color:#292522}
.v21-visual-coworking .v21-visual-name{font-size:55px;border-top:1px solid #91867c;padding-top:30px}
.v21-secondary-caption{padding:28px 0 0}
.v21-secondary-caption .eyebrow{margin-bottom:12px}
.v21-secondary-caption h3{font:29px/1.2 Georgia,serif;margin-bottom:16px}
.v21-secondary-caption p:not(.eyebrow){font-size:15px;color:var(--muted)}
.v21-project-sowalking{padding-top:72px}
.v21-project-sowalking .v21-secondary-caption{padding:0 0 30px}
.v21-visual-sowalking{aspect-ratio:1/1;background:#e7d9d2;color:#513e36}
.v21-visual-sowalking .v21-visual-name{font-size:51px;writing-mode:vertical-rl;align-self:center}
.v21-archive-note{margin-top:56px;padding-top:20px;border-top:1px solid #c7bdb3;display:grid;grid-template-columns:1fr 1fr;gap:64px;font-size:12px;color:var(--muted)}
.v21-archive-note p+p{margin:0}
.home-v21 .v21-method{background:#151311;color:#f3efe8}
.home-v21 .v21-method .eyebrow,.home-v21 .v21-method h2 em{color:#f3efe8}
.v21-method-heading{display:grid;grid-template-columns:1.6fr 1fr;gap:80px;align-items:end}
.v21-method-heading>p{font-size:16px;color:#d6cec5}
.v21-score{list-style:none;padding:0;margin:65px 0 44px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.v21-score li{border-top:1px solid #82766b;border-left:1px solid #82766b;padding:20px 24px 0;display:flex;flex-direction:column}
.v21-score li:first-child{padding-left:0;border-left:0}
.v21-score .v21-index{color:#f3efe8}
.v21-score h3{font:29px/1.1 Georgia,serif;min-height:66px;margin:36px 0 22px}
.v21-score p{font-size:14px;color:#d6cec5;margin-bottom:26px}
.v21-method-output{font-size:11px;line-height:1.5;border-top:1px solid #82766b;padding-top:14px;margin-top:auto}
.v21-method .text-link:hover{color:#fff}
.v21-profile-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:0 85px;align-items:start}
.v21-profile-title{grid-column:1;grid-row:1}
.v21-profile-image{grid-column:2;grid-row:1 / span 2;aspect-ratio:4/5;display:flex;flex-direction:column;justify-content:space-between;background:#e6dfd7;padding:28px;font-size:11px;color:var(--muted);margin-top:35px}
.v21-profile-image img{margin:auto;width:130px;height:150px;object-fit:contain}
.v21-profile-copy{grid-column:1;max-width:450px;padding-top:34px;font-size:15px;color:var(--muted)}
.v21-profile-name{font-size:22px;font-weight:500;color:var(--ink)}
.v21-profile-copy .v21-profile-role{font-size:12px;margin-top:4px;margin-bottom:28px;color:var(--green)}
.v21-profile-copy .text-link{display:inline-block;margin-top:26px;color:var(--ink)}
.v21-contact{background:#f3efe8;padding:82px 0 88px}
.v21-contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:95px;align-items:center}
.home-v21 .v21-contact h2{font-size:70px}
.v21-contact-grid>div>p:not(.eyebrow){font-size:17px;max-width:440px}
.v21-contact .button{margin:26px 0 20px}
.v21-email{display:block;font-size:14px;overflow-wrap:anywhere}
.v21-contact-grid>div>.v21-email-note{font-size:10px;color:var(--muted);margin-top:12px}
@media(min-width:1500px){.home-v21 .v21-hero{min-height:800px}}
@media(max-width:1100px){.home-v21 .hero-content{max-width:570px}.home-v21 .hero h1{font-size:53px}.v21-problem-grid{gap:50px}.v21-selection-heading,.v21-featured-caption{gap:50px}.v21-secondary-projects{gap:38px}.v21-method-heading{gap:40px}.v21-profile-grid{gap:0 45px}.v21-contact-grid{gap:45px}.v21-visual-main .v21-visual-name{font-size:80px}.v21-visual-coworking .v21-visual-name{font-size:44px}.v21-visual-sowalking .v21-visual-name{font-size:44px}}
@media(max-width:900px){.home-v21 .v21-section{padding:80px 0}.home-v21 main h2{font-size:44px}.home-v21 .hero h1{font-size:49px}.home-v21 .hero-content{max-width:540px}.v21-names a{padding:4px 16px}.v21-company{font-size:25px}.v21-experience-head{align-items:start}.v21-problem-grid{grid-template-columns:.85fr 1.15fr;gap:35px}.v21-problem-rows h3{font-size:24px}.v21-problem-rows article{gap:12px;grid-template-columns:20px 1fr}.v21-selection-heading{gap:40px}.v21-featured-caption{gap:35px}.v21-score{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 0}.v21-score li:nth-child(3){padding-left:0;border-left:0}.v21-score h3{margin-top:24px}.v21-method-heading{grid-template-columns:1fr;gap:26px}.v21-method-heading>p{max-width:520px}.v21-visual-coworking,.v21-visual-sowalking{padding:23px}.v21-visual-coworking .v21-visual-name{font-size:35px}.v21-visual-sowalking .v21-visual-name{font-size:38px}.home-v21 .v21-contact h2{font-size:54px}}
@media(max-width:767px){.home-v21 .v21-section{padding:64px 0}.home-v21 main h2{font-size:39px}.home-v21 .v21-hero{min-height:0}.home-v21 .hero-content{padding:34px 0 30px;max-width:none}.home-v21 .v21-signature{font-size:21px;margin-bottom:25px}.home-v21 .v21-signature span{font-size:12px;max-width:290px}.home-v21 .hero h1{font-size:43px;max-width:520px}.home-v21 .hero .intro{font-size:16px;margin-top:24px;max-width:520px}.home-v21 .hero .actions{gap:12px}.home-v21 .hero-index{font-size:9px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 24px}.home-v21 .hero-index .rotation-toggle{margin:0}.home-v21 .v21-experiences{padding:28px 0 24px}.v21-experience-head{display:block}.v21-experience-head p{font-size:11px;margin-top:8px}.v21-names{grid-template-columns:1fr;margin:23px 0 17px;gap:0}.v21-names a,.v21-names a:first-child{padding:17px 0;border:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:16px}.v21-company{font-size:25px}.v21-names a>span:last-child{font-size:10px}.v21-problem-grid{grid-template-columns:1fr;gap:32px}.v21-problem-intro>p:not(.eyebrow){max-width:none;margin:23px 0}.v21-problem-rows article{padding:23px 0 26px;grid-template-columns:20px 1fr;gap:16px}.v21-problem-rows h3{font-size:25px}.v21-problem-rows p{font-size:15px}.v21-selection-heading{grid-template-columns:1fr;gap:24px}.v21-selection-heading>div:last-child p{font-size:15px}.v21-portfolio-note{margin:26px 0 23px;font-size:10px}.v21-visual{padding:22px}.v21-visual-main{aspect-ratio:4/5}.v21-visual-main .v21-visual-name{font-size:51px;align-self:start;width:100%;padding-left:18px}.v21-visual-top,.v21-visual-bottom{font-size:10px}.v21-featured-caption{grid-template-columns:1fr;gap:24px;padding:25px 0 42px}.v21-featured-caption h3{font-size:30px}.v21-secondary-projects{grid-template-columns:1fr;gap:42px}.v21-visual-coworking{aspect-ratio:4/3}.v21-visual-coworking .v21-visual-name{font-size:43px;padding-top:20px}.v21-project-sowalking{padding:0;display:flex;flex-direction:column}.v21-project-sowalking .v21-secondary-caption{order:1;padding:25px 0 0}.v21-visual-sowalking{aspect-ratio:1/1}.v21-visual-sowalking .v21-visual-name{font-size:48px}.v21-secondary-caption{padding-top:25px}.v21-secondary-caption h3{font-size:29px}.v21-archive-note{grid-template-columns:1fr;gap:16px;margin-top:35px}.v21-method-heading{gap:25px}.v21-method-heading>p{font-size:15px}.v21-score{grid-template-columns:1fr;gap:0;margin:35px 0}.v21-score li,.v21-score li:first-child,.v21-score li:nth-child(3){display:grid;grid-template-columns:30px 1fr;gap:0 16px;border-left:0;padding:24px 0}.v21-score h3{font-size:28px;min-height:0;margin:0 0 16px}.v21-score h3 br{display:none}.v21-score p,.v21-method-output{grid-column:2}.v21-score p{font-size:15px;margin-bottom:18px}.v21-method-output{font-size:11px;padding-top:12px;max-width:320px}.v21-profile-grid{grid-template-columns:1fr;gap:28px}.v21-profile-title{grid-column:1;grid-row:1}.v21-profile-image{grid-column:1;grid-row:2;aspect-ratio:4/3;margin:0;padding:23px}.v21-profile-copy{grid-column:1;grid-row:3;padding:0;max-width:none}.v21-profile-copy .v21-profile-role{margin-bottom:23px}.v21-contact{padding:60px 0}.v21-contact-grid{grid-template-columns:1fr;gap:28px}.home-v21 .v21-contact h2{font-size:49px}.v21-contact-grid>div>p:not(.eyebrow){font-size:16px}.v21-contact-grid>div>.v21-email-note{font-size:10px}.v21-contact .button{min-width:190px}}
@media(prefers-reduced-motion:reduce){.v21-visual:hover .v21-visual-name{transform:none}}
/* INDEX V05: local tokens and targeted UI rules, never loaded by internal pages. */
body.home-v04{--ink:#292522;--muted:#625950;--paper:#fff;--wash:#f3efe8;--green:#c52a2e;--line:#c7bdb3;--warm:#e6dfd7;--index-red:#c52a2e;background:var(--paper);color:var(--ink)}
.home-v04 a:hover{color:var(--index-red)}
.home-v04 .button{background:var(--index-red);border-color:var(--index-red);color:#fff;transition:opacity .2s}
.home-v04 .button:hover,.home-v04 .button:focus-visible{background:var(--index-red);color:#fff;opacity:.92}
.home-v04 a:focus-visible,.home-v04 button:focus-visible{outline:3px solid var(--index-red);outline-offset:5px}
.home-v04 .header a:focus-visible,.home-v04 .header button:focus-visible,.home-v04 .cm-home-v04 a:focus-visible,.home-v04 .cm-home-v04 button:focus-visible{outline-color:#f3efe8}
.home-v04 .header .claim{color:#f3efe8}
.home-v04 .v21-experiences{background:#292522;color:#f3efe8;--muted:#d6cec5;--line:#82766b;padding:46px 0 38px}
.home-v04 .v21-experience-head p{color:var(--muted)}
.home-v04 .v21-names article{display:flex;flex-direction:column;gap:14px;padding:4px 28px;border-left:1px solid var(--line)}
.home-v04 .v21-names article:first-child{padding-left:0;border:0}
.home-v04 .v21-names article p{font-size:13px;line-height:1.7;color:var(--muted);max-width:290px}
.home-v04 .v21-disclosure{max-width:920px;font-size:11px;line-height:1.7;color:var(--muted)}
.home-v04 .v21-problems{background:#fff}
.home-v04 .v21-output{color:var(--muted)}
.home-v04 .v21-index{color:var(--index-red)}
.home-v04 .v21-up01-label{display:block;aspect-ratio:auto;padding:0;background:#fff;color:var(--ink)}
.home-v04 .v21-up01-label:hover{color:var(--ink)}
.home-v04 .v05-project-cover{width:100%;height:auto;display:block}
.home-v04 .v05-project-link{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;border-bottom:1px solid var(--line);font:32px/1.2 Georgia,serif}
.home-v04 .v05-project-link>span{font:12px/1.6 'DM Sans',sans-serif}
.home-v04 .v21-archive-note{grid-template-columns:1fr;margin-top:12px}
.home-v04 .v21-case-facts dt{color:var(--muted)}
.home-v04 .v21-method{background:#151311;color:#f3efe8}
.home-v04 .v21-method a:hover{color:#f3efe8;text-decoration-color:var(--index-red)}
.home-v04 .v21-method a:focus-visible{outline-color:#f3efe8}
.home-v04 .v21-method .v21-index{color:#f3efe8}
.home-v04 .v21-method h2 em{color:#f3efe8}
.home-v04 .v21-score li{border-top:2px solid #82766b}
.home-v04 .v21-score li:first-child{border-top-color:var(--index-red)}
.home-v04 .v21-profile{background:#fff}
.home-v04 .v05-profile-type{background:#e6dfd7;color:#292522;padding:34px;border:1px solid var(--line)}
.home-v04 .v05-profile-type>span{font-size:12px;line-height:1.6}
.home-v04 .v05-profile-type>p{font:clamp(48px,5.2vw,78px)/1.02 Georgia,serif;letter-spacing:-.04em;margin:auto 0}
.home-v04 .v05-profile-type em{font-weight:400;color:var(--index-red)}
.home-v04 .v21-profile-copy .v21-profile-role{color:var(--muted)}
.home-v04 .v21-contact{background:#f3efe8;color:var(--ink)}
.home-v04 .footer{background:#151311;color:#f3efe8;--line:#82766b;--muted:#d6cec5}
.home-v04 .footer .wordmark-first,.home-v04 .footer .wordmark-last,.home-v04 .footer .claim{color:#f3efe8}
.home-v04 .footer a:hover{color:#f3efe8;text-decoration-color:var(--index-red)}
.home-v04 .footer a:focus-visible{outline-color:#f3efe8}
@media(max-width:900px){.home-v04 .v21-names article{padding-inline:16px}.home-v04 .v05-project-link{font-size:28px}}
@media(max-width:767px){
 .home-v04 .v21-names{gap:0}
 .home-v04 .v21-names article,.home-v04 .v21-names article:first-child{border:0;border-top:1px solid var(--line);padding:22px 0;gap:12px}
 .home-v04 .v21-names article p{max-width:none}
 .home-v04 .v05-project-link{align-items:start;flex-direction:column;gap:10px;padding:20px 0}
 .home-v04 .v05-profile-type{aspect-ratio:4/3;min-height:300px;padding:24px}
 .home-v04 .v05-profile-type>p{font-size:56px}
}
/* The typographic profile panel must not impose its aspect-ratio min-width on mobile. */
@media(max-width:767px){.home-v04 .v21-profile-grid{grid-template-columns:minmax(0,1fr)}.home-v04 .v05-profile-type{min-width:0;width:100%;aspect-ratio:auto;min-height:300px}}
