:root{--paper:#fcfcfa;--surface:#fff;--ink:#171717;--muted:#6e6e6e;--denim:#5d7890;--denim-deep:#40596f;--denim-pale:#dce5ea;--line:#e7e3de;--soft:#f2f1ed;--focus:#aac7d8;--shadow:0 24px 70px #17171717;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;color:var(--ink);background:var(--paper);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px;overflow-x:clip}body{background:var(--paper);min-width:320px;margin:0;overflow-x:clip}body,button,a{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:#5d789033}button{appearance:none}a{text-decoration:none}img{max-width:100%;display:block}p,h1,h2,h3,h4,figure,ul{margin:0}ul{padding:0}section{scroll-margin-top:84px}a:focus-visible,button:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.page-shell{width:min(1240px,100% - 64px);margin-inline:auto}.skip-link{z-index:100;min-height:44px;color:var(--surface);background:var(--ink);align-items:center;padding:0 18px;display:inline-flex;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus-visible{transform:translateY(0)}.site-header{z-index:50;color:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#171717f7;position:sticky;top:0}.site-nav{grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:78px;display:grid}.site-brand,.home-link,.header-actions,.header-actions a,.hero-actions,.primary-button,.text-link,.project-meta,.project-open-cue,.contact-links a,.site-footer>div{align-items:center;display:flex}.site-brand{letter-spacing:.04em;gap:13px;width:fit-content;font-size:14px;font-weight:700}.brand-mark{width:43px;height:43px;color:var(--ink);background:var(--surface);letter-spacing:-.03em;border-radius:50%;place-items:center;font-size:12px;transition:transform .18s,background-color .18s;display:grid}.site-brand:hover .brand-mark,.site-brand:focus-visible .brand-mark{background:var(--denim-pale);transform:rotate(-8deg)}.home-link{border-bottom:2px solid var(--surface);justify-content:center;min-height:44px;font-size:14px;font-weight:650}.header-actions{justify-content:flex-end;gap:10px}.header-actions a{border:1px solid #ffffff40;border-radius:999px;justify-content:center;gap:8px;min-height:44px;padding:0 16px;font-size:13px;font-weight:650;transition:color .18s,background-color .18s,border-color .18s,transform .12s}.header-actions a:hover,.header-actions a:focus-visible{color:var(--ink);background:var(--surface);border-color:var(--surface)}.header-actions a:active{transform:scale(.97)}.header-actions .contact-pill{color:var(--ink);background:var(--surface);border-color:var(--surface)}.header-actions .contact-pill:hover,.header-actions .contact-pill:focus-visible{background:var(--denim-pale);border-color:var(--denim-pale)}.hero-section{padding-top:clamp(44px,6vw,86px);padding-bottom:76px}.hero-layout{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.04fr) minmax(420px,.96fr);align-items:center;gap:clamp(36px,5vw,78px);min-height:650px;display:grid}.hero-copy{align-self:center;padding-bottom:50px;animation:.62s cubic-bezier(.22,1,.36,1) both hero-copy-in}.hero-location,.section-heading>p,.project-card-copy>p,.stage-copy>p:first-of-type,.contact-section>div>div:first-child>p{color:var(--denim-deep);letter-spacing:.14em;font-size:12px;font-weight:760}.hero-copy h1{letter-spacing:-.072em;margin-top:24px;font-size:clamp(58px,7.4vw,108px);font-weight:800;line-height:.96}.hero-copy h1 span,.hero-copy h1 strong{display:block}.hero-copy h1 span{color:var(--muted);letter-spacing:-.035em;font-size:.55em;font-weight:520;line-height:1.35}.hero-copy h1 strong{font-weight:inherit}.hero-role{letter-spacing:-.035em;margin-top:30px;font-size:clamp(20px,2.2vw,30px);font-weight:700}.hero-statement{max-width:590px;color:var(--muted);margin-top:25px;font-size:clamp(17px,1.55vw,21px);line-height:1.8}.hero-actions{flex-wrap:wrap;gap:18px;margin-top:38px}.primary-button,.text-link{justify-content:center;gap:12px;min-height:50px;font-size:14px;font-weight:720;transition:color .18s,background-color .18s,border-color .18s,transform .12s}.primary-button{color:var(--surface);background:var(--ink);border:1px solid var(--ink);border-radius:999px;padding:0 23px}.primary-button:hover,.primary-button:focus-visible{background:var(--denim-deep);border-color:var(--denim-deep)}.primary-button:active,.text-link:active{transform:translateY(1px)}.text-link{padding:0 5px;position:relative}.text-link:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:transform .18s;position:absolute;bottom:5px;left:5px;right:5px}.text-link:hover:after,.text-link:focus-visible:after{transform:scaleX(.45)}.hero-portrait{align-self:end;min-width:0;height:min(600px,60vw);animation:.72s cubic-bezier(.22,1,.36,1) .12s both hero-portrait-in;position:relative;overflow:hidden}.hero-portrait img{object-fit:contain;object-position:center bottom;width:100%;height:min(680px,67vw)}.hero-portrait figcaption{color:var(--surface);background:var(--ink);letter-spacing:.12em;flex-direction:column;gap:4px;padding:12px 14px;font-size:10px;font-weight:700;display:flex;position:absolute;bottom:18px;right:8px}.moment-strip{grid-template-columns:1.45fr repeat(6,1fr);gap:12px;padding-top:18px;display:grid}.moment-card{background:var(--soft);opacity:0;border-radius:13px;height:134px;animation:.52s cubic-bezier(.22,1,.36,1) forwards moment-in;position:relative;overflow:hidden}.moment-card:first-child{animation-delay:.38s}.moment-card:nth-child(2){animation-delay:.43s}.moment-card:nth-child(3){animation-delay:.48s}.moment-card:nth-child(4){animation-delay:.53s}.moment-card:nth-child(5){animation-delay:.58s}.moment-card:nth-child(6){animation-delay:.63s}.moment-card:nth-child(7){animation-delay:.68s}.moment-card img{object-fit:cover;width:100%;height:100%;transition:transform .36s cubic-bezier(.22,1,.36,1),filter .24s}.moment-card:first-child img{object-position:center 38%}.moment-card figcaption{color:var(--surface);letter-spacing:.04em;opacity:0;background:linear-gradient(#0000,#111111b8);padding:30px 10px 9px;font-size:10px;transition:opacity .2s,transform .2s;position:absolute;bottom:0;left:0;right:0;transform:translateY(8px)}.moment-card:hover img{filter:saturate(1.04);transform:scale(1.045)}.moment-card:hover figcaption{opacity:1;transform:translateY(0)}.experience-section,.projects-section,.contact-section{padding-block:clamp(84px,10vw,136px)}.section-heading{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,.32fr) minmax(0,1fr);gap:clamp(24px,6vw,90px);padding-bottom:48px;display:grid}.section-heading>p{padding-top:10px}.section-heading>div{grid-template-columns:minmax(250px,.9fr) minmax(260px,.75fr);align-items:end;gap:clamp(28px,5vw,80px);display:grid}.section-heading h2{letter-spacing:-.065em;font-size:clamp(46px,5.5vw,76px);line-height:1}.section-heading>div>p{color:var(--muted);font-size:17px;line-height:1.75}.subsection-heading{grid-template-columns:80px 1fr;align-items:baseline;gap:22px;margin-top:52px;margin-bottom:24px;display:grid}.subsection-heading p{color:var(--denim);letter-spacing:.12em;font-size:12px;font-weight:800}.subsection-heading h3{letter-spacing:-.035em;font-size:23px}.education-grid,.internship-grid,.focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.education-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;grid-template-columns:116px minmax(0,1fr);gap:30px;min-height:330px;padding:34px;transition:border-color .22s,box-shadow .22s,transform .22s;display:grid}.education-card:hover{box-shadow:var(--shadow);border-color:#cfd8dd;transform:translateY(-4px)}.school-logo{object-fit:contain;width:100px;height:100px}.education-copy{min-width:0}.card-period,.school-en,.company-row>p,.company-role{color:var(--muted);letter-spacing:.04em;font-size:12px;font-weight:650}.education-copy h4,.internship-card h4{letter-spacing:-.05em;margin-top:18px;font-size:clamp(25px,2.3vw,34px)}.school-en{white-space:normal;margin-top:5px}.education-copy strong{margin-top:24px;font-size:17px;display:block}.education-copy>p:last-child{color:var(--muted);margin-top:15px;line-height:1.75}.internship-heading{margin-top:74px}.internship-card{background:var(--soft);border-radius:18px;min-height:390px;padding:36px}.company-row{justify-content:space-between;align-items:flex-start;gap:22px;min-height:68px;display:flex}.company-logo-wrap{align-items:center;width:174px;height:64px;display:flex}.company-logo-wrap img{object-fit:contain;object-position:left center;max-width:100%;max-height:60px}.company-role{margin-top:7px}.company-summary{color:#4d4d4d;margin-top:26px;font-size:16px;line-height:1.8}.scope-list{flex-wrap:wrap;gap:9px;margin-top:30px;list-style:none;display:flex}.scope-list li{min-height:36px;color:var(--denim-deep);background:var(--surface);border:1px solid #d5dcdf;border-radius:999px;align-items:center;padding:0 13px;font-size:12px;font-weight:700;display:inline-flex}.focus-section{color:var(--surface);background:var(--ink);padding-block:clamp(84px,10vw,130px)}.focus-section .section-heading{border-color:#ffffff2e}.focus-section .section-heading>p{color:#abc0cf}.focus-section .section-heading>div>p{color:#ffffff9e}.focus-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:64px}.focus-grid article{border-left:1px solid #ffffff2e;min-height:330px;padding:16px clamp(24px,3vw,42px) 18px;position:relative}.focus-grid article:first-child{border-left:0;padding-left:0}.focus-index{color:#ffffff52;letter-spacing:.12em;font-size:12px}.focus-grid article>p:not(.focus-body){color:#abc0cf;letter-spacing:.14em;margin-top:64px;font-size:11px;font-weight:800}.focus-grid h3{letter-spacing:-.055em;margin-top:10px;font-size:clamp(30px,3vw,46px)}.focus-grid article>span{background:var(--denim);width:42px;height:3px;margin-top:24px;display:block}.focus-body{color:#ffffffa6;margin-top:24px;line-height:1.8}.projects-section{background:#f1f3f4;overflow:hidden}.projects-section .section-heading{border-color:#d8dde0}.project-viewport{scrollbar-width:none;overscroll-behavior-inline:contain;margin-top:42px;padding:20px max(32px,50vw - 620px) 30px;position:relative;overflow:auto visible}.project-viewport::-webkit-scrollbar{display:none}.project-track,.project-set{gap:22px;width:max-content;display:flex}.project-track{align-items:stretch}.project-set-clone{margin-left:22px}.project-card{text-align:left;background:var(--surface);cursor:pointer;border:1px solid #dce1e3;border-radius:20px;flex-direction:column;flex:none;width:clamp(306px,31vw,445px);min-height:500px;padding:0;transition:opacity .22s,border-color .22s,box-shadow .22s,transform .26s cubic-bezier(.22,1,.36,1);display:flex;overflow:hidden;box-shadow:0 10px 30px #1717170a}.project-card:hover,.project-card:focus-visible,.project-card.is-active{border-color:#aebbc3;transform:translateY(-8px)scale(1.04);box-shadow:0 28px 64px #17171726}.has-active-project .project-card:not(.is-active){opacity:.38}.project-card>figure{background:var(--denim-pale);flex:none;height:258px;overflow:hidden}.project-card>figure img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .42s cubic-bezier(.22,1,.36,1)}.project-card--sprout>figure img,.project-card--soulcompanion>figure img{object-fit:contain;background:var(--surface);padding:14px}.project-card:hover>figure img,.project-card:focus-visible>figure img{transform:scale(1.025)}.project-card-copy{flex-direction:column;min-height:240px;padding:22px 24px 24px;display:flex}.project-meta{color:var(--muted);letter-spacing:.08em;justify-content:space-between;gap:18px;font-size:11px;font-weight:700}.project-card-copy>p{margin-top:26px}.project-card-copy h3{letter-spacing:-.055em;margin-top:8px;font-size:clamp(28px,2.7vw,39px)}.project-card-copy>strong{color:#4f4f4f;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:15px;font-size:15px;font-weight:500;line-height:1.65;display:-webkit-box;overflow:hidden}.project-open-cue{justify-content:space-between;gap:14px;margin-top:auto;padding-top:22px;font-size:13px;font-weight:750}.project-hint{color:var(--muted);margin-top:4px;font-size:12px}.project-stage-wrap{min-height:0}.project-stage{background:var(--surface);box-shadow:var(--shadow);border:1px solid #d7dcdf;border-radius:24px;grid-template-columns:minmax(270px,.76fr) minmax(0,1.24fr);gap:clamp(30px,5vw,72px);margin-top:46px;padding:clamp(32px,5vw,64px);animation:.36s cubic-bezier(.22,1,.36,1) both stage-in;display:grid;position:relative}.stage-close{z-index:2;background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-width:82px;min-height:44px;padding:0 13px;font-size:12px;font-weight:700;transition:color .18s,background-color .18s;display:inline-flex;position:absolute;top:18px;right:18px}.stage-close:hover,.stage-close:focus-visible{color:var(--surface);background:var(--ink)}.stage-copy{align-self:center}.stage-copy>p:first-of-type{margin-top:50px}.stage-copy h3{letter-spacing:-.065em;margin-top:10px;font-size:clamp(38px,4vw,62px);line-height:1}.stage-copy>strong{margin-top:24px;font-size:19px;line-height:1.6;display:block}.stage-copy>p:last-of-type{color:var(--muted);margin-top:20px;line-height:1.8}.stage-link{width:fit-content;margin-top:30px}.stage-gallery{grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:12px;min-width:0;display:grid}.stage-gallery figure{background:#eef1f2;border-radius:14px;place-items:center;min-height:190px;display:grid;overflow:hidden}.stage-gallery figure:first-child{grid-column:1/-1;min-height:330px}.stage-gallery img{object-fit:contain;width:100%;height:100%;max-height:390px}.contact-section{color:var(--surface);background:var(--denim-deep)}.contact-layout{grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);align-items:end;gap:clamp(48px,8vw,130px);display:grid}.contact-section>div>div:first-child>p{color:#c8d6df}.contact-section h2{letter-spacing:-.07em;max-width:720px;margin-top:24px;font-size:clamp(48px,6vw,86px);line-height:1.02}.contact-section>div>div:first-child>span{color:#ffffffb3;max-width:620px;margin-top:28px;font-size:17px;line-height:1.8;display:block}.contact-links{gap:12px;display:grid}.contact-links a{border:1px solid #ffffff4d;border-radius:12px;gap:14px;min-height:68px;padding:0 20px;font-size:14px;transition:color .18s,background-color .18s,transform .12s}.contact-links a span{overflow-wrap:anywhere;flex:1;min-width:0}.contact-links a:hover,.contact-links a:focus-visible{color:var(--ink);background:var(--surface)}.contact-links a:active{transform:translateY(1px)}.site-footer{color:#ffffffa8;background:var(--ink)}.site-footer>div{justify-content:space-between;gap:20px;min-height:74px;font-size:12px}.site-footer a{align-items:center;min-height:44px;display:inline-flex}@keyframes hero-copy-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-portrait-in{0%{opacity:0;clip-path:inset(18% 0 0);transform:translateY(18px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}@keyframes moment-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes stage-in{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=1080px){.page-shell{width:min(100% - 48px,960px)}.hero-layout{grid-template-columns:minmax(0,1fr) minmax(360px,.84fr);gap:26px;min-height:600px}.hero-portrait img{height:590px}.hero-portrait{height:530px}.moment-strip{grid-template-columns:1.35fr repeat(6,1fr)}.moment-card{height:116px}.section-heading>div{grid-template-columns:1fr;gap:24px}.education-card{grid-template-columns:86px minmax(0,1fr);gap:24px;padding:28px}.school-logo{width:78px;height:78px}.project-stage{grid-template-columns:1fr}.stage-copy{max-width:720px}.contact-layout{grid-template-columns:1fr}}@media (width<=820px){.page-shell{width:min(100% - 36px,720px)}.site-nav{grid-template-columns:1fr auto 1fr;gap:12px}.hero-section{padding-top:52px}.hero-layout{grid-template-columns:1fr;gap:0}.hero-copy{padding-bottom:12px}.hero-copy h1{font-size:clamp(62px,13vw,92px)}.hero-portrait{width:min(100%,590px);height:min(560px,125vw);margin-inline:auto}.hero-portrait img{height:auto;max-height:680px}.moment-strip{scroll-snap-type:x proximity;scrollbar-width:none;gap:11px;width:calc(100% + 18px);padding-bottom:8px;padding-right:18px;display:flex;overflow-x:auto}.moment-strip::-webkit-scrollbar{display:none}.moment-card{scroll-snap-align:start;flex:0 0 150px;width:150px;height:124px}.moment-card:first-child{flex-basis:220px;width:220px}.moment-card figcaption{opacity:1;transform:none}.section-heading{grid-template-columns:1fr;gap:16px}.section-heading>p{padding-top:0}.education-grid,.internship-grid{grid-template-columns:1fr}.focus-grid{grid-template-columns:1fr;margin-top:38px}.focus-grid article,.focus-grid article:first-child{border-top:1px solid #ffffff2e;border-left:0;min-height:auto;padding:32px 0}.focus-grid article>p:not(.focus-body){margin-top:32px}.project-card{width:min(78vw,390px)}.project-stage{padding-top:72px}}@media (width<=560px){html{scroll-padding-top:72px}section{scroll-margin-top:72px}.page-shell{width:min(100% - 28px,520px)}.site-nav{min-height:68px}.site-brand{gap:9px;font-size:13px}.brand-mark{width:39px;height:39px}.header-actions{gap:7px}.header-actions a{min-width:44px;padding:0 11px}.header-actions a:first-child span{display:none}.hero-section{padding-top:38px;padding-bottom:58px}.hero-copy h1{margin-top:18px;font-size:clamp(56px,17vw,76px)}.hero-role{font-size:19px}.hero-statement{font-size:16px}.hero-actions{margin-top:28px}.hero-portrait figcaption{bottom:8px;right:0}.moment-strip{width:calc(100% + 14px);padding-right:14px}.experience-section,.projects-section,.contact-section,.focus-section{padding-block:78px}.section-heading{padding-bottom:32px}.section-heading h2{font-size:47px}.section-heading>div>p{font-size:15px}.subsection-heading{grid-template-columns:48px 1fr;margin-top:40px}.education-card{grid-template-columns:1fr;gap:20px;min-height:auto;padding:24px}.school-logo{width:70px;height:70px}.education-copy h4,.internship-card h4{margin-top:12px;font-size:28px}.internship-heading{margin-top:58px}.internship-card{min-height:auto;padding:26px}.company-row{align-items:center}.company-logo-wrap{width:132px}.company-row>p{text-align:right;max-width:120px}.focus-grid h3{font-size:36px}.project-viewport{padding-inline:14px}.project-card{width:min(83vw,352px);min-height:470px}.project-card:hover,.project-card:focus-visible,.project-card.is-active{transform:translateY(-5px)scale(1.025)}.project-card>figure{height:236px}.project-hint{line-height:1.6}.project-stage{border-radius:18px;gap:30px;padding:70px 20px 24px}.stage-copy h3{font-size:43px}.stage-gallery{grid-template-columns:1fr}.stage-gallery figure,.stage-gallery figure:first-child{grid-column:auto;min-height:230px}.contact-section h2{font-size:53px}.contact-links a{padding-inline:16px}.site-footer>div{min-height:82px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.moment-card,.hero-copy,.hero-portrait{opacity:1;clip-path:none;transform:none}.project-viewport{scroll-snap-type:x proximity}.project-card{scroll-snap-align:start}.project-set-clone{display:none}}
