/* ProtocolDock portfolio page. All content rules are scoped to this page. */
.pd-project { --pdp-ink:#18191b; --pdp-paper:#eff0f1; --pdp-orange:#ff4a1f; --pdp-display:'Libre Franklin',Arial,sans-serif; font:400 clamp(1.0625rem,1rem + .2vw,1.1875rem)/1.55 'Source Serif 4',Georgia,serif; color:var(--pdp-ink); background:var(--pdp-paper); }
.pd-project :is(h1,h2,h3) { font-family:var(--pdp-display); color:inherit; font-weight:700; letter-spacing:-.045em; text-wrap:balance; }
.pd-project h1 { font-size:clamp(3.2rem,7.4vw,7.25rem); line-height:.98; margin:0; max-width:18ch; }
.pd-project h1 span { color:var(--pdp-orange); }
.pd-project h2 { font-size:clamp(2.3rem,4.1vw,4.5rem); line-height:1.05; margin:0; }
.pd-project h3 { font-size:1.6rem; line-height:1.15; margin:0 0 20px; }
.pd-project p { margin:0 0 20px; }
.pd-project p:last-child { margin-bottom:0; }
.pd-project a, .pd-project a:hover { color:inherit; }
.pd-project :focus-visible { outline:3px solid var(--pdp-orange); outline-offset:6px; }
.pd-project .pdp-wrap { width:min(100% - 64px,1320px); margin-inline:auto; }
.pd-project .pdp-dark { background:var(--pdp-ink); color:var(--pdp-paper); }
.pd-project .pdp-paper { background:var(--pdp-paper); color:var(--pdp-ink); }
.pd-project .pdp-section { padding-block:88px; }
.pd-project .pdp-eyebrow { font:700 .75rem/1.4 var(--pdp-display); letter-spacing:.09em; text-transform:uppercase; margin:0 0 22px; color:#b22c08; }
.pd-project .pdp-dark .pdp-eyebrow { color:#ff8a6c; }
.pd-project .pdp-hero { padding:34px 0 36px; }
.pd-project .pdp-hero-top { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:82px; }
.pd-project .pdp-brand { display:inline-flex; align-items:center; gap:12px; font:700 clamp(1.4rem,2.2vw,2rem)/1 var(--pdp-display); letter-spacing:-.04em; text-decoration:none; }
.pd-project .pdp-brand svg { width:48px; height:48px; flex-shrink:0; }
.pd-project .pdp-status { font:500 .75rem/1.5 var(--pdp-display); color:#c9ccd1; }
.pd-project .pdp-hero-bottom { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:40px; margin-top:36px; }
.pd-project .pdp-lead { font-size:clamp(1.25rem,1.1rem + .6vw,1.625rem); max-width:42ch; margin:0; }
.pd-project .pdp-actions { display:flex; flex-wrap:wrap; gap:18px 24px; align-items:center; }
.pd-project a.pdp-button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-height:52px; padding:14px 22px; background:var(--pdp-orange); color:#18191b; font:700 .9375rem/1.4 var(--pdp-display); text-decoration:none; }
.pd-project a.pdp-button:hover { background:#ed3f18; }
.pd-project .pdp-link { display:inline-flex; align-items:center; gap:14px; min-height:44px; text-decoration:underline; text-underline-offset:5px; font:600 .9375rem/1.4 var(--pdp-display); }
.pd-project .pdp-link:hover { text-decoration-thickness:2px; }
.pd-project .pdp-credit { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px; padding-top:24px; margin-top:64px; border-top:1px solid #414348; font:400 .8125rem/1.5 var(--pdp-display); color:#c9ccd1; }
.pd-project .pdp-credit strong { font-weight:600; color:var(--pdp-paper); }
.pd-project .pdp-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8%; }
.pd-project .pdp-prose { max-width:56ch; }
.pd-project .pdp-section-heading { max-width:850px; margin-bottom:40px; }
.pd-project .pdp-section-heading > p:last-child:not(.pdp-eyebrow) { margin:24px 0 0; max-width:60ch; font-size:1.3rem; }
.pd-project .pdp-feature-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:6%; align-items:center; }
.pd-project .pdp-feature-copy > h2 { margin-bottom:24px; }
.pd-project .pdp-feature-copy > p:not(.pdp-eyebrow) { font-size:1.25rem; }
.pd-project .pdp-list { list-style:none; margin:24px 0; padding:0; font-size:1.0625rem; }
.pd-project .pdp-list li { border-top:1px solid #c9ccd1; padding:12px 0; }
.pd-project .pdp-dark .pdp-list li { border-color:#414348; }
.pd-project .pdp-shot { margin:0; min-width:0; }
.pd-project .pdp-shot > a { display:block; }
.pd-project .pdp-shot img { width:100%; height:auto; display:block; border:1px solid #c9ccd1; background:#fff; }
.pd-project .pdp-dark .pdp-shot img { border-color:#414348; }
.pd-project .pdp-shot figcaption { margin-top:12px; font:400 .75rem/1.5 var(--pdp-display); color:#4b4f55; }
.pd-project .pdp-dark .pdp-shot figcaption { color:#c9ccd1; }
.pd-project .pdp-two-shots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.pd-project .pdp-task-foot { display:flex; justify-content:space-between; align-items:start; gap:24px; margin-top:28px; }
.pd-project .pdp-task-foot p { max-width:60ch; font-size:1.0625rem; margin:0; }
.pd-project .pdp-task-foot .pdp-link { flex-shrink:0; }
.pd-project .pdp-stack { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:48px; }
.pd-project .pdp-stack > div { border-top:1px solid #414348; padding-top:22px; }
.pd-project .pdp-stack h3 { font-size:1.125rem; margin-bottom:14px; }
.pd-project .pdp-stack p { color:#c9ccd1; font-size:1.0625rem; }
.pd-project .pdp-close { padding-block:80px; }
.pd-project .pdp-close > div { display:flex; align-items:end; justify-content:space-between; gap:40px; }
.pd-project .pdp-close h2 { margin-bottom:24px; }
@media(min-width:1700px) { .pd-project h1 { font-size:8rem; } }
@media(max-width:1000px) { .pd-project .pdp-hero-bottom { grid-template-columns:1fr; gap:28px; } .pd-project .pdp-feature-grid { gap:4%; } .pd-project .pdp-task-foot { flex-direction:column; gap:14px; } }
@media(max-width:760px) {
  .pd-project .pdp-wrap { width:calc(100% - 40px); }
  .pd-project .pdp-section { padding-block:46px; }
  .pd-project .pdp-hero { padding-top:24px; padding-bottom:28px; }
  .pd-project .pdp-hero-top { flex-wrap:wrap; gap:12px; margin-bottom:48px; }
  .pd-project .pdp-brand svg { width:40px; height:40px; }
  .pd-project .pdp-status { width:100%; }
  .pd-project h1 { font-size:clamp(3rem,10vw,5rem); }
  .pd-project .pdp-eyebrow { margin-bottom:18px; }
  .pd-project .pdp-hero-bottom { margin-top:24px; }
  .pd-project .pdp-credit { margin-top:36px; padding-top:20px; gap:8px; }
  .pd-project .pdp-intro, .pd-project .pdp-feature-grid, .pd-project .pdp-two-shots, .pd-project .pdp-stack { grid-template-columns:1fr; gap:28px; }
  .pd-project .pdp-section-heading { margin-bottom:28px; }
  .pd-project .pdp-feature-copy > p:not(.pdp-eyebrow), .pd-project .pdp-section-heading > p:last-child:not(.pdp-eyebrow) { font-size:1.1875rem; }
  .pd-project .pdp-list { margin-block:20px; }
  .pd-project .pdp-stack { margin-top:32px; }
  .pd-project .pdp-close { padding-block:46px; }
  .pd-project .pdp-close > div { display:grid; gap:28px; }
}
@media(prefers-reduced-motion:reduce) { html:has(.pd-project) { scroll-behavior:auto; } }
