@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,500;1,600&family=DM+Sans:wght@400;500;600;700&family=Cutive+Mono&display=swap');
/* Selected CV, intentionally restrained; all styles scoped to the CV page. */
.kcv{--c-ink:#2c4347;--c-muted:#617273;--c-plum:#775369;--c-sage:#73918a;--c-rose:#bd8e92;--c-paper:#fbf8f0;--c-stroke:#dfd6ca;--c-serif:'Cormorant Garamond',Georgia,serif;--c-sans:'DM Sans',system-ui,sans-serif;--c-mono:'Cutive Mono',monospace;font-family:var(--c-sans);font-size:15px;line-height:1.66;color:var(--c-ink);background:var(--c-paper);isolation:isolate;overflow-x:clip}
.kcv *,.kcv *::before,.kcv *::after{box-sizing:border-box}.kcv a{color:inherit;text-decoration:none}.kcv a:focus-visible{outline:2px solid #98607d;outline-offset:4px}.kcv-shell{width:min(1170px,calc(100% - 72px));margin:0 auto}
.kcv-readbar{position:fixed;inset:0 0 auto;z-index:45;height:3px;pointer-events:none}.kcv-readbar span{display:block;width:0;height:100%;background:linear-gradient(90deg,#9b7878,#799b8c,#c6a36d);transition:width .08s ease}
.kcv-cover{background:radial-gradient(ellipse at 4% 6%,rgba(223,205,200,.42),transparent 53%),radial-gradient(ellipse at 90% 95%,rgba(209,219,205,.6),transparent 48%),#f1e8da;border-bottom:1px solid #d8c8b9;position:relative}.kcv-cover::before{content:'';position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#8d5b70 0 21%,#ddd0b6 21% 51%,#63877e 51% 81%,#bea07f 81%)}.kcv-cover-content{display:grid;grid-template-columns:1.07fr .77fr;gap:clamp(45px,7vw,124px);align-items:center;padding:87px 0 72px}.kcv-cover-left{min-width:0}.kcv-stamp{display:flex;align-items:center;gap:13px;flex-wrap:wrap;color:#946c7b;font:11px/1.4 var(--c-mono);letter-spacing:.14em;margin:0 0 32px}.kcv-stamp-flower{font-family:Georgia,serif;font-size:25px;color:#947783;animation:kcv-flower 24s linear infinite}.kcv-stamp-divider{opacity:.55}.kcv-cover h1{font:600 clamp(75px,8.1vw,122px)/.76 var(--c-serif);letter-spacing:-.055em;margin:0;color:#293f41;max-width:780px}.kcv-cover h1 em{font-weight:500;color:#815f73}.kcv-hero-sub{margin:42px 0 26px;color:#536969;font:18px/1.8 var(--c-sans);max-width:480px}.kcv-cover-links{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;padding-top:20px;border-top:1px solid #bdb7a7}.kcv-cover-links a{font:13px/1.5 var(--c-sans);font-weight:600;color:#466766;border-bottom:1px solid #819c94;padding-bottom:4px;transition:color .2s,transform .2s}.kcv-cover-links a:hover{color:#935c78;transform:translateY(-2px)}
.kcv-cover-right{background:#fdfaf2;border:1px solid #d0c6b4;box-shadow:7px 9px 0 #ddd0bc,0 20px 55px rgba(67,54,46,.08);padding:34px 34px 38px;position:relative;min-height:390px}.kcv-cover-right::before{content:'';position:absolute;inset:10px;border:1px solid #e4ded2;pointer-events:none}.kcv-paper-ornament{display:flex;justify-content:flex-end;height:92px;color:#8c9784;opacity:.83;overflow:hidden;margin:-8px -10px 15px}.kcv-paper-ornament svg{height:105px;width:215px;transform-origin:70% 100%}.kcv-cover-right:hover .kcv-paper-ornament svg{animation:kcv-vine 2.2s ease-in-out both}.kcv-card-index{font:11px var(--c-mono);letter-spacing:.17em;color:#8c657b}.kcv-card-role{font:600 35px/.95 var(--c-serif);margin:14px 0 18px;color:#2f5151}.kcv-card-role span{font-weight:500;font-style:italic;color:#8a6173}.kcv-rule{height:1px;background:#d8cfbf;margin:20px 0}.kcv-cover-right dl{margin:0;display:grid;gap:13px}.kcv-cover-right dl div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px}.kcv-cover-right dt{font:10px/1.6 var(--c-mono);text-transform:uppercase;letter-spacing:.08em;color:#976e7a}.kcv-cover-right dd{margin:0;font:13px/1.55 var(--c-sans);color:#566767}.kcv-cover-bottom{display:flex;justify-content:space-between;gap:20px;padding:10px max(36px,calc((100vw - 1170px)/2));background:#294d4f;color:#efedde;font:10px/1.5 var(--c-mono);letter-spacing:.12em}
.kcv-document{display:grid;grid-template-columns:190px minmax(0,1fr);gap:clamp(55px,6vw,110px);padding-top:67px;padding-bottom:90px}.kcv-index{height:fit-content;position:sticky;top:27px;align-self:start;padding-top:3px}.kcv-index-label{font:11px var(--c-mono);letter-spacing:.16em;color:#a17e87}.kcv-index nav{display:grid;margin-top:22px;border-left:1px solid #d8d0c2}.kcv-index nav a{display:flex;align-items:center;gap:15px;font:13px/1.4 var(--c-sans);padding:12px 0 12px 18px;margin-left:-2px;border-left:3px solid transparent;color:#607270;transition:color .2s,border-color .2s,padding-left .2s}.kcv-index nav a small{font:10px var(--c-mono);color:#ad8895}.kcv-index nav a:hover,.kcv-index nav a.is-active{border-color:#a56f89;color:#2f4e4d;padding-left:22px}.kcv-index-note{font:10px/1.8 var(--c-mono);letter-spacing:.09em;color:#a3948a;margin-top:42px}.kcv-pages{min-width:0}.kcv-section{position:relative;padding:0 0 75px;margin-bottom:68px;border-bottom:1px solid var(--c-stroke);scroll-margin-top:18px}.kcv-section-head{margin-bottom:32px}.kcv-section-head>span{font:11px/1.5 var(--c-mono);letter-spacing:.16em;color:#9f7084}.kcv-section-head h2{font:600 clamp(46px,5vw,65px)/.97 var(--c-serif);letter-spacing:-.02em;margin:12px 0 0;color:#2c484b}.kcv-section-head h2 em{font-weight:500;color:#845f75}.kcv-profile-text{max-width:740px;font:17px/1.89 var(--c-sans);color:#536c69;margin:0 0 38px}.kcv-focus-list{border-top:1px solid #d3c9bc}.kcv-focus-line{display:grid;grid-template-columns:54px minmax(0,1fr);gap:14px;border-bottom:1px solid #e4dacf;padding:19px 0 22px;transition:padding-left .2s,background .2s}.kcv-focus-line:hover{padding-left:10px;background:linear-gradient(90deg,#eef0e7,transparent 80%)}.kcv-focus-no{font:11px var(--c-mono);color:#a77c8c;margin-top:6px}.kcv-focus-line h3{margin:0 0 5px;font:600 25px/1.1 var(--c-serif);color:#2e4d4e}.kcv-focus-line p{margin:0;font:13px/1.65 var(--c-sans);color:#637371}.kcv-records{border-top:1px solid #d7d0c7}.kcv-record{display:grid;grid-template-columns:109px minmax(0,1fr);gap:20px;padding:25px 0 23px;border-bottom:1px solid #ded7cd}.kcv-record-mark{padding-top:4px;font:10px/1.5 var(--c-mono);color:#a17387}.kcv-record h3{font:600 clamp(25px,3vw,32px)/1.1 var(--c-serif);margin:0;color:#344f4d}.kcv-record p{margin:8px 0 0;font:13px/1.6 var(--c-sans);color:#70807b}.kcv-record p span{padding:0 5px;color:#bd968e}
.kcv-paper-list{margin:0;padding:0;list-style:none;border-top:1px solid #d9d1c4}.kcv-paper{display:grid;grid-template-columns:75px minmax(0,1fr);gap:19px;padding:22px 0 24px;border-bottom:1px solid #e4ddd3;position:relative}.kcv-paper-year{font:13px var(--c-mono);color:#986a84;padding-top:5px}.kcv-paper-meta{font:10px/1.7 var(--c-mono);letter-spacing:.03em;color:#6f847d;margin-bottom:7px}.kcv-paper-meta span{padding:0 7px;color:#baa3a0}.kcv-paper-content>a{font:600 clamp(22px,2.7vw,28px)/1.2 var(--c-serif);display:block;color:#304e4f;max-width:790px;transition:color .2s,transform .2s}.kcv-paper-content>a:hover{color:#9a5e79;transform:translateX(4px)}.kcv-paper-content>a span{font:16px var(--c-sans);color:#9b758a}.kcv-more-link{display:inline-flex;gap:9px;align-items:center;margin-top:29px;color:#815a72!important;border-bottom:1px solid #ba9dae;padding-bottom:6px;font:13px/1.5 var(--c-sans);font-weight:600}.kcv-more-link:hover{color:#2e5d5b!important}
.kcv-experience-group{border-top:1px solid #d7d0c7}.kcv-subheading{font:11px/1.5 var(--c-mono);letter-spacing:.11em;color:#a3768b;text-transform:uppercase;margin:19px 0 9px}.kcv-industrial{margin-top:26px}.kcv-role{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:26px;align-items:baseline;padding:17px 0 19px;border-bottom:1px solid #e3dbd0}.kcv-role h3{margin:0;font:600 25px/1.1 var(--c-serif);color:#324d4d}.kcv-role p{font:13px/1.6 var(--c-sans);color:#637471;margin:6px 0 0}.kcv-role>span{font:12px/1.6 var(--c-sans);color:#875f73;text-align:right}
.kcv-service-columns{display:grid;grid-template-columns:1fr 1fr;gap:46px}.kcv-service-part{border-top:2px solid #9eb2a4;padding-top:19px;min-width:0}.kcv-service-part h3,.kcv-community h3{font:600 31px/1.05 var(--c-serif);color:#334e4e;margin:0 0 20px}.kcv-teach-line{border-bottom:1px solid #ded8cc;padding:0 0 17px;margin-bottom:17px}.kcv-teach-line strong{display:block;font:13px/1.5 var(--c-sans);color:#825c6d}.kcv-teach-line span{font:13px/1.7 var(--c-sans);color:#647672}.kcv-sub-link{display:inline-block;margin-top:3px;font:12px var(--c-sans);color:#825c6d!important;border-bottom:1px solid #ba9dae}.kcv-review-venues{font:13px/1.9 var(--c-sans);color:#5d7370;margin:0 0 19px}.kcv-honors{border-top:1px solid #ded8cc}.kcv-honor{display:flex;gap:20px;justify-content:space-between;align-items:baseline;padding:13px 0;border-bottom:1px solid #ded8cc}.kcv-honor strong{font:500 23px/1.1 var(--c-serif);color:#375456}.kcv-honor span{font:11px var(--c-mono);color:#987282;text-align:right}.kcv-community{border-top:1px solid #d9d2c7;margin-top:42px;padding-top:23px}.kcv-community h3{font-size:28px}.kcv-community-row{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:baseline;gap:20px;margin:12px 0}.kcv-community-row strong{font:600 16px var(--c-serif);color:#805870}.kcv-community-row p{margin:0;font:13px/1.65 var(--c-sans);color:#5e7471}
.kcv-end{display:flex;align-items:center;flex-direction:column;text-align:center;padding:7px 10px 13px}.kcv-end-symbol{font:34px var(--c-serif);color:#aa8996;margin:0 0 13px;animation:kcv-flower 30s linear infinite}.kcv-end p{font:17px/1.6 var(--c-serif);max-width:550px;margin:0 0 24px;color:#657a76}.kcv-end p a{border-bottom:1px solid #b799a7;color:#815977}.kcv-end>span{font:10px var(--c-mono);letter-spacing:.2em;color:#a5898e}
@keyframes kcv-flower{to{transform:rotate(360deg)}}@keyframes kcv-vine{50%{transform:translateY(-6px) rotate(1.5deg)}to{transform:none}}
@media(max-width:970px){.kcv-shell{width:calc(100% - 50px)}.kcv-cover-content{gap:45px}.kcv-cover h1{font-size:clamp(68px,8vw,98px)}.kcv-cover-right{padding:28px 24px;min-height:360px}.kcv-document{grid-template-columns:147px minmax(0,1fr);gap:36px}.kcv-service-columns{gap:25px}.kcv-role{grid-template-columns:minmax(0,1fr) 135px}}
@media(max-width:720px){.kcv-shell{width:calc(100% - 36px)}.kcv-cover-content{grid-template-columns:1fr;gap:34px;padding:60px 0}.kcv-cover h1{font-size:clamp(70px,13vw,106px)}.kcv-hero-sub{margin-top:30px}.kcv-cover-right{min-height:0;max-width:560px}.kcv-cover-bottom{padding:12px 20px;justify-content:center}.kcv-cover-bottom span:last-child{display:none}.kcv-document{grid-template-columns:1fr;gap:35px;padding-top:34px}.kcv-index{position:static;border-bottom:1px solid #dcd1c2;padding-bottom:17px}.kcv-index-label,.kcv-index-note{display:none}.kcv-index nav{display:flex;align-items:center;overflow-x:auto;border:0;gap:20px;padding-bottom:4px;margin:0}.kcv-index nav a{margin:0;padding:7px 0!important;border-left:0;border-bottom:2px solid transparent;white-space:nowrap}.kcv-index nav a:hover,.kcv-index nav a.is-active{border-bottom-color:#a56f89}.kcv-section{padding-bottom:50px;margin-bottom:53px}.kcv-section-head h2{font-size:clamp(47px,9vw,68px)}.kcv-service-columns{grid-template-columns:1fr;gap:36px}.kcv-paper{grid-template-columns:50px minmax(0,1fr);gap:13px}.kcv-record{grid-template-columns:85px minmax(0,1fr)}.kcv-role{grid-template-columns:1fr;gap:4px}.kcv-role>span{text-align:left}.kcv-community-row{grid-template-columns:1fr;gap:4px}}
@media(max-width:450px){.kcv-stamp{font-size:9px;gap:8px}.kcv-cover h1{font-size:70px}.kcv-cover-right dl div{grid-template-columns:74px minmax(0,1fr)}.kcv-cover-right{padding:24px 19px}.kcv-cover-right dl dd{font-size:12px}.kcv-record{grid-template-columns:1fr;gap:6px}.kcv-record-mark{padding:0}.kcv-section-head h2{font-size:45px}.kcv-profile-text{font-size:15px}.kcv-focus-line{grid-template-columns:39px minmax(0,1fr)}.kcv-paper-content>a{font-size:22px}}
@media(prefers-reduced-motion:reduce){.kcv *, .kcv *::before,.kcv *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.kcv{background:white;font-size:11pt;overflow:visible}.kcv-readbar,.kcv-cover-bottom,.kcv-index,.kcv-cover-links{display:none!important}.kcv-cover{background:white!important}.kcv-cover-content{grid-template-columns:1fr!important;padding:12mm 0}.kcv-cover-right{display:none}.kcv-cover h1{font-size:55pt}.kcv-shell{width:100%;max-width:none}.kcv-document{display:block;padding-top:15mm}.kcv-section{break-inside:avoid-page;padding:0 0 8mm;margin:0 0 8mm}.kcv-paper,.kcv-record,.kcv-role{break-inside:avoid}.kcv-section-head h2{font-size:30pt}a{text-decoration:none!important}.kcv-service-columns{grid-template-columns:1fr 1fr}}


/* V2: restrained dated CV timeline, with compact high-level bullets. */
.kcv-record-mark span{display:inline-block;font:11px/1.5 var(--c-mono);color:#98647e;letter-spacing:.005em;white-space:nowrap}
.kcv-record{align-items:start}
.kcv-role{grid-template-columns:minmax(0,1fr) 142px;align-items:start;gap:20px;position:relative;padding:19px 0 21px 22px}
.kcv-role::before{content:"";position:absolute;top:25px;left:0;width:7px;height:7px;border-radius:100%;background:#af8598;box-shadow:0 0 0 3px #f6eee9}
.kcv-role::after{content:"";position:absolute;top:35px;bottom:0;left:3px;width:1px;background:#dfd1d0}
.kcv-role-main{min-width:0}
.kcv-role-org{display:inline-block;font:12px/1.55 var(--c-sans);letter-spacing:.025em;color:#936d81;margin:4px 0 2px}
.kcv-role-period{font:11px/1.6 var(--c-mono);letter-spacing:.01em;color:#8d617b;text-align:right;padding-top:3px}
.kcv-role-bullets{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:5px}
.kcv-role-bullets li{font:13px/1.62 var(--c-sans);color:#60736f;position:relative;padding-left:15px}
.kcv-role-bullets li::before{content:"•";position:absolute;top:-1px;left:1px;font-size:15px;color:#ac8094}
.kcv-teach-line-head{display:flex;justify-content:space-between;align-items:baseline;gap:11px;margin-bottom:5px}
.kcv-teach-line-head small,.kcv-community-row small{font:10px/1.5 var(--c-mono);color:#97718a;white-space:nowrap}
.kcv-teach-line>span{display:block}
.kcv-community-row{grid-template-columns:185px minmax(0,1fr) 100px;gap:16px}
.kcv-community-row small{text-align:right}
@media(max-width:970px){.kcv-role{grid-template-columns:minmax(0,1fr) 132px}}
@media(max-width:680px){.kcv-role{grid-template-columns:1fr;gap:5px}.kcv-role-period{text-align:left;grid-row:1;font-size:10px}.kcv-role-main{grid-row:2}.kcv-community-row{grid-template-columns:1fr;gap:4px}.kcv-community-row small{text-align:left;grid-row:1}.kcv-teach-line-head{align-items:flex-start;flex-wrap:wrap}}
@media print{.kcv-role{break-inside:avoid}.kcv-role-bullets{gap:3px}.kcv-role-bullets li{font-size:10pt;line-height:1.5}.kcv-role:after{display:none}}

/* Prevent min-content growth from clipping CV columns on narrow screens. */
@media(max-width:720px){.kcv-document{grid-template-columns:minmax(0,1fr)}.kcv-pages,.kcv-section,.kcv-role,.kcv-role-main{min-width:0}.kcv-role h3{overflow-wrap:break-word}}
