/* Shared presentation for the career portfolio. */
:root{--bg:#f6f9fd;--ink:#152a42;--muted:#536579;--brand:#02569b;--brand-2:#0878c5;--line:#dce5ef;--surface:#fff;--container:1240px}
body{background:#f6f9fd;overflow-x:visible}body::before,body::after{display:none}
.container{width:min(calc(100% - 64px),var(--container))}.site-header{background:rgba(247,248,246,.96);box-shadow:none;border-color:var(--line)}
.nav-wrap{padding:18px 0}.brand{font-size:1rem}.brand-avatar-wrap{box-shadow:none;background:#02569b}
.site-nav a{font-size:.88rem;border-radius:8px}.site-nav a.active{background:#e7f0fa;color:#02569b}.site-nav a:hover{background:#e7f0fa;color:#02569b}
.button{background:#02569b;color:#fff;box-shadow:none;border:1px solid #02569b;border-radius:12px;min-height:46px}.button:hover{background:#03457a;transform:translateY(-2px)}
.button-secondary{border-radius:12px;box-shadow:none;min-height:46px}.eyebrow{background:transparent;padding:0;color:#02569b;font-size:.72rem;letter-spacing:.12em;border:0;box-shadow:none}.eyebrow::before{display:none}
.section{padding:40px 0}.section-title{letter-spacing:-.045em}.panel,.spotlight-card,.quote-panel,.value-card,.stat-card,.contact-card,.timeline-card,.seo-summary-card{box-shadow:none;border:1px solid var(--line);background:#fff}.panel::after,.spotlight-card::after{opacity:.08}
.page-shell{padding-top:0}.footer{margin-top:50px;background:transparent;border-top:1px solid var(--line)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #02569b;outline-offset:5px}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;padding:12px 20px;background:#152a42;color:white;border-radius:8px}.skip-link:focus{top:12px}
/* Compact catalog: the work itself starts in the first viewport. */
.work-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:32px 0 22px}.work-intro h1{font-family:Sora,sans-serif;font-weight:600;font-size:clamp(1.9rem,3.5vw,3rem);line-height:1.1;letter-spacing:-.06em;margin:10px 0}.work-intro p{margin:0;color:var(--muted);font-size:.95rem}.mobile-break{display:none}
.availability-link{display:flex;align-items:center;gap:9px;border:1px solid #d4e5f6;border-radius:100px;background:#edf5ff;padding:10px 14px;font-size:.78rem;color:#174f83;white-space:nowrap}.availability-link>span:first-child{height:7px;width:7px;border-radius:50%;background:#0878c5}
.work-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 22px;padding-top:16px;border-top:1px solid var(--line)}.work-filters{display:flex;gap:6px;flex-wrap:wrap}.work-filters button{border:1px solid transparent;background:transparent;color:var(--muted);padding:10px 16px;border-radius:100px;font-size:.84rem;cursor:pointer;min-height:44px}.work-filters button[aria-pressed=true]{background:#152a42;color:#fff}.work-filters button:hover{border-color:#899a8f}#work-count{font-size:.78rem;color:var(--muted);white-space:nowrap}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}.work-card{min-width:0;border:1px solid #dae4ef;background:white;border-radius:18px;overflow:hidden;transition:box-shadow .2s,border-color .2s}.work-card:hover{border-color:#abc6e1;box-shadow:0 12px 30px #152a420a}.work-card[hidden]{display:none}
.work-stage{height:225px;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:flex-start;padding-top:44px;background:#e5eef9;border-bottom:1px solid #dae4ef}.stage-1{background:#e1e9f0}.stage-2{background:#ede9e1}.stage-3{background:#e8e3ef}.work-number{position:absolute;left:18px;top:14px;font-family:Sora,sans-serif;font-size:.7rem;color:#526579}.work-platform{position:absolute;right:18px;top:14px;font-size:.68rem;color:#45596e;letter-spacing:.01em}
.work-screen{height:255px;width:auto;max-width:76%;object-fit:cover;object-position:top;border:5px solid #25332d;border-radius:20px;background:#fff;box-shadow:0 15px 30px #152a4222;transform:rotate(-4deg);transition:transform .25s}.work-card:hover .work-screen{transform:rotate(0)}.stage-2 .work-screen{width:85%;height:180px;object-fit:cover;border-radius:12px;transform:rotate(0);margin-top:3px}.work-symbol{width:104px;height:104px;margin-top:18px;padding:3px;background:white;border-radius:24px;box-shadow:0 14px 36px #152a421c;transform:rotate(-8deg)}.work-symbol img{width:100%;height:100%;object-fit:cover;border-radius:21px}.work-monogram{font:600 3rem Sora;margin-top:28px;color:#02569b}
.work-body{padding:22px}.work-tags{display:flex;flex-wrap:wrap;gap:6px;font-size:.62rem;color:#526579}.work-tags span{padding:3px 7px;border-radius:5px;background:#eef3fa}.work-body h2,.work-body h3{font:600 1.23rem/1.25 Sora,sans-serif;letter-spacing:-.035em;margin:13px 0 10px}.work-role{font-size:.86rem;line-height:1.6;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.work-details{margin-top:18px;border-top:1px solid var(--line)}.work-details summary{list-style:none;display:flex;justify-content:space-between;align-items:center;font-size:.8rem;font-weight:600;padding:14px 0 0;min-height:44px;cursor:pointer}.work-details summary::-webkit-details-marker{display:none}.work-details[open] summary span{transform:rotate(45deg)}.work-detail-body{padding-top:14px;font-size:.82rem;color:var(--muted)}.work-detail-body h4{color:var(--ink);font-size:.82rem;margin:18px 0 8px}.work-detail-body ul{padding-left:18px;margin:0}.work-detail-body li{margin-bottom:8px}.work-detail-body p{margin:0}.work-gallery{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;padding:12px 0;scroll-snap-type:x proximity}.work-gallery img{height:210px;width:auto;max-width:none;border-radius:9px;scroll-snap-align:start;object-fit:contain;background:#edf0ed}.work-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px}.work-actions a{color:#02569b;font-size:.75rem;font-weight:600;min-height:44px;display:inline-flex;align-items:center;gap:4px}
.work-end{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:38px;background:#e8f1fc;border-radius:18px;margin-top:48px}.work-end h2{font:600 clamp(1.5rem,3vw,2.5rem)/1.15 Sora;letter-spacing:-.045em;margin:12px 0}.work-end p{font-size:.84rem;color:var(--muted)}
/* Home balances an immediate offer with a portrait and product proof. */
body[data-page=home] .hero{margin-top:24px;grid-template-columns:1.12fr .88fr;gap:32px;padding:42px;min-height:0;background:#10243b;border-radius:24px;box-shadow:none}body[data-page=home] .hero::before,body[data-page=home] .hero::after{display:none}body[data-page=home] .hero h1{font-size:clamp(2.5rem,4.8vw,4.4rem);line-height:1.05;max-width:14ch;margin:20px 0;letter-spacing:-.06em}body[data-page=home] .hero p{font-size:1rem;line-height:1.7}body[data-page=home] .hero .eyebrow{color:#b9dcfb;line-height:1.5}body[data-page=home] .hero-visual,body[data-page=home] .hero-card{min-height:360px;height:360px}body[data-page=home] .hero-card{border-radius:16px}body[data-page=home] .hero-metrics{gap:8px}body[data-page=home] .metric-chip{font-size:.7rem;padding:6px 9px;border-color:#ffffff25}body[data-page=home] .hero-platforms{display:none}body[data-page=home] .hero-overlay--bottom p{font-size:.8rem;max-width:100%;padding:10px;border-radius:10px}body[data-page=home] .hero-badge strong{font-size:.78rem}body[data-page=home] .hero-location{font-size:.7rem;white-space:nowrap}body[data-page=home] .hero-actions{margin:24px 0 16px}.home-work{padding:38px 0 12px}.home-work-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.home-work h2{font:600 clamp(1.4rem,3vw,2rem) Sora;letter-spacing:-.045em;margin:8px 0}.home-work .work-stage{height:185px}.home-work .work-role{-webkit-line-clamp:2}
.pr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.pr-card{border:1px solid var(--line);border-radius:16px;padding:22px;background:white}.pr-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:.68rem;color:var(--muted)}.merged-badge{color:#654197;background:#f0eaf6;padding:4px 8px;border-radius:100px}.pr-card h3{font:600 1rem/1.5 Sora;margin:16px 0;letter-spacing:-.02em}.pr-card p{font-size:.75rem;color:var(--muted);margin:0}.pr-card a:hover{text-decoration:underline}
@media(min-width:821px){.site-nav{display:flex!important}.menu-toggle{display:none!important}}
@media(max-width:1080px){.work-grid,.pr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-page=home] .hero{grid-template-columns:1.1fr .9fr;padding:28px}body[data-page=home] .hero-visual,body[data-page=home] .hero-card{min-height:340px;height:340px}.hero-overlay--top{flex-direction:column;align-items:flex-start}.work-intro{gap:16px}.availability-link{white-space:normal;max-width:220px}.work-end{flex-direction:column;align-items:flex-start}}
@media(max-width:820px){.container{width:calc(100% - 36px)}.nav-wrap{padding:14px 0}.site-nav.open{background:#fff;border:1px solid var(--line);box-shadow:0 12px 30px #152a4215}.menu-toggle{background:#edf3fb;border:1px solid var(--line);border-radius:10px;min-height:44px;min-width:44px}body[data-page=home] .hero{grid-template-columns:1fr;gap:24px;padding:26px;margin-top:16px}body[data-page=home] .hero h1{font-size:clamp(2.5rem,8vw,3.8rem)}body[data-page=home] .hero-visual,body[data-page=home] .hero-card{height:320px;min-height:320px}.hero-overlay--top{flex-direction:row}.work-intro{align-items:flex-start;flex-direction:column;padding:24px 0 18px;gap:12px}.work-intro h1{font-size:2rem}.work-intro p{font-size:.85rem}.availability-link{max-width:none;white-space:normal;padding:7px 11px}.work-toolbar{margin-bottom:18px;padding-top:12px}.work-filters button{padding:8px 12px}.work-grid{gap:18px}.work-stage{height:205px}.work-body{padding:18px}.home-work-head{align-items:flex-start}.section{padding:28px 0}}
@media(max-width:560px){.work-grid,.pr-grid{grid-template-columns:1fr}.work-intro h1{font-size:1.9rem}.work-intro .eyebrow{font-size:.62rem}.work-toolbar{gap:6px}.work-filters{gap:0}.work-filters button{font-size:.75rem;padding:8px 11px}#work-count{font-size:.65rem}.work-stage{height:200px}.work-end{padding:24px;margin-top:32px}.work-end .button-row{width:100%}.home-work-head{flex-direction:column;gap:8px}.home-work .work-stage{height:205px}body[data-page=home] .hero{padding:22px}.hero-actions{flex-direction:row!important}.hero-actions a{font-size:.8rem;padding:10px 14px}body[data-page=home] .hero-metrics .metric-chip:nth-child(n+4){display:none}body[data-page=home] .hero-visual,body[data-page=home] .hero-card{min-height:285px;height:285px}.hero-overlay--top{flex-direction:column}.footer-inner{gap:14px}.footer-links{flex-wrap:wrap}.work-platform{max-width:70%;text-align:right}.section-copy,.lead{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
.contribution-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.contribution-proof>div{display:flex;align-items:center;gap:14px}.contribution-proof strong{font:600 2rem Sora;letter-spacing:-.04em}.contribution-proof span{font-size:.8rem;color:var(--muted)}.pr-section,.services-section{padding-top:38px}.pr-section h2,.services-section h2{font:600 clamp(1.5rem,3vw,2rem) Sora;letter-spacing:-.04em;margin:8px 0}.proof-note{font-size:.8rem;color:var(--muted);margin-top:20px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.service-grid article{padding:24px 0;border-top:1px solid var(--line)}.service-grid article>span{font-size:.7rem;color:#02569b}.service-grid h3{font:600 1.1rem Sora;letter-spacing:-.03em}.service-grid p{font-size:.9rem;color:var(--muted);margin-bottom:0}.contact-banner{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;padding:36px;background:#10243b;color:#fff;border-radius:20px}.contact-banner h2{font:600 1.7rem/1.3 Sora;letter-spacing:-.03em;margin:0 0 14px}.contact-banner p{color:#c6d5e6;font-size:.9rem}.contact-banner .button-row{margin-top:22px}.contact-email{font-size:clamp(.9rem,2vw,1.2rem);overflow-wrap:anywhere;color:#fff}.contact-facts p{display:grid;gap:5px;padding-bottom:14px;border-bottom:1px solid #ffffff20}.contact-facts span{font-size:.72rem}.contact-facts strong{color:#fff;font-size:.9rem}
@media(max-width:820px){.contribution-proof{gap:10px}.contribution-proof>div{align-items:flex-start;flex-direction:column;gap:4px}.contribution-proof strong{font-size:1.5rem}.contribution-proof span{font-size:.7rem}.contact-banner{grid-template-columns:1fr;gap:24px;padding:24px}.service-grid{grid-template-columns:1fr;gap:0}.pr-section,.services-section{padding-top:28px}.contact-banner .button-secondary{color:#fff}}

.profile-summary{max-width:900px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow-wrap:anywhere}.profile-summary h2{font:600 1.2rem Sora;margin-top:28px}.profile-summary h2:first-child{margin-top:0}.profile-summary a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}.profile-summary li{margin:10px 0;font-size:.9rem}.profile-summary p{color:var(--muted)}

.ui-icon{display:inline-block;width:18px;height:18px;flex-shrink:0;vertical-align:middle}.button .ui-icon,.button-secondary .ui-icon{width:19px;height:19px}.work-actions .ui-icon,.pr-card .ui-icon{width:14px;height:14px}.pr-card h3 a{display:inline}.availability-link>.ui-icon{width:16px;height:16px}.work-details summary>.ui-icon{width:16px;height:16px}

.framework-icon{display:inline-block;width:18px;height:18px;object-fit:contain;vertical-align:middle;margin-left:5px}

.framework-icons{display:inline-flex;align-items:center;gap:6px;margin-left:6px;vertical-align:middle;white-space:nowrap}.framework-icons .framework-icon{margin-left:0;width:16px;height:16px}
