/* Figma homepage 27:2. Shared case-study styles and motion hooks stay in styles.css. */
.portfolio-home { --line:#e7e3e9; overflow-x:clip; }
.portfolio-home .page { position:relative; padding-top:47px; padding-bottom:120px; }
.dotted-field { position:absolute; top:0; left:0; width:1069px; height:478px; pointer-events:none; }
.portfolio-home .nav { height:131px; padding:0; position:relative; z-index:2; }
.portfolio-home .signature-flower { width:118px; height:131px; flex-basis:118px; border-radius:24px; }
.portfolio-home .nav-links { gap:35px; font-size:16px; color:var(--ink); }
.portfolio-home .hero { position:relative; display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:clamp(28px,3vw,48px); align-items:center; padding:48px 0 72px; height:auto; }
.hero-copy { position:relative; z-index:1; min-width:0; width:auto; }
.portfolio-home .status { height:34px; padding:0 14px; gap:10px; margin-bottom:28px; }
.portfolio-home .hero-title { font-size:clamp(48px,4.8vw,68px); line-height:1.05; letter-spacing:-.045em; margin:0; font-weight:500; }
.portfolio-home .hero-accent { font-weight:400; }
.portfolio-home .hero-sub { font-size:20px; line-height:29px; max-width:100%; margin:28px 0 0; }
.hero-actions { display:flex; align-items:center; gap:22px; margin-top:28px; }
.pill-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 25px; border-radius:24px; background:var(--accent); color:white; font-size:14px; font-weight:500; transition:transform 220ms ease,background 220ms ease,box-shadow 220ms ease; }
.pill-button:hover { background:var(--ink-block); transform:translateY(-2px); box-shadow:0 8px 22px #69488f26; }
.text-link { font-size:16px; color:var(--accent); font-weight:500; }
.hero-role { margin:28px 0 0; color:var(--ink-muted); font:13px var(--font-mono); }
.gallery-stage { position:relative; width:100%; aspect-ratio:528 / 606; min-width:0; }
.gallery { isolation:isolate; position:absolute; left:0; top:0; width:528px; height:606px; transform:scale(var(--gallery-scale,.6)); transform-origin:top left; }
.gallery-card { position:absolute; background:transparent; border:0; border-radius:24px; overflow:hidden; transition:transform 500ms cubic-bezier(.2,.8,.2,1); }
.gallery-card[data-slot="0"] { left:56px; top:43px; width:388px; height:484px; transform:rotate(-15.35deg); }
.gallery-card[data-slot="1"] { left:56px; top:48px; width:388px; height:493px; transform:rotate(-7.8deg); }
.gallery-card[data-slot="2"] { left:62px; top:45px; width:398px; height:501px; transform:rotate(7deg); }
.gallery-card[data-slot="3"] { left:54px; top:49px; width:398px; height:501px; }
.gallery-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gallery-card img[src$="laura-speaking.jpg"] { width:1987px; height:663px; left:-738px; top:-78px; }
.gallery-sticker { position:absolute; top:85px; left:337px; padding:7px 19px; border-radius:24px; border:2px solid var(--accent); background:#f2e6ff; color:var(--accent); font-size:21px; line-height:26px; white-space:nowrap; font-weight:700; transform:rotate(-7.74deg); }
.portfolio-home section { scroll-margin-top:30px; padding:52px 0 72px; }
.portfolio-home .section-head { gap:24px; margin-bottom:36px; }
.portfolio-home .section-head h2 { line-height:54px; }
.portfolio-home .mono-label { letter-spacing:0; }
.portfolio-home .cards { gap:24px; }
.portfolio-home .card { min-width:0; margin:0; padding:11px; }
.portfolio-home .card-featured { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; min-height:423px; gap:24px; }
.portfolio-home .card-media { aspect-ratio:auto; margin:0; background:var(--lavender-soft); }
.evidence { padding:20px; }
.evidence-label { font:11px/1.5 var(--font-mono); text-transform:uppercase; color:var(--accent); margin:0; }
.evidence-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.evidence-referrals .evidence-steps { margin:20px 0; }
.evidence-step { position:relative; display:flex; flex-direction:column; min-width:0; height:123px; padding:12px; border:1px solid var(--line); border-radius:14px; background:white; }
.step-num { font:11px var(--font-mono); color:var(--accent); }
.evidence-step strong { font-size:15px; line-height:19px; font-weight:500; margin-top:14px; }
.evidence-step small { font-size:11px; line-height:15px; color:var(--ink-muted); margin-top:7px; }
.evidence-referrals .evidence-step small { font:10px var(--font-mono); margin-top:auto; }
.team-result { background:var(--ink-block); color:white; border-radius:16px; padding:14px 18px 22px; }
.result-label { font:10px var(--font-mono); color:var(--lavender-mid); text-transform:uppercase; }
.metrics { display:grid; grid-template-columns:1fr 1fr; margin-top:4px; }
.metrics p { display:flex; align-items:baseline; gap:16px; padding:0; margin:0; }
.metrics p+p { border-left:1px solid #786d84; padding-left:28px; }
.metrics strong { font-size:34px; line-height:48px; font-weight:500; }
.metrics span { font-size:14px; }
.portfolio-home .card-featured .card-meta { padding:34px 18px 28px 0; display:flex; flex-direction:column; }
.portfolio-home .card-meta .mono-label { font-size:11px; line-height:18px; color:var(--ink-soft); margin:0 0 15px; }
.portfolio-home .card-meta h3 { font-size:28px; line-height:34px; letter-spacing:-.02em; margin:0 0 28px; }
.portfolio-home .card-meta p { font-size:16px; line-height:23px; color:var(--ink-soft); }
.portfolio-home .card-meta .case-result { text-transform:uppercase; font-size:13px; line-height:22px; color:var(--ink); margin:34px 0 0; }
.case-note { display:block; font:11px/1.5 var(--font-mono); text-transform:uppercase; color:var(--accent); margin-top:auto; padding-top:28px; }
.card-project { display:flex; flex-direction:column; min-height:621px; }
.card-project .card-media { height:369px; flex-shrink:0; }
.card-project .evidence-steps { margin-top:64px; }
.connected { gap:17px; }
.connected .evidence-step:not(:last-child)::after { content:""; position:absolute; left:100%; top:60px; width:18px; height:2px; background:var(--lavender-mid); }
.evidence-footnote { font:10px/1.6 var(--font-mono); color:var(--ink-soft); text-transform:uppercase; margin:28px 0 0; }
.evidence-bizum .evidence-steps { margin-top:55px; }
.bizum-outcome { border-radius:14px; padding:16px; margin-top:24px; background:var(--ink-block); color:white; display:flex; flex-direction:column; gap:20px; text-transform:uppercase; }
.bizum-outcome strong { font-size:13px; font-weight:500; }
.bizum-outcome span { font:10px var(--font-mono); color:var(--lavender-mid); }
.portfolio-home .card-project .card-meta { display:flex; flex-direction:column; flex:1; padding:14px 6px 0; }
.portfolio-home .card-project .card-meta .mono-label { font-size:12px; margin-bottom:8px; }
.portfolio-home .card-project h3 { font-size:24px; line-height:30px; margin-bottom:24px; }
.portfolio-home .card-project .case-note { padding-top:20px; }
.portfolio-home .earlier { padding-top:40px; padding-bottom:56px; }
.earlier-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.portfolio-home .earlier-card { border-radius:18px; padding:16px; min-height:230px; }
.earlier-card .mono-label { color:var(--ink-soft); font-size:12px; }
.earlier-card h3 { font-size:20px; line-height:30px; font-weight:500; margin:16px 0 30px; }
.earlier-card p { font-size:14px; line-height:22px; margin:0; color:var(--ink-soft); }
.portfolio-home .about { padding-top:56px; padding-bottom:56px; }
.portfolio-home .about-lead { font-size:23px; line-height:32px; letter-spacing:0; margin-top:28px; max-width:900px; }
.about-statement { font-size:30px; line-height:36px; margin:24px 0 0; font-weight:500; letter-spacing:-.02em; }
.portfolio-home .services { padding-top:40px; padding-bottom:0; }
.portfolio-home .services .section-head { margin-bottom:30px; }
.portfolio-home .services-list li { grid-template-columns:80px minmax(0,1fr) 244px; gap:24px; min-height:112px; padding:18px 0; }
.services-list h3 { font-size:24px; line-height:29px; font-weight:500; margin:0 0 6px; letter-spacing:-.02em; }
.portfolio-home .services-list p { font-size:16px; line-height:21px; color:var(--ink-soft); }
.practice-proof { font:11px/1.6 var(--font-mono); text-transform:uppercase; color:var(--accent); padding-top:7px; }
.portfolio-home .footer { padding:42px 56px; margin-top:76px; scroll-margin-top:30px; }
.portfolio-home .footer-inner { gap:26px; }
.portfolio-home .footer-title { max-width:850px; font-size:52px; line-height:58px; letter-spacing:-.035em; }
.footer-actions { display:flex; align-items:center; gap:54px; font-size:14px; color:var(--ink-soft); }
.footer-actions .pill-button { min-width:134px; min-height:46px; }
.portfolio-home .footer-row { margin-top:16px; padding-top:36px; border-color:var(--lavender-mid); }
.skip-link { position:fixed; top:12px; left:12px; z-index:10000; padding:12px 20px; background:white; color:var(--accent); transform:translateY(-200%); }
.skip-link:focus { transform:none; }
.portfolio-home a:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }

@media (max-width:1100px) {
 .portfolio-home .nav-links { font-size:14px; }
 .portfolio-home .services-list li { grid-template-columns:48px minmax(0,1fr) 180px; gap:18px; }
 .practice-proof { font-size:10px; }
 .evidence { padding:16px; }
 .evidence-steps { gap:10px; }
 .evidence-step { padding:10px; }
 .metrics p { gap:10px; }
 .metrics p+p { padding-left:14px; }
 .metrics strong { font-size:30px; }
 .metrics span { font-size:12px; }
}
@media (max-width:1024px) {
 .portfolio-home .hero { grid-template-columns:minmax(0,1fr); padding:40px 0 56px; gap:40px; }
 .hero-copy { width:100%; max-width:720px; }
 .portfolio-home .hero-title { font-size:clamp(48px,6.4vw,64px); }
 .portfolio-home .hero-sub { max-width:640px; }
 .gallery-stage { max-width:420px; margin-inline:auto; }
 .portfolio-home .nav { height:100px; }
 .portfolio-home .signature-flower { width:90px; height:100px; flex-basis:90px; }
}
@media (max-width:760px) {
 .portfolio-home .page { padding:20px 20px 48px; }
 .portfolio-home .nav { height:86px; }
 .portfolio-home .signature-flower { width:76px; height:84px; flex-basis:76px; }
 .portfolio-home .nav-links { gap:20px; font-size:12px; }
 .portfolio-home .hero { padding:32px 0 48px; gap:32px; }
 .gallery-stage { max-width:360px; }
 .hero-copy { width:100%; }
 .portfolio-home .hero-title { font-size:clamp(36px,8.5vw,56px); line-height:1.04; letter-spacing:-.04em; }
 .portfolio-home .status { font-size:10px; padding:0 12px; margin-bottom:28px; }
 .portfolio-home .hero-sub { margin-top:24px; max-width:100%; font-size:18px; line-height:27px; }
 .hero-actions { flex-wrap:wrap; gap:16px 20px; margin-top:28px; }
 .hero-role { margin-top:28px; font-size:11px; }
 .dotted-field { width:100%; height:auto; }
 .portfolio-home section { padding:36px 0; }
 .portfolio-home .section-head { flex-direction:column; gap:12px; margin-bottom:26px; }
 .portfolio-home .section-head h2 { font-size:36px; line-height:40px; }
 .portfolio-home .cards { grid-template-columns:1fr; }
 .portfolio-home .card-featured { grid-template-columns:1fr; gap:0; }
 .portfolio-home .card-featured .card-media { min-height:320px; }
 .portfolio-home .card-featured .card-meta { padding:24px 8px 12px; }
 .portfolio-home .card-meta h3 { font-size:26px; line-height:32px; margin-bottom:20px; }
 .portfolio-home .card-featured .case-note { margin-top:0; }
 .card-project { min-height:0; }
 .card-project .card-media { height:340px; }
 .portfolio-home .card-project .card-meta { padding:22px 8px 12px; }
 .portfolio-home .card-project h3 { margin-bottom:18px; }
 .evidence-step strong { font-size:13px; line-height:17px; overflow-wrap:anywhere; }
 .evidence-step small { font-size:10px; }
 .earlier-grid { grid-template-columns:1fr; gap:16px; }
 .portfolio-home .earlier-card { min-height:0; padding:20px; }
 .earlier-card h3 { margin:14px 0; }
 .portfolio-home .about-lead { font-size:21px; line-height:30px; }
 .about-statement { font-size:26px; line-height:32px; }
 .portfolio-home .services-list li { grid-template-columns:32px minmax(0,1fr); padding:24px 0; gap:12px; }
 .services-list h3 { font-size:22px; line-height:28px; }
 .practice-proof { grid-column:2; padding-top:0; }
 .portfolio-home .footer { padding:30px 24px; margin-top:48px; }
 .portfolio-home .footer-title { font-size:36px; line-height:40px; }
 .footer-actions { gap:28px; }
 .portfolio-home .footer-row { padding-top:24px; margin-top:8px; }
 .portfolio-home .footer-row .mono-label { font-size:10px; }
}
@media (prefers-reduced-motion:reduce) {
 html,body { scroll-behavior:auto; }
 .gallery-card,.pill-button { transition:none; }
 .cursor,.cursor-dot { display:none; }
 body.portfolio-home.cursor-ready,body.portfolio-home.cursor-ready a,body.portfolio-home.cursor-ready button { cursor:auto; }
}
@media (max-width:760px) and (prefers-reduced-motion:reduce) {
}

/* Interactive photo deck: translate is independent of each resting rotation. */
.gallery-card { will-change:translate,rotate,transform; backface-visibility:hidden; touch-action:pan-y; user-select:none; -webkit-user-select:none; cursor:grab; transition:transform 480ms cubic-bezier(.22,1,.36,1),box-shadow 240ms ease; -webkit-tap-highlight-color:transparent; }
.gallery-card img { pointer-events:none; -webkit-user-drag:none; }
.gallery-card.is-dragging { cursor:grabbing; box-shadow:0 24px 40px -16px #27232c50; transition:none; }
.gallery-sticker { z-index:100; pointer-events:none; transform:translateZ(0) rotate(-7.74deg); }
.gallery-help { position:absolute; top:578px; left:72px; width:380px; text-align:center; color:var(--ink-muted); font:12px var(--font-mono); pointer-events:none; }
.gallery-announcement { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.gallery-card:focus-visible { outline:3px solid var(--accent); outline-offset:6px; }
body:has(.gallery-card:hover) .cursor,body:has(.gallery-card:hover) .cursor-dot,body.gallery-dragging .cursor,body.gallery-dragging .cursor-dot { opacity:0; }
body.gallery-dragging,body.gallery-dragging * { cursor:grabbing !important; }

@media(prefers-reduced-motion:reduce) { .gallery-card { transition:none; } }
\n/* Keep the lead statement prominent before its supporting examples. */\n.portfolio-home .leadership-intro { max-width:900px; margin:-10px 0 12px; font-size:20px; line-height:29px; color:var(--ink-soft); }\n@media (max-width:760px) { .portfolio-home .leadership-intro { margin:-4px 0 8px; font-size:18px; line-height:27px; } }\n
