/* Scoped project pages, with a reusable teaser on Home and About. */
.project-teaser{max-width:1144px;margin:40px auto 64px;padding:40px;border:1px solid #d5d0e8;border-radius:12px;background:#eeeaf8;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.project-teaser h2{font:500 clamp(28px,3vw,40px)/1.18 var(--display);letter-spacing:-.025em}
.project-teaser p:not(.eyebrow){font-size:16px;line-height:1.8;color:#52556a}
.project-teaser .eyebrow,.project-page .eyebrow{font:500 12px/1.6 var(--mono);letter-spacing:.06em}
.project-teaser .text-link,.project-page .text-link,.project-page .button{font-size:14px;white-space:normal}
.project-hero,.project-library,.project-stack,.project-method,.project-reading,.project-related{max-width:1144px;margin-inline:auto;padding-inline:32px}
.project-hero{padding-top:36px;padding-bottom:44px}
.project-breadcrumb{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:13px;line-height:1.6;color:#626075;margin-bottom:38px}
.project-breadcrumb a{text-decoration:underline;text-underline-offset:4px}
.project-hero h1{font:500 clamp(36px,4.6vw,64px)/1.12 var(--display);letter-spacing:-.035em;max-width:940px;margin:18px 0 24px;overflow-wrap:anywhere}
.project-collection-hero h1{font-size:clamp(46px,6vw,76px)}
.project-collection-hero h1 span{color:#4d3c93}
.project-subtitle{font:500 clamp(22px,2.4vw,30px)/1.35 var(--display);max-width:850px;letter-spacing:-.02em;margin-bottom:20px}
.project-lead{max-width:780px;font-size:18px;line-height:1.8;color:#55596e}
.project-meta{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}
.project-meta span{font:12px/1.6 var(--mono);border:1px solid #d5d0e6;border-radius:4px;padding:8px 12px;background:#efedf7;color:#443965}
.project-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin:24px 0}
.project-note{font-size:13px;line-height:1.8;color:#626075;max-width:780px}
.project-library{padding-bottom:60px;scroll-margin-top:28px}
.project-section-heading{display:flex;justify-content:space-between;gap:36px;align-items:end;margin-bottom:26px}
.project-section-heading h2,.project-method h2,.project-related h2,.project-contact h2{font:500 clamp(28px,3vw,38px)/1.2 var(--display);letter-spacing:-.025em}
.project-section-heading>p{max-width:480px;font-size:16px;color:#626075;margin:0;line-height:1.8}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.project-card{display:flex;flex-direction:column;min-width:0;padding:30px;background:white;border:1px solid #d7d3e6;border-radius:10px}
.project-card>.eyebrow{color:#675582;margin-bottom:20px}
.project-card h3{font:500 clamp(25px,2.5vw,32px)/1.2 var(--display);letter-spacing:-.025em;margin-bottom:18px}
.project-card h3 a:hover{text-decoration:underline;text-underline-offset:5px}
.project-card>p:not(.eyebrow):not(.project-status){font-size:16px;line-height:1.8;color:#585c70}
.project-flow{display:grid;gap:0;margin:auto 0 22px;padding:16px 20px;background:#f4f2fa;border-left:2px solid #8977bd}
.project-flow span{font:13px/1.7 var(--mono);padding:5px 0;color:#4c416c}
.project-flow span+span::before{content:'↳ ';color:#6d5b95}
.project-status{font:12px/1.7 var(--mono);color:#626075;margin:0 0 16px}
.project-card>.text-link{padding-top:18px;border-top:1px solid #e3dfee}
.project-stack{padding-top:40px;padding-bottom:64px;border-top:1px solid #ddd9e8}
.project-stack dl{margin:34px 0 0}
.project-stack dl>div{display:grid;grid-template-columns:220px minmax(0,1fr);gap:36px;padding:24px 0;border-top:1px solid #ddd9e8}
.project-stack dt{font:13px/1.7 var(--mono);color:#62517e}
.project-stack dd{margin:0;min-width:0}
.project-stack strong{display:block;font:500 22px/1.45 var(--display);letter-spacing:-.015em}
.project-stack dd p{font-size:16px;color:#626075;margin:8px 0 0}
.project-method{display:grid;grid-template-columns:1fr 1.4fr;gap:64px;padding-top:36px;padding-bottom:60px;border-top:1px solid #ddd9e8}
.project-method>div>p:not(.eyebrow){line-height:1.8;color:#55596e}
.project-method ol{padding-left:22px;color:#55596e}.project-method li{padding:0 0 12px 5px}
.project-contact{max-width:1080px;margin:0 auto 64px;padding:32px;background:#e9e4f6;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.project-contact p:not(.eyebrow){font-size:16px;line-height:1.8;max-width:650px;color:#55596e;margin:18px 0 0}
.project-contact .button{flex-shrink:0}
.project-question{max-width:1080px;margin:0 auto;padding:28px 32px;background:#17182f;color:#f1eefb;border-radius:10px}
.project-question>.eyebrow{color:#c0b4ec}
.project-question>p:not(.eyebrow){font:500 clamp(22px,2.3vw,28px)/1.4 var(--display);max-width:850px;letter-spacing:-.015em}
.project-question ol{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;margin:26px 0 0;gap:18px;counter-reset:project-step}
.project-question li{font:13px/1.8 var(--mono);padding-top:16px;border-top:1px solid #494461;counter-increment:project-step;color:#ddd6ef}
.project-question li::before{content:'0' counter(project-step) ' / ';color:#b9a5ed}
.project-reading{display:grid;grid-template-columns:220px minmax(0,1fr);gap:60px;padding-top:48px;padding-bottom:56px;align-items:start}
.project-reading aside{position:sticky;top:30px}
.project-reading aside nav{display:grid;gap:14px}
.project-reading aside .eyebrow{margin:0 0 6px;color:#76648d}
.project-reading aside a{font-size:14px;line-height:1.6;border-left:2px solid #d8d1e7;padding-left:12px;color:#5c536e}
.project-reading aside a:hover{border-color:#59419a;color:#302480}
.project-prose{min-width:0;font-size:16px;line-height:1.85;color:#4c5065}
.project-prose h2{font:500 clamp(26px,2.4vw,32px)/1.25 var(--display);letter-spacing:-.02em;color:#24243d;margin:44px 0 18px;scroll-margin-top:32px}
.project-prose h2:first-child{margin-top:0}
.project-prose p{margin:0 0 22px}
.project-prose li{padding-left:4px;margin-bottom:12px}
.project-prose ul,.project-prose ol{padding-left:22px;margin:0 0 24px}
.project-prose strong{color:#303048}
.project-prose a:not(.button){text-decoration:underline;text-underline-offset:4px;color:#48358a;overflow-wrap:anywhere}
.project-detail-end{padding-top:10px;border-top:1px solid #ddd9e8;margin-top:32px}
.project-related{padding-bottom:60px}.project-related>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0}
.project-related>div>a{padding:24px;background:white;border:1px solid #ddd9e8;border-radius:8px;display:flex;flex-direction:column;align-items:start;gap:18px}
.project-related strong{font:500 24px/1.3 var(--display);letter-spacing:-.02em}.project-related .eyebrow{color:#6a587d}.project-related .direction-icon{margin-top:auto}
@media(max-width:900px){.project-reading{grid-template-columns:1fr;gap:32px;max-width:820px}.project-reading aside{position:static;border-bottom:1px solid #ddd9e8;padding-bottom:28px}.project-reading aside nav{grid-template-columns:1fr 1fr}.project-reading aside .eyebrow{grid-column:1/-1}.project-section-heading{display:block}.project-section-heading>p{margin-top:18px}.project-method{gap:32px}.project-contact{display:block;margin-inline:32px}.project-contact .button{margin-top:24px}.project-question{margin-inline:32px}.project-related>div{grid-template-columns:1fr}.project-teaser{margin-inline:32px;gap:28px;padding:32px}}
@media(max-width:640px){.project-hero,.project-library,.project-stack,.project-method,.project-reading,.project-related{padding-inline:6%}.project-hero{padding-top:28px}.project-lead{font-size:17px}.project-grid,.project-method,.project-teaser{grid-template-columns:1fr}.project-card{padding:24px}.project-stack dl>div{grid-template-columns:1fr;gap:12px}.project-question{margin-inline:6%;padding:24px}.project-question ol{grid-template-columns:1fr;gap:12px}.project-question li{padding-top:12px}.project-contact{margin-inline:6%;padding:24px}.project-teaser{margin-inline:6%;padding:26px;gap:22px}.project-reading aside nav{grid-template-columns:1fr}.project-meta{gap:8px}.project-meta span{font-size:12px}.project-actions{gap:18px}.project-method{padding-top:32px;padding-bottom:44px}.project-breadcrumb{margin-bottom:30px}}

/* Anchor headings clear the existing fixed chat launcher on narrow screens. */
@media(max-width:1050px){.project-prose h2{scroll-margin-top:100px}.project-library{scroll-margin-top:100px}}
