:root{--paper:#f5f4f1;--paper-2:#efeeea;--ink:#111;--ink-soft:#3a3a3a;--muted:#6f6c66;--line:#111;--line-soft:#cbc9c3;--white:#fff;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;--pad:clamp(20px, 4.2vw, 64px);--header-h:56px;--status-h:45px;--maxw:1440px;--radius-pill:999px;--ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--status-h));scroll-snap-type:y proximity}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}body.is-locked{overflow:hidden}html.has-cursor-none,html.has-cursor-none *{cursor:none!important}img,svg,canvas{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:0 0;border:0;padding:0}h1,h2,h3,h4,p,figure{margin:0}ul,ol{margin:0;padding:0;list-style:none}::selection{background:var(--ink);color:var(--paper)}:focus-visible{outline:1px solid var(--ink);outline-offset:3px}.mono{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:400}.wrap{width:100%;max-width:var(--maxw);padding:0 var(--pad);margin:0 auto}.hairline{background:var(--line);height:1px}.grid-cell{display:flex}.grid-cell>*{flex:1}.section{padding:0}.sec-head{border-bottom:1px solid var(--line);align-items:baseline;gap:16px;margin-bottom:clamp(28px,4vw,52px);padding-bottom:16px;display:flex}.sec-head__num{color:var(--muted)}.sec-head__title{letter-spacing:-.015em;font-size:clamp(21px,2.1vw,28px);font-weight:600;line-height:1.1}.sec-head__en{color:var(--muted);white-space:nowrap;margin-left:auto}.sec-lead{max-width:680px;color:var(--ink-soft);font-size:clamp(14px,1.15vw,16px);line-height:1.9}.hatch{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background-color:var(--paper);height:18px;position:relative;overflow:hidden}.hatch:before{content:"";background-image:repeating-linear-gradient(45deg, var(--ink) 0 1px, transparent 1px 5px);will-change:transform;width:calc(100% + 254.559px);animation:32s linear infinite hatchFlow;position:absolute;top:0;bottom:0;left:0}@keyframes hatchFlow{to{transform:translate(-254.559px)}}.btn{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--paper);height:44px;color:var(--ink);letter-spacing:.01em;white-space:nowrap;transition:color .45s var(--ease);justify-content:center;align-items:center;padding:0 26px;font-size:13.5px;display:inline-flex;position:relative;overflow:hidden}.btn>span{z-index:1;position:relative}.btn:before{content:"";z-index:0;background:var(--ink);transition:transform .55s var(--ease);position:absolute;inset:0;transform:translate(-101%)}.btn:hover:before,.btn:focus-visible:before{transform:translate(0)}.btn:hover,.btn:focus-visible{color:var(--paper)}.btn--solid{background:var(--ink);color:var(--paper)}.btn--solid:before{background:var(--paper)}.btn--solid:hover,.btn--solid:focus-visible{color:var(--ink)}@media (hover:none){.btn:hover{color:var(--ink)}.btn:hover:before{transform:translate(-101%)}.btn--solid:hover{color:var(--paper)}.btn--solid:hover:before{transform:translate(0)}.btn:active,.btn--solid:active{color:var(--paper)}.btn:active:before,.btn--solid:active:before{transform:translate(0)}}.reveal{opacity:0;transition:opacity .85s var(--ease) var(--d,0s), transform .85s var(--ease) var(--d,0s);will-change:opacity, transform;transform:translateY(26px)}.reveal.is-in{opacity:1;transform:none}.reveal.is-done{will-change:auto}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.reveal{opacity:1!important;transform:none!important}.hatch:before{animation:none!important}}.header{--load-pad:clamp(28px, 5vw, 56px);--bar-inset:max(var(--pad), calc((100% - var(--maxw)) / 2 + var(--pad)));z-index:900;background:var(--paper);width:100%;position:sticky;top:0}.header.is-loading{z-index:9999;transform:translateY(calc(100vh - 100% - var(--load-pad)));transform:translateY(calc(100dvh - 100% - var(--load-pad)))}.header.is-rising{z-index:9999;transition:transform .9s var(--ease);transform:translateY(0)}.header.is-extended{z-index:9999}.header__inner{height:var(--header-h,56px);max-width:var(--maxw);padding:0 var(--pad);align-items:center;gap:16px;margin:0 auto;display:flex;position:relative}.header__brand{flex:none;align-items:center;gap:10px;display:flex}.header__mark{border:1px solid var(--line);width:26px;height:26px;font-family:var(--mono);transition:background-color .35s var(--ease), color .35s var(--ease);place-items:center;font-size:11px;line-height:1;display:grid}.header__brand:hover .header__mark{background:var(--ink);color:var(--paper)}.header__name{letter-spacing:-.01em;font-size:13.5px;font-weight:600}.header__name em{font-style:normal;font-family:var(--mono);letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-left:8px;font-size:10px}.header__end{align-items:center;margin-left:auto;display:flex;position:relative}.header__links{gap:22px;display:flex}.header__links a{color:var(--ink-soft);transition:color .3s var(--ease);padding:2px 0;position:relative}.header__links a:after{content:"";background:var(--ink);transform-origin:100%;height:1px;transition:transform .4s var(--ease);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.header__links a:hover{color:var(--ink)}.header__links a:hover:after{transform-origin:0;transform:scaleX(1)}.header__mail{color:var(--ink);margin-left:auto;display:none}.header__pct{color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.02em;transition:opacity .35s var(--ease);position:absolute;top:50%;right:0;transform:translateY(-50%)}.header__links,.header__mail{opacity:0;pointer-events:none;transition:opacity .45s var(--ease) .1s}.header.is-extended .header__links,.header.is-extended .header__mail{opacity:1;pointer-events:auto}.header.is-extended .header__pct{opacity:0}.header__bar{left:var(--bar-inset);right:var(--bar-inset);background:var(--line-soft);height:2px;position:absolute;bottom:0}.header.is-extended .header__bar{height:1px;transition:left .6s var(--ease), right .6s var(--ease), height .6s var(--ease);left:0;right:0}.header__bar i{background:var(--ink);transform-origin:0;height:100%;display:block}.load-bg{z-index:9989;background:var(--paper);transition:transform .9s var(--ease);border-bottom:0;position:fixed;inset:0}.load-bg.is-done{transform:translateY(-101%)}@media (width<=620px){.header__links{display:none}.header__mail{margin:-10px 0 -10px -12px;padding:10px 0 10px 12px;display:block}}@media (hover:none){.header__brand:hover .header__mark{color:inherit;background:0 0}.header__links a:hover{color:var(--ink-soft)}.header__links a:hover:after{transform:scaleX(0)}}@media (display-mode:standalone){:root{--header-h:calc(56px + env(safe-area-inset-top,0px))}.header__inner{padding-top:env(safe-area-inset-top,0px)}}.about__lead{letter-spacing:-.02em;margin-bottom:clamp(20px,2.6vw,32px);font-size:clamp(18px,2.05vw,27px);font-weight:500;line-height:1.5}.about__body p{color:var(--ink-soft);margin-bottom:14px;font-size:clamp(14.5px,1.05vw,15px);line-height:1.95}.about__body p:last-child{margin-bottom:0}.about__facts{border-top:0}.about__facts dl{grid-template-columns:1fr 1fr;gap:clamp(18px,2.2vw,32px) clamp(28px,3.4vw,56px);display:grid}.about__fact{flex-direction:column;gap:7px;min-width:0;display:flex}.about__fact.is-wide{grid-column:1/-1}.about__fact dt{color:var(--muted);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:11px}.about__fact dd{border-bottom:1px solid var(--line-soft);letter-spacing:-.01em;margin:0;padding-bottom:8px;font-size:clamp(15px,1.2vw,17px)}.about__fact a{color:inherit;transition:color .3s var(--ease)}.about__fact a:hover{color:var(--ink)}@media (width<=720px){.about__facts dl{grid-template-columns:1fr;gap:18px}}.skills__list{border-top:1px solid var(--line);margin-top:clamp(24px,3vw,40px)}.skill{border-bottom:1px solid var(--line-soft);transition:background-color .4s var(--ease);grid-template-columns:46px minmax(130px,1.05fr) 1.7fr 54px;align-items:center;gap:clamp(12px,2.2vw,28px);padding:clamp(16px,3.2vh,34px) 4px;display:grid}.skill:hover{background:#11111107}@media (hover:none){.skill:hover{background:0 0}}.skill__idx{color:var(--muted)}.skill__name{letter-spacing:-.01em;font-size:15px;font-weight:600;line-height:1.25}.skill__name small{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);margin-top:3px;font-size:10.5px;font-weight:400;display:block}.skill__bar{border:1px solid var(--line);background:0 0;height:8px;position:relative;overflow:hidden}.skill__bar i{background:var(--ink);width:0;height:100%;transition:width 1.25s var(--ease);display:block}.skill__val{text-align:right;letter-spacing:.06em;color:var(--ink);font-size:12px}@media (width<=720px){.skill{grid-template-columns:34px 1fr 52px;gap:12px}.skill__bar{grid-column:1/-1}.skill__val{text-align:right}}.work__grid{border-top:1px solid var(--line);border-left:1px solid var(--line);perspective:1100px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0;margin-top:clamp(24px,3vw,40px);display:grid}.card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:320px;transform-style:preserve-3d;transition:transform .5s var(--ease), background-color .5s var(--ease);background:0 0;flex-direction:column;padding:clamp(22px,2.6vw,34px);display:flex;position:relative}.card:hover{background:#11111106}.card__top{color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:clamp(28px,6vw,64px);display:flex}.card__id{font-family:var(--mono);letter-spacing:.16em;font-size:11px}.card__title{letter-spacing:-.03em;font-size:clamp(24px,2.5vw,34px);font-weight:600;line-height:1.05}.card__titleCn{letter-spacing:0;color:var(--muted);margin-top:8px;font-size:13px;font-weight:400;display:block}.card__desc{color:var(--ink-soft);margin-top:16px;font-size:13.5px;line-height:1.85}.card__tags{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:24px;display:flex}.card__tag{border:1px solid var(--line-soft);border-radius:var(--radius-pill);font-family:var(--mono);letter-spacing:.08em;color:var(--ink-soft);transition:border-color .35s var(--ease), color .35s var(--ease);padding:4px 10px;font-size:10px}.card:hover .card__tag{border-color:var(--line);color:var(--ink)}@media (hover:none){.card:hover{background:0 0}.card:hover .card__tag{border-color:var(--line-soft);color:var(--ink-soft)}.card:active{background:#1111110b}}.card__foot{border-top:1px solid var(--line-soft);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;font-size:10.5px;display:flex}.card__link{color:var(--ink);position:relative}.card__link:after{content:"";background:var(--ink);transform-origin:100%;height:1px;transition:transform .4s var(--ease);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.card__link:hover:after{transform-origin:0;transform:scaleX(1)}.work__hint{color:var(--muted);margin-top:16px}.tl{border-top:1px solid var(--line);margin-top:clamp(24px,3vw,40px)}.tl__item{border-bottom:1px solid var(--line-soft);grid-template-columns:148px 1fr;gap:clamp(16px,3vw,40px);padding:clamp(20px,2.6vw,30px) 0;display:grid;position:relative}.tl__marker{border:1px solid var(--line);width:9px;height:9px;transition:background-color .5s var(--ease) .25s, transform .5s var(--ease) .25s;background:0 0;position:absolute;top:clamp(28px,3.2vw,38px);left:-16px}.tl__item.is-in .tl__marker{background:var(--ink);transform:rotate(45deg)}.tl__year{font-family:var(--mono);letter-spacing:.1em;color:var(--ink);padding-top:2px;font-size:12px}.tl__title{letter-spacing:-.015em;margin-bottom:8px;font-size:clamp(16px,1.5vw,19px);font-weight:600}.tl__text{color:var(--ink-soft);max-width:640px;font-size:14.5px;line-height:1.9}@media (width<=640px){.tl__item{grid-template-columns:1fr;gap:8px}}.contact__grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;margin-top:clamp(28px,4vw,52px);display:grid}.channel{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:190px;transition:color .45s var(--ease);background:0 0;flex-direction:column;padding:clamp(20px,2.4vw,30px);display:flex;position:relative;overflow:hidden}.channel__inner{z-index:1;flex-direction:column;height:100%;display:flex;position:relative}.channel:before{content:"";z-index:0;background:var(--ink);transition:transform .6s var(--ease);position:absolute;inset:0;transform:translate(-101%)}.channel:hover:before,.channel:focus-visible:before{transform:translate(0)}.channel:hover,.channel:focus-visible{color:var(--paper)}.channel__label{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);transition:color .45s var(--ease);font-size:10.5px}.channel:hover .channel__label{color:#f5f4f199}.channel__value{letter-spacing:-.01em;word-break:break-all;margin-top:auto;font-size:clamp(15px,1.5vw,19px);font-weight:500}.channel__row{border-top:1px solid var(--line-soft);transition:border-color .45s var(--ease);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:12px;display:flex}.channel:hover .channel__row{border-color:#f5f4f147}.channel__note{font-family:var(--mono);letter-spacing:.08em;color:var(--muted);transition:color .45s var(--ease);font-size:10.5px}.channel:hover .channel__note{color:#f5f4f1a6}.channel__arrow{transition:transform .5s var(--ease);font-size:15px}.channel:hover .channel__arrow{transform:translate(6px)}@media (hover:none){.channel:hover{color:var(--ink)}.channel:hover:before{transform:translate(-101%)}.channel:hover .channel__label{color:var(--muted)}.channel:hover .channel__row{border-color:var(--line-soft)}.channel:hover .channel__note{color:var(--muted)}.channel:hover .channel__arrow{transform:none}.channel:active{color:var(--paper)}.channel:active:before{transform:translate(0)}.channel:active .channel__label{color:#f5f4f199}.channel:active .channel__row{border-color:#f5f4f147}.channel:active .channel__note{color:#f5f4f1a6}}.notes__form{border:1px solid var(--line);background:0 0;grid-template-columns:1fr 260px;gap:0;margin-top:clamp(24px,3vw,40px);display:grid}.notes__field{border-right:1px solid var(--line);padding:clamp(18px,2.2vw,26px)}.notes__field label{margin-bottom:10px;display:block}.notes__textarea{resize:vertical;width:100%;min-height:92px;color:var(--ink);font-family:var(--sans);background:0 0;border:0;outline:none;padding:0;font-size:15px;line-height:1.8;display:block}.notes__textarea::placeholder{color:#b3b0aa}.notes__side{flex-direction:column;justify-content:space-between;gap:16px;padding:clamp(18px,2.2vw,26px);display:flex}.notes__name{border:1px solid var(--line-soft);width:100%;color:var(--ink);font-family:var(--sans);transition:border-color .3s var(--ease);background:0 0;outline:none;padding:10px 12px;font-size:13px}.notes__name:focus{border-color:var(--line)}.notes__meta{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;display:flex}.notes__meta.is-over{color:#b23c2a}.notes__submit{width:100%}.notes__submit:disabled{opacity:.38;pointer-events:none}.notes__wall{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0;margin-top:clamp(24px,3vw,40px);display:grid}.note{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:176px;animation:noteIn .5s var(--ease) both;background:0 0;flex-direction:column;padding:18px 20px 16px;display:flex;position:relative}@keyframes noteIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.note__head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;padding-bottom:10px;display:flex}.note__who{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.note__when{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);flex:none;font-size:10px}.note__text{color:var(--ink-soft);word-break:break-word;white-space:pre-wrap;font-size:14px;line-height:1.8}.note__del{width:26px;height:26px;color:var(--muted);opacity:0;transition:opacity .3s var(--ease), color .3s var(--ease);place-items:center;font-size:15px;line-height:1;display:grid;position:absolute;bottom:6px;right:8px}.note:hover .note__del,.note__del:focus-visible{opacity:1}.note__del:hover{color:var(--ink)}.notes__empty{border-right:1px solid var(--line);border-bottom:1px solid var(--line);grid-column:1/-1;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;padding:20px;display:grid}.notes__ghost{border:1px dashed var(--line-soft);text-align:center;min-height:140px;color:var(--muted);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;place-items:center;padding:18px;font-size:10.5px;display:grid}@media (hover:none){.note__del{opacity:.5}.note__del:active{opacity:1;color:var(--ink)}}@media (width<=760px){.notes__form{grid-template-columns:1fr}.notes__field{border-right:0;border-bottom:1px solid var(--line)}}@media (width<=860px){.notes__textarea,.notes__name{font-size:16px}}.figure{width:100%;height:100%}.figure__canvas{width:100%;height:100%;display:block}.tabs{scroll-snap-align:start;min-height:calc(100vh - var(--header-h) - var(--status-h));clip-path:inset(0);background:var(--paper);position:relative;overflow:clip}@supports (height:100dvh){.tabs,.tabs__inner{min-height:calc(100dvh - var(--header-h) - var(--status-h))}.tabs__view{min-height:min(64dvh,560px)}}.tabs__inner{--col-w:clamp(620px, 82vw, 1680px);--pad-x:clamp(24px, 3.4vw, 56px);--slot-w:clamp(330px, 58vh, 632px);width:100%;max-width:calc(var(--col-w) + var(--pad-x) * 2);min-height:calc(100vh - var(--header-h) - var(--status-h));padding:clamp(36px, 5.4vh, 70px) var(--pad-x);grid-template-columns:minmax(0,1fr);align-items:center;margin:0 auto;display:grid;position:relative}.tabs__nav{transition:opacity .4s var(--ease)}.tabs__nav.is-away{opacity:0;visibility:hidden;pointer-events:none}.tabs__arrow{z-index:6;width:56px;height:72px;color:var(--ink);opacity:.42;cursor:pointer;transition:opacity .3s var(--ease), transform .3s var(--ease);animation:arrowIn .5s var(--ease) both;background:0 0;border:0;place-items:center;padding:0;display:grid;position:fixed;top:50%;transform:translateY(-50%)}.tabs__arrow:hover,.tabs__arrow:focus-visible{opacity:1}.tabs__arrow--prev{left:clamp(6px,1.6vw,26px)}.tabs__arrow--prev:hover{transform:translate(-3px,-50%)}.tabs__arrow--next{right:clamp(6px,1.6vw,26px)}.tabs__arrow--next:hover{transform:translate(3px,-50%)}@keyframes arrowIn{0%{opacity:0}}.tabs__bar{right:0;bottom:env(safe-area-inset-bottom,0px);z-index:6;background:var(--line-soft);pointer-events:none;height:3px;animation:arrowIn .6s var(--ease) both;position:fixed;left:0}.tabs__bar-i{background:var(--ink);height:100%;transition:transform .5s var(--ease);display:block}.tabs__panel{z-index:1;background:0 0;width:100%;min-width:0;position:relative}.tabs .wrap{max-width:none;padding-inline:0}.tabs .about__body p{max-width:40em}.tabs .about__lead{max-width:30em}.tabs .work__grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.tabs .contact__grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.tabs .notes__form{grid-template-columns:1fr 240px}.tabs .reveal{opacity:1;transition:none;transform:none}.tabs .skill.reveal{transition:background-color .4s var(--ease)}.tabs:not(.is-armed) .tabs__view:not([hidden]) .reveal{opacity:0}.tabs.is-armed .tabs__view:not([hidden]) .reveal{animation:panelIn .55s var(--ease) both;animation-delay:var(--d,0s)}@keyframes panelIn{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}@keyframes cellIn{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:none}}@keyframes cardIn{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}.tabs.is-armed .tabs__view:not([hidden]) .skill>*{animation:cellIn .5s var(--ease) both;animation-delay:calc(var(--d,0s) + var(--i,0) * 90ms)}.tabs .skill>:first-child{--i:0}.tabs .skill>:nth-child(2){--i:1}.tabs .skill>:nth-child(3){--i:2}.tabs .skill>:nth-child(4){--i:3}.tabs.is-armed .tabs__view:not([hidden]) .tl__item>*{animation:cellIn .5s var(--ease) both;animation-delay:calc(var(--d,0s) + var(--i,0) * 90ms)}.tabs .tl__item>:first-child{--i:0}.tabs .tl__item>:nth-child(2){--i:1}.tabs .tl__item>:nth-child(3){--i:2}.tabs.is-armed .tabs__view:not([hidden]) .grid-cell>*{animation:cardIn .62s var(--ease) both;animation-delay:calc(var(--d,0s) + 80ms)}@keyframes riseIn{0%{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}@keyframes popIn{0%{opacity:0;transform:translateY(26px)scale(.92)}to{opacity:1;transform:none}}@keyframes wipeRight{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}@keyframes unfold{0%{opacity:0;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}.tabs.is-armed .tabs__view:not([hidden]) .pane--work .grid-cell{animation:popIn .62s var(--ease) both;animation-delay:calc(var(--d,0s) + 60ms)}.tabs.is-armed .tabs__view:not([hidden]) .pane--contact .grid-cell{animation:wipeRight .7s var(--ease) both;animation-delay:calc(var(--d,0s) + .11s)}.tabs.is-armed .tabs__view:not([hidden]) .pane--journey .tl{animation:riseIn .7s var(--ease) both}.tabs.is-armed .tabs__view:not([hidden]) .pane--notes .notes__form{animation:unfold .65s var(--ease) both;animation-delay:90ms}.tabs.is-armed .tabs__view:not([hidden]) .pane--notes .notes__wall{animation:riseIn .6s var(--ease) both;animation-delay:.22s}.tabs__view{flex-direction:column;justify-content:center;min-height:min(64vh,560px);display:flex}.tabs__view[hidden]{display:none}.tabs .section{border-top:0;min-height:0;padding:0;display:block}.tabs .sec-head{border-bottom:1px solid var(--line);background:0 0;flex-direction:column;gap:6px;margin-bottom:clamp(16px,4vh,44px);padding-bottom:clamp(10px,1.8vh,20px);display:flex}.tabs .sec-head__num{display:none}.tabs .sec-head__title{letter-spacing:-.025em;font-size:clamp(26px,2.7vw,42px);font-weight:600;line-height:1.05}.tabs .sec-head__en{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-left:0;font-size:12px}.tabs__mark{z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:-.045em;text-transform:uppercase;color:#1111110b;-webkit-text-stroke:1px #11111112;font-size:clamp(56px,9.5vw,148px);font-weight:700;line-height:.9;display:grid;position:absolute;bottom:-.18em;left:0}.tabs__mark-i{grid-area:1/1}.tabs:not(.is-armed) .tabs__mark-i{opacity:0}.tabs.is-armed .tabs__mark-i{animation:markIn .42s var(--ease) both}.tabs.is-armed .tabs__mark-i.is-out{animation:markOut .3s var(--ease) both}@keyframes markIn{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:none}}@keyframes markOut{0%{opacity:1;transform:none}to{opacity:0;transform:translate(22px)}}.tabs__figure{left:var(--pad-x);z-index:0;width:var(--col-w);pointer-events:none;height:calc(100vh - var(--header-h) - var(--status-h));position:absolute;top:0}@supports (height:100dvh){.tabs__figure{height:calc(100dvh - var(--header-h) - var(--status-h))}}.tabs .pane{align-items:start;gap:clamp(18px,4vh,44px);display:grid}.tabs .pane>:not(.pane__slot){background:0 0}.pane__slot{width:var(--slot-w);height:var(--slot-w);background:0 0}.tabs .pane--about{--slot-w:clamp(354px, 66vh, 726px);grid-template-columns:minmax(0, 1fr) var(--slot-w);grid-template-rows:auto auto;display:grid}.tabs .pane--about>.about__body{grid-area:1/1}.tabs .pane--about>.about__facts{grid-area:2/1}.tabs .pane--about>.pane__slot{grid-area:1/2/span 2;align-self:center}.tabs .pane--skills{grid-template-columns:minmax(0, 1fr) var(--slot-w);grid-template-rows:auto 1fr}.tabs .pane--skills>.sec-lead{grid-area:1/1}.tabs .pane--skills>.skills__list{grid-area:2/1;margin-top:clamp(20px,2.6vw,44px)}.tabs .pane--skills>.pane__slot{grid-area:1/2/-1;align-self:center}.tabs .pane--work{grid-template-columns:minmax(0, 1fr) var(--slot-w);grid-template-rows:auto auto auto}.tabs .pane--work>.sec-lead{grid-area:1/1}.tabs .pane--work>.work__grid{grid-area:2/1;margin-top:clamp(20px,2.6vw,44px)}.tabs .pane--work>.work__hint{grid-area:3/1}.tabs .pane--work>.pane__slot{grid-area:1/2/-1;align-self:center}.tabs .pane--journey{grid-template-columns:minmax(0, 1fr) var(--slot-w);grid-template-rows:auto 1fr}.tabs .pane--journey>.pane__slot{grid-area:1/2/-1;align-self:center}.tabs .pane--journey>.sec-lead{grid-area:1/1}.tabs .pane--journey>.tl{grid-area:2/1}.tabs .pane--contact{grid-template-columns:minmax(0, 1fr) var(--slot-w);grid-template-rows:auto 1fr}.tabs .pane--contact>.sec-lead{grid-area:1/1/auto/-1}.tabs .pane--contact>.contact__grid{grid-area:2/1}.tabs .pane--contact>.pane__slot{grid-area:2/2;align-self:center}.tabs .pane--notes{grid-template-columns:minmax(0, 1fr) var(--slot-w);grid-template-rows:auto auto}.tabs .pane--notes>.sec-lead{grid-area:1/1/auto/-1}.tabs .pane--notes>.notes__compose{grid-area:2/1;min-width:0}.tabs .pane--notes>.pane__slot{grid-area:2/2;align-self:center}@media (height<=980px){.tabs__inner{--slot-w:clamp(228px, 37vh, 506px);padding:clamp(18px, 3.2vh, 40px) var(--pad-x)}.tabs .pane{gap:clamp(10px,2.2vh,26px)}.tabs .sec-head{margin-bottom:clamp(8px,1.8vh,20px);padding-bottom:clamp(6px,1vh,12px)}.tabs .sec-head__title{font-size:clamp(21px,2.2vw,30px)}.tabs .pane--about{--slot-w:clamp(240px, 48vh, 607px)}.tabs .pane--notes{--slot-w:clamp(189px, 26vh, 354px)}.tabs .tl__item{padding:clamp(6px,1.2vh,12px) 0}.tabs .tl__title{font-size:15px}.tabs .tl__text,.tabs .sec-lead,.tabs .about__body p{font-size:13.5px;line-height:1.75}.tabs .about__lead{font-size:clamp(16px,1.6vw,21px)}.tabs .skill{padding:clamp(10px,2.2vh,24px) 4px}.tabs .work__grid,.tabs .contact__grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (height<=820px){.tabs__inner{--slot-w:clamp(189px, 31vh, 405px);padding:clamp(12px, 2.2vh, 28px) var(--pad-x)}.tabs .pane--about{--slot-w:clamp(202px, 37vh, 481px)}.tabs .pane--notes{--slot-w:clamp(165px, 22vh, 304px)}.tabs .sec-head{margin-bottom:8px}.tabs .about__lead{margin-bottom:12px;font-size:16px}.tabs .about__facts dl{gap:12px 28px}}@media (width<=1279px){.tabs .pane{grid-template-rows:auto;grid-template-columns:minmax(0,1fr)}.tabs .pane>*{grid-area:auto!important}.tabs .pane__slot{display:none}.tabs__figure{opacity:.35}}@media (width<=860px){.tabs__inner{padding:clamp(72px, 12vh, 110px) var(--pad) clamp(96px, 15vh, 136px);grid-template-columns:1fr;align-content:center}.tabs__arrow{top:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));border:1px solid var(--line);background:var(--paper);opacity:.9;width:48px;height:56px;transform:none}.tabs__arrow--prev{left:14px}.tabs__arrow--next{right:14px}.tabs__arrow--prev:hover{transform:translate(-3px)}.tabs__arrow--next:hover{transform:translate(3px)}.tabs__arrow:active{transform:scale(.94)}.tabs__view{min-height:0}.tabs__figure{display:none}.tabs__panel{background:0 0}.tabs .work__grid,.tabs .contact__grid,.tabs .notes__form{grid-template-columns:1fr}.tabs__mark{bottom:-.12em}.tabs .tl__text,.tabs .sec-lead,.tabs .about__body p{font-size:14.5px}}.cur-dot,.cur-ring{pointer-events:none;will-change:transform;border-radius:50%;position:fixed;top:0;left:0}.cur-dot{z-index:10000;background:var(--ink);width:5px;height:5px;transition:opacity .25s var(--ease);margin:-2.5px 0 0 -2.5px}.cur-ring{z-index:9999;border:1px solid var(--ink);width:34px;height:34px;transition:width .32s var(--ease), height .32s var(--ease), margin .32s var(--ease), background-color .32s var(--ease), opacity .25s var(--ease);margin:-17px 0 0 -17px}.cur-ring.is-hover{background:#11111112;width:62px;height:62px;margin:-31px 0 0 -31px}.cur-dot.is-hover{opacity:0}.to-top{right:clamp(16px,2.6vw,34px);bottom:calc(clamp(16px, 2.6vw, 34px) + env(safe-area-inset-bottom,0px));z-index:800;border:1px solid var(--line);background:var(--paper);width:46px;height:46px;color:var(--ink);cursor:pointer;opacity:0;visibility:hidden;transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s var(--ease), background-color .3s var(--ease), color .3s var(--ease);border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;transform:translateY(8px)}.to-top.is-on{opacity:1;visibility:visible;transform:none}.to-top svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;stroke-linejoin:miter;width:18px;height:18px}.to-top:hover,.to-top:focus-visible{background:var(--ink);color:var(--paper)}.to-top:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@media (width<=720px){.to-top{width:42px;height:42px;bottom:calc(84px + env(safe-area-inset-bottom,0px))}}@media (hover:none){.to-top:hover{background:var(--paper);color:var(--ink)}}.mountain{transform:translate3d(var(--px,0px), var(--py,0px), 0);position:absolute;inset:0}.mountain--full{position:fixed;inset:0}.mountain__raster,.mountain__particles{width:100%;height:100%;position:absolute;inset:0}.hero{scroll-snap-align:start;min-height:calc(100vh - var(--header-h));background:var(--paper);flex-direction:column;display:flex;position:relative;overflow:hidden}@supports (height:100dvh){.hero{min-height:calc(100dvh - var(--header-h))}}.hero__inner{z-index:3;width:100%;max-width:1080px;padding:clamp(72px, 13vh, 150px) var(--pad) 0;text-align:center;will-change:transform;margin:0 auto;position:relative}.hero__title{letter-spacing:-.035em;font-size:clamp(34px,6.4vw,82px);font-weight:600;line-height:1.03}.hero__line{padding-bottom:.04em;display:block;overflow:hidden}.hero__line>span{animation:heroLine 1.05s var(--ease) forwards;display:block;transform:translateY(115%)}.hero__line:first-child>span{animation-delay:calc(var(--intro-ms,2s) + var(--rise-ms,.9s))}.hero__line:nth-child(2)>span{animation-delay:calc(var(--intro-ms,2s) + var(--rise-ms,.9s) + .17s)}@keyframes heroLine{to{transform:translateY(0)}}.hero__sub{max-width:640px;color:var(--ink-soft);opacity:0;animation:heroFade .9s var(--ease) calc(var(--intro-ms,2s) + var(--rise-ms,.9s) + .35s) forwards;margin:clamp(18px,2.4vw,30px) auto 0;font-size:clamp(14px,1.1vw,15px);line-height:1.95;transform:translateY(14px)}.hero__cta{opacity:0;animation:heroFade .9s var(--ease) calc(var(--intro-ms,2s) + var(--rise-ms,.9s) + .53s) forwards;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:clamp(24px,3vw,38px);display:flex;transform:translateY(14px)}@keyframes heroFade{to{opacity:1;transform:none}}.hero__stage{flex:1;min-height:clamp(170px,30vh,440px);margin-top:clamp(16px,3.4vw,52px);position:relative}.hero__mount{position:absolute;inset:0 -2.5%}.hero--intro .hero__mount{z-index:9995}.hero__grid{pointer-events:none;background-image:linear-gradient(90deg,#1111110f 1px,#0000 1px),linear-gradient(#1111110f 1px,#0000 1px);background-size:110px 110px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 22% 78%,#0000);mask-image:linear-gradient(#0000,#000 22% 78%,#0000)}.hero__status{z-index:3;padding:13px var(--pad);border-top:1px solid var(--line);background:var(--paper);color:var(--muted);justify-content:space-between;gap:16px;display:flex;position:relative}@media (width<=720px){.hero__inner{padding-top:96px}.hero__status{letter-spacing:.1em;font-size:10px}}@media (height<=560px){.hero__inner{padding-top:40px}.hero__title{font-size:clamp(22px,5.2vh,38px)}.hero__sub{display:none}.hero__cta{margin-top:14px}.hero__stage{min-height:84px;margin-top:10px}.hero__status{padding:8px var(--pad)}}@media (width<=360px){.hero__status{letter-spacing:.05em;gap:8px;font-size:9px}}.foot__grid{grid-template-columns:1.5fr 1fr 1fr 1fr;display:grid}.foot__brand{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;justify-content:space-between;gap:24px;padding:clamp(22px,2.6vw,34px);display:flex}.foot__brandTop{align-items:center;gap:10px;display:flex}.foot__mark{border:1px solid var(--line);width:26px;height:26px;font-family:var(--mono);place-items:center;font-size:11px;line-height:1;display:grid}.foot__name{letter-spacing:-.01em;font-size:14px;font-weight:600}.foot__name em{font-style:normal;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-left:8px;font-size:10px}.foot__tagline{max-width:30em;color:var(--ink-soft);font-size:13px;line-height:1.85}.foot__socials{flex-wrap:wrap;gap:8px;display:flex}.foot__social{border:1px solid var(--line);width:34px;height:34px;font-family:var(--mono);letter-spacing:.06em;transition:background-color .35s var(--ease), color .35s var(--ease);place-items:center;font-size:10px;display:grid}.foot__social:hover{background:var(--ink);color:var(--paper)}.foot__col{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.foot__colHead{border-bottom:1px solid var(--line);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;padding:14px clamp(14px,1.6vw,22px);overflow:hidden}.foot__link{border-bottom:1px solid var(--line-soft);color:var(--ink-soft);transition:background-color .35s var(--ease), color .35s var(--ease);padding:14px clamp(14px,1.6vw,22px);font-size:13.5px;display:block}.foot__link:hover{background:var(--ink);color:var(--paper)}.foot__link--plain{color:var(--muted);cursor:default}.foot__link--plain:hover{color:var(--muted);background:0 0}.foot__bottom{padding:14px var(--pad);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.foot__beian{padding:0 var(--pad) calc(20px + env(safe-area-inset-bottom,0px));color:var(--muted);letter-spacing:.02em;flex-flow:wrap;align-items:center;gap:6px 16px;font-size:12px;display:flex}.foot__beianLink{color:inherit;transition:color .3s var(--ease);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.foot__beianLink:hover{color:var(--ink)}.foot__beianIcon{width:16px;height:18px;display:block}@media (width<=900px){.foot__grid{grid-template-columns:1fr 1fr}.foot__brand{border-right:0;grid-column:1/-1}}@media (width<=560px){.foot__grid{grid-template-columns:1fr}.foot__col{border-right:0}}@media (hover:none){.foot__link:hover{color:var(--ink-soft);background:0 0}.foot__social:hover{color:inherit;background:0 0}}
