/* TOUCH·POINT case study v3. All selectors namespaced .tp- */
.tp{--t-forest:#1C2E18;--t-deep:#122010;--t-chart:#C5DC0A;--t-anth:#1E1E1B;--t-cream:#F6F3EB;--t-stone:#8A8678;--t-gold:#C49A30;--h-navy:#0F2240;--h-orange:#F26B1D;--h-steel:#5B7A99;--t-mute:#B9BBA8}
.tp-dark{background:var(--t-forest);color:var(--t-cream)}
.tp-dark h1,.tp-dark h2,.tp-dark h3{color:var(--t-cream)}
.tp-dark .label{color:var(--t-chart)}
.tp-dark a{color:var(--t-chart)}
.tp-dark :focus-visible{outline-color:var(--t-chart)}
.tp-sec{padding:clamp(72px,9vw,128px) 0}
.tp-sh{max-width:780px;margin-bottom:clamp(28px,4vw,48px)}
.tp-sh p{margin-top:16px;color:var(--text2);font-size:clamp(17px,1.3vw,19px)}
.tp-dark .tp-sh p{color:var(--t-mute)}
.tp-k{font:600 12px/1.3 var(--text);letter-spacing:.16em;text-transform:uppercase}
.tp-dot{color:var(--t-chart)}
.tp-cap{font-size:14px;color:var(--text2);margin-top:12px}
.tp-dark .tp-cap{color:var(--t-mute)}
/* hero */
.tp-hero{padding:clamp(28px,4vw,48px) 0 clamp(64px,8vw,112px);overflow:hidden}
.tp-hero .crumbs a,.tp-hero .crumbs li{color:var(--t-mute)}
.tp-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,72px);align-items:center;margin-top:clamp(24px,4vw,48px)}
.tp-hero h1{font-size:clamp(40px,5.4vw,76px)}
.tp-hero h1 em{color:var(--t-chart)}
.tp-hero .lead{color:var(--t-mute);margin-top:22px}
.tp-wm{width:180px;margin-bottom:20px}
.tp-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.tp-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;border:1px solid rgba(246,243,235,.25);font-size:13px}
.tp-pill i{width:8px;height:8px;border-radius:50%;background:var(--t-chart)}
.tp-pill.nm i{background:transparent;border:1.5px solid var(--t-mute)}
/* tap stepper */
.tp-tap{background:var(--t-deep);border-radius:22px;padding:clamp(18px,3vw,28px);border:1px solid rgba(246,243,235,.08)}
.tp-scene{position:relative;aspect-ratio:16/11;border-radius:14px;overflow:hidden;background:radial-gradient(120% 80% at 70% 20%,#26401f,#101c0d)}
.tp-scene svg{position:absolute;inset:0;width:100%;height:100%}
.tp-s{opacity:0;transition:opacity .6s var(--ease)}
.tp-tap[data-step="1"] .tp-s1,.tp-tap[data-step="2"] .tp-s2,.tp-tap[data-step="3"] .tp-s3{opacity:1}
.tp-card{transition:transform .9s var(--ease)}
.tp-tap[data-step="1"] .tp-card{transform:translate(70px,0)}
.tp-rip{fill:none;stroke:var(--t-chart);stroke-width:2;opacity:0;transform-origin:395px 220px;transform-box:view-box}
.tp-tap[data-step="1"].go .tp-rip{animation:tprip 1.8s var(--ease) infinite}
.tp-tap[data-step="1"].go .tp-rip.b{animation-delay:.6s}
@keyframes tprip{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(3)}}
.tp-screen{transition:opacity .6s}
.tp-steps{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tp-steps button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;padding:12px 12px 14px;border-radius:10px;border-top:3px solid rgba(246,243,235,.15);min-height:44px;color:var(--t-mute)}
.tp-steps button b{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:22px;color:inherit}
.tp-steps button[aria-current="step"]{border-color:var(--t-chart);color:var(--t-cream);background:rgba(246,243,235,.04)}
.tp-steps button:focus-visible{outline:2px solid var(--t-chart)}
.tp-tapcopy{min-height:4.8em;margin:14px 0 0;color:var(--t-cream);font-size:15.5px}
.tp-tapctl{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:10px}
.tp-tapctl button{all:unset;cursor:pointer;font-size:13px;color:var(--t-mute);min-height:44px;display:inline-flex;align-items:center;padding:0 4px}
.tp-tapctl button:focus-visible{outline:2px solid var(--t-chart)}
/* gap table */
.tp-tablewrap{overflow-x:auto;border:1px solid var(--rule);border-radius:14px;background:#fff}
.tp-table{width:100%;border-collapse:collapse;min-width:720px;font-size:15px}
.tp-table th,.tp-table td{padding:16px 18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}
.tp-table thead th{font:600 12px/1.3 var(--text);letter-spacing:.14em;text-transform:uppercase;color:#4f4c43;background:var(--linen)}
.tp-table tbody th{font-family:var(--display);font-style:italic;font-weight:500;font-size:21px;white-space:nowrap}
.tp-table tr.me{background:var(--t-forest);color:var(--t-cream)}
.tp-table tr.me th{color:var(--t-chart)}
.tp-table tr:last-child>*{border-bottom:0}
/* discovery */
.tp-disc{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:start}
.tp-phase{list-style:none;padding:0;margin:0;border-left:1px solid rgba(246,243,235,.18)}
.tp-phase button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;gap:16px;align-items:baseline;padding:14px 0 14px 22px;margin-left:-1px;border-left:3px solid transparent;color:var(--t-mute);min-height:44px}
.tp-phase button b{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(22px,2vw,28px);color:inherit}
.tp-phase button[aria-selected="true"]{border-color:var(--t-chart);color:var(--t-cream)}
.tp-phase button:focus-visible{outline:2px solid var(--t-chart)}
.tp-pp{background:var(--t-deep);border-radius:16px;padding:clamp(22px,3vw,34px);animation:tpfade .45s var(--ease)}
.tp-pp[hidden]{display:none}
.tp-pp h3{margin:8px 0 12px}
.tp-pp p{color:var(--t-mute);margin:0 0 12px}
.tp-pp .tp-k{color:var(--t-chart)}
@keyframes tpfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tp-align{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(32px,4vw,48px);list-style:none;padding:0}
.tp-align li{padding:9px 14px;border-radius:999px;border:1px solid rgba(197,220,10,.45);font-size:14px;color:var(--t-mute);border-color:rgba(246,243,235,.16);transition:color .5s,background .5s,border-color .5s}
.tp-align li.on{color:var(--t-cream);border-color:var(--t-chart);background:rgba(197,220,10,.12)}
/* proof */
.tp-seg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--linen);border:1px solid var(--rule);margin-bottom:28px;flex-wrap:wrap}
.tp-seg button{all:unset;cursor:pointer;min-height:44px;padding:0 18px;border-radius:999px;font-weight:500;font-size:15px;display:inline-flex;align-items:center}
.tp-seg button[aria-selected="true"]{background:var(--h-navy);color:#fff}
.tp-seg button:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.tp-client{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start;animation:tpfade .45s var(--ease)}
.tp-client[hidden]{display:none}
.tp-phone{position:relative;width:100%;max-width:340px;aspect-ratio:9/18.5;border-radius:44px;background:#0b0b0b;padding:12px;box-shadow:0 50px 100px -50px rgba(15,34,64,.6)}
.tp-phone::before{content:"";position:absolute;top:20px;left:50%;width:90px;height:22px;border-radius:12px;background:#000;transform:translateX(-50%);z-index:2}
.tp-pscroll{height:100%;overflow-y:auto;border-radius:34px;background:var(--h-navy);overscroll-behavior:contain;scrollbar-width:none}
.tp-pscroll::-webkit-scrollbar{display:none}
.tp-pscroll img{width:100%;height:auto}
.tp-pscroll:focus-visible{outline:3px solid var(--h-orange);outline-offset:4px}
.tp-hint{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2);margin-top:14px}
.tp-hint i{width:2px;height:16px;background:var(--h-orange);animation:tphint 1.6s ease-in-out infinite}
@keyframes tphint{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
.tp-calls{list-style:none;padding:0;margin:0}
.tp-calls li{padding:18px 0;border-top:1px solid var(--rule)}
.tp-calls .tp-k{color:#A8430C;display:block;margin-bottom:6px}
.tp-calls p{margin:0}
.tp-hhead{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.tp-hhead img{background:var(--h-navy);padding:8px 10px;border-radius:6px;width:140px}
.tp-hhead h3{margin:0}
.tp-sw{display:flex;gap:6px;margin-top:6px}
.tp-sw i{width:28px;height:28px;border-radius:6px}
.tp-cmp{margin-top:clamp(40px,5vw,64px)}
.tp-cmp td.on{background:rgba(242,107,29,.08)}
/* fixed/rebuilt */
.tp-fr-tg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--t-deep);margin-bottom:24px}
.tp-fr-tg button{all:unset;cursor:pointer;min-height:44px;padding:0 18px;border-radius:999px;font-size:15px;color:var(--t-mute);display:inline-flex;align-items:center}
.tp-fr-tg button[aria-pressed="true"]{background:var(--t-chart);color:var(--t-anth)}
.tp-fr-tg button:focus-visible{outline:2px solid var(--t-chart);outline-offset:2px}
.tp-fr{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tp-frp{border-radius:16px;padding:clamp(20px,3vw,30px);border:1px solid rgba(246,243,235,.14);transition:opacity .4s,transform .4s,border-color .4s}
.tp-fr[data-on="fixed"] .tp-frp[data-k="rebuilt"],.tp-fr[data-on="rebuilt"] .tp-frp[data-k="fixed"]{background:rgba(0,0,0,.18);border-style:dashed}
.tp-fr[data-on="fixed"] .tp-frp[data-k="fixed"],.tp-fr[data-on="rebuilt"] .tp-frp[data-k="rebuilt"]{border-color:var(--t-chart)}
.tp-frp ul{list-style:none;padding:0;margin:14px 0 0}
.tp-frp li{padding:12px 0;border-top:1px solid rgba(246,243,235,.1);font-size:15px;color:var(--t-mute)}
.tp-frp li b{display:block;color:var(--t-cream);font-weight:600}
.tp-idea{font-family:var(--display);font-style:italic;font-size:clamp(26px,2.8vw,38px);line-height:1.15;margin-top:clamp(32px,4vw,52px);max-width:28ch}
/* tiers */
.tp-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.tp-tier{border-radius:18px;padding:clamp(22px,3vw,30px);background:#fff;border:1px solid var(--rule);display:flex;flex-direction:column;position:relative}
.tp-tier:nth-child(2){transform:translateY(-14px)}
.tp-tier:nth-child(3){background:var(--t-forest);color:var(--t-cream);border-color:var(--t-forest);transform:translateY(-28px)}
.tp-tier:nth-child(3) h3{color:var(--t-cream)}
.tp-tier .who{font-size:15px;color:var(--text2);margin:8px 0 16px}
.tp-tier:nth-child(3) .who,.tp-tier:nth-child(3) li{color:var(--t-mute)}
.tp-tier ul{list-style:none;padding:0;margin:0 0 18px;flex:1}
.tp-tier li{padding:9px 0 9px 22px;border-top:1px solid rgba(0,0,0,.07);font-size:14.5px;position:relative}
.tp-tier li::before{content:"";position:absolute;left:2px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--t-forest)}
.tp-tier:nth-child(3) li{border-color:rgba(246,243,235,.12)}
.tp-tier:nth-child(3) li::before{background:var(--t-chart)}
.tp-tier .time{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.tp-tier .bar{height:6px;border-radius:3px;background:var(--linen);margin-bottom:18px;overflow:hidden}
.tp-tier .bar i{display:block;height:100%;background:var(--t-forest);width:0;transition:width 1.2s var(--ease)}
.tp-tier:nth-child(3) .bar{background:rgba(246,243,235,.12)}
.tp-tier:nth-child(3) .bar i{background:var(--t-chart)}
.tp-tiers.in .tp-tier .bar i{width:var(--w)}
.tp-ext{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}
.tp-ext div{border-radius:14px;padding:18px 20px;background:var(--linen)}
.tp-ext b{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:22px;margin-bottom:4px}
.tp-ext p{margin:0;font-size:14.5px;color:#4a473e}
.tp-quote{margin-top:24px;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;border-radius:16px;padding:20px 24px;border:1px dashed var(--t-stone)}
.tp-quote p{margin:0;max-width:62ch}
/* evidence stair */
.tp-stair{list-style:none;padding:0;margin:0}
.tp-stair li{display:grid;grid-template-columns:28px 230px 1fr;gap:18px;padding:20px 0;border-top:1px solid rgba(246,243,235,.12);align-items:start}
.tp-stair .m{width:20px;height:20px;border-radius:50%;margin-top:3px;border:2px solid var(--t-chart)}
.tp-stair li[data-l="1"] .m{background:var(--t-chart)}
.tp-stair li[data-l="2"] .m{background:linear-gradient(90deg,var(--t-chart) 75%,transparent 75%)}
.tp-stair li[data-l="3"] .m{background:linear-gradient(90deg,var(--t-chart) 45%,transparent 45%)}
.tp-stair li[data-l="4"] .m{border-color:var(--t-mute)}
.tp-stair li[data-l="5"] .m{border-style:dashed;border-color:var(--t-mute)}
.tp-stair b{font-weight:600}
.tp-stair p{margin:0;color:var(--t-mute)}
.tp-traj{margin-top:clamp(36px,5vw,56px);border-radius:16px;background:var(--h-navy);padding:clamp(22px,3vw,32px);color:#fff}
.tp-traj ol{list-style:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:1fr 60px 1fr 60px 1fr;align-items:center}
.tp-node{border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:14px 16px;font-size:15px}
.tp-node small{display:block;opacity:.75;margin-top:4px}
.tp-node.done{border-color:var(--h-orange)}
.tp-node.fut{border-style:dashed;opacity:.75}
.tp-link{height:2px;background:var(--h-orange);transform-origin:left;transform:scaleX(0);transition:transform 1s var(--ease)}
.tp-link.dash{background:repeating-linear-gradient(90deg,rgba(255,255,255,.6) 0 6px,transparent 6px 12px)}
.tp-traj.in .tp-link{transform:scaleX(1)}
.tp-traj.in .tp-link.dash{transition-delay:.8s}
/* authorship + filter */
.tp-auth{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tp-auth div{border-radius:14px;padding:20px;background:var(--linen);border-top:4px solid var(--c)}
.tp-auth h3{font-size:22px;margin:0 0 8px}
.tp-auth p{margin:0;font-size:14.5px;color:#3d3b34}
.tp-filt{display:flex;flex-wrap:wrap;gap:6px;margin:clamp(36px,5vw,56px) 0 18px}
.tp-filt button{all:unset;cursor:pointer;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--rule);font-size:14px;display:inline-flex;align-items:center}
.tp-filt button[aria-pressed="true"]{background:var(--t-forest);color:var(--t-cream);border-color:var(--t-forest)}
.tp-filt button:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.tp-caps{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.tp-caps li{padding:10px 14px;border-radius:8px;border:1px solid var(--rule);font-size:14.5px;transition:opacity .35s,background .35s,color .35s}
.tp-caps[data-f]:not([data-f="all"]) li{color:#6F6B5E;border-style:dashed}
.tp-caps[data-f="strategy"] li[data-g="strategy"],.tp-caps[data-f="systems"] li[data-g="systems"],.tp-caps[data-f="execution"] li[data-g="execution"]{opacity:1;background:var(--t-forest);color:var(--t-cream);border-color:var(--t-forest)}
@media (max-width:900px){
 .tp-hero-grid,.tp-disc,.tp-client{grid-template-columns:1fr}
 .tp-phone{margin:0 auto}
 .tp-tiers,.tp-ext{grid-template-columns:1fr}
 .tp-tier:nth-child(n){transform:none}
 .tp-auth{grid-template-columns:1fr 1fr}
 .tp-traj ol{grid-template-columns:1fr;gap:0}
 .tp-link{width:2px;height:28px;margin-left:24px;transform-origin:top;transform:scaleY(0)}
 .tp-traj.in .tp-link{transform:scaleY(1)}
 .tp-link.dash{background:repeating-linear-gradient(180deg,rgba(255,255,255,.6) 0 6px,transparent 6px 12px)}
}
@media (max-width:620px){
 .tp-fr{grid-template-columns:1fr}
 .tp-fr[data-on="fixed"] .tp-frp[data-k="rebuilt"],.tp-fr[data-on="rebuilt"] .tp-frp[data-k="fixed"]{display:none}
 .tp-stair li{grid-template-columns:28px 1fr}
 .tp-stair li p{grid-column:2}
 .tp-auth{grid-template-columns:1fr}
 .tp-steps button b{font-size:18px}
}
@media (prefers-reduced-motion:reduce){.tp-rip{display:none}.tp-hint i{animation:none}.tp-pp,.tp-client{animation:none}}

/* v3.7 additions */
.tp-hpv-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:520px;margin-left:auto}
.tp-hpv-row img{width:100%;height:auto;border-radius:26px;border:8px solid #0b0b0b;box-shadow:0 50px 100px -50px rgba(0,0,0,.7);display:block}
.tp-hpv-row img+img{margin-top:48px}
.tp-hpv .tp-cap{text-align:right;max-width:520px;margin-left:auto}
.tp-client-open{animation:none}
.tp-client-open+.tp-client-open{margin-top:clamp(48px,6vw,88px);padding-top:clamp(40px,5vw,64px);border-top:1px solid rgba(246,243,235,.14)}
.tp-hlogo{display:block;width:180px;height:auto;margin-bottom:14px}
.tp-pscroll{-webkit-overflow-scrolling:touch;touch-action:pan-y;overflow-y:scroll;position:relative;z-index:1}
.tp-tap-wide{max-width:820px}
.tp-future{margin-top:clamp(36px,5vw,56px);border:1px dashed rgba(246,243,235,.35);border-radius:16px;padding:clamp(20px,3vw,32px)}
.tp-future ul{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px}
.tp-future li{font-size:15px;color:#C9D3E0}
.tp-future b{display:block;color:#F6F3EB;font-size:16px;margin-bottom:4px}
@media (max-width:900px){.tp-hpv-row{margin:0 auto}.tp-hpv .tp-cap{text-align:left}.tp-future ul{grid-template-columns:1fr}}
.tp-client-open .tp-hhead{display:block}
.tp-client-open .tp-hhead .tp-k{display:block;color:#A8430C;margin-bottom:6px}
.tp-tap{color:var(--t-cream)}
.tp-tap .tp-cap{color:var(--t-mute)}
.tp-dark .tp-auth h3{color:#1E1E1B}.tp-dark .tp-caps li{border-color:rgba(246,243,235,.3)}

/* v3.10 */
/* hero: one phone, the founder's own page */
.tp-hpv1{max-width:330px;margin-left:auto}
.tp-hphone{border-radius:44px;background:#0b0b0b;padding:11px;box-shadow:0 50px 100px -40px rgba(0,0,0,.75),0 0 0 1px rgba(246,243,235,.12);position:relative}
.tp-hphone::before{content:"";position:absolute;top:20px;left:50%;width:84px;height:22px;border-radius:12px;background:#000;transform:translateX(-50%);z-index:2}
.tp-hphone img{display:block;width:100%;height:auto;border-radius:34px}
.tp-hpv1 .tp-cap{text-align:center;margin-top:14px}
@media (max-width:900px){.tp-hpv1{margin:8px auto 0;max-width:300px}}
/* starting points: one row, equal height, same treatment */
.tp-tiers{align-items:stretch}
.tp-tier:nth-child(n){transform:none;background:#fff;color:inherit;border-color:var(--rule)}
.tp-tier:nth-child(3) h3{color:inherit}
.tp-tier:nth-child(3) .who{color:var(--text2)}
.tp-tier:nth-child(3) li{color:inherit;border-color:rgba(0,0,0,.07)}
.tp-tier:nth-child(3) li::before{background:var(--t-forest)}
.tp-tier:nth-child(3) .bar{background:var(--linen)}
.tp-tier:nth-child(3) .bar i{background:var(--t-forest)}
/* client examples: side by side */
.tp-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,56px);align-items:start}
.tp-pcol{display:flex;flex-direction:column;gap:18px;min-width:0}
.tp-pcol .tp-hhead{min-height:0}
.tp-pcol .tp-hhead .tp-k{display:block;margin-bottom:6px}
.tp-pcol .tp-hhead h3{margin:0}
.tp-pcol .tp-hlogo{display:block;height:34px;width:auto;margin-bottom:10px}
.tp-pcol .tp-phone{margin:0 auto;max-width:320px}
.tp-pcol .tp-hint{text-align:center;margin:0}
.tp-pcol .tp-calls{margin:0}
.tp-pair+.tp-cmp{margin-top:clamp(40px,5vw,64px)}
@media (max-width:820px){.tp-pair{grid-template-columns:1fr}.tp-pcol+.tp-pcol{padding-top:36px;border-top:1px solid var(--rule)}}
/* NFC scene: legible at every width */
@media (max-width:600px){.tp-scene{aspect-ratio:384/416}}
/* authorship: condensed, then clear space before capabilities */
.tp-authw{margin-top:clamp(48px,6vw,72px)}
.tp-authw h3{margin:0 0 14px}
.tp-auth3{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tp-auth3 li{padding:14px 16px;border-radius:12px;background:rgba(246,243,235,.06);border:1px solid rgba(246,243,235,.14);border-top:3px solid var(--c)}
.tp-auth3 b{display:block;font-size:14px;letter-spacing:.04em;color:var(--t-cream);margin-bottom:4px}
.tp-auth3 span{display:block;font-size:14px;line-height:1.45;color:#C9CCBD}
@media (max-width:900px){.tp-auth3{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.tp-auth3{grid-template-columns:1fr}}
.tp-caps-h{margin:clamp(56px,7vw,88px) 0 16px}
/* capabilities light up */
.tp-caps-lit li{cursor:default;transition:border-color .35s,box-shadow .45s,color .35s,background .35s;outline:none}
.tp-caps-lit li.seen{border-color:rgba(197,220,10,.45)}
.tp-caps-lit li.glow,.tp-caps-lit li:hover,.tp-caps-lit li:focus-visible,.tp-caps-lit li.lit{border-color:#C5DC0A;color:#F6F3EB;background:rgba(197,220,10,.08);box-shadow:0 0 0 1px #C5DC0A,0 0 22px rgba(197,220,10,.35)}
@media (prefers-reduced-motion:reduce){.tp-caps-lit li{transition:none}}

/* v3.11: hierarchy and language pass */
.tp-alt{background:var(--linen);--text2:#5A5649}
.tp-alt .label,.tp-alt .tp-sh p{color:#5A5649}
.tp-g4{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,24px)}
.tp-g4 li{border-top:3px solid var(--t-forest);padding-top:18px}
.tp-g4 .tp-k{display:block;color:#4E4B40;margin-bottom:8px}
.tp-g4 h3{font-size:clamp(21px,1.8vw,25px);margin:0 0 8px}
.tp-g4 p{margin:0;font-size:15.5px;color:var(--text2)}
.tp-g4d li{border-top-color:var(--t-chart)}
.tp-g4d .tp-k{color:var(--t-chart)}
.tp-g4d p{color:#D9DBCB}
.tp-jr{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;counter-reset:jr}
.tp-jr li{position:relative;background:var(--cream);border:1px solid var(--rule);border-radius:14px;padding:20px 20px 22px}
.tp-jr .tp-k{display:block;color:#3F5A1C;margin-bottom:8px}
.tp-jr h3{font-size:21px;margin:0 0 6px}
.tp-jr p{margin:0;font-size:15px;color:var(--text2)}
.tp-sc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,32px);margin-top:clamp(44px,6vw,72px)}
.tp-sc>div{border:1px solid rgba(246,243,235,.16);border-radius:16px;padding:clamp(20px,3vw,28px);background:rgba(246,243,235,.04)}
.tp-sc h3{font-size:22px;margin:0 0 10px}
.tp-sc ul{list-style:none;padding:0;margin:0}
.tp-sc li{padding:12px 0;border-top:1px solid rgba(246,243,235,.12);font-size:15px;color:#D9DBCB}
.tp-sc b{display:block;color:var(--t-cream);font-weight:600;margin-bottom:2px}
.tp-pfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:340px;margin-top:14px}
.tp-pfoot .tp-hint{margin-top:0}
.tp-fullbtn{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--ink);color:var(--ink);font:500 14px var(--text);text-decoration:none;background:transparent;cursor:pointer}
.tp-fullbtn:hover{background:var(--ink);color:var(--cream)}
.tp-dlg{--t-cream:#F6F3EB;--t-chart:#C5DC0A;width:min(640px,94vw);max-height:92vh;padding:0;border:0;border-radius:18px;background:#0b0b0b;color:var(--t-cream);overflow:hidden}
.tp-dlg::backdrop{background:rgba(10,12,9,.78)}
.tp-dlg[open]{display:flex;flex-direction:column}
.tp-dlg-bar{background:#0b0b0b;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 12px 20px;border-bottom:1px solid rgba(246,243,235,.14)}
.tp-dlg-bar h2{font:600 15px/1.3 var(--text);letter-spacing:.02em;margin:0;color:var(--t-cream)}
.tp-dlg-x{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(246,243,235,.4);background:transparent;color:var(--t-cream);font:500 14px var(--text);cursor:pointer}
.tp-dlg-x:focus-visible,.tp-dlg-body:focus-visible{outline:3px solid var(--t-chart);outline-offset:-3px}
.tp-dlg-body{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;max-height:calc(92vh - 70px)}
.tp-dlg-body img{display:block;width:100%;height:auto}
.tp-auth5{grid-template-columns:repeat(5,minmax(0,1fr))}
.tp-capl{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tp-capl li{padding:16px 18px;border-radius:12px;border:1px solid rgba(246,243,235,.18)}
.tp-capl b{display:block;color:var(--t-cream);font-size:16px;margin-bottom:4px}
.tp-capl span{display:block;font-size:14.5px;line-height:1.45;color:#C9CCBD}
.tp-dark2{border-top:1px solid rgba(246,243,235,.12)}
.tp-pill-in{margin:0 0 10px;color:var(--t-cream)}
.tp-stair li p .tp-pill-in{display:flex;width:max-content}
.tp-paths{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,28px);margin-top:28px}
.tp-paths .tile h3{margin:8px 0 8px}
/* stepper: deterministic state, quick swap when the visitor chooses a step */
.tp-s{transition:opacity .35s var(--ease)}
.tp-tap.tp-now .tp-s,.tp-tap.tp-now .tp-card{transition:none}
.tp-tap[data-step="1"] .tp-s:not(.tp-s1),.tp-tap[data-step="2"] .tp-s:not(.tp-s2),.tp-tap[data-step="3"] .tp-s:not(.tp-s3){opacity:0;visibility:hidden}
@media (prefers-reduced-motion:reduce){.tp-s,.tp-card{transition:none}}
@media (max-width:1000px){.tp-g4,.tp-jr{grid-template-columns:1fr 1fr}.tp-auth5{grid-template-columns:1fr 1fr}.tp-capl{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.tp-g4,.tp-jr,.tp-sc,.tp-paths,.tp-capl,.tp-auth5{grid-template-columns:1fr}.tp-pfoot{margin-left:auto;margin-right:auto}}
