.cv{--cv-measure:68ch;--cv-rule:1px solid var(--color-border);max-width:1000px;margin:0 auto;padding:calc(var(--nav-height) + var(--sp-6)) var(--page-margin) var(--sp-12);font-family:var(--font-sans);font-weight:300;line-height:1.7}.cv-head{border-bottom:2px solid var(--color-text);padding-bottom:var(--sp-4)}.cv h1{font-size:var(--text-4xl);line-height:.92;letter-spacing:-.035em;margin:0 0 var(--sp-2)}.cv h1,.cv-role{font-family:var(--font-display);font-weight:700}.cv-role{display:inline-block;background:var(--color-accent);color:#000;letter-spacing:.16em;text-transform:uppercase;padding:.3rem .75rem}.cv-contact,.cv-role{font-size:var(--text-sm)}.cv-contact{margin:var(--sp-3) 0 0;line-height:1.6;display:flex;flex-wrap:wrap;align-items:center;gap:.3rem var(--sp-2)}.cv-contact,.cv-contact a{color:var(--color-text-muted)}.cv-contact a{text-decoration:none;border-bottom:var(--cv-rule);transition:color .15s var(--ease-out),border-color .15s var(--ease-out)}.cv-contact a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.cv-contact b{color:var(--color-text);font-weight:700}.cv-sep{color:var(--color-border)}.cv-download{display:inline-flex;align-items:center;margin-top:var(--sp-4);padding:.6rem 1.1rem;border:1px solid var(--color-accent);color:var(--color-accent);font-size:var(--text-sm);font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:background .15s var(--ease-out),color .15s var(--ease-out)}.cv-download:hover{background:var(--color-accent);color:#000}.cv-download:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.cv h2{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent);margin:var(--sp-8) 0 var(--sp-3);padding-bottom:.5rem;border-bottom:var(--cv-rule)}.cv-intro{max-width:var(--cv-measure);font-size:var(--text-lg);line-height:1.6;color:var(--color-text-muted);margin:0;text-wrap:pretty}.cv-intro b{color:var(--color-text);font-weight:700}.cv-num{color:var(--color-accent);font-weight:700}.cv-job{margin-bottom:var(--sp-6)}.cv-job:last-of-type{margin-bottom:var(--sp-4)}.cv-job-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:.15rem}.cv-job-title{font-family:var(--font-sans);font-size:var(--text-xl);font-weight:700;line-height:1.2;letter-spacing:-.01em;margin:0}.cv-job-when{font-size:var(--text-sm);font-weight:300;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.cv-job-org,.cv-job-when{color:var(--color-text-muted)}.cv-job-org{font-size:var(--text-sm);margin:0 0 var(--sp-2)}.cv-tag{display:inline-block;border:var(--cv-rule);padding:.05rem .45rem;margin-left:.6rem;font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--color-accent);border-color:var(--color-accent)}.cv ul{margin:0;padding-left:1.15rem;max-width:var(--cv-measure)}.cv li{margin-bottom:.45rem;color:var(--color-text-muted);text-wrap:pretty}.cv li::marker{color:var(--color-border)}.cv li b{color:var(--color-text);font-weight:700}.cv-earlier{max-width:var(--cv-measure);font-size:var(--text-sm);color:var(--color-text-muted);margin:0;text-wrap:pretty}.cv-earlier b{color:var(--color-text);font-weight:700}.cv-skills{column-count:2;column-gap:var(--sp-6);margin:0;padding-left:1.15rem;max-width:none}.cv-skills li{page-break-inside:avoid;break-inside:avoid}.cv-edu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4)}.cv-edu-title{font-weight:700;font-size:var(--text-base);margin:0}.cv-edu-meta{margin:.2rem 0 0;line-height:1.6}.cv-edu-meta,.cv-foot{font-size:var(--text-sm);color:var(--color-text-muted)}.cv-foot{margin-top:var(--sp-6);padding-top:var(--sp-2);border-top:var(--cv-rule)}.cv-reel-block{margin-top:var(--sp-12);padding-top:var(--sp-6);border-top:2px solid var(--color-text)}.cv .cv-reel-heading{font-family:var(--font-sans);font-size:var(--text-lg);font-weight:700;line-height:1.3;letter-spacing:.01em;text-transform:none;color:var(--color-text-muted);border-bottom:0;margin:0 0 var(--sp-2);padding:0;max-width:none}.cv .cv-reel-heading em{font-style:normal;color:var(--color-accent)}.cv-reel{--reel-line:clamp(2.4rem,5vw,3.4rem);height:var(--reel-line);overflow:hidden;position:relative}.cv-reel:after,.cv-reel:before{content:"";position:absolute;left:0;right:0;height:22%;pointer-events:none;z-index:2}.cv-reel:before{top:0;background:linear-gradient(var(--color-bg),transparent)}.cv-reel:after{bottom:0;background:linear-gradient(transparent,var(--color-bg))}.cv-reel-track{margin:0;padding:0;list-style:none;will-change:transform}.cv-reel-track li{height:var(--reel-line);display:flex;align-items:center;font-family:var(--font-display);font-size:clamp(1.05rem,2.1vw,1.75rem);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--color-text);white-space:nowrap;margin:0}@media (max-width:640px){.cv-skills{column-count:1}.cv-reel-track li{white-space:normal;font-size:var(--text-lg);line-height:1.2}.cv-reel{--reel-line:4.5rem}}@media (prefers-reduced-motion:reduce){.cv-reel{height:auto;overflow:visible}.cv-reel:after,.cv-reel:before{display:none}.cv-reel-track{transform:none!important}.cv-reel-track li{height:auto;white-space:normal;font-size:var(--text-lg);line-height:1.4;padding:.15rem 0}}@media print{.cv-download,.nav,nav{display:none!important}.cv{max-width:none;padding:0}.cv-reel{height:auto;overflow:visible}.cv-reel:after,.cv-reel:before{display:none}.cv-reel-track{transform:none!important}.cv-reel-track li{height:auto;font-size:1rem;white-space:normal}}