/* Global chrome and action system. Product evidence keeps its own identity. */
:root{--page-edge:clamp(28px,3vw,56px);--chrome-gutter:var(--page-edge);--chrome-height:76px;--sans:'Inter',-apple-system,sans-serif;--serif:'Instrument Serif',Georgia,serif;--action-radius:12px;--action-space:18px;--action-gap:12px;--action-height:46px;--action-ink:#233c30;--action-on:#fff;--action-tint:#edf2ed;--action-line:#c7cec5;--action-time:160ms;--action-ease:cubic-bezier(.22,1,.36,1);--shell-bg:#fafaf8;--shell-ink:#20241f;--shell-muted:#5c6258;--shell-line:#d6d9d0;--shell-surface:#f0f1eb;}
html[data-theme="dark"]{--action-ink:#cee2d3;--action-on:#15271d;--action-tint:#242e26;--action-line:#505c50;--shell-bg:#11130f;--shell-ink:#f1f2eb;--shell-muted:#bcc2b5;--shell-line:#3b4438;--shell-surface:#1b2019;}
html body #nav#nav{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;gap:24px!important;height:var(--chrome-height)!important;min-height:var(--chrome-height)!important;padding:0 var(--chrome-gutter)!important;background:var(--shell-bg)!important;border-bottom:1px solid var(--shell-line)!important;box-shadow:none!important;backdrop-filter:none!important;z-index:1000!important;}
html body #nav#nav .logo{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;min-width:0!important;width:fit-content;margin:0!important;color:var(--shell-ink)!important;text-decoration:none;white-space:nowrap;}
.identity-mark{width:32px;height:36px;flex:0 0 32px;color:var(--action-ink);}
.identity-wordmark{font:600 19px/1.1 var(--sans);letter-spacing:-.055em;}
html body #nav#nav .logo small{display:none;font:400 11px/1.3 var(--sans);letter-spacing:0;margin-top:5px;color:var(--shell-muted);}
html body #nav#nav .navlinks{display:contents!important;}
html body #nav#nav .nav-destinations{display:flex;gap:28px;padding:0;border:0;border-radius:0;background:transparent;}
html body #nav#nav .nl{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;padding:0!important;position:relative;border-radius:0!important;font:500 13px/1 var(--sans)!important;color:var(--shell-muted)!important;text-decoration:none!important;transition:color 160ms,background-color 160ms;}
html body #nav#nav .nl::after{content:"";display:block!important;position:absolute;inset:auto 0 2px;height:2px;background:currentColor;opacity:0;transform:none!important;}
html body #nav#nav .nl.on::after{opacity:1;}
html body #nav#nav .nl.on{background:transparent!important;color:var(--shell-ink)!important;box-shadow:none!important;}
html body #nav#nav .nl:hover{color:var(--shell-ink)!important;}
html body #nav#nav .nav-tools{display:flex;align-items:center;justify-self:end;gap:16px;}
html body #nav#nav #appearance-toggle{width:44px!important;min-width:44px!important;max-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;border:0!important;border-radius:12px!important;background:transparent!important;color:var(--shell-ink)!important;box-shadow:none!important;}
html body #nav#nav #appearance-toggle:hover{background:var(--shell-surface)!important;}
html body #nav#nav .appearance-toggle-label{display:none!important;}
html body #nav#nav .mobile-nav-wrap{display:none!important;}
html body #nav#nav .mobile-menu-toggle{width:44px!important;height:44px!important;border:1px solid var(--shell-line)!important;border-radius:12px!important;background:var(--shell-bg)!important;}
html body #nav#nav .mobile-menu-panel{top:calc(100% + 12px)!important;right:0!important;width:250px!important;padding:14px!important;border:1px solid var(--shell-line)!important;border-radius:16px!important;background:var(--shell-bg)!important;box-shadow:0 12px 30px #00000012!important;}
html body #nav#nav .mobile-menu-item{min-height:48px!important;color:var(--shell-ink)!important;}
html body #nav#nav .mobile-menu-toggle span{background:var(--shell-ink)!important;}
html body #nav#nav .mobile-menu-cta::after{display:none!important;}
html body #nav#nav .mobile-menu-cta{margin-top:10px!important;border-radius:12px!important;background:var(--action-ink)!important;color:var(--action-on)!important;display:flex!important;justify-content:space-between;}
html body #nav#nav a:focus-visible,html body #nav#nav button:focus-visible{outline:2px solid var(--shell-ink)!important;outline-offset:4px!important;}
html body .pg{scroll-margin-top:calc(var(--chrome-height) + 24px);}
.home-availability{font:12px/1.5 var(--sans);color:var(--shell-muted);margin:10px 0 0;}
/* Explicit actions only. Navigation, citations and inline links retain their own treatment. */
html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.ncta,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,button.con-send-btn,a.ds-primary,a.ds-secondary){display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:var(--action-gap)!important;min-height:var(--action-height)!important;padding:12px var(--action-space)!important;border:1px solid var(--action-line)!important;border-radius:var(--action-radius)!important;background:transparent!important;color:var(--action-ink)!important;font:600 13px/1.5 var(--sans,'Inter',sans-serif)!important;text-decoration:none!important;box-shadow:none!important;transform:none!important;max-width:100%;width:fit-content;cursor:pointer!important;transition:background-color var(--action-time),border-color var(--action-time),color var(--action-time)!important;}
html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ncta,a.hx-discover,a.footer-contact,a.resume-v54-action-primary,button.con-send-btn,a.ds-primary),html body #pg-cs#pg-cs #cs-wrap :is(.cv4-hero,.do67-hero,.vt-hero-copy) :is(a.cv20-prototype-cta,a.vt-link){background:var(--action-ink)!important;color:var(--action-on)!important;border-color:var(--action-ink)!important;}
html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.ncta,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,button.con-send-btn,a.ds-primary,a.ds-secondary)::before{display:none!important;}
html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.ncta,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,button.con-send-btn,a.ds-primary,a.ds-secondary)>:is([aria-hidden="true"],.con-send-arrow,svg){flex:0 0 16px;width:16px!important;height:16px!important;min-height:0!important;padding:0!important;border:0!important;border-radius:0!important;line-height:16px!important;margin:0!important;transition:transform var(--action-time) var(--action-ease)!important;}
html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.ncta,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,button.con-send-btn,a.ds-primary,a.ds-secondary):focus-visible{outline:2px solid var(--action-ink)!important;outline-offset:4px!important;}
html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.ncta,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,button.con-send-btn,a.ds-primary,a.ds-secondary):active{filter:brightness(.94);}
@media(hover:hover){html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,a.ds-secondary):hover{background:var(--action-tint)!important;border-color:var(--action-ink)!important;}
html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ncta,a.hx-discover,a.footer-contact,a.resume-v54-action-primary,button.con-send-btn,a.ds-primary):hover,html body #pg-cs#pg-cs #cs-wrap :is(.cv4-hero,.do67-hero,.vt-hero-copy) :is(a.cv20-prototype-cta,a.vt-link):hover{background:var(--shell-ink)!important;border-color:var(--shell-ink)!important;color:var(--shell-bg)!important;}
html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.ncta,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,button.con-send-btn)>:is([aria-hidden="true"],.con-send-arrow,svg){transform:none!important;}
html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.ncta,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,button.con-send-btn):hover>:is([aria-hidden="true"],.con-send-arrow,svg){transform:translateX(2px)!important;}}
/* A card has one link, with its action visible inside the same hit area. */
html body #pg-home[data-home-v64] .hx-card-action,html body #pg-work#pg-work [data-family-grid] .pc-cta{display:inline-flex!important;align-items:center!important;justify-content:space-between!important;align-self:flex-start;gap:12px!important;width:fit-content!important;max-width:100%;min-height:44px!important;padding:10px 14px!important;border:1px solid var(--action-line)!important;border-radius:10px!important;background:transparent!important;color:var(--action-ink)!important;font:600 12px/1.5 var(--sans)!important;text-decoration:none!important;margin-top:auto!important;}
html body #pg-work#pg-work [data-family-grid] .pc-cta::after{content:'↗';width:16px!important;height:16px!important;border:0!important;background:none!important;color:inherit!important;display:block!important;font-size:16px;line-height:1!important;}
html body #pg-home[data-home-v64] .hx-card-action b{font-weight:400!important;font-size:16px!important;}
html body #pg-work#pg-work .proj-card:is(:hover,:focus-visible) .pc-cta,html body #pg-home[data-home-v64] .hx-card:is(:hover,:focus-visible) .hx-card-action{background:var(--action-tint)!important;border-color:var(--action-ink)!important;}
html body #pg-work#pg-work .ia-archive{padding:28px 0;border-bottom:0;}
html body #pg-work#pg-work .ia-archive>summary{display:flex;width:fit-content;gap:16px;min-height:52px;padding:12px 18px;border:1px solid var(--action-line);border-radius:var(--action-radius);font:600 14px/1.5 var(--sans);background:var(--shell-surface);color:var(--shell-ink);}
html body #pg-work#pg-work .ia-archive>summary:hover{border-color:var(--action-ink);}
html body #pg-work#pg-work .ia-archive [data-archive-count]{margin-left:0;font-size:12px;}
html body #pg-work#pg-work .ia-archive-indicator{width:16px;font-size:20px;}
html body #pg-work#pg-work .ia-archive-intro{margin-top:24px;}
@media(min-width:821px){html body #pg-work#pg-work[data-v108-work-filter="all"] [data-work-family="all"] [data-family-grid]>.proj-card:nth-child(n+5){grid-column:span 2!important;}
html body #pg-work#pg-work[data-v108-work-filter="all"] [data-work-family="case-studies"] [data-family-grid]>.proj-card:nth-child(n+3){grid-column:span 2!important;}
html body #pg-work#pg-work[data-v108-work-filter="all"] [data-work-family="case-studies"] [data-family-grid]>.proj-card:nth-child(n+6){grid-column:span 3!important;}}
/* Practical desktop handoff, with mobile direct access preserved. */
@media(min-width:821px){html body #pg-cs .vt-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)!important;gap:36px!important;}html body #pg-cs .vt-hero-media{gap:22px!important;}html body #pg-cs .vt-hero-note{max-width:192px!important;width:192px!important;flex:0 0 192px;padding-bottom:64px!important;}html body #pg-cs .vt-entry-qr img{width:192px!important;height:192px!important;padding:12px!important;border-radius:12px!important;}
}
html body #pg-cs .vt-qr img{width:216px!important;height:216px!important;padding:12px!important;}
html body #pg-cs .vt-try a.vt-action{--action-ink:#f5ead8;--action-on:#201b13;--action-line:#ad9c80;--action-tint:#4b3d2b;}
/* One viewport-level footer, independent of every page grid. */
html body footer.portfolio-footer{display:block!important;width:100%!important;max-width:none!important;clear:both;background:var(--shell-surface)!important;border-top:1px solid var(--shell-line)!important;padding:0!important;color:var(--shell-ink)!important;}
.portfolio-footer .footer-inner{width:100%;min-width:0;box-sizing:border-box;max-width:none;margin:0;padding:54px var(--chrome-gutter) 26px;}
.portfolio-footer .footer-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;padding-bottom:46px;}
.portfolio-footer .footer-kicker{font:400 14px/1.5 var(--sans);color:var(--shell-muted);margin:0 0 12px;}
.portfolio-footer h2{font:400 clamp(34px,4vw,56px)/1.08 var(--serif);letter-spacing:-.025em;margin:0;}
.portfolio-footer .footer-actions{display:flex;gap:16px;align-items:center;}
.portfolio-footer .footer-social{display:inline-flex;gap:12px;align-items:center;min-height:44px;font:500 13px/1.5 var(--sans);color:var(--shell-ink);text-decoration:none;}
.portfolio-footer .footer-utility{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'brand legal' 'copy legal';gap:8px 32px;align-items:center;border-top:1px solid var(--shell-line);padding-top:24px;font:12px/1.5 var(--sans);color:var(--shell-muted);}
.portfolio-footer .footer-utility>span{grid-area:copy;}
html body .portfolio-footer .ft-legal{grid-area:legal;display:flex!important;gap:24px!important;flex-wrap:wrap;}
html body .portfolio-footer .ft-legal a{display:inline-flex;align-items:center;min-height:44px;color:inherit!important;text-decoration:none;}
html body .portfolio-footer .ft-legal a:hover{text-decoration:underline;text-underline-offset:4px;}
.portfolio-footer .footer-home{grid-area:brand;width:fit-content;color:var(--shell-ink);text-decoration:none;}
.portfolio-footer a:focus-visible{outline:2px solid var(--action-ink);outline-offset:4px;}
html.js-enabled:not(.route-runtime-ready) body footer.portfolio-footer{visibility:hidden;}
html body .con3-proof{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
html body .con3-link-card{border-radius:var(--action-radius)!important;transition:background-color var(--action-time),border-color var(--action-time)!important;}
html body .con3-link-card:hover{background:var(--action-tint)!important;transform:none!important;border-color:var(--action-ink)!important;}
@media(max-width:1100px){html body #nav#nav .navlinks{gap:28px!important;}.nav-destinations{gap:20px;}.portfolio-footer .footer-actions{gap:20px;}}
@media(max-width:768px){html body #nav#nav{gap:10px!important;}html body #nav#nav .logo{min-width:0;font-size:22px!important;}html body #nav#nav .navlinks{gap:14px!important;}html body #nav#nav .nav-destinations{gap:18px;}html body #nav#nav .nav-destinations :is(#nl-home,#resume-link){display:none!important;}html body #nav#nav#nav#nav .ncta{display:none!important;}.portfolio-footer .footer-main{align-items:flex-start;}.portfolio-footer .footer-actions{flex-direction:column;align-items:flex-start;gap:12px;}.portfolio-footer .footer-utility{flex-wrap:wrap;}.portfolio-footer .ft-legal{order:3;width:100%;}}

@media(max-width:600px){html body #nav#nav .logo small{display:none;}html body #nav#nav .logo{font-size:20px!important;}html body #nav#nav .navlinks{gap:6px!important;}html body #nav#nav .nav-destinations{gap:14px;}.portfolio-footer .footer-inner{padding-top:32px;}.portfolio-footer .footer-main{display:grid;gap:24px;padding-bottom:30px;}.portfolio-footer .footer-actions{flex-direction:row;gap:20px;flex-wrap:wrap;}.portfolio-footer .footer-utility{gap:12px 20px;}.portfolio-footer .footer-home{margin-left:auto;}html body .portfolio-footer .ft-legal{gap:0 20px!important;}html body #pg-work#pg-work .ia-archive>summary{width:100%;justify-content:space-between;gap:10px;}html body #pg-work#pg-work .ia-archive [data-archive-count]{font-size:11px;}.ia-about-cta>div{flex-wrap:wrap;gap:12px!important;}}
@media(max-width:350px){html body #nav#nav #nl-about{display:none!important;}}
@media(prefers-reduced-motion:reduce){html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.ncta,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,button.con-send-btn,.cv4-next-link,.vt-next>a),html body :is(#pg-cs#pg-cs #cs-wrap,.pg,#nav,.portfolio-footer,.ds-grid,.gate-shell,.error-page) :is(a.ia-link,a.ncta,a.portfolio-cta,a.resume-v54-action,a.cv20-prototype-cta,a.vt-link,a.vt-action,button.con-send-btn)>[aria-hidden="true"]{transition:none!important;transform:none!important;}}

/* Native resume identities supplement the selectable organization names. */
.resume-v54-job-org{display:flex;align-items:center;gap:12px;}
.resume-company-mark{width:64px;height:40px;flex:0 0 64px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e6e6e1;border-radius:5px;padding:5px;}
.resume-company-mark img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;}
.resume-education-mark{display:flex!important;align-items:center;justify-content:center;width:40px;height:36px;margin-bottom:10px;background:#fff;border:1px solid #e6e6e1;border-radius:5px;padding:4px;}
.resume-education-mark img{max-width:100%;max-height:100%;width:auto;height:auto;}

.resume-org-location{white-space:nowrap;}

/* Inverse product panels use the same action geometry with their own contrast pair. */
html body #pg-cs#pg-cs #cs-wrap .cv4-prototype{--action-ink:#F3F5EE;--action-on:#17231C;--action-line:#A6B2A4;--action-tint:#344436;}
html body #pg-work#pg-work .v108-work-filter{top:var(--v112-work-filter-top,var(--chrome-height))!important;}

/* Personal navigation and compact story transitions. */

html body #nav#nav#nav#nav .ncta{background:var(--action-ink)!important;color:var(--action-on)!important;border-color:var(--action-ink)!important;min-height:44px!important;padding:10px 18px!important;}
html body #nav#nav#nav#nav .ncta:hover{background:var(--shell-ink)!important;border-color:var(--shell-ink)!important;color:var(--shell-bg)!important;}
html body #pg-home#pg-home[data-home-v64] .hx-card-action{width:100%!important;min-height:46px!important;margin-top:20px!important;padding:12px 14px!important;justify-content:space-between!important;}
html body #pg-home#pg-home[data-home-v64] .hx-card-statement{margin-bottom:0!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-link,.vt-next>a){display:grid!important;grid-template-columns:240px minmax(0,1fr) 60px!important;grid-template-areas:'media copy arrow';align-items:center!important;gap:28px!important;padding:20px 24px 20px 20px!important;min-height:0!important;border:1px solid var(--shell-line)!important;border-radius:18px!important;background:var(--shell-bg)!important;color:var(--shell-ink)!important;text-decoration:none!important;box-shadow:none!important;transform:none!important;overflow:hidden!important;transition:background-color 160ms,border-color 160ms!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-copy,.vt-next>a>div:first-child){display:contents!important;}
html body #pg-cs#pg-cs #cs-wrap .next-story-copy{grid-area:copy;min-width:0;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-label,.vt-next .vt-eyebrow){display:block!important;color:var(--shell-muted)!important;font:500 11px/1.5 var(--sans)!important;letter-spacing:.075em!important;margin:0 0 10px!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-copy,.vt-next) h2{color:var(--shell-ink)!important;font:400 clamp(30px,3vw,42px)/1.1 var(--serif)!important;letter-spacing:-.025em!important;margin:0 0 12px!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-copy,.vt-next) p{color:var(--shell-muted)!important;font:400 15px/1.55 var(--sans)!important;max-width:52ch!important;margin:0!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-preview,.vt-next-media){grid-area:media;display:flex!important;align-items:center!important;justify-content:center!important;width:240px!important;height:180px!important;min-height:0!important;max-height:none!important;padding:8px!important;border:0!important;border-radius:10px!important;overflow:hidden!important;background:var(--next-bg,#ece9f5)!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-preview,.vt-next-media) .v44617-phone-host{height:164px!important;max-height:164px!important;width:auto!important;aspect-ratio:var(--v44617-shell-ratio)!important;margin:auto!important;}
html body #pg-cs#pg-cs #cs-wrap .cv4-next-preview .cv8-device-preview{width:100%!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;}
html body #pg-cs#pg-cs #cs-wrap .cv4-next-preview .cv6-browser{width:100%!important;max-width:224px!important;max-height:164px!important;height:auto!important;margin:0!important;border-radius:5px!important;}
html body #pg-cs#pg-cs #cs-wrap .cv4-next-preview .cv6-browser-bar{height:10px!important;min-height:10px!important;}
html body #pg-cs#pg-cs #cs-wrap .cv4-next-preview .cv6-browser-screen{height:auto!important;max-height:154px!important;}
html body #pg-cs#pg-cs #cs-wrap .cv4-next-preview .cv6-browser-screen img{width:100%!important;height:auto!important;max-height:154px!important;object-fit:contain!important;}
html body #pg-cs#pg-cs #cs-wrap [data-next='do'] :is(.cv6-browser,.cv6-browser-screen){background:transparent!important;border:0!important;box-shadow:none!important;}
html body #pg-cs#pg-cs #cs-wrap [data-next='do'] .cv6-browser-bar{display:none!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-arrow,.cv4-next-cta,.vt-next .vt-link){grid-area:arrow;display:flex!important;align-items:center!important;justify-content:center!important;width:52px!important;height:52px!important;min-height:52px!important;padding:0!important;margin:0!important;border:1px solid var(--action-line)!important;border-radius:50%!important;background:transparent!important;color:var(--action-ink)!important;font:400 25px/1 var(--sans)!important;text-decoration:none!important;transition:background-color 160ms,color 160ms!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-link,.vt-next>a):hover{border-color:var(--action-ink)!important;background:var(--action-tint)!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-link,.vt-next>a):hover :is(.cv4-next-arrow,.cv4-next-cta,.vt-next .vt-link){background:var(--action-ink)!important;color:var(--action-on)!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-link,.vt-next>a):focus-visible{outline:2px solid var(--action-ink)!important;outline-offset:5px!important;}
.portfolio-footer .footer-home{display:flex;align-items:center;gap:8px;font:600 16px/1.2 var(--sans);letter-spacing:-.035em;}.portfolio-footer .footer-home .identity-mark{width:26px;height:28px;flex-basis:26px;}

@media(max-width:1100px){html body #nav#nav .nl{padding:0!important;}.identity-wordmark{font-size:18px;}.identity-mark{width:31px;flex-basis:31px;}}
@media(max-width:768px){html body #nav#nav{grid-template-columns:minmax(0,1fr) 44px 44px!important;gap:12px!important;}html body #nav#nav .nav-destinations{display:none!important;}html body #nav#nav .nav-tools{grid-column:2;grid-row:1;}html body #nav#nav .mobile-nav-wrap{display:block!important;grid-column:3;grid-row:1;position:relative!important;width:44px!important;height:44px!important;}html body #nav#nav#nav#nav .ncta{display:none!important;}html body #nav#nav .mobile-menu-toggle{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;}html body #nav#nav .mobile-menu-toggle span{display:block;width:15px;height:1px;}html body #nav#nav .logo small{display:none!important;font-size:10px;}.identity-wordmark{font-size:17px;}.identity-mark{width:30px;flex-basis:30px;height:34px;}}
@media(max-width:700px){html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-link,.vt-next>a){grid-template-columns:100px minmax(0,1fr)!important;grid-template-areas:'media copy' 'media arrow';gap:14px 18px!important;padding:18px!important;}html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-preview,.vt-next-media){width:100px!important;height:144px!important;padding:3px!important;}html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-preview,.vt-next-media) .v44617-phone-host{height:134px!important;max-height:134px!important;}html body #pg-cs#pg-cs #cs-wrap .cv4-next-preview .cv6-browser{max-width:94px!important;}html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-copy,.vt-next) h2{font-size:29px!important;margin-bottom:8px!important;}html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-copy,.vt-next) p{font-size:13px!important;line-height:1.5!important;}html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-arrow,.cv4-next-cta,.vt-next .vt-link){width:44px!important;height:44px!important;min-height:44px!important;}}

@media(max-width:768px){
 html body #nav#nav .mobile-menu-panel{position:absolute!important;display:flex!important;flex-direction:column!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(-4px)!important;z-index:1200!important;transition:opacity 160ms,transform 160ms!important;}
 html body #nav#nav .mobile-menu-panel.open{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;}
 html body #nav#nav .mobile-menu-item{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;padding:0 14px!important;font:500 13px/1 var(--sans)!important;border-radius:10px!important;text-decoration:none!important;}
 html body #nav#nav .mobile-menu-item::after{content:'↗';opacity:.5;font-size:12px;}
 html body #nav#nav .mobile-menu-toggle[aria-expanded='true'] span:first-child{transform:translateY(3px) rotate(45deg)!important;}
 html body #nav#nav .mobile-menu-toggle[aria-expanded='true'] span:last-child{transform:translateY(-3px) rotate(-45deg)!important;}
 html body #nav#nav .mobile-menu-item:hover{background:var(--action-tint)!important;}
}



/* Menu visibility changes immediately; only the surface transition is animated. */
html body #nav#nav .mobile-menu-panel .mobile-menu-item{visibility:inherit!important;transition:background-color 160ms,color 160ms!important;}
@media(prefers-reduced-motion:reduce){html body #nav#nav :is(.mobile-menu-panel,.mobile-menu-item,.mobile-menu-toggle span){transition:none!important;}}
/* Landscape evidence needs the full mobile row; portrait hardware retains its narrow frame. */
@media(max-width:700px){
 html body #pg-cs#pg-cs #cs-wrap .cv4-next-link:has(.cv6-browser){grid-template-columns:minmax(0,1fr) 44px!important;grid-template-areas:'media media' 'copy arrow';gap:18px!important;}
 html body #pg-cs#pg-cs #cs-wrap .cv4-next-link:has(.cv6-browser) .cv4-next-preview{width:100%!important;height:170px!important;padding:8px!important;}
 html body #pg-cs#pg-cs #cs-wrap .cv4-next-preview .cv6-browser{width:100%!important;max-width:none!important;max-height:154px!important;}
 html body #pg-cs#pg-cs #cs-wrap .cv4-next-link:has(.cv6-browser) .cv4-next-cta{align-self:center!important;}
}

/* Resume is a web reading layout; the document download remains a separate one-page artifact. */
html body #pg-resume#pg-resume{padding:var(--chrome-height) 0 0!important;background:var(--shell-bg)!important;}
html body #pg-resume #resume-page.resume-web{margin-block:0!important;padding-block:56px 64px!important;color:var(--shell-ink);font:400 15px/1.65 var(--sans);}
.resume-web :is(h1,h2,h3,p,ul){margin:0;}
.resume-web .rw-header{display:grid;grid-template-columns:1fr 1.2fr;gap:72px;align-items:end;padding-bottom:30px;}
.resume-web .rw-eyebrow{font-size:12px;letter-spacing:.08em;color:var(--shell-muted);margin-bottom:12px;}
.resume-web h1{font:400 clamp(48px,4.5vw,68px)/1.05 var(--serif);letter-spacing:-.03em;}
.resume-web .rw-role{font-size:20px;margin-top:10px;}
.resume-web .rw-intro>p{font-size:17px;line-height:1.6;max-width:60ch;color:var(--shell-muted);}
html body #pg-resume .resume-web .resume-v54-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}
.resume-web .rw-contact{display:flex;gap:12px 32px;flex-wrap:wrap;border-block:1px solid var(--shell-line);padding:14px 0;margin-bottom:40px;font-size:14px;}
.resume-web .rw-contact a{min-height:44px;display:inline-flex;gap:12px;align-items:center;color:var(--action-ink);text-decoration:none;}
.resume-web .rw-contact a:hover{text-decoration:underline;text-underline-offset:5px;}
.resume-web a:focus-visible{outline:2px solid var(--action-ink);outline-offset:4px;border-radius:4px;}
.resume-web .rw-columns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:start;}
.resume-web h2{font:600 12px/1.5 var(--sans);letter-spacing:.065em;text-transform:uppercase;color:var(--shell-muted);padding-bottom:16px;border-bottom:1px solid var(--shell-line);margin-bottom:24px;}
.resume-web .rw-columns section+section{margin-top:38px;}
.resume-web .rw-job+.rw-job{border-top:1px solid var(--shell-line);margin-top:26px;padding-top:26px;}
.resume-web .rw-job-heading{display:flex;justify-content:space-between;gap:16px;align-items:baseline;}
.resume-web .rw-job h3{font:500 21px/1.35 var(--sans);letter-spacing:-.025em;}
.resume-web .rw-company{font-size:14px;color:var(--shell-muted);margin-top:5px;}
.resume-web .rw-date{font-size:12px;line-height:1.5;color:var(--shell-muted);white-space:nowrap;}
.resume-web .rw-job ul{padding-left:18px;margin-top:14px;color:var(--shell-ink);}
.resume-web .rw-job li+li{margin-top:8px;}
.resume-web .rw-project+.rw-project{margin-top:24px;}
.resume-web .rw-project>a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;color:var(--shell-ink);text-decoration:none;}
.resume-web .rw-project>a:hover{color:var(--action-ink);text-decoration:underline;text-underline-offset:4px;}
.resume-web .rw-project h3{font:400 25px/1.3 var(--serif);}
.resume-web .rw-kind{font-size:12px;font-weight:600;color:var(--action-ink);margin:3px 0 9px;}
.resume-web .rw-project>p:last-child,.resume-web .rw-skill p{color:var(--shell-muted);font-size:14px;line-height:1.65;}
.resume-web .rw-skill+.rw-skill,.resume-web .rw-education+.rw-education{margin-top:18px;}
.resume-web .rw-skill h3,.resume-web .rw-education h3{font:600 14px/1.5 var(--sans);margin-bottom:5px;}
.resume-web .rw-education p{font-size:14px;color:var(--shell-muted);}
.resume-web .rw-education .rw-date{font-size:12px;margin-top:4px;}
@media(max-width:1100px){.resume-web .rw-header{gap:40px;}.resume-web .rw-job-heading{display:block;}.resume-web .rw-job-heading>.rw-date{margin-top:8px;}}
@media(max-width:820px){html body #pg-resume #resume-page.resume-web{padding-top:36px!important;}.resume-web .rw-header{grid-template-columns:1fr;gap:24px;}.resume-web .rw-columns{grid-template-columns:1fr;gap:40px;}.resume-web .rw-support{display:grid;grid-template-columns:1fr 1fr;gap:32px;}.resume-web .rw-support>section:first-child{grid-column:1/-1;}.resume-web .rw-support section+section{margin:0;}.resume-web .rw-job-heading{display:flex;}.resume-web .rw-job-heading>.rw-date{margin:0;}}
@media(max-width:600px){.resume-web .rw-header{padding-bottom:24px;}.resume-web .rw-intro>p{font-size:16px;}.resume-web .rw-contact{gap:0 24px;margin-bottom:32px;}.resume-web .rw-job-heading{display:block;}.resume-web .rw-job-heading>.rw-date{margin-top:8px;}.resume-web .rw-support{display:block;}.resume-web .rw-support section+section{margin-top:32px;}.resume-web .rw-job h3{font-size:20px;}.resume-web .rw-date{white-space:normal;}}

/* Chrome geometry is available with the first stylesheet, before route enhancements load. */
@media(max-width:768px){:root{--chrome-height:64px;--page-edge:20px;}}

/* The project card already names its destination; a following label obscures that content. */
body:has(.cv4-next-link:hover,.vt-next>a:hover) :is(#card-cursor,#work-card-cursor){display:none!important;}
html body #pg-cs#pg-cs #cs-wrap :is(.cv4-next-link,.vt-next>a){cursor:pointer!important;}
