:root{font-family:Arial,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;color:#222;background:#fff;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{background:none;border:0}a:focus-visible,button:focus-visible{outline:2px solid #294cff;outline-offset:6px}header{height:116px;padding:36px 3.5vw;display:flex;align-items:center;gap:64px;position:relative;z-index:10;background:white}.wordmark{font-size:29px;font-weight:700;letter-spacing:-1.8px}.wordmark span{font-size:12px;vertical-align:top;letter-spacing:0;margin-left:3px}nav{display:flex;gap:30px;align-items:center;font-size:14px}nav>a,nav>button{padding:8px 0;position:relative}nav>a.active:after{content:'';position:absolute;bottom:0;left:0;width:16px;height:2px;background:#222}.count{font-size:10px;vertical-align:super;margin-left:4px}.plus{margin-left:8px}.edition{margin-left:auto;font-size:12px;letter-spacing:.07em;color:#777}.muted{color:#aaa;margin:0 9px}.home{height:calc(100svh - 180px);min-height:460px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.gallery{height:320px;width:100%;position:relative;perspective:1400px;transform:translateY(-26px)}.cover-card{position:absolute;left:50%;top:50%;width:clamp(190px,20vw,290px);aspect-ratio:1/1;display:block;padding:0;transform-style:preserve-3d;will-change:transform}.cover-card img{display:block;width:100%;height:100%;object-fit:cover;box-shadow:0 28px 22px -16px #00000038,0 48px 42px -28px #00000025}.caption{position:absolute;bottom:-43px;left:0;right:0;display:flex;justify-content:space-between;gap:10px;font-size:14px;opacity:0;transition:opacity .25s}.caption small{font-size:12px;color:#888}.cover-card:hover .caption,.cover-card:focus-visible .caption{opacity:1}.gallery-meta{position:absolute;bottom:40px;left:3.5vw;right:3.5vw;display:flex;justify-content:space-between;font-size:12px;color:#777}.gallery-meta b{font-weight:400;color:#222}.page{padding:55px 7vw 85px;min-height:calc(100svh - 180px);animation:appear .5s ease}.page-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:54px}.page-heading h1{font-size:clamp(42px,5vw,72px);font-weight:400;letter-spacing:-.06em;margin:0}.page-heading p{font-size:12px;color:#888}.works-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:42px 24px}.work img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;transition:transform .5s}.work .frame{overflow:hidden;position:relative;aspect-ratio:1/1}
.work .frame>img,.work .frame>.cover-placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.work:hover img{transform:scale(1.025)}.work-info{display:flex;justify-content:space-between;margin-top:17px;font-size:14px}.work-info span:last-child{color:#888;font-size:12px}.about{max-width:1200px;margin:auto;display:grid;grid-template-columns:1fr 1.45fr;gap:60px;padding-top:65px}.about h1{font-size:clamp(44px,5vw,76px);letter-spacing:-.05em;font-weight:400;margin:0 0 18px}.eyebrow{font-size:12px;letter-spacing:.1em;color:#888}.intro{font-size:22px;line-height:1.9;margin:0 0 28px}.hobbies{display:flex;gap:25px;color:#777;font-size:14px;padding-bottom:70px}.resume-section{border-top:1px solid #ddd;padding:25px 0 30px}.resume-section h2{font-size:14px;font-weight:400;margin:0 0 28px}.resume-row{display:grid;grid-template-columns:95px 1fr;gap:20px;font-size:16px;line-height:1.7;margin-bottom:18px}.resume-row time{color:#888;font-size:12px}.resume-row small{display:block;color:#888;font-size:14px}.quiet{font-size:14px;color:#999;line-height:1.8}.detail-top{display:flex;justify-content:space-between;align-items:center;font-size:14px}.detail h1{font-size:clamp(40px,6vw,85px);font-weight:400;letter-spacing:-.04em;margin:64px 0 30px}.detail-summary{display:grid;grid-template-columns:1fr 1fr;margin-bottom:55px;gap:30px}.detail-summary p{font-size:16px;line-height:1.9;margin:0;max-width:530px}.detail-summary .eyebrow{font-size:12px}.detail-image{width:100%;height:auto;display:block;margin-bottom:25px}.next-project{display:block;margin-top:70px;border-top:1px solid #ddd;padding:28px 0;font-size:22px}.next-project small{display:block;color:#888;font-size:12px;margin-bottom:12px}dialog{width:min(540px,calc(100% - 36px));border:0;padding:52px;box-shadow:0 20px 100px #0002;opacity:0;transform:translateY(10px);transition:opacity .25s,transform .25s}dialog.show{opacity:1;transform:translateY(0)}dialog::backdrop{background:#ffffffbd;backdrop-filter:blur(9px)}dialog h2{font-size:48px;font-weight:400;letter-spacing:-.05em;margin:38px 0}.close{position:absolute;right:25px;top:24px;font-size:12px}.contact-row{border-top:1px solid #ddd;padding:20px 0;display:flex;justify-content:space-between;align-items:center;font-size:14px;gap:15px}.contact-row button{text-align:right;padding:0}.contact-row .pending{color:#999;font-size:12px}.contact-note{font-size:14px;color:#888;margin-top:36px}#feedback{font-size:12px;min-height:16px}.empty-link{color:#888}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1600px){.gallery{height:360px}}@media(max-width:700px){header{height:100px;padding:22px;gap:28px;align-items:flex-start;flex-wrap:wrap}.wordmark{font-size:25px}nav{margin-left:auto;gap:18px;font-size:13px}.edition{display:none}.home{height:calc(100svh - 164px);min-height:410px}.cover-card{width:48vw;max-width:250px}.gallery-meta{left:22px;right:22px;bottom:35px}.gallery{height:270px;transform:translateY(-18px)}.caption{font-size:12px;bottom:-50px;display:block}.caption small{display:block;margin-top:7px}.page{padding:45px 22px 65px}.page-heading{margin-bottom:32px}.works-grid{grid-template-columns:1fr;gap:38px}.about{grid-template-columns:1fr;gap:40px;padding-top:25px}.intro{font-size:19px}.hobbies{padding-bottom:35px}.detail-summary{grid-template-columns:1fr}.detail h1{margin-top:42px}.detail-summary{margin-bottom:32px}dialog{padding:42px 28px}.resume-row{grid-template-columns:75px 1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:520px){header{gap:8px;height:112px}.wordmark{font-size:25px}nav{width:100%;margin:0;justify-content:space-between;gap:12px}.home{height:calc(100svh - 176px)}}

@media(min-width:701px) and (max-width:1000px){.works-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.work-info{gap:12px;align-items:baseline}.work-info span:last-child{flex-shrink:0}

/* Keep the carousel at its existing screen position after removing the footer. */
.home{height:calc(100svh - 116px)}
.gallery{transform:translateY(-58px)}
.gallery-meta{bottom:26px}
.page{min-height:calc(100svh - 116px)}
.works-grid{max-width:1100px;margin-inline:auto;gap:108px 88px}
@media(max-width:1000px) and (min-width:701px){.works-grid{max-width:650px;gap:88px 72px}}
@media(max-width:700px){.home{height:calc(100svh - 100px)}.gallery{transform:translateY(-50px)}.page{min-height:calc(100svh - 100px)}.works-grid{width:86%;max-width:420px;gap:76px}.gallery-meta{bottom:24px}}
@media(max-width:520px){.home{height:calc(100svh - 112px)}.page{min-height:calc(100svh - 112px)}}

.detail-video{background:#000;object-fit:contain}

.cover-placeholder{display:block;width:100%;aspect-ratio:1/1;background:#d9d9d9}
.cover-card .cover-placeholder{height:100%;box-shadow:0 28px 22px -16px #00000038,0 48px 42px -28px #00000025}

/* Shared project introduction: compact title and left-aligned text above images. */
.detail h1{font-size:2rem;line-height:1.35;margin:0 0 24px;letter-spacing:0;text-align:left}
.detail-summary{display:flex;flex-direction:column;gap:14px;margin-bottom:48px;text-align:left}
.detail-summary p{font-size:1rem;line-height:1.9;max-width:760px;white-space:pre-line}
.detail-summary .eyebrow{font-size:.875rem}
@media(max-width:700px){.detail h1{font-size:1.75rem}.detail-summary{margin-bottom:32px}}

/* Chinese and English share one measure; each paragraph ends flush left. */
.detail-summary p:not(.eyebrow){width:100%;text-align:justify;text-align-last:left;text-justify:auto}

.video-player{position:relative;margin-bottom:25px;background:#000}
.video-player video{display:block;width:100%;height:auto}
.video-load{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;color:#222;padding:14px 24px;border-radius:4px;font-size:16px;box-shadow:0 2px 16px #0003}
.video-load[hidden]{display:none}.video-load:disabled{cursor:wait}
.video-status:not(:empty){position:absolute;left:0;right:0;bottom:52px;text-align:center;color:white;background:#0009;padding:10px 16px;font-size:14px}

.detail-copy{width:100%;max-width:760px}.detail-copy p+p{margin-top:1.25em}

/* Works follows the manual project order; ten square slots across a wider grid. */
.works-page{padding-inline:3.5vw}
.works-grid{grid-template-columns:repeat(5,minmax(0,1fr));width:100%;max-width:1440px;gap:clamp(24px,4vw,64px)}
@media(min-width:701px) and (max-width:1000px){.works-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none;gap:32px}}
@media(max-width:700px){.works-page{padding-inline:22px}.works-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:none;gap:24px}}
