:root{--bg:#0d1117;--bg-soft:#151b24;--text:#ecf2ff;--muted:#9fb0cc;--accent:#55c7ff;--accent-2:#8a7dff}*{box-sizing:border-box}[hidden]{display:none!important}body{background:radial-gradient(circle at 15% 15%,#1e2a45 0,var(--bg) 45%,#080b12 100%);color:var(--text);font-family:Inter,Segoe UI,sans-serif;margin:0}.cv-app{margin:0 auto;padding:56px 0 72px;width:min(1080px,92vw)}.hero h1{font-size:clamp(2rem,5vw,3.4rem);margin:0}.hero h2{color:var(--muted);font-weight:500;margin:10px 0 0}.summary{line-height:1.65;margin-top:20px;max-width:720px}.badge{background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px;color:#07121f;display:inline-block;font-size:.84rem;font-weight:600;padding:7px 12px}.contact{color:var(--muted);display:flex;flex-wrap:wrap;gap:16px;margin-top:18px}.panel{backdrop-filter:blur(3px);background:linear-gradient(180deg,hsla(0,0%,100%,.03),hsla(0,0%,100%,.015));border:1px solid #1e2738;border-radius:16px;margin-top:34px;padding:28px}.panel h3{margin-top:0}.project-grid,.skill-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card,.project-card{background:var(--bg-soft);border:1px solid #2a3448;border-radius:14px;padding:16px}.timeline{display:grid;gap:14px}.timeline-item{background:var(--bg-soft);border:1px solid #2a3448;border-radius:12px;display:grid;gap:10px;grid-template-columns:140px 1fr;padding:14px}.timeline-meta{color:var(--accent);font-weight:600}.project-type{color:var(--muted);margin:0 0 8px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags span{border:1px solid #364766;border-radius:999px;color:var(--muted);font-size:.8rem;padding:4px 10px}.footer{color:var(--muted);margin-top:28px}.reveal{transition:opacity .55s ease,transform .55s ease}.reveal-pending{opacity:0;transform:translateY(22px)}@media (max-width:700px){.timeline-item{grid-template-columns:1fr}}html{scroll-behavior:smooth;scroll-padding-top:100px}a{color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.skip-link{background:var(--bg-soft);left:20px;padding:12px;position:fixed;top:-100px;z-index:10}.skip-link:focus{top:10px}.reading-progress{background:transparent;height:3px;inset:0 0 auto;position:fixed;z-index:30}.reading-progress span{background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 0 12px #55c7ff88;display:block;height:100%;transform:scaleX(0);transform-origin:0 50%;width:100%}.topbar{align-items:center;border-bottom:1px solid #2a3448;display:flex;gap:24px;justify-content:space-between;margin:0 auto;padding:24px 0;width:min(1080px,92vw)}.wordmark{font-size:.8rem;font-weight:800;letter-spacing:.12em;text-decoration:none}.wordmark span{color:var(--accent)}.nav-links{color:var(--muted);display:flex;flex-wrap:wrap;font-size:.85rem;gap:24px}.nav-links a{text-decoration:none}.nav-links a:hover,.print-button{color:var(--text)}.print-button{background:transparent;border:1px solid #364766;border-radius:8px;cursor:pointer;padding:10px 14px}.hero{padding:26px 0 40px;position:relative}.hero h1{font-size:clamp(3rem,8vw,6rem);letter-spacing:-.055em;line-height:1.1}.hero h2{line-height:1.4;max-width:700px}.section-index{color:var(--accent);font-size:.7rem;font-weight:600;letter-spacing:.18em;margin:0 0 12px}.panel h3{font-size:1.6rem;letter-spacing:-.03em}.card h4,.project-card h4,.timeline-content h4{font-size:1.05rem;margin:0 0 14px}.card ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}.card li{border:1px solid #364766;border-radius:6px;font-size:.83rem;padding:7px 10px}.project-card p,.timeline-content li,.timeline-content p{color:var(--muted);line-height:1.7}.contact a{overflow-wrap:anywhere;text-underline-offset:4px}.timeline{border-left:1px solid #364766;margin-left:4px;padding-left:24px}.timeline,.timeline-item{position:relative}.timeline-item:before{background:var(--bg);border:1px solid var(--accent);border-radius:50%;box-shadow:0 0 16px #55c7ff44;content:"";height:9px;left:-30px;position:absolute;top:20px;width:9px}@media (max-width:700px){.topbar{flex-wrap:wrap;gap:18px}.nav-links{gap:20px;order:3;width:100%}.panel{padding:20px}.cv-app{padding-top:28px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}.hero{align-items:center;display:grid;gap:40px;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);padding:48px 0}.contact-actions,.hero-copy,.timeline-content{min-width:0}.hero h1{font-size:clamp(2.6rem,5.5vw,4.5rem);overflow-wrap:anywhere}.hero h2{font-size:1.05rem;line-height:1.6}.hero-statement{font-size:clamp(1.9rem,3.7vw,3rem);font-weight:650;letter-spacing:-.045em;line-height:1.18;margin:28px 0 20px}.hero-statement em{color:var(--accent);font-style:normal}.summary{color:var(--muted);font-size:.95rem}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 20px}.button{align-items:center;border:1px solid #364766;border-radius:9px;display:inline-flex;font-size:.85rem;font-weight:650;gap:16px;justify-content:center;line-height:1.5;overflow-wrap:anywhere;padding:13px 17px;text-decoration:none}.button-primary{background:var(--accent);border-color:var(--accent);color:#07121f}.button-primary:hover{background:#91dcff}.button-secondary:hover{border-color:var(--accent)}.expertise-map{background:linear-gradient(145deg,#1a2940,#101923);border:1px solid #364766;border-radius:20px;box-shadow:0 20px 70px #0003;padding:28px;position:relative}.expertise-map h3{font-size:1.3rem;letter-spacing:-.03em;line-height:1.4}.expertise-path{list-style:none;margin:28px 0;padding:0}.expertise-path li{align-items:flex-start;display:flex;gap:16px;padding-bottom:24px;position:relative}.expertise-path li:last-child{padding-bottom:0}.expertise-path li:not(:last-child):before{border-left:1px solid #456382;bottom:0;content:"";left:17px;position:absolute;top:36px}.path-number{background:#16273b;border:1px solid #456382;border-radius:10px;color:var(--accent);display:grid;flex:0 0 36px;font:.75rem Consolas,monospace;height:36px;place-items:center}.expertise-path strong{font-size:.95rem}.expertise-path p,.map-note{color:var(--muted);font-size:.8rem;line-height:1.6;margin:6px 0 0}.map-note{border-top:1px solid #364766;padding-top:18px}.profile-snapshot{background:#121c29;border:1px solid #2a3448;border-radius:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.profile-snapshot>div{padding:22px}.profile-snapshot>div+div{border-left:1px solid #2a3448}.profile-snapshot strong{display:block;font-size:1rem}.profile-snapshot span{color:var(--muted);display:block;font-size:.8rem;line-height:1.6;margin-top:8px}.section-intro{color:var(--muted);line-height:1.7;margin-bottom:24px;max-width:650px}.nav-links a[aria-current=location]{color:var(--accent);text-decoration:underline;text-underline-offset:7px}.mission-details{border-top:1px solid #2a3448;margin-top:20px;padding-top:14px}.mission-details summary{color:var(--accent);cursor:pointer;font-size:.85rem;line-height:1.5;padding:7px 0}.mission-details[open] summary{margin-bottom:12px}.mission-details ul{padding-left:20px}.mission-details li+li{margin-top:10px}.contact-panel{align-items:center;background:linear-gradient(110deg,#1a2940,#151b24);display:grid;gap:30px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.contact-actions{align-items:flex-start;display:flex;flex-direction:column;gap:20px}.contact-actions .button{max-width:100%}.contact-actions button.button{font-family:inherit}.copy-status{color:var(--muted);font-size:.85rem;line-height:1.6}.copy-status:empty{display:none}.button{cursor:pointer;font-family:inherit}.button:disabled{cursor:wait;opacity:.6}.mission-tools{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}.project-card{background:linear-gradient(150deg,#1a283c,var(--bg-soft) 65%);display:flex;flex-direction:column;gap:16px;overflow:hidden;padding:24px;position:relative}.project-card:before{background:linear-gradient(var(--accent),var(--accent-2));content:"";inset:0 auto 0 0;position:absolute;width:3px}.project-card .project-type,.project-card h4,.project-card>p{margin:0}.project-card h4{font-size:1.25rem;letter-spacing:-.025em;line-height:1.4}.project-card .tags{margin-top:auto}.project-number{color:var(--accent);font:.7rem Consolas,monospace;letter-spacing:.12em}.project-link{align-items:center;border-top:1px solid #364766;color:var(--accent);display:flex;font-size:.85rem;font-weight:600;gap:12px;justify-content:space-between;padding-top:16px;text-decoration:none}.project-link:hover{text-decoration:underline;text-underline-offset:4px}.project-card:focus-within{border-color:var(--accent)}.timeline-item[id]{scroll-margin-top:24px}.timeline-item:target{border-color:var(--accent)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer{display:flex;flex-wrap:wrap;font-size:.8rem;gap:18px;justify-content:space-between}@media (max-width:950px){.hero{gap:24px;grid-template-columns:1fr}.expertise-map{max-width:none}.topbar{flex-wrap:wrap}.nav-links{order:3;width:100%}}@media (max-width:700px){.hero{padding-top:16px}.hero h1{font-size:clamp(2.1rem,10vw,3rem)}.contact-panel,.profile-snapshot{grid-template-columns:1fr}.profile-snapshot>div+div{border-left:0;border-top:1px solid #2a3448}.expertise-map{padding:22px}.badge{font-size:.72rem;line-height:1.6}.project-grid,.skill-grid{grid-template-columns:1fr}.hero-actions .button{width:100%}}@media print{@page{size:A4;margin:15mm}body{background:#fff;color:#000;font-size:10pt}.mission-tools,.project-card:before,.project-link,.reading-progress,.skip-link,.topbar{display:none}.project-number{color:#333}.cv-app{padding:0;width:100%}.reveal{opacity:1;transform:none}.card,.panel,.project-card,.timeline-item{backdrop-filter:none;background:#fff;border-color:#ccc;box-shadow:none}.card,.project-card,.timeline-item{break-inside:avoid}.hero{display:block;padding:15px 0}.contact-panel,.expertise-map,.footer a,.hero-actions,.hero-statement,.mission-details summary,.profile-snapshot{display:none}.mission-details{border:0;padding:0}.timeline-item{break-inside:auto}.timeline-content h4{break-after:avoid}.timeline-content li{break-inside:avoid}.section-intro,.summary,.timeline-content p{color:#333}.timeline-item:before{background:#fff;border-color:#555;box-shadow:none}.hero h1{font-size:32pt}.panel{margin-top:16px;padding:16px}.contact,.footer,.hero h2,.project-card p,.section-index,.tags span,.timeline-content li,.timeline-meta{color:#333}.badge{background:#eee;color:#111}}