
@page{size:A4;margin:0}
:root{--ink:#3E484D;--muted:#5B5B5B;--accent:#5B5B5B;--bg:#F7F7F7;--edge:#DFDFDF;--green:#C8C8C8}
*{box-sizing:border-box}body{margin:0;background:#F7F7F7;color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
a{color:inherit;text-decoration:none;border-bottom:1px solid #C8C8C8}.page{width:210mm;height:297mm;margin:15px auto;padding:14mm 17mm 13mm;background:white;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000018;overflow:hidden}.topline{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--edge);padding-bottom:12px;margin-bottom:25px}.topline span{font-size:9px;font-weight:800;letter-spacing:.15em}.topline a{font-size:9px;font-weight:800;color:var(--accent);border-bottom:0}.name{font-size:35px;line-height:.98;letter-spacing:-.045em;font-weight:750;margin:0 0 12px}.role{font-size:13px;letter-spacing:.1em;color:var(--accent);font-weight:800;text-transform:uppercase;margin-bottom:13px}.contacts{font-size:10px;color:#5B5B5B;line-height:1.6}.contacts a{color:#3E484D}.lead{font-size:11px;line-height:1.58;color:#3E484D;margin:22px 0 19px;max-width:660px}.ribbon{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px;border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);padding:13px 0;margin-bottom:20px}.ribbon>div{border-left:2px solid #C8C8C8;padding-left:10px}.ribbon span{display:block;font-size:8px;color:var(--muted);letter-spacing:.11em;font-weight:750;text-transform:uppercase}.ribbon strong{font-size:11px;line-height:1.3}.heading{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin:15px 0 11px;border-bottom:1px solid var(--edge);padding-bottom:6px}.heading h2{font-size:10px;letter-spacing:.15em;text-transform:uppercase;margin:0}.heading small{font-size:8px;color:var(--accent);font-weight:800}.case{padding:9px 0 11px;border-bottom:1px solid #EEEEEE}.case .line{display:flex;justify-content:space-between;gap:15px;align-items:baseline}.case h3{font-size:13px;line-height:1.2;margin:0 0 4px}.case h3 a{color:var(--ink);border-bottom:1px solid #777777}.case .meta{font-size:9px;color:var(--muted);white-space:nowrap}.case p{font-size:10px;line-height:1.49;color:#3E484D;margin:5px 0 0}.link-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:7px}.link-row a{font-size:8.5px;letter-spacing:.01em;color:#3E484D;font-weight:700;border-bottom:1px solid #C8C8C8}.double{display:grid;grid-template-columns:1fr 1fr;gap:18px}.experience{display:grid;grid-template-columns:1fr;gap:0}.job{padding:10px 0;border-bottom:1px solid #EEEEEE}.job .line{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.job h3{font-size:11px;margin:0}.job .meta{font-size:9px;color:var(--muted)}.job p{font-size:9.5px;line-height:1.48;color:#3E484D;margin:3px 0 0}.study{padding:8px 0;border-bottom:1px solid #EEEEEE}.study b{font-size:11px}.study p{margin:3px 0 0;font-size:9.5px;color:#3E484D;line-height:1.5}.skills p{font-size:9.8px;color:#3E484D;line-height:1.5;margin:6px 0}.skills b{color:#3E484D}.bottom{margin-top:auto;display:flex;justify-content:space-between;border-top:1px solid var(--edge);padding-top:8px;font-size:8px;color:#666666}.bottom .p{color:var(--accent);font-weight:700}.kicker{font-size:8px;color:var(--accent);font-weight:800;letter-spacing:.08em}.explain{font-size:9px;color:#5B5B5B}.page .minor-link{font-size:9px;color:var(--accent)}
@media screen and (max-width:850px){.page{width:100%;height:auto;min-height:0;margin:0 0 12px;padding:22px 25px;box-shadow:none}.ribbon{display:block}.ribbon>div{margin:7px 0}.case .line,.job .line{display:block}.case .meta,.job .meta{white-space:normal}.double{grid-template-columns:1fr}.topline{margin-bottom:20px}}
@media print{body{background:white}.page{page-break-after:always;break-after:page;box-shadow:none;margin:0}.page:last-of-type{page-break-after:auto;break-after:auto}}
/* Print-readability pass: 9–10pt body size, not 7pt microtype */
.lead{font-size:12.2px;line-height:1.55}
.contacts{font-size:11px}
.case{padding:11px 0 12px}
.case h3{font-size:14.2px}
.case p{font-size:11.7px;line-height:1.48}
.case .meta{font-size:10px}
.link-row a{font-size:10px}
.job{padding:11px 0}
.job h3{font-size:12.5px}
.job .meta{font-size:10px}
.job p{font-size:11.2px;line-height:1.42}
.study b{font-size:12px}
.study p{font-size:11px;line-height:1.45}
.skills p{font-size:11.1px;line-height:1.45}
.heading h2{font-size:11px}
.heading small{font-size:9px}

/* v6 website-linked review: do not crop newly added complete case content. */
@media screen{.page{height:auto;min-height:297mm;overflow:visible}}
@media print{.page{height:auto;min-height:297mm;overflow:visible;break-after:page}}

/* Interactive CV v7 — only three chromatic brand colors plus neutral grayscale.
Slate #3E484D, Reddish-Gray #3A3237, Gold Mid #FFC46B.
Original project imagery retains its actual colors. */
:root { --ink:#3E484D;--ink2:#3A3237;--mid:#575757;--muted:#575757;--cream:#F7F7F7;--paper:#FFFFFF;--bg:#F7F7F7;--line:#D7D7D7;--border:#D7D7D7;--edge:#D7D7D7;--rust:#3A3237;--accent:#FFC46B;--lime:#FFC46B;--blue:#3E484D;--pill:#EEEEEE; }
html{scroll-behavior:smooth;scroll-padding-top:85px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #3A3237;outline-offset:3px;box-shadow:0 0 0 6px #FFC46B}
::selection{background:#FFC46B;color:#3A3237}

:root{--ink:#3E484D;--muted:#575757;--accent:#3A3237;--bg:#F7F7F7;--edge:#D7D7D7;--green:#FFC46B}
body{background:#F0F0F0;color:#3E484D}
.page{height:auto;min-height:297mm;overflow:visible;box-shadow:0 9px 28px rgba(0,0,0,.12);border-top:5px solid #FFC46B}
h1.name{font-size:35px;line-height:1.02;margin:0 0 12px;font-weight:750}
.role,.topline a,.heading small,.bottom .p{color:#3A3237}
.ribbon>div{border-left:3px solid #FFC46B}
a{border-bottom:1px solid #FFC46B;color:inherit}
.case h3 a,.case a,.link-row a{border-bottom-color:#FFC46B;color:#3A3237}
.link-row a:hover{background:#FFC46B}
.case p{color:#3E484D}
/* Printed CV: do not force artificial two-page break or hide overflow. Natural pagination protects content. */
@page{size:A4;margin:14mm 14mm}
@media print{
 html,body{margin:0;background:#FFFFFF}
 .page{width:auto;height:auto;min-height:0;display:block;overflow:visible;margin:0;padding:0;border-top:0;box-shadow:none;page-break-after:auto;break-after:auto}
 .page + .page{margin-top:18px;border-top:2px solid #FFC46B;padding-top:17px}
 .topline{margin-bottom:15px}.case{break-inside:avoid;page-break-inside:avoid}
 .job,.study,.heading,.ribbon{break-inside:avoid;page-break-inside:avoid}
 .bottom{margin-top:20px}
 .lead{font-size:13.3px}.case p{font-size:13.3px;line-height:1.48}.job p,.study p,.skills p{font-size:12.8px;line-height:1.45}
 .link-row a{font-size:11.7px}.case .meta,.job .meta{font-size:11px}
 .contacts{font-size:12px}
}

/* Browser QA v7.1: retain each printed section heading with its first following item. */
@media print{.heading{break-after:avoid-page!important;page-break-after:avoid!important}}

/* Browser-reviewed print distribution: retain full text across two readable A4 pages. */
@media print {
@page{size:A4;margin:10mm 11mm}
.page{break-after:page;page-break-after:always;}
.page:last-child{break-after:auto;page-break-after:auto}
.page + .page{margin-top:0;border-top:0;padding-top:0}
.topline{margin-bottom:9px;padding-bottom:6px}
.name{margin:0 0 8px; font-size:31px}
.role{margin-bottom:8px;font-size:12px}
.contacts{font-size:11.2px;line-height:1.36}
.lead{font-size:12.1px;line-height:1.38;margin:11px 0}
.ribbon{margin-bottom:11px;padding:7px 0}
.ribbon span{font-size:7.7px}.ribbon strong{font-size:10.3px}
.heading{margin:9px 0 6px;padding-bottom:4px}
.heading h2{font-size:10.5px}.heading small{font-size:8px}
.case{padding:6px 0 7px}.case h3{font-size:12.8px}
.case p{font-size:11.4px;line-height:1.32;margin:3px 0}
.case .meta{font-size:8.8px}
.link-row{margin-top:4px;gap:8px}.link-row a{font-size:9.8px}
.job{padding:6px 0}.job h3{font-size:11.4px}.job p{font-size:10.9px;line-height:1.32}
.job .meta{font-size:9.3px}
.study{padding:5px 0}.study b{font-size:11.2px}.study p{font-size:10.8px;line-height:1.32}
.skills p{font-size:10.8px;line-height:1.34;margin:4px 0}
.bottom{margin-top:10px;padding-top:6px}
}
@media print{.case p{font-size:12.1px}.job p{font-size:11.7px}.skills p{font-size:11.4px}.lead{font-size:12.6px}}

@media print{.page:nth-of-type(2) .job{padding:11px 0}.page:nth-of-type(2) .job p{font-size:12.6px;line-height:1.45}.page:nth-of-type(2) .study{padding:9px 0}.page:nth-of-type(2) .study p,.page:nth-of-type(2) .skills p{font-size:12.3px;line-height:1.45}.page:nth-of-type(2) .heading{margin:15px 0 10px}}