
:root{--bg:#eef1f6;--card:#fff;--navy:#0f2a4a;--blue:#1d5fd1;--ink:#1a2433;--mute:#5d6a82;--line:#dde3ee;
--sales:#1d5fd1;--gov:#0b8577;--prod:#b2690b;--events:#7b44c9;--mgmt:#43546f;--font:'Onest',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:20px}
body{background:var(--bg);color:var(--ink);font:16px/1.65 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid #5b9bff;outline-offset:2px;border-radius:6px}
.progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:20;background:var(--blue);transform-origin:0 50%;transform:scaleX(0)}
.layout{display:grid;grid-template-columns:340px 1fr;max-width:1320px;margin:0 auto;min-height:100vh}
aside{background:var(--navy);color:#e8eefb}
.side{position:sticky;top:0;padding:32px;display:flex;flex-direction:column;gap:20px;max-height:100vh;overflow:auto;scrollbar-width:thin}
.id{display:flex;flex-direction:column;gap:18px}
.photo{width:100%;height:auto;aspect-ratio:4/4.4;object-fit:cover;object-position:50% 20%;border-radius:20px;background:#183a63;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 18px 40px -18px rgba(0,0,0,.6)}
aside h1{font-size:25px;line-height:1.2;font-weight:700;letter-spacing:-.01em}.role{color:#a8bde0;font-size:15px;margin-top:6px;line-height:1.45}
.contacts{list-style:none;padding:18px 0 0;display:grid;gap:14px;font-size:14.5px;border-top:1px solid #243f66}
.contacts span{display:block;font-size:12.5px;color:#86a0cc;margin-bottom:1px}
.crow{display:flex;align-items:center;justify-content:space-between;gap:8px}.crow a:hover{text-decoration:underline}
.copy{flex:none;width:30px;height:30px;border-radius:8px;border:1px solid #2c4b78;background:transparent;color:#a8bde0;cursor:pointer;display:grid;place-items:center;transition:.15s}
.copy svg{width:15px;height:15px}.copy:hover{background:#1b3d6b;color:#fff}
.cta{background:#fff;color:var(--navy);font-weight:700;text-align:center;padding:13px;border-radius:12px;transition:.15s}.cta:hover{background:#dce8ff;transform:translateY(-1px)}
aside nav{display:grid;gap:2px;border-top:1px solid #243f66;padding-top:14px}
aside nav a{padding:7px 12px;margin:0 -12px;border-radius:8px;color:#a8bde0;font-size:14.5px;border-left:3px solid transparent;transition:.15s}
aside nav a:hover{color:#fff}aside nav a[aria-current=true]{color:#fff;background:#173a66;border-left-color:#5b9bff}
main{padding:44px clamp(18px,4vw,52px)}
section{background:var(--card);border-radius:22px;padding:34px;margin-bottom:20px}
h2{font-size:26px;line-height:1.2;font-weight:700;letter-spacing:-.015em;margin-bottom:18px}
h3{font-size:16.5px;line-height:1.35;font-weight:600}
.lead{font-size:21px;line-height:1.5;font-weight:500;margin-bottom:14px;max-width:62ch}section p{color:#3b475c}section .lead{color:var(--ink)}
.hint{font-size:15px;color:var(--mute)!important;max-width:64ch;margin:-6px 0 18px}
/* filters */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.fchip{font:500 14px var(--font);border:1.5px solid var(--line);background:#fff;color:var(--ink);padding:7px 14px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:.15s}
.fchip i{width:9px;height:9px;border-radius:50%;background:currentColor}
.fchip.c-sales i{background:var(--sales)}.fchip.c-gov i{background:var(--gov)}.fchip.c-prod i{background:var(--prod)}.fchip.c-events i{background:var(--events)}.fchip.c-mgmt i{background:var(--mgmt)}
.fchip:hover{border-color:#9db4dd}.fchip.on{background:var(--navy);border-color:var(--navy);color:#fff}.fchip.on i{box-shadow:0 0 0 2px #fff}
/* gantt */
.gantt{position:relative;margin-bottom:22px;padding:6px 0 4px;background:linear-gradient(var(--bg),var(--bg)) 0 0/100% 100% no-repeat;border-radius:16px;padding:14px 16px}
.grow,.gaxis{display:grid;grid-template-columns:168px 1fr;gap:14px;align-items:center}
.grow{padding:5px 0;transition:opacity .25s}.grow.dim{opacity:.28}.grow.hl .glab b{color:var(--blue)}
.glab b{display:block;font-size:13.5px;font-weight:600;line-height:1.25}.glab small{font-size:12px;color:var(--mute)}
.gtrack{position:relative;height:26px}
.gaxis .gtrack{height:20px;border-bottom:1px solid #cfd8e8}
.tick{position:absolute;top:0;height:100%}.tick i{position:absolute;bottom:3px;left:0;transform:translateX(-50%);font:500 12px var(--font);font-style:normal;color:var(--mute)}
.gantt .grow .gtrack::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(19.0476% - 1px),#d3dbe9 calc(19.0476% - 1px),#d3dbe9 19.0476%)}
.bar{position:absolute;top:3px;height:20px;border:0;border-radius:7px;cursor:pointer;background:var(--sales);transition:transform .15s,box-shadow .15s,filter .15s;min-width:10px}
.bar.c-sales{background:var(--sales)}.bar.c-gov{background:var(--gov)}.bar.c-prod{background:var(--prod)}.bar.c-events{background:var(--events)}.bar.c-mgmt{background:var(--mgmt)}
.bar.now{border-radius:7px 3px 3px 7px;-webkit-mask:linear-gradient(90deg,#000 75%,rgba(0,0,0,.35));mask:linear-gradient(90deg,#000 75%,rgba(0,0,0,.35))}
.bar:hover,.grow.hl .bar{transform:scaleY(1.22);box-shadow:0 6px 14px -4px rgba(15,42,74,.45)}
.tip{position:absolute;z-index:6;pointer-events:none;background:var(--navy);color:#fff;font-size:13px;line-height:1.35;padding:7px 11px;border-radius:9px;white-space:nowrap;transform:translate(-50%,-135%)}
/* list */
.listbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:14px;color:var(--mute)}
.linkbtn{font:600 14px var(--font);color:var(--blue);background:none;border:0;cursor:pointer;padding:6px 2px}.linkbtn:hover{text-decoration:underline}
.job{border-top:1px solid var(--line);transition:opacity .25s,background .4s}.job.dim{opacity:.35}.job.flash{background:#eaf1ff}
.jhead{width:100%;display:grid;grid-template-columns:1fr auto 22px;gap:16px;align-items:center;text-align:left;background:none;border:0;padding:18px 0;cursor:pointer;font:inherit;color:inherit;border-radius:8px}
.jt b{display:block;font-weight:650;font-size:17px;line-height:1.3}.org{display:block;color:var(--navy);font-weight:500;font-size:15px}
.jw{text-align:right}.jw time{display:inline-block;font-size:13px;font-weight:600;color:var(--blue);background:#e8f0ff;padding:3px 10px;border-radius:999px;white-space:nowrap}.jw small{display:block;font-size:12.5px;color:var(--mute);margin-top:3px}
.chev{width:16px;height:16px;color:var(--mute);transition:transform .25s}.jhead[aria-expanded=true] .chev{transform:rotate(180deg)}
.jhead:hover .jt b{color:var(--blue)}
.jpanel{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s ease}
.js .jpanel{grid-template-rows:0fr}.js .jhead[aria-expanded=true]+.jpanel{grid-template-rows:1fr}
.jpanel>div{overflow:hidden}.jin{padding:0 0 22px;max-width:70ch}
.meta{font-size:14px;color:var(--mute)!important;margin-bottom:8px}
.jin ul{padding-left:19px}.jin li{margin:7px 0;color:#3b475c}.jin li::marker{color:var(--blue)}
.inl{color:var(--blue);text-decoration:underline;text-decoration-color:#b5cbf3;text-underline-offset:3px;font-weight:500;transition:.15s}.inl:hover{text-decoration-color:var(--blue);background:#e8f0ff;border-radius:3px}
.ext{width:.7em;height:.7em;margin-left:.3em;vertical-align:baseline}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.tag{font-size:13px;display:inline-flex;align-items:center;gap:7px;color:var(--mute)}.tag i{width:8px;height:8px;border-radius:50%}
.tag.c-sales i{background:var(--sales)}.tag.c-gov i{background:var(--gov)}.tag.c-prod i{background:var(--prod)}.tag.c-events i{background:var(--events)}.tag.c-mgmt i{background:var(--mgmt)}
/* kpis */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:12px;margin-bottom:26px}
.kpi{background:var(--bg);border-radius:16px;padding:20px 18px;display:flex;flex-direction:column}
.kpi b{white-space:nowrap;font-size:30px;line-height:1.05;font-weight:800;color:var(--navy);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.kpi strong{font-size:13.5px;color:var(--blue);margin:7px 0 4px;line-height:1.3}.kpi span{font-size:13.5px;color:var(--mute);line-height:1.4}
.ach{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}.ach>div{border-left:3px solid var(--blue);padding-left:16px}.ach p{font-size:15px;margin-top:4px}
/* partners */
.pgroup{margin-top:18px}.pgroup h3{font-size:14px;font-weight:600;color:var(--mute);margin-bottom:10px}
.pchips{display:flex;flex-wrap:wrap;gap:8px}
.pchip{display:inline-flex;align-items:center;font-size:14.5px;font-weight:500;padding:9px 15px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);transition:.18s}
a.pchip:hover{border-color:var(--blue);background:var(--blue);color:#fff;transform:translateY(-2px);box-shadow:0 10px 18px -10px rgba(29,95,209,.7)}
.pchip.plain{background:var(--bg);border-color:transparent;color:var(--mute)}.pchip .ext{margin-left:8px;opacity:.55}a.pchip:hover .ext{opacity:1}
/* skills */
.skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.skill{background:var(--bg);border-radius:16px;padding:20px}.skill h3{color:var(--navy);margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chips span{font-size:13.5px;background:#fff;border-radius:8px;padding:4px 10px;color:#33415a}
.edu{display:flex;gap:20px;padding:14px 0;border-top:1px solid var(--line)}.edu b{color:var(--blue);min-width:48px}.edu p{font-size:15px;color:var(--mute)}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);background:var(--navy);color:#fff;padding:10px 18px;border-radius:12px;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:30}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){
.layout{grid-template-columns:1fr}.side{position:static;max-height:none;padding:24px 20px}aside nav{display:none}
.id{flex-direction:row;align-items:center;gap:16px}.photo{width:104px;height:104px;flex:none;aspect-ratio:1;border-radius:18px;object-position:50% 18%}
main{padding-top:20px}section{padding:22px 18px}h2{font-size:23px}
.grow,.gaxis{grid-template-columns:104px 1fr;gap:10px}.glab b{font-size:12.5px}
.jhead{grid-template-columns:1fr 22px}.jw{grid-column:1;text-align:left;display:flex;gap:10px;align-items:center}.chev{grid-row:1;grid-column:2}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{aside nav,.cta,.progress,.filters,.gantt,.copy,.listbar,.toast{display:none}.side{position:static;max-height:none}body{background:#fff}.js .jpanel{grid-template-rows:1fr}.layout{display:block}aside{border-radius:0}}
