:root{--paper:#ebe8e0;--ink:#151515;--line:#aaa69c;--pad:clamp(20px,4vw,64px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"PingFang SC","Noto Sans CJK SC",sans-serif}.site-head{position:fixed;z-index:20;top:0;left:0;width:100%;display:flex;justify-content:space-between;padding:22px var(--pad);font-size:12px;letter-spacing:.08em;mix-blend-mode:difference;color:#fff}.brand,.site-head a{color:inherit;text-decoration:none}.brand span{margin-left:14px;opacity:.65}.site-head nav{display:flex;gap:28px}.hero{height:100svh;padding:18vh var(--pad) 5vh;display:flex;flex-direction:column;justify-content:space-between}.eyebrow,.label,.en,.num{font-size:11px;letter-spacing:.14em}.hero h1{font-family:Georgia,"Songti SC",serif;font-size:clamp(48px,8.5vw,138px);font-weight:400;line-height:1.04;letter-spacing:-.05em;margin:0}.hero-foot{display:flex;justify-content:space-between;align-items:end;font-size:11px;line-height:1.6}.hero-foot a{color:inherit}.works{border-top:1px solid var(--line)}.project{position:relative;padding:clamp(100px,14vw,220px) var(--pad);min-height:100vh;border-bottom:1px solid var(--line)}.num{position:absolute;top:34px;left:var(--pad)}.visual{border:0;padding:0;background:none;color:inherit;cursor:pointer;position:relative;display:block}.visual img{width:100%;height:auto;display:block}.visual span{position:absolute;right:16px;bottom:14px;padding:10px 12px;background:var(--paper);font-size:10px;letter-spacing:.12em}.wide{width:72%}.meta{display:grid;grid-template-columns:1fr 1fr;gap:30px;width:45%;margin:34px 0 0 55%}.meta h2,.copy h2,.title-row h2{font-family:Georgia,"Songti SC",serif;font-size:clamp(28px,4vw,60px);font-weight:400;margin:0 0 8px}.meta p,.copy p,.title-row p{font-size:11px;line-height:1.8;margin:0}.split{display:grid;grid-template-columns:36% 54%;justify-content:space-between;align-items:center}.split.reverse{grid-template-columns:58% 32%}.copy .label{margin-bottom:48px}.copy .en{margin:0 0 38px}.text-play{border:0;border-bottom:1px solid;background:none;padding:8px 0;font-size:10px;letter-spacing:.12em;cursor:pointer;margin-top:32px}.portrait-stage{display:grid;grid-template-columns:8% 38% 1fr;gap:5vw;align-items:center}.portrait{max-width:470px}.sideword{font-size:10px;letter-spacing:.18em;writing-mode:vertical-rl}.portrait-stage .copy{max-width:340px}.title-row{display:flex;justify-content:space-between;align-items:end;margin-bottom:44px}.title-row>p{text-align:right}.hero-img{width:76%;margin-left:12%}.diptych{display:grid;grid-template-columns:2fr 1fr;gap:3vw;width:65%;margin:5vw 0 0 4vw;align-items:start}.diptych img{width:100%}.panorama{width:100%;margin-top:10vh}.sanxing{display:grid;grid-template-columns:28% 56%;gap:8%;align-items:start}.feature{margin-top:8vh}.artifact{width:45%;margin:-7vw 0 0 55%;grid-column:2}.about{padding:18vh var(--pad);display:grid;grid-template-columns:35% 55%;gap:10%;min-height:90vh}.about h2{font-family:Georgia,"Songti SC",serif;font-size:clamp(44px,7vw,100px);font-weight:400;line-height:1;margin:0 0 60px}.about h2 span{font-size:.3em;letter-spacing:.06em}.about div>p{font-family:Georgia,"Songti SC",serif;font-size:clamp(20px,2.2vw,34px);line-height:1.7;max-width:780px}.about ul{list-style:none;padding:40px 0 0;margin:0;border-top:1px solid var(--line);font-size:12px;line-height:1.7}.about li{padding:12px 0;border-bottom:1px solid var(--line)}footer{padding:24px var(--pad);display:flex;justify-content:space-between;border-top:1px solid var(--line);font-size:10px;letter-spacing:.1em}footer a{color:inherit}dialog{width:100vw;height:100vh;max-width:none;max-height:none;border:0;background:#090909;padding:5vh 5vw;color:#fff}dialog::backdrop{background:#000}.close{display:block;margin:0 0 4vh auto;border:0;background:none;color:#fff;font-size:11px;letter-spacing:.12em;cursor:pointer}dialog video{width:100%;height:78vh;object-fit:contain}dialog p{text-align:center;font-size:11px;letter-spacing:.1em}
@media(max-width:720px){.site-head{padding-top:18px}.brand span{display:none}.hero{padding-top:22vh}.hero h1{font-size:14vw}.project{min-height:auto;padding-top:120px;padding-bottom:120px}.wide{width:100%}.meta{width:100%;margin:24px 0 0;grid-template-columns:1fr 1fr}.split,.split.reverse{grid-template-columns:1fr;gap:50px}.p02 .copy{order:2}.portrait-stage{grid-template-columns:1fr}.sideword{writing-mode:initial}.portrait{width:78%;margin:auto}.title-row{display:block}.title-row>p{text-align:left;margin-top:24px}.hero-img,.diptych{width:100%;margin-left:0}.diptych{grid-template-columns:1.7fr 1fr}.sanxing{grid-template-columns:1fr}.feature{margin-top:50px}.artifact{grid-column:1;width:55%;margin:-30px 0 0 auto}.about{grid-template-columns:1fr;padding-top:120px}.about .eyebrow{margin-bottom:50px}footer{gap:20px;flex-wrap:wrap}dialog{padding:3vh 10px}dialog video{height:80vh}}
@media(prefers-reduced-motion:no-preference){.project img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.visual{overflow:hidden}.visual:hover img{transform:scale(1.015)}.project{animation:reveal linear both;animation-timeline:view();animation-range:entry 5% cover 25%}@keyframes reveal{from{opacity:.3;transform:translateY(30px)}to{opacity:1;transform:none}}}

.contact{min-height:100vh;padding:16vh var(--pad) 10vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,32vw);gap:8vw;align-items:end;border-top:1px solid var(--line)}
.contact-intro h2{font-family:Georgia,"Songti SC",serif;font-size:clamp(48px,7vw,112px);font-weight:400;line-height:1.08;letter-spacing:-.045em;margin:12vh 0 8vh}
.contact-en{font-size:10px;line-height:1.6;letter-spacing:.16em}
.contact-card{width:100%;max-width:470px;justify-self:end;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:14px 0 16px}
.card-index,.scan-line{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em}
.contact-card img{display:block;width:82%;height:auto;margin:5vh auto;background:#fff}
.scan-line{padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:720px){.contact{min-height:auto;padding-top:120px;padding-bottom:100px;grid-template-columns:1fr;gap:80px;align-items:start}.contact-intro h2{font-size:13vw;margin:70px 0 55px}.contact-card{width:88%;justify-self:end}.contact-card img{width:86%;margin:36px auto}.scan-line{gap:20px}}

.info-trigger{position:absolute;right:var(--pad);bottom:34px;border:0;border-bottom:1px solid var(--ink);padding:8px 0;background:none;color:var(--ink);font-size:10px;letter-spacing:.12em;cursor:pointer}
#info-panel{margin:0 0 0 auto;width:min(760px,70vw);height:100vh;max-width:none;max-height:none;padding:0;background:var(--paper);color:var(--ink);border:0;border-left:1px solid var(--line)}
#info-panel::backdrop{background:rgba(10,10,10,.55);backdrop-filter:blur(3px)}
.info-close{position:sticky;z-index:2;top:0;display:block;width:100%;padding:22px 34px;border:0;border-bottom:1px solid var(--line);background:var(--paper);color:var(--ink);text-align:right;font-size:10px;letter-spacing:.12em;cursor:pointer}
.info-content{padding:10vh clamp(28px,7vw,100px) 12vh}
#info-panel .info-index,#info-panel .info-label{margin:0;font-family:Arial,"PingFang SC",sans-serif;font-size:10px;line-height:1.5;letter-spacing:.14em;text-align:left}
#info-panel h2{margin:7vh 0 8vh;font-family:Georgia,"Songti SC",serif;font-size:clamp(48px,7vw,92px);font-weight:400;line-height:1}
#info-panel .info-body{margin:0;font-family:Georgia,"Songti SC",serif;font-size:clamp(17px,1.7vw,24px);line-height:2;text-align:left}
.info-awards{margin-top:10vh;padding-top:18px;border-top:1px solid var(--ink)}
.info-awards[hidden]{display:none}.info-awards ul{list-style:none;margin:38px 0 0;padding:0}.info-awards li{padding:15px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.7}
.info-nav{display:flex;justify-content:space-between;gap:24px;margin-top:10vh;padding-top:18px;border-top:1px solid var(--ink)}.info-nav button{border:0;background:none;color:inherit;padding:10px 0;font-size:10px;letter-spacing:.12em;cursor:pointer}.info-nav button:disabled{opacity:.28;cursor:default}
@media(max-width:720px){.info-trigger{bottom:24px}#info-panel{width:100vw;border-left:0}.info-close{padding:19px 20px}.info-content{padding:70px 24px 100px}#info-panel h2{font-size:14vw;margin:55px 0}#info-panel .info-body{font-size:18px;line-height:1.9}.info-awards{margin-top:70px}}

#player.has-playlist{overflow-y:auto;padding-top:3vh;padding-bottom:4vh}#player.has-playlist video{height:64vh}.player-caption{margin:10px 0 20px}.episode-panel{width:min(1120px,100%);margin:0 auto;border-top:1px solid #555}.episode-panel[hidden]{display:none}.episode-head{display:flex;justify-content:space-between;padding:14px 0;color:#aaa;font-size:9px;letter-spacing:.14em}.episode-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #333}.episode-button{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:center;padding:17px 14px;border:0;border-right:1px solid #333;border-bottom:1px solid #333;background:transparent;color:#888;text-align:left;cursor:pointer}.episode-button span{font-size:9px;letter-spacing:.12em}.episode-button strong{font-size:11px;font-weight:400;letter-spacing:.08em}.episode-button:hover,.episode-button.active{background:#f0ede5;color:#111}.episode-button.active span::before{content:'▶ ';font-size:7px}
@media(max-width:720px){#player.has-playlist{padding:20px 10px 35px}#player.has-playlist video{height:52vh}.episode-head{padding:13px 4px}.episode-list{grid-template-columns:1fr}.episode-button{border-right:0;padding:15px 10px}.player-caption{margin-bottom:16px}}

.site-head{min-height:64px;align-items:center;transition:background-color .25s ease,color .25s ease,border-color .25s ease,backdrop-filter .25s ease;border-bottom:1px solid transparent}
.site-head.header-solid{mix-blend-mode:normal;color:var(--ink);background:rgba(235,232,224,.97);border-bottom-color:rgba(21,21,21,.18);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.project .num{top:86px}
@media(max-width:720px){.site-head{min-height:58px}.project .num{top:76px}}

.video-shell{position:relative;width:100%;height:78vh}.video-shell video{display:block}.video-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#090909;color:#aaa;font-size:10px;letter-spacing:.15em;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.video-loading.visible{opacity:1;visibility:visible}.video-loading::after{content:'';width:18px;height:18px;margin-left:14px;border:1px solid #555;border-top-color:#fff;border-radius:50%;animation:loading-spin .8s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}
#player.has-playlist .video-shell{height:64vh}
@media(max-width:720px){.video-shell{height:80vh}#player.has-playlist .video-shell{height:52vh}}
@media(max-width:720px){.hero h1{font-size:12vw}}
@media(max-width:720px){#player,#info-panel{width:100%;max-width:100%}}

/* The production VOD player keeps the existing modal dimensions and visual language. */
.vod-player,.vod-player .prism-player{width:100%;height:78vh}.vod-player>video{width:100%;height:78vh;object-fit:contain;background:#090909}
#player.has-playlist .vod-player,#player.has-playlist .vod-player .prism-player,#player.has-playlist .vod-player>video{height:64vh}
@media(max-width:720px){.vod-player,.vod-player .prism-player,.vod-player>video{height:80vh}#player.has-playlist .vod-player,#player.has-playlist .vod-player .prism-player,#player.has-playlist .vod-player>video{height:52vh}}
.prism-player .prism-setting-btn,.prism-player .prism-setting-selector,.prism-player .prism-cc-btn,.prism-player .prism-cc-inline,.prism-player .prism-audio-inline{display:none!important}

/* Required ICP filing link, kept visually subordinate to the portfolio. */
footer{align-items:flex-start}.footer-legal{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.footer-legal a{text-underline-offset:3px}
@media(max-width:720px){.footer-legal{order:3;width:100%;align-items:flex-start;text-align:left}}
