:root{--ink:#19271e;--paper:#f8f5eb;--green:#305844;--muted:#4c5b50;--line:#c9cbbd;--lime:#d5ec9b}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,sans-serif}a{color:inherit}a:focus-visible{outline:3px solid #bf6549;outline-offset:5px}img{display:block;width:100%;height:auto}.wrap{width:min(1160px,calc(100% - 72px));margin-inline:auto}.top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;font-weight:750;text-decoration:none}.brand span{display:grid;place-items:center;background:var(--ink);color:var(--paper);width:36px;height:36px;border-radius:50%;font:15px Georgia,serif}nav,.actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}nav a{text-decoration:none;font-size:.9rem;font-weight:650}nav a:hover,.under:hover{text-decoration-thickness:2px;color:var(--green)}.hero{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:8%;padding-block:78px 94px}.eyebrow,.frame-top,.frame-bottom,.index span{font:700 .72rem/1.45 ui-monospace,monospace;letter-spacing:.11em}.eyebrow{color:var(--green);margin:0 0 18px}i{display:inline-block;width:8px;height:8px;background:#668948;border-radius:100%;margin-right:7px}h1,h2,h3{font-family:Georgia,serif;font-weight:400;margin:0;letter-spacing:-.045em;line-height:1.02}h1{font-size:clamp(4.6rem,10vw,9rem)}h1 em{color:var(--green)}h2{font-size:clamp(2.5rem,5.4vw,5.4rem)}h3{font-size:clamp(2rem,3.8vw,3.8rem)}.intro,.section-intro{font-size:1.14rem;color:var(--muted);max-width:44ch}.intro{margin:24px 0 29px}.button{display:inline-block;background:var(--ink);color:var(--paper);border-radius:4px;padding:12px 17px;text-decoration:none;font-weight:700}.button:hover{background:var(--green)}.under{font-weight:650;text-underline-offset:4px}.feature{background:#e6ebd9;padding:14px;border:1px solid var(--line);box-shadow:9px 9px 0 #e4e1d5}.frame-top,.frame-bottom{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 3px}.feature img{aspect-ratio:1;object-fit:cover}.work{background:#eaf0df;padding:70px 0 18px}.index{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:32px 0 26px}.index a{display:grid;gap:6px;padding:15px;background:var(--paper);border:1px solid var(--line);text-decoration:none}.index a:hover{background:var(--lime)}.case{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:8%;padding:56px 0;border-top:1px solid var(--line)}.case-copy>p:not(.eyebrow){max-width:45ch}.metric{display:grid;gap:2px;margin-top:24px}.metric strong{font:2.5rem Georgia,serif;color:var(--green)}.metric span,figcaption{font-size:.88rem;color:var(--muted)}.sample,.process{margin:0;background:var(--paper);border:1px solid var(--line);padding:16px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.gallery a:hover,.email a:hover{opacity:.85}figcaption{margin-top:10px}.email img{width:min(100%,230px);margin:auto}.process ol{margin:0;padding-left:25px}.process li{padding:10px 0}.about,.foot{display:grid;grid-template-columns:1fr 2fr;gap:7%;padding-block:72px}.about p:not(.eyebrow){max-width:65ch}footer{background:var(--ink);color:var(--paper)}footer .eyebrow{color:var(--lime)}footer .button{background:var(--lime);color:var(--ink)}footer .under:hover{color:var(--lime)}.foot{grid-template-columns:1fr auto}
@media(max-width:730px){.wrap{width:calc(100% - 36px)}.hero,.case,.about,.foot{grid-template-columns:1fr;gap:26px}.hero{padding-block:46px 58px}.feature{max-width:460px}.top{flex-wrap:wrap}nav,.actions{gap:16px}.index{grid-template-columns:1fr}.case{padding:38px 0}.work,.about,.foot{padding-top:45px}.frame-bottom{letter-spacing:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Bold editorial palette */
:root{--ink:#191728;--paper:#fffcf4;--green:#3320a6;--muted:#494257;--line:#c9c0d6;--lime:#f5ec71}
.hero h1 em{color:#3e25c4}
.eyebrow i{background:#5b3bdf}
.button,.brand span{background:#3e25c4;color:#fff}
.button:hover{background:#2a177f}
.feature{background:#e7e0fc;box-shadow:9px 9px 0 #3e25c4}
.work{background:#ede7fc}
.index a:hover{background:#d9ccff}
#ai{border-block:1px solid var(--line)}
#ai h2{color:#3e25c4}
footer{background:#24146d}
footer .button:hover{background:#fff39a}

/* Portfolio typography and campaign-led color */
:root{--ink:#28211e;--paper:#fbf7ef;--green:#8c2e23;--muted:#554641;--line:#d8c7b7;--lime:#f0c477}
.brand{font:700 1.23rem Georgia,serif}
.location{font-size:.92rem;color:var(--muted);margin:0 0 15px}
.hero{grid-template-columns:1.15fr .85fr;gap:7%;padding-block:64px 78px}
h1{font-size:clamp(3.6rem,7.3vw,7.2rem);letter-spacing:-.055em}
.eyebrow{font:650 .85rem/1.4 system-ui,sans-serif;letter-spacing:0}
.button{background:#8c2e23}
.button:hover{background:#692117}
.feature{margin:0;padding:0;border:0;background:none;box-shadow:none}
.feature figcaption{padding-top:3px}
.feature figcaption a{display:inline-block;text-underline-offset:3px}
.work{background:#f2e9dc}
.case{margin-top:24px}
#ai{background:#f7ebd1;border:0;box-shadow:0 0 0 100vmax #f7ebd1;clip-path:inset(0 -100vmax)}
#ai h2{color:var(--ink)}
#ai li{margin-block:10px}
footer{background:#35241f}
@media(max-width:730px){.hero{grid-template-columns:1fr;gap:28px;padding-block:42px 54px}}

.portrait{width:min(100%,345px);justify-self:center}
.portrait img{aspect-ratio:4/5;object-position:center top}
.coursework{padding-block:66px;background:#f2e9dc}
.course-groups{display:grid;grid-template-columns:1fr 1fr;gap:7%;margin-top:30px}
.course-groups h3{font-size:clamp(1.8rem,3vw,2.7rem)}
.course-groups dl{margin:18px 0 0}
.course-groups dt{border-top:1px solid var(--line);padding-top:12px;font-weight:700}
.course-groups dt span{color:var(--green);font-size:.83rem;margin-right:.45rem;white-space:nowrap}
.course-groups dd{margin:4px 0 14px;color:var(--muted)}
.course-sources{font-size:.85rem;color:var(--muted);margin:24px 0 0}
@media(max-width:730px){.portrait{justify-self:start;width:min(100%,300px)}.coursework{padding-block:45px}.course-groups{grid-template-columns:1fr;gap:18px}}

.materials{margin-block:30px;padding:clamp(16px,4vw,32px);background:var(--paper);border:1px solid var(--line)}
.materials-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.carousel-controls{display:flex;align-items:center;gap:12px}
.carousel-controls[hidden],.material[hidden]{display:none}
.carousel-controls button{font:inherit;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);width:44px;height:44px;cursor:pointer}
.carousel-controls button:hover{background:#f2e9dc}
.carousel-controls button:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.carousel-controls span{min-width:3.5em;text-align:center;font-size:.85rem}
.material{margin:0}
.material a{display:grid;place-items:center;min-height:clamp(220px,55vw,460px);padding:10px;background:#f2e9dc}
.material img{width:auto;max-width:100%;max-height:clamp(200px,52vw,440px);object-fit:contain}

.carousel-controls{flex-wrap:wrap}
.carousel-controls .carousel-toggle{width:auto;padding-inline:12px}

@media (prefers-reduced-motion: no-preference) {
  .material-slides { overflow: hidden; }
  .materials { --slide-offset: 6%; }
  .materials[data-direction="backward"] { --slide-offset: -6%; }
  .material:not([hidden]) {
    animation: campaign-glide 750ms cubic-bezier(.22,.65,.3,1) both;
  }
}
@keyframes campaign-glide {
  from { transform: translateX(var(--slide-offset)); }
  to { transform: translateX(0); }
}

@media (min-width:731px) {
  .course-groups > div {
    display:grid;
    grid-row:span 9;
    grid-template-rows:subgrid;
    row-gap:0;
  }
  .course-groups dl {
    display:grid;
    grid-row:span 8;
    grid-template-rows:subgrid;
    row-gap:0;
  }
}

.ai-gears{width:100%;margin:4px auto 0}
@media(min-width:731px){#ai{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:5%;align-items:center}}
@media(max-width:730px){.ai-gears{width:min(100%,270px);margin-left:0}}

.about-photo{width:min(100%,340px);height:auto}
@media(min-width:731px){#about{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:5%}}

.skills{padding-block:52px 72px;border-top:1px solid var(--line)}
.skills-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:6%;margin-top:30px;align-items:start}
.skills-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}
.skills-list>div{border-top:1px solid var(--line);padding-top:14px}
.skills h3{font-size:clamp(1.45rem,2.4vw,2.15rem)}
.skills-list p{margin:9px 0 0;color:var(--muted)}
.skills-languages{background:#f2e9dc;padding:22px}
.skills-languages dl{margin:15px 0 0}
.skills-languages dt{font-weight:700;border-top:1px solid var(--line);padding-top:8px}
.skills-languages dd{margin:0 0 8px;color:var(--muted)}
@media(max-width:730px){.skills-layout{grid-template-columns:1fr;gap:24px}}
@media(max-width:470px){.skills-list{grid-template-columns:1fr}}

.certifications{padding-block:52px 72px;border-top:1px solid var(--line)}
.certification-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;list-style:none;padding:0;margin:28px 0}
.certification-list li{border-top:1px solid var(--line);padding-top:14px}
.certification-list h3{font-size:clamp(1.45rem,2.4vw,2.15rem)}
.certification-list p{margin:8px 0 0;color:var(--muted)}
@media(max-width:530px){.certification-list{grid-template-columns:1fr}}

:root{--ink:#17264a;--paper:#fffaf0;--green:#193fa6;--muted:#46536c;--line:#bac8e8;--lime:#ffb49a}
.hero h1{color:#193fa6}
.eyebrow{color:var(--green)}
.button{background:#193fa6;color:#fff}
.button:hover{background:#102c7c}
.work{background:#e7efff}
.materials,.sample,.process{background:var(--paper)}
.material a,.carousel-controls button:hover{background:#e7efff}
#ai{background:#ffe5d9;box-shadow:0 0 0 100vmax #ffe5d9}
#ai h2{color:#17264a}
.coursework{background:#edf1ff}
.skills-languages{background:#ffe5d9}
footer{background:#193fa6}
footer .eyebrow{color:#ffe5d9}
footer .button{background:#ffb49a;color:#17264a}
footer .button:hover{background:#ffd2c2}

.selected-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin:30px 0 48px}
.selected-projects article{border-top:1px solid var(--line);padding-top:15px}
.selected-projects h3{font-size:clamp(1.65rem,3vw,2.65rem)}
.selected-projects article>p:last-of-type{color:var(--muted)}
.internship{border-top:1px solid var(--line);padding-top:30px}
@media(max-width:730px){.selected-projects{grid-template-columns:1fr;gap:18px}}

.hero .portrait img,.about-photo{border-radius:22px}
.materials,.sample,.process,.skills-languages{border-radius:18px}
.material a{border-radius:12px}
.button,.carousel-controls button{border-radius:999px}
