:root{--bg: #ffffff;--ink: #111111;--ink-soft: #444444;--muted: #6b6b6b;--card-dark: #2e2e2e;--card-dark-2: #1f1f1f;--card-gray: #d9d9d9;--placeholder: #cccccc;--chip: #3a3a3a;--line: #e6e6e6;--font: "Poppins", system-ui, -apple-system, sans-serif;--maxw: 1100px;--radius: 6px;--radius-lg: 10px;--transition: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,svg,video{max-width:100%;display:block}a{text-decoration:none;color:inherit}button{cursor:pointer;font-family:inherit;border:none;background:none}ul,ol{list-style:none}h1,h2,h3,h4{font-weight:700;line-height:1.15;letter-spacing:-.01em}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}.section{padding:72px 0}.section-title{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;margin-bottom:28px}.placeholder{background:var(--placeholder);display:block}.placeholder--circle{border-radius:50%}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#cfcfcf;border-radius:4px}::selection{background:var(--ink);color:#fff}.nav{position:sticky;top:0;z-index:50;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav__inner{height:64px;display:flex;align-items:center;justify-content:space-between}.nav__logo{font-weight:700;font-size:1.1rem;letter-spacing:-.02em}.nav__links{display:flex;align-items:center;gap:40px}.nav__links a{font-size:.95rem;font-weight:500;color:var(--ink);transition:color var(--transition)}.nav__links a:hover{color:var(--muted)}.nav__toggle{display:none;flex-direction:column;gap:5px;padding:6px}.nav__toggle span{width:22px;height:2px;background:var(--ink);transition:var(--transition)}.nav__toggle--open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav__toggle--open span:nth-child(2){opacity:0}.nav__toggle--open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:640px){.nav__toggle{display:flex}.nav__links{position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--line);max-height:0;overflow:hidden;transition:max-height var(--transition)}.nav__links--open{max-height:240px}.nav__links a{width:100%;padding:16px 24px;border-top:1px solid var(--line)}}.hero{padding:56px 0 32px}.hero__inner{display:flex;flex-direction:column;align-items:center;text-align:center}.hero__avatar{width:132px;height:132px;border-radius:50%;overflow:hidden;margin-bottom:28px}.hero__avatar img,.hero__avatar .placeholder{width:100%;height:100%;object-fit:cover}.hero__title{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700;margin-bottom:18px}.hero__bio{max-width:620px;color:var(--ink-soft);font-size:.95rem;line-height:1.7}.hero__socials{display:flex;gap:26px;margin-top:28px}.hero__social{color:var(--ink);transition:transform var(--transition),color var(--transition)}.hero__social:hover{transform:translateY(-3px);color:var(--muted)}.skills__grid{display:grid;grid-template-columns:1.7fr 1fr;gap:24px;align-items:start}.skills__left{display:flex;flex-direction:column;gap:24px}.card{border-radius:var(--radius-lg);padding:22px 24px}.card--gray{background:var(--card-gray)}.card--dark{background:var(--card-dark)}.card__title{font-size:1.05rem;font-weight:600;margin-bottom:18px}.card__title--light{color:#fff}.skills__row{display:flex;gap:14px;align-items:baseline;margin-bottom:12px;flex-wrap:wrap}.skills__group{font-size:.85rem;font-weight:500;min-width:72px;color:var(--ink-soft)}.chips{display:flex;flex-wrap:wrap;gap:14px}.chip{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:var(--ink)}.chip--ondark{color:#f0f0f0}.chip__dot{width:12px;height:12px;border-radius:2px;background:var(--chip);flex-shrink:0}.chip__icon{width:18px;height:18px;object-fit:contain;border-radius:3px;flex-shrink:0}.chip--ondark .chip__dot{background:#c9c9c9}.skills__right{display:flex;flex-direction:column;gap:24px}.skills__softlist{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.85rem;color:var(--ink-soft)}.skills__trivialist{display:flex;flex-direction:column;gap:10px;font-size:.85rem;color:#eaeaea}.skills__trivialist li{display:flex;align-items:center;gap:10px}.skills__trivialist li:before{content:"";width:6px;height:6px;border-radius:50%;background:#c9c9c9;flex-shrink:0}@media(max-width:760px){.skills__grid{grid-template-columns:1fr}}.edu{padding-top:0}.edu__title{font-size:1.4rem;font-weight:700;margin-bottom:28px}.edu__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.edu__card{display:flex;align-items:center;gap:20px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}.edu__card:hover{transform:translateY(-4px);border-color:#d4d4d4;box-shadow:0 12px 28px #00000014}.edu__logo-wrap{width:68px;height:68px;flex-shrink:0;border-radius:14px;background:var(--card-gray);display:flex;align-items:center;justify-content:center;overflow:hidden}.edu__logo{width:100%;height:100%;object-fit:cover}.edu__school{font-size:1.08rem;font-weight:600;line-height:1.3}.edu__detail{margin-top:6px;font-size:.85rem;color:var(--muted)}@media(max-width:640px){.edu__grid{grid-template-columns:1fr}}.cardgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.cardgrid__card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:16 / 9}.cardgrid__img{width:100%;height:100%;object-fit:cover}.cardgrid__caption{position:absolute;left:0;right:0;bottom:0;padding:14px 18px;background:#282828b8;color:#fff;font-size:.95rem;font-weight:600}@media(max-width:640px){.cardgrid{grid-template-columns:1fr}}.activity__title{font-size:1.4rem;font-weight:700;margin-bottom:28px}.reach__heading{text-align:center;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;margin-bottom:36px}.reach__panel{background:var(--card-gray);border-radius:var(--radius-lg);padding:28px;display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.reach__card{background:var(--card-dark);color:#fff;border-radius:var(--radius);padding:22px}.reach__card-title{font-size:1rem;font-weight:600;margin-bottom:18px}.reach__email{display:flex;flex-direction:column;gap:14px}.reach__email input,.reach__email textarea{width:100%;background:#fff;border:none;border-radius:var(--radius);padding:12px 14px;font-family:inherit;font-size:.9rem;color:var(--ink);resize:vertical}.reach__email input:focus,.reach__email textarea:focus{outline:2px solid #9a9a9a}.reach__email button{align-self:flex-start;background:#fff;color:var(--ink);font-weight:600;font-size:.85rem;padding:10px 24px;border-radius:var(--radius);transition:opacity var(--transition)}.reach__email button:hover{opacity:.85}.reach__links{display:flex;flex-direction:column;gap:16px}.reach__links a{display:flex;align-items:center;gap:12px;font-size:.9rem;color:#eaeaea;transition:color var(--transition)}.reach__links a:hover{color:#fff}.reach__icon{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--ink);border-radius:4px;flex-shrink:0}@media(max-width:700px){.reach__panel{grid-template-columns:1fr}}.footer{margin-top:40px}.footer__bar{height:8px;background:var(--ink)}.footer__inner{display:flex;align-items:center;justify-content:space-between;padding-top:24px;padding-bottom:32px}.footer__copy{font-size:.9rem;font-weight:600}.footer__socials{display:flex;gap:12px}.footer__social{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:var(--card-gray);color:var(--ink);border-radius:4px;transition:background var(--transition)}.footer__social:hover{background:#c4c4c4}@media(max-width:480px){.footer__inner{flex-direction:column;gap:16px;align-items:flex-start}}.projects{padding:48px 0 72px;min-height:70vh}.projects__back{display:inline-block;font-size:.9rem;font-weight:500;color:var(--muted);margin-bottom:24px;transition:color var(--transition)}.projects__back:hover{color:var(--ink)}.projects__title{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700;margin-bottom:8px}.projects__lead{color:var(--ink-soft);margin-bottom:36px}
