@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/dm-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/dm-sans-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/dm-sans-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/dm-sans-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/manrope-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/manrope-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/manrope-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url('assets/fonts/manrope-latin-800-normal.woff2') format('woff2')}
:root{color-scheme:dark;--ink:#101114;--surface:#181a1f;--paper:#f3f4f6;--white:#fafafa;--muted:#a6a8b2;--blue:#7898ff;--blue-deep:#294cda;--line:#33353d;--font:'DM Sans',Arial,sans-serif;--display:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;background:var(--ink);color:var(--white);font:1rem/1.65 var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}::selection{background:var(--blue);color:var(--ink)}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--display);font-weight:600}h2{font-size:clamp(2.4rem,4.1vw,4.2rem);line-height:1.12;letter-spacing:-.055em}h2 span{color:var(--blue)}h3{letter-spacing:-.035em}h4{font-size:1.25rem;line-height:1.4;letter-spacing:-.02em}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.eyebrow{font-size:.875rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}.skip-link{position:fixed;z-index:20;top:1rem;left:1rem;padding:1rem;background:var(--white);color:var(--ink);transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{width:min(1400px,calc(100% - 80px));margin:auto;display:flex;align-items:center;justify-content:space-between;height:108px;border-bottom:1px solid var(--line)}.monogram{font-family:var(--display);font-size:2.3rem;font-weight:800;line-height:1;letter-spacing:-.09em}.monogram span{color:var(--blue)}nav{display:flex;gap:2.25rem;font-size:.875rem;color:#c8cad2}nav a,.header-contact,.social-links a{transition:color .18s}nav a:hover,.header-contact:hover,.social-links a:hover{color:var(--blue)}.header-contact{font-size:.875rem}.header-contact span{margin-left:1.5rem;color:var(--blue)}.hero{padding-top:32px}.hero-top{display:flex;justify-content:space-between;align-items:center}.hero-top .eyebrow{color:var(--blue);letter-spacing:.09em}.edition{color:var(--muted);font-size:.8125rem}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:72px;align-items:center;padding:25px 0 40px}h1{font-size:clamp(4.2rem,7vw,6.6rem);line-height:1.04;letter-spacing:-.06em;font-weight:600;margin-left:-.065em}h1 span{color:var(--blue)}.hero-statement{font:500 clamp(1.4rem,2vw,1.75rem)/1.4 var(--display);letter-spacing:-.035em;margin-top:24px}.hero-description{color:var(--muted);max-width:440px;margin-top:18px;line-height:1.7}.hero-actions{display:flex;gap:28px;align-items:center;margin-top:30px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:26px;padding:14px 21px;font-size:.875rem;font-weight:600;border:1px solid transparent;transition:background .2s,transform .2s}.primary{background:var(--blue);color:#0d142b}.primary:hover{background:#a3b9ff;transform:translateY(-2px)}.text-button{padding:8px 0;border:0;background:none;color:inherit;font-size:.875rem;text-align:left}.text-button:hover{color:var(--blue)}.text-button span{margin-left:10px}.hero-visual{position:relative;padding-top:0;max-width:340px;width:100%;justify-self:end}.portrait-frame{background:#272a32;position:relative;border-top:3px solid var(--blue)}.portrait-frame img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center;filter:saturate(.85);opacity:1}.portrait-caption{padding:15px 18px;display:flex;justify-content:space-between;align-items:end;font-size:.875rem;line-height:1.5}.caption-mark{color:var(--muted);font-size:.75rem;letter-spacing:.1em}.experience-note{display:flex;align-items:center;gap:20px;margin-top:16px;border-bottom:1px solid var(--line);padding-bottom:16px}.experience-note strong{font:500 3.6rem/1 var(--display);letter-spacing:-.06em}.experience-note strong span{color:var(--blue);font-size:3rem}.experience-note p{color:var(--muted);font-size:.875rem;line-height:1.6}.hero-footer{border-top:1px solid var(--line);padding:22px 0 26px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.8125rem}.hero-footer a span{margin-left:18px;color:var(--blue)}.company-strip{border-top:1px solid var(--line);padding:34px 0 43px;background:#15161a}.company-strip-label{text-transform:uppercase;font-size:.75rem;letter-spacing:.12em;color:var(--muted);margin-bottom:22px}.company-names{display:flex;flex-wrap:wrap;gap:24px 38px;justify-content:flex-start;align-items:center;font:600 clamp(1.2rem,2.1vw,1.8rem)/1.2 var(--display);letter-spacing:-.045em;color:#dddfe6}.company-light{font-weight:400}.section-light{background:var(--paper);color:var(--ink);color-scheme:light}.work{padding:105px 0}.section-heading{display:grid;grid-template-columns:1fr 1.2fr;gap:26px 100px;margin-bottom:55px}.section-heading .eyebrow{grid-column:1/-1;color:var(--muted)}.section-light .eyebrow{color:#606573}.section-light h2 span{color:var(--blue-deep)}.section-heading>p:last-child{align-self:end;max-width:410px;color:var(--muted)}.section-light .section-heading>p:last-child{color:#5d616c}.work-item{display:grid;grid-template-columns:40px 1fr 1.4fr;gap:30px;padding:38px 0;border-top:1px solid #cfd1d9}.work-index{font-size:.8125rem;color:#5d616c;padding-top:6px;padding-left:10px}.work-company h3{font-size:1.7rem;line-height:1.25}.work-company p{font-size:.875rem;color:#5d616c;margin-top:9px}.work-date{display:block;font-size:.8125rem;color:#656a78;margin-top:16px}.work-content>p{color:#525864;margin-top:13px;max-width:600px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none}.tags li{font-size:.75rem;line-height:1.4;border:1px solid #cdd0d8;border-radius:3px;padding:5px 9px;color:#4c525e}.earlier-work{border-block:1px solid #cfd1d9}.earlier-work summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:.9375rem;padding:22px 0}.earlier-work summary::-webkit-details-marker{display:none}.summary-icon{font-size:1.6rem;line-height:1;color:var(--blue-deep);transition:transform .2s}.earlier-work[open] .summary-icon{transform:rotate(45deg)}.earlier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding:12px 0 30px}.earlier-grid h3{font-size:1.1rem;margin-bottom:12px}.earlier-grid p{color:#525864}.caddie{margin:0 0 48px;background:#dde5ff;padding:38px;display:grid;grid-template-columns:1fr 1.25fr;gap:55px;border-left:3px solid var(--blue-deep)}.caddie .eyebrow{font-size:.75rem;letter-spacing:.06em;color:#435687}.caddie h3{font-size:2.7rem;margin-top:14px;letter-spacing:-.06em}.caddie h3 span{color:var(--blue-deep);font-size:2rem;margin-left:20px}.caddie-role{font-size:.875rem;color:#425277;margin-top:7px}.caddie>div>p:not(.eyebrow):not(.caddie-role){color:#445375;margin-top:13px}.caddie .tags li{border-color:#b4c2e8;color:#3d507d}.expertise{padding-block:105px 115px}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.expertise-grid article{padding-top:22px;border-top:1px solid var(--line)}.expertise-symbol{font-size:.8125rem;color:var(--blue)}.expertise-grid h3{font-size:1.7rem;margin-top:27px}.expertise-grid p{color:var(--muted);margin-top:14px;max-width:325px}.expertise-grid ul{list-style:none;padding:0;margin:25px 0 0}.expertise-grid li{border-top:1px solid #272930;padding:10px 0;font-size:.9375rem;color:#dedfe5}.about{padding:105px 0}.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:100px}.about h2{margin-top:33px}.about-copy .large-copy{font:500 1.7rem/1.5 var(--display);letter-spacing:-.025em;color:var(--ink)}.about-copy>p{color:#5d616c;margin-top:24px}.about-copy>p:first-child{margin-top:0}.principles{margin-top:34px;border-top:1px solid #cfd1d9}.principles div{display:flex;gap:22px;border-bottom:1px solid #cfd1d9;padding:14px 0}.principles span{color:var(--blue-deep);font-size:.8125rem;align-self:center}.principles p{font-weight:500}.contact{padding-block:100px}.contact .eyebrow{color:var(--muted)}.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;margin-top:38px;align-items:end}.contact h2{font-size:clamp(2.5rem,5.2vw,5.1rem)}.contact-info>p{color:var(--muted);max-width:390px}.email-link{display:flex;justify-content:space-between;gap:12px;font-size:clamp(1rem,1.7vw,1.45rem);padding:25px 0 16px;border-bottom:1px solid var(--line);letter-spacing:-.03em}.email-link span{color:var(--blue)}.social-links{display:flex;align-items:center;flex-wrap:wrap;gap:26px;font-size:.875rem;margin-top:20px}.site-footer{display:flex;justify-content:space-between;gap:22px;border-top:1px solid var(--line);padding-block:25px;color:var(--muted);font-size:.75rem}

.company-names>span,.company-names>a{white-space:nowrap}
.company-names>a:hover{color:var(--blue)}
.former-name{display:block;font:400 .875rem/1.5 var(--font);letter-spacing:0;color:#5d616c;margin-top:5px}
.company-link{text-decoration:underline;text-decoration-color:#aab0c0;text-underline-offset:5px}
.company-link:hover{color:var(--blue-deep)}
.earlier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-engagements{margin-top:52px}
.project-heading{margin-bottom:25px}
.project-heading h3{font-size:1.7rem;line-height:1.35;margin-top:12px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.project-card{border-top:2px solid #a8b7e6;padding-top:23px;min-width:0}
.project-type{font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;color:#59698e}
.project-card h4{font-size:1.5rem;margin-top:13px}
.project-role{font-size:.875rem;color:#525864;margin-top:8px}
.project-date{font-size:.8125rem;color:#656a78;margin-top:6px}
.project-description{margin-top:18px;color:#525864}

@media(min-width:1400px){.hero-grid{padding-top:30px}.hero-visual{max-width:360px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.site-header{width:calc(100% - 48px);height:90px}.hero-grid{gap:35px;grid-template-columns:1.1fr .9fr}h1{font-size:clamp(3.8rem,8vw,5.5rem)}.hero-statement{font-size:1.5rem}.hero-actions{flex-wrap:wrap;gap:12px 22px}.hero-description{font-size:1rem}.experience-note{gap:16px}.experience-note strong{font-size:3.8rem}.section-heading,.about-grid{gap:25px 50px}.work-item{grid-template-columns:24px .85fr 1.2fr;gap:20px}.expertise-grid{gap:25px}.caddie{gap:30px;padding:28px}.contact-grid{gap:35px}.hero-footer{font-size:.75rem}.company-names{flex-wrap:wrap;justify-content:flex-start;gap:20px 38px}}
@media(max-width:700px){html{scroll-padding-top:2rem}.wrap{width:calc(100% - 40px)}.site-header{width:calc(100% - 40px);height:78px}nav{gap:18px;font-size:.8125rem}nav a:last-child{display:none}.header-contact{font-size:.8125rem}.header-contact span{margin-left:5px}.monogram{font-size:2rem}.hero{padding-top:28px}.hero-top .eyebrow{font-size:.75rem;letter-spacing:.045em}.edition{display:none}.hero-grid{grid-template-columns:1fr;gap:40px;padding-top:27px;padding-bottom:32px}h1{font-size:clamp(3.5rem,14vw,5.5rem)}.hero-statement{margin-top:20px;font-size:1.45rem}.hero-description{max-width:100%}.hero-actions{gap:22px}.hero-visual{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;max-width:none;align-items:end}.portrait-frame img{aspect-ratio:auto}.portrait-caption{padding:10px 12px;font-size:.75rem}.caption-mark{display:none}.experience-note{display:block;border:0;margin:0;padding-bottom:5px}.experience-note strong{font-size:3.6rem}.experience-note p{margin-top:16px;font-size:.8125rem}.hero-footer{flex-wrap:wrap;gap:8px 20px;padding-block:18px}.hero-footer a{display:none}.company-strip{padding-block:25px 30px}.company-names{gap:20px 30px;font-size:1.15rem}.company-strip-label{font-size:.75rem}.work,.about{padding-block:65px}.section-heading{grid-template-columns:1fr;gap:22px;margin-bottom:35px}.section-heading .eyebrow{grid-column:auto}.section-heading>p:last-child{max-width:none}.work-item{grid-template-columns:30px 1fr;gap:12px;padding-block:28px}.work-index{padding-left:6px}.work-company h3{font-size:1.5rem}.work-content{grid-column:2}.work-company p{margin-top:5px}.work-date{margin-top:8px}.work-content h4{margin-top:12px;font-size:1.125rem}.earlier-grid{grid-template-columns:1fr;gap:24px}.project-grid{grid-template-columns:1fr;gap:30px}.project-engagements{margin-top:35px}.caddie{grid-template-columns:1fr;gap:24px;margin-bottom:32px;padding:24px}.caddie h3{font-size:2.5rem}.expertise{padding-block:65px}.expertise-grid{grid-template-columns:1fr;gap:35px}.expertise-grid h3{margin-top:15px}.expertise-grid p{max-width:none}.expertise-grid ul{margin-top:20px}.about-grid{grid-template-columns:1fr;gap:35px}.about h2{margin-top:24px}.about-copy .large-copy{font-size:1.45rem}.contact{padding-block:65px}.contact-grid{grid-template-columns:1fr;gap:35px;margin-top:27px}.contact h2{font-size:clamp(2.5rem,10.5vw,4rem)}.email-link{font-size:1.1rem}.site-footer{flex-wrap:wrap;gap:12px;font-size:.75rem}.site-footer>span:nth-child(2){display:none}.site-footer a{margin-left:auto}.eyebrow{font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{@page{margin:15mm}*{background:transparent!important;color:#111!important;box-shadow:none!important}body{font:10pt/1.5 Arial,sans-serif}.wrap{width:100%}.site-header,.hero-visual,.hero-footer,.hero-actions,.company-strip,.contact .eyebrow,.site-footer,.skip-link{display:none!important}.hero{padding:0}.hero-top{margin:0}.hero-grid{display:block;padding:15px 0}.hero-description{max-width:none}.hero-statement{font-size:15pt;margin-top:10px}.hero-statement br{display:none}h1{font-size:35pt;letter-spacing:-.04em;line-height:1.1}h1 br{display:initial}h2{font-size:23pt}h3,.work-company h3{font-size:14pt}h4,.work-content h4{font-size:11pt}.hero-description{margin-top:10px}.edition{display:none}.section-heading{display:block;margin-bottom:15px}.section-heading .eyebrow{margin-bottom:8px}.section-heading>p:last-child{max-width:none;margin-top:10px}.work,.about,.expertise,.contact{padding:20px 0}.work-item{grid-template-columns:20px 1fr 1.7fr;gap:12px;padding:15px 0;break-inside:avoid}.work-company p,.work-date{font-size:9pt}.work-content p{margin-top:7px}.tags{margin-top:10px}.tags li{font-size:8pt;padding:2px 5px}.earlier-work{display:block}.earlier-work summary{display:none}.earlier-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:15px 0}.earlier-grid article{break-inside:avoid}.earlier-grid h3{font-size:12pt}.earlier-grid p{font-size:10pt}.project-engagements{margin-top:20px}.project-heading{margin-bottom:15px}.project-heading h3{font-size:14pt}.project-grid{display:block}.project-card{padding:12px 0;break-inside:avoid}.project-card h4{font-size:13pt;margin-top:6px}.project-role,.project-date,.project-type{font-size:9pt}.project-description{margin-top:10px}.caddie{margin:0 0 15px;padding:15px;gap:20px;break-inside:avoid}.caddie h3{font-size:23pt}.expertise-grid{gap:20px}.expertise-grid article{break-inside:avoid}.expertise-grid h3{font-size:14pt;margin-top:10px}.expertise-grid p{font-size:10pt}.expertise-grid li{font-size:9pt;padding:5px 0}.about-grid{display:block}.about h2{margin-top:10px}.about h2 br{display:none}.about-copy .large-copy{font-size:12pt;margin-top:15px}.principles{display:none}.contact h2{font-size:23pt}.contact h2 br{display:none}.contact-grid{display:block;margin-top:0}.contact-info>p{max-width:none;margin-top:10px}.email-link{font-size:12pt;padding:10px 0}.social-links .print-button{display:none}.social-links a:after{content:' (' attr(href) ')';font-size:8pt}.social-links{gap:15px;font-size:10pt}}

/* Detail disclosures remain readable inline when scripting is unavailable. */
.entry-details{margin-top:20px}
.entry-details>summary{width:fit-content;list-style:none;cursor:pointer;color:var(--blue-deep);font-size:.875rem;font-weight:600;padding:6px 0;display:flex;align-items:center;gap:15px}
.entry-details>summary::-webkit-details-marker{display:none}
.entry-details>summary:hover{text-decoration:underline;text-underline-offset:4px}
.entry-detail-content{font-size:1rem;line-height:1.7;color:#525864}
.entry-detail-content section{margin-top:28px}
.entry-detail-content h3,.entry-detail-content h4{font-size:1rem;font-weight:700;letter-spacing:-.015em;color:var(--ink);margin-bottom:12px;line-height:1.4}
.entry-detail-content p{margin:0}
.detail-bullets{margin:0;padding-left:20px}
.detail-bullets li{padding-left:5px;margin-bottom:12px}
.detail-bullets li::marker{color:var(--blue-deep)}
.detail-external{display:inline-block;margin-top:28px;color:var(--blue-deep);font-weight:500}
.has-details{cursor:pointer;transition:background-color .18s}
.has-details:hover{background-color:rgb(41 76 218 / 3%)}
.caddie.has-details:hover{background-color:#d5dfff}
.has-details:focus-within{outline:1px solid #b5bfe1;outline-offset:5px}
body.dialog-is-open{overflow:hidden}
.experience-dialog{width:min(760px,calc(100% - 48px));max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);margin:auto;padding:0;border:1px solid #cfd1d9;border-top:3px solid var(--blue-deep);border-radius:5px;background:var(--paper);color:var(--ink);color-scheme:light;overflow:auto;overscroll-behavior:contain;box-shadow:0 25px 100px #0006}
.experience-dialog:not([open]){display:none}
.experience-dialog::backdrop{background:rgb(8 10 18 / 74%);backdrop-filter:blur(5px)}
.dialog-toolbar{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:18px;background:var(--paper);padding:18px 32px;border-bottom:1px solid #d8dbe3}
.dialog-toolbar .eyebrow{font-size:.75rem;color:#606573;letter-spacing:.08em}
.dialog-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid #c8ccd7;border-radius:3px;color:var(--ink);font-size:.875rem}
.dialog-close span{font-size:1.75rem;line-height:1;color:#5b6480}
.dialog-close:hover{background:#e4e8f2}
.dialog-body{padding:32px 42px 42px}
.dialog-heading{border-bottom:1px solid #cfd1d9;padding-bottom:25px}
.dialog-heading h2{font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.2;letter-spacing:-.045em;overflow-wrap:anywhere}
#detail-role{font-size:1rem;color:#525864;margin-top:14px}
#detail-date{font-size:.875rem;color:#656a78;margin-top:8px}
.experience-dialog .entry-detail-content{display:block}
.experience-dialog .tags{margin:0}
.detail-note{padding:18px 20px;background:#e4eafd;border-left:2px solid #9bade3}
@media(max-width:700px){.experience-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.dialog-toolbar{padding:12px 18px}.dialog-toolbar .eyebrow{font-size:.75rem;letter-spacing:.035em}.dialog-body{padding:25px 22px 30px}.dialog-heading h2{font-size:1.9rem}.entry-detail-content section{margin-top:24px}}
@media print{body.dialog-is-open{overflow:visible}.experience-dialog{display:none!important}.entry-details{margin-top:10px}.entry-details>summary{display:none}.entry-detail-content{font-size:10pt}.entry-detail-content section{margin-top:12px}.entry-detail-content h3,.entry-detail-content h4{font-size:11pt;margin-bottom:6px}.detail-bullets li{margin-bottom:6px}.detail-note{padding:8px}.has-details{cursor:default}.work-item,.project-card,.caddie,.earlier-grid article{break-inside:auto}.entry-detail-content section{break-inside:avoid}.detail-external{margin-top:10px}}

.portfolio{padding:85px 0 105px;background:#e9ecf2;border-top:1px solid #cfd4df}
.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.portfolio-card{min-width:0;padding:28px;background:#f9fafc;border:1px solid #d1d6e1;border-radius:4px}
.portfolio-brand{height:132px;display:flex;align-items:center;justify-content:center;background:#fff;margin-bottom:25px;border-radius:2px}
.portfolio-brand .portfolio-logo img{width:auto;height:auto;max-width:150px;max-height:28px;object-fit:contain}
.portfolio-brand.autoauctionmall .portfolio-logo img,.portfolio-brand.educatedbody .portfolio-logo img{max-height:34px}
.portfolio-brand.mpactdigital .portfolio-logo img,.portfolio-brand.riverandwolf .portfolio-logo img{max-height:34px}
.portfolio-brand.carsoncorporation .portfolio-logo img{max-height:34px}
.portfolio-copy h3{font-size:1.65rem;line-height:1.3;margin-top:12px;letter-spacing:-.035em}
.portfolio-summary{color:#525864;margin-top:15px}
.portfolio-featured{grid-column:1/-1;display:grid;grid-template-columns:.85fr 1.4fr;gap:38px;align-items:center;border-top:3px solid #6e8acb}
.portfolio-featured .portfolio-brand{height:100%;min-height:190px;margin-bottom:0;padding:15px}
.portfolio-featured .portfolio-brand .portfolio-logo img{max-height:30px;max-width:100%}
.portfolio-featured .portfolio-copy h3{font-size:1.9rem}
.portfolio-card.has-details:hover{background:#f1f4fc;border-color:#acbbdd}
.project-demo{margin:30px 0 0;padding-top:25px;border-top:1px solid #cfd1d9}
.project-demo video{display:block;width:100%;aspect-ratio:16/9;background:#14161c;border-radius:3px}
.project-demo figcaption{font-size:.8125rem;color:#656a78;margin-top:10px;line-height:1.5}
@media(max-width:700px){nav a[href="#expertise"]{display:none}.portfolio{padding:65px 0}.portfolio-grid{grid-template-columns:1fr;gap:22px}.portfolio-card{padding:22px}.portfolio-featured{display:block}.portfolio-featured .portfolio-brand{min-height:0;height:115px;margin-bottom:25px}.portfolio-copy h3,.portfolio-featured .portfolio-copy h3{font-size:1.5rem}.portfolio-brand{height:115px}}
@media print{.portfolio{padding:20px 0}.portfolio-grid{display:block}.portfolio-card,.portfolio-featured{display:block;border:0;border-top:1px solid #ccc;padding:15px 0;margin:0}.portfolio-brand{display:none!important}.portfolio-copy h3,.portfolio-featured .portfolio-copy h3{font-size:14pt}.portfolio-summary{font-size:10pt;margin-top:8px}.project-demo{display:none}}


/* ---- Revision: hero availability + stats ---- */
.availability{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:.875rem;color:#d3d5dd}
.availability-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgb(74 222 128 / 18%)}
.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:26px;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--line)}
.hero-stats div{min-width:0}
.hero-stats dt{font:500 2.2rem/1 var(--display);letter-spacing:-.05em}
.hero-stats dt span{color:var(--blue)}
.hero-stats .hero-stat-label{font-size:1.0625rem;line-height:1.4;letter-spacing:-.02em}
.hero-stats dd{margin:8px 0 0;font-size:.8125rem;line-height:1.45;color:var(--muted)}
.hero-actions .text-button{display:inline-flex;align-items:center}

/* ---- Revision: experience list ---- */
.now-badge{display:inline-block;padding:2px 8px;margin-right:8px;border-radius:3px;background:var(--blue-deep);color:#fff;font-size:.6875rem;letter-spacing:.08em;vertical-align:middle}
.earlier-meta{font-size:.8125rem;color:#656a78;margin-bottom:10px}
.earlier-grid p+p{margin-top:0}

/* ---- Revision: project archive ---- */
.archive-more{margin-top:28px;border-top:1px solid #cfd4df}
.archive-grid{padding:12px 0 8px}
.portfolio .earlier-work summary{font-size:.9375rem}
.portfolio .portfolio-featured{margin-bottom:0}

/* ---- Revision: how I work ---- */
.ai-workflow{margin-top:34px;padding:24px 26px;background:#e4eafd;border-left:3px solid var(--blue-deep)}
.ai-workflow h3{font-size:1.15rem;letter-spacing:-.025em;color:var(--ink)}
.ai-workflow p{margin-top:10px;color:#3f4b6e;font-size:.9375rem;line-height:1.65}
.principles p{font-weight:500;line-height:1.5}
.principles span{align-self:flex-start;padding-top:4px;flex-shrink:0;min-inline-size:2ch;white-space:nowrap;font-variant-numeric:tabular-nums}

@media(max-width:700px){
  .hero-statement br{display:none}
  .hero-stats{gap:18px;margin-top:14px}
  .hero-stats dt{font-size:1.8rem}
  .hero-stats dd{font-size:.75rem}
  .availability{font-size:.8125rem;align-items:flex-start;line-height:1.5}
  .availability-dot{margin-top:5px}
  .hero-visual{display:block}
  .ai-workflow{padding:18px 18px}
}
@media(max-width:1000px) and (min-width:701px){
  .hero-stats{gap:12px}
  .hero-stats dt{font-size:1.9rem}
}
@media print{
  .availability,.hero-stats{display:none!important}
  .now-badge{border:1px solid #333;color:#111!important;background:none!important}
  .ai-workflow{padding:10px;border-left:2px solid #333;margin-top:12px;break-inside:avoid}
  .ai-workflow p{font-size:10pt}
  .archive-more summary{display:none}
  .archive-grid{display:block}
}


/* ================= Interactivity pass (September 2026) ================= */

/* Shared case studies retain the résumé's typography and project evidence. */
.case-study-link{display:inline-flex;align-items:center;gap:16px;min-height:44px;margin-top:15px;font-size:.875rem;font-weight:600;color:var(--blue-deep);text-underline-offset:4px}
.case-page{background:var(--paper);color:var(--ink)}
.case-page nav{color:#525864}
.case-page nav a:hover,.case-page .monogram span{color:var(--blue-deep)}
.case-page .site-header,.case-page .site-footer{border-color:#cfd1d9}
.case-page .site-footer{color:#5d616c}
.case-page a:focus-visible{outline-color:var(--blue-deep)}
.case-main{max-width:1000px;padding-top:44px;padding-bottom:60px}
.case-back{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem;color:var(--blue-deep)}
.case-heading{padding:40px 0 32px;max-width:860px}
.case-heading h1{font-size:clamp(2.5rem,5.7vw,4.6rem);line-height:1.08;letter-spacing:-.045em;margin:20px 0 24px}
.case-heading h1 span{color:var(--blue-deep)}
.case-summary{font-size:1.125rem;line-height:1.7;max-width:760px;color:#525864}
.case-byline{font-size:.9375rem;line-height:1.6;margin-top:20px;color:#596170}
.case-cover{margin:8px 0 40px;border:1px solid #cfd1d9;background:#e4e8f2}
.case-cover img{display:block;width:100%;height:auto}
.case-cover figcaption{padding:10px 16px;font-size:.8125rem;color:#596170}
.case-content{max-width:760px;margin-inline:auto}
.case-content h2{font-size:1.4rem;letter-spacing:-.025em;margin-bottom:16px;line-height:1.3}
.case-content section{margin-top:36px}
.case-content .project-demo{margin-top:36px}
.case-contact{margin-top:56px;padding-top:32px;border-top:1px solid #cfd1d9}
.case-contact h2{font-size:1.5rem;letter-spacing:-.03em;line-height:1.3}
.case-contact a{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere;padding:12px 0;color:var(--blue-deep)}
@media(max-width:700px){.case-main{padding-top:20px}.case-heading{padding-top:25px}.case-heading h1{font-size:clamp(2.3rem,9vw,3.5rem)}.case-cover{margin-bottom:28px}.case-summary{font-size:1rem}}
@media print{.case-back,.case-contact,.case-study-link{display:none}.case-heading{padding:0}.case-heading h1{font-size:28pt}.case-content h2{font-size:14pt}.case-cover{max-width:65%;margin-inline:auto}.case-content section{break-inside:avoid}.earlier-work.disclosure-enhanced>.disclosure{display:block!important}.earlier-work.disclosure-enhanced>.disclosure>.disclosure-inner{overflow:visible!important}}

/* ---- Career timeline ---- */
.timeline{margin:0 0 44px;padding:22px 0 0;border-top:1px solid #cfd1d9}
.timeline-caption{display:flex;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;font-size:.8125rem;color:#5d616c;margin-bottom:14px}
.timeline-legend{display:inline-flex;align-items:center;gap:6px 16px;flex-wrap:wrap;color:#656a78}
.timeline-legend>span{white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
.tl-key{display:inline-block;width:14px;height:10px;border-radius:2px;flex:none}
.tl-key-role{background:#2b3040}
.tl-key-contract{background:transparent;border:1.5px solid #2b3040}
.tl-key-current{background:var(--blue-deep)}
.timeline-scroll{display:none;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.has-desktop-timeline .timeline-scroll{display:block}
.has-desktop-timeline .timeline-mobile{display:none}
.timeline-svg{display:block;width:100%;min-width:1000px;height:auto;font-family:var(--font)}
.timeline-note{font-size:.8125rem;color:#656a78;margin-top:12px}
.timeline-mobile{list-style:none;margin:0 0 0 7px;padding:0 0 0 21px;border-left:1px solid #b9c1d3}
.timeline-mobile li{position:relative;margin:0}
.timeline-mobile li::before{content:'';position:absolute;left:-26px;top:22px;width:9px;height:9px;border-radius:50%;background:#2b3040;border:2px solid var(--paper)}
.timeline-mobile .tl-mobile-contract::before{background:var(--paper);border-color:#2b3040}
.timeline-mobile .tl-mobile-current::before{background:var(--blue-deep);border-color:var(--blue-deep)}
.timeline-mobile a{display:flex;flex-direction:column;gap:3px;min-height:52px;padding:12px 8px;border-bottom:1px solid #dce0e8;text-decoration:none;border-radius:3px}
.timeline-mobile a:hover,.timeline-mobile a:focus-visible{background:#e4eafd;outline:2px solid var(--blue-deep);outline-offset:2px}
.timeline-mobile strong{font-size:1rem;line-height:1.4;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.timeline-mobile span{font-size:.875rem;line-height:1.5;color:#596170}
[data-timeline]{scroll-margin-top:90px}
[data-timeline]:focus-visible{outline:2px solid var(--blue-deep);outline-offset:6px}
.tl-grid{stroke:#d9dce4;stroke-width:1}
.tl-year{font-size:13px;fill:#70747f}
.tl-nowline{stroke:var(--blue-deep);stroke-width:1.5;stroke-dasharray:3 4}
.tl-bar{cursor:pointer;outline:none}
.tl-bar rect{fill:#2b3040;transition:fill .15s,opacity .15s}
.tl-bar .tl-label{font-size:13px;font-weight:500;fill:#fff;letter-spacing:-.01em}
.tl-hit{fill:transparent;stroke:none}
.tl-bar rect.tl-hit{fill:transparent!important;stroke:none!important;outline:none!important}
.tl-contract rect{fill:#f9fafc;stroke:#2b3040;stroke-width:1.5}
.tl-contract .tl-label{fill:#2b3040}
.tl-independent rect{fill:#8a8f9c}
.tl-current rect{fill:var(--blue-deep)}
.tl-label-out{fill:#2b3040!important}
.tl-bar.is-hi rect,.tl-bar:focus-visible rect{fill:var(--blue-deep);stroke:var(--blue-deep)}
.tl-bar.is-hi .tl-label,.tl-bar:focus-visible .tl-label{fill:#fff}
.tl-bar:focus-visible rect{outline:3px solid var(--blue);outline-offset:3px}
.timeline-svg:has(.tl-bar.is-hi) .tl-bar:not(.is-hi) rect{opacity:.55}
/* entries highlighted from the timeline */
.work-item.is-hi,.earlier-grid article.is-hi{background:rgb(41 76 218 / 4%)}
.caddie.is-hi{background:#d5dfff}
.is-flash{animation:tl-flash 1.6s ease-out}
@keyframes tl-flash{0%{box-shadow:inset 4px 0 0 var(--blue-deep)}100%{box-shadow:inset 0 0 0 transparent}}
@media(max-width:1100px){.timeline-legend{display:none}.has-desktop-timeline .timeline-scroll{display:none}.has-desktop-timeline .timeline-mobile{display:block}}
@media(max-width:700px){.timeline{margin-bottom:30px;padding-top:16px}.timeline-caption{font-size:.875rem}}

/* ---- Animated disclosures ---- */
.disclosure{display:block}
.disclosure-inner{min-height:0}
.earlier-work[open]>.disclosure{display:block}
.earlier-work.disclosure-enhanced>.disclosure{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s cubic-bezier(.2,.7,.2,1)}
.earlier-work.disclosure-enhanced>.disclosure>.disclosure-inner{overflow:hidden}
.earlier-work.disclosure-enhanced.is-open>.disclosure{grid-template-rows:1fr}
.earlier-work.disclosure-enhanced.is-open>.disclosure>.disclosure-inner{overflow:visible}
.earlier-work .summary-icon{transition:transform .3s}
.earlier-work[open]:not(.disclosure-enhanced)>summary .summary-icon,.earlier-work.disclosure-enhanced.is-open>summary .summary-icon{transform:rotate(45deg)}
.earlier-work[open]:not(.is-open) .summary-icon{transform:none}

/* ---- Dialog: scale and fade from the card that was clicked ---- */
.experience-dialog{--from-x:0px;--from-y:0px;opacity:1;transform:none;
  transition:opacity .22s ease,transform .26s cubic-bezier(.2,.7,.2,1),overlay .26s allow-discrete,display .26s allow-discrete}
.experience-dialog:not([open]){opacity:0;transform:translate(var(--from-x),var(--from-y)) scale(.9)}
@starting-style{.experience-dialog[open]{opacity:0;transform:translate(var(--from-x),var(--from-y)) scale(.9)}}
.experience-dialog::backdrop{background:rgb(8 10 18 / 74%);backdrop-filter:blur(5px);
  transition:background .26s ease,backdrop-filter .26s ease,overlay .26s allow-discrete,display .26s allow-discrete}
.experience-dialog:not([open])::backdrop{background:rgb(8 10 18 / 0);backdrop-filter:blur(0)}
@starting-style{.experience-dialog[open]::backdrop{background:rgb(8 10 18 / 0);backdrop-filter:blur(0)}}

/* ---- Verification checks strip ---- */
.checks{margin-top:20px;padding-top:18px;border-top:1px solid #c9d3f0}
.checks-row{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.check{position:relative;display:inline-flex;align-items:center;gap:8px;padding:6px 11px 6px 9px;border:1px solid #b4c2e8;border-radius:4px;background:#f4f6fd;color:#3f4b6e;font-size:.8125rem;font-weight:500;line-height:1.3;transition:background .25s,border-color .25s,color .25s}
.check::before{content:"";width:12px;height:12px;border-radius:50%;border:1.5px solid #9aa9d6;box-sizing:border-box;flex:none;transition:background .2s,border-color .2s}
.check.is-running{border-color:var(--blue-deep);color:var(--ink)}
.check.is-running::before{border-color:var(--blue-deep);border-top-color:transparent;animation:check-spin .7s linear infinite}
.check.is-pass{background:#e2f6ea;border-color:#7cc99c;color:#14532d}
.check.is-pass::before{background:#16a34a;border-color:#16a34a;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2l2 2 4-4.4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:100%}
.check.is-fail{background:#fde8e8;border-color:#f0a3a3;color:#7f1d1d;animation:check-shake .35s}
.check.is-fail::before{background:#dc2626;border-color:#dc2626;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 3.5l5 5M8.5 3.5l-5 5' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");background-size:100%}
.check.was-fixed::after{content:"fixed";margin-left:2px;padding:1px 5px;border-radius:3px;background:#fff;border:1px solid #d6dcf0;color:#5b6480;font-size:.6875rem;font-weight:600;letter-spacing:.02em}
.check.was-fixed.is-pass::after{border-color:#a7dcbd;color:#14532d}
.checks-status{margin-top:12px;font-size:.875rem;color:#3f4b6e;min-height:1.4em}
.checks-change{font-weight:600;color:var(--ink)}
.checks-change::after{content:" · ";color:#9aa3c0}
.checks-change:has(+ .checks-message:empty)::after{content:""}
.checks[data-state="idle"] .checks-change::after,.checks[data-state="done"] .checks-change{color:#14532d}
.checks[data-state="failed"] .checks-change{color:#991b1b}
.checks[data-state="done"] .checks-change::after{content:" · "}
.checks-replay{margin-top:10px;padding:5px 10px;border:1px solid #b4c2e8;border-radius:3px;background:#fff;color:#3d507d;font-size:.75rem;font-weight:600;cursor:pointer}
.checks-replay:hover{background:#eef2fd}
@keyframes check-spin{to{transform:rotate(360deg)}}
@keyframes check-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}

/* ---- Nav: current section ---- */
nav a{position:relative;padding-bottom:4px}
nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s}
nav a[aria-current="true"]{color:var(--white)}
nav a[aria-current="true"]::after{transform:scaleX(1)}

/* ---- Archive card posters ---- */
.portfolio-brand{position:relative;height:auto;aspect-ratio:16/9;overflow:hidden;background:#e9ecf2;border:1px solid #d1d6e1}
.portfolio-brand img.portfolio-poster{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:top;filter:saturate(.85)}
.portfolio-brand .portfolio-logo{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;max-width:calc(100% - 24px);padding:8px 12px;background:rgb(255 255 255 / 92%);border-radius:3px;box-shadow:0 2px 10px rgb(16 17 20 / 12%)}
.portfolio-brand .portfolio-logo img{display:block;min-width:0;width:auto;height:auto;max-height:28px;max-width:150px;object-fit:contain}
.portfolio-featured .portfolio-brand{height:auto;min-height:0;padding:0;aspect-ratio:16/9}
.portfolio-featured .portfolio-brand img.portfolio-poster{max-width:none;max-height:none}
.portfolio-card.has-details:hover .portfolio-poster{filter:saturate(1)}
@media(max-width:700px){.portfolio-brand,.portfolio-featured .portfolio-brand{height:auto;aspect-ratio:16/9}}

/* The full-width network introduces the hero, then continues at a gentler pace. */
body:not(.case-page)>.site-header{position:relative;z-index:1}
.hero{position:relative;isolation:isolate}
.hero-backdrop{position:absolute;inset:-108px 0 0;z-index:-1;overflow:hidden;pointer-events:none}
.development-network{display:block;width:100%;height:100%;color:var(--blue)}
.network-base{opacity:var(--network-rest,.18)}
.network-grid{color:inherit;opacity:.2}
#development-grid circle{fill:currentColor}
.network-traces,.network-signals{fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.network-traces path,.network-signals path{vector-effect:non-scaling-stroke}
.network-nodes{fill:var(--ink);stroke:currentColor;stroke-width:1.5}
.network-nodes circle{opacity:var(--network-rest,.18)}
.network-signals{opacity:0;stroke-width:2.5}
.hero-footer-actions{display:flex;align-items:center;gap:18px}
.background-motion-control{display:none;position:relative;flex:none;width:44px;height:22px;cursor:pointer}
.background-motion-toggle{appearance:none;display:block;position:absolute;top:-11px;left:0;width:44px;height:44px;margin:0;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer}
.background-motion-toggle:hover{border-color:var(--blue)}
.background-motion-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.background-motion-icon{position:absolute;top:5px;left:17px;width:10px;height:12px;border-inline:2px solid #a6a8b2;pointer-events:none}
.background-motion-toggle:checked+.background-motion-icon{top:4px;left:18px;width:0;height:0;border:7px solid transparent;border-right:0;border-left:10px solid #a6a8b2}
@media(max-width:1000px){.hero-backdrop{top:-90px}}
@media(max-width:700px){.hero-backdrop{top:-78px}.development-network{height:min(100%,900px);--network-rest:.13}}
@media screen and (prefers-reduced-motion:no-preference){
  [data-intro]{animation:hero-content-in .65s cubic-bezier(.22,1,.36,1) var(--intro-delay,0ms) both}
  [data-intro="down"]{--intro-x:0px;--intro-y:-14px}
  [data-intro="up"]{--intro-x:0px;--intro-y:18px}
  [data-intro="left"]{--intro-x:-24px;--intro-y:0px}
  [data-intro="right"]{--intro-x:24px;--intro-y:0px}
  [data-intro]:focus-within{animation:none}
  @media(max-width:700px){[data-intro="left"]{--intro-x:-16px}[data-intro="right"]{--intro-x:16px}}
  .network-base,.network-nodes circle{animation:network-settle 1.8s ease-out both}
  .network-traces path{stroke-dasharray:1;animation:network-draw 1.3s cubic-bezier(.22,1,.36,1) var(--trace-delay,0ms) both}
  .network-nodes{animation:network-nodes-in 1.1s ease .15s both}
  .network-signals{opacity:1}
  .network-signals path{stroke-dasharray:.055 .945;animation:network-signal 12.8s linear var(--trace-delay,0ms) both}
}
@keyframes hero-content-in{from{opacity:0;transform:translate(var(--intro-x,0px),var(--intro-y,0px))}to{opacity:1;transform:none}}
@keyframes network-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes network-nodes-in{from{opacity:0}to{opacity:1}}
@keyframes network-settle{0%{opacity:.5}18%{opacity:.65}55%{opacity:.24}100%{opacity:var(--network-rest,.18)}}
@keyframes network-signal{0%{stroke-dashoffset:1;opacity:0}15%,75%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@supports selector(:has(input:checked)){
  @media screen and (prefers-reduced-motion:no-preference){
    .network-signals path{animation-iteration-count:infinite}
    .network-nodes circle{animation:network-settle 1.8s ease-out both,network-node-pulse 12.8s linear var(--node-delay,4s) infinite}
    .background-motion-control{display:inline-flex}
    .hero:has(.background-motion-toggle:checked) .development-network,.hero:has(.background-motion-toggle:checked) .development-network *{animation-play-state:paused}
  }
}
@keyframes network-node-pulse{0%,7%,100%{fill:var(--ink);stroke:currentColor;opacity:var(--network-rest,.18)}2.5%{fill:currentColor;stroke:currentColor;opacity:1}}
@media print{.hero-backdrop{display:none!important}[data-intro]{animation:none!important;opacity:1!important;transform:none!important}}

/* Scroll entrances are opt-in enhancements; content is visible by default. */
.reveal-typed{display:inline-block;max-width:100%;vertical-align:bottom}
@media(prefers-reduced-motion:no-preference){
  [data-reveal].reveal-ready{opacity:0;transform:translateY(22px);transition:opacity .5s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}
  [data-reveal="side"].reveal-ready{transform:translateX(-18px)}
  [data-reveal].reveal-ready.is-revealed{opacity:1;transform:none}
  [data-reveal].reveal-ready .reveal-typed{clip-path:inset(0 100% 0 0)}
  [data-reveal].reveal-ready.is-revealed .reveal-typed{animation:reveal-type .6s steps(11,end) .2s both}
  [data-reveal].reveal-ready:focus-within{opacity:1;transform:none;transition:none}
}
@keyframes reveal-type{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@media print{
  [data-reveal].reveal-ready{opacity:1!important;transform:none!important;transition:none!important}
  .reveal-typed{clip-path:none!important;animation:none!important}
}

/* ---- Reduced motion ---- */
@media(prefers-reduced-motion:reduce){
  .disclosure{transition:none}
  .experience-dialog,.experience-dialog::backdrop{transition:none}
  .experience-dialog:not([open]){transform:none}
  .is-flash{animation:none;box-shadow:inset 4px 0 0 var(--blue-deep)}
  .check.is-running::before{animation:none}
  .check.is-fail{animation:none}
  nav a::after{transition:none}
}

/* ---- Print ---- */
@media print{
  .timeline{display:none!important}
  .checks{display:none!important}
  .disclosure{display:block}
  .disclosure-inner{overflow:visible}
  .portfolio-brand{display:none!important}
}

/* Keep enlarged text within its column instead of forcing page-wide scrolling. */
body{overflow-wrap:anywhere}
.hero-grid>*,.section-heading>*,.work-item>*,.caddie>*,.portfolio-grid>*,.portfolio-featured>*,.earlier-grid>*,.expertise-grid>*,.about-grid>*,.contact-grid>*{min-width:0}
.site-header{height:auto;min-height:108px;flex-wrap:wrap;gap:12px 20px;padding-block:20px}
.site-header nav{flex-wrap:wrap;max-width:100%;min-width:0;row-gap:8px}
.site-header a{display:inline-flex;align-items:center;min-height:44px}
.hero-actions{flex-wrap:wrap;max-width:100%}
.button,.text-button{max-width:100%}
.work-index{padding-left:0;text-align:center}
@media(max-width:1000px){.site-header{min-height:90px}}
@media(max-width:1000px) and (min-width:701px){.work-item{grid-template-columns:max(24px,2ch) minmax(0,.85fr) minmax(0,1.2fr)}}
@media(max-width:700px){.site-header{min-height:78px;padding-block:16px;column-gap:12px}}
@media(max-width:700px){.work-item{grid-template-columns:max(30px,2ch) minmax(0,1fr)}}

/* The supplied Toptal badge, scoped to the company endorsement strip. */
.company-proof{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:36px 52px}
.company-history{min-width:0}
.toptal-badge{--badge-hex:polygon(50% 0,100% 24%,100% 76%,50% 100%,0 76%,0 24%);font-family:Arial,sans-serif;justify-self:end;line-height:1.2}
.toptal-badge-frame{display:block;background:#25a9ef;padding:6px;clip-path:var(--badge-hex)}
.toptal-badge-body{width:188px;padding:25px 12px 40px;display:flex;flex-direction:column;align-items:center;gap:8px;color:#204ecf;text-align:center;background:radial-gradient(circle at 20% -10%,#00c3ff -80%,#fff 30%),radial-gradient(circle at -20% 20%,#00c3ff -80%,#fff 30%),radial-gradient(circle at 70% 100%,#00c3ff -80%,#fff 30%),radial-gradient(circle at 120% 80%,#00c3ff -80%,#fff 30%);background-blend-mode:multiply;clip-path:var(--badge-hex)}
.toptal-badge-stars,.toptal-badge-logo{display:block;flex:none;max-width:100%}
.toptal-badge-title{font-family:Arial,sans-serif;font-size:17px;font-weight:700;line-height:1.2;letter-spacing:0;margin:0}
.toptal-badge-rule{width:120px;height:1px;background:#25a9ef}
.toptal-badge-caption{font-size:16px;line-height:1.2;margin-bottom:-4px}
.toptal-badge-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:7px 20px;border-radius:6px;background:#296bff;color:#fff;font-size:16px;font-weight:500;line-height:1.2;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.toptal-badge-link:hover{background:#204ecf}
.toptal-badge-link:focus-visible{outline:3px solid #101114;outline-offset:3px}
@media(max-width:700px){.company-proof{grid-template-columns:1fr;gap:28px}.toptal-badge{justify-self:center}}
@media print{.toptal-badge{display:none}.company-proof{display:block}}
