.cv-page{--cv-content-width: 1140px;--cv-page-padding: .8rem;--cv-dock-overlap: 8.25rem;--cv-divider: oklch(.9049 .0895 164.15 / .12);--cv-divider-strong: oklch(.9049 .0895 164.15 / .2);--cv-panel-radius: 14px;--cv-sheet-padding: 1.1rem;--cv-panel-border: oklch(.9049 .0895 164.15 / .14);--cv-dossier-frame-depth: calc(var(--cv-panel-radius) + 12px);--cv-dossier-frame-fade: linear-gradient( 90deg, transparent 0%, oklch(0 0 0 / .2) 8%, oklch(0 0 0) 16%, oklch(0 0 0) 84%, oklch(0 0 0 / .2) 92%, transparent 100% );--cv-panel-surface: oklch(.1861 .0283 174.33 / .84);--cv-panel-surface-strong: oklch(.2058 .0319 169.79 / .9);min-height:100vh;margin-top:calc(var(--cv-dock-overlap) * -1);padding:calc(var(--cv-page-padding) + var(--cv-dock-overlap)) var(--cv-page-padding) var(--cv-page-padding);background:#02110d;color:#ecfdf5}.cv-sheet{width:min(var(--cv-content-width),100%);margin-inline:auto}.cv-hero,.cv-hero-copy,.cv-grid,.cv-facts,.cv-skills-grid,.cv-projects,.cv-project-header,.cv-project-title-block,.cv-project-meta,.cv-project-body,.cv-project-copy,.cv-stack-list,.cv-project-highlights-list,.cv-skill-card ul,.cv-detail-card ul{display:grid}.cv-badge,.cv-card-index,.cv-facts dt,.cv-project-meta dt,.cv-stack-list dt,.cv-project-period,.cv-link-label,.cv-print-link{font-family:Chakra Petch,sans-serif;font-weight:700;text-transform:uppercase}.cv-sheet{padding:1.1rem;border-radius:22px;overflow:hidden;border:1px solid oklch(.9049 .0895 164.15 / .18);background:#041511eb;box-shadow:0 24px 52px #010a076b}.cv-hero{gap:1.15rem;margin:calc(var(--cv-sheet-padding) * -1) calc(var(--cv-sheet-padding) * -1) 0;padding:var(--cv-sheet-padding) var(--cv-sheet-padding) 1.6rem;background:linear-gradient(90deg,oklch(.9624 .0434 156.74 / .015) 1px,transparent 1px) 0 0 / 34px 100%,#041511eb}.cv-hero-copy{gap:.95rem;align-content:start}.cv-hero-meta{display:flex;align-items:center;justify-content:flex-start;gap:.55rem;flex-wrap:wrap}.cv-badge{margin:0;font-size:.84rem;letter-spacing:.14em;color:#6ee7b7}.cv-print-link{display:inline-flex;align-items:center;gap:.34rem;padding:.28rem .56rem;border:1px solid oklch(.8452 .1299 164.98 / .18);border-radius:999px;background:#6ee7b70f;color:#6ee7b7f0;font-size:.68rem;letter-spacing:.12em;line-height:1;white-space:nowrap;text-decoration:none;transition:transform .17s ease,border-color .17s ease,background-color .17s ease,color .17s ease}.cv-print-link:hover{transform:translateY(-1px);border-color:#6ee7b757;background:#6ee7b71f;color:#ecfdf5}.cv-print-link-icon{flex:0 0 auto;width:.82rem;height:.82rem}.cv-hero h1,.cv-section h2,.cv-panel h2,.cv-project-card h3,.cv-project-highlights h4,.cv-detail-card h4,.cv-skill-card h3{margin:0;font-family:Fraunces,serif;text-wrap:balance;color:#ecfdf5}.cv-hero h1{font-size:clamp(2.4rem,6vw,4.6rem);line-height:.92;letter-spacing:-.04em}.cv-intro{max-width:72ch;margin:0;font-size:clamp(1rem,1.5vw,1.08rem);line-height:1.75;color:#c7f3df}.cv-intro p{margin:0}.cv-intro p+p{margin-top:.45rem}.cv-intro strong{color:#ecfdf5}.cv-hero-media{position:relative;min-height:18rem;overflow:hidden;border-radius:28px;border:1px solid oklch(.9049 .0895 164.15 / .18);background:#051713d1;box-shadow:0 24px 48px #010a0747}.cv-hero-media:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#03100c05,#041c132e 70%,#03100c80)}.cv-hero-image{width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.88) contrast(1.04) brightness(1)}.cv-top-grid,.cv-section,.cv-skills-grid,.cv-projects{margin-top:1rem}.cv-surface{overflow:hidden;border:1px solid var(--cv-panel-border);border-radius:var(--cv-panel-radius);background:var(--cv-panel-surface);box-shadow:inset 0 1px #ffffff0a,0 14px 28px #010a0729;backdrop-filter:blur(8px)}.cv-surface-inset{border:1px solid oklch(.9049 .0895 164.15 / .12);border-radius:16px;background:#04141075;box-shadow:inset 0 1px #ffffff08}.cv-surface-project{--cv-timeline-strip-color: oklch(.8452 .1299 164.98 / .42);--cv-timeline-strip-width: 2px;--cv-timeline-strip-wrap: 1.5rem;position:relative;border:0;background:#041511c7}.cv-surface-project:before{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--cv-timeline-strip-wrap) + var(--cv-timeline-strip-width));border-top:var(--cv-timeline-strip-width) solid var(--cv-timeline-strip-color);border-bottom:var(--cv-timeline-strip-width) solid var(--cv-timeline-strip-color);border-left:var(--cv-timeline-strip-width) solid var(--cv-timeline-strip-color);border-top-left-radius:var(--cv-panel-radius);border-bottom-left-radius:var(--cv-panel-radius);pointer-events:none;-webkit-mask-image:linear-gradient(90deg,oklch(0 0 0) 0,oklch(0 0 0) calc(100% - .92rem),oklch(0 0 0 / .72) calc(100% - .56rem),oklch(0 0 0 / .28) calc(100% - .18rem),transparent 100%);mask-image:linear-gradient(90deg,oklch(0 0 0) 0,oklch(0 0 0) calc(100% - .92rem),oklch(0 0 0 / .72) calc(100% - .56rem),oklch(0 0 0 / .28) calc(100% - .18rem),transparent 100%)}.cv-panel{padding:1.1rem}.cv-section-shell{padding-inline:0}.cv-panel-mirrored{padding:1.1rem 1.16rem 1.1rem 1.1rem}.cv-section{padding-top:0;border-top:0}.cv-section-frame{position:relative;overflow:hidden;border:0}.cv-skills-section,.cv-project-history-section{padding-top:1rem}.cv-skills-section{--cv-section-clamp-depth: .78rem;--cv-section-clamp-inset-left: 1.1rem;--cv-section-clamp-inset-right: 1.1rem}.cv-section-frame:before,.cv-section-frame:after{content:"";position:absolute;left:0;right:0;height:var(--cv-dossier-frame-depth);pointer-events:none;-webkit-mask-image:var(--cv-dossier-frame-fade);mask-image:var(--cv-dossier-frame-fade)}.cv-section-frame:before{top:0;border-top:1px dashed var(--cv-divider-strong);border-left:1px dashed var(--cv-divider-strong);border-right:1px dashed var(--cv-divider-strong);border-top-left-radius:var(--cv-panel-radius);border-top-right-radius:var(--cv-panel-radius)}.cv-section-frame:after{bottom:0;border-bottom:1px dashed var(--cv-divider-strong);border-left:1px dashed var(--cv-divider-strong);border-right:1px dashed var(--cv-divider-strong);border-bottom-left-radius:var(--cv-panel-radius);border-bottom-right-radius:var(--cv-panel-radius)}.cv-skills-section.cv-section-frame:before,.cv-skills-section.cv-section-frame:after{left:var(--cv-section-clamp-inset-left);right:var(--cv-section-clamp-inset-right);height:var(--cv-section-clamp-depth);-webkit-mask-image:none;mask-image:none}.cv-skills-section.cv-section-frame:before{border-top-left-radius:12px;border-top-right-radius:12px}.cv-skills-section.cv-section-frame:after{border-bottom-left-radius:12px;border-bottom-right-radius:12px}.cv-section-heading{margin-bottom:1rem}.cv-panel h2,.cv-section h2{font-size:clamp(1.35rem,2vw,1.9rem)}.cv-section-heading p{margin:.45rem 0 0;line-height:1.6;color:#bdeed8}.cv-subheading{margin-top:1.35rem!important}.cv-facts{gap:.9rem;margin-top:1.05rem}.cv-facts>div,.cv-stack-list>div,.cv-project-meta>div{display:grid;gap:.2rem}.cv-facts>div+div,.cv-stack-list>div+div{padding-top:.7rem;border-top:1px dashed var(--cv-divider)}.cv-facts dt,.cv-project-meta dt,.cv-stack-list dt{font-size:.75rem;letter-spacing:.12em;color:#6ee7b7}.cv-facts dd,.cv-project-meta dd,.cv-stack-list dd{margin:0;line-height:1.6;color:#d7fbec}.cv-link-list,.cv-chip-list,.cv-skill-card ul,.cv-project-highlights-list,.cv-detail-card ul{margin:0;padding:0;list-style:none}.cv-link-list{display:grid;gap:.7rem;margin-top:1.05rem}.cv-link-card{display:grid;gap:.22rem;padding:.72rem .85rem;text-decoration:none;transition:color .17s ease,transform .17s ease,border-color .17s ease,background-color .17s ease}.cv-link-card:hover{transform:translate(2px);border-color:#6ee7b747;background:#061f188f}.cv-link-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;letter-spacing:.12em;color:#6ee7b7}.cv-link-icon{flex:0 0 auto;width:1rem;height:1rem}.cv-link-url{color:#d7fbec;line-height:1.6;word-break:break-word}.cv-chip-list{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.cv-chip-list li{padding:.5rem .8rem;border-radius:999px;border:1px solid oklch(.8452 .1299 164.98 / .24);background:#04141085;color:#ecfdf5;line-height:1.4}.cv-card-heading{display:flex;align-items:baseline;gap:.7rem;margin-bottom:.85rem}.cv-card-index{margin:0;font-size:.74rem;letter-spacing:.16em;color:#86efac;opacity:.92}.cv-skill-card{padding:1rem 1rem 1.05rem;border:0;background:transparent;box-shadow:none}.cv-skill-card h3{font-size:1.08rem}.cv-skill-card ul{gap:.46rem}.cv-skill-group{padding-left:0!important}.cv-skill-group:before{display:none!important}.cv-skill-group-label{margin:0;font-weight:400;color:#ddfced;line-height:1.4}.cv-skill-sublist{display:block;margin:.32rem 0 0;padding-left:0;list-style:none}.cv-skill-sublist .cv-skill-sublist-item{position:static;margin:0 0 0 1.6rem;padding-left:0!important;font-size:.9em;line-height:1.45;list-style:disc outside}.cv-skill-sublist .cv-skill-sublist-item:before{display:none}.cv-skill-chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.cv-chip{display:inline-block;padding:.08rem .45rem;border:1px solid oklch(.8452 .1299 164.98 / .24);border-radius:999px;background:#10b98114;color:#bbf7d0cc;font-size:.7rem;font-weight:600;line-height:1.3;letter-spacing:.04em;text-transform:uppercase}.cv-skill-sublist-chip{margin-left:.45rem;vertical-align:baseline}.cv-skill-card li,.cv-project-highlights li,.cv-detail-card li,.cv-project-copy p{color:#c7f3df;line-height:1.7}.cv-skill-card>ul>li,.cv-project-highlights li,.cv-detail-card li{position:relative;padding-left:1rem}.cv-skill-card>ul>li:before,.cv-project-highlights li:before,.cv-detail-card li:before{content:"";position:absolute;left:0;top:.72rem;width:.38rem;height:.38rem;border-radius:999px;background:#6ee7b7}.cv-projects{gap:2rem}.cv-project-header{gap:1rem;padding:1.18rem 1.18rem 1.04rem 1.3rem;border-bottom:0}.cv-project-divider{position:relative;height:.8rem;margin:0 1.18rem 0 1.3rem;border-top:1px dashed var(--cv-divider-strong)}.cv-project-divider:before,.cv-project-divider:after{content:"";position:absolute;top:0;width:.8rem;height:.5rem;pointer-events:none}.cv-project-divider:before{left:0;border-top:1px dashed var(--cv-divider-strong);border-left:1px dashed var(--cv-divider-strong);border-top-left-radius:12px}.cv-project-divider:after{right:0;border-top:1px dashed var(--cv-divider-strong);border-right:1px dashed var(--cv-divider-strong);border-top-right-radius:12px}.cv-project-title-block{gap:.45rem}.cv-project-eyebrow{display:flex;flex-wrap:wrap;align-items:baseline;gap:.65rem}.cv-project-period,.cv-project-sector{margin:0;color:#6ee7b7;font-weight:700}.cv-project-period{font-size:.84rem;letter-spacing:.1em}.cv-project-sector{font-size:.94rem}.cv-project-card h3{margin-top:.15rem;font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.15}.cv-project-meta{gap:.75rem}.cv-project-meta>div{padding:.8rem .9rem}.cv-project-meta-roles{grid-column:1 / -1}.cv-project-body{gap:1rem;padding:1.18rem 1.18rem 1.18rem 1.3rem}.cv-project-body-summary{grid-template-columns:minmax(0,1fr)}.cv-project-body>*+*{padding-top:1rem;border-top:1px dashed var(--cv-divider)}.cv-project-copy{display:flex;flex-direction:column;gap:.8rem;align-self:stretch}.cv-project-summary{display:grid;gap:.8rem}.cv-project-spacer{flex-grow:1}.cv-project-copy p{margin:0}.cv-project-highlights{display:grid;gap:.7rem;padding-top:.5rem;padding-bottom:1rem;align-content:start}.cv-project-highlights h4{font-size:1.28rem}.cv-project-highlights-list{gap:.55rem}.cv-project-page-kicker{margin:0;font-family:Chakra Petch,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#6ee7b7}.cv-detail-card{padding:1rem}.cv-project-stack-page{padding:1rem 1.18rem 1.18rem 1.3rem}.cv-project-card-stack .cv-stack-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:.8rem}.cv-project-card-stack .cv-stack-list>div+div{padding-top:0;border-top:0}.cv-brace-frame-vertical{--cv-brace-depth: 2.15rem;position:relative;padding-top:1.3rem;border-color:transparent;overflow:visible}.cv-brace-frame-vertical:before,.cv-brace-frame-vertical:after{content:"";position:absolute;top:0;bottom:0;width:var(--cv-brace-depth);pointer-events:none}.cv-brace-frame-vertical:before{left:0;border-top:1px dashed var(--cv-divider-strong);border-bottom:1px dashed var(--cv-divider-strong);border-left:1px dashed var(--cv-divider-strong);border-top-left-radius:16px;border-bottom-left-radius:16px;-webkit-mask-image:linear-gradient(90deg,oklch(0 0 0) 0,oklch(0 0 0) calc(100% - .7rem),oklch(0 0 0 / .32) calc(100% - .24rem),transparent 100%);mask-image:linear-gradient(90deg,oklch(0 0 0) 0,oklch(0 0 0) calc(100% - .7rem),oklch(0 0 0 / .32) calc(100% - .24rem),transparent 100%)}.cv-brace-frame-vertical:after{right:0;border-top:1px dashed var(--cv-divider-strong);border-right:1px dashed var(--cv-divider-strong);border-bottom:1px dashed var(--cv-divider-strong);border-top-right-radius:16px;border-bottom-right-radius:16px;-webkit-mask-image:linear-gradient(270deg,oklch(0 0 0) 0,oklch(0 0 0) calc(100% - .7rem),oklch(0 0 0 / .32) calc(100% - .24rem),transparent 100%);mask-image:linear-gradient(270deg,oklch(0 0 0) 0,oklch(0 0 0) calc(100% - .7rem),oklch(0 0 0 / .32) calc(100% - .24rem),transparent 100%)}.cv-detail-card h4{margin-bottom:.7rem;font-size:1.28rem}.cv-detail-card ul,.cv-stack-list{gap:.55rem}.cv-stack-list{gap:.75rem}@media(min-width:520px){.cv-page{--cv-dock-overlap: 5.8rem}}@media(min-width:640px){.cv-page{--cv-page-padding: clamp(1rem, 2.4vw, 2.1rem)}}@media(min-width:760px){.cv-hero{grid-template-columns:minmax(0,1.14fr) minmax(19rem,.86fr);align-items:stretch}.cv-hero-media{min-height:100%}.cv-top-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}.cv-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.35rem}.cv-facts>div+div{padding-top:0;border-top:0}.cv-skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-project-header{grid-template-columns:minmax(0,1.45fr) minmax(260px,.95fr);align-items:start}.cv-project-meta{grid-template-columns:repeat(2,minmax(0,1fr));align-self:start}}@media(min-width:980px){.cv-page{--cv-sheet-padding: 1.7rem}.cv-sheet{padding:1.7rem}.cv-skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cv-project-body{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start}.cv-project-body>*+*{padding-top:.5rem;padding-left:1rem;border-top:0;border-left:1px dashed var(--cv-divider)}}@page{size:A4;margin:12mm}
