/* Spacing and interactions reused from the original site's visual language. */
.service-card-face{transition:none}
.service-card:hover .service-card-face{transform:none}
*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
@supports selector(::-webkit-scrollbar){*{scrollbar-width:auto!important}*::-webkit-scrollbar{width:1px;height:1px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink) 28%,transparent);border-radius:2px}*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--ink) 48%,transparent)}}
.page-hero.process-hero-v2{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;align-items:center;padding-bottom:65px}
.process-hero-v2 h1{font-size:clamp(50px,5.2vw,82px)}
.process-journey-visual{position:relative;width:100%;height:390px;margin-top:50px}
.process-journey-visual svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.process-journey-visual path{fill:none;stroke:var(--line);stroke-width:2;stroke-dasharray:3 8;vector-effect:non-scaling-stroke}
.journey-node{position:absolute;display:flex;flex-direction:column;align-items:center;gap:9px;transform:translate(-50%,-50%);font-size:12px;white-space:nowrap;text-align:center}
.journey-node img{width:65px;height:75px;object-fit:contain;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.journey-node:hover img,.journey-node:focus-visible img{transform:translateY(-8px) rotate(-5deg)}
.journey-node small{font-size:9px;color:var(--muted)}
.journey-node strong{font-weight:500;color:var(--ink)}
@media(max-width:1100px){.page-hero.process-hero-v2{gap:35px}.process-hero-v2 h1{font-size:clamp(44px,5vw,65px)}.journey-node img{width:50px;height:65px}.journey-node{font-size:10px}}
@media(max-width:767px){.page-hero.process-hero-v2{grid-template-columns:1fr;gap:25px}.process-hero-v2 h1{font-size:clamp(43px,9vw,65px)}.process-journey-visual{height:290px;margin-top:0}.journey-node img{width:42px;height:55px}.journey-node{font-size:9px;gap:6px}}
.connected .intro{margin-top:38px;line-height:1.75}
.connected .scene-tabs{margin-top:48px;margin-bottom:40px;gap:14px}
.connected .scene-story{padding-left:26px}
.connected .scene-story h3{margin-bottom:22px}
.connected .scene-story p{line-height:1.8}
.connected .scene-note{margin-top:38px}
.practice-copy li::before{content:none!important}
.practice-copy li{display:flex;align-items:center;gap:12px;min-height:34px}
.supplemental-practices{margin-top:65px}
.supplemental-practices>h3{font-size:31px;margin-bottom:18px}
.supplemental-practices>p{font-size:15px;max-width:650px}
.service-glyph{display:inline-block;flex:none;width:32px;height:32px;background-image:url('/assets/service-mini-icons.png');background-repeat:no-repeat;background-size:300% 200%;background-position:var(--glyph-x,0%) var(--glyph-y,0%)}
.service-character-glyph{width:30px;height:34px;object-fit:contain;flex:none}
.practice summary strong{transition:transform .35s cubic-bezier(.22,1,.36,1)}
.practice summary:hover strong{transform:translateX(8px)}
.practice{overflow:hidden}
.practice-hover-preview{position:fixed;top:0;left:0;z-index:60;width:clamp(240px,26vw,375px);aspect-ratio:1.3;border-radius:18px;overflow:hidden;pointer-events:none;opacity:0;visibility:hidden;box-shadow:0 20px 45px #0003;transition:opacity .2s,visibility .2s}
.practice-hover-preview.is-on{opacity:1;visibility:visible}
.practice-preview-track{height:100%;transition:transform .5s cubic-bezier(.22,1,.36,1);transform:translateY(calc(var(--preview-index,0)*-100%))}
.practice-preview-track img{width:100%;height:100%;object-fit:cover;display:block}
.approach-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:52px}
.approach-card{min-height:400px;padding:40px;display:flex;flex-direction:column;justify-content:flex-end;border-radius:22px;background:var(--surface)}
.approach-icon{width:73px;height:73px;display:grid;place-items:center;border-radius:20px;background:var(--approach-tone,#f0652226);margin-bottom:18px}
.approach-icon img{width:52px;height:58px;object-fit:contain}
.approach-card h3{font-size:24px;letter-spacing:-.035em;margin-bottom:16px}
.approach-card p{font-size:14px;line-height:1.65;max-width:430px}
.approach-phase{font-size:31px;letter-spacing:-.04em;margin-top:20px;line-height:1.2}
.approach-phase small{font-size:21px;letter-spacing:-.03em}
.discipline-ribbon{padding:55px 0;background:var(--bg);overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 12.5%,#000 87.5%,transparent)}
.discipline-ribbon-track{display:flex;width:max-content;animation:discipline-ribbon-travel 36s linear infinite;animation-play-state:paused}
.discipline-ribbon.is-visible .discipline-ribbon-track{animation-play-state:running}
.discipline-ribbon:hover .discipline-ribbon-track{animation-play-state:paused}
.discipline-ribbon-group{display:flex;align-items:center;gap:80px;padding-right:80px}
.discipline-ribbon span{white-space:nowrap;font-size:clamp(40px,5.8vw,100px);font-weight:700;letter-spacing:-.045em;line-height:1.15;opacity:.7}
@keyframes discipline-ribbon-travel{to{transform:translateX(-50%)}}
.agency-statement{view-timeline-name:--agency-statement;view-timeline-axis:block}
.statement-word{display:inline-block}
@supports(animation-timeline:view()){
 .statement-word{animation:original-statement-reveal linear both;animation-timeline:--agency-statement;animation-range:entry calc(var(--word)*1%) cover calc(24% + var(--word)*1%)}
}
@keyframes original-statement-reveal{from{opacity:.2;filter:blur(5px);transform:translateY(8px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
.statement-copy .statement-character{animation:original-inline-float 5.5s ease-in-out infinite;animation-delay:var(--inline-delay,0s);transform-origin:50% 80%}
.statement-pair:hover .statement-character{animation:original-inline-hello .65s ease-in-out}
@keyframes original-inline-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-.06em) rotate(3deg)}}
@keyframes original-inline-hello{0%,100%{transform:rotate(0)}25%{transform:translateY(-.1em) rotate(-12deg)}70%{transform:rotate(10deg)}}
.original-word-mask{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.original-word-mask>span{display:inline-block;transform:translateY(105%) rotate(4deg);transition:transform .9s cubic-bezier(.22,1,.36,1) calc(var(--word)*55ms)}
.is-text-visible .original-word-mask>span{transform:none}
.process-redesign .process-title{max-width:100%;font-size:clamp(24px,4vw,64px);white-space:nowrap;line-height:1.15}
.process-redesign>.intro{margin-top:30px;max-width:640px}
.process-layout-v2{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.5fr);gap:65px;margin-top:65px}
.process-redesign .process-nav{display:flex;flex-direction:column;gap:0;margin:0;overflow:visible;padding:0}
.process-redesign .process-nav button{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:20px;padding:23px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;text-align:left;color:var(--muted)}
.process-redesign .process-nav button>span{margin:0;font-size:11px}
.process-redesign .process-nav strong{font-size:21px;font-weight:500}
.process-redesign .process-nav button[aria-selected=true]{color:var(--ink)}
.process-redesign .process-nav button[aria-selected=true]>span{color:var(--amber)}
.process-redesign .process-panel{display:grid;grid-template-columns:minmax(0,1fr) 180px;grid-template-rows:auto 1fr auto;gap:25px 35px;min-height:430px;border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;padding:0 0 0 55px;align-items:start}
.process-redesign .stage-number{grid-column:1;grid-row:1;font-size:100px;color:var(--ink);line-height:1}
.process-stage-copy{grid-column:1;grid-row:2;align-self:center}
.process-redesign .process-panel h3{font-size:34px;line-height:1.15;margin-bottom:22px}
.process-redesign .process-panel p{font-size:15px;line-height:1.75;max-width:580px}
.process-stage-art{grid-column:2;grid-row:1/3;align-self:center;display:grid;place-items:center}
.process-stage-art img{width:180px;height:210px;object-fit:contain}
.process-deliverable{grid-column:1/-1;grid-row:3;border-top:1px solid var(--line);padding-top:25px;display:grid;grid-template-columns:120px 1fr;gap:20px}
.process-deliverable small{font-size:11px;color:var(--muted);padding-top:4px}
.process-deliverable p{color:var(--ink)}
.process-redesign .process-foot{margin-top:38px;max-width:650px}
.process-redesign>.roll{margin-top:25px}
@media(max-width:1100px){.approach-card{padding:30px;min-height:380px}.approach-card h3{font-size:22px}}
@media(max-width:767px){.connected .intro{margin-top:30px}.connected .scene-tabs{margin-top:38px;margin-bottom:34px;gap:12px}.connected .scene-story{padding-left:20px}.connected .scene-story h3{margin-bottom:18px}.connected .scene-note{margin-top:30px}.approach-cards{grid-template-columns:1fr;margin-top:35px}.approach-card{min-height:320px;padding:30px}.approach-phase{font-size:28px}.discipline-ribbon{padding:35px 0}.discipline-ribbon-group{gap:40px;padding-right:40px}.practice-copy ul{gap:15px}.practice-hover-preview{display:none}}
@media(max-width:1100px){.process-layout-v2{gap:35px;grid-template-columns:210px minmax(0,1fr)}.process-redesign .process-panel{padding-left:30px;grid-template-columns:minmax(0,1fr) 125px}.process-stage-art img{width:125px;height:170px}.process-redesign .process-panel h3{font-size:28px}}
@media(max-width:767px){.process-redesign .process-title{font-size:clamp(23px,5.4vw,34px);letter-spacing:-.055em}.process-layout-v2{grid-template-columns:1fr;gap:35px;margin-top:40px}.process-redesign .process-nav{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));overflow-x:auto;gap:14px;padding-bottom:10px}.process-redesign .process-nav button{display:block;padding:14px 0;border-top:1px solid var(--line);border-bottom:0}.process-redesign .process-nav button>span{display:block;margin-bottom:10px}.process-redesign .process-nav strong{font-size:14px}.process-redesign .process-panel{padding:0;border-left:0;grid-template-columns:minmax(0,1fr) 90px;gap:25px 20px;min-height:380px}.process-redesign .stage-number{font-size:75px}.process-redesign .process-panel h3{font-size:26px}.process-redesign .process-panel p{font-size:13px}.process-stage-art img{width:90px;height:125px}.process-deliverable{grid-template-columns:1fr;gap:12px}.process-redesign .process-foot{margin-top:30px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.statement-word{animation:none;opacity:1;filter:none;transform:none}.statement-copy .statement-character,.statement-pair:hover .statement-character{animation:none}.original-word-mask>span{transform:none;transition:none}.discipline-ribbon-track{animation:none}.practice summary strong{transition:none}.practice-hover-preview{display:none}.practice-preview-track{transition:none}}
/* One delivery system: compact tabs on Home, full stage articles on Process. */
:root{--process-number-size:64px;--process-stage-size:34px;--process-mascot-size:96px}
.process-stage-heading{grid-column:1;grid-row:1;display:flex;align-items:center;gap:24px;min-width:0}
.process-redesign .stage-number,.stage-num{font-size:var(--process-number-size);line-height:1;letter-spacing:-.06em;color:var(--amber)}
.process-stage-heading strong,.stage-heading h2{font-size:var(--process-stage-size);font-weight:500;letter-spacing:-.04em;line-height:1.15}
.process-redesign .process-panel{grid-template-columns:minmax(0,1fr) var(--process-mascot-size);min-height:400px}
.process-stage-art{grid-row:1;align-self:start}
.process-stage-art img,.stage-buddy{width:var(--process-mascot-size);height:110px;object-fit:contain}
.process-stage-copy{grid-column:1/-1}
.process-redesign .process-panel h3,.stage-article>h3{font-size:30px;line-height:1.2;margin-bottom:20px}
.process-redesign .process-panel p,.stage-article>p{font-size:15px;line-height:1.75}
.process-section-title{font-size:clamp(23px,4.2vw,64px);letter-spacing:-.055em;line-height:1.15;white-space:nowrap}
.process-detail-section>.process-layout{margin-top:65px;grid-template-columns:minmax(220px,.55fr) minmax(0,1.5fr);gap:65px}
.process-detail-section .stage-index nav{margin-top:0;gap:0}
.process-detail-section .stage-index a{display:grid;grid-template-columns:30px 1fr;gap:20px;padding:23px 0;border-bottom:1px solid var(--line);font-size:21px;line-height:1.4}
.process-detail-section .stage-index a span{font-size:11px}
.process-detail-section .stage-index a[aria-current=step] span{color:var(--amber)}
.process-detail-section .stage-heading{margin-bottom:40px;min-height:110px}
.process-detail-section .stage-heading>div{gap:24px}
.process-detail-section .stage-content{padding-top:25px;border-top:1px solid var(--line);margin-top:35px}
.capability-group-links{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:0}
.capability-group-links li{border-top:1px solid var(--line)}
.capability-group-links a{display:block;padding:13px 0;font-size:13px;line-height:1.5}
.capability-group-links a:hover{color:var(--amber)}
.approach-card{justify-content:flex-start;min-height:420px}
.approach-card>p{min-height:50px}
@media(max-width:1100px){:root{--process-number-size:54px;--process-stage-size:29px;--process-mascot-size:75px}.process-detail-section>.process-layout{grid-template-columns:210px minmax(0,1fr);gap:35px}.process-stage-heading{gap:18px}.process-redesign .process-panel h3,.stage-article>h3{font-size:28px}}
@media(max-width:767px){:root{--process-number-size:46px;--process-stage-size:25px;--process-mascot-size:60px}.process-detail-section>.process-layout{grid-template-columns:1fr;gap:35px;margin-top:40px}.process-detail-section .stage-index nav{display:flex;gap:14px}.process-detail-section .stage-index a{display:block;padding:14px 0;font-size:14px;border-top:1px solid var(--line);border-bottom:0}.process-detail-section .stage-index a span{display:block;margin-bottom:10px}.process-stage-art img,.stage-buddy{height:75px}.process-redesign .process-panel{min-height:350px;gap:25px 15px}.process-stage-heading{gap:15px}.process-redesign .process-panel h3,.stage-article>h3{font-size:26px}.process-redesign .process-panel p,.stage-article>p{font-size:13px}.process-detail-section .stage-heading{min-height:75px;margin-bottom:30px}.process-detail-section .stage-heading>div{gap:15px}.approach-card{min-height:0}.approach-card>p{min-height:0}}
.process-detail-section .stage-articles{border-left:1px solid var(--line);padding-left:55px}
@media(max-width:1100px){.process-detail-section .stage-articles{padding-left:30px}}
@media(max-width:767px){.process-detail-section .stage-articles{padding-left:0;border-left:0}}
/* Shared service directory on Home and Services. */
.service-directory{margin-top:45px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:50px}
.service-entry{display:grid;grid-template-columns:65px minmax(0,1fr) 25px;gap:20px;align-items:center;padding:29px 0;border-bottom:1px solid var(--line)}
.service-buddy{width:60px;height:75px;object-fit:contain;transition:none}
.service-entry:hover .service-buddy{transform:none}
.service-entry h3{font-size:26px;letter-spacing:-.035em;line-height:1.3}
.service-entry p{font-size:13px;margin-top:8px}
@media(max-width:1100px){.service-directory{column-gap:25px}.service-entry{grid-template-columns:45px minmax(0,1fr) 20px;gap:13px}.service-buddy{width:45px;height:65px}.service-entry h3{font-size:22px}}
@media(max-width:767px){.service-directory{grid-template-columns:1fr;margin-top:30px}.service-entry{grid-template-columns:50px minmax(0,1fr) 20px;gap:15px;padding:23px 0}.service-entry h3{font-size:23px}.service-entry p{font-size:12px}.service-buddy{width:50px;height:60px}}
.hero:has(.hero-video){min-height:0}
.hero .hero-art.hero-video{min-height:0;flex:none;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:22px;background:#0f0f0f;margin-top:40px}
.hero-video video{display:block;width:100%;height:100%;object-fit:cover;transform:translateZ(0);backface-visibility:hidden}
.hero-video-toggle{position:absolute;right:16px;bottom:16px;min-width:60px;min-height:40px;padding:9px 16px;border:1px solid #fffce040;border-radius:999px;background:#0f0f0fcc;color:#fffce0;font-size:11px;transition:none}
.hero-video-toggle:hover{background:#fffce0;color:#171714}
@media(max-width:767px){.hero .hero-art.hero-video{margin-top:30px;border-radius:16px}.hero-video-toggle{right:10px;bottom:10px;min-height:44px}}
/* The hero film spans the viewport; the copy above keeps the content grid. */
.hero .hero-art.hero-video{width:100vw;max-width:none;margin-inline:calc(50% - 50vw);border-radius:0;aspect-ratio:16/9}
.hero-video video{object-fit:contain;border-radius:0}
/* The compact menu reuses the header's glass layers and original distortion. */
.nav>.nav-glass{display:none}
@media(max-width:900px){
 .header .nav{isolation:isolate;background:transparent;border:1px solid #ffffff24;box-shadow:0 16px 40px #0002}
 .header .nav>.nav-glass{display:block}
 .header .nav>.nav-fx{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
 .header .nav>.nav-tint{background:#0f0f0f80}
 html[data-theme=light] .header .nav{border-color:#ffffff80}
 html[data-theme=light] .header .nav>.nav-tint{background:#ffffff80}
 html:not([data-theme=light]) .header .nav>.nav-shine{display:none}
 .header .nav>a{position:relative;z-index:1}
}
@media(max-width:900px) and (prefers-reduced-transparency:reduce){.header .nav>.nav-fx{backdrop-filter:none;-webkit-backdrop-filter:none;filter:none}.header .nav>.nav-tint{background:var(--surface)}}
@media(max-width:900px) and (forced-colors:active){.header .nav{border-color:CanvasText}.header .nav>.nav-fx{filter:none;backdrop-filter:none}.header .nav>.nav-tint{background:Canvas}}
/* Original generated TPK artwork, unframed and edge to edge. */
.hero:has(.hero-original-art){min-height:0}
.hero .hero-art.hero-original-art{min-height:0;flex:none;width:100vw;max-width:none;margin:40px calc(50% - 50vw) 0;border-radius:0;background:transparent;overflow:visible}
.hero-original-art .hero-art-image{display:block;width:100%;max-width:none;height:auto;animation:tpk-original-hero-float 7s ease-in-out infinite;animation-play-state:paused}
.hero-original-art.is-art-running .hero-art-image{animation-play-state:running}
.hero-art-toggle{position:absolute;right:16px;bottom:16px;min-width:60px;min-height:44px;padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink);font-size:11px;transition:none}
.hero-art-toggle:hover{background:var(--ink);color:var(--bg)}
@keyframes tpk-original-hero-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media(max-width:767px){.hero .hero-art.hero-original-art{margin-top:30px}.hero-art-toggle{right:10px;bottom:10px}}
