.cv-wrap{max-width:1320px}.cv-wrap h1,.cv-wrap h2,.cv-wrap h3{font-family:var(--display);font-variation-settings:"wdth" 105,"wght" 600;letter-spacing:-.035em}.cv-wrap h2 span{color:var(--teal)}.micro{font: .625rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.text-link{font-size:.875rem;text-decoration:none;display:inline-flex;gap:1rem;align-items:center}.text-link:hover{color:var(--fg)}.cv-wrap a:focus-visible,.cv-wrap button:focus-visible{outline:2px solid var(--teal);outline-offset:5px}.skip-link{position:absolute;top:-100px;left:1rem;background:var(--teal);color:var(--bg);padding:1rem;z-index:100}.skip-link:focus{top:1rem}.cv-hero{display:grid;grid-template-columns:1.35fr 1fr;gap:5rem;align-items:center;padding:1.5rem 0 4rem}.cv-hero h1{font-size:clamp(3.7rem,7vw,6.8rem);font-variation-settings:"wdth" 108,"wght" 700;line-height:.98;margin:1.7rem 0;letter-spacing:-.055em}.cv-hero h1>span{color:var(--teal)}.cv-intro{color:var(--muted);font-size:1.0625rem;max-width:49ch;line-height:1.8;margin:1.8rem 0}.hero-actions{display:flex;gap:1.6rem;align-items:center;flex-wrap:wrap}.hero-actions .btn{padding:.85rem 1rem;letter-spacing:.04em}.hero-actions .btn span{margin-left:1rem}.hero-actions .text-link{gap:.6rem}.cv-signal{padding:0 0 1.5rem}.signal-art{height:340px;position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(transparent,#000 14%,#000 88%,transparent)}.signal-art:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 20%,var(--bg) 75%);z-index:-1}.orbit{position:absolute;border:1px solid var(--teal-dim);border-radius:50%;opacity:.4;width:260px;height:260px;transform:rotate(-30deg) scaleX(.63)}.orbit-b{transform:rotate(30deg) scaleX(.63)}.orbit-c{transform:rotate(90deg) scaleX(.63)}.signal-core{font:500 2.8rem var(--display);letter-spacing:-.06em;color:var(--teal);text-align:center}.signal-core span{display:block;font: .48rem var(--mono);letter-spacing:.1em;margin-top:.5rem;color:var(--muted)}.orbit-dot{position:absolute;top:90px;left:calc(50% + 85px);width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 20px #a9c9c288}.signal-coordinate{position:absolute;bottom:8px;font:.55rem var(--mono);letter-spacing:.16em;color:var(--muted)}.signal-caption{display:flex;align-items:center;justify-content:center;gap:.6rem;font: .6rem var(--mono);color:var(--teal);margin:1.2rem 0 .5rem}.status-dot{height:6px;width:6px;border-radius:100%;background:var(--teal);flex:none}.cv-signal>p{font-size:.8125rem;text-align:center;color:var(--muted);margin:0}.cv-jump{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.35rem 0;border-block:1px solid var(--line)}.cv-jump a{font: .65rem var(--mono);text-transform:uppercase;letter-spacing:.05em;text-decoration:none;color:var(--fg)}.cv-jump a span{color:var(--teal-dim);margin-right:.6rem}.cv-jump a:hover{color:var(--teal)}.cv-section{padding-top:6rem;scroll-margin-top:2rem}.cv-section-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem}.cv-section-head h2{font-size:clamp(1.9rem,3.7vw,3rem);line-height:1.15;margin:0}.cv-section-head .eyebrow{font-size:.625rem;color:var(--teal-dim)}.cv-section-head>p{font-size:.8125rem;color:var(--muted);line-height:1.7;margin:0}.timeline-tools{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2.5rem}.timeline-tools[hidden]{display:none}.cv-filters{display:flex;gap:.25rem;flex-wrap:wrap}.cv-filters button{font: .625rem var(--mono);color:var(--muted);padding:.7rem .9rem;border:1px solid transparent;background:transparent;cursor:pointer}.cv-filters button:hover{color:var(--fg);border-color:var(--line)}.cv-filters button[aria-pressed=true]{background:var(--raised);border-color:var(--line);color:var(--teal)}.cv-timeline{margin:0;padding:0;list-style:none}.cv-event{display:grid;grid-template-columns:180px 1fr;position:relative}.cv-event[hidden]{display:none}.event-date{font: .75rem var(--mono);color:var(--fg);padding:1.7rem 1.5rem 2rem 0;line-height:1.7}.event-date>span{display:block;color:var(--teal-dim);font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;margin-top:.4rem}.event-body{position:relative;padding:1.5rem 1.5rem 2.6rem 2.3rem;border-left:1px solid var(--line);border-top:1px solid var(--line);transition:background .2s}.event-body:before{content:"";position:absolute;left:-4px;top:2rem;width:7px;height:7px;border:1px solid var(--teal-dim);background:var(--bg);border-radius:50%}.cv-event:first-child .event-body:before{background:var(--teal);box-shadow:0 0 0 5px #a9c9c20d}.event-body:hover{background:var(--panel)}.event-top{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.event-org{font: .65rem var(--mono);color:var(--teal);line-height:1.6}.event-location{font-size:.7rem;color:var(--muted);flex-shrink:0}.event-body h3{font-size:1.45rem;line-height:1.3;margin:.7rem 0}.event-body p{font-size:.9375rem;color:var(--muted);max-width:69ch;margin:.5rem 0 1.1rem;line-height:1.8}.event-tags{font: .55rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--teal-dim);line-height:1.8}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.work-feature,.work-small{padding:2rem;background:var(--panel);display:flex;flex-direction:column;align-items:start}.work-grid h3{font-size:1.6rem;line-height:1.2;margin:1.5rem 0 .5rem}.work-grid p{font-size:.9375rem;color:var(--muted);margin:0 0 1.6rem;line-height:1.8}.work-note{font:.6rem var(--mono);color:var(--teal-dim);margin-top:auto;line-height:1.8}.work-grid .text-link{margin-top:auto}.coil-art{height:140px;position:relative;width:100%;display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.coil-art span{position:absolute;width:110px;height:110px;border:1px solid var(--teal-dim);border-radius:50%;transform:scaleX(.5) rotate(-20deg);left:calc(50% - 105px);opacity:.7}.coil-art span:nth-child(2){left:calc(50% - 92px)}.coil-art span:nth-child(4){left:calc(50% - 5px)}.coil-art span:nth-child(5){left:calc(50% + 8px)}.coil-art i{font:1.5rem var(--mono);color:var(--teal);font-style:normal}.meta-art{height:140px;display:grid;grid-template-columns:repeat(7,17px);gap:9px;align-content:center;justify-content:center;align-self:center;transform:skewY(-12deg);margin-top:1rem}.meta-art i{width:17px;height:17px;border:1px solid var(--teal-dim);box-shadow:inset 0 0 0 4px var(--panel),inset 0 0 0 5px var(--line)}.meta-art i:nth-child(3n){border-color:var(--teal);background:#a9c9c214}.work-small{padding-block:2rem}.work-small h3{margin-top:1.1rem;font-size:1.4rem}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.skill-group{padding:2rem 1.7rem 2rem 0;border-bottom:1px solid var(--line)}.skill-group+.skill-group{padding-left:1.7rem}.skill-group:nth-child(3n+1){padding-left:0}.skill-group:not(:nth-child(3n)){border-right:1px solid var(--line)}.skill-group h3{font-size:1.3rem;line-height:1.3;margin:1rem 0 .6rem}.skill-group p{font-size:.8rem;color:var(--muted);margin:0 0 1.4rem}.skill-group ul{list-style:none;padding:0;margin:0;display:flex;gap:.5rem;flex-wrap:wrap}.skill-group li{padding:.25rem .5rem;border:1px solid var(--line);font-size:.7rem;color:var(--teal);line-height:1.6}.recognition-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:4rem}.mini-heading{font: .65rem var(--mono)!important;letter-spacing:.1em!important;text-transform:uppercase;color:var(--teal-dim);padding-bottom:1rem;border-bottom:1px solid var(--line);margin:0}.award-list{padding:0;margin:0;list-style:none}.award-list li{display:flex;gap:1.3rem;padding:1.2rem 0;border-bottom:1px solid var(--line)}.award-list li>span{font:.65rem var(--mono);min-width:4rem;color:var(--muted);padding-top:.2rem}.award-list strong{font-size:.9rem;font-weight:500}.award-list p{margin:.2rem 0 0;font-size:.8rem;color:var(--muted)}.language-list{margin:0}.language-list>div{display:flex;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.85rem}.language-list dd{color:var(--muted);margin:0;font-size:.75rem;align-self:center}.training-heading{margin-top:2rem}.foundations>p{font-size:.8rem;line-height:2;color:var(--muted)}.cv-documents{border-top:1px solid var(--line)}.cv-documents>a{display:flex;align-items:center;gap:1.6rem;text-decoration:none;color:inherit;padding:1.5rem .5rem;border-bottom:1px solid var(--line)}.cv-documents>a:hover{background:var(--panel)}.document-icon{font:1.8rem var(--mono);color:var(--teal)}.cv-documents h3{margin:0;font-size:1.25rem}.cv-documents p{font-size:.8rem;margin:.2rem 0 0;color:var(--muted)}.cv-documents>a>.micro{margin-left:auto;white-space:nowrap}.cv-end{position:relative;padding-top:4rem}.cv-end>p{font-size:.85rem;color:var(--muted);margin:0 0 .5rem}.cv-end>a:not(.back-top){font:500 clamp(2rem,4vw,3.4rem) var(--display);text-decoration:none;letter-spacing:-.04em}.back-top{position:absolute;right:0;bottom:.5rem;font-size:.75rem}
@media(min-width:1500px){.cv-hero{gap:7rem}}
@media(max-width:900px){.cv-hero{gap:2rem;grid-template-columns:1.3fr 1fr}.cv-hero h1{font-size:4.5rem}.signal-art{height:290px}.orbit{width:220px;height:220px}.event-top{display:block}.event-location{display:block;margin-top:.3rem}.skills-grid{grid-template-columns:1fr 1fr}.skill-group:nth-child(n){padding:1.7rem;border-right:0}.skill-group:nth-child(odd){padding-left:0;border-right:1px solid var(--line)}.recognition-grid{gap:2rem}.cv-section-head>p{max-width:24ch}}
@media(max-width:620px){.cv-hero{grid-template-columns:1fr;gap:1rem;padding-top:0;padding-bottom:2rem}.cv-hero h1{font-size:clamp(3.5rem,15vw,5.5rem)}.cv-signal{display:none}.cv-intro{font-size:1rem}.hero-actions{gap:1.3rem}.cv-jump{gap:1.2rem;justify-content:start}.cv-jump a{font-size:.6rem}.cv-section{padding-top:3.5rem}.cv-section-head{display:block;margin-bottom:1.7rem}.cv-section-head>p,.cv-section-head>.text-link{margin-top:1rem}.timeline-tools{display:block;margin-bottom:1.5rem}.cv-filters{margin-bottom:1rem;gap:.15rem}.cv-filters button{padding:.65rem .5rem;font-size:.6rem}.cv-event{grid-template-columns:1fr;padding-left:1.1rem;border-left:1px solid var(--line)}.event-date{padding:1.5rem 0 .6rem;font-size:.65rem;display:flex;justify-content:space-between;gap:.5rem}.event-date>span{margin:0;font-size:.5rem;align-self:center}.event-body{border-left:0;padding:.2rem 0 1.8rem;border-top:0}.event-body:before{top:-1.9rem;left:-1.35rem}.cv-event+.cv-event .event-date{border-top:1px solid var(--line)}.event-body h3{font-size:1.3rem}.event-body p{font-size:.875rem}.event-body:hover{background:transparent}.work-grid{grid-template-columns:1fr}.work-feature,.work-small{padding:1.5rem}.work-grid h3{font-size:1.4rem}.skills-grid{grid-template-columns:1fr}.skill-group:nth-child(n){padding:1.7rem 0;border-right:0}.recognition-grid{grid-template-columns:1fr;gap:2rem}.cv-documents>a{gap:1rem}.cv-documents h3{font-size:1.1rem}.cv-documents p{font-size:.7rem}.cv-documents>a>.micro{font-size:.5rem}.back-top{position:static;margin-top:2rem;display:flex}.cv-end{padding-top:2.5rem}}
@media print{body{background:white;color:#111}.site-header,.foot,.cv-signal,.cv-jump,.timeline-tools,.hero-actions,.cv-end,.skip-link{display:none!important}.cv-wrap{padding:0;max-width:none}.cv-hero{display:block;padding:0}.cv-hero h1{font-size:32pt}.cv-hero h1 br{display:none}.cv-hero h1 br:after{content:' '}.cv-section{padding-top:2rem}.cv-event[hidden]{display:grid}.cv-event,.work-feature,.work-small,.skill-group{break-inside:avoid}.cv-wrap p,.event-location,.event-date,.micro,.work-note{color:#444}.event-body,.skill-group,.work-feature,.work-small{background:white}.work-grid{background:#aaa}.cv-wrap{--teal:#2b6258;--teal-dim:#3d645d;--muted:#555;--fg:#111;--line:#ccc;--panel:#fff;--bg:#fff}.cv-hero h1>span{color:#2b6258}}

/* Keep long display headings inside their grid track at intermediate widths. */
.cv-hero>div,.cv-signal{min-width:0}
@media(min-width:621px) and (max-width:900px){.cv-hero h1{font-size:clamp(2.6rem,6.8vw,4.5rem)}.signal-caption{line-height:1.6;text-align:center}.cv-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}
@media(max-width:620px){.cv-hero h1{font-size:clamp(2.6rem,13.5vw,5rem)}}
