:root{--forest:#14231e;--paper:#f5f3e9;--lime:#d3f96b;--muted:#aeb9b1;--line:#3b4941}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--forest);color:var(--paper);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--lime);outline-offset:6px}a:hover{text-decoration:underline;text-underline-offset:5px}.wrap{max-width:1320px;margin:auto;padding-left:5.5%;padding-right:5.5%}.skip{position:absolute;left:20px;top:-100px;background:var(--lime);color:var(--forest);padding:15px;z-index:9}.skip:focus{top:10px}.nav{display:flex;align-items:center;justify-content:space-between;min-height:125px;gap:30px}.brand{display:flex;align-items:center;gap:18px;font-size:13px;letter-spacing:1px;font-weight:bold;line-height:1.5}.brand small{font-size:10px;font-weight:normal;letter-spacing:1.5px}.monogram{font-size:36px;letter-spacing:-4px}.monogram span{color:var(--lime);font-size:21px;vertical-align:top;margin-left:6px;letter-spacing:0}.nav nav{display:flex;align-items:center;gap:32px;font-size:13px}.nav-contact{border:1px solid var(--line);padding:13px 19px;border-radius:30px}.hero{display:grid;grid-template-columns:1.18fr 1fr;gap:55px;padding-top:40px;padding-bottom:85px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:bold;line-height:1.6}.dot{display:inline-block;width:7px;height:7px;background:var(--lime);border-radius:50%;margin-right:9px}h1{font-size:clamp(55px,6.9vw,94px);line-height:.98;letter-spacing:-5px;font-weight:500;margin:35px 0 26px}h1 em,h2 em{font-family:Georgia,serif;font-weight:normal;color:var(--lime)}.intro{font-size:17px;max-width:340px;line-height:1.6;color:var(--muted);margin-bottom:28px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;background:var(--lime);color:var(--forest);border-radius:3px;padding:19px 23px;font-size:14px;font-weight:bold}.button:hover{background:#e2ff9d;text-decoration:none}.button span{font-size:22px;line-height:.7}.portrait{margin:0;position:relative;align-self:stretch;min-height:520px;max-height:680px;overflow:hidden;background:#526458}.portrait>img{display:block;width:100%;height:100%;position:absolute;object-fit:cover;object-position:center;filter:saturate(.6)}.portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 60%,#091a13cc);pointer-events:none}.portrait figcaption{position:absolute;bottom:28px;left:28px;right:28px;z-index:1}.portrait figcaption>span{font-size:9px;letter-spacing:2px}.portrait strong{font-size:28px;display:flex;justify-content:space-between;margin-top:12px;font-weight:normal}.portrait strong span{color:var(--lime)}.image-index{position:absolute;top:20px;left:22px;background:var(--paper);color:var(--forest);font-size:10px;letter-spacing:1px;padding:8px 12px}.experience{background:var(--paper);color:var(--forest);padding:80px 0}.section-head{display:grid;grid-template-columns:1fr 1.7fr 1.3fr;align-items:start;gap:30px;margin-bottom:55px}h2{font-size:clamp(38px,4.3vw,60px);letter-spacing:-2px;line-height:1.08;font-weight:500;margin:0}.section-head>p:last-child{font-size:15px;line-height:1.7;color:#526158;margin:0;padding-top:7px}.credit{border-top:1px solid #bec5b7;display:grid;grid-template-columns:.3fr 1.8fr 1.2fr .1fr;align-items:center;gap:20px;padding:25px 0}.credit:last-of-type{border-bottom:1px solid #bec5b7}.credit>span{font-size:12px;color:#64715e}.credit>span:last-child{font-size:25px}.credit h3{font-size:clamp(24px,3.3vw,42px);font-weight:normal;letter-spacing:-1px;margin:0}.credit p{font-size:13px;color:#526158}.credit-note{font-size:11px;color:#64715e;line-height:1.7;margin-top:25px}.connect{padding-top:90px;padding-bottom:90px;display:grid;grid-template-columns:1.5fr 1fr;gap:100px;align-items:center}.connect h2{font-size:clamp(45px,5.7vw,76px);margin:25px 0;max-width:650px}.connect>div>p:not(.eyebrow){max-width:450px;line-height:1.8;color:var(--muted);font-size:16px}.connect>div>p.small{font-size:11px;margin-top:20px}.connect aside{border:1px solid var(--line);padding:30px;text-align:center}.connect aside img{width:min(100%,190px);height:auto;display:block;margin:25px auto}.connect aside>p:not(.eyebrow){font-family:Georgia,serif;font-size:23px}.connect aside a{color:var(--lime);font-size:12px}footer{border-top:1px solid var(--line);min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:1px}footer>a{color:var(--muted)}.kit-hero{padding-top:65px;padding-bottom:60px}.kit-hero h1{max-width:900px}.kit-hero>p:not(.eyebrow){max-width:600px;color:var(--muted);line-height:1.8}.downloads{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding-bottom:70px}.download{border:1px solid var(--line);padding:25px;display:flex;flex-direction:column;align-items:flex-start;gap:15px}.download h2{font-size:27px;letter-spacing:-.7px}.download p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}.download img{max-width:100%;height:auto;max-height:380px;object-fit:contain;align-self:center}.download .button{margin-top:auto}.link-box{background:var(--paper);padding:25px;color:var(--forest);font-size:14px;line-height:1.8;overflow-wrap:anywhere}.kit-info{padding-bottom:65px}.kit-info h2{margin-bottom:25px;font-size:30px}.kit-info p{max-width:720px;color:var(--muted);line-height:1.8;font-size:14px}@media(max-width:760px){.nav{min-height:95px;gap:15px}.brand{gap:12px;font-size:10px}.brand small{font-size:8px}.monogram{font-size:29px}.nav nav{gap:18px;font-size:11px}.nav nav>a:first-child{display:none}.nav-contact{padding:10px 13px}.hero{grid-template-columns:1fr;padding-top:20px;gap:40px;padding-bottom:45px}h1{font-size:clamp(60px,12vw,92px);letter-spacing:-3px;margin-top:26px}.hero .intro{max-width:420px}.portrait{min-height:440px;aspect-ratio:1/1}.section-head{grid-template-columns:1fr;gap:20px;margin-bottom:35px}.experience{padding:45px 0}.credit{grid-template-columns:.15fr 1fr auto;gap:12px}.credit p{font-size:11px}.credit>span:last-child{display:none}.connect{grid-template-columns:1fr;gap:40px;padding-top:50px;padding-bottom:50px}.connect h2{font-size:51px}.connect aside{max-width:450px;width:100%}footer{flex-wrap:wrap;padding-top:25px;padding-bottom:25px;min-height:100px;font-size:9px}.downloads{grid-template-columns:1fr}.kit-hero{padding-top:35px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.skills { padding-top: 75px; padding-bottom: 65px; border-bottom: 1px solid var(--line); }
.skill-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.skill-grid article { border-top: 1px solid var(--line); padding-top: 24px; }
.skill-grid .eyebrow { color: var(--lime); }
.skill-grid h3 { font-size: 23px; font-weight: normal; line-height: 1.3; }
.skill-grid p { font-size: 14px; color: var(--muted); line-height: 1.8; }
@media (max-width: 760px) { .skill-grid { grid-template-columns: 1fr; gap: 25px; } .skills { padding-top: 45px; padding-bottom: 45px; } }

.resume-link { font-size: 12px; color: var(--muted); margin-top: 22px; }
@media (max-width: 760px) {
  .credit { grid-template-columns: 20px 1fr; }
  .credit p { grid-column: 2; margin: 0; }
}
@media (max-width: 760px) {
  .hero > * { min-width: 0; }
  .portrait { width: 100%; min-width: 0; height: 440px; aspect-ratio: auto; }
  .brand, .nav nav a { white-space: nowrap; }
  .nav nav { gap: 12px; }
  .nav-contact { padding: 10px 11px; }
}

.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.button-outline { background: transparent; color: var(--lime); border: 1px solid var(--lime); }
.button-outline:hover { background: var(--lime); color: var(--forest); }
.resume { padding-top: 55px; padding-bottom: 55px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.resume h2 { font-size: clamp(32px, 4vw, 48px); }
.resume p:not(.eyebrow) { color: var(--muted); line-height: 1.7; max-width: 500px; }
.resume-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; flex-shrink: 0; }
.resume-download { color: var(--lime); text-decoration: underline; text-underline-offset: 4px; padding: 8px 0; }
@media (max-width: 760px) { .nav nav > a:first-child { display: inline; } .nav-contact { display: none; } .resume { flex-direction: column; align-items: flex-start; } }
