:root{--paper:#f6f3ec;--ink:#203b34;--muted:#59645d;--green:#173c35;--line:#d6d9cf;--accent:#96714c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #b47936;outline-offset:7px}a:hover{text-decoration:underline;text-underline-offset:5px}.wrap{width:min(1160px,calc(100% - 100px));margin:auto}.header{display:flex;align-items:center;justify-content:space-between;padding:25px 0;border-bottom:1px solid var(--line)}.identity{font:600 40px Georgia,serif;letter-spacing:-4px;line-height:1}.identity span{color:var(--accent)}nav{display:flex;align-items:center;gap:34px;font-size:13px}nav .nav-contact{border-left:1px solid var(--line);padding-left:34px}.nav-contact span{margin-left:12px}.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:60px;align-items:center;padding-top:76px;padding-bottom:82px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;line-height:1.6;margin:0 0 26px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:9px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(64px,7.6vw,102px);font-weight:400;line-height:.98;letter-spacing:-5px;margin:0 0 30px}.accent{color:var(--accent)}.hero-line{font-size:27px;line-height:1.35;letter-spacing:-.6px;margin:0 0 20px}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}.hero-line em{color:#68765e}.intro{max-width:400px;color:var(--muted);font-size:15px;margin-bottom:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;padding:15px 23px;background:var(--green);color:white;font-size:13px;transition:background .2s,transform .2s}.button:hover{background:#2f5146;text-decoration:none;transform:translateY(-2px)}.portrait-area{position:relative;padding:28px 0 0}.portrait-frame{background:#e3e6d9;border-radius:48% 48% 2px 2px;padding:44px 38px 54px;max-width:390px;margin:auto;border:1px solid #d2d9c8}.portrait-frame img{display:block;width:100%;height:auto;border-radius:50%;border:8px solid var(--paper)}.portrait-note{position:relative;margin:-25px 0 0 auto;max-width:255px;display:flex;gap:18px;align-items:center;background:var(--paper);border:1px solid var(--line);padding:17px 24px;box-shadow:0 8px 25px #263d3407}.portrait-note p{font-size:13px;line-height:1.5;margin:0}.small-cross{font-size:32px;color:#7b896d}.portrait-caption{text-align:center;font-size:9px;letter-spacing:2px;margin-top:28px;color:var(--muted)}.context-strip{border-block:1px solid var(--line)}.context-inner{display:flex;justify-content:space-between;padding-block:22px;font-size:12px;color:var(--muted)}.section{padding-top:96px;padding-bottom:96px}h2{font:400 clamp(34px,4vw,49px)/1.13 Georgia,serif;letter-spacing:-1.8px;margin:0}h2 em{color:#788368}h3,h4,p{margin-top:0}p{color:var(--muted)}.about{display:grid;grid-template-columns:1fr 1.18fr;gap:48px 90px}.lead{font-size:21px;color:var(--ink);line-height:1.55}.about-copy>p:not(.lead),.project-copy>p:not(.lead):not(.eyebrow){font-size:15px}.strengths{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:10px}.strengths article{border-top:1px solid var(--line);padding-top:21px}.number{font-size:11px;color:#7c6b50}.strengths h3{font-size:18px;letter-spacing:-.4px;margin:17px 0 10px}.strengths p{font-size:14px;margin:0}.experience-section{background:#eaede5;border-block:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px}.section-heading>p{font-size:14px;margin:0 0 5px}.role{display:grid;grid-template-columns:1fr 2fr;gap:60px;border-top:1px solid #cbd2c5;padding:36px 0}.role:last-child{padding-bottom:0}.role-meta{font-size:13px}.role-meta p{color:var(--ink);margin:10px 0 2px}.role-meta>span:not(.current){font-size:12px;color:var(--muted)}.current{font-size:9px;letter-spacing:1.4px;padding:5px 8px;background:#d8dfce;color:#365238}.role-main h3{font:400 31px/1.2 Georgia,serif;letter-spacing:-.6px;margin:0 0 8px}.role-title{font-size:13px;color:var(--ink);margin-bottom:18px}.role-main>p:not(.role-title),.role-main li{font-size:14px}.role-main ul{padding-left:17px;color:var(--muted);margin-bottom:0}.role-main li{padding-left:6px;margin:10px 0}.role-main li::marker{color:#76876a}.earlier .role-main>p:last-child{margin-bottom:0}.exploring{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.project-copy h2{margin-bottom:28px}.project-copy .lead{margin-bottom:15px}.stack{padding:32px;background:var(--green);color:#f5f3e9}.stack-header{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.5px;color:#c2ccba;margin-bottom:25px}.stack h3{font:400 29px/1.25 Georgia,serif;margin-bottom:30px}.stack-layer,.stack-data{border:1px solid #657c6d;padding:15px 18px}.stack-layer{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack span{font-size:8px;letter-spacing:1.1px;color:#cad5c5}.stack strong{font-size:12px;font-weight:400}.stack-connector{width:1px;height:19px;background:#819780;margin:auto}.stack-data>div{display:flex;justify-content:space-between;margin-top:11px;gap:8px}.background{border-top:1px solid var(--line);padding:34px 0 85px}.background-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:50px}.background h3{font-size:11px;font-weight:400;color:var(--muted);margin:0 0 17px}.background h4{font-size:14px;line-height:1.5;margin-bottom:10px}.background p{font-size:12px}.background .fine{font-size:11px}.text-link{font-size:12px;border-bottom:1px solid #91a088;padding-bottom:4px}.text-link span{margin-left:10px}.contact{background:var(--green);padding:68px 0;color:var(--paper)}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.contact .eyebrow{color:#c3ceba;margin-bottom:20px}.contact h2{font-size:44px}.contact h2 em{color:#c3ceba}.contact p:not(.eyebrow){font-size:13px;color:#c3ceba;margin:23px 0 0}.light{background:var(--paper);color:var(--green);white-space:nowrap}.light:hover{background:#e0e6d5}.footer{display:flex;justify-content:space-between;padding-block:25px;font-size:11px;color:var(--muted)}.footer-dot{margin:0 8px}.skip{position:absolute;top:-100px;left:20px;padding:12px;background:white;z-index:3}.skip:focus{top:10px}section[id]{scroll-margin-top:25px}
@media(min-width:1600px){.hero{padding-block:100px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero{gap:30px}h1{font-size:74px}.portrait-frame{padding:40px 25px}.about{gap:45px}.exploring{gap:45px}.role{gap:35px}.background-grid{gap:30px}.hero-line{font-size:24px}.contact h2{font-size:38px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{padding:20px 0}.identity{font-size:34px}nav{gap:20px;font-size:11px}nav .nav-contact{padding-left:0;border:0}nav a[href="#exploring"]{display:none}.nav-contact span{margin-left:4px}.hero{grid-template-columns:1fr;padding-top:43px;padding-bottom:42px;gap:34px}.eyebrow{font-size:9px;letter-spacing:1.5px;margin-bottom:22px}h1{font-size:clamp(64px,14vw,86px);letter-spacing:-3.6px;margin-bottom:25px}.hero-line{font-size:25px}.intro{max-width:440px}.portrait-area{max-width:330px;width:100%;margin:auto;padding-top:5px}.portrait-frame{max-width:290px;padding:28px 24px 38px}.portrait-note{max-width:225px;padding:12px 18px}.portrait-caption{font-size:8px;margin-bottom:0}.context-inner{flex-wrap:wrap;justify-content:center;gap:7px 25px;font-size:10px;padding-block:15px}.section{padding-block:60px}.about{grid-template-columns:1fr;gap:28px}h2{font-size:38px}.lead{font-size:20px}.strengths{grid-template-columns:1fr;gap:23px;margin-top:5px}.strengths article{display:grid;grid-template-columns:30px 1fr;gap:4px 10px;padding-top:18px}.strengths h3{margin:0}.strengths p{grid-column:2}.number{padding-top:4px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:23px}.role{grid-template-columns:1fr;gap:22px;padding-block:28px}.role-meta p{display:inline-block;margin:0 14px 0 0}.current{display:block;width:fit-content;margin-bottom:10px}.role-main h3{font-size:29px}.exploring{grid-template-columns:1fr;gap:28px}.stack{padding:26px}.background{padding-bottom:55px}.background-grid{grid-template-columns:1fr;gap:28px}.background article+article{border-top:1px solid var(--line);padding-top:24px}.background h3{margin-bottom:10px}.background p{font-size:13px}.background .fine{font-size:12px}.contact{padding:50px 0}.contact-inner{display:block}.contact h2{font-size:37px}.contact .button{margin-top:28px}.footer{font-size:10px;gap:20px}.footer-dot{margin:0 4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}
@media print{body{background:white;font-size:11px}.header,.button,.portrait-area,.context-strip,.contact,.footer{display:none}.wrap{width:100%}.hero,.section{padding:20px 0}.hero,.about,.exploring{display:block}h1{font-size:45px}h2{font-size:28px}.strengths{display:flex}.experience-section{background:white}.role{break-inside:avoid}.stack{display:none}a{color:inherit}.background{padding-bottom:0}}

/* Muted plum and warm greige. Colour-only alternative to the soft sage proposal. */
@media screen {
  :root { --paper:#dfd8d3; --ink:#41333e; --muted:#62565e; --green:#503c4d; --line:#c3b7bd; --accent:#886674; }
  a:focus-visible { outline-color:#825169; }
  .hero-line em, h2 em { color:#765868; }
  .portrait-frame { background:#ccbec7; border-color:#bdabb7; }
  .portrait-frame img { filter:brightness(.92); }
  .portrait-note { box-shadow:0 8px 25px #41333e07; }
  .small-cross { color:#796374; }
  .experience-section { background:#d3c8ce; }
  .role { border-top-color:#bcaab6; }
  .current { background:#c1acbb; color:#493345; }
  .number { color:#765464; }
  .role-main li::marker { color:#775b70; }
  .button { color:#e8deda; }
  .button:hover { background:#634b5e; }
  .stack { color:#e8deda; }
  .stack-header, .stack span { color:#d7c7d0; }
  .stack-layer, .stack-data { border-color:#947c8d; }
  .stack-connector { background:#a08a99; }
  .text-link { border-bottom-color:#a18a99; }
  .contact .eyebrow, .contact h2 em, .contact p:not(.eyebrow) { color:#d7c7d0; }
  .light { color:var(--green); }
  .light:hover { background:#d0c2cb; }
  .skip { background:var(--paper); }
}

/* Company context, separated from role responsibilities without italics. */
.role-main > p.company-description {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  font-style: normal;
  line-height: 1.65;
  color: var(--muted);
  background: rgba(80, 60, 77, 0.055);
  border: 0;
  border-radius: 6px;
  padding: 14px 18px;
  margin: 0 0 24px;
  width: 100%;
  max-width: none;
}
/* Version 2: borderless editorial portrait. */
@media screen {
  .portrait-area { padding:0; width:100%; max-width:370px; margin-inline:auto; }
  .portrait-frame { padding:0; max-width:none; border:0; border-radius:18px; background:var(--paper); overflow:hidden; }
  .portrait-frame img { display:block; width:100%; height:auto; border:0; border-radius:0; filter:none; mix-blend-mode:multiply; }
  .portrait-note { position:static; margin:22px auto 0; padding:0; max-width:none; justify-content:center; gap:14px; background:none; border:0; box-shadow:none; }
  .portrait-caption { margin-top:20px; }
}
@media screen and (max-width:700px) {
  .portrait-area { max-width:300px; }
  .portrait-frame { max-width:none; }
}

/* Optional hobbies section; safe to leave here if the HTML section is removed. */
.outside-work {
  display: grid;
  grid-template-columns: 1fr 1.18fr;
  gap: 40px 90px;
  border-top: 1px solid var(--line);
  padding-block: 44px 56px;
  align-items: start;
}
.outside-work .eyebrow { margin-bottom: 14px; }
.outside-work h2 { font-size: 32px; letter-spacing: -1px; }
.outside-work-copy p { margin: 0; font-size: 15px; line-height: 1.8; }
@media (max-width: 1000px) { .outside-work { column-gap: 45px; } }
@media (max-width: 700px) {
  .outside-work { grid-template-columns: 1fr; gap: 22px; padding-block: 34px 44px; }
}

@media screen { :root { color-scheme:light; } }

@media screen {
  html[data-theme="dark"] {
    color-scheme: dark;
    --paper: #211e23;
    --ink: #e8dfdc;
    --muted: #beb1bb;
    --green: #c5a5b7;
    --line: #49404a;
    --accent: #c5a5b7;
  }
  html[data-theme="dark"] body { background:var(--paper); color:var(--ink); }
  html[data-theme="dark"] a:focus-visible { outline-color:#dfb9d0; }
  html[data-theme="dark"] .hero-line { color:var(--ink); }
  html[data-theme="dark"] .hero-line em, html[data-theme="dark"] h2 em, html[data-theme="dark"] .small-cross, html[data-theme="dark"] .number { color:#c5a5b7; }
  html[data-theme="dark"] .context-strip { background:#252127; }
  html[data-theme="dark"] .experience-section { background:#2a242c; }
  html[data-theme="dark"] .role { border-top-color:#4a3d49; }
  html[data-theme="dark"] .current { background:#493748; color:#e2cad9; }
  html[data-theme="dark"] .role-main li::marker { color:#c5a5b7; }
  html[data-theme="dark"] .role-main > p.company-description { background:#362d37; color:#d0c1cc; }
  html[data-theme="dark"] .button, html[data-theme="dark"] .light { background:#c5a5b7; color:#29212a; }
  html[data-theme="dark"] .button:hover, html[data-theme="dark"] .light:hover { background:#d8bbcb; color:#29212a; }
  html[data-theme="dark"] .portrait-frame { background:#c7bbbf; isolation:isolate; }
  html[data-theme="dark"] .portrait-frame img { mix-blend-mode:multiply; filter:none; }
  html[data-theme="dark"] .portrait-note { background:none; box-shadow:none; }
  html[data-theme="dark"] .stack { background:#322936; color:var(--ink); }
  html[data-theme="dark"] .stack-header, html[data-theme="dark"] .stack span { color:#cbb8c8; }
  html[data-theme="dark"] .stack-layer, html[data-theme="dark"] .stack-data { border-color:#685469; }
  html[data-theme="dark"] .stack-connector { background:#8b7189; }
  html[data-theme="dark"] .text-link { border-bottom-color:#a98b9e; }
  html[data-theme="dark"] .contact { background:#382c3a; color:var(--ink); }
  html[data-theme="dark"] .contact .eyebrow, html[data-theme="dark"] .contact h2 em, html[data-theme="dark"] .contact p:not(.eyebrow) { color:#d0bdce; }
  html[data-theme="dark"] .skip { background:#e8dfdc; color:#211e23; }
}

/* Compact, keyboard-accessible colour preference control. */
.header-actions { display:flex; align-items:center; gap:26px; }
.theme-toggle { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:24px; background:transparent; color:var(--ink); font:12px Arial,Helvetica,sans-serif; cursor:pointer; white-space:nowrap; }
.theme-toggle[hidden] { display:none; }
.theme-toggle:hover { background:rgba(136,102,116,.12); }
.theme-toggle:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.theme-toggle svg { width:16px; height:16px; }
.theme-toggle .sun { display:none; }
html[data-theme="dark"] .theme-toggle .sun { display:block; }
html[data-theme="dark"] .theme-toggle .moon { display:none; }
@media (max-width:1000px) { .header-actions { gap:18px; } }
@media (max-width:700px) {
  .header { flex-wrap:wrap; gap:16px; }
  .header-actions { display:contents; }
  .header nav { order:3; flex-basis:100%; justify-content:space-between; gap:12px; }
  .theme-toggle { margin-left:auto; }
}
@media print { .theme-toggle { display:none; } }

/* Pale dusty lilac company context in light mode. */
@media screen {
  html[data-theme="light"] .role-main > p.company-description {
    background: #dfd5dc;
    color: var(--muted);
    border-radius: 6px;
    border: 0;
    padding: 14px 18px;
    margin-bottom: 20px;
  }
}

.portrait-note svg.small-cross { display:block; width:32px; height:32px; flex:0 0 32px; }

.link-arrow { display:inline-block; width:18px; height:18px; flex:0 0 18px; vertical-align:middle; }
.nav-contact .link-arrow { margin-left:12px; }
@media (max-width:700px) { .nav-contact .link-arrow { margin-left:4px; } }
.button .linkedin-icon { display:block; width:20px; height:20px; flex:0 0 20px; }
