/* Kinvra AI — Work (case studies), About and Contact (site/lib-work.mjs).
   Loaded after site.css and pages.css on those pages only. Device mockups reuse
   .devices / .browser / .phone from site.css. */

.wk-page main :is(h1, h2, h3) { text-wrap: balance; }
.wk-page main p { text-wrap: pretty; }

/* Fallbacks for small shared bits, so these pages don't depend on the homepage. */
.wk-page .pill-light { background: #f5f5f7; color: #1d1d1f; }
.wk-page .pill-light:hover { background: #fff; }
.wk-page .chev.ext::after { content: "\2197"; font-size: 0.85em; transform: none; }

/* Project accents: a glow pair and a tag colour that reads on black. */
.wk-theme-blue { --wk-a: rgba(255, 62, 165, 0.42); --wk-b: rgba(41, 200, 255, 0.32); --wk-tag: #ff7ccc; }
.wk-theme-gold { --wk-a: rgba(233, 180, 76, 0.38); --wk-b: rgba(255, 107, 214, 0.22); --wk-tag: #ecc36e; }
.wk-theme-violet { --wk-a: rgba(158, 118, 255, 0.45); --wk-b: rgba(255, 170, 220, 0.28); --wk-tag: #c7abff; }
.wk-theme-lime { --wk-a: rgba(176, 232, 72, 0.3); --wk-b: rgba(41, 151, 255, 0.34); --wk-tag: #bdeb5c; }
/* Resource Connect's own palette: deep purple with the gold they use on every
   button. Distinct from violet, which sits next to it on the About grid. */
.wk-theme-plum { --wk-a: rgba(124, 58, 237, 0.44); --wk-b: rgba(234, 179, 8, 0.24); --wk-tag: #e6c874; }

.wk-section { padding-block: 120px; scroll-margin-top: 52px; }
.wk-section.alt { background: var(--bg-2); }

/* ---------- case study hero ---------- */
.wk-hero { position: relative; overflow: hidden; isolation: isolate; padding-block: 0 72px; text-align: center; }
.wk-hero-glow { position: absolute; inset: -10% -20% auto; height: 900px; z-index: -1; pointer-events: none; background: radial-gradient(38% 42% at 30% 48%, var(--wk-a), transparent 70%), radial-gradient(34% 40% at 72% 30%, var(--wk-b), transparent 70%); filter: blur(10px); }
.wk-crumbs { padding-block: 18px 0; text-align: left; }
.wk-crumbs ol { color: #a1a1a6; }
.wk-crumbs a { color: #d2d2d7; }
.wk-crumbs li + li::before { color: #86868b; }
.wk-hero-inner { display: grid; justify-items: center; padding-top: 56px; }
.wk-hero-copy { max-width: 900px; }
.wk-tag { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; color: var(--wk-tag); }
.wk-title { margin-top: 8px; font-size: clamp(3.4rem, 9.4vw, 7.2rem); line-height: 0.98; font-weight: 700; letter-spacing: -0.05em; color: #f5f5f7; }
.wk-lede { max-width: 40ch; margin: 24px auto 0; font-size: clamp(1.15rem, 2.1vw, 1.5rem); line-height: 1.4; font-weight: 500; letter-spacing: -0.02em; color: var(--on-dark-2); }
.wk-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px 26px; margin-top: 34px; }
.wk-visit::after { content: "\2197"; margin-left: 2px; font-size: 0.9em; }
.wk-hero .chev { color: #2997ff; }
.wk-hero-stage { position: relative; width: 100%; max-width: 1000px; margin-top: 72px; }
.wk-hero-stage .devices { padding: 0 8% 7% 0; }
.wk-hero-stage .devices::before { inset: 0 5% 5%; background: radial-gradient(closest-side, var(--wk-a), transparent); filter: blur(50px); }
.wk-hero-stage .browser { border-radius: 18px; box-shadow: 0 60px 120px -50px rgba(0, 0, 0, 0.95), 0 0 0 1px rgba(255, 255, 255, 0.06); }
.wk-hero-stage .phone { width: 25%; }

.wk-facts-band { background: var(--black); color: var(--on-dark); padding-block: 0 80px; }
.wk-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.wk-facts > div { padding: 24px 24px 0 0; }
.wk-facts > div + div { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, 0.1); }
.wk-facts dt { font-size: 13px; font-weight: 500; color: #a1a1a6; }
.wk-facts dd { margin: 6px 0 0; font-size: 17px; line-height: 1.35; font-weight: 600; letter-spacing: -0.015em; color: #f5f5f7; }
/* "This one is ours" — shown on the case studies for our own companies. */
.wk-own { display: flex; gap: 10px; max-width: 62ch; margin: 28px 0 0; padding: 14px 18px; border-radius: 14px; background: rgba(255, 255, 255, 0.06); font-size: 15px; line-height: 1.5; color: #d2d2d7; }
.wk-own::before { content: ""; flex: none; width: 3px; border-radius: 3px; background: var(--wk-tag, #a1a1a6); }
.wk-ours { color: #f5f5f7; font-weight: 600; }

/* ---------- brief ---------- */
.wk-brief-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 72px; align-items: start; }
.wk-brief-head { position: sticky; top: 100px; }
.wk-brief-body p { font-size: clamp(1.3rem, 2.4vw, 1.8rem); line-height: 1.38; font-weight: 600; letter-spacing: -0.024em; color: var(--ink); }
.wk-brief-body p + p { margin-top: 26px; color: var(--ink-3); }

/* ---------- what we built ---------- */
.wk-built-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 80px; align-items: start; }
.wk-built-head .pg-sub { color: var(--ink-2); }
.wk-built-list { list-style: none; margin: 48px 0 0; padding: 0; counter-reset: none; }
.wk-built-list li { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 14px; padding: 28px 0; border-top: 1px solid var(--line); }
.wk-built-list li:last-child { border-bottom: 1px solid var(--line); }
.wk-num { font-size: 22px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.2; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.wk-built-list h3 { font-size: 21px; line-height: 1.25; letter-spacing: -0.02em; }
.wk-built-list p { margin-top: 8px; font-size: 17px; line-height: 1.55; color: var(--ink-2); }
.wk-built-media { position: sticky; top: 90px; display: grid; justify-items: center; padding-block: 12px; }
.wk-built-media::before { content: ""; position: absolute; inset: 12% 0; z-index: 0; border-radius: 50%; background: radial-gradient(closest-side, rgba(122, 92, 255, 0.28), rgba(41, 151, 255, 0.12) 60%, transparent); filter: blur(20px); }
.wk-page .wk-phone-solo { position: relative; right: auto; bottom: auto; width: min(320px, 78%); translate: none; box-shadow: 0 50px 90px -40px rgba(0, 0, 0, 0.55); }

/* ---------- gallery ---------- */
.wk-gallery { padding-block: 130px; }
.wk-gallery-head { margin-bottom: 72px; }
.wk-gallery .pg-sub { color: var(--on-dark-2); }
.wk-views { display: grid; gap: 110px; }
.wk-view { margin: 0; }
.wk-view-shots { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.3fr); gap: 44px; align-items: center; }
.wk-view.flip .wk-view-shots { grid-template-columns: minmax(0, 0.3fr) minmax(0, 1fr); }
.wk-view.flip .wk-view-shots .phone { order: -1; }
.wk-view.solo .wk-view-shots { grid-template-columns: minmax(0, 1fr); max-width: 1000px; margin-inline: auto; }
.wk-page .wk-view .phone { position: relative; right: auto; bottom: auto; width: 100%; translate: none; }
.wk-view .browser { box-shadow: 0 50px 100px -50px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.05); }
.wk-view figcaption { max-width: 62ch; margin-top: 26px; font-size: 17px; line-height: 1.5; color: var(--on-dark-2); }
.wk-view.flip figcaption { margin-left: auto; }
.wk-view.solo figcaption { margin-inline: auto; text-align: center; }
.wk-view figcaption strong { font-weight: 600; color: #f5f5f7; }
.wk-gallery-note { margin-top: 64px; text-align: center; font-size: 13px; color: #a1a1a6; }

/* ---------- built with ---------- */
.wk-stack-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 72px; align-items: start; }
.wk-stack-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.wk-stack-links .pg-related-item { padding-block: 24px; }
.wk-tools { margin-top: 36px; }
.wk-tools h3 { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; color: var(--ink-2); }
.wk-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; }
.wk-chips li { padding: 8px 15px; border-radius: 980px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); font-size: 14.5px; font-weight: 500; color: var(--ink-2); }
.wk-industry { margin-top: 22px; font-size: 16px; color: var(--ink-2); }
.wk-industry a { font-weight: 500; }
.wk-fine { margin-top: 30px; font-size: 12.5px; line-height: 1.55; color: #5f5f64; }

/* ---------- next project ---------- */
.wk-next-section { padding-block: 110px 20px; }
.wk-next { position: relative; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 48px; align-items: center; padding: 56px; border-radius: 36px; overflow: hidden; isolation: isolate; background: #0b0b0f; color: #f5f5f7; transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease); }
.wk-next::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(50% 70% at 85% 20%, var(--wk-a), transparent 70%), radial-gradient(40% 60% at 10% 100%, var(--wk-b), transparent 70%); }
.wk-next:hover { text-decoration: none; transform: translateY(-4px); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.45); }
.wk-next-label { font-size: 13px; font-weight: 600; color: #a1a1a6; }
.wk-next-name { margin-top: 8px; font-size: clamp(2.3rem, 5vw, 3.8rem); line-height: 1.02; font-weight: 700; letter-spacing: -0.045em; }
.wk-next-tag { margin-top: 10px; font-size: 17px; font-weight: 600; color: var(--wk-tag); }
.wk-next .chev { margin-top: 22px; color: #2997ff; }
.wk-next-shot { display: block; overflow: hidden; border-radius: 14px; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.08); transform: perspective(1400px) rotateY(-8deg) rotateX(3deg); transition: transform 0.7s var(--ease); }
.wk-next-shot img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; }
.wk-next:hover .wk-next-shot { transform: perspective(1400px) rotateY(-3deg) rotateX(1deg) scale(1.02); }

/* ---------- /work ---------- */
.wk-hero-index { padding-bottom: 36px; }
.wk-hero-index .wk-hero-glow { height: 700px; background: radial-gradient(34% 44% at 26% 50%, rgba(41, 151, 255, 0.34), transparent 70%), radial-gradient(30% 40% at 52% 22%, rgba(122, 92, 255, 0.34), transparent 70%), radial-gradient(32% 44% at 78% 48%, rgba(255, 79, 216, 0.28), transparent 70%); }
.wk-hero-index .wk-title { font-size: clamp(3.2rem, 9vw, 6.8rem); }
.wk-hero-index .wk-lede { max-width: 46ch; }
.wk-jump { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 36px 0 0; padding: 0; }
.wk-jump a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 18px; border-radius: 980px; background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14); color: #f5f5f7; font-size: 15px; font-weight: 500; transition: background-color 0.25s var(--ease); }
.wk-jump a:hover { background: rgba(255, 255, 255, 0.16); text-decoration: none; }

.wk-projects { padding-block: 24px 110px; }
.wk-project { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 56px; align-items: center; padding: 64px; border-radius: 40px; overflow: hidden; isolation: isolate; background: linear-gradient(160deg, #16161b 0%, #0a0a0c 100%); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08); scroll-margin-top: 76px; }
.wk-project + .wk-project { margin-top: 28px; }
.wk-project-glow { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(45% 60% at 82% 30%, var(--wk-a), transparent 70%), radial-gradient(40% 55% at 8% 100%, var(--wk-b), transparent 70%); opacity: 0.8; }
.wk-project.flip { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.wk-project.flip .wk-project-copy { order: 2; }
.wk-project.flip .wk-project-glow { background: radial-gradient(45% 60% at 18% 30%, var(--wk-a), transparent 70%), radial-gradient(40% 55% at 92% 100%, var(--wk-b), transparent 70%); }
.wk-project-name { margin-top: 6px; font-size: clamp(2.4rem, 4.8vw, 3.6rem); line-height: 1.03; font-weight: 700; letter-spacing: -0.042em; color: #f5f5f7; }
.wk-project-summary { margin-top: 16px; max-width: 44ch; font-size: 18px; line-height: 1.5; color: var(--on-dark-2); }
.wk-checks { margin-top: 22px; }
.wk-checks li { font-size: 16px; color: var(--on-dark); }
.wk-project-links { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: 30px; }
.wk-project-links .chev { position: relative; z-index: 2; color: #2997ff; }
.wk-stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 40px; }
.wk-stretch:focus-visible { outline: 3px solid #2997ff; outline-offset: 3px; }
.wk-project .devices { padding: 0 54px 48px 0; }
.wk-project .devices::before { background: radial-gradient(closest-side, var(--wk-a), transparent); }
.wk-project .browser, .wk-project .phone { transition: transform 0.8s var(--ease); }
.wk-project:hover .browser { transform: translateY(-6px); }
.wk-project:hover .phone { transform: translateY(-12px); }

.wk-promise-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: start; }
.wk-promise-body p { font-size: 19px; line-height: 1.55; color: var(--ink-2); }
.wk-promise-body p + p { margin-top: 16px; }
.wk-promise-body .chev { margin-top: 22px; }

/* ---------- /about ---------- */
.wk-about-hero { position: relative; overflow: hidden; isolation: isolate; padding-block: 0 120px; text-align: center; }
.wk-about-hero .pg-crumbs { padding-block: 18px 0; text-align: left; }
.wk-about-hero-inner { max-width: 1000px; padding-top: 72px; }
.wk-about-title { margin-top: 10px; font-size: clamp(2.8rem, 7.4vw, 5.8rem); line-height: 1.02; font-weight: 700; letter-spacing: -0.048em; }
.wk-about-lede { max-width: 46ch; margin: 28px auto 0; font-size: clamp(1.15rem, 2.1vw, 1.5rem); line-height: 1.42; font-weight: 500; letter-spacing: -0.02em; color: var(--ink-2); }
.wk-about-hero .pg-actions { justify-content: center; }

.wk-mission { position: relative; overflow: hidden; isolation: isolate; padding-block: 150px; }
.wk-mission-glow { position: absolute; inset: auto -20% -40% auto; width: 900px; height: 900px; z-index: -1; pointer-events: none; background: radial-gradient(closest-side, rgba(122, 92, 255, 0.3), rgba(41, 151, 255, 0.12) 55%, transparent); }
.wk-statement { max-width: 24ch; margin-top: 6px; font-size: clamp(2.1rem, 5vw, 4rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.04em; color: #f5f5f7; }
.wk-dim { color: #86868b; }
.wk-grad { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.wk-mission-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; max-width: 900px; margin-top: 64px; }
.wk-mission-cols p { font-size: 19px; line-height: 1.55; color: var(--on-dark-2); }

.wk-about-facts { padding-block: 100px; }
.wk-fact-grid { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; }
.wk-fact-grid li { display: grid; align-content: start; gap: 8px; padding: 28px 24px 30px; border-radius: 24px; background: var(--bg-2); }
.wk-fact-ic { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 8px; border-radius: 12px; background: #fff; }
.wk-fact-ic svg, .wk-principle-ic svg, .wk-way-ic svg { width: 22px; height: 22px; fill: none; stroke: #5b3fd6; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.wk-fact-grid strong { font-size: 22px; line-height: 1.2; letter-spacing: -0.025em; overflow-wrap: anywhere; }
.wk-fact-grid li:last-child strong { font-size: 19px; }
.wk-fact-grid span:not(.wk-fact-ic) { font-size: 15px; line-height: 1.45; color: var(--ink-2); }

.wk-principle-list { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: 1000px; margin: 0 auto; padding: 0; }
.wk-principle-list li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 18px; padding: 34px 32px; border-radius: 24px; background: #fff; }
.wk-principle-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: linear-gradient(135deg, rgba(41, 151, 255, 0.14), rgba(255, 79, 216, 0.14)); }
.wk-principle-list h3 { font-size: 22px; line-height: 1.2; letter-spacing: -0.022em; }
.wk-principle-list p { margin-top: 8px; font-size: 17px; line-height: 1.55; color: var(--ink-2); }

.wk-do-grid { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; }
.wk-do-grid li { display: flex; }
.wk-do-card { display: flex; flex-direction: column; gap: 10px; width: 100%; padding: 28px 26px; border-radius: 24px; background: #fff; color: var(--ink); transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease); }
.wk-do-card:hover { text-decoration: none; transform: translateY(-4px); box-shadow: 0 30px 60px -34px rgba(0, 0, 0, 0.3); }
.wk-do-card .pg-icon { margin-bottom: 6px; }
.wk-do-card strong { font-size: 20px; letter-spacing: -0.02em; }
.wk-do-card span:not(.pg-icon):not(.chev) { font-size: 15px; line-height: 1.45; color: var(--ink-2); }
.wk-do-card .chev { margin-top: auto; padding-top: 8px; font-size: 15px; }
.wk-do-more { margin-top: 30px; }

.wk-who-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 72px; align-items: center; }
.wk-who-grid .chev { margin-top: 22px; }
.wk-industry-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; }
.wk-industry-chips a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px; border-radius: 980px; background: var(--bg-2); color: var(--ink); font-size: 16px; font-weight: 500; transition: box-shadow 0.25s var(--ease), color 0.25s var(--ease); }
.wk-industry-chips a:hover { text-decoration: none; color: var(--link); box-shadow: inset 0 0 0 1px var(--link); }

.wk-about-work { padding-block: 120px; }
.wk-about-work-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: 24px; max-width: none; }
.wk-about-work-head .kicker { grid-column: 1 / -1; }
.wk-about-work-head .chev { color: #2997ff; padding-bottom: 8px; }
.wk-mini-grid { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; }
.wk-mini-grid li { display: flex; }
.wk-mini { display: flex; flex-direction: column; gap: 6px; width: 100%; padding: 12px 12px 22px; border-radius: 24px; background: #141417; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08); color: #f5f5f7; transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease); }
.wk-mini:hover { text-decoration: none; transform: translateY(-4px); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16), 0 30px 60px -30px rgba(0, 0, 0, 0.8); }
.wk-mini-shot { display: block; margin-bottom: 12px; overflow: hidden; border-radius: 14px; aspect-ratio: 16 / 10; }
.wk-mini-shot img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 1s var(--ease); }
.wk-mini:hover .wk-mini-shot img { transform: scale(1.04); }
.wk-mini-tag, .wk-mini strong, .wk-mini .chev { padding-inline: 8px; }
.wk-mini-tag { font-size: 13px; font-weight: 600; color: var(--wk-tag); }
.wk-mini strong { font-size: 21px; letter-spacing: -0.022em; }
.wk-mini .chev { margin-top: auto; padding-top: 6px; font-size: 15px; color: #2997ff; }

.wk-tool-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: 1000px; margin: 0 auto; }
.wk-tool { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 40px; border-radius: 28px; background: var(--bg-2); }
.wk-tool h3 { font-size: 26px; letter-spacing: -0.025em; }
.wk-tool p { margin-bottom: 10px; font-size: 17px; line-height: 1.55; color: var(--ink-2); }
.wk-tool .wk-ask { margin-top: auto; }
.wk-tool .pill { margin-top: auto; }

/* Kinvra Assistant button: shown by site.js once the chat widget is ready. */
.wk-ask:not(.show) { display: none; }
.wk-ask.show + .wk-ask-fallback { display: none; }
.wk-ask-fallback { font-size: 15px; line-height: 1.45; color: var(--ink-2); }
.wk-ask-fallback a { text-decoration: underline; text-underline-offset: 2px; }

/* ---------- /contact ---------- */
.wk-contact { position: relative; overflow: hidden; isolation: isolate; padding-block: 0 110px; }
.wk-contact .pg-crumbs { padding-block: 18px 0; }
.wk-contact-grid { display: grid; grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr); grid-template-areas: "head form" "aside form"; gap: 12px 72px; align-items: start; padding-top: 56px; }
.wk-contact-head { grid-area: head; }
.wk-contact-form { grid-area: form; }
.wk-contact-aside { grid-area: aside; }
.wk-contact-title { margin-top: 6px; font-size: clamp(3.2rem, 7.4vw, 5.6rem); line-height: 1; font-weight: 700; letter-spacing: -0.05em; }
.wk-contact-lede { max-width: 34ch; margin-top: 22px; font-size: clamp(1.1rem, 1.9vw, 1.35rem); line-height: 1.45; font-weight: 500; letter-spacing: -0.018em; color: var(--ink-2); }
.wk-page .wk-form-card { max-width: none; margin: 0; box-shadow: 0 40px 100px -50px rgba(0, 0, 0, 0.32), 0 0 0 1px rgba(0, 0, 0, 0.05); }
.wk-contact-aside { padding-top: 28px; }
.wk-aside-title { margin-bottom: 6px; font-size: 13px; font-weight: 600; letter-spacing: 0; color: var(--ink-2); }
.wk-ways { list-style: none; margin: 0; padding: 0; }
.wk-way { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-top: 1px solid var(--line); }
.wk-way-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: linear-gradient(135deg, rgba(41, 151, 255, 0.14), rgba(255, 79, 216, 0.14)); }
.wk-way-ic svg { width: 20px; height: 20px; }
.wk-way h3 { font-size: 17px; line-height: 1.3; letter-spacing: -0.015em; }
.wk-way p { margin-top: 4px; font-size: 15px; line-height: 1.45; color: var(--ink-2); }
.wk-way p a { font-weight: 500; }
.wk-way .chev { margin-top: 8px; font-size: 15px; }
.wk-way .wk-ask { min-height: 38px; margin-top: 12px; padding: 7px 16px; font-size: 15px; }
.wk-way .wk-ask-fallback { margin-top: 8px; font-size: 14px; }
.wk-contact-faq { border-top: 1px solid rgba(0, 0, 0, 0.07); }

/* ---------- responsive ---------- */
@media (max-width: 1020px) {
  .wk-do-grid, .wk-mini-grid, .wk-fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wk-project { padding: 48px 40px; gap: 40px; }
}
@media (max-width: 900px) {
  .wk-section { padding-block: 88px; }
  .wk-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wk-facts > div, .wk-facts > div + div { padding: 20px 16px 0 0; border-left: 0; }
  .wk-facts > div:nth-child(even) { padding-left: 16px; border-left: 1px solid rgba(255, 255, 255, 0.1); }
  .wk-facts > div:nth-child(n + 3) { margin-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.1); }
  .wk-brief-grid, .wk-built-grid, .wk-stack-grid, .wk-promise-grid, .wk-who-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .wk-brief-head, .wk-built-media { position: static; }
  .wk-built-media { display: none; }
  .wk-gallery { padding-block: 96px; }
  .wk-views { gap: 80px; }
  .wk-view-shots, .wk-view.flip .wk-view-shots { grid-template-columns: minmax(0, 1fr) minmax(0, 0.42fr); gap: 20px; }
  .wk-view.flip .wk-view-shots .phone { order: 0; }
  .wk-view.flip figcaption { margin-left: 0; }
  .wk-next { grid-template-columns: minmax(0, 1fr); padding: 40px 32px; }
  .wk-next-shot { transform: none; }
  .wk-next:hover .wk-next-shot { transform: none; }
  .wk-project, .wk-project.flip { grid-template-columns: minmax(0, 1fr); padding: 40px 32px 44px; }
  .wk-project.flip .wk-project-copy { order: 0; }
  .wk-mission { padding-block: 110px; }
  .wk-mission-cols, .wk-principle-list, .wk-tool-grid { grid-template-columns: minmax(0, 1fr); }
  .wk-contact-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "form" "aside"; gap: 32px; padding-top: 36px; }
  .wk-contact-aside { padding-top: 0; }
}
@media (max-width: 640px) {
  .wk-section { padding-block: 72px; }
  .wk-hero { padding-bottom: 48px; }
  .wk-hero-inner { padding-top: 36px; }
  .wk-title { font-size: clamp(2.9rem, 14vw, 4.2rem); }
  .wk-hero-stage { margin-top: 48px; }
  .wk-hero-stage .devices { padding: 0 10% 12% 0; }
  .wk-hero-stage .phone { width: 31%; }
  .wk-facts-band { padding-bottom: 64px; }
  .wk-facts { grid-template-columns: minmax(0, 1fr); }
  .wk-facts > div, .wk-facts > div + div, .wk-facts > div:nth-child(even), .wk-facts > div:nth-child(n + 3) { margin-top: 0; padding: 16px 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.1); }
  .wk-facts > div:first-child { border-top: 0; }
  .wk-built-list li { grid-template-columns: 44px minmax(0, 1fr); gap: 8px; padding: 24px 0; }
  .wk-built-list h3 { font-size: 19px; }
  .wk-built-list p { font-size: 16px; }
  .wk-gallery { padding-block: 80px; }
  .wk-gallery-head { margin-bottom: 48px; }
  .wk-views { gap: 64px; }
  .wk-view-shots, .wk-view.flip .wk-view-shots { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .wk-page .wk-view .phone { width: 58%; justify-self: center; }
  .wk-view figcaption, .wk-view.solo figcaption { margin-top: 18px; font-size: 16px; text-align: left; }
  .wk-next-section { padding-block: 72px 8px; }
  .wk-next { padding: 32px 22px; border-radius: 28px; gap: 28px; }
  .wk-hero-index .wk-title { font-size: clamp(2.8rem, 13vw, 4rem); }
  .wk-projects { padding-bottom: 80px; }
  .wk-project, .wk-project.flip { padding: 30px 20px 32px; border-radius: 28px; gap: 28px; }
  .wk-stretch::after { border-radius: 28px; }
  .wk-project + .wk-project { margin-top: 20px; }
  .wk-project-summary { font-size: 16px; }
  .wk-project .devices { padding: 0 30px 34px 0; }
  .wk-about-hero { padding-bottom: 80px; }
  .wk-about-hero-inner { padding-top: 44px; }
  .wk-mission { padding-block: 84px; }
  .wk-mission-cols { margin-top: 40px; gap: 20px; }
  .wk-mission-cols p { font-size: 17px; }
  .wk-about-facts { padding-block: 72px; }
  .wk-do-grid, .wk-mini-grid, .wk-fact-grid { grid-template-columns: minmax(0, 1fr); }
  .wk-principle-list li { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 28px 24px; }
  .wk-about-work { padding-block: 80px; }
  .wk-about-work-head { grid-template-columns: minmax(0, 1fr); }
  .wk-about-work-head .chev { margin-top: 14px; padding-bottom: 0; }
  .wk-tool { padding: 30px 24px; }
  .wk-contact { padding-bottom: 80px; }
  .wk-contact-title { font-size: clamp(3rem, 15vw, 4.2rem); }
}
@media (prefers-reduced-motion: reduce) {
  .wk-next, .wk-next-shot, .wk-project .browser, .wk-project .phone, .wk-do-card, .wk-mini, .wk-mini-shot img { transition: none; }
  .wk-brief-head, .wk-built-media { position: static; }
}
