:root{--ink:#292942;--muted:#6f789a;--purple:#8056ff;--blue:#3859ff;--green:#1dad54;--paper:#f5f7fb;--card:#fff;--line:#dfe4ef;--profile-photo:url("assets/profile-placeholder.svg")}
*{box-sizing:border-box}html{background:#dfe3eb}body{margin:0;color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}.toolbar{position:sticky;top:0;z-index:5;width:210mm;margin:12px auto 8px;padding:10px 14px;border-radius:12px;background:#27283f;color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 30px #20223b33;font-size:13px}.toolbar button{border:0;border-radius:8px;padding:9px 14px;background:var(--purple);color:white;font-weight:700;cursor:pointer}.resume{width:210mm;margin:auto}.page{width:210mm;height:297mm;display:grid;grid-template-columns:70mm 140mm;background:var(--paper);overflow:hidden;page-break-after:always;position:relative}.page:last-child{page-break-after:auto}.sidebar{background:#fff;padding:0 17mm 10mm 12mm;position:relative}.portrait{height:37mm;margin:0 -17mm 10mm -12mm;background:linear-gradient(115deg,#eef0f5 8%,transparent 54%),var(--profile-photo) center/cover no-repeat;filter:grayscale(1);mix-blend-mode:multiply}.identity h1{margin:0;font-size:21px;letter-spacing:-.8px}.identity p{margin:5px 0 0;color:var(--purple);font-size:14px}.side-rule{border-top:1px solid var(--line);margin:10mm 0 7mm}.side-section{padding:6mm 0;border-bottom:1px solid var(--line)}.side-section:first-child{padding-top:12mm}.side-section h2{font-size:8px;color:var(--muted);font-weight:500;margin:0 0 5mm;text-transform:none}.side-section p,.side-section a,.side-section>div{display:flex;align-items:flex-start;gap:4mm;margin:0 0 5mm;color:var(--ink);font-size:9px;text-decoration:none}.side-section small{display:block;color:var(--muted);font-size:7.5px;margin-bottom:2px;font-weight:400}.contact i{display:grid;place-items:center;flex:0 0 7mm;height:7mm;border-radius:50%;background:#e9ecf3;color:#8590ac;font-style:normal}.contact a:first-child i{background:#8b68f3;color:#fff}.contact a{color:var(--blue)}.side-section b{font-weight:500}.tools p{display:grid;grid-template-columns:9mm 1fr;column-gap:3mm}.tools em{grid-row:1/3;width:8mm;height:8mm;border-radius:5px;display:grid;place-items:center;background:#23243a;color:white;font-style:normal;font-size:7px;font-weight:800}.tools small{grid-column:2}.content{padding:8mm 10mm 8mm 9mm}.timeline{border-left:1px solid var(--line)}.section{position:relative;margin-bottom:8mm}.section:before{content:"";position:absolute;left:-13.2mm;top:1mm;width:6mm;height:6mm;border:3mm solid white;border-radius:50%;background:var(--purple);box-shadow:0 3px 12px #3c416222}.section>h2{font-size:17px;margin:0 0 7mm;letter-spacing:-.4px}.panel,.job,.education-grid article,.project-grid article,blockquote{background:var(--card);border-radius:7px}.prose{padding:5mm 6mm;color:var(--muted);font-size:8.4px;line-height:1.38}.prose p{margin:0 0 3mm}.prose p:last-child{margin:0}.job{display:grid;grid-template-columns:10mm 1fr 25mm;gap:4mm;padding:4mm 5mm;margin-bottom:2mm;min-height:24mm}.job.featured{min-height:31mm}.logo{width:9mm;height:9mm;border-radius:6px;display:grid;place-items:center;color:white;font-size:6px;font-weight:800}.orange{background:#ff712b}.navy{background:#006688}.magenta{background:#c21762}.red{background:#d61c2f}.yellow{background:#e8b500;color:#151515}.ink{background:#111}.cyan{background:#02a2b8}.bronze{background:#926b49}.job h3{font-size:10.2px;margin:0 0 1mm}.job h3 small{font-size:6.5px;font-weight:400}.job a{font-size:8.5px;color:var(--blue);text-decoration:none}.job ul{margin:3mm 0 0;padding-left:4mm;color:var(--muted);font-size:7.4px;line-height:1.25}.job p{font-size:7.2px;color:var(--muted);margin:2mm 0 0;line-height:1.3}.meta{text-align:right;font-size:7px}.meta small{display:block;color:var(--muted);margin-top:2mm;font-size:6.2px}.job.compact{min-height:16mm;align-items:start;padding-top:3mm;padding-bottom:3mm}.education-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2mm}.education-grid article{padding:4mm;min-height:28mm;font-size:7px}.education-grid small,.education-grid span{display:block;color:var(--muted)}.education-grid b{display:block;margin:1mm 0 7mm}.second-sidebar{padding-top:8mm}.second-sidebar .side-section{padding:10mm 0}.page-two .content{padding-top:8mm}.skill-board{display:grid;gap:2mm}.skill-row{display:grid;grid-template-columns:24mm repeat(4,1fr);gap:1px}.skill-row>*{min-height:16mm;background:white;display:grid;place-items:center;text-align:center;padding:2mm;font-size:8.5px;color:#813bff}.skill-row strong{color:var(--ink);justify-items:start}.skill-row.blue span{color:#315bff}.skill-row.green span{color:#17a84f}.skill-row.pink span{color:#d02d84}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm}.project-grid article{padding:5mm;min-height:48mm;position:relative}.project-grid article>span{color:#c9cbe0;font-size:18px;font-weight:800}.project-grid h3{font-size:10px;margin:4mm 0 2mm}.project-grid p{font-size:7.3px;line-height:1.4;color:var(--muted)}.project-grid b{font-size:6.6px;color:var(--purple)}.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:3mm}.quote-grid blockquote{margin:0;padding:5mm 6mm;font-size:8px;line-height:1.45;color:var(--muted);min-height:28mm}.quote-grid blockquote:last-child{grid-column:1/2}.quote-grid cite{display:block;margin-top:4mm;color:var(--ink);font-style:normal;font-weight:600}.page-two .additional{margin-top:4mm}
.portrait{background-color:#eef0f5;background-image:linear-gradient(115deg,#eef0f5 8%,transparent 54%),var(--profile-photo);background-position:center 10%;background-size:cover;background-repeat:no-repeat}
.company-logo{background:#fff;border:1px solid #e8eaf1;overflow:hidden}.company-logo img{display:block;width:100%;height:100%;object-fit:contain}.company-logo .logo-fallback{display:grid;width:100%;height:100%;place-items:center;background:var(--surface,#fff);color:var(--text-primary,#222);font:700 6px/1 "Space Mono",monospace;letter-spacing:.03em}
.page-number{position:absolute;right:10mm;bottom:5mm;z-index:3;color:#929ab4;font-size:6.5px;letter-spacing:.04em}.prose .lead{color:var(--ink);font-size:9.3px;font-weight:700;line-height:1.35;margin-bottom:2.5mm}.quick-facts{display:grid;grid-template-columns:1fr 1fr;gap:1.5mm;margin-top:3mm}.quick-facts span{padding:1.6mm 2mm;border-radius:4px;background:#f0ecff;color:#6440d9;font-size:6.8px;font-weight:600}.job h3{line-height:1.2}.job-main>a{display:inline-block;margin-top:.5mm}.meta{line-height:1.3}
.page-one .content{padding-top:6mm}.page-one .section{margin-bottom:5mm}.page-one .section>h2{margin-bottom:4mm}.page-one .prose{padding:4mm 6mm}.page-one .job{padding-top:3mm;padding-bottom:3mm;min-height:21mm}.page-one .job.featured{min-height:27mm}.page-one .job.compact{min-height:13mm;padding-top:2mm;padding-bottom:2mm}.page-one .education-grid article{min-height:24mm;padding:3mm}.page-one .education-grid b{margin-bottom:3mm}.page-one .tools{padding-top:5mm}.page-one .tools p{margin-bottom:3.2mm;font-size:8.2px}.page-one .tools small{font-size:6.8px}.page-one .tools em{width:7mm;height:7mm}
.page-two .section{margin-bottom:5mm}.page-two .section>h2{margin-bottom:4mm}.page-two .skill-row>*{min-height:13mm}.page-two .project-grid article{min-height:39mm;padding:4mm}.page-two .project-grid h3{margin:2mm 0 1.5mm}.page-two .project-grid p{margin:0 0 2mm}.page-two .quote-grid blockquote{min-height:23mm;padding:4mm 6mm}.page-two .quote-grid cite{margin-top:2mm}.page-two .job.compact{min-height:13mm;padding-top:2.5mm;padding-bottom:2.5mm}.page-two .additional{margin-top:0}
@media screen{
  .resume{padding-bottom:18mm}
  .page{margin-bottom:14mm;box-shadow:0 8px 35px #20223b2b}
  .page:last-child{margin-bottom:0}
}
@media screen and (max-width:850px){.toolbar,.resume{width:100%}.page{transform-origin:top left}.resume{overflow:auto}.toolbar{margin-top:0;border-radius:0}}
@page{size:A4;margin:0}
@media print{html,body{background:white}.toolbar{display:none}.resume{width:auto;margin:0;padding:0}.page{margin:0;box-shadow:none;break-after:page;page-break-after:always;print-color-adjust:exact;-webkit-print-color-adjust:exact}.page:last-child{break-after:auto;page-break-after:auto}}

/* Editorial CV system: recruiter-first hierarchy, quiet depth, one accent. */
:root{
  --ink:#252538;
  --muted:#59627c;
  --tertiary:#747d96;
  --faint:#9299ad;
  --purple:#6546d7;
  --blue:#6546d7;
  --green:#6546d7;
  --paper:#f3f4f7;
  --card:#fbfbfc;
  --line:rgba(37,37,56,.11);
  --line-soft:rgba(37,37,56,.07);
  --radius-sm:4px;
  --radius-md:6px;
}
body{font-family:Bahnschrift,"Aptos",sans-serif;font-variant-numeric:tabular-nums;background:#d9dbe2}
.identity h1,.section>h2{font-family:"Palatino Linotype",Palatino,serif;font-weight:700;letter-spacing:-.035em}
.identity h1{font-size:22px}.section>h2{font-size:18px}
.sidebar{background:#faf9f6}.timeline{border-color:var(--line)}
.panel,.job,.education-grid article,.project-grid article,blockquote{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-md)}
.section:before{width:4.5mm;height:4.5mm;border-width:2.25mm;left:-11.7mm;box-shadow:none}
.side-rule,.side-section{border-color:var(--line)}
.side-section h2,.side-section small,.meta small,.education-grid small,.education-grid span{color:var(--tertiary)}
.job ul,.job p,.prose{color:var(--muted)}
.job h3{letter-spacing:-.015em}.job a,.contact a{color:#4f37bd;text-decoration-thickness:.5px;text-underline-offset:1.5px}
.meta{font-family:Bahnschrift,"Aptos",sans-serif;font-variant-numeric:tabular-nums;color:var(--ink)}
.quick-facts span{background:#eeebf8;color:#493496;border:1px solid rgba(101,70,215,.09);border-radius:var(--radius-sm)}
.skill-row{gap:1.2mm}.skill-row>*{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-sm);color:#4f37bd}.skill-row.blue span,.skill-row.green span,.skill-row.pink span{color:#4f37bd}
.logo{border-radius:var(--radius-sm)}.company-logo{border-color:var(--line)}
.page-number{color:var(--faint);font-size:7px}
.toolbar{font-family:Bahnschrift,"Aptos",sans-serif;background:#252538}.toolbar button{background:#7353e6}.toolbar button:hover{background:#5d3fd0}.toolbar button:focus-visible,.contact a:focus-visible,.job a:focus-visible,.skip-link:focus-visible{outline:3px solid #f0b429;outline-offset:3px}
.skip-link{position:fixed;left:12px;top:-60px;z-index:20;padding:10px 14px;background:#252538;color:#fff;border-radius:var(--radius-sm);text-decoration:none}.skip-link:focus{top:12px}
@media print{.skip-link{display:none}}

/* Optically centre the timeline circles against the large section headings. */
/* Timeline markers: the dot's centre sits exactly on the divider. The halo is
   visual only, so it no longer changes the marker's alignment box. */
.section::before{width:3mm;height:3mm;left:-10.5mm;border:0;box-shadow:0 0 0 2mm var(--black)}
@media screen{
  .section::before{width:12px;height:12px;left:-46px;top:.65em;border:0;box-shadow:0 0 0 8px var(--black)}
}
@media screen and (max-width:900px){.section::before{left:-40.5px}}
@media screen and (max-width:640px){.section::before{left:0;box-shadow:none}}

/* Nothing × interface-design: light technical dossier */
@font-face{font-family:"Space Grotesk";src:url("assets/fonts/space-grotesk-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url("assets/fonts/space-grotesk-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url("assets/fonts/space-grotesk-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Space Mono";src:url("assets/fonts/space-mono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Space Mono";src:url("assets/fonts/space-mono-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Doto";src:url("assets/fonts/doto-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
:root{
  --black:#f5f5f5;
  --surface:#fff;
  --surface-raised:#f0f0f0;
  --border:#e4e4e4;
  --border-visible:#c8c8c8;
  --text-disabled:#707070;
  --text-secondary:#626262;
  --text-primary:#1a1a1a;
  --text-display:#000;
  --accent:#d71921;
  --interactive:#005bd7;
  --ink:var(--text-primary);
  --muted:var(--text-secondary);
  --tertiary:var(--text-secondary);
  --faint:var(--text-disabled);
  --purple:var(--accent);
  --blue:var(--interactive);
  --green:var(--text-primary);
  --paper:var(--black);
  --card:transparent;
  --line:var(--border);
  --line-soft:var(--border);
}
body{font-family:"Space Grotesk",system-ui,sans-serif;color:var(--text-primary);background:#d8d8d8}
.page,.sidebar{background:var(--black)}
.identity h1{font-family:"Doto","Space Mono",monospace;font-size:28px;font-weight:600;letter-spacing:-.04em;line-height:1}
.identity p{font-family:"Space Mono",monospace;color:var(--text-secondary);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-top:8px}
.section>h2{font-family:"Space Grotesk",sans-serif;font-size:18px;font-weight:500;letter-spacing:-.01em}
.side-section h2,.page-number,.meta,.side-section small,.education-grid small{font-family:"Space Mono",monospace;letter-spacing:.055em;text-transform:uppercase}
.side-section h2{font-size:7px;color:var(--text-secondary)}
.page-number{font-size:6.5px;color:var(--text-disabled)}
.timeline{border-left:1px solid var(--border-visible)}
.section:before{width:3mm;height:3mm;left:-11mm;top:1.8mm;border:2mm solid var(--black);background:var(--accent);box-shadow:none}
.panel,.job,.education-grid article,.project-grid article,blockquote{background:transparent;border:0;border-radius:0}
.prose{padding:0;color:var(--text-secondary)}
.prose .lead{color:var(--text-display);font-size:9.6px;font-weight:500;max-width:100%}
.quick-facts{gap:0;border-top:1px solid var(--border-visible);border-bottom:1px solid var(--border-visible);margin-top:4mm}
.quick-facts span{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.035em;background:transparent;color:var(--text-primary);border:0;border-radius:0;padding:2mm 0;font-size:6.3px}
.quick-facts span:nth-child(even){padding-left:4mm;border-left:1px solid var(--border)}
.job{border-top:1px solid var(--border);border-radius:0;margin:0;padding-left:0;padding-right:0}
.job:last-child{border-bottom:1px solid var(--border)}
.job h3{font-weight:500;color:var(--text-display)}
.job h3 small{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.035em;color:var(--text-secondary)}
.job a,.contact a{color:var(--interactive);text-decoration:none}
.job a:hover,.contact a:hover{text-decoration:underline}
.meta{font-size:6.3px;color:var(--text-primary)}
.meta small{color:var(--text-secondary)}
.logo{border-radius:4px}.company-logo{background:var(--surface);border:1px solid var(--border-visible)}
.education-grid{gap:0;border-top:1px solid var(--border-visible);border-bottom:1px solid var(--border-visible)}
.education-grid article{border-right:1px solid var(--border);border-radius:0}.education-grid article:last-child{border-right:0}
.skill-board{gap:0;border-top:1px solid var(--border-visible)}
.skill-row{gap:0;border-bottom:1px solid var(--border)}
.skill-row>*{min-height:14mm;background:transparent;border:0;border-right:1px solid var(--border);border-radius:0;color:var(--text-primary)}
.skill-row>*:last-child{border-right:0}
.skill-row strong{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.05em;font-size:6.4px;color:var(--text-secondary)}
.skill-row.blue span,.skill-row.green span,.skill-row.pink span{color:var(--text-primary)}
.quote-grid{gap:5mm}.quote-grid blockquote{border-top:1px solid var(--border-visible);padding:4mm 0;min-height:22mm}
.quote-grid cite{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.035em;font-size:6.4px}
.contact i{border-radius:4px;background:transparent;border:1px solid var(--border-visible);color:var(--text-secondary);font-family:"Space Mono",monospace}
.contact a:first-child i{background:transparent;border-color:var(--accent);color:var(--accent)}
.tools em{border-radius:4px;background:var(--text-display);color:var(--black);font-family:"Space Mono",monospace}
.side-rule,.side-section{border-color:var(--border)}
.toolbar{font-family:"Space Mono",monospace;border-radius:0;background:#000;box-shadow:none;text-transform:uppercase;letter-spacing:.04em}.toolbar button{font-family:"Space Mono",monospace;border-radius:999px;background:#fff;color:#000;text-transform:uppercase}.toolbar button:hover{background:#e8e8e8}
@media screen{.page{box-shadow:none;outline:1px solid #c7c7c7}}

/* v3.3 fidelity corrections from the newly added Nothing skill package. */
.identity h1{font-size:36px;line-height:.92}
.section:before{background:var(--text-display)}
.page .content>.section:first-child:before{background:var(--accent)}
.page-one .tools p{margin-bottom:2.5mm;font-size:8px}.page-one .tools small{font-size:6.5px}.page-one .tools em{width:6.5mm;height:6.5mm}

/* UX pass: orientation, progressive detail, evidence-linked capabilities. */
.section[data-step]::after{content:attr(data-step);position:absolute;right:0;top:2.2mm;font-family:"Space Mono",monospace;font-size:6px;letter-spacing:.07em;color:var(--text-disabled)}
.quick-facts span{display:grid;grid-template-columns:13mm 1fr;align-items:center}.quick-facts b{font-family:"Space Mono",monospace;font-size:5.8px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary)}
.job ul b{font-weight:500;color:var(--text-primary)}
.capability-board{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border-visible)}
.capability-board article{padding:3.5mm 4mm 3.5mm 0;border-bottom:1px solid var(--border);min-height:28mm}
.capability-board article:nth-child(even){padding-left:4mm;padding-right:0;border-left:1px solid var(--border)}
.capability-board strong{font-size:8.2px;font-weight:500;color:var(--text-display)}
.capability-board p{margin:1.5mm 0 2mm;color:var(--text-secondary);font-size:7.1px;line-height:1.35}
.capability-board small{font-family:"Space Mono",monospace;font-size:5.8px;letter-spacing:.06em;color:var(--text-disabled)}
.profile-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-top:4mm;border-top:1px solid var(--border-visible);border-bottom:1px solid var(--border-visible)}
.profile-summary article{padding:3mm 3mm 3mm 0;border-right:1px solid var(--border)}.profile-summary article+article{padding-left:3mm}.profile-summary article:last-child{border-right:0}
.profile-summary small,.impact-list b{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}
.profile-summary small{display:block;font-size:5.8px;margin-bottom:1.5mm}.profile-summary p{margin:0;color:var(--text-primary);font-size:7.1px;line-height:1.35}
.profile .profile-detail{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--border);font-size:12px;line-height:1.5;color:var(--text-secondary)}
.impact-list{list-style:none!important;padding:0!important;margin-top:3mm!important}.impact-list li{display:grid;grid-template-columns:17mm minmax(0,1fr);column-gap:3mm;margin:0!important;padding:1mm 0;border-top:1px solid var(--border)}.impact-list li:first-child{border-top:0}
.impact-list b{font-size:5.8px;font-weight:400}.impact-list span{color:var(--text-secondary)}
.toolbar-actions{display:flex;align-items:center;gap:8px}.toolbar .edit-toggle{background:transparent;color:#fff;border:1px solid #555}.toolbar .edit-toggle:hover{background:#171717}.editor-dock{position:fixed;left:50%;bottom:20px;z-index:50;transform:translateX(-50%);display:flex;gap:8px;padding:8px;background:#000;border:1px solid #444}.editor-dock[hidden]{display:none}.editor-dock button{min-height:40px;padding:8px 14px;border:1px solid #555;border-radius:999px;background:#111;color:#fff;font-family:"Space Mono",monospace;font-size:10px;text-transform:uppercase;cursor:pointer}.editor-dock button[data-action="save"]{background:#fff;color:#000}.remove-item{position:absolute;right:4px;top:4px;z-index:4;width:26px;height:26px;border:1px solid #d71921;border-radius:50%;background:var(--black);color:#d71921;font-size:18px;line-height:1;cursor:pointer}.tools p{position:relative}.tools p>.remove-item{right:-10px;top:0}.is-editing [contenteditable="true"]{outline:1px dashed rgba(215,25,33,.45);outline-offset:3px;cursor:text}.is-editing [contenteditable="true"]:focus{outline:2px solid #d71921;background:rgba(215,25,33,.04)}.is-editing .job{padding-right:36px}.is-editing .resume{padding-bottom:100px}
.portrait{background-image:linear-gradient(115deg,#eef0f5 8%,transparent 54%),var(--profile-photo)}

/* Responsive website mode. Print dimensions remain governed by @media print. */
@media screen{
  html{background:#d8d8d8}
  body{min-width:0}
  .toolbar{width:min(1120px,calc(100vw - 32px));margin:16px auto 12px;padding:10px 16px;gap:16px}
  .toolbar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .toolbar button{flex:0 0 auto;min-height:44px;padding:10px 22px;white-space:nowrap}
  .toolbar .edit-toggle{padding:10px 18px}
  .resume{width:min(1120px,calc(100vw - 32px));padding-bottom:48px}
  .page{width:100%;height:auto;min-height:0;aspect-ratio:210/297;grid-template-columns:300px minmax(0,1fr);margin-bottom:48px;overflow:hidden;outline:1px solid #c7c7c7}
  .sidebar{padding-left:40px;padding-right:40px;padding-bottom:40px}
  .portrait{height:190px;margin-left:-40px;margin-right:-40px;margin-bottom:48px}
  .identity h1{font-size:48px}
  .identity p{font-size:12px}
  .content{padding:40px 52px 48px 40px}
  .section{margin-bottom:48px}
  .section>h2{font-size:28px;margin-bottom:28px}
  .section[data-step]::after{top:8px;font-size:9px}
  .timeline{border-left:1px solid var(--border-visible)}
  .section:before{left:-45px;top:7px;width:12px;height:12px;border:8px solid var(--black)}
  .prose{font-size:14px;line-height:1.55}
  .page-one .profile .prose{padding:0}
  .prose .lead{max-width:96%;font-size:12px;line-height:1.5;font-weight:400;color:var(--text-secondary);letter-spacing:0}
  .profile-summary{margin-top:24px}.profile-summary article{padding:18px 18px 18px 0}.profile-summary article+article{padding-left:18px}.profile-summary small{font-size:9px;margin-bottom:8px}.profile-summary p{font-size:13px;line-height:1.45}
  .quick-facts span{font-size:10px;padding:10px 0}.quick-facts b{font-size:9px}
  .job{grid-template-columns:48px minmax(0,1fr) 130px;gap:18px;padding-top:18px;padding-bottom:18px;min-height:0}
  .job.featured,.job.compact{min-height:0;padding-top:18px;padding-bottom:18px}
  .logo{width:42px;height:42px;font-size:9px}
  .job h3{font-size:15px}.job h3 small{font-size:9px}
  .job a{font-size:12px}.job ul,.job p{font-size:12px;line-height:1.45}
  .impact-list{margin-top:14px!important}.impact-list li{grid-template-columns:92px minmax(0,1fr);column-gap:14px;padding:7px 0}.impact-list b{font-size:9px}
  .meta{font-size:9px}.meta small{font-size:8px}
  .education-grid article{min-height:130px;padding:20px;font-size:11px}
  .side-section{padding-top:32px;padding-bottom:32px}
  .side-section h2{font-size:10px;margin-bottom:22px}
  .side-section p,.side-section a,.side-section>div{font-size:13px;margin-bottom:20px;gap:14px}
  .side-section small{font-size:10px}
  .contact i{flex-basis:36px;height:36px}
  .tools p,.page-one .tools p{grid-template-columns:38px 1fr;font-size:12px;margin-bottom:18px}
  .tools em,.page-one .tools em{width:34px;height:34px;font-size:9px}.page-one .tools small{font-size:9px}
  .second-sidebar{padding-top:40px}
  .page-two .content{padding-top:40px}
  .capability-board article{min-height:150px;padding:24px 24px 24px 0}
  .capability-board article:nth-child(even){padding:24px 0 24px 24px}
  .capability-board strong{font-size:14px}.capability-board p{font-size:12px;line-height:1.5}.capability-board small{font-size:9px}
  .quote-grid blockquote{font-size:12px;line-height:1.5;min-height:120px;padding:20px 0}.quote-grid cite{font-size:9px}
  .page-number{display:none}
}

@media screen and (max-width:900px){
  .toolbar,.resume{width:100%;margin-left:0;margin-right:0}
  .toolbar{margin-top:0}
  .page{grid-template-columns:240px minmax(0,1fr);margin-bottom:24px;outline:0;border-bottom:1px solid var(--border-visible)}
  .sidebar{padding-left:28px;padding-right:28px}
  .portrait{height:150px;margin-left:-28px;margin-right:-28px}
  .identity h1{font-size:40px}
  .content{padding-left:32px;padding-right:28px}
  .section:before{left:-37px}
  .job{grid-template-columns:42px minmax(0,1fr)}
  .job .meta{grid-column:2;text-align:left;display:flex;gap:12px;margin-top:4px}
  .meta small{margin-top:0}
  .section[data-step]::after{display:none}
}

@media screen and (max-width:640px){
  .toolbar{position:sticky;padding:8px 12px}
  .toolbar .toolbar-title{font-size:0}.toolbar .toolbar-title::after{content:"[ CV · UX V3.4 ]";font-size:10px}
  .toolbar .toolbar-title{flex:1 1 auto;min-width:0;padding-right:72px}
  .toolbar-actions{gap:6px}.toolbar .edit-toggle{position:static;min-width:0;min-height:36px;padding:7px 10px;font-size:9px}.toolbar .export-button{position:static;min-width:48px;min-height:36px;padding:7px 10px;font-size:0;background:#fff;color:#000;border:0}.toolbar .export-button::after{content:"PDF";font-size:9px}
  .editor-dock{width:calc(100% - 16px);bottom:8px;justify-content:center;gap:4px;padding:6px}.editor-dock button{flex:1;padding:7px 5px;font-size:8px}
  .resume{padding-bottom:0}
  .page{display:block;margin:0;border:0;aspect-ratio:auto;overflow:visible}
  .sidebar{padding:0 24px 32px}
  .portrait{height:230px;margin:0 -24px 36px;background-position:center 12%}
  .identity h1{font-size:46px}
  .side-rule{margin:32px 0 12px}
  .content{padding:40px 24px}
  .timeline{border-left:0}
  .section{margin-bottom:56px}
  .section>h2{font-size:26px;margin-bottom:24px;padding-left:20px}
  .section:before{left:0;top:6px;width:10px;height:10px;border:0}
  .quick-facts{grid-template-columns:1fr}.quick-facts span:nth-child(even){padding-left:0;border-left:0}.quick-facts span{border-bottom:1px solid var(--border)}.quick-facts span:last-child{border-bottom:0}
  .profile-summary{grid-template-columns:1fr}.profile-summary article,.profile-summary article+article{padding:16px 0;border-right:0;border-bottom:1px solid var(--border)}.profile-summary article:last-child{border-bottom:0}
  .impact-list li{grid-template-columns:1fr;gap:4px;padding:10px 0}.impact-list b{font-size:9px}
  .job,.job.compact,.job.featured{grid-template-columns:44px minmax(0,1fr);gap:14px;padding:18px 0}
  .job .meta{grid-column:2}
  .job ul{padding-left:16px}
  .education-grid{grid-template-columns:1fr}.education-grid article{min-height:0;border-right:0;border-bottom:1px solid var(--border)}.education-grid article:last-child{border-bottom:0}
  .page-two{display:flex;flex-direction:column}.page-two .content{order:1}.page-two .second-sidebar{order:2}
  .capability-board{grid-template-columns:1fr}.capability-board article,.capability-board article:nth-child(even){min-height:0;padding:22px 0;border-left:0}
  .quote-grid{grid-template-columns:1fr}.quote-grid blockquote,.quote-grid blockquote:last-child{grid-column:auto;min-height:0}
  .second-sidebar{padding-top:0}
}

@media screen{
  .section::before{width:12px;height:12px;left:-46px;top:.65em;border:0;box-shadow:0 0 0 8px var(--black)}
}
@media screen and (max-width:900px){.section::before{left:-40.5px}}
@media screen and (max-width:640px){.section::before{left:0;width:10px;height:10px;box-shadow:none}}

/* Full-bleed portrait with the original soft fade and a tighter vertical crop. */
.portrait{
  background-image:linear-gradient(115deg,rgba(245,245,245,.5) 4%,transparent 48%),var(--profile-photo)!important;
  background-size:cover,cover;
  background-position:center,center;
  background-repeat:no-repeat;
  mix-blend-mode:normal;
}
@media screen{
  .portrait{height:210px;margin-bottom:24px;background-size:cover,auto 118%;background-position:center,42% 15%}
}
@media screen and (max-width:900px){.portrait{height:170px}}
@media screen and (max-width:640px){.portrait{height:240px;margin-bottom:20px;background-size:cover,auto 120%;background-position:center,44% 10%}}

/* Consistent sidebar tables and spacing. */
@media screen{
  .side-section{padding-top:28px;padding-bottom:28px}
  .side-section h2{margin-bottom:20px}
  .side-section:not(.contact):not(.tools) p{
    display:grid;
    grid-template-columns:92px minmax(0,1fr);
    column-gap:16px;
    align-items:start;
    margin-bottom:16px;
  }
  .side-section:not(.contact):not(.tools) p:last-child{margin-bottom:0}
  .side-section:not(.contact):not(.tools) p b,
  .side-section:not(.contact):not(.tools) p small{min-width:0;margin:0}
  .side-section:not(.contact):not(.tools) p small{padding-top:1px;line-height:1.35}
  .tools p,.page-one .tools p{
    grid-template-columns:38px minmax(0,1fr);
    column-gap:14px;
    row-gap:3px;
    align-items:start;
    margin-bottom:16px;
  }
  .tools p:last-child{margin-bottom:0}
  .tools b,.tools small{min-width:0}
}
@media screen and (max-width:900px){
  .side-section:not(.contact):not(.tools) p{grid-template-columns:78px minmax(0,1fr);column-gap:12px}
}
@media screen and (max-width:640px){
  .side-section:not(.contact):not(.tools) p{grid-template-columns:120px minmax(0,1fr);column-gap:20px}
}

@media print{
  .side-section:not(.contact):not(.tools) p{display:grid;grid-template-columns:19mm minmax(0,1fr);column-gap:3mm;align-items:start}
  .side-section:not(.contact):not(.tools) p small{margin:0;line-height:1.3}
  .tools p{grid-template-columns:7mm minmax(0,1fr);column-gap:2.5mm;row-gap:.6mm}
}

/* Languages uses the same deliberate two-column table as the other rail data. */
@media screen{
  .languages p{
    grid-template-columns:76px minmax(0,1fr)!important;
    column-gap:16px!important;
    margin-bottom:16px!important;
  }
  .languages p:last-child{margin-bottom:0!important}
  .languages b,.languages small{line-height:1.35}
}
@media screen and (max-width:900px){.languages p{grid-template-columns:66px minmax(0,1fr)!important;column-gap:12px!important}}
@media screen and (max-width:640px){.languages p{grid-template-columns:110px minmax(0,1fr)!important;column-gap:20px!important}}
@media print{.languages p{grid-template-columns:17mm minmax(0,1fr)!important;column-gap:3mm!important}}

/* Real text replaces the decorative section label so it can be edited too. */
.section-step-label{position:absolute;right:0;top:2.2mm;font-family:"Space Mono",monospace;font-size:6px;letter-spacing:.07em;color:var(--text-disabled)}
.js-editable-steps .section[data-step]::after{display:none}
@media screen{.section-step-label{top:8px;font-size:9px}}
@media screen and (max-width:900px){.section-step-label{display:none}}

/* Section-level editing controls. */
.section,.side-section,.job,.education-grid article,.capability-board article,.quote-grid blockquote,.profile-summary article,.contact>a,.contact>div,.languages p,.second-sidebar .side-section p{position:relative}
.section-editor-actions{display:flex;gap:6px;margin:-14px 0 16px;padding:8px 0;border-top:1px dashed rgba(215,25,33,.35);border-bottom:1px dashed rgba(215,25,33,.35)}
.section-editor-actions button{min-height:32px;padding:6px 10px;border:1px solid #777;border-radius:999px;background:transparent;color:var(--text-primary);font-family:"Space Mono",monospace;font-size:8px;text-transform:uppercase;cursor:pointer}
.section-editor-actions button:first-child{border-color:var(--accent);color:var(--accent)}
.side-section>.section-editor-actions{margin:8px 0 0;flex-wrap:wrap}
.side-section>.section-editor-actions button{flex:1 1 auto}
.is-editing .education-grid article,.is-editing .capability-board article,.is-editing .quote-grid blockquote,.is-editing .profile-summary article{padding-right:36px}
@media screen and (max-width:640px){.section-editor-actions{margin-top:-8px;flex-wrap:wrap}.section-editor-actions button{flex:1 1 auto;min-height:38px}}
@media print{.section-editor-actions,.remove-item{display:none!important}}
.role-title{display:inline-block;min-width:1ch}

/* Drag-and-drop ordering is available only while editing. */
.drag-handle{display:none}
.is-editing [data-reorder-item]{outline:1px dashed transparent;transition:opacity .15s,outline-color .15s}
.is-editing [data-reorder-item]:hover{outline-color:rgba(215,25,33,.35)}
.is-editing .drag-handle{display:grid;place-items:center;position:absolute;z-index:8;top:4px;right:30px;width:24px;height:24px;padding:0;border:1px solid #777;border-radius:4px;background:#fff;color:#111;font:700 13px/1 "Space Mono",monospace;cursor:grab;user-select:none}
.is-editing .drag-handle:active{cursor:grabbing}
.is-editing [data-reorder-item].is-dragging{opacity:.35;outline-color:var(--accent)}
.is-editing .job{padding-right:62px}
.is-editing .tools p,.is-editing .languages p,.is-editing .second-sidebar .side-section p,.is-editing .contact>a,.is-editing .contact>div{padding-right:0}
.is-editing .second-sidebar .drag-handle,.is-editing .languages .drag-handle,.is-editing .tools .drag-handle{right:-26px}
.is-editing .second-sidebar .remove-item,.is-editing .languages .remove-item{right:-54px}
.is-reordering{cursor:grabbing!important;user-select:none}
.is-reordering *{cursor:grabbing!important}
@media print{.drag-handle{display:none!important}}

/* Treat the role and company as one compact identity block. */
.job-main>h3{margin-bottom:0!important}
.job-main>a,.job-main>.company-name{display:block;margin-top:10.2px!important;line-height:1.15}
.job .company-name{font-size:8.5px;color:var(--interactive);font-weight:400}
@media screen{.job .company-name{font-size:12px}}
.job h3 .employment-type::before{content:"·";display:inline-block;margin:0 8px;color:var(--text-secondary)}
.employment-separator{display:inline-block;margin:0 8px;color:var(--text-secondary)}
.employment-type-select{max-width:190px;padding:3px 24px 3px 7px;border:1px solid var(--accent);border-radius:4px;background:#fff;color:#111;font:inherit;font-size:.72em;text-transform:uppercase;cursor:pointer}
@media print{.employment-type-select{border:0;padding:0;background:transparent}}

/* Match the editor's page-one composition in exported A4 PDFs. */
@media print{
  .page-one .content{padding-top:4mm;padding-bottom:4mm}
  .page-one .section{margin-bottom:3mm}
  .page-one .section>h2{margin-bottom:2.5mm}
  .page-one .prose .lead{margin-bottom:1.5mm}
  .page-one .profile-summary{margin-top:2mm}
  .page-one .profile-summary article,.page-one .profile-summary article+article{padding-top:2mm;padding-bottom:2mm}
  .page-one .job,.page-one .job.featured{min-height:0;padding-top:1.7mm;padding-bottom:1.7mm}
  .page-one .job.compact{min-height:0;padding-top:1.2mm;padding-bottom:1.2mm}
  .page-one .impact-list{margin-top:1.2mm!important}
  .page-one .impact-list li{padding:.45mm 0}
  .page-one .education-grid article{min-height:20mm;padding:2.2mm}
  .page-one .education-grid b{margin-bottom:2mm}
}

/* Keep the denser first page inside the same A4 canvas as page two. */
@media screen and (min-width:901px){
  .page-one .content{padding-top:30px;padding-bottom:30px}
  .page-one .section{margin-bottom:30px}
  .page-one .section>h2{margin-bottom:18px}
  .page-one .prose .lead{font-size:12px;line-height:1.5;font-weight:400;color:var(--text-secondary);max-width:96%}
  .page-one .profile-summary{margin-top:16px}
  .page-one .profile-summary article,.page-one .profile-summary article+article{padding-top:12px;padding-bottom:12px}
  .page-one .job,.page-one .job.featured,.page-one .job.compact{padding-top:11px;padding-bottom:11px}
  .page-one .job ul,.page-one .job p{font-size:11px;line-height:1.34}
  .page-one .impact-list{margin-top:8px!important}
  .page-one .impact-list li{padding:4px 0}
  .page-one .education-grid article{min-height:105px;padding-top:14px;padding-bottom:14px}
  .page-one .profile{margin-bottom:42px!important}
  .page-one .experience{margin-bottom:28px!important}
}

/* Print the same 1120 × 1584 editor canvas, scaled directly onto A4. */
@media print{
  html,body{width:793.5px!important;min-width:0!important;background:#fff!important}
  .resume{width:1120px!important;margin:0!important;padding:0!important}
  .page{width:1120px!important;height:1584px!important;min-height:1584px!important;grid-template-columns:300px minmax(0,1fr)!important;margin:0!important;overflow:hidden!important;outline:0!important;box-shadow:none!important}
  .toolbar,.editor-dock,.page-number{display:none!important}
  .sidebar{padding:0 40px 40px!important}
  .portrait{height:210px!important;margin:0 -40px 24px!important;background-image:linear-gradient(115deg,rgba(245,245,245,.5) 4%,transparent 48%),var(--profile-photo)!important;background-size:cover,auto 118%!important;background-position:center,42% 15%!important;background-repeat:no-repeat!important;mix-blend-mode:normal!important;filter:none!important;border:0!important;box-shadow:none!important;transform:scaleY(1.006)!important;transform-origin:top!important}
  .identity h1{font-size:48px!important}
  .identity p{font-size:12px!important}
  .content,.page-one .content{padding:30px 52px 30px 40px!important}
  .page-two .content{padding-top:40px!important}
  .timeline{border-left:1px solid var(--border-visible)!important}
  .section,.page-one .section{margin-bottom:30px!important}
  .page-one .profile{margin-bottom:42px!important}
  .page-one .experience{margin-bottom:28px!important}
  .section>h2,.page-one .section>h2{font-size:28px!important;margin-bottom:18px!important}
  .section:before{left:-46px!important;top:.65em!important;width:12px!important;height:12px!important;border:0!important;box-shadow:0 0 0 8px var(--black)!important}
  .section-step-label{top:8px!important;font-size:9px!important}
  .prose{padding:0!important;font-size:14px!important;line-height:1.55!important}
  .prose .lead,.page-one .prose .lead{font-size:12px!important;line-height:1.5!important;font-weight:400!important;color:var(--text-secondary)!important;letter-spacing:0!important;margin-bottom:0!important;max-width:96%!important}
  .profile-summary,.page-one .profile-summary{margin-top:16px!important}
  .profile-summary article,.profile-summary article+article,.page-one .profile-summary article,.page-one .profile-summary article+article{padding-top:12px!important;padding-bottom:12px!important}
  .profile-summary small{font-size:9px!important;margin-bottom:8px!important}
  .profile-summary p{font-size:13px!important;line-height:1.45!important}
  .job,.page-one .job,.page-one .job.featured,.page-one .job.compact{grid-template-columns:48px minmax(0,1fr) 130px!important;gap:18px!important;min-height:0!important;padding-top:11px!important;padding-bottom:11px!important}
  .logo{width:42px!important;height:42px!important;font-size:9px!important;align-self:start!important}
  .job h3{font-size:15px!important;line-height:1.2!important}
  .job h3 small{font-size:9px!important}
  .job a,.job .company-name{font-size:12px!important}
  .job ul,.job p,.page-one .job ul,.page-one .job p{font-size:11px!important;line-height:1.34!important}
  .impact-list,.page-one .impact-list{margin-top:8px!important}
  .impact-list li,.page-one .impact-list li{grid-template-columns:92px minmax(0,1fr)!important;column-gap:14px!important;padding:4px 0!important}
  .impact-list b{font-size:9px!important}
  .meta{font-size:9px!important}
  .meta small{font-size:8px!important}
  .education-grid article,.page-one .education-grid article{min-height:105px!important;padding:14px 20px!important;font-size:11px!important}
  .education-grid b,.page-one .education-grid b{margin-bottom:3mm!important}
  .side-section{padding-top:28px!important;padding-bottom:28px!important}
  .side-section h2{font-size:10px!important;margin-bottom:20px!important}
  .side-section p,.side-section a,.side-section>div{font-size:13px!important;margin-bottom:16px!important;gap:14px!important}
  .side-section small{font-size:10px!important}
  .contact i{flex-basis:36px!important;height:36px!important}
  .side-section:not(.contact):not(.tools) p{grid-template-columns:92px minmax(0,1fr)!important;column-gap:16px!important}
  .languages p{grid-template-columns:76px minmax(0,1fr)!important;column-gap:16px!important;margin-bottom:16px!important}
  .tools p,.page-one .tools p{grid-template-columns:38px minmax(0,1fr)!important;column-gap:14px!important;row-gap:3px!important;margin-bottom:16px!important;font-size:12px!important}
  .tools em,.page-one .tools em{width:34px!important;height:34px!important;font-size:9px!important}
  .tools small,.page-one .tools small{font-size:9px!important}
  .second-sidebar{padding-top:40px!important}
  .capability-board article{min-height:150px!important;padding:24px 24px 24px 0!important}
  .capability-board article:nth-child(even){padding:24px 0 24px 24px!important}
  .capability-board strong{font-size:14px!important}
  .capability-board p{font-size:12px!important;line-height:1.5!important}
  .capability-board small{font-size:9px!important}
  .quote-grid blockquote{font-size:12px!important;line-height:1.5!important;min-height:120px!important;padding:20px 0!important}
  .quote-grid cite{font-size:9px!important}
}

/* Visual templates -------------------------------------------------------- */
.theme-switcher{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid #4b4b4b;border-radius:999px;background:#151515}
.toolbar .theme-option{min-height:34px;padding:7px 11px;border:0;border-radius:999px;background:transparent;color:#aaa;font-size:9px;letter-spacing:.04em}
.toolbar .theme-option:hover{background:#242424;color:#fff}
.toolbar .theme-option[aria-pressed="true"]{background:#fff;color:#000}
.toolbar .theme-option:focus-visible{outline:3px solid #f0b429;outline-offset:2px}
.bottom-connector,.bottom-page-margin{display:none}

/* LEGO-inspired editorial template. It is intentionally scoped so the
   original Nothing theme remains byte-for-byte available as the default. */
@font-face{font-family:"Open Sans";src:url("assets/fonts/open-sans-variable.ttf") format("truetype");font-weight:300 800;font-style:normal;font-display:swap}
html[data-theme="lego"]{
  --lego-yellow:#ffcf00;
  --lego-red:#e3000b;
  --lego-blue:#006db7;
  --lego-ink:#111;
  --lego-paper:#fffdfa;
  --lego-line:rgba(17,17,17,.18);
  --black:var(--lego-paper);
  --surface:#fff;
  --surface-raised:#fff;
  --border:var(--lego-line);
  --border-visible:rgba(17,17,17,.34);
  --text-disabled:#5d5d5d;
  --text-secondary:#444;
  --text-primary:var(--lego-ink);
  --text-display:#000;
  --accent:var(--lego-red);
  --interactive:#005ac6;
  --ink:var(--lego-ink);
  --muted:#444;
  --tertiary:#3b3b3b;
  --faint:#606060;
  --paper:var(--lego-paper);
  --card:#fff;
  --line:var(--lego-line);
  --line-soft:rgba(17,17,17,.1);
}
html[data-theme="lego"] body{font-family:"Open Sans",Arial,sans-serif;color:var(--lego-ink);background:#d7d9de}
html[data-theme="lego"] .toolbar .theme-option[data-theme-option="lego"][aria-pressed="true"]{background:var(--lego-yellow);color:#111}
html[data-theme="lego"] .page{background:var(--lego-paper);border-bottom:0}
html[data-theme="lego"] .page::before{
  content:"";
  position:absolute;
  z-index:4;
  left:304px;
  right:70px;
  bottom:13px;
  height:12px;
  background:var(--lego-blue);
  pointer-events:none;
}
html[data-theme="lego"] .page::after{
  content:"";
  position:absolute;
  z-index:4;
  left:16px;
  bottom:13px;
  width:288px;
  height:12px;
  background:var(--lego-red);
  pointer-events:none;
}
html[data-theme="lego"] .sidebar{
  background:var(--lego-yellow);
  color:var(--lego-ink);
  border:16px solid var(--lego-paper);
  border-right:0;
  border-bottom-width:13px;
  padding:0 32px 40px 16px;
}
html[data-theme="lego"] .page-one .sidebar{border-top-width:28px}
html[data-theme="lego"] .sidebar::before{
  content:none;
}
html[data-theme="lego"] .page-one .sidebar::after{
  content:"";
  position:absolute;
  z-index:3;
  top:-14px;
  left:22px;
  width:224px;
  height:30px;
  transform:none;
  background:url("assets/lego-theme/stud-rail-yellow.png") center/100% 100% no-repeat;
  pointer-events:none;
}
html[data-theme="lego"] .identity h1{font-family:"Open Sans",Arial,sans-serif;font-size:48px;font-weight:800;letter-spacing:-.045em;color:#000}
html[data-theme="lego"] .identity p{font-family:"Space Mono",monospace;color:#111;font-weight:700;letter-spacing:.075em}
html[data-theme="lego"] .portrait{
  position:relative;
  width:100%;
  height:auto;
  aspect-ratio:1 / 1;
  background-image:linear-gradient(115deg,rgba(255,255,255,.34) 4%,transparent 48%),var(--profile-photo)!important;
  background-color:#fff;
  border:0;
  box-shadow:none;
  filter:none;
}
html[data-theme="lego"] .portrait::after{
  content:"";
  position:absolute;
  z-index:2;
  top:8px;
  right:-8px;
  width:18px;
  height:18px;
  background:url("assets/lego-theme/corner-red.png") center/100% 100% no-repeat;
  pointer-events:none;
}
html[data-theme="lego"] .side-rule,html[data-theme="lego"] .side-section{border-color:rgba(17,17,17,.28)}
html[data-theme="lego"] .side-section h2{color:#111;font-weight:700}
html[data-theme="lego"] .side-section p,html[data-theme="lego"] .side-section a,html[data-theme="lego"] .side-section>div{color:#111}
html[data-theme="lego"] .side-section small{color:rgba(17,17,17,.72)}
html[data-theme="lego"] .contact a{color:var(--lego-blue);font-weight:500}
html[data-theme="lego"] .contact i{background:#fff;border:1px solid rgba(17,17,17,.2);color:#111;border-radius:5px}
html[data-theme="lego"] .contact a:first-child i{background:#fff;border-color:var(--lego-red);color:var(--lego-red)}
html[data-theme="lego"] .tools em{background:var(--lego-blue);color:#fff;border:1px solid rgba(0,0,0,.12);border-radius:4px}
html[data-theme="lego"] .tools p:nth-of-type(4n+2) em{background:var(--lego-red)}
html[data-theme="lego"] .tools p:nth-of-type(4n+3) em{background:#111}
html[data-theme="lego"] .tools p:nth-of-type(4n+4) em{background:#fff;color:#111}
html[data-theme="lego"] .page-one .contact,html[data-theme="lego"] .page-one .languages,html[data-theme="lego"] .page-one .tools{border-bottom:0}
html[data-theme="lego"] .page-one .languages::before,html[data-theme="lego"] .page-one .tools::before{content:none}
html[data-theme="lego"] .bottom-connector{
  position:absolute;
  z-index:5;
  display:block;
  height:25px;
  object-fit:fill;
  pointer-events:none;
}
/* Only the raised studs sit above the structural rail. The source crops also
   contain a thicker base; clipping that base prevents a visible double rail. */
html[data-theme="lego"] .bottom-connector-red{
  left:232px;
  bottom:7px;
  width:73px;
  clip-path:inset(0 0 18px 0);
}
html[data-theme="lego"] .bottom-connector-blue{
  right:69px;
  bottom:10px;
  width:56px;
  clip-path:inset(0 0 15px 0);
}
html[data-theme="lego"] .bottom-page-margin{
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  bottom:0;
  display:block;
  height:13px;
  background:var(--lego-paper);
  pointer-events:none;
}
html[data-theme="lego"] .timeline{border-left:0}
html[data-theme="lego"] .section{position:relative}
html[data-theme="lego"] .section::before{
  content:attr(data-theme-index);
  left:0;
  top:0;
  width:48px;
  height:44px;
  border:0;
  border-radius:0;
  box-shadow:none;
  display:grid;
  place-items:center;
  background:var(--lego-red);
  color:#fff;
  font-family:"Space Mono",monospace;
  font-size:17px;
  font-weight:700;
  line-height:1;
}
html[data-theme="lego"] .section>h2{
  position:relative;
  min-height:44px;
  margin-bottom:18px;
  padding:6px 0 10px 66px;
  border-bottom:3px solid var(--lego-red);
  font-family:"Open Sans",Arial,sans-serif;
  font-size:25px;
  font-weight:800;
  line-height:1.05;
  letter-spacing:-.025em;
  text-transform:uppercase;
}
html[data-theme="lego"] .section>h2::after{
  content:"";
  position:absolute;
  right:0;
  bottom:-3px;
  width:38px;
  height:18px;
  background:url("assets/lego-theme/connector-red.png") center bottom/100% 18px no-repeat;
  pointer-events:none;
}
html[data-theme="lego"] .section-step-label{display:none}
html[data-theme="lego"] .experience::before,html[data-theme="lego"] .skills::before{background:var(--lego-blue)!important}
html[data-theme="lego"] .experience>h2,html[data-theme="lego"] .skills>h2{border-color:var(--lego-blue)}
html[data-theme="lego"] .experience>h2::after,html[data-theme="lego"] .skills>h2::after{background-image:url("assets/lego-theme/connector-blue.png")}
html[data-theme="lego"] .quotes::before{background:var(--lego-red)}
html[data-theme="lego"] .panel,html[data-theme="lego"] .job,html[data-theme="lego"] .education-grid article,html[data-theme="lego"] .capability-board article,html[data-theme="lego"] blockquote{background:transparent;border-radius:0}
html[data-theme="lego"] .prose{color:#404040}
html[data-theme="lego"] .prose .lead{max-width:98%;color:#333;font-size:13.5px;line-height:1.55}
html[data-theme="lego"] .job{border-color:rgba(17,17,17,.17)}
html[data-theme="lego"] .job h3{font-weight:700;color:#111}
html[data-theme="lego"] .job h3 small,html[data-theme="lego"] .meta,html[data-theme="lego"] .impact-list b{color:#333}
html[data-theme="lego"] .job a,html[data-theme="lego"] .job .company-name{color:#005ac6;font-weight:500}
html[data-theme="lego"] .job ul,html[data-theme="lego"] .job p,html[data-theme="lego"] .impact-list span{color:#444}
html[data-theme="lego"] .impact-list li{border-color:rgba(17,17,17,.14)}
html[data-theme="lego"] .logo{border-radius:4px}
html[data-theme="lego"] .company-logo{background:#fff;border-color:rgba(17,17,17,.22)}
html[data-theme="lego"] .education-grid{background:#fff;border-color:rgba(17,17,17,.28)}
html[data-theme="lego"] .education-grid article{border-color:rgba(17,17,17,.14)}
html[data-theme="lego"] .capability-board{border-color:rgba(17,17,17,.28)}
html[data-theme="lego"] .capability-board article{border-color:rgba(17,17,17,.16)}
html[data-theme="lego"] .capability-board small{color:var(--lego-blue);font-weight:700}
html[data-theme="lego"] .quote-grid blockquote{border-color:rgba(17,17,17,.28)}
html[data-theme="lego"] .page-number{color:rgba(17,17,17,.58)}

/* Nothing Simple ----------------------------------------------------------
   A one-column editorial CV based on the supplied Anne Johnsen reference.
   It deliberately reuses the same DOM and Markdown data as the other themes;
   only the visual hierarchy changes. */
html[data-theme="simple"]{
  --simple-paper:#ebe5e2;
  --simple-ink:#1e1e1e;
  --simple-text-secondary:#4f4946;
  --simple-text-tertiary:#6b6460;
  --simple-muted:var(--simple-text-secondary);
  --simple-rule:#1e1e1e;
  --simple-rule-soft:rgba(30,30,30,.34);
  --simple-page-padding-top:90px;
  --simple-page-padding-inline:104px;
  --simple-page-padding-bottom:72px;
  --simple-red:#ff003c;
  --paper:var(--simple-paper);
  --card:transparent;
  --ink:var(--simple-ink);
  --text-primary:var(--simple-ink);
  --text-secondary:var(--simple-muted);
  --text-disabled:#746f6b;
  --border:rgba(23,23,23,.2);
  --border-visible:var(--simple-rule);
}
html[data-theme="simple"] body{background:#d9d7d5;color:var(--simple-ink)}
html[data-theme="simple"] .toolbar .theme-option[data-theme-option="simple"][aria-pressed="true"]{background:#ff003c;color:#fff}
html[data-theme="simple"] .page{
  display:block;
  padding:var(--simple-page-padding-top) var(--simple-page-padding-inline) var(--simple-page-padding-bottom);
  background:var(--simple-paper);
  color:var(--simple-ink);
  font-family:"Space Grotesk",Arial,sans-serif;
  font-weight:400;
}
html[data-theme="simple"] .page-one{--simple-page-padding-bottom:48px}
html[data-theme="simple"] .sidebar,
html[data-theme="simple"] .bottom-connector,
html[data-theme="simple"] .bottom-page-margin{display:none!important}
html[data-theme="simple"] .content,
html[data-theme="simple"] .page-one .content,
html[data-theme="simple"] .page-two .content{width:auto;padding:0!important;border:0!important}
html[data-theme="simple"] .simple-page-header{margin:0 0 22px}
html[data-theme="simple"] .simple-header-row{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:22px}
html[data-theme="simple"] .simple-header-portrait{width:78px;height:78px;aspect-ratio:1;margin:0!important;border:1px solid var(--simple-rule);border-radius:0;background-size:cover,auto 120%!important;background-position:center,43% 12%!important;filter:none!important;mix-blend-mode:normal!important}
html[data-theme="simple"] .simple-header-portrait[hidden]{display:none!important}
html[data-theme="simple"] .simple-header-portrait[hidden]+.simple-header-identity{grid-column:1/-1}
html[data-theme="simple"] .simple-header-identity h1{margin:0;font-size:45px;font-weight:700;line-height:1;letter-spacing:-.025em}
html[data-theme="simple"] .simple-header-identity p{margin:7px 0 0;color:var(--simple-text-secondary);font-size:13px;font-weight:500;line-height:1.35;letter-spacing:.015em}
html[data-theme="simple"] .simple-contact-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:16px;padding:12px 0 11px;border-top:1px solid var(--simple-rule);border-bottom:1px solid var(--simple-rule)}
html[data-theme="simple"] .simple-contact-strip a,
html[data-theme="simple"] .simple-contact-strip span{min-width:0;overflow-wrap:anywhere;color:var(--simple-ink);font-size:14px;line-height:1.35;text-decoration:none}
html[data-theme="simple"] .simple-contact-strip a:hover{text-decoration:underline;text-underline-offset:3px}
html[data-theme="simple"] .simple-continuation-header{display:flex;align-items:center;justify-content:space-between;margin:0 0 26px;padding:0 0 12px;border-bottom:1px solid var(--simple-rule);color:var(--simple-text-tertiary);font:11px/1.2 "Space Mono",monospace;letter-spacing:.07em;text-transform:uppercase}
html[data-theme="simple"] .simple-continuation-page{color:var(--simple-ink);font-weight:700;font-variant-numeric:tabular-nums}
html[data-theme="simple"] .page-two>.content>.section:first-child{padding-top:0;border-top:0}
html[data-theme="simple"] .section,
html[data-theme="simple"] .page-one .section,
html[data-theme="simple"] .page-two .section{margin:0 0 30px!important}
html[data-theme="simple"] .section::before,
html[data-theme="simple"] .section-step-label{display:none!important}
html[data-theme="simple"] .section>h2,
html[data-theme="simple"] .page-one .section>h2{margin:0 0 22px!important;padding:0!important;font-size:26px!important;font-weight:700;line-height:1.05;letter-spacing:-.015em;text-transform:uppercase}
html[data-theme="simple"] .panel,
html[data-theme="simple"] .job,
html[data-theme="simple"] .education-grid article,
html[data-theme="simple"] .capability-board article,
html[data-theme="simple"] blockquote{background:transparent;border:0!important;border-radius:0;box-shadow:none}
html[data-theme="simple"] .profile{display:none!important}
html[data-theme="simple"] .profile-summary{display:none!important}
html[data-theme="simple"] .job,
html[data-theme="simple"] .page-one .job,
html[data-theme="simple"] .page-one .job.featured,
html[data-theme="simple"] .page-one .job.compact{
  display:grid;
  grid-template-columns:minmax(0,1fr) 240px;
  gap:0 28px;
  min-height:0!important;
  margin:0 0 24px;
  padding:0!important;
  border:0!important;
}
html[data-theme="simple"] .job .logo{display:none}
html[data-theme="simple"] .job-main{grid-column:1;min-width:0}
html[data-theme="simple"] .job .meta{grid-column:2;grid-row:1;align-self:start;padding:0;text-align:right;color:var(--simple-text-secondary);font-family:"Space Grotesk",Arial,sans-serif;font-size:17px;line-height:1.2;letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}
html[data-theme="simple"] .job .meta small{display:none}
html[data-theme="simple"] .job h3{margin:0 0 6px;font-size:17px!important;font-weight:700;line-height:1.2;letter-spacing:-.01em}
html[data-theme="simple"] .job h3 small{color:var(--simple-text-secondary);font:inherit;font-weight:500;letter-spacing:inherit;text-transform:none}
html[data-theme="simple"] .job h3 .employment-type{margin:0!important}
html[data-theme="simple"] .job h3 .employment-type::before{content:", ";display:inline;margin:0!important;color:inherit}
html[data-theme="simple"] .job-main>a,
html[data-theme="simple"] .job-main>.company-name{display:inline-block;margin:0;color:var(--simple-text-tertiary);font-size:13px!important;line-height:1.4;text-decoration:none}
html[data-theme="simple"] .job .impact-list,
html[data-theme="simple"] .job .experience-bullets{margin:8px 0 0!important;padding-left:15px!important;list-style:disc!important;color:var(--simple-text-secondary);font-size:11.3px!important;line-height:1.66!important}
html[data-theme="simple"] .job .impact-list li,
html[data-theme="simple"] .job .experience-bullets li{display:list-item!important;margin:0!important;padding:0!important;border:0!important}
html[data-theme="simple"] .job .impact-list b{display:inline;color:var(--simple-ink);font-weight:600}
html[data-theme="simple"] .job .impact-list b::after{content:": "}
html[data-theme="simple"] .job .impact-list span{color:inherit}
html[data-theme="simple"] .job p{margin:8px 0 0;color:var(--simple-text-secondary);font-size:11.3px!important;line-height:1.66!important}
html[data-theme="simple"] .education,
html[data-theme="simple"] .skills,
html[data-theme="simple"] .quotes,
html[data-theme="simple"] .simple-derived-section{padding-top:26px;border-top:1px solid var(--simple-rule)}
/* When Skills naturally reaches page one, use the compact supporting-section
   rhythm so at least one meaningful row can occupy the available A4 space. */
html[data-theme="simple"] .page-one>.content>.education{margin-bottom:16px!important}
html[data-theme="simple"] .page-one>.content>.skills{margin-bottom:0!important;padding-top:12px}
html[data-theme="simple"] .page-one>.content>.skills>h2{margin-bottom:8px!important}
html[data-theme="simple"] .education-grid{display:grid;grid-template-columns:1fr;gap:0;border:0!important}
html[data-theme="simple"] .education-grid article{display:grid;grid-template-columns:300px minmax(0,1fr) 120px;gap:0 24px;min-height:0!important;padding:2px 0!important;font-size:13px;line-height:1.5}
html[data-theme="simple"] .education-grid article b{grid-column:1;grid-row:1;margin:0!important;font-size:13px;font-weight:500}
html[data-theme="simple"] .education-grid article small{grid-column:2;grid-row:1;color:var(--simple-text-secondary);font:inherit;text-transform:none;letter-spacing:0}
html[data-theme="simple"] .education-grid article span:not(:last-child){display:none}
html[data-theme="simple"] .education-grid article span:last-child{grid-column:3;grid-row:1;justify-self:end;color:var(--simple-text-tertiary);font-variant-numeric:tabular-nums}
html[data-theme="simple"] .capability-board{display:grid;grid-template-columns:1fr;border:0!important}
html[data-theme="simple"] .capability-board article,
html[data-theme="simple"] .capability-board article:nth-child(even){display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px;min-height:0!important;padding:0 0 11px!important;border:0!important}
html[data-theme="simple"] .capability-board strong{color:var(--simple-ink);font-size:13px;font-weight:500}
html[data-theme="simple"] .capability-board p{margin:0;color:var(--simple-text-secondary);font-size:13px;line-height:1.45}
html[data-theme="simple"] .capability-board small{display:none}
html[data-theme="simple"] .quote-grid{display:grid;grid-template-columns:1fr;gap:0}
html[data-theme="simple"] .quote-grid blockquote{min-height:0;padding:0 0 12px;color:var(--simple-text-secondary);font-size:13px;line-height:1.5}
html[data-theme="simple"] .quote-grid cite{margin-top:3px;color:var(--simple-text-tertiary);font-family:"Space Grotesk",Arial,sans-serif;font-size:13px;font-weight:500;letter-spacing:0;text-transform:none}
html[data-theme="simple"] .simple-derived-section article{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;padding:3px 0;color:var(--simple-text-secondary);font-size:13px;line-height:1.45}
html[data-theme="simple"] .simple-derived-section article b{color:var(--simple-ink);font-weight:500}
html[data-theme="simple"] .continued-label,
html[data-theme="simple"] .page-number{display:none!important}

@media screen and (max-width:900px){
  html[data-theme="simple"] .page{display:block;min-height:0;height:auto;padding:42px 26px}
  html[data-theme="simple"] .simple-header-identity h1{font-size:40px}
  html[data-theme="simple"] .simple-contact-strip{grid-template-columns:1fr 1fr}
  html[data-theme="simple"] .job{grid-template-columns:1fr!important}
  html[data-theme="simple"] .job .meta{grid-column:1;grid-row:auto;text-align:left}
  html[data-theme="simple"] .education-grid article,
  html[data-theme="simple"] .capability-board article,
  html[data-theme="simple"] .capability-board article:nth-child(even),
  html[data-theme="simple"] .simple-derived-section article{grid-template-columns:1fr}
  html[data-theme="simple"] .education-grid article>*{grid-column:1!important;grid-row:auto!important;justify-self:start!important}
  html[data-theme="simple"] .capability-board small{justify-self:start;text-align:left}
}

@media print{
  /* Export consumes the same page-padding tokens as the editor so pagination
     and PDF geometry cannot drift apart. */
  html[data-theme="simple"] .page{display:block!important;padding:var(--simple-page-padding-top) var(--simple-page-padding-inline) var(--simple-page-padding-bottom)!important;background:var(--simple-paper)!important;break-after:page!important;page-break-after:always!important}
  html[data-theme="simple"] .page:last-child{break-after:auto!important;page-break-after:auto!important}
  html[data-theme="simple"] .content,
  html[data-theme="simple"] .page-one .content,
  html[data-theme="simple"] .page-two .content{padding:0!important;border:0!important}
  /* Neutralize the older branded-template print grid. Without these explicit
     overrides Chrome forces Simple job copy into the hidden logo column. */
  html[data-theme="simple"] .job,
  html[data-theme="simple"] .page-one .job,
  html[data-theme="simple"] .page-one .job.featured,
  html[data-theme="simple"] .page-one .job.compact{grid-template-columns:minmax(0,1fr) 240px!important;gap:0 28px!important;margin:0 0 24px!important;padding:0!important}
  html[data-theme="simple"] .job-main{grid-column:1!important;grid-row:auto!important}
  html[data-theme="simple"] .job .meta{grid-column:2!important;grid-row:1!important;font-size:17px!important;line-height:1.2!important}
  html[data-theme="simple"] .job h3 small{font-size:inherit!important}
  html[data-theme="simple"] .education-grid article{font-size:13px!important}
  html[data-theme="simple"] .capability-board strong{font-size:13px!important}
  html[data-theme="simple"] .capability-board p{font-size:13px!important;line-height:1.45!important}
  html[data-theme="simple"] .quote-grid blockquote{min-height:0!important;padding:0 0 12px!important;font-size:13px!important;line-height:1.5!important}
  html[data-theme="simple"] .quote-grid cite{font-size:13px!important}
  html[data-theme="simple"] .page-number{display:none!important}
}
html[data-theme="lego"] .is-editing [contenteditable="true"]{outline-color:rgba(227,0,11,.55)}
html[data-theme="lego"] .section-editor-actions{border-color:rgba(227,0,11,.45)}

@media screen{
  html[data-theme="lego"] .portrait{height:auto;margin:24px 0 28px;background-size:cover,auto 118%;background-position:center,42% 15%}
  html[data-theme="lego"] .page{outline-color:rgba(17,17,17,.28)}
}

@media screen and (min-width:641px){
  html[data-theme="lego"] .page-one .side-section{padding-top:34px;padding-bottom:34px}
  html[data-theme="lego"] .page-one .contact a,html[data-theme="lego"] .page-one .contact>div{margin-bottom:23px}
  html[data-theme="lego"] .page-one .contact i{flex-basis:42px;height:42px}
  html[data-theme="lego"] .page-one .languages p{margin-bottom:21px!important}
  html[data-theme="lego"] .page-one .tools p{grid-template-columns:42px minmax(0,1fr);margin-bottom:23px;font-size:12px}
  html[data-theme="lego"] .page-one .tools em{width:38px;height:38px}
}

@media screen and (min-width:901px){
  html[data-theme="lego"] .page-one .job,html[data-theme="lego"] .page-one .job.featured,html[data-theme="lego"] .page-one .job.compact{padding-top:13px;padding-bottom:13px}
  html[data-theme="lego"] .page-one .job ul,html[data-theme="lego"] .page-one .job p{font-size:11.5px;line-height:1.4}
  html[data-theme="lego"] .page-one .impact-list li{padding-top:5px;padding-bottom:5px}
}

@media screen and (max-width:900px){
  html[data-theme="lego"] .portrait{height:auto;margin:24px 0 28px}
  html[data-theme="lego"] .section>h2{font-size:23px}
}

/* Between mobile and full desktop widths, keep the LEGO document as a true
   A4 canvas and scale the whole canvas. Reflowing an A4-height page caused
   page-one content to be clipped at typical split-pane browser widths. */
@media screen and (min-width:641px) and (max-width:1151px){
  html[data-theme="lego"] .resume{
    width:var(--a4-preview-width,100%);
    overflow:visible;
    padding-bottom:48px;
  }
  html[data-theme="lego"] .page{
    width:1120px;
    height:1584px;
    aspect-ratio:auto;
    grid-template-columns:300px 820px;
    margin-bottom:48px;
    border-bottom:0;
    outline:1px solid rgba(17,17,17,.28);
    overflow:hidden;
    zoom:var(--a4-preview-scale,1);
  }
  html[data-theme="lego"] .page:last-child{margin-bottom:0}
  html[data-theme="lego"] .content{padding:40px 52px 48px 40px}
  html[data-theme="lego"] .page-one .content{padding-top:30px;padding-bottom:30px}
  html[data-theme="lego"] .portrait{height:auto;margin:24px 0 28px}
  html[data-theme="lego"] .section>h2{font-size:25px}
  html[data-theme="lego"] .page-one .section{margin-bottom:30px}
  html[data-theme="lego"] .page-one .section>h2{margin-bottom:18px}
  html[data-theme="lego"] .page-one .profile{margin-bottom:42px!important}
  html[data-theme="lego"] .page-one .experience{margin-bottom:28px!important}
  html[data-theme="lego"] .page-one .prose .lead{
    max-width:96%;
    font-size:12px;
    font-weight:400;
    line-height:1.5;
  }
  html[data-theme="lego"] .job{grid-template-columns:48px minmax(0,1fr) 130px}
  html[data-theme="lego"] .page-one .job,
  html[data-theme="lego"] .page-one .job.featured,
  html[data-theme="lego"] .page-one .job.compact{
    min-height:0;
    padding-top:13px;
    padding-bottom:13px;
  }
  html[data-theme="lego"] .page-one .job ul,
  html[data-theme="lego"] .page-one .job p{
    font-size:11.5px;
    line-height:1.4;
  }
  html[data-theme="lego"] .page-one .impact-list{margin-top:8px!important}
  html[data-theme="lego"] .page-one .impact-list li{padding-top:5px;padding-bottom:5px}
  html[data-theme="lego"] .job .meta{
    grid-column:auto;
    display:block;
    margin-top:0;
    text-align:right;
  }
  html[data-theme="lego"] .meta small{margin-top:2mm}
  html[data-theme="lego"] .side-section:not(.contact):not(.tools) p{
    grid-template-columns:92px minmax(0,1fr)!important;
    column-gap:16px!important;
  }
  html[data-theme="lego"] .languages p{
    grid-template-columns:76px minmax(0,1fr)!important;
    column-gap:16px!important;
  }
  html[data-theme="lego"] .page-one .education-grid article{
    min-height:105px;
    padding-top:14px;
    padding-bottom:14px;
  }
}

@media screen and (max-width:640px){
  .toolbar{align-items:flex-start}
  .toolbar-title{display:none}
  .toolbar-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}
  .theme-switcher{margin-right:auto}
  .toolbar .theme-option{min-height:34px;padding:7px 9px}
  html[data-theme="lego"] .sidebar{padding:0 24px 32px;border-width:10px 0 0 10px;border-bottom:0}
  html[data-theme="lego"] .page-one .sidebar{border-top-width:24px}
  html[data-theme="lego"] .page-one .sidebar::after{top:-14px;left:22px;width:220px;height:29px}
  html[data-theme="lego"] .portrait{height:auto;margin:24px 0 28px;border:0}
  html[data-theme="lego"] .section::before{width:40px;height:38px;font-size:14px}
  html[data-theme="lego"] .section>h2{min-height:38px;padding:6px 0 9px 52px;font-size:21px}
  html[data-theme="lego"] .page::before,
  html[data-theme="lego"] .page::after,
  html[data-theme="lego"] .sidebar::before,
  html[data-theme="lego"] .bottom-connector,
  html[data-theme="lego"] .bottom-page-margin{display:none}
}

@media print{
  html[data-theme="lego"],html[data-theme="lego"] body{background:#fff!important}
  html[data-theme="lego"] .page{background:var(--lego-paper)!important;border-bottom:0!important}
  html[data-theme="lego"] .sidebar{background:var(--lego-yellow)!important;border:16px solid var(--lego-paper)!important;border-right:0!important;border-bottom-width:13px!important;padding:0 32px 40px 16px!important}
  html[data-theme="lego"] .page-one .sidebar{border-top-width:28px!important}
  html[data-theme="lego"] .portrait{
    width:100%!important;
    height:auto!important;
    aspect-ratio:1 / 1!important;
    margin:24px 0 28px!important;
    border:0!important;
    background-image:linear-gradient(115deg,rgba(255,255,255,.34) 4%,transparent 48%),var(--profile-photo)!important;
    background-size:cover,auto 118%!important;
    background-position:center,42% 15%!important;
    filter:none!important;
    transform:none!important;
  }
  html[data-theme="lego"] .page-one .side-section{padding-top:34px!important;padding-bottom:34px!important}
  html[data-theme="lego"] .page-one .contact a,html[data-theme="lego"] .page-one .contact>div{margin-bottom:23px!important}
  html[data-theme="lego"] .page-one .contact i{flex-basis:42px!important;height:42px!important}
  html[data-theme="lego"] .page-one .languages p{margin-bottom:21px!important}
  html[data-theme="lego"] .page-one .tools p{grid-template-columns:42px minmax(0,1fr)!important;margin-bottom:23px!important;font-size:12px!important}
  html[data-theme="lego"] .page-one .tools em{width:38px!important;height:38px!important}
  html[data-theme="lego"] .timeline{border-left:0!important}
  html[data-theme="lego"] .section::before{left:0!important;top:0!important;width:48px!important;height:44px!important;border:0!important;box-shadow:none!important}
  html[data-theme="lego"] .section>h2,html[data-theme="lego"] .page-one .section>h2{min-height:44px!important;margin-bottom:18px!important;padding:6px 0 10px 66px!important;font-size:25px!important;line-height:1.05!important}
  html[data-theme="lego"] .section-step-label{display:none!important}
  html[data-theme="lego"] .page-one .prose .lead{font-size:13.5px!important;line-height:1.55!important}
  html[data-theme="lego"] .page-one .job,html[data-theme="lego"] .page-one .job.featured,html[data-theme="lego"] .page-one .job.compact{padding-top:13px!important;padding-bottom:13px!important}
  html[data-theme="lego"] .page-one .job ul,html[data-theme="lego"] .page-one .job p{font-size:11.5px!important;line-height:1.4!important}
  html[data-theme="lego"] .page-one .impact-list li{padding-top:5px!important;padding-bottom:5px!important}
}

/* Markdown-first editing -------------------------------------------------- */
.editor-dock.markdown-editor{
  position:fixed;
  top:82px;
  bottom:16px;
  left:16px;
  z-index:60;
  width:var(--markdown-editor-width,420px);
  min-width:360px;
  transform:none;
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
  overflow:hidden;
  border:1px solid #3c3c3c;
  border-radius:12px;
  background:#0d0d0d;
  color:#f6f6f6;
  box-shadow:0 24px 70px rgba(0,0,0,.34);
  font-family:"Space Mono",ui-monospace,monospace;
}
.editor-dock.markdown-editor[hidden]{display:none}
.markdown-editor-header,.markdown-editor-footer{flex:0 0 auto;padding:12px 14px;background:#151515}
.markdown-editor-header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #353535}
.markdown-editor-header>div{display:grid;gap:4px;min-width:0}
.markdown-editor-header strong{font-family:"Space Grotesk",system-ui,sans-serif;font-size:15px;letter-spacing:0}
.markdown-file-label,.markdown-status,.markdown-character-count{color:#a5a5a5;font-size:9px;letter-spacing:.04em}
.markdown-editor-help{flex:0 0 auto;margin:0;padding:12px 14px;border-bottom:1px solid #2e2e2e;color:#b7b7b7;font:11px/1.5 "Space Grotesk",system-ui,sans-serif}
.markdown-editor-help code{padding:2px 4px;border-radius:4px;background:#292929;color:#fff;font-family:"Space Mono",monospace}
.markdown-source{flex:1 1 auto;min-height:0;width:100%;resize:none;border:0;outline:0;padding:16px;background:#0d0d0d;color:#f2f2f2;caret-color:#ffcf00;font:11px/1.58 "Space Mono",ui-monospace,monospace;tab-size:2;white-space:pre-wrap}
.markdown-source::selection{background:#006db7;color:#fff}
.markdown-editor-footer{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 12px;border-top:1px solid #353535}
.markdown-editor-footer>div{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}
.markdown-editor-footer .markdown-character-count{text-align:right}
.markdown-status[data-state="error"]{color:#ff767d}
.markdown-status[data-state="updating"]{color:#ffcf00}
.editor-dock.markdown-editor button{min-height:36px;padding:7px 11px;border:1px solid #4a4a4a;border-radius:999px;background:#1d1d1d;color:#fff;font-family:"Space Mono",monospace;font-size:9px;text-transform:uppercase;cursor:pointer}
.editor-dock.markdown-editor button:hover{background:#2b2b2b}
.editor-dock.markdown-editor button[data-action="save"]{margin-left:auto;background:#fff;color:#000;border-color:#fff}
.editor-dock.markdown-editor button:focus-visible,.markdown-source:focus-visible{outline:3px solid #ffcf00;outline-offset:-3px}

@media screen and (min-width:901px){
  body.is-markdown-editing .resume{
    width:var(--a4-preview-width);
    margin-right:0;
    margin-left:calc(var(--markdown-editor-width) + 48px);
    overflow:visible;
  }
  body.is-markdown-editing .page{
    width:1120px;
    height:1584px;
    min-height:1584px;
    aspect-ratio:auto;
    grid-template-columns:300px minmax(0,1fr);
    zoom:var(--a4-preview-scale,1);
  }
}

@media screen and (max-width:900px){
  .editor-dock.markdown-editor{
    top:64px;
    right:8px;
    bottom:auto;
    left:8px;
    width:auto;
    min-width:0;
    height:44vh;
    border-radius:8px;
  }
  body.is-markdown-editing .resume{padding-top:calc(44vh + 12px)}
  .markdown-editor-help{display:none}
  .markdown-source{font-size:12px;padding:14px}
}

@media print{
  .editor-dock.markdown-editor{display:none!important}
}

/* Rich Markdown content and automatic continuation pages. */
.portrait[hidden]{display:none!important}
body.profile-photo-hidden .page-one .identity{padding-top:40px}
html[data-theme="lego"] body.profile-photo-hidden .page-one .identity{padding-top:58px}
.prose>.profile-detail{margin:12px 0 0;padding:0;border:0}
.job-summary+.job-summary{margin-top:8px}
.job .experience-bullets{list-style:disc;margin:9px 0 0;padding-left:18px;color:var(--text-secondary)}
.job .experience-bullets li{display:list-item;margin:0;padding:2px 0;border:0}
.continued-label{font-family:"Space Mono",monospace;font-size:.34em;font-weight:500;letter-spacing:.06em;color:var(--text-disabled);text-transform:uppercase}
.continuation-sidebar{padding-top:48px}
.continuation-sidebar .identity{margin-top:0}
.continuation-note{margin-top:30px;color:var(--text-disabled);font:9px/1.5 "Space Mono",monospace;letter-spacing:.08em;text-transform:uppercase}

@media print{
  body.profile-photo-hidden .page-one .identity{padding-top:40px!important}
  html[data-theme="lego"] body.profile-photo-hidden .page-one .identity{padding-top:58px!important}
  .job .experience-bullets{margin-top:9px!important;padding-left:18px!important;list-style:disc!important}
  .job .experience-bullets li{display:list-item!important;padding:2px 0!important}
  .continuation-sidebar{padding-top:48px!important}
}

/* Simple 2.0 editorial theme ----------------------------------------------
   Faithful to the supplied CV reference: white editorial pages, circular
   portrait, Oswald section headings, Source Code Pro labels and Lato body. */
@font-face{font-family:"Vitrolife Oswald";src:url("assets/fonts/vitrolife/oswald-regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:block}
@font-face{font-family:"Vitrolife Lato";src:url("assets/fonts/vitrolife/lato-regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:block}
@font-face{font-family:"Vitrolife Lato";src:url("assets/fonts/vitrolife/lato-bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:block}
@font-face{font-family:"Vitrolife Lato";src:url("assets/fonts/vitrolife/lato-italic.ttf") format("truetype");font-style:italic;font-weight:400;font-display:block}
@font-face{font-family:"Vitrolife Code";src:url("assets/fonts/vitrolife/source-code-pro-semibold.ttf") format("truetype");font-style:normal;font-weight:600;font-display:block}
@font-face{font-family:"Vitrolife Code";src:url("assets/fonts/vitrolife/source-code-pro-bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:block}

html[data-theme="vitrolife"]{
  --vitrolife-blue:#1f5c88;
  --vitrolife-ink:#242424;
  --vitrolife-copy:#686868;
  --vitrolife-rule:#979797;
  --vitrolife-paper:#fff;
  --paper:var(--vitrolife-paper);
  --ink:var(--vitrolife-ink);
  --text-primary:var(--vitrolife-ink);
  --text-secondary:var(--vitrolife-copy);
  --text-disabled:#777;
  --border:rgba(36,36,36,.2);
}
html[data-theme="vitrolife"] body{background:#dfe3e8;color:var(--vitrolife-ink);font-family:"Vitrolife Lato",Arial,sans-serif}
html[data-theme="vitrolife"] .toolbar .theme-option[data-theme-option="vitrolife"][aria-pressed="true"]{background:var(--vitrolife-blue);color:#fff}
html[data-theme="vitrolife"] .page{
  display:block;
  padding:106px 164px 88px;
  background:var(--vitrolife-paper);
  color:var(--vitrolife-ink);
  font-family:"Vitrolife Lato",Arial,sans-serif;
}
html[data-theme="vitrolife"] .sidebar,
html[data-theme="vitrolife"] .bottom-connector,
html[data-theme="vitrolife"] .bottom-page-margin{display:none!important}
html[data-theme="vitrolife"] .content,
html[data-theme="vitrolife"] .page-one .content,
html[data-theme="vitrolife"] .page-two .content{width:auto;padding:0!important;border:0!important}
html[data-theme="vitrolife"] .vitrolife-page-header{display:grid;grid-template-columns:172px minmax(0,1fr);align-items:center;gap:70px;min-height:172px;margin:0 0 48px}
html[data-theme="vitrolife"] .vitrolife-avatar{width:172px;height:172px;aspect-ratio:1;margin:0!important;border:0!important;border-radius:50%;background-size:cover!important;background-position:center 16%!important;box-shadow:none!important;filter:none!important;transform:none!important;overflow:hidden}
html[data-theme="vitrolife"] .vitrolife-avatar::after{content:none!important}
html[data-theme="vitrolife"] .vitrolife-avatar[hidden]+.vitrolife-header-identity{grid-column:1/-1}
html[data-theme="vitrolife"] .vitrolife-header-identity{text-align:right}
html[data-theme="vitrolife"] .vitrolife-header-identity h1{margin:0;color:var(--vitrolife-ink);font:400 48px/.95 "Vitrolife Oswald","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.005em}
html[data-theme="vitrolife"] .vitrolife-header-identity>p{margin:13px 0 14px;color:var(--vitrolife-blue);font:700 39px/1 "Vitrolife Code","Space Mono",monospace;text-transform:uppercase;letter-spacing:.045em}
html[data-theme="vitrolife"] .vitrolife-contact-list{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:14px;line-height:1.25}
html[data-theme="vitrolife"] .vitrolife-contact-list a{color:#0563c1;text-decoration:underline;text-underline-offset:1px}
html[data-theme="vitrolife"] .vitrolife-contact-list span{color:var(--vitrolife-copy)}
html[data-theme="vitrolife"] .section,
html[data-theme="vitrolife"] .page-one .section,
html[data-theme="vitrolife"] .page-two .section{margin:0 0 26px!important;padding:0!important}
html[data-theme="vitrolife"] .content>.section:last-child{margin-bottom:0!important}
html[data-theme="vitrolife"] .section::before,
html[data-theme="vitrolife"] .section-step-label{display:none!important}
html[data-theme="vitrolife"] .section>h2,
html[data-theme="vitrolife"] .page-one .section>h2{margin:0 0 20px!important;padding:10px 0 0!important;border-top:2px solid var(--vitrolife-rule);color:var(--vitrolife-ink);font:400 31px/1.05 "Vitrolife Oswald","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:0}
html[data-theme="vitrolife"] .panel,
html[data-theme="vitrolife"] .job,
html[data-theme="vitrolife"] .education-grid article,
html[data-theme="vitrolife"] .capability-board article,
html[data-theme="vitrolife"] blockquote{background:transparent;border:0!important;border-radius:0;box-shadow:none}
html[data-theme="vitrolife"] .profile-summary{display:none!important}
html[data-theme="vitrolife"] .profile .prose{padding:0!important;color:var(--vitrolife-copy)}
html[data-theme="vitrolife"] .profile .lead{max-width:none;margin:0;color:var(--vitrolife-copy);font-size:18px!important;font-weight:400;line-height:1.35}
html[data-theme="vitrolife"] .prose>.profile-detail{margin:10px 0 0;color:var(--vitrolife-copy);font-size:18px;line-height:1.35}
html[data-theme="vitrolife"] .capability-board{display:grid;grid-template-columns:1fr;gap:0;border:0!important}
html[data-theme="vitrolife"] .vitrolife-skill-grid article,
html[data-theme="vitrolife"] .vitrolife-skill-grid article:nth-child(even){display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;min-height:0!important;padding:4px 0!important;border:0!important}
html[data-theme="vitrolife"] .vitrolife-skill-grid strong{color:var(--vitrolife-blue);font:700 16px/1.35 "Vitrolife Code","Space Mono",monospace;text-transform:uppercase;letter-spacing:.015em}
html[data-theme="vitrolife"] .vitrolife-skill-grid p{margin:0;color:var(--vitrolife-copy);font-size:18px;line-height:1.35}
html[data-theme="vitrolife"] .vitrolife-skill-grid small{display:none}
html[data-theme="vitrolife"] .job,
html[data-theme="vitrolife"] .page-one .job,
html[data-theme="vitrolife"] .page-one .job.featured,
html[data-theme="vitrolife"] .page-one .job.compact{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 10px;min-height:0!important;margin:0 0 32px;padding:0!important;border:0!important}
html[data-theme="vitrolife"] .job .logo{display:none!important}
html[data-theme="vitrolife"] .job-main{display:contents}
html[data-theme="vitrolife"] .job h3{grid-column:1;grid-row:1;align-self:baseline;margin:0;color:var(--vitrolife-blue);font:700 16px/1.35 "Vitrolife Code","Space Mono",monospace;text-transform:uppercase;letter-spacing:.02em}
html[data-theme="vitrolife"] .job h3 small{color:var(--vitrolife-ink);font:600 16px/1.35 "Vitrolife Code","Space Mono",monospace;letter-spacing:.01em;text-transform:uppercase}
html[data-theme="vitrolife"] .job h3 small::before{content:" · ";color:var(--vitrolife-ink)}
html[data-theme="vitrolife"] .job-main>a,
html[data-theme="vitrolife"] .job-main>.company-name{grid-column:2;grid-row:1;align-self:baseline;margin:0;color:var(--vitrolife-ink);font:600 16px/1.35 "Vitrolife Code","Space Mono",monospace;text-transform:uppercase;text-decoration:none;letter-spacing:.02em}
html[data-theme="vitrolife"] .job-main>a::before,
html[data-theme="vitrolife"] .job-main>.company-name::before{content:"– ";color:var(--vitrolife-ink)}
html[data-theme="vitrolife"] .job .meta{grid-column:1/-1;grid-row:2;display:flex;gap:5px;align-items:baseline;margin:6px 0 0;padding:0;color:var(--vitrolife-copy);font:italic 16px/1.35 "Vitrolife Lato",Arial,sans-serif;text-align:left;text-transform:none;letter-spacing:0}
html[data-theme="vitrolife"] .job .meta small{display:inline;color:inherit;font:inherit;text-transform:none;letter-spacing:0}
html[data-theme="vitrolife"] .job .meta small:not(:empty)::before{content:" · "}
html[data-theme="vitrolife"] .job .impact-list,
html[data-theme="vitrolife"] .job .experience-bullets{grid-column:1/-1;grid-row:auto;margin:12px 0 0!important;padding-left:31px!important;color:var(--vitrolife-copy);font-size:16px!important;line-height:1.45!important;list-style:disc!important}
html[data-theme="vitrolife"] .job .impact-list li,
html[data-theme="vitrolife"] .job .experience-bullets li{display:list-item!important;margin:0 0 3px!important;padding:0!important;border:0!important}
html[data-theme="vitrolife"] .job .impact-list b{display:inline;color:var(--vitrolife-blue);font-weight:700}
html[data-theme="vitrolife"] .job .impact-list b::after{content:" ";}
html[data-theme="vitrolife"] .job .impact-list span{color:inherit}
html[data-theme="vitrolife"] .job p{grid-column:1/-1;grid-row:auto;margin:11px 0 0;color:var(--vitrolife-copy);font-size:16px!important;line-height:1.45!important}
html[data-theme="vitrolife"] .education-grid{display:grid;grid-template-columns:1fr;gap:0;border:0!important}
html[data-theme="vitrolife"] .education-grid article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 10px;min-height:0!important;margin:0 0 25px;padding:0!important;color:var(--vitrolife-copy);font-size:16px;line-height:1.4}
html[data-theme="vitrolife"] .education-grid article b{grid-column:1;grid-row:1;margin:0;color:var(--vitrolife-blue);font:700 16px/1.35 "Vitrolife Code","Space Mono",monospace;text-transform:uppercase;letter-spacing:.02em}
html[data-theme="vitrolife"] .education-grid article small{grid-column:2;grid-row:1;color:var(--vitrolife-ink);font:600 16px/1.35 "Vitrolife Code","Space Mono",monospace;text-transform:uppercase;letter-spacing:.02em}
html[data-theme="vitrolife"] .education-grid article small::before{content:"– "}
html[data-theme="vitrolife"] .education-grid article span{grid-column:1/-1;color:var(--vitrolife-copy)}
html[data-theme="vitrolife"] .education-grid article span:last-child{grid-row:2;font-style:italic}
html[data-theme="vitrolife"] .vitrolife-derived-section article{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;padding:5px 0;color:var(--vitrolife-copy);font-size:17px;line-height:1.35}
html[data-theme="vitrolife"] .vitrolife-derived-section article b{color:var(--vitrolife-blue);font:700 16px/1.35 "Vitrolife Code","Space Mono",monospace;text-transform:uppercase;letter-spacing:.015em}
html[data-theme="vitrolife"] .quote-grid{display:grid;grid-template-columns:1fr;gap:18px}
html[data-theme="vitrolife"] .quote-grid blockquote{min-height:0;padding:0;color:var(--vitrolife-copy);font-size:17px;line-height:1.4}
html[data-theme="vitrolife"] .quote-grid cite{margin-top:5px;color:var(--vitrolife-blue);font:600 14px/1.35 "Vitrolife Code","Space Mono",monospace;text-transform:uppercase;letter-spacing:.01em}
html[data-theme="vitrolife"] .continued-label{color:var(--vitrolife-blue);font-family:"Vitrolife Code","Space Mono",monospace}
html[data-theme="vitrolife"] .page-number{display:none!important}

@media screen and (max-width:900px){
  html[data-theme="vitrolife"] .page{display:block;min-height:0;height:auto;padding:44px 28px}
  html[data-theme="vitrolife"] .vitrolife-page-header{grid-template-columns:118px minmax(0,1fr);gap:28px;min-height:118px}
  html[data-theme="vitrolife"] .vitrolife-avatar{width:118px;height:118px}
  html[data-theme="vitrolife"] .vitrolife-header-identity h1{font-size:36px}
  html[data-theme="vitrolife"] .vitrolife-header-identity>p{font-size:24px}
  html[data-theme="vitrolife"] .vitrolife-contact-list{font-size:12px}
  html[data-theme="vitrolife"] .vitrolife-skill-grid article,
  html[data-theme="vitrolife"] .vitrolife-skill-grid article:nth-child(even),
  html[data-theme="vitrolife"] .vitrolife-derived-section article{grid-template-columns:1fr;gap:2px}
  html[data-theme="vitrolife"] .job{grid-template-columns:1fr!important}
  html[data-theme="vitrolife"] .job h3,
  html[data-theme="vitrolife"] .job-main>a,
  html[data-theme="vitrolife"] .job-main>.company-name,
  html[data-theme="vitrolife"] .job .meta,
  html[data-theme="vitrolife"] .job .impact-list,
  html[data-theme="vitrolife"] .job .experience-bullets,
  html[data-theme="vitrolife"] .job p{grid-column:1!important;grid-row:auto!important}
  html[data-theme="vitrolife"] .job-main>a::before,
  html[data-theme="vitrolife"] .job-main>.company-name::before{content:none}
}

@media print{
  html[data-theme="vitrolife"] .page{display:block!important;padding:106px 164px 88px!important;background:#fff!important;break-after:page!important;page-break-after:always!important}
  html[data-theme="vitrolife"] .page:last-child{break-after:auto!important;page-break-after:auto!important}
  html[data-theme="vitrolife"] .content,
  html[data-theme="vitrolife"] .page-one .content,
  html[data-theme="vitrolife"] .page-two .content{padding:0!important;border:0!important}
  html[data-theme="vitrolife"] .job,
  html[data-theme="vitrolife"] .page-one .job,
  html[data-theme="vitrolife"] .page-one .job.featured,
  html[data-theme="vitrolife"] .page-one .job.compact{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;gap:0 10px!important;margin:0 0 32px!important;padding:0!important}
  html[data-theme="vitrolife"] .job-main{display:contents!important}
  html[data-theme="vitrolife"] .job h3{grid-column:1!important;grid-row:1!important;font-size:16px!important}
  html[data-theme="vitrolife"] .job-main>a,
  html[data-theme="vitrolife"] .job-main>.company-name{grid-column:2!important;grid-row:1!important;font-size:16px!important}
  html[data-theme="vitrolife"] .job .meta{grid-column:1/-1!important;grid-row:2!important;font-size:16px!important}
  html[data-theme="vitrolife"] .job .impact-list,
  html[data-theme="vitrolife"] .job .experience-bullets,
  html[data-theme="vitrolife"] .job p{grid-column:1/-1!important;grid-row:auto!important}
}
