:root { --ink:#142331; --muted:#66737d; --paper:#fffefa; --line:#dfe5e3; --accent:#cb6a46; --sidebar:#173541; }
* { box-sizing:border-box; }
body { margin:0; background:#e8ece9; color:var(--ink); font-family:"DM Sans", sans-serif; font-size:15px; line-height:1.62; }
.resume-container { width:min(1120px, calc(100% - 48px)); margin:40px auto; display:grid; grid-template-columns:310px minmax(0, 1fr); background:var(--paper); box-shadow:0 20px 70px rgba(18,39,45,.14); }
.sidebar { background:var(--sidebar); color:#eff5f2; padding:52px 38px; }
.profile-photo { width:150px; height:150px; object-fit:cover; border-radius:50%; border:5px solid rgba(255,255,255,.14); display:block; margin:0 auto 32px; }
.eyebrow, .section-kicker { margin:0 0 7px; text-transform:uppercase; font-size:10px; font-weight:700; letter-spacing:.18em; }
.eyebrow { color:#a8c4c5; }
h1, h2, h3, p { margin-top:0; }
h1 { margin-bottom:16px; color:#fff; font-family:"Playfair Display", serif; font-size:48px; line-height:.98; letter-spacing:-.04em; }
.role { margin:0; color:#bfd1d0; font-size:14px; line-height:1.5; }
.sidebar-section { margin-top:44px; }
.sidebar h2 { color:#9fcbca; margin-bottom:14px; text-transform:uppercase; letter-spacing:.15em; font-size:10px; }
address { display:grid; gap:12px; font-style:normal; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }.contact-item { display:flex; align-items:flex-start; gap:9px; }.contact-icon { flex:none; width:15px; height:15px; margin-top:2px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; color:#9fcbca; }.contact-icon.fill-icon { fill:currentColor; stroke:none; }
a { color:inherit; text-decoration-color:rgba(203,106,70,.65); text-underline-offset:3px; }
address a { text-decoration:none; } address a:hover { color:#fff; }
.language-list { list-style:none; padding:0; margin:0; }
.skill-groups { display:grid; gap:16px; }.skill-groups > div { border-left:2px solid rgba(159,203,202,.45); padding-left:11px; }.skill-groups p { margin:0; color:#d8e4e1; font-size:12px; line-height:1.55; }.skill-groups .skill-category { color:#9fcbca; font-size:10px; font-weight:700; letter-spacing:.12em; margin-bottom:3px; text-transform:uppercase; }
.language-list { display:grid; gap:10px; font-size:13px; }.language-list li { display:flex; justify-content:space-between; gap:8px; }.language-list small { color:#a8c4c5; font-size:11px; text-align:right; }
.content { padding:46px 56px 54px; }
.intro { max-width:650px; margin-bottom:54px; }.section-kicker { color:var(--accent); }.intro h2, .section-heading h2 { font-family:"Playfair Display", serif; letter-spacing:-.025em; }.intro h2 { font-size:31px; line-height:1.12; margin-bottom:17px; }.intro p:last-child { color:#46545d; }
section { margin-bottom:52px; }.section-heading { margin-bottom:24px; }.section-heading h2 { margin:0; font-size:25px; line-height:1.15; }
.experience-list { display:grid; gap:24px; }.experience-item { padding:0; }.experience-item h3, .compact-entry h3 { margin-bottom:2px; font-size:16px; line-height:1.35; }.organisation { color:var(--accent); margin-bottom:9px; font-size:13px; font-weight:600; }.experience-description { color:#4e5a61; font-size:13px; line-height:1.55; margin-bottom:0; }.experience-item ul { margin:0; padding-left:17px; color:#4e5a61; }.experience-item li + li { margin-top:4px; }
.education-section { border-top:1px solid var(--line); padding-top:46px; }.content-grid { display:grid; grid-template-columns:1fr 1fr; gap:43px; border-top:1px solid var(--line); padding-top:46px; }.compact-entry { margin-bottom:24px; }.compact-entry p:last-child { color:#4e5a61; font-size:13px; line-height:1.55; margin-bottom:0; }.compact-entry .organisation { margin-bottom:6px; }
.education-steps { list-style:none; margin:0; padding:0; }.education-step { position:relative; display:grid; grid-template-columns:22px 1fr; gap:13px; padding:0 0 25px; }.education-step:last-child { padding-bottom:0; }.education-step:not(:last-child)::after { content:""; position:absolute; top:14px; bottom:0; left:5px; width:1px; background:var(--line); }.step-point { width:11px; height:11px; margin-top:5px; border:2px solid var(--accent); border-radius:50%; background:var(--paper); z-index:1; }.education-step.current .step-point { background:var(--accent); box-shadow:0 0 0 4px #f9e9e2; }.step-date { color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.06em; margin:0 0 1px; text-transform:uppercase; }.education-step h3 { margin-bottom:1px; font-size:15px; line-height:1.35; }.education-step .organisation { margin-bottom:5px; }.education-step div > p:last-child { color:#4e5a61; font-size:13px; line-height:1.55; margin-bottom:0; }
@media (max-width:780px) { .resume-container { width:100%; margin:0; grid-template-columns:1fr; }.sidebar { padding:38px 30px; }.content { padding:38px 30px 46px; }.content-grid { grid-template-columns:1fr; gap:15px; }.profile-photo { width:122px; height:122px; margin:0 auto 28px; }.sidebar-section { margin-top:32px; } }
@media (max-width:440px) { .content-header { display:block; }.availability { margin-top:7px; }.intro h2 { font-size:28px; } }
@page { size:A4; margin:0; }
@media print { body { background:#fff; font-size:11px; line-height:1.45; -webkit-print-color-adjust:exact; print-color-adjust:exact; }.resume-container { width:100%; min-height:297mm; margin:0; box-shadow:none; grid-template-columns:27% 73%; }.sidebar { padding:32px 26px; }.content { padding:31px 38px; }.profile-photo { width:112px; height:112px; margin:0 auto 22px; } h1 { font-size:35px; }.sidebar-section { margin-top:25px; }.intro { margin-bottom:29px; }.intro h2 { font-size:23px; margin-bottom:10px; } section { margin-bottom:28px; }.section-heading { margin-bottom:14px; }.section-heading h2 { font-size:19px; }.experience-list { gap:14px; }.experience-item h3, .compact-entry h3 { font-size:13px; }.experience-item ul { padding-left:14px; }.education-section, .content-grid { padding-top:28px; }.content-grid { gap:25px; }.compact-entry { margin-bottom:14px; }.contact-section { margin-top:25px; }.education-step { grid-template-columns:17px 1fr; gap:8px; padding-bottom:16px; }.step-point { width:9px; height:9px; margin-top:3px; }.education-step:not(:last-child)::after { top:12px; left:4px; }.step-date { font-size:9px; }.education-step h3 { font-size:12px; }.education-step div > p:last-child { font-size:11px; } }
