.resume-page{--r-bg:#f4f5f7;--r-surface:#ffffff;--r-ink:#151922;--r-muted:#5c6473;--r-line:#dde1e8;--r-accent:#2f55d4;--r-night:#10141b;--r-night-line:#232a36;--r-night-ink:#c9cfd9;--r-night-muted:#7d8697;--r-dot:#3a4558;--r-glow:#f2b45a;--r-mono:var(--font-mono);--r-sans:var(--font-sans);background:var(--r-bg);color:var(--r-ink);font-family:var(--r-sans);padding-block:48px 72px;padding-inline:16px}.dark .resume-page{--r-bg:#0c0f14;--r-surface:#141820;--r-ink:#e7eaf0;--r-muted:#98a1b0;--r-line:#262c37;--r-accent:#7d9bff;--r-night:#090c11;--r-night-line:#1d232d}.resume-layout{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);background:var(--r-surface);border:1px solid var(--r-line);border-radius:14px;overflow:clip}.resume{padding:40px;display:grid;gap:28px;align-content:start;min-width:0}.resume-aside{background:var(--r-night);color:var(--r-night-ink);min-width:0}.resume-map{position:sticky;top:0;padding:24px;display:grid;gap:14px}.resume-map-head{display:flex;justify-content:space-between;gap:12px;font:400 11px/1.5 var(--r-mono);color:var(--r-night-muted)}.resume-map-head b{color:var(--r-night-ink);font-weight:500}.resume-map-box{aspect-ratio:2/1;max-width:100%;overflow:hidden;border:1px solid var(--r-night-line);border-radius:8px}.resume-map-box svg{display:block;width:100%;height:100%}.resume-map-camera{transform-origin:0 0;transition:transform 1.1s cubic-bezier(.3,.1,.2,1)}.resume-map-dots{stroke:var(--r-dot);stroke-width:2.4;stroke-linecap:round}.resume-map-dots,.resume-map-route{fill:none;vector-effect:non-scaling-stroke}.resume-map-route{stroke:var(--r-night-muted);stroke-width:1;stroke-dasharray:2 5;opacity:.45}.resume-map-city .halo{opacity:.18;transition:opacity .9s ease}.resume-map-city .core{fill:var(--r-glow);opacity:.55;transition:opacity .6s ease}.resume-map-city .ring{fill:none;stroke:var(--r-glow);stroke-width:1;opacity:0;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center}.resume-map-city.is-lit .core,.resume-map-city.is-lit .halo{opacity:1}.resume-map-city.is-lit .ring{animation:resume-map-ring 2.8s ease-out infinite}@keyframes resume-map-ring{0%{opacity:.55;transform:scale(.4)}to{opacity:0;transform:scale(2.6)}}.resume-map-caption{display:grid;gap:2px;min-height:48px}.resume-map-caption .place{font:500 14px/1.4 var(--r-mono)}.resume-map-caption .detail{font:400 12px/1.5 var(--r-sans);color:var(--r-night-muted)}.resume-role[data-map-label]{cursor:default;margin-inline:-12px;padding-inline:12px;transition:background-color .25s ease}.resume-role[data-map-label]:focus-visible{outline:2px solid var(--r-accent);outline-offset:2px}.resume-role.is-mapped{background:var(--r-bg)}@media (prefers-reduced-motion:reduce){.resume-map-camera,.resume-map-city .core,.resume-map-city .halo,.resume-role[data-map-label]{transition:none}.resume-map-city.is-lit .ring{animation:none}}@media (max-width:900px){.resume-layout{grid-template-columns:minmax(0,1fr)}.resume-aside{order:-1;position:sticky;top:0;z-index:1}.resume-map{position:static;padding:12px 16px;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:6px 14px}.resume-map-head{display:none}.resume-map-box{grid-row:span 2}.resume-map-caption{min-height:0}}.resume-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px}.resume-name{font:600 28px/1.1 var(--r-mono);letter-spacing:-.03em;margin:0}.resume-tagline{margin:8px 0 0;color:var(--r-muted);max-width:52ch}.resume-toggle{display:inline-flex;border:1px solid var(--r-line);border-radius:999px;padding:3px;background:var(--r-bg)}.resume-toggle button{font:500 13px/1 var(--r-sans);border:0;background:transparent;color:var(--r-muted);padding:8px 14px;border-radius:999px;cursor:pointer}.resume-toggle button[aria-pressed=true]{background:var(--r-surface);color:var(--r-ink);box-shadow:0 1px 3px rgb(0 0 0/.14)}.resume a:focus-visible,.resume-toggle button:focus-visible{outline:2px solid var(--r-accent);outline-offset:2px}.resume-contact{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px;font:400 12px/1.6 var(--r-mono);color:var(--r-muted)}.resume-contact a{color:inherit;text-underline-offset:3px}.resume-contact a:hover{color:var(--r-ink)}.resume-download{margin:-12px 0 0;font:400 12px/1.6 var(--r-mono);color:var(--r-muted)}.resume-download a{color:var(--r-accent);text-underline-offset:3px}.resume-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0}.resume-facts div{border-top:2px solid var(--r-ink);padding-top:8px}.resume-facts dt{font:600 16px/1.2 var(--r-mono);letter-spacing:-.02em}.resume-facts dd{margin:4px 0 0;font-size:13px;color:var(--r-muted)}.resume-section{display:grid;gap:4px}.resume-section h2{font:500 11px/1 var(--r-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--r-muted);margin:0 0 8px}.resume-section>p{margin:0;max-width:68ch}.resume-role{display:grid;gap:4px;padding-block:12px;border-top:1px solid var(--r-line);break-inside:avoid}.resume-row{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 16px}.resume-role h3{font:600 15.5px/1.35 var(--r-sans);margin:0}.resume-meta{font:400 11.5px/1.6 var(--r-mono);color:var(--r-muted)}.resume-position{font-size:14px;font-weight:500}.resume-summary{margin:0;font-size:14.5px}.resume-role ul{margin:4px 0 0;padding-left:18px;display:grid;gap:3px;font-size:14px;color:var(--r-muted)}.resume-role div.resume-full{margin-top:8px}.resume-extras{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;border-top:1px solid var(--r-line);padding-top:16px}.resume-extras p{margin:0;font-size:14px}.resume-print-footer,.resume[data-depth=brief] .resume-full{display:none}@media (max-width:640px){.resume{padding:24px 18px}.resume-extras,.resume-facts{grid-template-columns:minmax(0,1fr)}}@media print{@page{size:A4;margin:14mm 16mm}.dark .resume-page,.resume-page{--r-bg:#ffffff;--r-surface:#ffffff;--r-ink:#111111;--r-muted:#444444;--r-line:#cccccc;padding:0;font-size:10pt}.resume-layout{display:block;max-width:none;border:0;border-radius:0}.resume-aside{display:none}.resume{padding:0;gap:14px}.resume-role[data-map-label]{margin-inline:0;padding-inline:0}.resume-download,.resume-toggle{display:none}.resume-name{font-size:20pt}.resume-contact a{text-decoration:none}.resume-role{padding-block:7px}.resume-role h3{font-size:10.5pt}.resume-extras p,.resume-role ul,.resume-summary{font-size:9.5pt}.resume-section h2{break-after:avoid}.resume-print-footer{display:block;margin:6px 0 0;padding-top:8px;border-top:1px solid var(--r-line);font:400 8pt/1.4 var(--r-mono);color:var(--r-muted)}}