
:root {
    --background: #111111;
    --surface: #181818;
    --text: #f2f2f2;
    --muted: #b8b8b8;
    --accent: #1A0C6B;
    --accent-light: #4c3fb3;
    --border: #2d2d2d;
    color-scheme: dark;
}
* { box-sizing: border-box; }
html { min-height: 100%; }
body {
    margin: 0;
    background: var(--background);
    background-image:
        radial-gradient(ellipse 58% 38% at 10% 13%, rgba(206, 214, 223, .12), transparent 75%),
        radial-gradient(ellipse 53% 40% at 93% 27%, rgba(218, 198, 182, .085), transparent 72%),
        radial-gradient(ellipse 72% 48% at 42% 88%, rgba(166, 185, 196, .075), transparent 76%),
        linear-gradient(165deg, #191b20 0%, #14161a 50%, #1b1a1d 100%);
    background-attachment: fixed;
    background-repeat: no-repeat;
    color: var(--text);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.55;
}
a { color: var(--text); }
a:hover, a:focus { text-decoration-thickness: 2px; }
a:focus-visible { outline: 2px solid var(--text); outline-offset: 3px; }
.site-shell { width: min(1120px, calc(100% - 30px)); margin: 34px auto; }
.navbar {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 14px 20px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-top: 5px solid var(--accent);
}
.brand-area { display: flex; align-items: center; gap: 14px; }
.institution-logos { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.institution-logos img { display: block; height: auto; }
.lattc-logo { width: 130px; }
.ncas-logo { width: 42px; }
.brand { display: block; color: var(--text); text-decoration: none; min-width: 0; flex-shrink: 0; }
.brand-name { display: block; font-size: 23px; font-weight: 700; letter-spacing: .01em; }
.brand-subtitle { display: block; margin-top: 1px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
.nav-links { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 1px; margin: 0; padding: 0; list-style: none; }
.nav-links a { display: block; padding: 10px 11px; color: var(--text); text-decoration: none; font-size: 14px; border-bottom: 2px solid transparent; }
.nav-links a:hover, .nav-links a:focus, .nav-links a[aria-current="page"] { border-bottom-color: var(--accent-light); background: var(--accent); }
.banner { min-height: 118px; display: flex; align-items: flex-end; padding: 24px 26px; background: var(--accent); border-left: 1px solid var(--border); border-right: 1px solid var(--border); }
.banner h1 { margin: 0; max-width: 760px; font-size: 30px; line-height: 1.12; font-weight: 600; color: var(--text); }
.center { background: var(--surface); padding: 26px; border: 1px solid var(--border); border-top: 0; }
.section-title { margin: 0 0 15px; font-size: 21px; font-weight: 600; color: var(--text); }
.section-block + .section-block { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--border); }
.first-block { margin-top: 0; padding-top: 0; }
.lead { margin: 0 0 10px; font-size: 18px; font-weight: 600; color: var(--text); }
.grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 22px; }
.col-4 { grid-column: span 4; } .col-5 { grid-column: span 5; } .col-6 { grid-column: span 6; } .col-7 { grid-column: span 7; } .col-8 { grid-column: span 8; } .col-12 { grid-column: 1 / -1; }
.panel { border: 1px solid var(--border); border-left: 4px solid var(--accent-light); background: var(--surface); padding: 17px 18px; }
.panel h2, .panel h3 { margin: 0 0 12px; font-size: 18px; }
.fact-list, .plain-list { margin: 0; padding: 0; list-style: none; }
.fact-list li, .plain-list li { padding: 9px 0; border-bottom: 1px solid var(--border); }
.fact-list li:last-child, .plain-list li:last-child { border-bottom: 0; }
.fact-key { display: inline-block; min-width: 140px; font-weight: 700; }
.link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.section-link { min-height: 92px; padding: 16px 17px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); color: var(--text); text-decoration: none; background: var(--surface); }
.section-link:hover, .section-link:focus { background: var(--accent); }
.section-link strong { display: block; margin-bottom: 5px; color: var(--text); font-size: 16px; text-decoration: underline; }
.section-link:hover strong, .section-link:focus strong { text-decoration-thickness: 2px; }
.section-link span { color: var(--muted); font-size: 13px; }
.career-list { border-top: 1px solid var(--border); }
.career-row { display: grid; grid-template-columns: 230px 1fr 240px; gap: 18px; align-items: start; padding: 15px 0; border-bottom: 1px solid var(--border); }
.career-row h3, .career-row p { margin: 0; }
.career-row h3 { font-size: 16px; color: var(--text); }
.career-row p { color: var(--muted); }
.career-row a { justify-self: start; font-size: 13px; }
.reference-list { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.reference-list a { font-size: 14px; }
.footer { margin-top: 16px; background: var(--surface); color: var(--muted); padding: 10px 12px; font-size: 12px; display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; }
.footer-nav { display: flex; gap: 13px; flex-wrap: wrap; }
.footer a { color: var(--text); text-decoration: none; }
.footer a:hover, .footer a:focus { text-decoration: underline; }
.footer p { margin: 0; }
.portfolio-heading { margin-bottom: 24px; }
.portfolio-heading h1 { margin: 0 0 4px; font-size: 26px; line-height: 1.2; }
.portfolio-heading p { margin: 0; color: var(--muted); font-size: 16px; }
.portfolio-document p { margin: 0 0 12px; }
.portfolio-document p:last-child { margin-bottom: 0; }
.skills-list { margin: 0; padding: 0; columns: 2; column-gap: 36px; list-style: none; counter-reset: technical-skill; }
.skills-list li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 8px; padding-bottom: 5px; break-inside: avoid; counter-increment: technical-skill; }
.skills-list li::before { content: counter(technical-skill, decimal-leading-zero); color: var(--muted); font-size: 12px; padding-top: 3px; }
.portfolio-experience + .portfolio-experience { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--border); }
.portfolio-experience h3 { margin: 0 0 12px; font-size: 18px; }
.portfolio-experience h4 { margin: 14px 0 6px; font-size: 15px; }
.citation { font-size: .75em; line-height: 0; }
.citation a { text-decoration: none; }
.citation a:hover, .citation a:focus { text-decoration: underline; }
.source-note { margin-top: 12px; color: var(--muted); font-size: 12px; }
.resume-heading h3 { margin: 0 0 2px; font-size: 20px; }
.portfolio-disclosure > summary, .experience-disclosure > summary, .resume-block > summary { cursor: pointer; }
.portfolio-disclosure > summary h2, .experience-disclosure > summary h3, .resume-block > summary h3 { display: inline; margin: 0; }
.portfolio-disclosure > summary:focus-visible, .experience-disclosure > summary:focus-visible, .resume-block > summary:focus-visible { outline: 2px solid var(--text); outline-offset: 3px; }
.portfolio-disclosure-body, .experience-body { margin-top: 14px; }
.experience-number { display: inline-block; margin-right: 8px; font-size: 12px; font-weight: 700; }
.resume-block { margin-top: 16px; }
.resume-block > summary h3 { font-size: 16px; }
.resume-body { padding-top: 10px; }
.resume-body > :last-child { margin-bottom: 0; }
.resume-block h4 { margin: 8px 0 4px; font-size: 15px; }
.resume-list { margin: 0; padding-left: 20px; }
.resume-list li { margin-bottom: 4px; }
.references-list { margin: 0; padding-left: 24px; }
.references-list li { margin-bottom: 8px; scroll-margin-top: 16px; }
@media (max-width: 900px) {
    .navbar { align-items: flex-start; flex-direction: column; }
    .brand { min-width: 0; }
    .nav-links { justify-content: flex-start; }
    .col-4, .col-5, .col-6, .col-7, .col-8 { grid-column: 1 / -1; }
    .career-row { grid-template-columns: 1fr; gap: 6px; }
}
@media (max-width: 560px) {
    .site-shell { width: min(100% - 14px, 1120px); margin-top: 10px; }
    .navbar { min-height: 0; padding: 12px; gap: 14px; }
    .brand-area { gap: 8px; }
    .institution-logos { gap: 6px; }
    .lattc-logo { width: 92px; }
    .ncas-logo { width: 32px; }
    .brand-name { font-size: 20px; }
    .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .nav-links a { padding: 9px; }
    .banner { min-height: 92px; padding: 18px; }
    .banner h1 { font-size: 25px; }
    .center { padding: 17px; }
    .grid { gap: 15px; }
    .link-grid { grid-template-columns: 1fr; }
    .fact-key { display: block; min-width: 0; margin-bottom: 2px; }
    .reference-list { display: block; }
    .reference-list a { display: block; margin-bottom: 7px; }
    .skills-list { columns: 1; }
}
body.portfolio-page .portfolio-closing {
    max-width: 780px;
    margin: 44px auto 0;
    padding: 26px 10px 20px;
    text-align: center;
    border-top: 1px solid rgba(180, 184, 189, .22);
}
body.portfolio-page .portfolio-closing .closing-thanks {
    margin: 0 auto 20px;
    max-width: 620px;
    line-height: 1.75;
}
body.portfolio-page .portfolio-closing .closing-quote {
    margin: 0 auto 22px;
    padding: 0;
    border: 0;
    background: transparent;
    font-style: normal;
}
body.portfolio-page .portfolio-closing .closing-quote p {
    margin: 0 auto 7px;
    font-size: 1.05rem;
    line-height: 1.6;
}
body.portfolio-page .portfolio-closing .closing-quote footer {
    font-size: .86rem;
    opacity: .75;
}
body.portfolio-page .closing-gif {
    display: block;
    width: min(100%, 498px);
    height: auto;
    margin: 0 auto;
    border: 0;
    background: transparent;
}
@media (max-width: 600px) {
    body.portfolio-page .portfolio-closing { margin-top: 30px; padding: 22px 5px 12px; }
}
@page { size: Letter; margin: 0.55in; }
@media print {
    body { background-image: none; background-attachment: scroll; }
    body.portfolio-page .closing-gif { display: none; }
    body.portfolio-page .portfolio-closing { margin-top: 25px; padding-top: 15px; }
    html:has(.portfolio-page) { background: #ffffff; color: #111111; color-scheme: light; }
    .portfolio-page { background: #ffffff; color: #111111; font-size: 11pt; line-height: 1.4; color-scheme: light; }
    .portfolio-page .site-shell { width: 100%; margin: 0; }
    .portfolio-page .navbar { min-height: 0; padding: 0 0 10pt; margin-bottom: 14pt; border: 0; border-bottom: .4pt solid #777777; background: #ffffff; }
    .portfolio-page .brand-area { gap: 12pt; }
    .portfolio-page .institution-logos { gap: 8pt; }
    .portfolio-page .lattc-logo { width: 100pt; }
    .portfolio-page .ncas-logo { width: 30pt; }
    .portfolio-page .brand-name { font-size: 12pt; text-transform: uppercase; letter-spacing: .04em; }
    .portfolio-page .brand-subtitle { color: #111111; font-size: 8pt; letter-spacing: .08em; }
    .portfolio-page .nav-links, .portfolio-page .footer, .portfolio-page .print-omit { display: none; }
    .portfolio-page .center { padding: 0; border: 0; background: #ffffff; }
    .portfolio-page a, .portfolio-page .brand, .portfolio-page .lead, .portfolio-page .section-title { color: #111111; }
    .portfolio-heading { margin-bottom: 17pt; }
    .portfolio-heading h1 { font-size: 16pt; }
    .portfolio-heading p { color: #111111; font-size: 10.5pt; }
    .portfolio-document p { margin-bottom: 8pt; orphans: 3; widows: 3; }
    .portfolio-document .section-title { margin-bottom: 9pt; font-size: 12pt; letter-spacing: .06em; text-transform: uppercase; }
    .portfolio-document .section-block + .section-block { margin-top: 18pt; padding-top: 0; border-top: 0; }
    .portfolio-document .lead { font-size: 11pt; }
    .portfolio-document h1, .portfolio-document h2, .portfolio-document h3, .portfolio-document h4 { break-after: avoid; }
    .skills-list { columns: 2; column-gap: 24pt; margin: 0; padding: 0; list-style: none; counter-reset: technical-skill; }
    .skills-list li { display: grid; grid-template-columns: 24pt minmax(0, 1fr); gap: 5pt; padding: 0 0 6pt; counter-increment: technical-skill; }
    .skills-list li::before { content: counter(technical-skill, decimal-leading-zero); font-family: "Courier New", monospace; font-size: 9pt; padding-top: 2pt; }
    .skills-list li:nth-child(6) { break-before: column; }
    #selected-experiences { counter-reset: experience; }
    .portfolio-experience { break-inside: avoid; counter-increment: experience; }
    .portfolio-experience + .portfolio-experience { margin-top: 22pt; padding-top: 0; border-top: 0; }
    .portfolio-experience h3 { margin: 0 0 10pt; font-size: 11.5pt; text-transform: uppercase; letter-spacing: .04em; }
    .experience-disclosure > summary h3 { display: block; }
    .experience-number { display: block; margin: 0 0 4pt; font-family: "Courier New", monospace; font-size: 9pt; font-weight: 400; }
    .portfolio-experience h4 { margin: 11pt 0 5pt; font-size: 9pt; text-transform: uppercase; letter-spacing: .06em; }
    .source-note { margin-top: 10pt; color: #111111; font-size: 8.5pt; line-height: 1.3; }
    .source-note > strong { display: none; }
    .source-item { display: block; margin-top: 6pt; }
    .source-item::before { content: "SOURCE " attr(data-source-number); display: block; margin-bottom: 2pt; font-family: "Courier New", monospace; font-size: 8pt; }
    .source-publisher, .source-title { display: block; }
    .source-note .citation { display: inline; }
    .portfolio-document .resume { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 24pt; row-gap: 9pt; break-before: page; margin-top: 0; padding-top: 0; border-top: 0; font-size: 10.5pt; line-height: 1.3; }
    .resume > .section-title, .resume-heading { grid-column: 1 / -1; }
    .resume > .section-title { margin-bottom: 0; }
    .resume-heading h3 { font-size: 14pt; }
    .resume-heading p { margin-bottom: 0; }
    .resume-block { min-width: 0; margin-top: 0; }
    .resume-block h3 { margin-bottom: 6pt; font-size: 9pt; text-transform: uppercase; letter-spacing: .06em; }
    .resume-block h4 { margin: 6pt 0 3pt; font-size: 10.5pt; font-weight: 700; }
    .resume > .resume-block:nth-of-type(1) { grid-column: 1; grid-row: 3 / span 2; }
    .resume > .resume-block:nth-of-type(2) { grid-column: 2; grid-row: 3; }
    .resume > .resume-block:nth-of-type(3) { grid-column: 2; grid-row: 4; }
    .resume > .resume-block:nth-of-type(n+4) { grid-column: 1 / -1; }
    .resume .resume-block p { margin-bottom: 5pt; }
    .resume .resume-block { border: 0; background: #ffffff; }
    details, details:not([open]) { display: block; }
    details::details-content { display: block; content-visibility: visible; height: auto; }
    details > summary { display: block; list-style: none; cursor: auto; }
    details > summary::marker { content: ""; }
    details > summary::-webkit-details-marker { display: none; }
    details > .portfolio-disclosure-body, details > .experience-body, details > .resume-body { display: block !important; }
    .portfolio-disclosure-body, .experience-body, .resume-body { margin-top: 0; padding: 0; }
    .portfolio-disclosure > summary h2, .resume-block > summary h3 { display: block; }
    .resume-block > summary h3 { font-size: 9pt; }
    .resume .resume-block > summary { padding: 0; }
    .resume-list { list-style: none; margin: 0; padding: 0; }
    .resume-list li { margin-bottom: 5pt; }
    .resume-work .resume-list { padding-left: 10pt; }
    .course-name, .course-status { display: block; }
    .course-status { font-size: 9.5pt; }
    .resume-skill-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 15pt; row-gap: 5pt; }
    .resume-skill { display: block; }
    .portfolio-document .portfolio-references { break-before: page; margin-top: 0; padding-top: 0; border-top: 0; }
    .references-list { margin: 0; padding: 0; list-style: none; counter-reset: reference; }
    .references-list li { position: relative; margin-bottom: 16pt; padding-left: 32pt; break-inside: avoid; counter-increment: reference; }
    .references-list li::before { content: counter(reference); position: absolute; left: 0; top: 2pt; font-family: "Courier New", monospace; font-size: 9pt; }
    .reference-publisher, .references-list a { grid-column: 2; display: block; }
    .reference-publisher { font-size: 10pt; font-weight: 700; }
    .references-list a { text-decoration: none; }
}
