.personal-intro{display:flex;align-items:center;gap:12px}.hello-avatar{display:block;width:51px;height:51px;border-radius:50%;background:linear-gradient(140deg,#ffbb8718,#8faeff1c);border:1px solid #b69dcc30;flex:0 0 51px;transition:transform .35s,border-color .35s}.hello-avatar img{width:100%;height:100%;object-fit:contain}.hello-avatar:hover{transform:rotate(-8deg) translateY(-3px);border-color:var(--pink)}
.life-section{display:grid;grid-template-columns:1.1fr 1fr;gap:75px;align-items:center;margin-top:70px;padding:40px 48px;border:1px solid #39323e;border-radius:22px;background:radial-gradient(ellipse at 0% 100%,#f194a108,transparent 62%),radial-gradient(ellipse at 100% 0%,#7399ff0b,transparent 60%),#17161b;scroll-margin-top:40px}.life-heading{display:flex;align-items:center;gap:15px;margin-bottom:14px}.life-avatar{width:84px;height:84px;object-fit:contain;margin-left:-11px}.life-heading .eyebrow{font-size:12px;letter-spacing:1.2px;color:#c8aeca}.life-copy h3{font-size:clamp(27px,2.7vw,36px);font-weight:400;line-height:1.5;letter-spacing:-1px;margin:0 0 18px}.life-description{font-size:16px;color:#b0a9b8;line-height:1.95;margin:0;max-width:395px}.life-topics{display:flex;flex-wrap:wrap;gap:8px;margin:21px 0}.life-topics span{font-size:13px;border:1px solid #48404f;border-radius:7px;padding:6px 10px;color:#d2c6da}.personal-strengths{margin-top:25px;border-top:1px solid #39323e}.personal-strengths>div{display:grid;grid-template-columns:83px 1fr;gap:15px;padding-top:17px}.personal-strengths>div>span{font-size:13px;color:#deafc4;padding-top:2px}.personal-strengths p{font-size:14px;line-height:1.9;color:#b2aaba;margin:0}.personal-strengths small{font-size:12px;color:#8f869b;white-space:nowrap}.life-source{display:inline-block;margin-top:22px;padding-bottom:5px;border-bottom:1px solid #685773;font-size:13px;color:#c4b0ce}
.life-album{width:100%;max-width:354px;justify-self:center;min-width:0;padding-top:5px}.photo-stack{position:relative;isolation:isolate;perspective:1400px;touch-action:pan-y}.photo-sheet{border:1px solid #55485d;border-radius:13px;background:#242029;box-shadow:0 14px 35px #0003}.sheet-back,.sheet-middle{position:absolute;inset:0;pointer-events:none}.sheet-back{transform:translate(7px,-3px) rotate(6deg);background:#262633;border-color:#58607355;z-index:-2}.sheet-middle{transform:translate(-6px,1px) rotate(-4deg);background:#30282c;border-color:#85616555;z-index:-1}.sheet-front{padding:10px;transform-origin:8% 50%;backface-visibility:hidden}.life-photo{position:relative;display:block;padding:0;border-radius:7px;overflow:hidden;width:100%;aspect-ratio:1;cursor:pointer;background:#121216;touch-action:pan-y}.life-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transition:filter .35s,transform .55s}.life-photo:hover img{transform:scale(1.025);filter:brightness(1.06)}.photo-corner{position:absolute;right:11px;bottom:11px;padding:7px 10px;border:1px solid #ffffff33;border-radius:20px;background:#15151caa;backdrop-filter:blur(10px);font-size:12px;color:#f5eef8;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s}.life-photo:hover .photo-corner,.life-photo:focus-visible .photo-corner{opacity:1;transform:none}.photo-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 5px 9px}.photo-caption span{font-size:12px;color:#c1a2b7;letter-spacing:.5px}.photo-caption h4{font-weight:400;font-size:15px;line-height:1.6;margin:6px 0 0;color:#eae2ee}.photo-caption #life-count{font-size:12px;white-space:nowrap;color:#a59bb0}.album-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:26px}.album-controls>button{background:#24212a;border:1px solid #4e4559;border-radius:30px;font-size:13px;padding:10px 17px;min-height:42px}.album-dots{display:flex;gap:0;align-items:center}.album-dots button{display:grid;place-items:center;background:none;padding:0;min-width:25px;height:40px}.album-dots button:before{content:"";width:5px;height:5px;background:#706576;border-radius:9px;transition:width .25s,background .25s}.album-dots button[aria-current=true]:before{width:19px;background:var(--spectrum)}.album-hint{font-size:12px;text-align:center;color:#958b9f;margin:13px 0 0}
/* Motion supports navigation; content remains readable without animation. */
.motion-reveal{transition:opacity .65s ease,translate .65s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}.motion-reveal:not(.is-visible){opacity:0;translate:0 22px}.motion-reveal.is-visible{opacity:1;translate:0 0}
.project-card .project-cta b,.hero-preview b,.index-links b,.explore .plus{display:inline-block;transition:transform .35s}.project-card:hover .project-cta b,.hero-preview:hover b,.index-links button:hover b,.explore:hover .plus{transform:rotate(90deg)}
.resume-link,.contact-actions a,.contact-actions button,.detail-links a,.reader-controls button,.lightbox-actions button,.lightbox-bottom button,.album-controls>button{transition:transform .2s,box-shadow .3s,background .3s,border-color .3s,filter .3s}.resume-link:hover,.contact-actions a:hover,.contact-actions button:hover,.detail-links a:hover,.album-controls>button:hover{transform:translateY(-2px);box-shadow:0 5px 22px #e997c117}.contact-actions a:hover,.album-controls>button:hover{border-color:#b28dab}.index-links button:hover{background:linear-gradient(90deg,#da90b10a,transparent);padding-left:5px}.index-links button{transition:color .2s,padding .25s,background .3s}
button:active:not(:disabled),.resume-link:active,.contact-actions a:active,.detail-links a:active{scale:.975}.project-card:active{scale:.991}button{transition-property:background,color,border-color,box-shadow,transform,scale;transition-duration:.2s}button:disabled{scale:1}.reader-view{perspective:1500px;position:relative}.reader-view[aria-busy=true]:after{content:"正在翻页…";position:absolute;inset:auto 15px 15px auto;background:#17151deb;border:1px solid #65536e;border-radius:20px;padding:8px 13px;color:#e7d9ec;font-size:12px;pointer-events:none}.reader-view img{transform-origin:5% 50%;backface-visibility:hidden}.practice-card{overflow:clip}.practice-card.is-expanding{overflow:hidden}.practice-card.is-expanding .practice-detail{pointer-events:none}.practice-detail figure img{aspect-ratio:2000/714;object-fit:contain}#project-dialog,#image-dialog{transform-origin:50% 70%}
@media(max-width:1100px){.life-section{gap:40px;padding:35px 30px}.life-copy h3{font-size:30px}.life-heading{gap:7px}.life-heading .eyebrow{font-size:12px;letter-spacing:.4px}.life-avatar{width:78px;height:78px}.life-album{max-width:320px}.personal-strengths>div{grid-template-columns:1fr;gap:3px}}
@media(max-width:760px){.personal-intro{gap:10px}.hello-avatar{width:44px;height:44px;flex-basis:44px}.life-section{grid-template-columns:1fr;gap:36px;margin-top:42px;padding:24px 22px 25px;border-radius:16px}.life-heading{margin-bottom:13px}.life-avatar{width:75px;height:75px}.life-heading .eyebrow{font-size:12px}.life-copy h3{font-size:28px;line-height:1.55;margin-bottom:17px}.life-description{font-size:16px}.life-topics{gap:7px;margin:20px 0}.life-topics span{font-size:12px;padding:7px 9px}.life-album{max-width:320px;width:calc(100% - 8px)}.photo-caption{padding:14px 3px 6px;gap:4px}.photo-caption h4{font-size:14px}.photo-caption span{font-size:12px}.photo-caption #life-count{font-size:12px}.album-controls{gap:7px;margin-top:23px}.album-controls>button{font-size:12px;padding:10px 13px}.album-dots button{min-width:23px}.photo-corner{opacity:1;transform:none;font-size:12px}.sheet-back{transform:translate(3px,-2px) rotate(4deg)}.sheet-middle{transform:translate(-3px,1px) rotate(-3deg)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.motion-reveal{opacity:1!important;translate:none!important;transition:none!important}*,*:before,*:after{animation:none!important;transition:none!important}.hello-avatar:hover,.life-photo:hover img{transform:none}.project-card:hover,.resume-link:hover,.contact-actions a:hover,.contact-actions button:hover,.detail-links a:hover,.album-controls>button:hover{transform:none}button:active{scale:1!important}}

/* Quiet typographic index with a separate reading drawer. */
.practice-list{border-top:1px solid #49404e}.practice-row{display:grid;grid-template-columns:45px 1.1fr 1fr 85px;gap:24px;align-items:center;width:100%;padding:30px 20px 30px 5px;text-align:left;background:transparent;border-bottom:1px solid #39313f;position:relative;isolation:isolate;color:var(--ink);min-width:0}.practice-row:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,#ffba8208,#ee9ecb0c,#8faeff08);opacity:0;transition:opacity .35s}.practice-row:hover:before,.practice-row:focus-visible:before{opacity:1}.practice-row:hover .practice-name{transform:translateX(6px)}.practice-name{display:block;transition:transform .3s;min-width:0}.practice-number{font-size:14px;align-self:start;padding-top:4px;color:var(--practice-accent);font-variant-numeric:tabular-nums}.practice-domain{font-size:13px;color:var(--practice-accent)}.practice-row-title{display:block;font-size:24px;font-weight:400;line-height:1.55;margin:8px 0 7px;letter-spacing:-.5px}.practice-period{font-size:12px;color:#8f8799}.practice-row-description{font-size:15px;line-height:1.9;color:#aaa4b3;max-width:310px}.practice-open{font-size:12px;color:#bbb0c5;display:flex;align-items:center;gap:14px;justify-content:flex-end;white-space:nowrap}.practice-open b{font-size:25px;font-weight:300;color:var(--practice-accent);transition:transform .35s}.practice-row:hover .practice-open b{transform:rotate(90deg)}
#practice-dialog{width:min(850px,92vw);height:100dvh;max-height:none;max-width:none;margin:0 0 0 auto;border:0;border-left:1px solid #4d4057;background:#15141a;box-shadow:-30px 0 100px #0005;overscroll-behavior:contain;transform-origin:100% 50%}.practice-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 38px;border-bottom:1px solid #39303f;background:#18151def;backdrop-filter:blur(20px)}.practice-toolbar>span{font-size:13px;color:var(--practice-accent)}.practice-toolbar button{background:transparent;display:flex;align-items:center;gap:20px;font-size:14px;padding:4px 0;min-height:36px}.practice-toolbar button span{font-size:26px;font-weight:300}.practice-toolbar button:hover{color:var(--practice-accent)}.practice-drawer-body{padding:46px 38px 38px}.practice-drawer-body>.eyebrow{color:#9a8daa;font-size:12px}.practice-drawer-body h2{font-size:34px;line-height:1.55;font-weight:400;margin:15px 0 24px;letter-spacing:-1px}.practice-drawer-body .practice-detail{padding:0}.practice-drawer-body .practice-detail>p{font-size:16px;line-height:1.95;color:#b6afbf;padding:0 0 28px}.practice-drawer-body figure{margin-bottom:28px}.practice-drawer-body figure img{width:100%;height:auto;aspect-ratio:auto;transition:filter .3s}.practice-drawer-body figure a:hover img{filter:brightness(1.08)}.practice-drawer-body .practice-source{margin-top:10px}.practice-drawer-footer{margin-top:36px;padding-top:23px;border-top:1px solid #3e3348;display:flex;align-items:center;justify-content:space-between;gap:25px}.practice-drawer-footer>span{font-size:12px;color:#9d91aa;white-space:nowrap}.practice-drawer-footer button{background:transparent;color:var(--practice-accent);font-size:15px;line-height:1.8;text-align:right}
@media(max-width:1100px){.practice-row{grid-template-columns:30px 1.25fr 1fr 28px;gap:20px}.practice-open>span{display:none}.practice-row-title{font-size:22px}}
@media(max-width:760px){.practice-row{grid-template-columns:25px minmax(0,1fr) 25px;gap:10px;padding:25px 3px}.practice-number{font-size:12px}.practice-name{grid-column:2;grid-row:1}.practice-row-description{grid-column:2;grid-row:2;font-size:15px;max-width:none}.practice-open{grid-column:3;grid-row:1/3;align-self:center}.practice-domain{font-size:12px}.practice-row-title{font-size:22px;margin-top:7px}.practice-period{font-size:12px}.practice-row:hover .practice-name{transform:none}#practice-dialog{width:100%;border:0}.practice-toolbar{padding:14px 20px;gap:14px}.practice-toolbar>span{font-size:12px}.practice-toolbar button{font-size:13px;gap:12px;white-space:nowrap}.practice-drawer-body{padding:32px 22px}.practice-drawer-body h2{font-size:28px;letter-spacing:-.5px}.practice-drawer-footer{align-items:start}.practice-drawer-footer button{font-size:14px}.practice-drawer-body .practice-detail figcaption span{display:block;margin:4px 0 0}.practice-drawer-body .practice-detail>p{font-size:16px}}
