/* Independent override: the existing portfolio.css is never replaced. */
html[data-theme="dark"] .closing-cta.color-violet{background:#39266b;color:#fff}
html[data-theme="dark"] .closing-cta.color-violet h2{color:#fff}
html[data-theme="dark"] .closing-cta.color-violet>p:not(.eyebrow){color:#ede7ff}
html[data-theme="dark"] .closing-cta.color-violet .eyebrow{color:#d8f56d}
html[data-theme="dark"] .approach-list h3{color:#f5f1e9}
html[data-theme="dark"] .approach-list p{color:#c0bdc3}
.resume-page,.resume-admin{--r-bg:#fffdf8;--r-text:#202333;--r-soft:#525969;--r-line:#dcdfe7;--r-tint:#f0edff;--r-accent:#4530a3;color:var(--r-text);font-family:Vazirmatn,sans-serif;font-size:16px;line-height:1.9}
html[data-theme="dark"] .resume-page{--r-bg:#191b23;--r-text:#f5f1e9;--r-soft:#c0bdc3;--r-line:#3b4052;--r-tint:#25213a;--r-accent:#c5b8ff}
.resume-page{max-width:1160px;margin:auto;padding:48px 36px 64px}
.resume-page h1,.resume-page h2,.resume-page h3{color:var(--r-text);font-family:inherit;line-height:1.65;letter-spacing:normal}
.resume-page h1{font-size:clamp(26px,3vw,40px);margin:8px 0 22px;font-weight:800}
.resume-page h2{font-size:25px;margin:8px 0 24px}
.resume-page h3{font-size:19px;margin:6px 0 12px}
.resume-page p{color:var(--r-soft);margin:0 0 18px}
.resume-page .resume-kicker,.resume-admin .resume-kicker{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--r-accent);margin:0 0 18px}
.resume-hero{border:1px solid var(--r-line);border-top:5px solid #8069ff;background:var(--r-bg);border-radius:24px;padding:40px;position:relative;overflow:hidden}
.resume-page .resume-name{font-size:19px;color:var(--r-text);font-weight:600}
.resume-summary{max-width:840px;font-size:17px;line-height:2.1}
.resume-contact,.resume-actions{display:flex;gap:14px 24px;flex-wrap:wrap;align-items:center}
.resume-contact{font-size:14px;margin:26px 0;color:var(--r-soft)}
.resume-page a{color:var(--r-accent);text-decoration:none;overflow-wrap:anywhere}
.resume-page a:hover{text-decoration:underline}
.resume-page .resume-button,.resume-admin .resume-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 20px;border:1px solid transparent;border-radius:10px;background:#4530a3;color:#fff;font:600 14px/1.6 Vazirmatn,sans-serif;cursor:pointer;text-decoration:none}
.resume-page .resume-secondary{background:var(--r-bg);border-color:var(--r-line);color:var(--r-text)}
.resume-button:disabled{opacity:.4;cursor:default}
.resume-page :focus-visible,.resume-admin :focus-visible{outline:3px solid #7b9aff;outline-offset:4px}
.resume-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;margin-top:40px}
.resume-section{padding:26px 0}
.resume-timeline{border-inline-start:2px solid var(--r-line);padding-inline-start:25px}
.resume-timeline article{position:relative;margin:0 0 34px}
.resume-timeline article:before{content:"";position:absolute;inset-inline-start:-32px;top:8px;width:12px;height:12px;background:#8069ff;border-radius:50%;border:2px solid var(--r-bg)}
.resume-period{font-size:13px;color:var(--r-accent);font-weight:600}
.resume-skills{background:var(--r-tint);border-radius:20px;padding:28px;height:fit-content}
.resume-skills article+article{border-top:1px solid var(--r-line);padding-top:18px}
.resume-work-section{border-top:1px solid var(--r-line);margin-top:24px}
.resume-works{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:30px 0}
.resume-work{border:1px solid var(--r-line);border-radius:18px;background:var(--r-bg);overflow:hidden;display:flex;flex-direction:column}
.resume-cover{width:100%;height:174px;object-fit:contain;background:var(--r-tint);display:block}
.resume-cover-text{padding:24px;font-size:44px;font-weight:800;color:var(--r-accent);display:flex;flex-direction:column;justify-content:center;box-sizing:border-box}
.resume-cover-text span{font-size:11px;line-height:1.6;direction:ltr;text-align:start;opacity:.8}
.resume-work-body{padding:22px;display:flex;flex-direction:column;flex:1}
.resume-work-body p{font-size:14px}
.resume-work-body small{font-size:11px;color:var(--r-soft);margin-top:auto;text-align:start}
.resume-title-button{font:inherit;font-weight:700;text-align:start;background:none;border:0;color:inherit;cursor:pointer;padding:0}
.resume-work-actions{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;margin-top:18px}
.resume-link{background:none;border:0;padding:0;color:var(--r-accent);font:inherit;cursor:pointer;text-decoration:underline}
.resume-pagination{display:flex;align-items:center;justify-content:center;gap:24px;font-size:14px}
.resume-github{display:block;text-align:center;margin-top:25px}
.resume-cta{margin-top:40px;padding:36px;border-radius:20px;background:#29203f;color:#fff}
.resume-page .resume-cta h2{color:#fff}.resume-page .resume-cta p{color:#e6dff3}
.resume-page .resume-cta .resume-button{background:#d8f56d;color:#171820}
.resume-dialog{width:min(900px,90vw);max-height:90vh;border:1px solid var(--r-line);border-radius:16px;padding:22px;background:var(--r-bg);color:var(--r-text)}
.resume-dialog::backdrop{background:rgba(8,10,20,.8)}
.resume-dialog video,.resume-dialog img{display:block;max-height:70vh;width:100%;object-fit:contain;background:#12131b}
.resume-dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}
.resume-dialog-head h2{font-size:19px;margin:0}.resume-dialog-head button{font:inherit;color:inherit;background:none;border:1px solid var(--r-line);border-radius:8px;cursor:pointer;padding:6px 12px}
.resume-admin{max-width:1080px;margin:30px auto;padding:30px;background:#fff;border-radius:20px}
.resume-admin h1{font-size:27px}.resume-admin h2{font-size:22px}.resume-admin label{display:block;font-size:14px;font-weight:600;margin:14px 0 5px}
.resume-admin input:not([type=checkbox]):not([type=hidden]),.resume-admin textarea{display:block;box-sizing:border-box;width:100%;border:1px solid #b8c1d1;border-radius:8px;padding:10px;font:inherit;color:#202333;background:#fff}
.resume-admin textarea{min-height:100px}.resume-admin fieldset{border:1px solid #dcdfe7;padding:20px;margin:20px 0;border-radius:14px}
.resume-admin .edit-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.resume-admin .admin-note{padding:16px;background:#eef0ff;border-radius:12px;color:#302768}
.resume-admin .validation-summary-errors{background:#fff0f0;color:#9c2333;padding:14px}
.resume-admin .admin-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:15px 0}
.resume-admin .remove-button{color:#9c2333;border:1px solid #e4b7bb;background:#fff;font:inherit;cursor:pointer;padding:6px 12px;border-radius:8px}
#works-title{scroll-margin-top:30px}
@media(max-width:1000px){.resume-works{grid-template-columns:1fr}.resume-cover{height:200px}.resume-columns{grid-template-columns:1fr}}
@media(max-width:600px){.resume-page{padding:24px 16px}.resume-hero{padding:24px}.resume-summary{font-size:16px}.resume-admin{padding:16px;margin:0}.resume-admin .edit-pair{grid-template-columns:1fr}.resume-dialog-head{align-items:flex-start}.resume-actions .resume-button{width:100%}}

.resume-page,.resume-page *,.resume-admin,.resume-admin *{box-sizing:border-box}
.resume-columns>*{min-width:0}
.resume-page p,.resume-page h1,.resume-page h2,.resume-page h3{overflow-wrap:anywhere}

/* Portrait edition: violet / warm ivory / lime, matching the portfolio. */
.resume-page .resume-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,260px);gap:34px;align-items:center;padding:34px;background:#eee8fc;border:1px solid #d4c5ef;border-top:5px solid #8069ff;border-radius:24px}
.resume-hero-copy{min-width:0}
.resume-page .resume-hero h1{font-size:clamp(25px,2.6vw,36px);line-height:1.5;max-width:24ch;margin:12px 0 20px;color:#29203f;text-wrap:balance}
.resume-page .resume-hero .resume-name{color:#4530a3;font-size:17px;margin:0 0 10px}
.resume-page .resume-hero .resume-kicker{font-size:11px;letter-spacing:.045em;color:#4530a3}
.resume-page .resume-summary{max-width:65ch;font-size:16px;line-height:1.95;text-align:start;text-wrap:pretty;overflow-wrap:break-word}
.resume-page[dir="ltr"] p{line-height:1.75}
.resume-page .resume-contact{gap:8px 15px;margin:22px 0;font-size:13px}
.resume-page .resume-contact a,.resume-page .resume-contact>span{padding:4px 0}
.resume-page .resume-actions{gap:10px}
.resume-page .resume-actions .resume-button{font-size:13px;min-height:44px;padding:10px 14px}
.resume-portrait-panel{background:#d8f56d;padding:14px;border-radius:90px 90px 18px 18px;color:#29203f;align-self:center}
.resume-portrait-frame{height:286px;width:100%;border-radius:78px 78px 10px 10px;background:#f5f2fa;overflow:hidden;display:flex;align-items:center;justify-content:center}
.resume-portrait-frame img{display:block;width:100%;height:100%;object-fit:contain;object-position:center center}
.resume-monogram{font:800 64px/1 Vazirmatn,sans-serif;color:#4530a3}
.resume-portrait-caption{display:flex;gap:8px;align-items:center;justify-content:center;font-size:12px;font-weight:700;padding-top:15px;line-height:1.7}
.resume-status-dot{width:7px;height:7px;background:#4530a3;border-radius:50%;flex:0 0 auto}
.resume-page .resume-portrait-note{color:#45482b;font-size:9px;letter-spacing:.04em;margin:9px 0 2px;text-align:center}
.resume-page .resume-skills{background:#eee8fc;border:1px solid #d4c5ef;border-top:4px solid #8069ff}
.resume-page .resume-skills h3{color:#4530a3}
.resume-page .resume-timeline article{border-inline-start:2px solid #8069ff}
.resume-page .resume-work{border-radius:16px;overflow:hidden}
.resume-page .resume-cover-text{background:#4530a3;color:#d8f56d}
.resume-page .resume-cover-text span{color:#f1eaff;font-size:12px}
.resume-page .resume-work:nth-child(2) .resume-cover-text{background:#d8f56d;color:#29203f}
.resume-page .resume-work:nth-child(2) .resume-cover-text span{color:#4530a3}
.resume-page .resume-work:nth-child(3) .resume-cover-text{background:#e8dffc;color:#4530a3}
.resume-page .resume-work:nth-child(3) .resume-cover-text span{color:#4530a3}
.resume-page .resume-section>p,.resume-page .resume-timeline p,.resume-page .resume-work p{text-align:start;text-wrap:pretty}
html[data-theme="dark"] .resume-page .resume-hero{background:#2c2047;border-color:#695397;border-top-color:#9b81ff}
html[data-theme="dark"] .resume-page .resume-hero h1{color:#fff9ed}
html[data-theme="dark"] .resume-page .resume-hero .resume-name{color:#d8f56d}
html[data-theme="dark"] .resume-page .resume-hero .resume-kicker{color:#cbbbff}
html[data-theme="dark"] .resume-page .resume-hero .resume-summary{color:#e6def1}
html[data-theme="dark"] .resume-page .resume-hero .resume-contact{color:#e6def1}
html[data-theme="dark"] .resume-page .resume-hero .resume-contact a{color:#e6def1}
html[data-theme="dark"] .resume-page .resume-hero .resume-button:not(.resume-secondary){background:#d8f56d;color:#29203f}
html[data-theme="dark"] .resume-page .resume-skills{background:#262033;border-color:#695397}
html[data-theme="dark"] .resume-page .resume-skills h3{color:#d8f56d}
@media(max-width:1100px){.resume-page .resume-hero{grid-template-columns:minmax(0,1fr) 210px;gap:24px;padding:26px}.resume-portrait-frame{height:255px}}
@media(max-width:760px){.resume-page .resume-hero{grid-template-columns:1fr;padding:24px}.resume-portrait-panel{width:min(240px,100%);justify-self:center}.resume-page .resume-hero h1{font-size:28px;max-width:none}.resume-page .resume-summary{font-size:16px}.resume-page .resume-hero .resume-name{font-size:17px}}
@media print{.resume-page .resume-hero,.resume-portrait-panel,.resume-cover-text{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Two-column PDF edition: coordinated white portrait mat on the website. */
.resume-page .resume-portrait-panel{background:#4530a3;border:1px solid #6f5bbb;padding:18px;border-radius:20px;color:#fff;box-shadow:0 12px 30px rgba(36,35,52,.12)}
.resume-page .resume-portrait-frame{height:280px;background:#f6f4fa;border:8px solid #fff;border-radius:12px;outline:2px solid #d8f56d;outline-offset:3px}
.resume-page .resume-portrait-frame img{object-fit:contain;border-radius:4px}
.resume-page .resume-portrait-caption{color:#fff;padding-top:20px}
.resume-page .resume-portrait-note{color:#eae4ff}
.resume-page .resume-status-dot{background:#d8f56d}
/* Visual fix 4: apply only to descriptive paragraphs, including existing site pages. */
html body .resume-page .resume-summary,
html body .resume-page .resume-timeline p,
html body .resume-page .resume-education p,
html body .resume-page .resume-work-body p,
html body .page-section .story-text,
html body .page-section .principle-card p:not(.eyebrow),
html body .page-section .approach-list p,
html body .page-section.closing-cta > p:not(.eyebrow) {
    text-align:justify; text-align-last:start; text-justify:inter-word;
    text-wrap:wrap; overflow-wrap:break-word; hyphens:auto;
}
