/* Page composition only. Roles, colours, buttons: base.css (locked tokens). */
:root{--dark-sec:#141210;--pad:clamp(3.5rem,8vw,8rem)}
html{scroll-behavior:smooth}

body{overflow-x:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.eyebrow{display:block;color:var(--ink-3);margin-bottom:1.1rem}
.sec{padding-block:var(--pad)}
.ph{position:relative;margin:0;overflow:hidden;background:var(--stone-2)}
.ph>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.tlink{min-height:44px}


/* hero: type leads, photograph bleeds to the right edge */
.hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);min-height:clamp(600px,50vw,760px)}
.hero__txt{padding:clamp(3rem,6vw,5.5rem) clamp(2rem,5vw,5rem) clamp(3rem,6vw,5rem) calc((100vw - min(100vw,var(--container)))/2 + var(--gutter));display:flex;flex-direction:column;justify-content:center}
.crumb{color:var(--ink-3);margin-bottom:2rem}.crumb a{color:inherit;text-decoration:none}.crumb a:hover{color:var(--red)}
.hero h1{max-width:17.5ch}
.hero .lede{margin-top:2rem;max-width:34rem;color:var(--ink-2)}
.hero .ctagroup{margin-top:2.25rem}
.hero__ph{min-height:100%}


.concept{position:absolute;left:0;bottom:0;padding:.35rem .7rem}
/* close */
.close h2{max-width:17.5ch}
.close .sup{color:var(--ink-2);max-width:30rem}
.close .ctagroup{margin-top:1.75rem}



.concept{position:absolute;left:0;bottom:0;padding:.35rem .7rem}
.others{display:flex;flex-wrap:wrap;gap:.5rem 2rem;align-items:center;margin-top:clamp(2.5rem,5vw,4rem);padding-top:1.5rem;border-top:1px solid var(--line-2)}
.others .meta{color:var(--ink-3)}.others ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 1.75rem}
.others a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--t-small);color:var(--ink);text-underline-offset:3px}.others a:hover{color:var(--red)}

.shows{background:#fff}
.shows__g{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(2rem,7vw,7rem);align-items:center}
.shows h2{max-width:20ch}.shows .sup{color:var(--ink-2);max-width:32rem}.shows .tlink{margin-top:1rem}
.shows__n{font-size:var(--ty-h2);font-weight:400;line-height:1.08;margin-bottom:1rem;color:var(--ink)}
.eyebrow{display:block}
/* ES */
.pwork__g,.aiw__top,.dp__top,.path__top,.jour__top{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(2rem,7vw,7rem);align-items:end}
/* ES: problem and response paired */
.pair{background:#fff}
.pair__h,.pair__l li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:0}
.pair__h{column-gap:clamp(2rem,5vw,5rem);align-items:start}
.pair h2{max-width:17.5ch}.pair__h .sup{margin-top:1.5rem;color:var(--ink-2);max-width:28rem}
.pair__s{margin-top:1.5rem;font-size:var(--ty-st);font-weight:400;line-height:var(--ty-st-lh);letter-spacing:var(--ty-st-ls);color:var(--ink);max-width:22em}
.pair__l{list-style:none;margin:clamp(2.5rem,5vw,4rem) 0 0;padding:0;display:grid;gap:1rem}
.pair__p,.pair__r{padding:clamp(1.5rem,3vw,2.5rem);min-height:clamp(150px,13vw,200px)}
.pair__p{background:var(--stone);position:relative;padding-right:clamp(3.5rem,7vw,6rem)}
.pair__p::after{content:"";position:absolute;right:0;top:50%;width:clamp(40px,5vw,72px);height:2px;background:var(--red)}
.pair__p::before{content:"";position:absolute;right:0;top:calc(50% - 5px);width:10px;height:10px;border-top:2px solid var(--red);border-right:2px solid var(--red);transform:rotate(45deg) translate(-2px,2px)}
.pair__r{background:var(--dark-sec);color:#fff;border-left:4px solid var(--red)}
.pair h3{margin:0;color:var(--ink);}
.pair__r h3{color:#fff}
.pair__p p,.pair__r p{margin-top:.6rem;font-size:var(--ty-lede);line-height:var(--ty-lede-lh);color:var(--ink-2);max-width:26rem}
.pair__r p{color:#cfc9bf}
.pair__l .meta{display:none}
/* PE */
.pehero{padding-block:clamp(3rem,6vw,5.5rem) clamp(2rem,4vw,3rem)}
.pehero__g{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(2rem,6vw,6rem);align-items:end}
.pehero h1{max-width:17.5ch}.pehero .lede{color:var(--ink-2)}.pehero .ctagroup{margin-top:2rem}
.journey{background:var(--stone);padding-top:clamp(3rem,6vw,5rem)}
.journey h2{max-width:17.5ch}.jour__top .sup{color:var(--ink-2);max-width:30rem}
.jour__g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(1rem,2vw,2rem);margin-top:clamp(2.5rem,5vw,4rem)}
.jour__a{grid-column:1/9;grid-row:1;aspect-ratio:4/3}
.jour__b{grid-column:8/13;grid-row:1/3;margin:clamp(3rem,7vw,6rem) 0 0 clamp(-4rem,-4vw,-1.5rem);position:relative;z-index:2;background:var(--dark-sec);display:flex;align-items:flex-end;justify-content:center;padding:clamp(2rem,4vw,3.5rem) 1rem 0;overflow:hidden}
.jour__b img{width:min(260px,76%);height:auto;margin-bottom:-2px;display:block}
.jour__w{grid-column:1/8;grid-row:2;list-style:none;margin:clamp(1.75rem,3vw,2.75rem) 0 0;padding:0 0 clamp(.5rem,1vw,1rem);font-size:var(--ty-h2);font-weight:400;line-height:1.12;letter-spacing:var(--ty-st-ls);align-self:end}
.jour__w li{display:inline;color:#766f64}
.jour__w li::after{content:"\00B7";margin-inline:.28em;color:#b3ab9e}
.jour__w li:nth-child(n+3){color:#5f5a50}.jour__w li:nth-child(n+5){color:var(--ink)}
.jour__w li:last-child{color:var(--red);font-weight:400}.jour__w li:last-child::after{content:""}
.pwork__g{align-items:start}.pwork h2{max-width:12.5ch}.pwork__l{margin-top:1.75rem;color:var(--ink);max-width:28rem}.pwork__p{margin-top:1rem;color:var(--ink-2);max-width:30rem}
.pwork__l2{display:grid;gap:clamp(1.5rem,2.6vw,2.25rem)}.pwork__l2 h3,.eng__l h3,.tpdo__l2 h3,.dp__g h3{margin:0;color:var(--ink);}
.pwork__l2 p,.eng__l p,.tpdo__l2 p{margin-top:.5rem;font-size:var(--ty-lede);line-height:var(--ty-lede-lh);color:var(--ink-2);max-width:28rem}
.acct{background:var(--dark-sec);color:#fff}.acct__g{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(2rem,7vw,7rem);align-items:end}
.acct h2{max-width:15ch}.acct .meta{color:#ff8c8f;display:block;margin-bottom:.9rem}.acct__s{color:#e6e0d6;}
/* AI */
.aihero{background:var(--dark-sec);color:#fff;padding-block:clamp(3.5rem,7vw,6.5rem);box-shadow:inset 0 3px 0 var(--red)}
.aihero__g,.dahero__g{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,7vw,7rem);align-items:end}
.aihero h1{color:#fff;max-width:16.2ch}.aihero .crumb{color:#b3ab9e}.aihero .crumb a:hover{color:#fff}.aihero .lede{color:#e6e0d6;max-width:30rem}.aihero .ctagroup{margin-top:2rem}.aihero .tlink{color:#fff}
.aiwork{background:var(--stone)}.aiwork h2{max-width:17.5ch}.aiw__top .sup{color:var(--ink-2);max-width:30rem}
.aiw__e{margin-top:clamp(2.5rem,5vw,4rem);color:var(--ink-3)}
.aiw__w{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:0 .45em;font-size:var(--ty-h1);font-weight:400;line-height:1.14;color:var(--ink)}
.aiw__w li{transition:color .3s var(--ease)}.aiw__w li:nth-child(even){color:#8a8378}.aiw__w li:hover{color:var(--red)}
.aiw__p{margin-top:clamp(1.5rem,3vw,2.5rem);color:var(--ink);max-width:36rem}
.hand h2{max-width:25ch}.hand__p{margin-top:1.5rem;color:var(--ink-2);max-width:34rem}
.lane{list-style:none;margin:clamp(2.5rem,5vw,4rem) 0 0;padding:0;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);grid-template-rows:clamp(110px,10vw,150px) clamp(180px,18vw,260px) auto;gap:2px}
.lane li{display:flex;align-items:flex-end;padding:clamp(1rem,2vw,1.75rem);font-size:var(--ty-st);font-weight:400;line-height:var(--ty-st-lh);letter-spacing:var(--ty-st-ls)}
.lane__m{background:var(--stone-2);color:var(--ink)}.lane__h{background:var(--dark-sec);color:#fff}
.lane__a{grid-column:1;grid-row:1}.lane__r{grid-column:2;grid-row:1}.lane__s{grid-column:1;grid-row:2}
.lane li.lane__d{grid-column:2;grid-row:2;box-shadow:inset 0 4px 0 var(--red);font-size:var(--ty-h2);font-weight:400;letter-spacing:normal;line-height:1.05}
.lane__e{grid-column:1/-1;grid-row:3;background:var(--stone);color:var(--ink);padding-block:1.25rem!important;border-top:1px solid var(--stone-3)}
.eng{background:var(--stone)}.eng__g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,7vw,7rem);align-items:start}.eng h2{max-width:15ch}
.eng__l{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.75rem,3vw,3rem) clamp(1.5rem,3vw,3rem)}
/* DA */
.dahero{padding-block:clamp(3.5rem,7vw,6rem) clamp(2rem,4vw,3rem)}.dahero h1{max-width:18.8ch}.dahero .lede{color:var(--ink-2);max-width:30rem}.dahero .ctagroup{margin-top:2rem}
.dprob{background:var(--dark-sec);color:#fff}.dprob h2{max-width:17.5ch}.dp__top .sup{color:#cfc9bf;max-width:30rem}
.dp__g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);margin-top:clamp(2.5rem,5vw,4rem)}
.dp__g .meta{color:var(--red);display:block;margin-bottom:.75rem}.dp__g h3{color:#fff}.dp__g p{margin-top:.6rem;font-size:var(--ty-body);line-height:1.55;color:#cfc9bf}
.dpath h2{max-width:17.5ch}.path__top .sup{color:var(--ink-2);max-width:30rem}
.scale{list-style:none;margin:clamp(2.5rem,5vw,4rem) 0 0;padding:0;display:grid;gap:clamp(1.5rem,2.6vw,2.5rem)}
.scale li{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(1.5rem,5vw,5rem);align-items:end}
.scale__n{display:block;position:relative;font-weight:400;letter-spacing:normal;line-height:1.1;font-size:var(--ty-h2)}
.scale__n[data-t]{color:transparent!important}
.scale__n[data-t]::before,.scale__n[data-t]::after{content:attr(data-t) / "";position:absolute;inset:0}
.scale__n[data-t]::before{clip-path:inset(0 0 50% 0);transform:translateX(var(--o))}
.scale__n[data-t]::after{clip-path:inset(50% 0 0 0);transform:translateX(calc(var(--o) * -1))}
.scale p{font-size:var(--ty-lede);line-height:var(--ty-lede-lh);color:var(--ink-2);max-width:26rem;margin:0}
.sc1 .scale__n{--o:.13em}.sc2 .scale__n{--o:.075em}.sc3 .scale__n{--o:.03em}.sc1 .scale__n::before,.sc1 .scale__n::after{color:#9a9387}.sc2 .scale__n::before,.sc2 .scale__n::after{color:#7a7468}.sc3 .scale__n::before,.sc3 .scale__n::after{color:#5a554b}
.sc4 .scale__n{color:var(--ink)}.sc5 .scale__n{font-size:clamp(2.75rem,1.2rem+5.2vw,6rem);color:var(--red);font-weight:400}
/* TP */
.tphero{padding-block:clamp(3rem,6vw,5.5rem)}
.tphero__g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,7vw,7rem);align-items:center}
.tphero__ph{aspect-ratio:4/5;max-height:640px}.tphero h1{max-width:20ch}.tphero .lede{margin-top:1.75rem;color:var(--ink-2);max-width:30rem}.tphero .ctagroup{margin-top:2rem}
.apart{background:var(--stone)}.apart h2{max-width:20ch}
.apart__g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,18rem) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;margin-top:clamp(2.5rem,5vw,4rem)}
.apart__a,.apart__b{font-size:var(--ty-h2);font-weight:400;line-height:1.1;color:var(--ink)}.apart__b{text-align:right}
.apart__m{color:var(--ink-2);margin:0;padding:1.25rem 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);text-align:center;font-size:var(--ty-body)}
.tpdo__g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,7vw,7rem);align-items:start}.tpdo h2{max-width:12.5ch}.tpdo__l{margin-top:1.75rem;color:var(--ink);max-width:28rem}.tpdo .tlink{margin-top:1rem}
.tpdo__l2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.75rem,3vw,3rem) clamp(1.5rem,3vw,3rem)}.tpdo__l2>div:last-child{grid-column:1/-1}
.tpacc{background:var(--dark-sec);color:#fff}.tpacc__g{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(2rem,7vw,7rem);align-items:end}.tpacc h2{max-width:17.5ch}.tpacc .eyebrow{color:#b3ab9e}.tpacc .sup{color:#cfc9bf;max-width:30rem}
.tpacc__s{margin-top:1.75rem;font-size:var(--ty-st);font-weight:400;line-height:var(--ty-st-lh);letter-spacing:var(--ty-st-ls);color:#fff}
.route h2{max-width:22.5ch}
.route__l{list-style:none;margin:clamp(2rem,4vw,3rem) 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.route__l a{display:flex;flex-direction:column;height:100%;min-height:clamp(190px,17vw,250px);padding:clamp(1.5rem,2.6vw,2.25rem);background:var(--stone);border-top:3px solid var(--ink);text-decoration:none;color:var(--ink);transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.route__n{font-size:var(--ty-st);font-weight:400;line-height:1.15;letter-spacing:var(--ty-st-ls)}
.route__w{margin-top:.75rem;font-size:var(--t-small);line-height:1.5;color:var(--ink-2);max-width:26rem;transition:color .3s var(--ease)}
.route__go{margin-top:auto;padding-top:1.5rem;display:flex;justify-content:flex-end}
.route__go .ar{display:inline-block;width:40px;height:2px;background:var(--red);position:relative;transition:width .3s var(--ease)}
.route__go .ar::after{content:"";position:absolute;right:0;top:-4px;width:9px;height:9px;border-top:2px solid var(--red);border-right:2px solid var(--red);transform:rotate(45deg)}
.route__l a:hover,.route__l a:focus-visible{background:var(--dark-sec);color:#fff;border-top-color:var(--red)}
.route__l a:hover .route__w,.route__l a:focus-visible .route__w{color:#cfc9bf}
.route__l a:hover .ar{width:56px}
@media(max-width:900px){
 .sec{padding-block:3.25rem}
 .hero{display:flex;flex-direction:column-reverse;min-height:0}.hero__ph{height:300px;min-height:0}.hero__txt{padding:2rem var(--gutter) 2.5rem}.crumb{margin-bottom:1.25rem}.hero h1{max-width:none}
 .pwork__g,.aiw__top,.dp__top,.path__top,.jour__top,.shows__g,.pehero__g,.aihero__g,.dahero__g,.acct__g,.eng__g,.tphero__g,.tpdo__g,.tpacc__g,.scale li,.apart__g,.pair__h{grid-template-columns:1fr;gap:1.5rem}
 .pair h2,.journey h2,.pwork h2,.acct h2,.shows h2,.aiwork h2,.hand h2,.eng h2,.dprob h2,.dpath h2,.tphero h1,.apart h2,.tpdo h2,.tpacc h2,.route h2,.pehero h1,.aihero h1,.dahero h1,.close h2{max-width:none}
 .pair__h{gap:2rem}.pair__s{max-width:none}
 .pair__l{gap:1.75rem}
 .pair__l li{grid-template-columns:1fr}
 .pair__l .meta{display:block;margin-bottom:.7rem;color:var(--ink-3)}.pair__r .meta{color:var(--red)!important}
 .pair__p,.pair__r{min-height:0;padding:1.4rem 1.25rem}.pair__p{padding-right:1.25rem}
 .pair__p::before,.pair__p::after{display:none}
 .pair__r{border-left:0;border-top:4px solid var(--red)}
 .jour__g{display:flex;flex-direction:column;gap:0}
 .jour__a{aspect-ratio:4/3}
 .jour__w{order:2;margin:1.5rem 0 0;font-size:var(--ty-st)}
 .jour__b{order:3;margin:1.5rem 0 0;padding:2rem 1rem 0}.jour__b img{width:min(230px,66%)}
 .aihero,.dahero,.pehero,.tphero{padding-block:2.25rem 2.5rem}
 .aiw__w{font-size:var(--ty-h2)}
 .lane{display:flex;flex-direction:column;gap:2px}
 .lane li{min-height:88px}
 .lane__d{order:1;min-height:150px}.lane__r{order:2}.lane__a{order:3}.lane__s{order:4}.lane__e{order:5;min-height:0}
 .eng__l,.tpdo__l2{grid-template-columns:1fr;gap:0}.tpdo__l2>div:last-child{grid-column:auto}
 .pwork__l2{gap:0}
 .pwork__l2>div,.eng__l>div,.tpdo__l2>div{padding:1.25rem 0;border-top:1px solid var(--line-2)}
 .pwork__l2>div:first-child,.eng__l>div:first-child,.tpdo__l2>div:first-child{border-top:1px solid var(--ink)}
 .dp__g{grid-template-columns:1fr;gap:0}.dp__g>div{padding:1.25rem 0;border-top:1px solid #3a352f}
 .tphero__ph{aspect-ratio:4/3}
 .apart__b{text-align:left}.apart__m{text-align:left;padding:1rem 0}
 .scale li{gap:.6rem}.scale{gap:2rem}
 .scale__n{font-size:var(--ty-st)}.sc4 .scale__n{font-size:var(--ty-h2)}.sc5 .scale__n{font-size:var(--ty-h1)}
 .route__l{grid-template-columns:1fr}.route__l a{min-height:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.aiw__w li,.route__l a,.route__w,.route__go .ar{transition:none}}

/* ---- closing section converted to the dark surface that now carries the
   page's contact form, consistent with the footer immediately below it ---- */
.close{background:var(--dark-sec);color:#fff}
.close h2{color:#fff}
.close .eyebrow{color:#ff8c8f;text-transform:uppercase}
.close .sup{color:#cfc9bf}
.close .tlink{color:#fff}
.close .tlink:hover{color:#ff8c8f}
.close .others{border-top-color:rgba(255,255,255,.22)}
.close .others .meta{color:rgba(255,255,255,.55)}
.close .others a{color:#fff}
.close .others a:hover{color:#ff8c8f}
