@font-face{font-family:Familjen;src:url('/assets/familjen-400.3d6a8c01c6c0.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Familjen;src:url('/assets/familjen-600.4becdcd6d182.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Familjen;src:url('/assets/familjen-700.e1ebaed103ed.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Familjen;src:url('/assets/familjen-ext-400.ab2fee5640ba.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0100-02AF,U+1E00-1E9F}
@font-face{font-family:Familjen;src:url('/assets/familjen-ext-600.5585819b7237.woff2') format('woff2');font-weight:600;font-display:swap;unicode-range:U+0100-02AF,U+1E00-1E9F}
@font-face{font-family:Familjen;src:url('/assets/familjen-ext-700.b5a1d616993b.woff2') format('woff2');font-weight:700;font-display:swap;unicode-range:U+0100-02AF,U+1E00-1E9F}
/* Open Studio: sunflower fields open and close the page, a deep green field carries colleagues' voices, warm paper and sand in between. */
:root{--paper:#fff;--ink:#17150f;--muted:#5d584d;--rule:#e6e1d6;--sand:#f7f4ec;--sun:#f4c13d;--sun-deep:#e5a92a;--green:#1d4636;--green-ink:#f3f0e4;--sans:Familjen,"Helvetica Neue",Arial,sans-serif;--gutter:clamp(20px,4vw,64px);--max:1320px;--r:28px;--header-height:76px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.6 var(--sans);-webkit-font-smoothing:antialiased;font-variant-numeric:lining-nums}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0}
h1,h2{font-weight:700;letter-spacing:-.035em;line-height:.98;text-wrap:balance}
h3,h4{font-weight:600;letter-spacing:-.01em;line-height:1.25}
a{color:inherit;text-decoration-thickness:2px;text-underline-offset:.2em}
img{max-width:100%;height:auto}
svg{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
::selection{background:var(--sun);color:var(--ink)}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.recommendations-home :focus-visible{outline-color:var(--sun)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
[hidden]{display:none!important}
.skip-link{position:absolute;left:12px;top:10px;z-index:60;padding:10px 16px;border-radius:999px;background:var(--ink);color:#fff;font-weight:600;transform:translateY(-200%)}
.skip-link:focus{transform:none}
summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}
.entry-meta{color:var(--muted);font-size:15px}
.text-link,.personal-story-link{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.text-link svg,.personal-story-link svg,.primary-button svg,.header-contact svg{transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.text-link:hover svg,.personal-story-link:hover svg,.primary-button:hover svg,.header-contact:hover svg{transform:translateX(3px)}

/* Header on the sun field */
.site-header{position:sticky;top:0;z-index:40;background:var(--sun)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(100% - 2*var(--gutter),var(--max));min-height:var(--header-height);margin-inline:auto}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.brand-icon{display:block;width:30px;height:32px;color:var(--ink)}.brand-icon svg{width:100%;height:100%;stroke:none;fill:currentColor}
.brand-word{font:700 22px/1 var(--sans);letter-spacing:-.01em}
.site-header nav{display:flex;align-items:center;gap:4px;font:600 15px/1 var(--sans)}
.site-header nav a{padding:10px 14px;border-radius:999px;text-decoration:none;white-space:nowrap;transition:background-color .2s ease}
.site-header nav a:hover{background:rgba(23,21,15,.08)}
.site-header nav a[aria-current="page"]{background:var(--ink);color:#fff}
.header-contact,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:12px 22px;border-radius:999px;background:var(--ink);color:#fff!important;font-weight:600;text-decoration:none;white-space:nowrap;transition:background-color .2s ease}
.header-contact{margin-left:8px}
.header-contact:hover,.primary-button:hover{background:#2e2b21!important}

/* Page rails and section headings */
main{display:block}
.folio-home>*,.article-page{width:min(100% - 2*var(--gutter),var(--max));margin-inline:auto}
.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:24px}
.section-heading-row h2,.recommendations-home>h2,.personal-chapter>h2,.value-zones>h2{font-size:clamp(44px,5.6vw,84px)}
.section-heading-row>p,.section-heading-row>a{color:var(--muted);font:600 16px/1.3 var(--sans)}
.section-heading-row>a{display:inline-flex;align-items:center;gap:8px;color:var(--ink);white-space:nowrap}

/* Opening on the sun field; the portrait breaks out into the paper */
.folio-home>.folio-hero{width:100%;max-width:none;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-template-areas:"title photo" "copy photo" "lead photo";column-gap:clamp(32px,5vw,80px);padding:clamp(28px,4vw,56px) max(var(--gutter),calc((100% - var(--max))/2)) 0;background:linear-gradient(var(--sun) 0 calc(100% - 120px),var(--paper) calc(100% - 120px))}
.hero-title{grid-area:title}
.hero-title h1{font-size:clamp(54px,7.2vw,118px);line-height:.92;letter-spacing:-.045em}
.hero-copy{grid-area:copy;display:flex;flex-direction:column;margin-top:30px}
.hero-subtitle{font:600 clamp(21px,1.9vw,26px)/1.3 var(--sans)}
.hero-identity{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:14px;color:#3d3828;font-size:15px}
.hero-identity h2{font:700 15px/1.4 var(--sans);letter-spacing:0}
.business-card-link{display:inline-flex;align-items:center;gap:6px;font-weight:600}.business-card-link svg{width:16px;height:16px}
.intro-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:28px}
.primary-button{min-height:54px;padding:16px 26px}
.intro-actions>a:not(.primary-button):not(.linkedin-link){display:inline-flex;align-items:center;gap:8px;font-weight:600}
.linkedin-link{display:inline-flex;align-items:center;gap:10px;font-weight:600;text-decoration:none}
.linkedin-link small{display:block;font-size:13px;font-weight:400;color:#3d3828}
.linkedin-device{width:28px;height:28px}
.hero-copy .linkedin-device{filter:brightness(0)}
.linkedin-link svg{display:inline;width:12px;height:12px;vertical-align:0}
.hero-lead{grid-area:lead;margin:28px 0 150px}
.intro-copy{max-width:56ch;color:#2f2b1f}
.hero-portrait{grid-area:photo;align-self:end;margin:24px 0 0}
.hero-portrait .professional-photo{display:block;width:100%;aspect-ratio:4/5;height:auto;object-fit:cover;object-position:center 20%;border-radius:var(--r);box-shadow:0 30px 60px -28px rgba(23,21,15,.45);animation:rise .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(24px)}}

/* Company marks: authentic, transparent, bounded */
.company-lockup{display:inline-flex;align-items:center;gap:8px;min-width:0}
.company-mark{display:block;flex:none;width:auto;height:28px;max-width:170px;object-fit:contain;object-position:left center}
.company-mark[src*="/acronis."]{height:22px}.company-mark[src*="oracle-official"]{height:17px}.company-mark[src*="co-factor"]{height:32px}
.associated-company{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px}
.associated-product{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px}
.associated-product .company-mark{height:44px;max-width:120px}
.brand-qualifier{color:var(--muted);font-size:12px}

/* Selected work: a pill selector over one sand case panel */
.home-work{padding-top:clamp(72px,9vw,128px);scroll-margin-top:calc(var(--header-height) + 24px)}
.project-index{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.project-index>a{display:inline-flex;align-items:baseline;gap:10px;padding:12px 20px;border-radius:999px;background:var(--sand);text-decoration:none;transition:background-color .2s ease}
.project-index>a:hover{background:#efe9da}
.project-index>a[aria-current="true"]{background:var(--ink);color:#fff}
.project-index strong{font:700 17px/1.2 var(--sans)}
.project-index .work-context{color:var(--muted);font-size:14px}
.project-index>a[aria-current="true"] .work-context{color:rgba(255,255,255,.72)}
.project-index .company-lockup{min-width:0;max-width:100%}
.project-index img.company-mark{max-width:100%}
.selected-work{margin-top:18px}
.folio-enhanced .work-row:not(.is-active){display:none}
.work-row{border-radius:var(--r);background:var(--sand);scroll-margin-top:calc(var(--header-height) + 24px)}
.work-row+.work-row{margin-top:14px}
.work-row.is-active{animation:rise .5s cubic-bezier(.2,.8,.2,1) both}
.work-row>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px;padding:clamp(28px,3vw,44px)}
.work-heading{display:grid;grid-template-columns:200px minmax(0,1fr);grid-template-areas:"mark title" "mark teaser" "mark role";gap:12px 40px}
.chapter-title-lockup{grid-area:mark;padding-top:10px}
.chapter-title-lockup .company-mark{height:40px;max-width:200px}.chapter-title-lockup .company-mark[src*="/acronis."]{height:30px}.chapter-title-lockup .company-mark[src*="oracle-official"]{height:24px}
.chapter-title-lockup .company-name{font:700 28px/1 var(--sans)}
.chapter-subtitle{grid-area:title;font:700 clamp(30px,3.2vw,48px)/1.02 var(--sans);letter-spacing:-.03em;text-wrap:balance}
.case-teaser{grid-area:teaser;max-width:60ch;color:var(--muted);font-size:19px}
.case-role{grid-area:role;color:var(--muted);font-size:15px;font-weight:600}
.work-row[open] .case-teaser{display:none}
.detail-control{align-self:start;display:inline-flex;align-items:center;gap:10px;padding:13px 20px;border-radius:999px;background:var(--sun);font-weight:600;white-space:nowrap}
.detail-control svg{width:16px;height:16px;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.work-row>summary:hover .detail-control{background:var(--sun-deep)}
.work-row[open] .detail-control svg{transform:rotate(45deg)}
.work-detail{padding:0 clamp(28px,3vw,44px) 44px}
.chapter-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.chapter-tabs a{padding:10px 18px;border-radius:999px;background:#fff;text-decoration:none;font-weight:600}
.chapter-tabs a:hover{background:#fbf9f3}
.chapter-tabs a[aria-selected="true"]{background:var(--ink);color:#fff}
.chapter-panel{max-width:760px}
.chapter-panel h3{margin-bottom:14px;font:700 30px/1.1 var(--sans);letter-spacing:-.02em}
.chapter-panel h4{margin:24px 0 8px;font-size:20px}
.chapter-panel p+p{margin-top:14px}
.chapter-panel ul,.article-section ul:not([class]),.role-highlights ul{display:grid;gap:10px;margin-top:10px;list-style:none}
.chapter-panel li,.article-section ul:not([class]) li,.role-highlights li{position:relative;padding-left:24px}
.chapter-panel li::before,.article-section ul:not([class]) li::before,.role-highlights li::before{position:absolute;left:0;top:.6em;width:10px;height:10px;border-radius:50%;background:var(--sun-deep);content:""}
.technology-list{margin-top:20px;color:var(--muted);font-size:15px}.technology-list strong{display:block;color:var(--ink)}
.chapter-panel-architecture:not([hidden]){display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:40px;max-width:none}
.chapter-copy p{color:var(--muted)}.chapter-copy .text-link{margin-top:18px}
.chapter-contribution{margin-top:14px}
.decision{padding:18px 0;border-top:1px solid var(--rule)}
.decision h4{margin:0 0 6px}
.decision strong{font-weight:600}

/* Architecture: soft nodes on paper, ink edges, sun numbers */
.architecture{margin:0;scroll-margin-top:calc(var(--header-height) + 24px)}
.architecture figcaption h2{font-size:clamp(26px,2.6vw,36px)}
.architecture figcaption>p{max-width:72ch;margin-top:10px;color:var(--muted)}
.chapter-graph .architecture figcaption h2{font-size:18px;letter-spacing:0}
.chapter-graph .architecture figcaption p{font-size:14px}
.architecture-map{margin:24px 0 8px}
.architecture-canvas{position:relative;width:100%;isolation:isolate}
.architecture-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.architecture-edge,.architecture-arrow{fill:none;stroke:var(--ink);stroke-width:2}
.architecture-edge-number{fill:var(--sun);stroke:var(--ink);stroke-width:1.5}
.architecture-edge-label,.architecture-edge-text{fill:var(--ink);stroke:none;text-anchor:middle;dominant-baseline:central;font:700 12px var(--sans)}
.architecture-node{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:60px;padding:12px 14px;border-radius:16px;background:#fff;box-shadow:0 0 0 2px var(--ink);color:var(--ink);font:600 14px/1.25 var(--sans);text-align:center;text-decoration:none;overflow-wrap:anywhere}
.architecture-node:hover{background:#fff8e3}
.node-responsibility{color:var(--muted);font:400 12px/1.3 var(--sans)}
.architecture-map-hint{margin-top:8px;color:var(--muted);font-size:14px}
.chapter-graph .architecture-components,.chapter-graph .architecture-nodes,.chapter-graph .architecture-flows,.chapter-graph .architecture-notes,.chapter-graph .architecture>h3{display:none}
.chapter-graph .architecture:not(:has(.architecture-map:not([hidden]))) .architecture-nodes,.chapter-graph .architecture:not(:has(.architecture-map:not([hidden]))) .architecture-flows{display:block}
.graph-key{margin-top:14px;border-top:1px solid var(--rule)}.graph-key>summary{padding:12px 0;font-weight:600}
.architecture-components,.architecture>h3,.graph-key h3{margin-top:24px;font-size:20px}
.architecture-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:12px 0 24px}
.architecture-nodes>div{padding:16px 0;border-bottom:1px solid var(--rule);min-width:0;scroll-margin-top:calc(var(--header-height) + 24px)}
.architecture-nodes>div:target{background:#fff8e3}
.architecture-nodes dt{font-weight:600}.architecture-nodes dd{color:var(--muted);font-size:16px}
.architecture-flows{display:grid;gap:10px;margin:12px 0 0;padding-left:26px!important}
.architecture-flows li::marker{font-weight:700}
.flow-arrow{display:inline-block;vertical-align:-4px;margin:0 6px}
.flow-label{display:block;color:var(--muted);font-size:15px}
.architecture-notes{margin-top:22px;padding-top:16px;border-top:1px solid var(--rule);color:var(--muted);font-size:15px}
.architecture-notes p+p{margin-top:8px}

/* Career */
.career-excerpt{padding-top:clamp(72px,9vw,128px)}
.career-excerpt-list{margin-top:28px;border-top:2px solid var(--ink)}
.career-excerpt-row{display:grid;grid-template-columns:200px minmax(0,1fr) max-content;align-items:center;gap:8px 40px;padding:24px 12px;border-bottom:1px solid var(--rule);text-decoration:none;transition:background-color .2s ease}
.career-excerpt-row:hover{background:#fff8e3}
.career-identity{display:grid;gap:8px}.career-identity strong{display:block}
.career-areas{color:var(--muted);font-size:14px;line-height:1.4}
.career-title{font:700 24px/1.15 var(--sans);letter-spacing:-.015em}
.career-date{color:var(--muted);font-size:15px;font-weight:600;text-align:right;white-space:nowrap}
.section-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:32px}
.section-actions>a:not(.primary-button){display:inline-flex;align-items:center;gap:8px;font-weight:600}

/* Colleagues on the green field */
.folio-home>.recommendations-home{width:100%;max-width:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px clamp(24px,3vw,48px);margin-top:clamp(80px,10vw,140px);padding:clamp(64px,8vw,112px) max(var(--gutter),calc((100% - var(--max))/2));background:var(--green);color:var(--green-ink)}
.recommendations-home>h2{grid-column:1/-1;color:var(--sun)}
.recommendation{display:flex;flex-direction:column;gap:22px}
.recommendations-home .recommendation{padding:28px;border-radius:var(--r);background:rgba(243,240,228,.07)}
.recommendation blockquote{font:600 clamp(20px,1.7vw,24px)/1.35 var(--sans);letter-spacing:-.01em}
.recommendations-home .recommendation blockquote{color:#fff}
.recommendation blockquote p+p{margin-top:12px}
.recommendation figcaption{display:grid;gap:2px;margin-top:auto;font-size:14px}
.recommendation figcaption>a:first-child{font-weight:600}
.recommendations-home .recommendation figcaption a{color:var(--sun)}
.recommendations-home .recommendation figcaption p{color:rgba(243,240,228,.78)}
.recommendations-home>.text-link{grid-column:1/-1;justify-self:start;padding:14px 22px;border-radius:999px;background:var(--sun);color:var(--ink);text-decoration:none}

/* The person */
.personal-chapter{padding-top:clamp(80px,10vw,140px)}
.personal-story-layout{display:grid;grid-template-columns:minmax(240px,.45fr) minmax(0,1fr);align-items:start;gap:clamp(32px,6vw,96px);margin-top:40px}
.story-portrait{display:block;width:100%;max-width:440px;aspect-ratio:1;object-fit:cover;object-position:center 22%;border-radius:50%;box-shadow:0 0 0 14px var(--sun)}
.story-intro{max-width:30ch;font:600 clamp(24px,2.3vw,32px)/1.32 var(--sans);letter-spacing:-.015em}
.story-body>.personal-story-link{margin-top:22px}
.story-afterword{display:grid;gap:12px;margin-top:36px;padding-top:22px;border-top:1px solid var(--rule);color:var(--muted)}
.story-afterword .personal-story-link{color:var(--ink)}
.about-references{display:grid;gap:8px;color:var(--muted);font-size:15px}
.about-references p{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.personal-source{display:grid!important;gap:2px}
.speaking-identity{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:600}
.speaking-identity .company-mark{height:34px;max-width:120px}

/* Values: three sand panels, the middle one in sun */
.value-zones{padding-top:clamp(80px,10vw,140px)}
.value-zones dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px);margin-top:40px}
.value-zones dl>div{padding:30px;border-radius:var(--r);background:var(--sand)}
.value-zones dl>div:nth-child(2){background:var(--sun)}
.value-zones dt{font:700 28px/1.1 var(--sans);letter-spacing:-.02em}
.value-zones dd{margin-top:12px;color:var(--muted)}
.value-zones dl>div:nth-child(2) dd{color:#2f2b1f}
.reference-links{display:grid;gap:6px;margin-top:16px;list-style:none;font-size:15px}

/* Close on the sun field */
.folio-home>.closing-panel{width:100%;max-width:none;margin-top:clamp(80px,10vw,140px);padding:clamp(56px,7vw,104px) max(var(--gutter),calc((100% - var(--max))/2)) 40px;background:var(--sun)}
.closing-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);column-gap:clamp(32px,6vw,96px)}
.closing-top h2{grid-row:1/4;font-size:clamp(56px,7vw,112px);line-height:.92}
.closing-top .linkedin-link{grid-row:4;margin-top:24px;justify-self:start}
.closing-top .linkedin-device{filter:brightness(0)}
.closing-top>a:not(.linkedin-link){grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:2px solid var(--ink);font:700 26px/1.1 var(--sans);letter-spacing:-.02em;text-decoration:none}
.closing-top>a:nth-of-type(2){grid-row:1;border-top:2px solid var(--ink)}.closing-top>a:nth-of-type(3){grid-row:2}.closing-top>a:nth-of-type(4){grid-row:3}
.closing-top>a:not(.linkedin-link) svg{transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.closing-top>a:not(.linkedin-link):hover svg{transform:translateX(5px)}
.expanded-contact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:48px;border-top:2px solid var(--ink)}
.expanded-contact .contact-rows{display:contents}
.expanded-contact .contact-rows>div{display:grid;gap:6px;padding:20px 20px 20px 0;border-right:1px solid rgba(23,21,15,.25)}
.expanded-contact .contact-rows>div+div{padding-left:20px}
.expanded-contact .contact-rows>div>span:first-child{font-size:13px;font-weight:600}
.expanded-contact .contact-rows [data-contact-email],.expanded-contact .contact-rows [data-contact-phone]{color:var(--ink);font:700 24px/1.25 var(--sans);overflow-wrap:anywhere}
.expanded-contact .contact-verification{padding:20px 0 20px 20px;color:#3d3828;font-size:14px}
.expanded-contact .contact-verification [data-contact-status]{color:#3d3828}
.expanded-contact .contact-verification p+p{margin-top:8px}
.expanded-contact .contact-verification button{margin-top:10px;padding:10px 16px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:600 14px/1 var(--sans);cursor:pointer}
.expanded-contact .contact-files{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px 28px;padding-top:20px;border-top:1px solid rgba(23,21,15,.25)}
.expanded-contact .contact-files a{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.closing-colophon{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-top:48px;padding-top:18px;border-top:1px solid rgba(23,21,15,.25);font-size:13px}

/* Reading pages: a sun band carries the page title, then paper */
.breadcrumbs{background:var(--sun)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;width:min(100% - 2*var(--gutter),var(--max));margin:0 auto;padding:8px 0 0;list-style:none;font-size:14px;font-weight:600}
.breadcrumbs li{display:inline-flex;align-items:center;gap:10px}
.breadcrumbs a{color:#3d3828}
.breadcrumb-separator{color:#3d3828}
.article-page{position:relative;padding-bottom:clamp(48px,6vw,88px)}
.article-header{margin-bottom:clamp(28px,3vw,44px);background:var(--sun);box-shadow:0 0 0 100vmax var(--sun);clip-path:inset(-260px -100vmax 0 -100vmax)}
.section-nav,.contents-nav{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px}
.section-nav a,.contents-nav a{padding:9px 16px;border-radius:999px;background:rgba(23,21,15,.08);font-weight:600;font-size:14px;text-decoration:none}
.section-nav a:hover{background:rgba(23,21,15,.14)}
.contents-nav{margin-top:28px}
.contents-nav a{background:var(--sand)}
.contents-nav a:hover{background:#efe9da}
.article-header{max-width:1000px;padding:clamp(28px,4vw,56px) 0 clamp(28px,4vw,48px)}
.article-header h1{font-size:clamp(46px,6vw,96px);line-height:.94;letter-spacing:-.04em}
.article-lead{max-width:60ch;margin-top:22px;color:#2f2b1f;font-size:clamp(18px,1.5vw,21px)}
.article-header>p:not(.article-lead):not(.entry-meta):not(.case-role):not(.cv-position){max-width:62ch;margin-top:12px;color:#3d3828}
.article-section{max-width:1000px;margin-top:clamp(28px,3vw,44px);padding:clamp(28px,3vw,44px);border-radius:var(--r);background:var(--sand);scroll-margin-top:calc(var(--header-height) + 24px)}
.article-section>h2{margin-bottom:18px;font-size:clamp(30px,3vw,44px)}
.article-section>p{max-width:70ch}
.article-section>p+p{margin-top:14px}
.page-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;margin-top:clamp(48px,6vw,88px);padding:24px 28px;border-radius:var(--r);background:var(--green);color:var(--green-ink);font-size:15px}
.page-footer a{color:var(--sun);font-weight:600}

/* Case pages */
.case-page .article-header{max-width:none}
.case-page .article-header h1{max-width:20ch;font-size:clamp(42px,5.4vw,84px)}
.case-company{display:inline-flex;margin-bottom:22px;padding:14px 20px;border-radius:999px;background:#fff}
.case-company .company-mark{height:36px;max-width:220px}
.case-role{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:20px;font-weight:600}
.case-role span{color:#3d3828;font-weight:400}
.case-page .entry-meta{margin-top:6px;color:#3d3828}
.case-page .architecture{max-width:none;margin-top:clamp(28px,3vw,44px);padding:clamp(28px,3vw,44px);border-radius:var(--r);background:#fff;box-shadow:inset 0 0 0 2px var(--sand)}
.evidence-list{display:grid;gap:12px}

/* Work index */
.article-section:has(.case-index){max-width:none}
.case-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.case-index article{display:grid;align-content:start;gap:12px;padding:28px;border-radius:22px;background:#fff;scroll-margin-top:calc(var(--header-height) + 24px)}
.case-index h3{font-size:24px}.case-index h3 a{text-decoration:none}
.case-index .company-mark{height:32px}.case-index .company-mark[src*="oracle-official"]{height:20px}
.case-stations{display:flex;flex-wrap:wrap;gap:6px}
.case-stations span{padding:5px 12px;border-radius:999px;background:var(--sun);font-size:13px;font-weight:600}
.case-index .entry-meta{font-weight:600}
.case-index article>p:not(.entry-meta):not(.case-stations){color:var(--muted)}
.case-index article>a{justify-self:start;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:var(--ink);color:#fff;font-weight:600;font-size:14px;text-decoration:none}

/* Career page */
.disclosure-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 18px}
.disclosure-tools button{min-height:44px;padding:10px 18px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:600 14px/1 var(--sans);cursor:pointer}
.disclosure-tools button:disabled{background:rgba(23,21,15,.12);color:var(--muted);cursor:default}
.disclosure-status{color:#3d3828;font-size:14px}
.career-list{position:relative;display:grid;gap:12px;max-width:1000px}
.career-progress{position:fixed;left:0;top:var(--header-height);z-index:41;width:100%;height:4px;background:var(--ink);transform:scaleX(0);transform-origin:left}
.career-role{border-radius:22px;background:var(--sand);scroll-margin-top:calc(var(--header-height) + 24px);transition:background-color .2s ease}
.career-role[open]{background:#fff;box-shadow:inset 0 0 0 2px var(--sand)}
.career-role>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:24px 28px}
.career-role>summary>span:first-child{display:grid;gap:6px}
.career-role summary strong{display:block}
.role-focus{color:var(--muted);font-size:14px}
.role-title{font:700 clamp(20px,1.8vw,26px)/1.15 var(--sans);letter-spacing:-.015em}
.career-role summary .entry-meta{font-weight:600}
.disclosure-label{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;background:var(--sun);font-size:14px;font-weight:600;white-space:nowrap}
.disclosure-label svg{width:14px;height:14px;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.career-role[open] .disclosure-label svg{transform:rotate(45deg)}
.role-alias{color:var(--muted)}
.role-detail{display:grid;gap:14px;max-width:72ch;padding:0 28px 30px}
.role-location{color:var(--muted);font-size:15px}
.role-highlights h3,.role-detail>h3{margin-top:8px;font-size:19px}
.role-period{padding-top:14px;border-top:1px solid var(--rule)}
.permalink{font-size:14px}
.qualification-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.qualification-list>div{display:grid;gap:6px;min-width:0;padding:20px;border-radius:18px;background:#fff}
.qualification-list dt{display:flex;align-items:center;gap:14px;font-weight:600}
.qualification-list dd{display:flex;flex-wrap:wrap;gap:2px 12px;color:var(--muted);font-size:15px}
.qualification-mark{flex:none;width:auto;max-width:56px;max-height:40px;object-fit:contain}
.language-flag{display:inline-block;width:28px;height:auto;margin-right:8px;vertical-align:-3px}

/* About */
.about-page .personal-story-layout{grid-template-columns:minmax(220px,.36fr) minmax(0,1fr);margin-top:0}
.about-page .story-portrait{position:sticky;top:calc(var(--header-height) + 32px)}
.personal-moments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.story-column{display:contents}
.personal-moment{padding:26px;border-radius:22px;background:var(--sand)}
.personal-moment:nth-child(3n+2){background:#fff8e3}
.personal-moment h2{margin-bottom:10px;font-size:clamp(22px,2vw,28px);letter-spacing:-.02em}
.personal-moment p{color:#2f2b1f}
.personal-moment p+p{margin-top:12px}
.personal-moment .speaking-identity{margin:2px 0 12px}
.hobbies-section{background:var(--green)!important;color:var(--green-ink)}
.hobbies-section p{max-width:56ch;font:600 clamp(19px,1.7vw,23px)/1.45 var(--sans)}
.hobbies-section .text-link{margin-top:14px;color:var(--sun)}
.about-page .about-references{max-width:1000px;margin-top:28px;padding:24px 28px;border-radius:22px;background:var(--sand)}

/* Speaking, recommendations, contact, CV */
.speaking-entry{display:grid;gap:10px;padding:24px 0;border-top:1px solid var(--rule);scroll-margin-top:calc(var(--header-height) + 24px)}
.speaking-entry:first-of-type{border-top:0;padding-top:0}
.speaking-entry h3{font-size:24px}
.speaking-entry p{max-width:70ch}
.recommendations-page .article-header{max-width:1000px}
.recommendations-route{display:inline-flex;margin:0;padding:8px 16px;border-radius:999px;background:rgba(23,21,15,.08);font-size:15px;font-weight:600}
.recommendations-list{display:grid;gap:16px;margin-top:28px}
.recommendations-list>.recommendation{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);grid-template-areas:"year who" "pull who" "text who";gap:0 clamp(28px,5vw,80px);padding:clamp(28px,3vw,44px);border-radius:var(--r);background:var(--sand);scroll-margin-top:calc(var(--header-height) + 24px)}
.recommendations-list>.recommendation:nth-child(odd){background:#fff8e3}
.recommendation-year{grid-area:year;display:inline-flex;justify-self:start;padding:6px 14px;border-radius:999px;background:var(--ink);color:#fff;font-size:15px;font-weight:700}
.recommendation-pull{grid-area:pull;max-width:28ch;margin-top:18px;font:700 clamp(26px,2.6vw,38px)/1.12 var(--sans);letter-spacing:-.025em;text-wrap:balance}
.recommendations-list blockquote{grid-area:text;max-width:68ch;margin-top:22px;color:var(--muted);font:400 17px/1.65 var(--sans);letter-spacing:0}
.recommendations-list blockquote mark{background:var(--sun);color:var(--ink);padding:0 .15em;border-radius:4px}
.recommendations-list figcaption{grid-area:who;align-self:start;margin-top:0;position:sticky;top:calc(var(--header-height) + 24px);padding:18px;border-radius:18px;background:#fff}
.contact-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.contact-list>div{display:grid;gap:6px;padding:20px;border-radius:18px;background:#fff}
.contact-list dt{color:var(--muted);font-size:14px;font-weight:600}
.contact-list dd{font:700 clamp(20px,1.8vw,26px)/1.25 var(--sans);overflow-wrap:anywhere}
.download-list{display:grid;gap:10px;margin-top:16px;list-style:none}
.download-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding:18px 22px;border-radius:18px;background:#fff}
.download-list a{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:18px}
.download-note{margin-top:16px;color:var(--muted);font-size:15px}
.cv-position{margin-top:14px;font:700 clamp(20px,1.8vw,26px)/1.25 var(--sans)}
.capability-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.capability-list>div{padding:20px;border-radius:18px;background:#fff}
.capability-list dt{font-weight:600}.capability-list dd{margin-top:6px;color:var(--muted);font-size:15px}
.cv-summary-list{display:grid;gap:10px;list-style:none}
.cv-summary-list li{display:grid;gap:4px;padding:18px 20px;border-radius:18px;background:#fff}
.cv-summary-list strong{font-size:19px}
.back-summary{font-weight:600;font-size:14px}
.speaking-continuation{margin-top:14px}
.speaking-continuation ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;list-style:none}
.speaking-continuation li{padding:0!important;border-radius:18px;background:#fff}
.speaking-continuation li::before{display:none}
.speaking-continuation li>a{display:flex;flex-direction:column;align-items:flex-start;gap:10px;height:100%;padding:18px;text-decoration:none}
.speaking-continuation li>a>span:last-child{font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.recovery-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px;list-style:none;font-weight:600}
.action-arrow{display:inline-block}

@media(max-width:1000px){
 :root{--header-height:118px}
 .header-inner{position:relative;flex-wrap:wrap;gap:4px 24px;padding-block:12px 10px}
 .brand{min-height:46px}
 .site-header nav{width:calc(100% + 2*var(--gutter));margin-inline:calc(-1*var(--gutter));padding:0 var(--gutter);overflow-x:auto;scrollbar-width:none}
 .site-header nav::-webkit-scrollbar{display:none}
 .site-header nav .header-contact{position:absolute;top:12px;right:0;margin:0}
 .folio-home>.folio-hero{grid-template-columns:1fr;grid-template-areas:"title" "copy" "photo" "lead";background:var(--sun)}
 .hero-portrait{max-width:620px}
 .hero-lead{margin:28px 0 56px}
 .folio-home>.recommendations-home{grid-template-columns:1fr}
 .work-heading{grid-template-columns:1fr;grid-template-areas:"mark" "title" "teaser" "role"}
 .chapter-panel-architecture:not([hidden]){grid-template-columns:1fr}
 .personal-moments{grid-template-columns:1fr}
}
@media(max-width:700px){
 :root{--header-height:0px}
 body{font-size:17px}
 .site-header{position:relative}
 .brand-word{font-size:18px}.brand-icon{width:24px;height:26px}
 .site-header nav .header-contact{min-height:40px;padding:10px 14px;font-size:14px}
 .site-header nav .header-contact svg{display:none}
 .hero-title h1{font-size:clamp(46px,12.5vw,64px)}
 .section-heading-row{flex-direction:column;align-items:flex-start;gap:12px}
 .work-row>summary{grid-template-columns:1fr}
 .detail-control{justify-self:start}
 .career-excerpt-row{grid-template-columns:1fr;padding-inline:0}
 .career-date{text-align:left;white-space:normal}
 .personal-story-layout,.about-page .personal-story-layout,.value-zones dl,.closing-top,.expanded-contact,.case-index,.qualification-list,.contact-list,.capability-list,.architecture-nodes{grid-template-columns:1fr}
 .story-portrait{max-width:260px}
 .about-page .story-portrait{position:static}
 .closing-top h2,.closing-top>a:not(.linkedin-link),.closing-top .linkedin-link{grid-column:1;grid-row:auto}
 .expanded-contact .contact-rows>div,.expanded-contact .contact-rows>div+div{padding:16px 0;border-right:0;border-bottom:1px solid rgba(23,21,15,.25)}
 .expanded-contact .contact-verification{padding:16px 0}
 .recommendations-list>.recommendation{grid-template-columns:1fr;grid-template-areas:"year" "who" "pull" "text"}
 .recommendations-list figcaption{position:static;margin-top:16px}
 .recommendation-pull{font-size:24px}
 .career-role>summary{grid-template-columns:1fr;padding:20px}
 .disclosure-label{justify-self:start}
 .role-detail{padding:0 20px 24px}
 .article-section{padding:22px}
 .page-footer{padding:20px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{
 body{color:#000;font-size:11pt}
 .site-header,.breadcrumbs,.section-nav,.contents-nav,.intro-actions,.project-index,.detail-control,.disclosure-tools,.disclosure-label,.permalink,.back-summary,.chapter-tabs,.contact-verification,.section-actions,.closing-top>a,.career-progress{display:none!important}
 .folio-home>*,.article-page{width:100%;max-width:none;margin:0}
 .article-header{background:none;box-shadow:none;clip-path:none}
 .folio-home>.folio-hero,.folio-home>.recommendations-home,.folio-home>.closing-panel,.article-section,.page-footer,.work-row,.career-role,.personal-moment{background:#fff!important;color:#000!important;box-shadow:none!important}
 .folio-home>.folio-hero{display:block;padding:0}.hero-portrait .professional-photo{width:140px;animation:none}
 details::details-content{display:block!important;content-visibility:visible!important}
 .work-row::details-content,.graph-key::details-content,.career-role::details-content{display:block!important;content-visibility:visible!important}
 .folio-enhanced .work-row:not(.is-active){display:block}
 .chapter-panel[hidden]{display:block!important}.chapter-panel-architecture{display:block!important}.chapter-panel{max-width:none!important;break-inside:auto}
 .career-role .role-detail{display:block!important}.career-role{break-inside:auto}
 .architecture-map{display:none!important}.architecture-nodes>div,.decision,.qualification-list>div,.career-excerpt-row{break-inside:avoid}
 .career-excerpt .company-mark{display:none}
 .career-excerpt .company-name{position:static;width:auto;height:auto;margin:0;padding:0;overflow:visible;clip:auto;white-space:normal;color:#000}
 .career-excerpt .section-heading-row h2{color:#000}
 .recommendations-home>h2,.recommendations-home .recommendation blockquote,.recommendations-home .recommendation figcaption a,.recommendations-home .recommendation figcaption p,.page-footer a{color:#000!important}
}

/* The sun band already carries its own bottom spacing; the first block after it starts flush. */
.article-header+.article-section,.article-header+.case-index,.article-header+.recommendations-list{margin-top:0}
/* The header band's colour field must sit under the breadcrumbs and page links above it. */
.breadcrumbs,.section-nav{position:relative;z-index:1}
/* The sun ring is drawn outside the portrait box; keep its outer edge on the spacing grid. */
.story-portrait{margin:14px}
@media(max-width:700px){.story-portrait{margin:14px 14px 14px 14px}}
/* Phones: every page stays visible; the pill nav wraps instead of hiding entries off-screen. */
@media(max-width:700px){.site-header nav{flex-wrap:wrap;overflow:visible;gap:4px 2px;padding-bottom:4px}.site-header nav a{padding:8px 10px;font-size:14px}}
/* Phones: the homepage personal chapter reads as one centred column, portrait first. */
@media(max-width:700px){
 .personal-chapter{text-align:center}
 .personal-chapter .personal-story-layout{justify-items:center}
 .personal-chapter .story-portrait{margin:14px auto}
 .personal-chapter .story-intro{margin-inline:auto}
 .personal-chapter .story-afterword,.personal-chapter .about-references p{justify-items:center;justify-content:center}
 .personal-chapter .personal-source{justify-items:center}
}
