/* Portfolio page: product references supplied by the Nodomo team. */
.portfolio-page main > section:not(.final) h1,
.portfolio-page main > section:not(.final) h2,
.portfolio-page main > section:not(.final) h3 {
  font-family:"Bricolage Grotesque",sans-serif;
  font-weight:500;
  letter-spacing:-.045em;
}
.pd-hero {padding:48px 0 30px;text-align:center;background:radial-gradient(ellipse at 50% 80%,#edf1ff,white 70%)}
.pd-hero>.container>.eyebrow,.pd-section-heading>.eyebrow {justify-content:center}
.pd-hero h1 {font-size:clamp(44px,5.1vw,70px);line-height:1.06;margin:22px 0}
.pd-hero h1 span {color:var(--blue)}
.pd-lead {font-size:16px;color:var(--muted);line-height:1.8;margin:0 auto;max-width:580px}
.pd-actions {display:flex;justify-content:center;align-items:center;gap:26px;margin:26px 0 40px}
.pd-actions .btn {gap:22px}
.pd-link {display:inline-flex;align-items:center;gap:16px;font-size:13px;font-weight:500;color:var(--blue);line-height:1.6}
.pd-link:hover {text-decoration:underline;text-underline-offset:5px}
.pd-link .ui-arrow-icon {width:17px;height:17px;min-width:17px}
.pd-hero-shot {margin:0;padding:14px 14px 0;background:#edf0fb;border:1px solid #e2e7f4;border-radius:24px}
.pd-hero-shot>a {display:block;overflow:hidden;border:1px solid #e2e6f0;border-radius:15px}
.pd-hero-shot img {width:100%;height:auto}
.portfolio-page figure {margin-left:0;margin-right:0}
.portfolio-page figcaption,.pd-note {font-size:10px;line-height:1.8;color:var(--muted);text-align:center}
.portfolio-page figcaption {padding:13px 8px}
.pd-note {margin:20px 0 0}
.pd-overview {padding:65px 0 35px}
.pd-section-heading {max-width:800px;text-align:center;margin:0 auto 38px}
.portfolio-page main > section:not(.final) h2 {font-size:clamp(34px,3.6vw,48px);line-height:1.12;margin:19px 0}
.pd-section-heading>p:last-child:not(.eyebrow) {font-size:14px;line-height:1.9;color:var(--muted)}
.pd-overview-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pd-overview-grid article {min-width:0}
.pd-overview-grid figure {height:320px;display:flex;align-items:center;justify-content:center;padding:14px;margin:0 0 23px;background:#f3f5fb;border:1px solid #e7ebf3;border-radius:20px}
.pd-overview-grid img {width:100%;height:100%;object-fit:contain}
.pd-overview-grid h3 {font-size:26px;line-height:1.2;margin:0 0 10px}
.pd-overview-grid article>p {font-size:12px;line-height:1.8;color:var(--muted);margin:0}
.pd-feature {padding:58px 0}
.pd-split {display:grid;grid-template-columns:1fr 1.4fr;gap:65px;align-items:center}
.pd-reverse {grid-template-columns:1.4fr 1fr}
.pd-feature-copy {max-width:420px}
.pd-feature-copy>p:not(.eyebrow) {color:var(--muted);font-size:14px;line-height:1.9;margin:22px 0}
.pd-feature-copy>.pd-link {margin-top:10px}
.pd-product-shot {margin:0;padding:20px 20px 0;background:#f1f3fb;border:1px solid #e4e8f3;border-radius:22px}
.pd-product-shot img {width:100%;height:auto;border-radius:12px}
.pd-team-demo {padding:60px 0}
.pd-demo-grid {display:grid;grid-template-columns:1.2fr 1fr;gap:85px;align-items:center}
.pd-video-figure {margin:0;padding:15px 15px 0;background:#f1f4fa;border:1px solid #e3e8f0;border-radius:24px}
.pd-video-figure video {display:block;width:100%;height:auto;aspect-ratio:1;background:#f4f8fb;border-radius:15px}
.pd-video-figure figcaption {font-size:9px}
.pd-team-actions {list-style:none;margin:27px 0;padding:0;border-top:1px solid var(--line)}
.pd-team-actions li {display:flex;align-items:center;gap:18px;padding:17px 0;border-bottom:1px solid var(--line);font-size:14px}
.pd-team-actions span {font-size:10px;color:var(--blue)}
.pd-revenue-section .pd-split {grid-template-columns:1fr 1.2fr;gap:90px}
.pd-revenue-shot {margin:0;padding:18px 18px 0;background:#f3f5fc;border:1px solid #e4e8f3;border-radius:24px;max-width:540px;justify-self:end}
.pd-revenue-shot img {width:100%;height:auto}
.pd-metrics-section {padding:55px 0}
.pd-metrics-shot {margin:0;padding:18px 18px 0;background:#f1f3fb;border-radius:20px;border:1px solid #e4e8f3}
.pd-metrics-shot img {width:100%;height:auto;border-radius:12px}
.pd-proof {padding:30px 0 0}
.pd-proof-box {display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:35px;background:#f5f7fc;border-radius:26px}
.pd-proof figure {margin:0}
.pd-proof img {width:100%;height:auto;border-radius:16px}
.portfolio-page main > section.pd-proof h2 {font-size:clamp(28px,3.2vw,42px);line-height:1.2}
.pd-proof-person {display:flex;flex-direction:column;gap:6px;font-size:12px;margin:25px 0}
.pd-proof-person strong {font-weight:500}
.pd-proof-person span {color:var(--muted)}
.portfolio-page a:focus-visible,.portfolio-page video:focus-visible {outline:3px solid var(--blue);outline-offset:5px}
@media(max-width:1000px) {
 .pd-split,.pd-demo-grid {gap:35px}
 .pd-overview-grid {gap:18px}
 .pd-overview-grid figure {height:255px;padding:10px}
 .pd-overview-grid h3 {font-size:23px}
 .pd-product-shot {padding:14px 14px 0}
 .pd-revenue-section .pd-split {gap:40px}
 .pd-proof-box {gap:30px}
}
@media(max-width:700px) {
 .pd-hero {padding-top:34px}
 .pd-hero h1 {font-size:43px}
 .pd-lead {font-size:14px}
 .pd-actions {gap:20px;margin:24px 0 32px}
 .pd-hero-shot {padding:7px 7px 0;border-radius:15px}
 .pd-hero-shot>a {border-radius:9px}
 .pd-hero-shot figcaption {font-size:9px;padding:10px 2px}
 .pd-overview {padding:42px 0 20px}
 .pd-section-heading {margin-bottom:28px}
 .pd-overview-grid {grid-template-columns:1fr;gap:30px}
 .pd-overview-grid figure {height:auto;aspect-ratio:1.15;padding:18px;margin-bottom:18px}
 .pd-overview-grid h3 {font-size:28px}
 .pd-feature,.pd-team-demo {padding:34px 0}
 .pd-split,.pd-reverse,.pd-demo-grid,.pd-revenue-section .pd-split {grid-template-columns:1fr;gap:26px}
 .pd-reverse .pd-feature-copy,.pd-demo-grid .pd-feature-copy {grid-row:1}
 .pd-feature-copy {max-width:none}
 .pd-product-shot {padding:11px 11px 0;border-radius:17px}
 .pd-video-figure {padding:9px 9px 0;border-radius:18px}
 .pd-team-actions {margin:22px 0}
 .pd-revenue-shot {max-width:none;padding:12px 12px 0;border-radius:18px;justify-self:stretch}
 .pd-metrics-section {padding:35px 0}
 .pd-metrics-shot {padding:12px 12px 0}
 .pd-proof {padding-top:20px}
 .pd-proof-box {grid-template-columns:1fr;gap:22px;padding:22px}
 .portfolio-page main > section.pd-proof h2 {font-size:32px}
 .pd-proof-box .eyebrow {font-size:9px}
}
@media print {
 .pd-hero,.pd-overview,.pd-feature,.pd-team-demo,.pd-metrics-section {padding:20px 0;background:white}
 .pd-product-shot,.pd-hero-shot,.pd-video-figure,.pd-revenue-shot,.pd-proof-box {break-inside:avoid;box-shadow:none}
 .pd-hero-shot {max-width:850px;margin:auto}
 .pd-overview-grid figure {height:200px}
 .pd-split,.pd-demo-grid {gap:25px}
 .pd-video-figure video {max-height:350px}
 .pd-proof-box {padding:20px;gap:25px}
 .pd-proof img {max-height:220px;object-fit:cover}
}

/* Page layout. Requested visual refinements are scoped below; supplied source files remain intact. */
.pd-studio-hero {padding:65px 0 45px;background:#fff;text-align:left}
.pd-studio-hero>.container {display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}
.pd-studio-hero .pd-hero-copy {max-width:480px}
.pd-studio-hero h1 {font-size:clamp(42px,4.2vw,60px)}
.pd-studio-hero .pd-actions {justify-content:flex-start;gap:12px;margin-bottom:0}
.pd-overview-grid article>h3 {margin-top:24px;font-size:25px}
.pd-overview-grid article>p {font-size:13px}
.pd-split {gap:48px;grid-template-columns:1fr 1.25fr}
.pd-reverse {grid-template-columns:1.25fr 1fr}
.pd-revenue-section .pd-split {grid-template-columns:1fr 1.25fr;gap:48px}
@media(max-width:1000px) {.pd-studio-hero>.container,.pd-split,.pd-revenue-section .pd-split {gap:28px}}
@media(max-width:860px) {
 .pd-studio-hero>.container,.pd-split,.pd-reverse,.pd-revenue-section .pd-split,.pd-demo-grid {grid-template-columns:1fr}
 .pd-studio-hero .pd-hero-copy {max-width:650px}
 .pd-studio-hero {padding-top:42px}
 .pd-reverse .pd-feature-copy,.pd-demo-grid .pd-feature-copy {grid-row:1}
 .pd-feature-copy {max-width:100%}
 .pd-overview-grid {grid-template-columns:1fr;gap:38px}
}

/* Requested dashboard refinements. */
.pd-section-button {gap:16px;margin-top:10px}
.pd-section-button .ui-arrow-icon {width:17px;height:17px;min-width:17px}
.portfolio-page main>.pd-overview.scroll-reveal {animation:none!important;transform:none!important}
.pd-overview .nv-scene,.pd-overview .nv-scene *,.pd-overview .nv-scene *::before,.pd-overview .nv-scene *::after {animation:none!important;transition:none!important}
.pd-overview .nv-rv {opacity:1!important;transform:none!important}
.pd-overview .nv-pg i::after,.pd-overview .nv-tk2 b {width:var(--p)!important}
.pd-overview .nv-a,.pd-overview .nv-lt {transform:none!important}
.pd-overview .nv-swap>:first-child {opacity:0!important}
.pd-overview .nv-swap>:last-child {opacity:1!important}
.nv-time .t-a .nv-body {padding-top:1.25em;padding-bottom:1.5em;gap:1.2em}
.nv-time .t-a .nv-gt {gap:.45em}
.nv-time .t-a .nv-gr {padding:.65em 0}
.nv-time .t-b {width:66%;padding:1.15em 1.3em}
.nv-time .t-b .nv-dp {gap:.85em}
.nv-time .t-b .nv-dp>div {padding:.45em 0}
.nv-time .t-b .nv-wh {margin:-1.15em -1.3em .9em;padding:.8em 1.3em}
@media(min-width:701px) {
 .portfolio-page .nv-hero {aspect-ratio:1/1.14}
 .nv-hero .hero-f {top:30%}
}
@media(min-width:701px) {.nv-time .t-b {bottom:4%}}

/* A shared dotted backdrop for every portfolio illustration and the video. */
.portfolio-page .nv-scene,
.portfolio-page .nv-vwrap {
  background-image:radial-gradient(circle,rgba(0,51,255,.16) .8px,transparent 1px);
  background-size:14px 14px;
}

/* Compact hero, consistent statuses, and a horizontal impact summary. */
.nv-scene .nv-chip.neutral {background:#fff0dd;color:#b96a13}
.nv-scene .m3-b>small {color:var(--late)}
.portfolio-page .nv-vwrap video {box-shadow:none!important}
@media(min-width:701px) {
 .portfolio-page .nv-hero {aspect-ratio:1/.96;--fs:max(11.5px,1.85cqw)}
 .nv-hero .hero-f {top:29%}
 .nv-hero .hero-i {top:6%;right:3%;left:auto;bottom:auto;width:40%}
 .nv-rev .r-b {left:4%;right:4%;width:92%;display:grid;grid-template-columns:1fr 1fr;column-gap:1.6em}
 .nv-rev .r-b>.nv-wh {grid-column:1/-1}
 .nv-rev .r-b>.nv-tot {padding:.3em 0 .3em 1.3em;border-left:1px solid var(--line);align-content:center}
 .nv-rev .r-b .nv-tot b {font-size:2.7em}
 .nv-rev .r-b .nv-tot span {font-size:.75em}
 .portfolio-page .nv-rev {aspect-ratio:1/.70}
}

/* Accountability-focused copy and illustrative workflow context. */
.pd-studio-hero h1 {font-size:clamp(39px,3.7vw,54px);line-height:1.08}
.pd-studio-hero .pd-lead {font-size:15px;line-height:1.8}
.pd-feature-copy>p:not(.eyebrow) {margin:16px 0}
.pd-proof-context {color:var(--muted);font-size:14px;line-height:1.8}
.pd-insight-owner {font-size:.85em;color:var(--mute)}
.pd-delay-reason {margin:.6em 0 0;display:grid;gap:.5em}
.pd-delay-reason>div {display:grid;grid-template-columns:6.8em 1fr;gap:.7em;font-size:.8em;line-height:1.4}
.pd-delay-reason dt {color:var(--mute)}
.pd-delay-reason dd {margin:0}
.pd-stage-times {padding-top:.8em;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:.55em;font-size:.75em}
.pd-stage-times>b {grid-column:1/-1;font-weight:500}
.pd-stage-times span {display:flex;justify-content:space-between;gap:.4em;flex-wrap:wrap}
.pd-stage-times small {grid-column:1/-1;font-size:.85em}
@media(min-width:701px) {
 .portfolio-page .nv-drill {aspect-ratio:1/.94}
 .nv-drill .d-b {top:19%}
 .nv-drill .d-c {width:92%;bottom:5%}
 .nv-drill .pd-delay-reason {grid-template-columns:1fr 1fr;gap:.7em 1.6em}
 .portfolio-page .nv-time {aspect-ratio:1/1.10}
 .nv-time .t-a .nv-body {gap:.8em}
 .nv-time .t-a .nv-gr {padding:.4em 0}
 .nv-time .t-b {width:76%;bottom:4%}
}
@media(max-width:700px) {
 .pd-studio-hero h1 {font-size:40px}
 .pd-delay-reason>div {grid-template-columns:6.2em 1fr}
 .pd-stage-times {grid-template-columns:1fr}
}

/* Let timeline panels size naturally, with a compact and consistent gap. */
@media(min-width:701px) {
 .portfolio-page .nv-time {aspect-ratio:auto;display:flex;flex-direction:column;padding:4%;gap:18px}
 .nv-time .t-a,.nv-time .t-b {position:relative;inset:auto}
 .nv-time .t-a {width:100%}
 .nv-time .t-b {width:82%;align-self:flex-end}
}

/* Compact the bottleneck illustration without shrinking its text. */
.nv-drill .nv-node {padding:.45em .9em;gap:.18em}
.nv-drill .nv-cn {height:.6em}
.nv-drill .nv-head {padding:.75em 1.1em .3em}
.nv-drill .nv-body {padding:.75em 1.1em}

/* Blue and purple insight borders and tighter hero button icons. */
.portfolio-page .nv-float {
 background:linear-gradient(#fff,#fff) padding-box,linear-gradient(110deg,#0033ff,#6554ed 60%,#8a6cf0) border-box;
}
.pd-studio-hero .pd-actions .btn {gap:10px}
