.about-module__X_L4CW__section{padding-top:40px;padding-bottom:80px;scroll-margin-top:56px}.about-module__X_L4CW__grid{grid-template-columns:1fr 1fr;align-items:start;gap:48px;display:grid}@media (max-width:740px){.about-module__X_L4CW__grid{grid-template-columns:1fr;gap:32px}}.about-module__X_L4CW__bio{font-size:var(--font-size-17);color:var(--color-text-secondary);margin-bottom:24px;line-height:1.8}.about-module__X_L4CW__infoList{gap:48px;display:grid}.about-module__X_L4CW__infoLabel{font-size:var(--font-size-12);color:var(--color-text);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--color-border-light);margin-bottom:10px;padding-bottom:8px;font-weight:700}.about-module__X_L4CW__infoText{font-size:var(--font-size-13);color:var(--color-text-muted);line-height:1.7}
@keyframes hero-module__hvNlca__fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-module__hvNlca__float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hero-module__hvNlca__section{background:linear-gradient(135deg,var(--color-accent-start)0%,var(--color-accent-end)100%);align-items:center;min-height:100vh;padding:80px 24px 60px;display:flex;position:relative;overflow:hidden}.hero-module__hvNlca__content{z-index:1;width:100%;max-width:960px;margin:0 auto;position:relative}.hero-module__hvNlca__inner{animation:.8s both hero-module__hvNlca__fadeUp}.hero-module__hvNlca__label{font-size:var(--font-size-13);color:#ffffffbf;letter-spacing:.1em;text-transform:uppercase;margin-bottom:20px;font-weight:600}.hero-module__hvNlca__title{letter-spacing:-.04em;color:var(--color-white);margin-bottom:20px;font-size:clamp(40px,7vw,72px);font-weight:700;line-height:1.15}.hero-module__hvNlca__description{font-size:var(--font-size-18);color:#ffffffd9;max-width:520px;margin-bottom:8px;line-height:1.7}.hero-module__hvNlca__typewriterText{font-size:var(--font-size-15);color:#ffffffa6;max-width:520px;margin-bottom:40px;line-height:1.7}.hero-module__hvNlca__buttons{flex-wrap:wrap;gap:12px;display:flex}.hero-module__hvNlca__btnGhost{color:var(--color-white);font-size:var(--font-size-14);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border:1.5px solid #fff6;border-radius:10px;align-items:center;gap:8px;padding:9px 18px;font-weight:600;text-decoration:none;transition:background .2s;display:inline-flex}.hero-module__hvNlca__btnGhost:hover{background:#ffffff4d}.hero-module__hvNlca__btnSolid{background:var(--color-white);color:var(--color-accent-mid);font-size:var(--font-size-14);border-radius:10px;align-items:center;gap:8px;padding:9px 18px;font-weight:700;text-decoration:none;transition:opacity .2s;display:inline-flex}.hero-module__hvNlca__btnSolid:hover{opacity:.85}.hero-module__hvNlca__scrollHint{color:#ffffff80;flex-direction:column;align-items:center;gap:4px;animation:2s ease-in-out infinite hero-module__hvNlca__float;display:flex;position:absolute;bottom:32px;left:0;right:0}.hero-module__hvNlca__scrollLabel{font-size:var(--font-size-11);letter-spacing:.1em}.hero-module__hvNlca__scrollArrow{font-size:var(--font-size-18)}
@keyframes typewriter-module__YDD-yq__blink{0%,to{opacity:1}50%{opacity:0}}.typewriter-module__YDD-yq__cursor{animation:1s step-end infinite typewriter-module__YDD-yq__blink}
.nav-module__lqdjFa__nav{z-index:100;border-bottom:1px solid #0000;transition:background .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s,border-color .3s;position:fixed;top:0;left:0;right:0}.nav-module__lqdjFa__nav.nav-module__lqdjFa__scrolled{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-bottom:1px solid var(--color-border-light);background:#ffffffeb}.nav-module__lqdjFa__inner{justify-content:space-between;align-items:center;max-width:960px;height:56px;margin:0 auto;padding:0 24px;display:flex}.nav-module__lqdjFa__logo{font-size:var(--font-size-15);font-weight:var(--font-weight-bold);letter-spacing:-.02em;color:#ffffffe6;white-space:nowrap;transition:color .3s}.nav-module__lqdjFa__nav.nav-module__lqdjFa__scrolled .nav-module__lqdjFa__logo{color:var(--color-text)}.nav-module__lqdjFa__links{gap:28px;display:flex}.nav-module__lqdjFa__link{text-transform:uppercase;letter-spacing:.08em;font-size:var(--font-size-13);font-weight:var(--font-weight-medium);color:#fffc;transition:color .2s}.nav-module__lqdjFa__link:hover{color:var(--color-white)}.nav-module__lqdjFa__nav.nav-module__lqdjFa__scrolled .nav-module__lqdjFa__link{color:var(--color-text-muted)}.nav-module__lqdjFa__nav.nav-module__lqdjFa__scrolled .nav-module__lqdjFa__link:hover{color:var(--color-text)}
.issue-card-module__DnWtTa__issueCard{gap:14px;display:flex}.issue-card-module__DnWtTa__issueCard+.issue-card-module__DnWtTa__issueCard{border-top:1px solid var(--color-border-light);margin-top:28px;padding-top:28px}.issue-card-module__DnWtTa__issueCard:first-child{border-top:none;padding-top:0}.issue-card-module__DnWtTa__issueNum{font-size:var(--font-size-11);color:var(--color-text-faint);flex-shrink:0;min-width:20px;padding-top:2px;font-weight:700}.issue-card-module__DnWtTa__issueContent{flex-direction:column;flex:1;gap:14px;display:flex}.issue-card-module__DnWtTa__issueTitle{font-size:var(--font-size-14);color:var(--color-text);font-weight:600;line-height:1.4}.issue-card-module__DnWtTa__problemLabel{font-size:var(--font-size-11);color:var(--color-danger);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-weight:700}.issue-card-module__DnWtTa__problemBox{background:var(--color-bg-subtle);border-radius:8px;padding:14px}.issue-card-module__DnWtTa__problemItem+.issue-card-module__DnWtTa__problemItem{margin-top:10px}.issue-card-module__DnWtTa__problemSummary{font-size:var(--font-size-13);color:var(--color-text);margin-bottom:3px;font-weight:600}.issue-card-module__DnWtTa__problemText{font-size:var(--font-size-13);color:var(--color-text-secondary);line-height:1.7}.issue-card-module__DnWtTa__solutionBox{background:var(--color-bg-success);border-radius:8px;padding:14px}.issue-card-module__DnWtTa__solutionLabel{font-size:var(--font-size-11);color:var(--color-success);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-weight:700}.issue-card-module__DnWtTa__solutionList{flex-direction:column;padding-left:4px;display:flex}.issue-card-module__DnWtTa__solutionItem{font-size:var(--font-size-13);color:var(--color-text-secondary);padding-left:12px;line-height:1.7;position:relative}.issue-card-module__DnWtTa__solutionItem:before{content:"–";color:var(--color-success);position:absolute;left:0}.issue-card-module__DnWtTa__problemInner,.issue-card-module__DnWtTa__solutionInner{flex-direction:row;align-items:flex-start;gap:16px;display:flex}.issue-card-module__DnWtTa__solutionInner{margin-bottom:10px}.issue-card-module__DnWtTa__problemItems,.issue-card-module__DnWtTa__solutionItems{flex-direction:column;flex:1;width:100%;min-width:0;display:flex}.issue-card-module__DnWtTa__solutionItems{gap:10px}.issue-card-module__DnWtTa__issueImageWrap{aspect-ratio:25/18;background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:12px;flex-shrink:0;width:250px;margin:auto;position:relative;overflow:hidden}@media (max-width:750px){.issue-card-module__DnWtTa__problemInner,.issue-card-module__DnWtTa__solutionInner{flex-direction:column}.issue-card-module__DnWtTa__issueImageWrap{width:100%;max-width:250px;margin:auto}}@media (max-width:450px){.issue-card-module__DnWtTa__issueCard{flex-direction:column;gap:8px}}.issue-card-module__DnWtTa__issueImage{object-fit:cover}.issue-card-module__DnWtTa__resultBox{border-top:1px solid var(--color-success-border);padding-top:10px}.issue-card-module__DnWtTa__resultTitle{font-size:var(--font-size-13);color:var(--color-success-dark);font-weight:600;line-height:1.6}.issue-card-module__DnWtTa__resultContent{font-size:var(--font-size-13);color:var(--color-text-secondary);margin-top:3px;line-height:1.7}
.project-detail-module__pThdRq__detailHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:40px;display:flex}.project-detail-module__pThdRq__detailTitle{font-size:var(--font-size-28);color:var(--color-text);letter-spacing:-.03em;font-weight:700}.project-detail-module__pThdRq__detailSubtitle{color:var(--color-text-muted);font-size:var(--font-size-14);margin-top:6px}.project-detail-module__pThdRq__detailMeta{color:var(--color-text-faint);font-size:var(--font-size-13);margin-top:4px}.project-detail-module__pThdRq__detailLinks{gap:10px;display:flex}.project-detail-module__pThdRq__linkSite{border:1.5px solid var(--color-accent-end);color:var(--color-accent-end);font-size:var(--font-size-13);border-radius:12px;align-items:center;gap:6px;padding:8px 16px;font-weight:600;display:inline-flex}.project-detail-module__pThdRq__linkGithub{background:var(--color-text);color:var(--color-white);font-size:var(--font-size-13);border-radius:12px;align-items:center;gap:6px;padding:8px 16px;font-weight:600;display:inline-flex}.project-detail-module__pThdRq__infoGrid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:40px;display:grid}.project-detail-module__pThdRq__infoBox{background:var(--color-bg-subtle);border-radius:12px;padding:18px}.project-detail-module__pThdRq__boxLabel{font-size:var(--font-size-11);color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;font-weight:700}.project-detail-module__pThdRq__roleItem{align-items:center;gap:8px;margin-bottom:6px;display:flex}.project-detail-module__pThdRq__roleDot{background:var(--color-accent-end);border-radius:50%;flex-shrink:0;width:6px;height:6px}.project-detail-module__pThdRq__roleText{font-size:var(--font-size-13);color:var(--color-text-secondary)}.project-detail-module__pThdRq__stackList{flex-wrap:wrap;gap:6px;display:flex}.project-detail-module__pThdRq__stackTag{background:var(--color-white);border:1px solid var(--color-border);font-size:var(--font-size-12);color:var(--color-text-secondary);border-radius:20px;padding:3px 10px}.project-detail-module__pThdRq__sectionLabel{font-size:var(--font-size-11);color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-weight:700}.project-detail-module__pThdRq__features{flex-direction:column;gap:16px;margin-bottom:40px;display:flex}.project-detail-module__pThdRq__featureItem{align-items:flex-start;gap:24px;display:flex}.project-detail-module__pThdRq__featureImageWrap{aspect-ratio:5/4;background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:12px;flex-shrink:0;width:40%;position:relative;overflow:hidden}.project-detail-module__pThdRq__featureImage{object-fit:cover}.project-detail-module__pThdRq__featuresGrid{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:40px;display:grid}.project-detail-module__pThdRq__featuresGrid>.project-detail-module__pThdRq__sectionLabel{grid-column:1/-1}.project-detail-module__pThdRq__featureItemVideo{flex-direction:column;gap:16px;display:flex}.project-detail-module__pThdRq__featureVideoWrap{background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:12px;width:100%;overflow:hidden}.project-detail-module__pThdRq__featureVideo{width:100%;height:auto;display:block}.project-detail-module__pThdRq__featureInfo{flex-direction:column;flex:1;gap:8px;padding:8px 0;display:flex}.project-detail-module__pThdRq__featureTitle{font-size:var(--font-size-14);color:var(--color-text);letter-spacing:-.02em;font-weight:700}.project-detail-module__pThdRq__featureList{flex-direction:column;gap:4px;list-style:none;display:flex}.project-detail-module__pThdRq__featureDesc{font-size:var(--font-size-13);color:var(--color-text-secondary);padding-left:14px;line-height:1.6;position:relative}.project-detail-module__pThdRq__featureDesc:before{content:"-";position:absolute;left:0}.project-detail-module__pThdRq__troubleshooting{flex-direction:column;gap:16px;margin-bottom:40px;display:flex}@media (max-width:600px){.project-detail-module__pThdRq__infoGrid{grid-template-columns:1fr}.project-detail-module__pThdRq__featureItem{flex-direction:column}.project-detail-module__pThdRq__featureImageWrap{width:100%}}@media (max-width:500px){.project-detail-module__pThdRq__featuresGrid{grid-template-columns:1fr}}
@keyframes project-modal-module__LqQfnW__overlayIn{0%{opacity:0}to{opacity:1}}@keyframes project-modal-module__LqQfnW__modalIn{0%{opacity:0;transform:translate(-50%,-50%)translateY(24px)scale(.98)}to{opacity:1;transform:translate(-50%,-50%)translateY(0)scale(1)}}.project-modal-module__LqQfnW__overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;animation:.2s project-modal-module__LqQfnW__overlayIn;position:fixed;inset:0}.project-modal-module__LqQfnW__panel{z-index:201;background:var(--color-white);border-radius:20px;flex-direction:column;width:min(800px,100vw - 24px);min-width:351px;max-height:88vh;animation:.25s project-modal-module__LqQfnW__modalIn;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 80px #0000002e}.project-modal-module__LqQfnW__panel:focus{outline:none}.project-modal-module__LqQfnW__topBar{border-bottom:1px solid var(--color-border-light);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.project-modal-module__LqQfnW__topBarLabel{font-size:var(--font-size-13);color:var(--color-text-faint)}.project-modal-module__LqQfnW__closeBtn{background:var(--color-white);width:32px;height:32px;font-size:var(--font-size-16);color:var(--color-text-muted);border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:flex}.project-modal-module__LqQfnW__closeBtn:hover{background:var(--color-bg-subtle)}.project-modal-module__LqQfnW__body{flex:1;min-height:0;padding:28px 32px;overflow-y:auto}
.project-card-module__hjsu2q__card{border:1px solid var(--color-border);cursor:pointer;background:var(--color-white);opacity:0;transition-property:opacity,transform,box-shadow,border-color;transition-duration:.6s,.6s,.2s,.2s;transition-timing-function:ease;transition-delay:var(--delay,0s),var(--delay,0s),0s,0s;border-radius:16px;flex-direction:column;padding:28px;display:flex;position:relative;overflow:hidden;transform:translateY(24px)}.project-card-module__hjsu2q__card.project-card-module__hjsu2q__visible{opacity:1;transform:translateY(0)}.project-card-module__hjsu2q__card:hover{border-color:var(--color-accent-end);box-shadow:0 8px 32px #00000017}.project-card-module__hjsu2q__accentBar{background:linear-gradient(90deg,var(--color-accent-start),var(--color-accent-end));border-radius:16px 16px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.project-card-module__hjsu2q__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.project-card-module__hjsu2q__index{font-size:var(--font-size-12);color:var(--color-text-faint);font-weight:700}.project-card-module__hjsu2q__links{gap:8px;display:flex}.project-card-module__hjsu2q__link{font-size:var(--font-size-12);color:var(--color-text-faint);border:1px solid var(--color-border);border-radius:6px;padding:4px 8px;transition:color .15s}.project-card-module__hjsu2q__linkSite:hover{color:var(--color-accent-end)}.project-card-module__hjsu2q__linkGithub:hover{color:var(--color-text)}.project-card-module__hjsu2q__title{font-size:var(--font-size-20);color:var(--color-text);letter-spacing:-.02em;margin:0 0 8px;font-weight:700}.project-card-module__hjsu2q__subtitle{font-size:var(--font-size-13);color:var(--color-text-muted);margin-bottom:20px;line-height:1.6}.project-card-module__hjsu2q__stackList{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.project-card-module__hjsu2q__stackTag{background:var(--color-bg-subtle);border:1px solid var(--color-border);font-size:var(--font-size-11);color:var(--color-text-secondary);border-radius:20px;padding:3px 10px}.project-card-module__hjsu2q__footer{border-top:1px solid var(--color-border-light);justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;display:flex}.project-card-module__hjsu2q__period{font-size:var(--font-size-12);color:var(--color-text-faint)}.project-card-module__hjsu2q__cta{font-size:var(--font-size-12);color:var(--color-accent-end);font-weight:600}
.projects-section-module__1TUKOG__section{padding-bottom:120px;scroll-margin-top:56px}.projects-section-module__1TUKOG__group{flex-direction:column;gap:12px;display:flex}.projects-section-module__1TUKOG__group+.projects-section-module__1TUKOG__group{margin-top:32px}.projects-section-module__1TUKOG__groupLabel{font-size:var(--font-size-12);color:var(--color-text-faint);letter-spacing:.05em;font-weight:700}.projects-section-module__1TUKOG__grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}
.skills-section-module__fsG6fG__section{padding-bottom:80px;scroll-margin-top:56px}.skills-section-module__fsG6fG__grid{gap:16px;display:grid}.skills-section-module__fsG6fG__row{align-items:flex-start;gap:20px;display:flex}.skills-section-module__fsG6fG__category{font-size:var(--font-size-12);color:var(--color-text-faint);letter-spacing:.05em;flex-shrink:0;min-width:100px;padding-top:5px;font-weight:700}.skills-section-module__fsG6fG__items{flex-wrap:wrap;flex:1;gap:8px;min-width:0;display:flex}.skills-section-module__fsG6fG__item{font-size:var(--font-size-13);background:var(--color-bg-subtle);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:default;opacity:0;transition:opacity .4s ease var(--delay,0s),transform .4s ease var(--delay,0s),background .15s,color .15s,border-color .15s;border-radius:999px;padding:4px 12px;font-weight:500;transform:translateY(12px)}.skills-section-module__fsG6fG__item.skills-section-module__fsG6fG__visible{opacity:1;transform:translateY(0)}.skills-section-module__fsG6fG__item:hover{background:var(--color-text);color:var(--color-white);border-color:var(--color-text)}
.page-module___8aEwW__contentWrapper{max-width:960px;margin:0 auto;padding:0 24px}.page-module___8aEwW__footer{border-top:1px solid var(--color-border-light);text-align:center;padding:32px 24px}.page-module___8aEwW__footerText{font-size:var(--font-size-13);color:var(--color-text-faint)}
