@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#f7f6f2;--ink:#151515;--muted:#77746e;--line:#dedbd3;--accent:#d8ff3e;--soft:#eeece5}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.6}
a{color:inherit;text-decoration:none}
.topbar{height:82px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(247,246,242,.92);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20}
.logo{font-family:"Space Grotesk",sans-serif;font-weight:600;font-size:20px;letter-spacing:-.03em}
.topbar nav{display:flex;gap:34px}
.topbar nav a{font-size:13px;color:#55524c;transition:color .2s ease}
.topbar nav a:hover,.section-head a:hover,.plain-link:hover,footer a:hover{color:#718600}
.nav-cv{font-size:13px;border:1px solid #bdb9b0;border-radius:99px;padding:9px 15px;transition:background .2s ease,color .2s ease}
.nav-cv:hover{background:var(--ink);color:#fff}

.intro{min-height:calc(100vh - 82px);padding:6vw 8vw 7vw;display:grid;grid-template-columns:1.05fr .95fr;gap:6vw;align-items:center;max-width:1500px;margin:auto}
.hello,.section-label{font-size:10px;letter-spacing:.19em;font-weight:700;color:var(--muted);margin:0 0 25px}
.intro h1{font-family:"Space Grotesk",sans-serif;font-size:clamp(58px,8.3vw,126px);letter-spacing:-.075em;line-height:.88;margin:0;max-width:900px}
.intro h1 em,.contact h2 em{font-style:normal;color:#88847c}
.intro-text{max-width:650px;color:var(--muted);font-size:18px;line-height:1.7;margin:36px 0 0}
.intro-links{display:flex;align-items:center;gap:28px;margin-top:38px}
.circle-link{display:inline-flex;align-items:center;gap:12px;border-radius:99px;background:var(--ink);color:#fff;padding:13px 18px;font-size:13px;font-weight:600;transition:transform .2s ease}
.circle-link:hover{transform:translateY(-2px)}
.circle-link span{font-size:18px}
.plain-link{font-size:13px;font-weight:600}

.portrait-wrap{position:relative;display:flex;justify-content:center;align-items:center;min-height:580px}
.portrait-frame{position:relative;width:min(360px,72%);height:min(360px,72vw);aspect-ratio:1/1;z-index:2;overflow:hidden;border-radius:50%;background:#e9e6de;box-shadow:0 35px 80px rgba(20,20,20,.12)}
.portrait{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 12%;filter:saturate(.88);transform:scale(1.01)}
.portrait-ring{position:absolute;width:min(410px,82%);height:min(410px,82vw);aspect-ratio:1/1;border:1px solid #c8c4ba;border-radius:50%;right:4%;top:8%;z-index:1}
.portrait-note{position:absolute;right:1%;bottom:8%;z-index:3;background:var(--accent);padding:11px 15px;font-size:9px;letter-spacing:.14em;font-weight:800;transform:rotate(-4deg);box-shadow:5px 7px 0 rgba(21,21,21,.08);white-space:nowrap}

.statement{max-width:1500px;margin:auto;padding:130px 8vw;display:grid;grid-template-columns:25% 1fr;gap:9vw;border-top:1px solid var(--line)}
.statement h2,.skills-section h2,.education h2{font-family:"Space Grotesk",sans-serif;font-size:clamp(42px,5.8vw,78px);letter-spacing:-.065em;line-height:.96;margin:0 0 30px;max-width:950px}
.statement div:last-child{max-width:820px}
.statement div:last-child p{font-size:18px;color:var(--muted);max-width:760px}

.experience{background:#151515;color:#fff;padding:125px 8vw}
.section-head{max-width:1500px;margin:0 auto 55px;display:flex;justify-content:space-between;align-items:end}
.experience .section-label{color:#85827b}
.section-head>a{font-size:13px;color:#aaa69e;border-bottom:1px solid #555;padding-bottom:5px}
.experience-list{max-width:1500px;margin:auto;border-top:1px solid #353535}
.experience-list article{display:grid;grid-template-columns:22% 1fr;gap:50px;padding:34px 0;border-bottom:1px solid #353535}
.experience-list article>span{font-size:11px;color:#8f8b84;letter-spacing:.1em;padding-top:7px}
.experience-list h3{font-family:"Space Grotesk",sans-serif;font-size:28px;letter-spacing:-.035em;margin:0}
.experience-list p{color:#aaa69f;margin:4px 0 13px;font-size:14px}
.experience-list small{display:block;max-width:720px;color:#85817a;font-size:14px;line-height:1.7}

.skills-section{max-width:1500px;margin:auto;padding:125px 8vw}
.skill-groups{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.skill-group{padding-top:20px;border-top:1px solid var(--line)}
.skill-group h3{font-family:"Space Grotesk",sans-serif;font-size:20px;letter-spacing:-.03em;margin:0 0 18px}
.skill-cloud{display:flex;flex-wrap:wrap;gap:9px}
.skill-cloud span{border:1px solid #ccc8bf;border-radius:999px;padding:9px 13px;font-size:12px;background:#fbfaf7}

.education{padding:125px 8vw;background:var(--soft);display:grid;grid-template-columns:1fr 1fr;gap:9vw}
.edu-list{border-top:1px solid #d0ccc3}
.edu-list>div{padding:25px 0;border-bottom:1px solid #d0ccc3}
.edu-list b{font-family:"Space Grotesk",sans-serif;font-size:22px}
.edu-list p{color:var(--muted);margin:7px 0 0;font-size:15px}

.contact{padding:140px 8vw 120px;background:var(--accent)}
.contact h2{font-family:"Space Grotesk",sans-serif;font-size:clamp(55px,8vw,120px);letter-spacing:-.075em;line-height:.9;margin:0;max-width:1100px}
.contact-row{display:flex;justify-content:space-between;align-items:end;margin-top:80px;max-width:1200px}
.email{font-family:"Space Grotesk",sans-serif;font-size:clamp(20px,3vw,38px);letter-spacing:-.04em;border-bottom:2px solid var(--ink)}
.contact-row div{display:flex;gap:24px;font-size:13px}
.contact-row div a{border-bottom:1px solid #747b32;padding-bottom:3px}

footer{padding:28px 6vw;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}

@media(max-width:1050px){
  .intro{grid-template-columns:1fr .85fr;gap:3vw;padding-left:6vw;padding-right:6vw}
  .portrait-frame{width:min(340px,78%);height:auto;aspect-ratio:1/1}
  .portrait-ring{width:390px;height:390px}
  .portrait-note{right:-1%;font-size:8px}
  .skill-groups{grid-template-columns:1fr 1fr}
}
@media(max-width:850px){
  .topbar{padding:0 5vw}
  .topbar nav{display:none}
  .intro{grid-template-columns:1fr;padding:70px 7vw 85px;gap:25px}
  .intro h1{font-size:clamp(54px,15vw,90px)}
  .intro-text{font-size:16px}
  .portrait-wrap{min-height:500px;margin-top:8px}
  .portrait-frame{height:auto;width:min(320px,78%);aspect-ratio:1/1}
  .portrait-ring{width:360px;height:360px;top:4%;right:0}
  .portrait-note{right:0;bottom:4%;font-size:8px}
  .statement,.education{grid-template-columns:1fr;padding:90px 7vw;gap:45px}
  .experience,.skills-section{padding:90px 7vw}
  .experience-list article{grid-template-columns:1fr;gap:8px;padding:28px 0}
  .experience-list h3{font-size:24px}
  .section-head{align-items:start;gap:25px}
  .skill-groups{grid-template-columns:1fr;gap:36px}
  .contact{padding:95px 7vw}
  .contact-row{display:block;margin-top:55px}
  .contact-row div{margin-top:30px;flex-wrap:wrap}
  .email{display:inline-block}
  footer{padding:25px 7vw;flex-direction:column}
  .nav-cv{font-size:11px;padding:8px 12px}
}
@media(max-width:420px){
  .logo{font-size:18px}
  .nav-cv{font-size:10px}
  .intro{padding-top:55px}
  .portrait-wrap{min-height:445px}
  .portrait-frame{height:auto;width:78%;aspect-ratio:1/1}
  .portrait-ring{width:335px;height:335px}
  .portrait-note{font-size:7px;letter-spacing:.1em;padding:9px 11px}
}
@media(prefers-reduced-motion:no-preference){
  .portrait-frame{animation:rise .8s ease-out both}
  .intro-copy{animation:fade .7s ease-out both}
  @keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
  @keyframes fade{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
}


/* Final portrait mask: photo itself must be circular */
.portrait-frame{
  width:360px !important;
  height:360px !important;
  aspect-ratio:1 / 1 !important;
  border-radius:50% !important;
  overflow:hidden !important;
  clip-path:circle(50% at 50% 50%) !important;
  padding:0 !important;
  margin:0 auto !important;
}
.portrait{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:50% 14% !important;
  display:block !important;
  border-radius:50% !important;
}
.portrait-ring{display:none !important}
@media(max-width:850px){
  .portrait-frame{
    width:min(320px,78vw) !important;
    height:min(320px,78vw) !important;
  }
}
@media(max-width:420px){
  .portrait-frame{
    width:290px !important;
    height:290px !important;
  }
}
