.client-project-home,.project-overview{max-width:1120px;margin:0 auto;padding:28px 28px 64px;width:100%;min-width:0;color:var(--text,#191f28)}
.project-eyebrow{font-size:11px;line-height:1.4;letter-spacing:.07em;font-weight:650;color:#8b95a1}
.client-project-heading,.project-overview-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}
.client-project-heading h1,.project-overview-heading h1{margin:8px 0 6px;font-size:30px;line-height:1.3;letter-spacing:-.04em;font-weight:730}
.client-project-heading p,.project-overview-heading p{margin:0;font-size:14px;line-height:1.65;color:#6b7684}
.client-home-summary{display:flex;align-items:baseline;gap:7px;white-space:nowrap;font-size:13px;color:#6b7684}.client-home-summary strong{font-size:24px;color:#333d4b;font-weight:650}.client-home-summary i{height:16px;width:1px;background:#e5e8eb;margin:0 9px}
.client-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.client-project-card{text-align:left;padding:24px;border:1px solid #e5e8eb;background:#fff;border-radius:20px;min-width:0;color:inherit;cursor:pointer;transition:box-shadow .16s,border-color .16s}
.client-project-card:hover{border-color:#b0b8c1;box-shadow:0 4px 16px #191f2808}.client-project-card:focus-visible{outline:3px solid #3182f6;outline-offset:3px}
.client-project-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.project-category-icon{width:44px;height:44px;display:grid;place-items:center;background:#f2f4f6;border-radius:14px;color:#4e5968}.is-blog .project-category-icon{background:#fff5d9;color:#8a6411}.is-tutorial .project-category-icon{background:#eaf2ff;color:#3d6da9}.is-success_story .project-category-icon{background:#eaf6f2;color:#3c7c69}
.project-state-pill{font-size:12px;font-weight:550;background:#f2f4f6;color:#6b7684;border-radius:7px;padding:5px 9px;line-height:1.4}
.client-project-card h2{font-size:22px;letter-spacing:-.025em;line-height:1.4;margin:0 0 6px}.client-project-card>p{font-size:13px;line-height:1.6;color:#8b95a1;margin:0 0 22px}.client-project-card dl{margin:0;display:grid;gap:12px}.client-project-card dl>div{display:flex;justify-content:space-between;gap:12px;font-size:13px;line-height:1.5}.client-project-card dt{color:#8b95a1}.client-project-card dd{margin:0;color:#4e5968;font-variant-numeric:tabular-nums;text-align:right}.client-project-card dd span{color:#8b95a1;font-size:12px}.client-project-card footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f2f4f6;padding-top:17px;margin-top:22px;font-size:13px;font-weight:600;color:#4e5968}
.client-home-footnote{margin:22px 0 0;color:#8b95a1;font-size:12px}.project-back{display:flex;gap:5px;align-items:center;background:none;border:0;color:#8b95a1;font-size:13px;padding:0;margin-bottom:24px;cursor:pointer}.project-back svg{transform:rotate(90deg)}
.project-overview-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-overview-metrics{display:grid;grid-template-columns:1fr 1.8fr 1fr 1fr;gap:20px;background:#f7f8fa;border-radius:16px;padding:22px 24px;margin-bottom:28px}.project-overview-metrics>div{display:grid;gap:9px}.project-overview-metrics span{font-size:12px;color:#8b95a1}.project-overview-metrics strong{font-size:17px;line-height:1.5;font-weight:650;letter-spacing:-.02em}.project-overview-metrics small{font-size:12px;color:#8b95a1;font-weight:450;margin-left:3px}
.project-tasks-section{margin-bottom:28px;border:1px solid #e5e8eb;border-radius:18px;overflow:hidden;background:#fff}.project-tasks-section>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 22px}.project-tasks-section h2,.project-empty-timeline h2{font-size:17px;line-height:1.5;margin:0;letter-spacing:-.025em}.project-tasks-section h2 span{color:#8b95a1;font-weight:450;margin-left:6px}.project-tasks-section>header>span{font-size:12px;color:#8b95a1}
.project-task-table-wrap{overflow-x:auto}.project-task-table{width:100%;border-collapse:collapse;min-width:730px;font-size:12px}.project-task-table th{text-align:left;font-weight:500;color:#8b95a1;background:#fafbfc;padding:12px 16px;border-top:1px solid #f2f4f6;border-bottom:1px solid #f2f4f6;white-space:nowrap}.project-task-table td{padding:17px 16px;border-bottom:1px solid #f2f4f6;color:#6b7684;line-height:1.6;vertical-align:middle}.project-task-table tr:last-child td{border-bottom:0}.project-task-table td:first-child{width:42%;min-width:250px}.project-task-table td:first-child strong{display:block;font-weight:550;font-size:13px;color:#333d4b;line-height:1.55;margin-top:3px}.project-task-table time{white-space:nowrap;font-variant-numeric:tabular-nums}.task-sequence{font-size:10px;color:#8b95a1;font-weight:550}.project-task-status{display:inline-block;white-space:nowrap;font-size:11px;padding:4px 7px;border-radius:6px;background:#f2f4f6;color:#6b7684}.project-task-status.is-client_review{background:#e8f3ff;color:#1b64da}.project-task-status.is-approved{background:#e8f7ef;color:#288564}.project-task-status.is-changes_requested{background:#fff4e6;color:#ad6c13}.project-task-pending{font-size:11px;white-space:nowrap;color:#b0b8c1}
.project-tasks-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:44px 20px 52px;gap:10px;color:#b0b8c1}.project-tasks-empty h3{font-size:16px;color:#4e5968;margin:7px 0 0;line-height:1.5}.project-tasks-empty p{font-size:13px;line-height:1.7;color:#8b95a1;margin:0 0 8px}.project-empty-timeline{border:1px solid #e5e8eb;border-radius:18px;padding:22px}.project-empty-timeline p{color:#8b95a1;font-size:13px;line-height:1.6;margin:10px 0 0}
.project-overview .publication-section{margin-top:0}.project-overview .schedule-metrics{display:none}
@media(max-width:850px){.client-project-home,.project-overview{padding:24px 18px 72px}.project-overview-heading{align-items:flex-start;flex-direction:column;gap:18px}.project-overview-metrics{grid-template-columns:1fr 1fr;gap:20px 14px}.client-project-card{padding:20px}.client-project-card dl>div{flex-direction:column;gap:3px}.client-project-card dd{text-align:left}}
@media(max-width:540px){.client-project-heading{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:22px}.client-project-heading h1,.project-overview-heading h1{font-size:26px}.client-home-summary strong{font-size:19px}.client-project-grid{grid-template-columns:1fr;gap:14px}.client-project-card h2{font-size:20px}.client-project-card>p{margin-bottom:18px}.client-project-card dl>div{flex-direction:row}.client-project-card dd{text-align:right}.project-overview-metrics{padding:18px;grid-template-columns:1fr 1fr}.project-overview-metrics>div:nth-child(2){grid-column:1/-1;grid-row:2}.project-overview-metrics>div:last-child{grid-column:2;grid-row:1}.project-overview-metrics>div:nth-child(3){grid-column:1/-1}.project-overview-actions .btn{font-size:12px}.project-tasks-section>header{padding:17px}.project-tasks-section>header>span{display:none}}
.project-range-note{display:block;font-size:11px;color:#8b95a1;margin-top:2px}.project-overview-tabs{display:flex;gap:8px;margin:0 0 20px}.project-overview-tabs a{font-size:13px;color:#4e5968;text-decoration:none;padding:10px 14px;background:#f2f4f6;border-radius:9px}.project-overview-tabs a:hover{background:#e5e8eb}#project-tasks,#project-timeline{scroll-margin-top:92px}
/* Portfolio timeline: one date scale, expandable project rows. */
.client-projects-heading{font-size:19px;letter-spacing:-.03em;margin:32px 0 16px}.client-timeline{border:1px solid #e5e8eb;border-radius:18px;background:#fff;overflow:hidden;--ct-label:280px;scroll-margin-top:90px}
.ct-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 24px 16px}.ct-heading h2{margin:0;font-size:20px;letter-spacing:-.03em;line-height:1.5}.ct-heading p{margin:5px 0 0;color:#6b7684;font-size:13px;line-height:1.6}.ct-today-label{font-size:12px;color:#8b95a1;white-space:nowrap}.ct-summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:0 24px 20px}.ct-summary>span:last-child:not(.ct-pill){font-size:11px;color:#8b95a1;margin-left:3px}
.ct-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:6px;background:#f2f4f6;color:#6b7684;font-size:12px;line-height:1.4;white-space:nowrap}.ct-pill b{font-weight:650}.ct-late{color:#c53b44!important}.ct-pill.ct-late{background:#fff0f0}.ct-check{color:#996000!important}.ct-pill.ct-check{background:#fff6df}
.ct-scroll{overflow-x:auto;max-width:100%;border-top:1px solid #e5e8eb;overscroll-behavior-x:contain}.ct-scroll:focus-visible{outline:2px solid #3182f6;outline-offset:-2px}.ct-grid{width:calc(var(--ct-label) + var(--ct-width));font-size:12px}.ct-axis,.ct-group>summary,.ct-task-row{display:grid;grid-template-columns:var(--ct-label) var(--ct-width)}
.ct-label{position:sticky;left:0;z-index:3;background:#fff;border-right:1px solid #e5e8eb;padding:17px 18px;min-width:0}.ct-axis{height:43px;background:#f9fafb;border-bottom:1px solid #e5e8eb}.ct-axis>.ct-label{font-size:11px;color:#8b95a1;background:#f9fafb;padding-top:14px}.ct-axis-dates{position:relative;margin:0 0 0 0;color:#8b95a1;font-size:10px;font-variant-numeric:tabular-nums}.ct-axis-dates time{position:absolute;top:14px;transform:translateX(-50%);white-space:nowrap}.ct-axis-dates time:first-child{transform:none;padding-left:4px}.ct-axis-dates time:last-child{transform:translateX(-100%);padding-right:4px}
.ct-group{border:0;border-bottom:1px solid #e5e8eb;margin:0;border-radius:0}.ct-group:last-child{border-bottom:0}.ct-group>summary{list-style:none;cursor:pointer;min-height:80px;align-items:stretch}.ct-group>summary::-webkit-details-marker{display:none}.ct-group>summary:focus-visible{outline:2px solid #3182f6;outline-offset:-2px}.ct-group>summary:hover>.ct-label{background:#fafbfc}.ct-group-name{display:flex;align-items:center;gap:10px;line-height:1.5}.ct-group-name strong{font-size:14px;color:#333d4b}.ct-group-name small{font-size:11px;color:#8b95a1}.ct-chevron{font-size:22px;line-height:18px;transition:transform .15s;color:#8b95a1}.ct-group[open]>summary .ct-chevron{transform:rotate(90deg)}.ct-group-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:7px 0 0 19px;color:#8b95a1;font-size:11px}.ct-group-meta .ct-pill{font-size:10px;padding:2px 5px}
.ct-track{position:relative;min-height:80px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / 8 - 1px),#f2f4f6 calc(100% / 8 - 1px),#f2f4f6 calc(100% / 8));min-width:0}.ct-today-line{position:absolute;top:0;bottom:0;width:1px;background:#3182f6;z-index:2;pointer-events:none}.ct-project-bar{position:absolute;top:28px;height:24px;min-width:3px;border-radius:5px;background:#dce7f5;color:#42678f;display:block;padding:5px 8px;white-space:nowrap;font-size:10px;overflow:hidden;line-height:14px;box-sizing:border-box}.ct-project-bar.is-late{background:#ffe0e1;color:#ba3d47}
.ct-task-row{border-top:1px solid #f2f4f6;min-height:104px}.ct-task-row>.ct-label{padding:14px 16px 14px 34px;background:#fcfcfd}.ct-task-title{display:grid;gap:3px;min-width:0}.ct-task-title>span{font-size:10px;color:#8b95a1}.ct-task-title>strong,.ct-task-title>button{font-size:12px;font-weight:550;line-height:1.5;color:#4e5968;text-align:left;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all}.ct-task-title>button{padding:0;border:0;background:transparent;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#b0b8c1}.ct-task-meta{display:flex;gap:7px;flex-wrap:wrap;font-size:10px;color:#8b95a1;margin-top:6px;line-height:1.5}.ct-task-meta>span:first-child{color:#6b7684;font-weight:600}.ct-issue{font-size:10px;line-height:1.6;margin:5px 0 0;color:#b45450}.ct-partial{display:block;color:#8b95a1;font-size:10px;margin-top:4px}.ct-task-track{min-height:104px}
.ct-bar{position:absolute;display:block;height:18px;min-width:3px;line-height:18px;border-radius:4px;font-size:10px;color:#42678f;background:#dcecff;box-sizing:border-box;white-space:nowrap;overflow:hidden}.ct-bar>span{padding:0 6px}.ct-bar.is-internal_review{background:#eee5fb;color:#7652a0}.ct-bar.is-client_review{background:#dbf2e9;color:#337b62}.ct-bar.is-done{background:#e9edf1;color:#8993a0}.ct-bar.is-late{background:#ffe0e1;color:#bd3945;border:1px solid #efaab0;line-height:16px}.ct-milestone{position:absolute;top:82px;transform:translateX(-50%);font-size:13px;line-height:14px;color:#6b7684;z-index:2}.ct-no-date{position:absolute;left:20px;top:32px;color:#b0b8c1;font-size:11px}.ct-empty-children{position:sticky;left:0;width:var(--ct-label);box-sizing:border-box;color:#8b95a1;font-size:12px;padding:18px 20px}.ct-project-link{position:sticky;left:0;width:var(--ct-label);box-sizing:border-box;padding:12px 18px;background:#fff}.ct-project-link .btn{font-size:11px}.ct-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 22px 10px;color:#8b95a1;font-size:10px}.ct-footer>span{display:inline-flex;align-items:center;gap:5px}.ct-key{height:7px;width:12px;border-radius:2px;background:#dcecff}.ct-key.is-internal_review{background:#eee5fb}.ct-key.is-client_review{background:#dbf2e9}.ct-help{font-size:11px;color:#8b95a1;padding:0 22px 18px}.ct-help summary{cursor:pointer;display:list-item;list-style:disclosure-closed;padding:4px 0}.ct-help[open] summary{list-style:disclosure-open}.ct-help p{line-height:1.8;margin:8px 0 0;max-width:760px}
@media(max-width:650px){.client-timeline{--ct-label:185px}.ct-heading{padding:19px 16px 13px;align-items:flex-start;flex-direction:column;gap:7px}.ct-heading h2{font-size:18px}.ct-heading p{font-size:12px}.ct-today-label{font-size:10px}.ct-summary{padding:0 16px 16px;gap:6px}.ct-pill{font-size:11px}.ct-label{padding:15px 12px}.ct-group-name{gap:6px}.ct-group-name strong{font-size:12px}.ct-group-meta{margin-left:13px;gap:4px}.ct-task-row>.ct-label{padding-left:20px}.ct-task-title>button,.ct-task-title>strong{font-size:11px}.ct-footer{padding:14px 16px 8px;gap:9px}.ct-help{padding:0 16px 16px}}
@media(prefers-reduced-motion:reduce){.ct-chevron{transition:none}}
.ct-today-key{color:#3182f6}
