:root {
    --cv-ink: #0e1417;
    --cv-paper: #f4f2ec;
    --cv-white: #fbfaf7;
    --cv-acid: #d9ff43;
    --cv-orange: #ff6940;
    --cv-blue: #5abaff;
    --cv-muted: #697175;
    --cv-rule: #cac9c2;
}

html { scroll-behavior: smooth; }
body { background: var(--cv-ink); }
.cv-shell { width: min(1320px, calc(100% - 48px)); margin: 0 auto; }

.cv-hero {
    position: relative;
    overflow: hidden;
    padding: 6rem 0 0;
    color: #fff;
    background:
        radial-gradient(circle at 85% 18%, rgba(90,186,255,.18), transparent 25%),
        radial-gradient(circle at 12% 76%, rgba(255,105,64,.12), transparent 28%),
        var(--cv-ink);
}
.cv-hero__grid { position: absolute; inset: 0; opacity: .14; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px); background-size: 76px 76px; mask-image: linear-gradient(to bottom, #000, transparent 80%); }
.cv-hero .cv-shell { position: relative; z-index: 1; }
.cv-kicker, .section-kicker { color: var(--cv-orange); font: 700 .72rem ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .16em; }
.cv-hero__main { display: grid; grid-template-columns: 1.25fr .75fr; gap: 5rem; align-items: end; margin-top: 2rem; }
.cv-hero h1 { font-size: clamp(4.2rem, 10vw, 8.5rem); line-height: .85; letter-spacing: -.08em; }
.cv-hero h1 span { display: block; margin-top: 1rem; color: transparent; font-size: .52em; -webkit-text-stroke: 1.4px rgba(255,255,255,.7); letter-spacing: -.05em; }
.cv-headline { margin-top: 2rem; color: var(--cv-acid); font-size: 1.05rem; }
.cv-summary { max-width: 520px; padding-bottom: .5rem; color: #b4bdc1; font-size: 1.02rem; line-height: 1.9; }
.cv-connections { display: flex; flex-wrap: wrap; gap: .7rem 1.4rem; margin-top: 3.5rem; padding: 1.1rem 0; border-top: 1px solid #343b3e; }
.cv-connections a, .cv-connections span { color: #9da6aa; text-decoration: none; font: 600 .74rem ui-monospace, SFMono-Regular, Consolas, monospace; }
.cv-connections a:hover { color: var(--cv-acid); }
.cv-facts { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 1rem; border: 1px solid #343b3e; border-bottom: 0; }
.cv-facts div { padding: 1.5rem; border-right: 1px solid #343b3e; border-bottom: 1px solid #343b3e; }
.cv-facts div:last-child { border-right: 0; }
.cv-facts dt { font: 700 clamp(1.35rem, 2.5vw, 2.1rem) ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: -.055em; }
.cv-facts dd { margin-top: .45rem; color: #747e82; font-size: .75rem; text-transform: uppercase; }

.cv-body { padding: 6rem 0 7rem; background: var(--cv-paper); }
.cv-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: clamp(3rem, 7vw, 7rem); }
.cv-aside__sticky { position: sticky; top: 130px; }
.cv-aside__sticky > p, .focus-card > p { color: #72787b; font: 700 .66rem ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .14em; }
.cv-aside ol { margin-top: 1rem; list-style: none; border-top: 1px solid var(--cv-rule); }
.cv-aside li { border-bottom: 1px solid var(--cv-rule); }
.cv-aside a { display: flex; align-items: center; gap: .8rem; padding: .8rem 0; color: #4d5559; text-decoration: none; font-size: .84rem; transition: color .2s, padding .2s; }
.cv-aside a span { color: #929799; font: 700 .65rem ui-monospace, SFMono-Regular, Consolas, monospace; }
.cv-aside a:hover { padding-left: .25rem; color: #d94820; }
.focus-card { margin-top: 2.5rem; padding: 1rem; color: #fff; background: var(--cv-ink); }
.focus-card > p { color: var(--cv-acid); margin-bottom: .8rem; }
.focus-card span { display: block; padding: .4rem 0; color: #9da5a9; font-size: .76rem; border-top: 1px solid #343b3e; }

.cv-document { min-width: 0; }
.cv-section { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 2rem; padding-bottom: 6rem; scroll-margin-top: 120px; }
.section-number { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #a8aaa6; border-radius: 50%; color: #666d70; font: 700 .68rem ui-monospace, SFMono-Regular, Consolas, monospace; }
.section-content > h2 { margin-top: .65rem; padding-bottom: 1.5rem; color: var(--cv-ink); font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1; letter-spacing: -.06em; border-bottom: 1px solid var(--cv-rule); }
.section-kicker { color: #737c00; }

.cv-entry { padding: 2rem 0; border-bottom: 1px solid var(--cv-rule); }
.entry-meta { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; color: #6f7679; font: 700 .7rem ui-monospace, SFMono-Regular, Consolas, monospace; text-transform: uppercase; }
.entry-meta span { padding: .3rem .5rem; border: 1px solid #b8b8b2; }
.cv-entry h3 { margin-top: .9rem; color: var(--cv-ink); font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: 1.2; letter-spacing: -.035em; }
.entry-role { margin-top: .4rem; color: #d84d27 !important; font-weight: 700; }
.cv-entry > p { margin-top: 1rem; color: #555d61; line-height: 1.85; }
.cv-entry ul { margin-top: 1.3rem; padding-left: 1.2rem; }
.cv-entry li { margin-bottom: .75rem; padding-left: .25rem; color: #555d61; line-height: 1.8; }
.cv-entry li::marker { color: #e95731; }
.course-groups { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 1.6rem; }
.course-groups div { padding: 1.2rem; background: #e8e6df; border: 1px solid #d3d1ca; }
.course-groups h4 { color: #747c00; font: 700 .7rem ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
.course-groups p { margin-top: .6rem; color: #596064; font-size: .88rem; line-height: 1.75; }
.entry-tags { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.3rem; }
.entry-tags span { padding: .32rem .52rem; color: #50575b; background: #e4e2da; border: 1px solid #d1cfc8; font: 700 .66rem ui-monospace, SFMono-Regular, Consolas, monospace; }
.entry-links { display: flex; flex-wrap: wrap; gap: 1.3rem; margin-top: 1.4rem; }
.entry-links a { color: var(--cv-ink); text-decoration: none; padding-bottom: .2rem; border-bottom: 1px solid #929490; font-weight: 700; font-size: .85rem; }
.entry-links a:hover { color: #d64820; border-color: #d64820; }

.skills-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--cv-rule); border-left: 1px solid var(--cv-rule); }
.skills-grid article { min-height: 210px; padding: 1.4rem; border-right: 1px solid var(--cv-rule); border-bottom: 1px solid var(--cv-rule); }
.skills-grid article > span { color: #969b9c; font: 700 .66rem ui-monospace, SFMono-Regular, Consolas, monospace; }
.skills-grid h3 { margin-top: 2.8rem; font-size: 1.35rem; }
.skills-grid p { margin-top: .65rem; color: #5b6266; font-size: .9rem; line-height: 1.75; }
.skills-grid .language-skill { grid-column: 1 / -1; min-height: 160px; }
.skills-grid .language-skill h3 { margin-top: 1.5rem; }

.honors-list { list-style: none; border-top: 1px solid var(--cv-rule); }
.honors-list li { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 1.5rem; padding: 1.1rem 0; border-bottom: 1px solid var(--cv-rule); }
.honors-list time { color: #747c00; font: 700 .78rem ui-monospace, SFMono-Regular, Consolas, monospace; }
.honors-list h3 { font-size: 1.03rem; font-weight: 700; }
.honors-list p { margin-top: .25rem; color: #747b7e; font-size: .82rem; }
.leadership-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
.leadership-grid .cv-entry { min-width: 0; }

.profile-note { margin-left: 96px; padding: 3rem; color: #fff; background: var(--cv-ink); }
.profile-note .section-kicker { color: var(--cv-acid); }
.profile-note h2 { max-width: 800px; margin-top: 1rem; font-size: clamp(2.1rem, 4vw, 3.8rem); line-height: 1.08; letter-spacing: -.05em; }
.profile-note > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid #3c4346; }
.profile-note p { color: #9da5a9; font-size: .86rem; line-height: 1.75; }
.profile-note strong { color: #fff; }

@media (max-width: 960px) {
    .cv-hero__main { grid-template-columns: 1fr; gap: 2.5rem; }
    .cv-summary { max-width: 700px; }
    .cv-layout { grid-template-columns: 1fr; }
    .cv-aside { display: none; }
    .profile-note { margin-left: 0; }
}

@media (max-width: 700px) {
    .cv-shell { width: min(100% - 28px, 1320px); }
    .cv-hero { padding-top: 4rem; }
    .cv-hero h1 { font-size: clamp(4rem, 21vw, 6rem); }
    .cv-connections { flex-direction: column; }
    .cv-facts { grid-template-columns: repeat(2, 1fr); }
    .cv-facts div:nth-child(2) { border-right: 0; }
    .cv-facts dt { font-size: 1.35rem; }
    .cv-body { padding: 4.5rem 0 5rem; }
    .cv-section { grid-template-columns: 1fr; gap: 1rem; padding-bottom: 4.5rem; }
    .section-number { width: 36px; height: 36px; }
    .entry-meta { align-items: flex-start; flex-direction: column; gap: .55rem; }
    .course-groups, .skills-grid, .leadership-grid { grid-template-columns: 1fr; }
    .skills-grid .language-skill { grid-column: auto; }
    .skills-grid article, .skills-grid .language-skill { min-height: auto; }
    .skills-grid h3, .skills-grid .language-skill h3 { margin-top: 1.2rem; }
    .honors-list li { grid-template-columns: 58px minmax(0, 1fr); gap: 1rem; }
    .profile-note { padding: 2rem 1.4rem; }
    .profile-note > div { grid-template-columns: 1fr; gap: 1.2rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; }
}
