@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{color-scheme:light;--outer:#e7e6e2;--shell:#fff;--panel:#f6f6f5;--ink:#242727;--muted:#6d7270;--line:#e3e5e2;--chip:#ebedeb;--shadow:0 24px 80px #25282015;--font:'DM Sans',Arial,sans-serif}
:root[data-theme=dark]{color-scheme:dark;--outer:#cecec8;--shell:#101313;--panel:#191d1c;--ink:#f0f2ee;--muted:#a0a6a2;--line:#303632;--chip:#252b28;--shadow:0 24px 80px #111a1929}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:radial-gradient(ellipse at 85% 5%,#ffffff65,transparent 42%),var(--outer);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;transition:background .25s,color .25s}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #418560;outline-offset:5px}button{border:0}p,h1,h2,h3,figure{margin:0}.page-caption{text-align:center;font-size:12px;letter-spacing:.16em;color:#555d58;margin:54px 0 24px}.portfolio{width:min(100% - 40px,560px);margin:auto;padding:12px;background:var(--shell);border-radius:24px;box-shadow:var(--shadow);transition:background .25s}.header{position:relative;display:flex;align-items:center;gap:14px;padding:5px 17px 17px;min-height:48px}.brand{display:flex;align-items:center;gap:8px;font-weight:650;letter-spacing:-.5px;font-size:18px}.brand-mark{width:14px;height:14px;border:4px solid var(--ink);border-radius:100%}.theme-toggle{width:32px;height:22px;border-radius:20px;background:var(--panel);padding:5px;display:flex;align-items:center}.theme-knob{width:10px;height:10px;border-radius:100%;background:var(--ink);transition:transform .25s}:root[data-theme=dark] .theme-knob{transform:translateX(12px)}.location{font-size:12px;color:var(--muted)}.menu-toggle{margin-left:auto;display:flex;align-items:center;gap:8px;background:none;padding:4px 0;font-size:14px}.menu-icon{display:grid;gap:4px}.menu-icon i{display:block;width:12px;height:1px;background:var(--ink)}.navigation{position:absolute;top:48px;right:0;left:0;background:var(--shell);border:1px solid var(--line);padding:20px 30px;border-radius:16px;z-index:10;box-shadow:var(--shadow)}.navigation a{display:flex;justify-content:space-between;padding:12px 0}.navigation a:hover{color:#438961}.navigation span{font-size:12px;color:var(--muted)}.panel{padding:44px 42px;background:var(--panel);border-radius:15px;margin-bottom:12px;transition:background .25s}.intro{padding-top:42px;padding-bottom:40px}.identity{display:flex;align-items:center;gap:16px;margin-bottom:48px}.avatar{width:64px;height:64px;object-fit:cover;object-position:center 25%;border-radius:50%}.identity-name{font-size:17px;font-weight:500;line-height:1.5}.identity-role{font-size:14px;color:var(--muted)}h1{font-size:36px;line-height:1.17;font-weight:400;letter-spacing:-1.3px;margin-bottom:16px}.mobile-break{display:none}.intro-copy{color:var(--muted);font-size:16px;line-height:1.7}.text-link{display:inline-flex;gap:18px;align-items:center;font-size:14px;font-weight:500;margin-top:22px}.text-link:hover span{transform:translate(2px,-2px)}.text-link span{transition:transform .2s}.portrait{position:relative;border-radius:15px;overflow:hidden;margin-bottom:12px;background:#ececea;aspect-ratio:1.4}.portrait>img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 37%}.portrait figcaption{position:absolute;bottom:0;right:0;background:var(--shell);padding:10px 16px 1px 20px;border-top-left-radius:18px;font-size:12px}.portrait figcaption:before{content:'';position:absolute;bottom:0;left:-18px;width:18px;height:18px;border-bottom-right-radius:15px;box-shadow:6px 6px 0 6px var(--shell)}.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--muted);margin-bottom:20px}h2{font-size:31px;line-height:1.2;font-weight:400;letter-spacing:-1px;margin-bottom:26px}.about-panel>p:not(.eyebrow){color:var(--muted);margin-top:18px}.stats{text-align:center;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-top:1px solid var(--line);margin-top:32px;padding-top:26px}.stats strong{display:block;font-size:30px;font-weight:450;letter-spacing:-1px}.stats span{font-size:12px;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:10px;padding:16px 18px 12px;font-size:12px;color:var(--muted)}.bottom-note{text-align:center;color:#656c66;font-size:12px;margin:22px 0 48px}.skip-link{position:fixed;top:-70px;left:16px;padding:10px 20px;background:var(--shell);z-index:100}.skip-link:focus{top:12px}
@media(max-width:600px){.page-caption{margin-top:28px;font-size:11px}.portfolio{width:calc(100% - 24px);padding:9px;border-radius:20px}.header{padding:7px 12px 16px;gap:12px}.panel{padding:34px 26px;border-radius:12px}.identity{margin-bottom:38px;gap:12px}.avatar{width:56px;height:56px}h1{font-size:32px;letter-spacing:-1px}h2{font-size:28px}.location{display:none}.portrait{aspect-ratio:1.24}.stats{gap:6px}.stats strong{font-size:27px}.stats span{font-size:12px}footer{padding:16px 10px 10px;font-size:12px}.bottom-note{margin-bottom:30px}}
@media(max-width:370px){.panel{padding:30px 21px}h1{font-size:29px}.identity-role{font-size:13px}.stats{grid-template-columns:1fr}.stats>div{display:flex;gap:12px;align-items:center;justify-content:center}footer{flex-direction:column}.mobile-break{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.section-intro{color:var(--muted);margin-top:-10px;margin-bottom:28px}.project{display:block;padding:26px 0;border-top:1px solid var(--line)}.project:last-child{padding-bottom:0}.project-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.project-number,.date{font-size:12px!important;letter-spacing:.07em;color:var(--muted)}.out-arrow{font-size:23px;line-height:1;transition:transform .2s}.project:hover .out-arrow{transform:translate(3px,-3px)}h3{font-size:18px;font-weight:500;line-height:1.4;letter-spacing:-.3px}.project h3{font-size:26px;letter-spacing:-.8px}.project-subtitle{font-size:15px;margin:6px 0 10px}.project-description{font-size:14px;color:var(--muted);line-height:1.7}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:17px}.tags span{font-size:12px;background:var(--chip);padding:4px 10px;border-radius:6px}.experience-item{padding:24px 0;border-top:1px solid var(--line)}.experience-item h3{margin-top:9px}.experience-item .company{color:var(--ink);font-size:14px;margin-top:3px}.experience-item>p:last-child{font-size:14px;color:var(--muted);margin-top:12px}.button{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-radius:8px;font-size:14px;font-weight:500;transition:opacity .2s}.button:hover{opacity:.8}.secondary{border:1px solid var(--line);margin-top:10px}.primary{background:var(--ink);color:var(--shell);margin-top:26px}.skill-group{padding:20px 0;border-top:1px solid var(--line)}.skill-group:last-child{padding-bottom:0}.skill-group h3{font-size:16px}.skill-group p{font-size:14px;color:var(--muted);line-height:1.9;margin-top:10px}.education p{font-size:14px;color:var(--muted);margin:5px 0 6px}.recognition{display:grid;gap:0;margin-top:26px}.recognition span{font-size:14px;padding:12px 0;border-top:1px solid var(--line)}.recognition span:last-child{padding-bottom:0}.contact>p:not(.eyebrow){color:var(--muted)}.email-link{display:block;text-align:center;font-size:13px;color:var(--muted);margin-top:14px;overflow-wrap:anywhere}.social-links{display:flex;justify-content:space-between;gap:12px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line);font-size:14px}.social-links a:hover,.email-link:hover{color:#438961}

/* Keep the original single-column mobile layout; expand with the viewport. */
@media (min-width: 601px) {
  .portfolio { width: calc(100% - 40px); }
  .page-caption { margin: 24px 0 18px; }
  .intro-copy { max-width: 38em; }
  .navigation { left: auto; width: 320px; }
}
@media (min-width: 1000px) {
  .portfolio { width: calc(100% - 64px); padding: 16px; border-radius: 28px; }
  .header { min-height: 70px; padding: 8px 24px 24px; gap: 20px; }
  .brand { font-size: 21px; }
  .location { font-size: 14px; }
  .menu-toggle { font-size: 16px; }
  .navigation { top: 62px; }
  #main { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
  #main > * { min-width: 0; margin-bottom: 0; }
  .panel { padding: clamp(36px, 3.8vw, 80px); border-radius: 20px; }
  .intro { grid-column: span 7; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: clamp(500px, 39vw, 740px); }
  .identity { margin-bottom: clamp(40px, 4vw, 76px); }
  .identity-name { font-size: 20px; }
  .identity-role { font-size: 16px; }
  h1 { font-size: clamp(44px, 4.2vw, 86px); line-height: 1.1; letter-spacing: -.045em; margin-bottom: 24px; }
  .intro-copy { max-width: 34em; font-size: clamp(16px, 1.2vw, 21px); }
  .text-link { font-size: 16px; margin-top: 30px; }
  .portrait { grid-column: span 5; aspect-ratio: auto; border-radius: 20px; }
  .portrait > img { position: absolute; inset: 0; object-position: 50% 40%; }
  .portrait figcaption { font-size: 14px; padding: 12px 22px 4px; }
  h2 { font-size: clamp(34px, 3vw, 56px); letter-spacing: -.035em; }
  .about-panel { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; column-gap: 8%; align-items: start; }
  .about-panel .eyebrow { grid-column: 1; }
  .about-panel h2 { grid-column: 1; grid-row: 2 / 4; margin-bottom: 0; }
  .about-panel > p:not(.eyebrow) { grid-column: 2; margin-top: 0; font-size: 17px; max-width: 45em; }
  .about-panel > p:nth-of-type(2) { grid-row: 1 / 3; }
  .about-panel > p:nth-of-type(3) { grid-row: 3; margin-top: 18px; }
  .stats { grid-column: 1 / -1; padding-top: 30px; margin-top: 36px; gap: 40px; }
  .stats strong { font-size: clamp(40px, 3.5vw, 64px); }
  .stats span { font-size: 14px; }
  .work-panel { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(40px, 5vw, 100px); }
  .work-panel > .eyebrow, .work-panel > h2, .work-panel > .section-intro { grid-column: 1 / -1; }
  .work-panel > h2 { margin-bottom: 20px; }
  .section-intro { font-size: 17px; }
  .project { display: flex; flex-direction: column; padding: 32px 0; }
  .project:last-child { padding-bottom: 32px; }
  .project h3 { font-size: 32px; }
  .project-subtitle { font-size: 17px; }
  .project-description { font-size: 16px; padding-bottom: 22px; max-width: 42em; }
  .tags { margin-top: auto; }
  .tags span { font-size: 14px; }
  #experience { grid-column: span 7; grid-row: span 2; }
  .toolkit-panel, .education-panel { grid-column: span 5; }
  .experience-item { padding: 28px 0; }
  .experience-item h3 { font-size: 21px; }
  .experience-item .company, .experience-item > p:last-child, .skill-group p, .education p, .recognition span { font-size: 16px; }
  .skill-group h3 { font-size: 18px; }
  .contact { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; column-gap: 10%; align-items: start; }
  .contact .eyebrow, .contact h2, .contact > p:not(.eyebrow) { grid-column: 1; }
  .contact h2 { margin-bottom: 20px; }
  .contact > p:not(.eyebrow) { max-width: 32em; font-size: 17px; }
  .contact .primary { grid-column: 2; grid-row: 2; margin-top: 0; padding: 20px 24px; font-size: 18px; }
  .contact .email-link { grid-column: 2; grid-row: 3; margin-top: 0; text-align: left; font-size: 16px; }
  .contact .social-links { grid-column: 2; grid-row: 4; margin-top: 16px; font-size: 16px; }
  footer { padding: 26px 24px 12px; font-size: 14px; }
  .bottom-note { margin-bottom: 24px; }
}
