.dcp-catalog{padding-bottom:72px}
body.is-dark-mode .dcp-catalog,body.llmpl-dark-active .dcp-catalog{--llmpl-accent:#8eaeff}
.dcp-hero{padding:36px 0 42px;max-width:1040px}
.dcp-hero h1{font-family:var(--llmpl-font-serif);font-size:clamp(2rem,4vw,3.8rem);line-height:1.12;letter-spacing:-.035em;margin:14px 0 24px;max-width:940px;text-wrap:balance}
.dcp-intro{font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.8;max-width:820px;color:var(--llmpl-text-soft)}
.dcp-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.dcp-nav a{display:flex;align-items:center;gap:20px;padding:12px 18px;border:1px solid var(--llmpl-line);background:var(--llmpl-surface);border-radius:var(--llmpl-radius);text-decoration:none;min-height:48px;font-weight:650}
.dcp-nav a:hover,.dcp-nav a[aria-current="location"]{border-color:var(--llmpl-accent);color:var(--llmpl-accent)}
.dcp-count{font-size:13px;font-variant-numeric:tabular-nums;color:var(--llmpl-text-soft)}
.dcp-section{border-top:1px solid var(--llmpl-line);padding:48px 0 8px;margin-bottom:48px;scroll-margin-top:calc(var(--dcp-header-offset,136px) + 20px)}
.dcp-section:focus{outline:none}
.dcp-section:focus-visible .dcp-section-heading :is(h1,h2){outline:2px solid var(--llmpl-accent);outline-offset:6px}
.dcp-section-heading{display:grid;grid-template-columns:1fr 1.2fr;align-items:end;gap:32px;margin-bottom:30px}
.dcp-section-heading :is(h1,h2){font-family:var(--llmpl-font-serif);font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.2;margin:8px 0 0}
.dcp-section-heading>p{margin:0;max-width:620px;color:var(--llmpl-text-soft)}
.dcp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.dcp-grid--project{align-items:stretch}
.dcp-grid--module{align-items:stretch}
.dcp-grid--service{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch}
.dcp-card{min-width:0;border:1px solid var(--llmpl-line);background:var(--llmpl-surface);border-radius:var(--llmpl-radius);padding:24px;scroll-margin-top:calc(var(--dcp-header-offset,136px) + 20px)}
.dcp-card--project{padding:28px;display:flex;flex-direction:column}
.dcp-card--project:first-child{border-top:3px solid var(--llmpl-accent);padding-top:26px}
.dcp-card--service{background:var(--llmpl-surface-muted);display:flex;flex-direction:column;padding:20px}
.dcp-card--skill{border-top:3px solid var(--llmpl-text);padding:22px;align-self:stretch}
.dcp-card-top{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:22px}
.dcp-identity{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--llmpl-surface-muted);color:var(--llmpl-accent);border-radius:6px;font-size:15px;font-weight:750;letter-spacing:.07em}
.dcp-number{font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.1em;color:var(--llmpl-text-soft);padding-top:3px}
.dcp-category{max-width:80%;font-size:11px;line-height:1.5;color:var(--llmpl-text-soft);text-align:right}
.dcp-card h3{font-size:clamp(1.08rem,1.4vw,1.3rem);line-height:1.35;letter-spacing:-.02em;margin:0 0 14px;overflow-wrap:anywhere;text-wrap:balance}
.dcp-card--project h3{font-size:1.42rem}
.dcp-project-url{font-size:12px;line-height:1.6;color:var(--llmpl-text-soft);margin:0 0 14px;padding:4px 0;overflow-wrap:anywhere}
.dcp-project-url a{text-decoration:none;display:inline-block}
.dcp-project-url a:hover{text-decoration:underline}
.dcp-tagline{font-size:14px;font-weight:650;line-height:1.55;margin:0 0 16px}
.dcp-description{font-size:14px;line-height:1.75;color:var(--llmpl-text-soft);margin:0 0 18px}
.dcp-card--service .dcp-card-top{margin-bottom:14px}
.dcp-card--service h3{margin-bottom:10px}
.dcp-card--service .dcp-tagline{margin-bottom:12px}
.dcp-card--service .dcp-description{margin-bottom:0}
.dcp-expansion{font-size:12px;color:var(--llmpl-text-soft);margin:-7px 0 14px}
.dcp-question{font-size:13px;line-height:1.65;border-left:2px solid var(--llmpl-accent);padding-left:12px;margin:20px 0 0}
.dcp-links{display:flex;flex-wrap:wrap;gap:8px 16px;border-top:1px solid var(--llmpl-line);padding-top:14px;margin-top:auto}
.dcp-links a,.dcp-back,.dcp-section-more a{font-size:13px;font-weight:650;text-decoration:none;display:inline-flex;gap:8px;align-items:center;min-height:44px}
.dcp-links a:hover,.dcp-back:hover,.dcp-section-more a:hover{text-decoration:underline}
.dcp-notes{border-top:1px solid var(--llmpl-line);margin-top:20px;padding-top:7px;font-size:13px;line-height:1.7}
.dcp-notes summary{cursor:pointer;padding:10px 0;font-weight:650;min-height:44px}
.dcp-notes ul{padding-left:20px;color:var(--llmpl-text-soft)}
.dcp-notes li+li{margin-top:9px}
.dcp-output{border-top:1px solid var(--llmpl-line);padding-top:17px;font-size:13px;line-height:1.7}
.dcp-output h4{font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin:0 0 9px}
.dcp-output p{margin:0;color:var(--llmpl-text-soft)}
.dcp-skill-note{max-width:800px;margin:0 0 28px;color:var(--llmpl-text-soft);font-size:14px}
.dcp-relations{font-size:12px;border-top:1px solid var(--llmpl-line);padding-top:16px;margin-top:16px}
.dcp-relations>span{font-weight:650}
.dcp-relations ul{list-style:none;padding:0;margin:8px 0 0}
.dcp-relations a{display:inline-block;padding:6px 0}
.dcp-section-more{margin:20px 0 0}
.dcp-catalog a:focus-visible,.dcp-catalog summary:focus-visible{outline:3px solid var(--llmpl-accent);outline-offset:4px}
@media(max-width:1023px){.dcp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dcp-section-heading{grid-template-columns:1fr;gap:14px}.dcp-hero{padding-top:22px}}
@media(max-width:639px){.dcp-grid,.dcp-grid--service{grid-template-columns:minmax(0,1fr)}.dcp-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dcp-nav a{justify-content:space-between;padding:12px 14px;gap:8px}.dcp-card,.dcp-card--project{padding:24px}.dcp-card--project:first-child{padding-top:22px}.dcp-section{padding-top:34px;margin-bottom:30px}.dcp-hero h1{text-wrap:initial}.dcp-links{gap:4px 18px}}
@media(prefers-reduced-motion:reduce){html:has(.dcp-catalog){scroll-behavior:auto}}
@media(max-width:639px){.dcp-grid--service{grid-auto-rows:auto}.dcp-card--service{padding:20px}}

.dcp-card-title-link{color:inherit;text-decoration:none}
.dcp-card-title-link:hover{color:var(--llmpl-accent);text-decoration:underline;text-underline-offset:4px}
.dcp-availability{display:block;color:var(--llmpl-text-soft);font-size:12px;margin-top:4px}
