/* Our team page (/team/). Builds on how-we-work.css (hw-*) for the hero, headings and reveal animation. */

/* ---------- Hero: two founder photos ---------- */
.tm-duo { position: relative; min-height: 460px; }
.tm-duo-card { position: absolute; margin: 0; width: 58%; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 26px; background: linear-gradient(135deg, #2D5BFF, #7B3CF5); border: 6px solid #fff; box-shadow: 0 30px 60px -30px rgba(28, 16, 80, .55); transition: transform .6s var(--ease-premium); }
.tm-duo-card img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; }
.tm-duo-1 { left: 0; top: 0; transform: rotate(-4deg); z-index: 1; }
.tm-duo-2 { right: 0; top: 70px; transform: rotate(4deg); z-index: 2; }
.tm-duo:hover .tm-duo-1 { transform: rotate(-6deg) translateX(-8px); }
.tm-duo:hover .tm-duo-2 { transform: rotate(6deg) translateX(8px); }
.tm-duo-card figcaption { position: absolute; left: .7rem; right: .7rem; bottom: .7rem; padding: .55rem .75rem; border-radius: 14px; background: rgba(255, 255, 255, .92); backdrop-filter: blur(8px); }
.tm-duo-card figcaption strong { display: block; font-size: .92rem; color: var(--ink); }
.tm-duo-card figcaption span { display: block; font-size: .74rem; color: var(--gray-600); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tm-duo-1 figcaption { right: 30%; }
.tm-duo-1 figcaption span { white-space: normal; }
.tm-chip { left: auto; right: -.75rem; top: -.5rem; bottom: auto; z-index: 3; }
.tm-initials { width: 100%; height: 100%; display: grid; place-items: center; font-family: var(--font-heading); font-size: 3.5rem; font-weight: 800; color: #fff; background: linear-gradient(135deg, #2D5BFF, #7B3CF5); }

/* ---------- Promises strip ---------- */
.tm-promises { position: relative; z-index: 2; margin-top: -2.5rem; }
.tm-promise-row { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.tm-promise-row li { display: flex; gap: .9rem; align-items: flex-start; padding: 1.15rem 1.25rem; border-radius: 20px; background: #fff; border: 1px solid rgba(123, 60, 245, .12); box-shadow: 0 24px 48px -36px rgba(28, 16, 80, .45); }
.tm-promise-icon { width: 44px; height: 44px; flex-shrink: 0; display: grid; place-items: center; border-radius: 14px; color: #fff; background: linear-gradient(135deg, #2D5BFF, #7B3CF5); box-shadow: 0 10px 20px -10px rgba(123, 60, 245, .8); }
.tm-promise-row strong { display: block; font-size: .98rem; color: var(--ink); margin-bottom: .15rem; }
.tm-promise-row li > span:last-child { font-size: .88rem; line-height: 1.5; color: var(--gray-600); }

/* ---------- Founder profiles: compact alternating rows ---------- */
.tm-profiles { display: flex; flex-direction: column; gap: clamp(3.5rem, 7vw, 6rem); max-width: 1060px; margin: 0 auto; }
.tm-profile { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.tm-profile.is-flip { grid-template-columns: minmax(0, 1fr) 360px; }
.tm-profile.is-flip .tm-portrait { order: 2; }
.tm-portrait { --rx: 0deg; --ry: 0deg; --mx: 50%; --my: 30%; position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 28px; background: #15152B; box-shadow: 0 44px 80px -46px rgba(20, 12, 70, .7); transform: perspective(1000px) rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
.tm-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 26%; filter: saturate(.85) contrast(1.05); transition: filter .7s, transform 1s cubic-bezier(.2, .8, .2, 1); }
.tm-portrait:hover img { filter: saturate(1.05) contrast(1.03); transform: scale(1.05); }
.tm-portrait::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(160deg, rgba(59, 43, 217, .14), transparent 55%, rgba(180, 35, 122, .12)); transition: opacity .6s; pointer-events: none; }
.tm-portrait::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(10, 10, 23, .35), transparent 20%, transparent 52%, rgba(10, 10, 23, .88)); pointer-events: none; }
.tm-portrait:hover::before { opacity: 0; }
.tm-portrait-shine { position: absolute; inset: 0; z-index: 2; background: radial-gradient(380px circle at var(--mx) var(--my), rgba(255, 255, 255, .18), transparent 45%); opacity: 0; transition: opacity .4s; pointer-events: none; }
.tm-portrait:hover .tm-portrait-shine { opacity: 1; }
.tm-portrait-focus { position: absolute; left: 1rem; top: 1rem; z-index: 3; max-width: calc(100% - 4.5rem); display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .75rem; border-radius: 999px; font-size: .72rem; font-weight: 700; color: #fff; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .25); backdrop-filter: blur(10px); }
.tm-portrait-focus i { color: #FFC56E; font-size: .68rem; }
.tm-portrait-num { position: absolute; top: 1.1rem; right: 1.2rem; z-index: 3; font-family: var(--font-heading); font-size: .8rem; font-weight: 800; letter-spacing: .12em; color: rgba(255, 255, 255, .85); }
.tm-portrait-quote { position: absolute; left: 1.2rem; right: 1.2rem; bottom: 1.1rem; z-index: 3; margin: 0; font-size: .92rem; font-style: italic; line-height: 1.5; color: rgba(255, 255, 255, .95); }
.tm-portrait .tm-initials { position: absolute; inset: 0; }

.tm-detail { min-width: 0; }
.tm-kicker { display: flex; align-items: center; gap: .6rem; margin: 0 0 .6rem; font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #7B3CF5; }
.tm-kicker span { color: var(--gray-400); letter-spacing: .08em; }
.tm-kicker span::after { content: ''; display: inline-block; width: 22px; height: 1px; margin-left: .6rem; vertical-align: middle; background: currentColor; }
.tm-detail h3 { margin: 0; font-size: clamp(1.8rem, 3.2vw, 2.4rem); line-height: 1.05; letter-spacing: -.03em; color: var(--ink); }
.tm-headline { margin: .45rem 0 0; font-size: .98rem; font-weight: 600; background: linear-gradient(90deg, #2D5BFF, #7B3CF5 60%, #E9358F); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tm-bio { margin: .8rem 0 0; max-width: 56ch; font-size: .95rem; line-height: 1.65; color: var(--gray-600); }
.tm-leads { list-style: none; margin: 1.1rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .45rem; }
.tm-leads li { display: flex; align-items: center; gap: .7rem; font-size: .92rem; font-weight: 600; color: var(--gray-800); }
.tm-leads li span { width: 24px; height: 24px; flex-shrink: 0; display: grid; place-items: center; border-radius: 8px; font-size: .7rem; font-weight: 800; color: #6D28D9; background: rgba(123, 60, 245, .09); }

.tm-skills { margin-top: 1.25rem; padding: 1rem 1.1rem; border-radius: 18px; background: var(--gray-50); border: 1px solid var(--gray-100); }
.tm-skills-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: .6rem; }
.tm-skills-head h4 { margin: 0; font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--gray-500); }
.tm-skills-head span { font-size: .74rem; color: var(--gray-400); }
.tm-skill-row { display: flex; flex-wrap: wrap; gap: .4rem; }
.tm-skill { display: inline-flex; align-items: center; gap: .45rem; padding: .38rem .75rem; border-radius: 999px; font-size: .8rem; font-weight: 600; color: var(--gray-800); background: #fff; border: 1px solid var(--gray-200); transition: transform .25s, border-color .25s, box-shadow .25s; }
.tm-skill:hover { transform: translateY(-2px); border-color: rgba(123, 60, 245, .35); box-shadow: 0 8px 16px -12px rgba(76, 29, 149, .5); }
.tm-skill img { width: 16px; height: 16px; object-fit: contain; }
.tm-skill i { font-size: .72rem; color: #7B3CF5; }
.tm-skill.is-sm { padding: .3rem .65rem; font-size: .76rem; }
.tm-skill.is-sm img { width: 14px; height: 14px; }
.tm-skill-more { display: inline-flex; align-items: center; gap: .4rem; padding: .38rem .8rem; border-radius: 999px; border: 1px dashed rgba(123, 60, 245, .45); background: rgba(123, 60, 245, .06); font: inherit; font-size: .8rem; font-weight: 700; color: #6D28D9; cursor: pointer; transition: background .25s; }
.tm-skill-more:hover { background: rgba(123, 60, 245, .12); }
.tm-skill-more i { font-size: .62rem; transition: transform .3s; }
.tm-skill-more[aria-expanded="true"] i { transform: rotate(180deg); }
.tm-skill-all { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s cubic-bezier(.2, .8, .2, 1); }
.tm-skill-all.is-open { grid-template-rows: 1fr; }
.tm-skill-all-inner { overflow: hidden; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .9rem 1.2rem; }
.tm-skill-all.is-open .tm-skill-all-inner { padding-top: .9rem; margin-top: .9rem; border-top: 1px dashed var(--gray-200); }
.tm-skill-group h5 { margin: 0 0 .45rem; font-size: .74rem; font-weight: 700; color: var(--gray-600); }
.tm-skill-group h5 i { color: #7B3CF5; margin-right: .2rem; font-size: .7rem; }
.tm-skill-group > div { display: flex; flex-wrap: wrap; gap: .3rem; }
.tm-skill-all .tm-skill { opacity: 0; transform: translateY(6px) scale(.96); }
.tm-skill-all.is-open .tm-skill { opacity: 1; transform: none; transition: opacity .35s, transform .35s cubic-bezier(.2, .8, .2, 1); transition-delay: calc(var(--k, 0) * 40ms + 120ms); }

.tm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-top: 1.4rem; }
.tm-btn { display: inline-flex; align-items: center; gap: .5rem; padding: .72rem 1.25rem; border-radius: 999px; font-size: .88rem; font-weight: 700; color: #fff; text-decoration: none; background: linear-gradient(90deg, #2D5BFF, #7B3CF5); box-shadow: 0 14px 26px -14px rgba(91, 33, 182, .8); transition: transform .25s, filter .25s; }
.tm-btn:hover { color: #fff; transform: translateY(-2px); filter: brightness(1.08); }
.tm-btn i { font-size: .75rem; transition: transform .25s; }
.tm-btn:hover i { transform: translateX(3px); }
.tm-links { display: flex; flex-wrap: wrap; gap: .4rem; }
.tm-links a { height: 40px; min-width: 40px; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding: 0 .6rem; border-radius: 999px; font-size: .85rem; font-weight: 600; color: var(--gray-700); border: 1px solid var(--gray-200); background: #fff; text-decoration: none; transition: all .25s; }
.tm-links a.is-site { padding: 0 .95rem; }
.tm-links a:hover { color: #fff; border-color: transparent; background: linear-gradient(135deg, #2D5BFF, #7B3CF5); }

/* ---------- Tech stack ---------- */
.tm-stack { background: var(--gray-50); }
.tm-stack-tabs { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem; max-width: 960px; margin: 0 auto 2rem; padding: .35rem; border-radius: 22px; background: #fff; border: 1px solid var(--gray-200); box-shadow: 0 18px 40px -32px rgba(28, 16, 80, .45); }
.tm-stack-pill { position: absolute; left: 0; top: .35rem; border-radius: 16px; background: linear-gradient(90deg, #2D5BFF, #7B3CF5); box-shadow: 0 10px 20px -10px rgba(91, 33, 182, .8); transition: transform .45s cubic-bezier(.2, .8, .2, 1), width .45s cubic-bezier(.2, .8, .2, 1), top .45s; }
.tm-stack-tabs button { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .4rem; padding: .55rem .9rem; border: 0; border-radius: 16px; background: none; font: inherit; font-size: .84rem; font-weight: 700; color: var(--gray-600); cursor: pointer; transition: color .3s; }
.tm-stack-tabs button i { font-size: .74rem; }
.tm-stack-tabs button span { font-size: .7rem; padding: .05rem .4rem; border-radius: 999px; background: var(--gray-100); color: var(--gray-500); transition: background .3s, color .3s; }
.tm-stack-tabs button:hover { color: var(--ink); }
.tm-stack-tabs button.is-active { color: #fff; }
.tm-stack-tabs button.is-active span { background: rgba(255, 255, 255, .2); color: #fff; }
.tm-stack-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .85rem; max-width: 1060px; margin: 0 auto; }
.tm-tool { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; padding: 1.05rem 1.1rem; border-radius: 18px; background: #fff; border: 1px solid var(--gray-200); transition: transform .35s cubic-bezier(.2, .8, .2, 1), border-color .3s, box-shadow .35s; }
.tm-tool:hover { transform: translateY(-4px); border-color: rgba(123, 60, 245, .3); box-shadow: 0 22px 40px -28px rgba(28, 16, 80, .5); }
.tm-tool.is-in { animation: tmPop .45s cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--k, 0) * 35ms); }
@keyframes tmPop { from { opacity: 0; transform: translateY(10px) scale(.97); } }
.tm-tool-logo { width: 44px; height: 44px; display: grid; place-items: center; margin-bottom: .55rem; border-radius: 13px; background: var(--gray-50); border: 1px solid var(--gray-100); }
.tm-tool-logo img { width: 24px; height: 24px; object-fit: contain; }
.tm-tool-logo i { font-size: 1rem; color: #7B3CF5; }
.tm-tool strong { font-size: .92rem; color: var(--ink); }
.tm-tool small { font-size: .72rem; color: var(--gray-500); }
.tm-tool-who { position: absolute; top: .9rem; right: .9rem; display: inline-flex; }
.tm-tool-who img, .tm-tool-who b { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; object-position: 50% 25%; border: 2px solid #fff; display: inline-grid; place-items: center; font-size: .55rem; color: #fff; background: #7B3CF5; box-shadow: 0 2px 6px rgba(0, 0, 0, .15); }
.tm-tool-who > * + * { margin-left: -8px; }

/* ---------- Who you'll talk to ---------- */
.tm-stage-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; counter-reset: s; }
.tm-stage { position: relative; display: flex; flex-direction: column; padding: 1.4rem 1.25rem; border-radius: 20px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); backdrop-filter: blur(6px); transition: background .3s, transform .4s var(--ease-premium), border-color .3s; }
.tm-stage:hover { background: rgba(255, 255, 255, .1); border-color: rgba(138, 217, 255, .35); transform: translateY(-4px); }
.tm-stage-num { font-family: var(--font-heading); font-size: 1.9rem; font-weight: 800; line-height: 1; background: linear-gradient(100deg, #8AD9FF, #C9A8FF, #FF8CC6); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tm-stage h3 { margin: .8rem 0 .4rem; font-size: 1.05rem; color: #fff; }
.tm-stage p { margin: 0 0 1rem; font-size: .88rem; line-height: 1.55; color: rgba(226, 232, 255, .78); }
.tm-owner { display: flex; align-items: center; gap: .55rem; margin-top: auto; padding-top: .85rem; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .82rem; font-weight: 700; color: #fff; }
.tm-faces { display: inline-flex; }
.tm-faces img, .tm-faces span { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; object-position: 50% 25%; border: 2px solid rgba(255, 255, 255, .85); display: inline-grid; place-items: center; font-size: .65rem; background: #7B3CF5; color: #fff; }
.tm-faces > * + * { margin-left: -9px; }
.tm-stage-cta { margin-top: 1.75rem; text-align: center; }

/* ---------- Specialists ---------- */
.tm-specialists { background: var(--gray-50); }
.tm-spec-wrap { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 3rem; align-items: start; }
.tm-spec-wrap .hw-head { position: sticky; top: calc(var(--nav-height) + 2rem); }
.tm-spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.tm-spec { padding: 1.3rem 1.25rem; border-radius: 20px; background: #fff; border: 1px solid var(--gray-200); transition: transform .35s var(--ease-premium), border-color .3s, box-shadow .35s; }
.tm-spec:hover { transform: translateY(-4px); border-color: rgba(123, 60, 245, .3); box-shadow: 0 24px 40px -30px rgba(28, 16, 80, .45); }
.tm-spec-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: #7B3CF5; background: rgba(123, 60, 245, .09); }
.tm-spec h3 { margin: .85rem 0 .3rem; font-size: 1rem; color: var(--ink); }
.tm-spec p { margin: 0; font-size: .87rem; line-height: 1.55; color: var(--gray-600); }

/* ---------- Values ---------- */
.tm-value-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.25rem; }
.tm-value { position: relative; overflow: hidden; padding: 1.6rem 1.4rem; border-radius: 22px; background: #fff; border: 1px solid var(--gray-200); transition: transform .35s var(--ease-premium), box-shadow .35s; }
.tm-value::before { content: ''; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, #4CC6FF, #7B3CF5, #FF3D9A); opacity: 0; transition: opacity .3s; }
.tm-value:hover { transform: translateY(-5px); box-shadow: 0 26px 46px -32px rgba(28, 16, 80, .5); }
.tm-value:hover::before { opacity: 1; }
.tm-value-icon { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 16px; font-size: 1.1rem; color: #fff; background: linear-gradient(135deg, #2D5BFF, #7B3CF5); box-shadow: 0 12px 22px -12px rgba(123, 60, 245, .8); }
.tm-value h3 { margin: 1rem 0 .4rem; font-size: 1.08rem; color: var(--ink); }
.tm-value p { margin: 0; font-size: .9rem; line-height: 1.6; color: var(--gray-600); }

/* ---------- Numbers and story ---------- */
.tm-story { background: var(--gray-50); }
.tm-numbers { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; margin-bottom: 3.5rem; }
.tm-numbers > div { padding: 1.4rem; border-radius: 20px; text-align: center; background: #fff; border: 1px solid var(--gray-200); }
.tm-numbers strong { display: block; font-family: var(--font-heading); font-size: 2.3rem; font-weight: 800; letter-spacing: -.02em; background: linear-gradient(100deg, #2D5BFF, #7B3CF5 60%, #E9358F); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tm-numbers span { font-size: .88rem; color: var(--gray-600); }
.tm-timeline { list-style: none; max-width: 760px; margin: 0 auto; padding: 0 0 0 1.5rem; border-left: 2px solid rgba(123, 60, 245, .2); display: flex; flex-direction: column; gap: 1.5rem; }
.tm-timeline li { position: relative; display: flex; gap: 1.1rem; align-items: flex-start; }
.tm-timeline li::before { content: ''; position: absolute; left: calc(-1.5rem - 8px); top: .4rem; width: 14px; height: 14px; border-radius: 50%; background: linear-gradient(135deg, #2D5BFF, #7B3CF5); box-shadow: 0 0 0 4px var(--gray-50); }
.tm-year { flex-shrink: 0; min-width: 64px; padding: .25rem .6rem; border-radius: 999px; text-align: center; font-size: .8rem; font-weight: 800; color: #5B21B6; background: rgba(123, 60, 245, .1); }
.tm-timeline h3 { margin: 0 0 .25rem; font-size: 1.05rem; color: var(--ink); }
.tm-timeline p { margin: 0; font-size: .92rem; line-height: 1.6; color: var(--gray-600); }

/* ---------- Join us ---------- */
.tm-join-sec { padding-top: 3.5rem; }
.tm-join { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; max-width: 1000px; margin: 0 auto; padding: clamp(1.5rem, 4vw, 2.4rem); border-radius: 26px; background: radial-gradient(60% 80% at 100% 0%, rgba(167, 139, 250, .18), transparent 70%), radial-gradient(50% 70% at 0% 100%, rgba(255, 178, 94, .16), transparent 70%), #fff; border: 1px solid rgba(123, 60, 245, .15); box-shadow: 0 30px 60px -45px rgba(76, 29, 149, .5); }
.tm-join > div { flex: 1 1 360px; }
.tm-join h2 { margin: 0 0 .35rem; font-size: clamp(1.35rem, 2.6vw, 1.75rem); color: var(--ink); }
.tm-join p { margin: 0; color: var(--gray-600); }
.tm-join-icon { width: 58px; height: 58px; flex-shrink: 0; display: grid; place-items: center; border-radius: 18px; font-size: 1.3rem; color: #fff; background: linear-gradient(135deg, #12B76A, #0E9384); box-shadow: 0 14px 26px -14px rgba(14, 147, 132, .8); }
.tm-join-roles { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .8rem; }
.tm-join-roles a { padding: .3rem .7rem; border-radius: 999px; font-size: .8rem; font-weight: 600; color: #5B21B6; background: rgba(123, 60, 245, .07); text-decoration: none; }
.tm-join-roles a:hover { background: rgba(123, 60, 245, .14); }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .tm-profile, .tm-profile.is-flip { grid-template-columns: 1fr; }
    .tm-profile.is-flip .tm-portrait { order: 0; }
    .tm-portrait { max-width: 380px; width: 100%; margin: 0 auto; }
}
@media (max-width: 640px) {
    .tm-stack-tabs { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; border-radius: 18px; }
    .tm-stack-tabs button { flex-shrink: 0; }
    .tm-stack-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
    .tm-skill-all-inner { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
    .tm-spec-wrap { grid-template-columns: 1fr; gap: 2rem; }
    .tm-spec-wrap .hw-head { position: static; }
}
@media (max-width: 991px) {
    .tm-duo { min-height: 0; height: 420px; max-width: 460px; margin: 1rem auto 0; width: 100%; }
}
@media (max-width: 640px) {
    .tm-duo { height: 330px; }
    .tm-duo-card figcaption { padding: .4rem .55rem; }
    .tm-chip { display: none; }
    .tm-promises { margin-top: -1.5rem; }
    .tm-spec-grid { grid-template-columns: 1fr; }
    .tm-timeline li { flex-direction: column; gap: .4rem; }
}
.tm-tool[hidden] { display: none; }
.tm-stack-more { margin-top: 1.5rem; text-align: center; }
.tm-stack-more[hidden] { display: none; }
.tm-tool-who.is-studio img { object-fit: contain; padding: 3px; background: #fff; }
