:root{--ink:#111314;--muted:#697074;--paper:#f4f2ee;--line:#d9d7d2;--lime:#d7ed54;--accent:#8ca3ff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Manrope,"Noto Sans SC",sans-serif}button{font:inherit}.site-header{height:82px;display:flex;align-items:center;padding:0 4.2vw;position:absolute;inset:0 0 auto;z-index:5;color:#fff;border-bottom:1px solid #ffffff26}.logo{font-size:25px;line-height:1;font-weight:700;letter-spacing:-.08em;color:inherit;text-decoration:none}.logo span,footer span{color:var(--lime)}.desktop-nav{display:flex;gap:28px;margin:auto}.desktop-nav a,.header-call{color:inherit;text-decoration:none;font:500 10px "DM Mono",monospace;letter-spacing:.04em}.header-call{border:1px solid #ffffff55;border-radius:50px;padding:10px 14px}.header-call b{color:var(--lime);margin-left:7px}.menu-toggle{display:none}.hero{min-height:710px;height:100vh;max-height:980px;background:#111;position:relative;overflow:hidden;color:#fff}.hero-image{position:absolute;inset:0;background:linear-gradient(90deg,#0c1218cc 0%,#0b121455 43%,#080d0f60 100%),url('assets/works/x1.jpg') center/cover;transform:scale(1.03);animation:heroZoom 12s ease-out both}.hero-shadow{position:absolute;inset:auto 0 0;height:60%;background:linear-gradient(transparent,#0b0e10aa)}@keyframes heroZoom{to{transform:scale(1)}}.hero-content{position:absolute;z-index:1;left:12vw;top:26vh}.kicker,.eyebrow{font:500 10px "DM Mono",monospace;letter-spacing:.13em;margin:0;color:inherit}.kicker:before,.eyebrow:before{content:"";display:inline-block;width:28px;height:1px;background:currentColor;margin:0 10px 3px 0}.hero h1{font-size:clamp(66px,9.2vw,145px);line-height:.82;letter-spacing:-.09em;margin:25px 0}.hero h1 span{font-size:.23em;letter-spacing:.09em;font-weight:500}.hero-description{font-size:15px;line-height:1.9;color:#e4e9ed}.round-link{display:flex;align-items:center;justify-content:center;flex-direction:column;margin-top:55px;width:110px;height:110px;border:1px solid #ffffff77;border-radius:50%;color:#fff;text-decoration:none;transition:.3s}.round-link:hover{color:var(--ink);background:var(--lime);border-color:var(--lime);transform:rotate(-6deg)}.round-link small{font:9px "DM Mono",monospace;letter-spacing:.08em}.round-link strong{font-size:12px}.round-link b{margin-top:5px}.hero-side{position:absolute;z-index:1;right:4.2vw;bottom:130px;writing-mode:vertical-rl;font:9px "DM Mono",monospace;letter-spacing:.14em;color:#d7ed54}.hero-bottom{position:absolute;z-index:1;bottom:24px;left:4.2vw;right:4.2vw;display:flex;justify-content:space-between;color:#d5d8d9;font:9px "DM Mono",monospace;letter-spacing:.12em}.section{padding:130px 8.5vw;display:grid;grid-template-columns:18% 1fr;gap:7vw}.section-label{font:10px "DM Mono",monospace;letter-spacing:.09em;line-height:1.7}.section-label span{display:block;color:#9ca1a1;margin-bottom:18px}.section-label p{margin:0;font-family:Manrope,"Noto Sans SC",sans-serif;font-weight:600}.about{background:#fff;grid-template-columns:16% 1fr 30%;gap:5vw}.about-main h2,.skill-intro h2,.works h2,.experience h2,footer h2{font-weight:600;letter-spacing:-.065em;line-height:1.15;margin:18px 0 28px;font-size:clamp(36px,4.1vw,63px)}.about-main h2 em,.skill-intro em,footer h2 em{font-style:normal;color:#8096e7}.about-text{max-width:590px;color:var(--muted);font-size:14px;line-height:2}.facts{display:grid;grid-template-columns:repeat(3,1fr);max-width:630px;margin-top:48px;border-top:1px solid var(--line);padding-top:20px}.facts div{display:flex;flex-direction:column;gap:5px}.facts b{font-size:26px;letter-spacing:-.06em}.facts sup{font-size:12px;color:#8299e7}.facts span{font-size:11px;color:var(--muted)}.about-card{align-self:end;background:#eff0ec}.about-card img{width:100%;display:block;aspect-ratio:1.2;object-fit:cover}.about-card div{padding:22px}.about-card small{font:9px "DM Mono",monospace;color:#7581ac}.about-card strong{display:block;margin-top:10px;line-height:1.7;font-size:14px}.soft-section{background:#e8e9e4;grid-template-columns:18% 1fr}.skill-intro{max-width:600px}.skill-intro>p:last-child{font-size:14px;color:#62686b;line-height:1.9;max-width:430px}.tool-grid{grid-column:2;display:grid;grid-template-columns:repeat(4,1fr);margin-top:30px;border-top:1px solid #cdd0c7}.tool{min-height:270px;padding:27px 22px;border-right:1px solid #cdd0c7;position:relative}.tool:first-child{border-left:1px solid #cdd0c7}.tool-no{font:9px "DM Mono",monospace;color:#8d9292}.tool-icon{display:block;width:39px;height:39px;margin:35px 0 28px;position:relative}.cube{border:1.5px solid #111;transform:rotate(30deg) skewY(-12deg)}.sun{border:1.5px solid #111;border-radius:50%;box-shadow:0 -11px 0 -10px #111,0 11px 0 -10px #111,11px 0 0 -10px #111,-11px 0 0 -10px #111}.layers:before,.layers:after{content:"";position:absolute;width:30px;height:19px;border:1.5px solid #111;transform:skewY(-20deg)}.layers:before{top:8px;left:4px}.layers:after{top:16px;left:9px}.frame{border:1.5px solid #111;border-radius:50% 50% 0 50%}.tool h3{font-size:14px;margin:0 0 12px}.tool p{font-size:11px;line-height:1.8;color:#6d7274;margin:0}.works{display:block;background:#fff;padding-top:130px}.works-heading{display:grid;grid-template-columns:18% 1fr 200px;align-items:end;margin-bottom:42px}.works-heading h2{margin-bottom:0}.works-note{font-size:11px;line-height:1.8;color:var(--muted);margin:0}.work-filters{display:flex;gap:27px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:32px}.work-filters button{border:0;background:none;padding:0;color:#899093;font-size:11px;cursor:pointer}.work-filters button.active{color:#111;font-weight:700}.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px}.work-card{border:0;padding:0;grid-column:span 4;background:#e8e8e8;position:relative;min-height:260px;cursor:pointer;overflow:hidden;text-align:left}.work-card.card-wide{grid-column:span 8}.work-card.card-tall{grid-row:span 2}.work-card img{display:block;width:100%;height:100%;min-height:260px;object-fit:cover;transition:transform .8s cubic-bezier(.2,.75,.2,1),filter .4s}.work-card span{position:absolute;inset:auto 0 0;padding:20px;color:#fff;background:linear-gradient(transparent,#091014d9);display:flex;flex-direction:column;gap:3px;opacity:0;transform:translateY(10px);transition:.35s}.work-card small{font:9px "DM Mono",monospace;letter-spacing:.1em;color:var(--lime)}.work-card b{font-size:16px}.work-card i{font-style:normal;font-size:10px;margin-top:5px}.work-card:hover img{transform:scale(1.045);filter:brightness(.75)}.work-card:hover span{opacity:1;transform:none}.work-card.hidden{display:none}.experience{background:#15191d;color:#f6f7f5}.experience .section-label span{color:#87919a}.experience-content h2 span{color:var(--lime)}.experience-list{margin-top:65px;border-top:1px solid #ffffff29}.experience-list article{display:grid;grid-template-columns:150px 1fr;gap:40px;padding:26px 0;border-bottom:1px solid #ffffff29}.experience-list time{font:10px "DM Mono",monospace;color:var(--lime)}.experience-list h3{font-size:17px;margin:0 0 5px}.experience-list b{font-size:11px;color:#a9b1b9}.experience-list p{font-size:12px;line-height:1.8;color:#aeb5ba;max-width:550px;margin:13px 0 0}footer{padding:130px 8.5vw 26px;background:var(--lime);color:#15191d}footer h2{font-size:clamp(47px,6.5vw,100px);margin:25px 0 70px}footer h2 em{color:#7183c8}.phone{border-bottom:1px solid #465034;padding-bottom:20px;display:flex;gap:25px;align-items:baseline;max-width:600px;color:inherit;text-decoration:none;font-size:clamp(25px,3.5vw,52px);letter-spacing:-.06em}.phone span{font:10px "DM Mono",monospace;letter-spacing:.1em;color:#566536}.phone b{margin-left:auto;font-size:24px}.footer-bottom{border-top:1px solid #53632d;margin-top:130px;padding-top:20px;display:flex;justify-content:space-between;align-items:center;font:9px "DM Mono",monospace;letter-spacing:.05em}.footer-bottom>a{color:#111;text-decoration:none}.footer-bottom>a:first-child{font:700 22px Manrope,sans-serif;letter-spacing:-.07em}.footer-bottom p{margin:0}.lightbox{padding:0;border:0;max-width:min(1000px,90vw);background:#101214;color:white}.lightbox::backdrop{background:#000c}.lightbox img{display:block;max-width:100%;max-height:75vh;object-fit:contain}.lightbox div{padding:18px 22px}.lightbox small{font:10px "DM Mono",monospace;color:var(--lime)}.lightbox h3{margin:7px 0 0;font-size:19px}.close-lightbox{position:absolute;z-index:1;right:9px;top:9px;border:0;width:32px;height:32px;border-radius:50%;background:#ffffffdd;font-size:22px;cursor:pointer}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){.site-header{height:68px;padding:0 6vw}.desktop-nav{position:absolute;top:68px;left:0;right:0;background:#14191e;display:none;flex-direction:column;padding:25px 6vw;gap:20px}.desktop-nav.open{display:flex}.header-call{display:none}.menu-toggle{display:flex;width:28px;height:20px;margin-left:auto;padding:0;background:transparent;border:0;flex-direction:column;justify-content:center;gap:7px}.menu-toggle i{display:block;width:25px;height:1px;background:#fff}.hero{min-height:650px;height:88vh}.hero-content{left:7vw;top:24vh}.hero-side{right:6vw;bottom:105px}.hero-bottom{left:6vw;right:6vw;font-size:8px}.section,.about{padding:85px 6vw;grid-template-columns:1fr;gap:35px}.section-label{display:flex;align-items:center;gap:18px}.section-label span{margin:0}.about-card{max-width:380px}.facts{gap:16px}.soft-section{grid-template-columns:1fr}.skill-intro h2{margin-top:14px}.tool-grid{grid-column:auto;grid-template-columns:1fr 1fr;margin-top:0}.tool{min-height:250px;border-bottom:1px solid #cdd0c7}.tool:nth-child(3){border-left:1px solid #cdd0c7}.works{padding:85px 6vw}.works-heading{grid-template-columns:1fr;gap:25px}.work-filters{gap:15px;overflow:auto;white-space:nowrap}.work-grid{grid-template-columns:1fr 1fr;gap:12px}.work-card,.work-card.card-wide{grid-column:span 1;min-height:160px}.work-card.card-tall{grid-row:span 1}.work-card img{min-height:160px}.work-card span{opacity:1;transform:none;padding:12px}.work-card b{font-size:12px}.work-card i{display:none}.experience-list article{grid-template-columns:1fr;gap:13px}.experience-content h2{font-size:40px}.phone{flex-wrap:wrap;gap:8px}.phone b{margin-left:auto}.footer-bottom{margin-top:75px;gap:12px;flex-wrap:wrap}.footer-bottom p{order:3;width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-image{animation:none}.reveal{opacity:1;transform:none;transition:none}}

/* Software cards use their corresponding local vector marks. */
.app-icon img{display:block;width:32px;height:32px;object-fit:contain}.ai-featured{box-shadow:inset 0 0 0 1px #8aa6ff}
.profile-portrait{display:block;width:100%;height:410px;object-fit:cover;object-position:center 43%;background:#dce5e6}.film-card video{width:100%;height:100%;display:block;object-fit:cover;background:#101315;transition:transform .7s cubic-bezier(.2,.75,.2,1),filter .35s}.film-card:hover video{transform:scale(1.04);filter:brightness(.77)}

/* Refined identity, provided software marks, and contact layout. */
.cv-brand span{font-family:Manrope,"Noto Sans SC",sans-serif}.cv-intro h1{font-family:Manrope,"Noto Sans SC",sans-serif;font-size:clamp(49px,6.2vw,90px);line-height:.9;letter-spacing:-.075em}.cv-intro h1 span{font-family:Manrope,sans-serif;font-size:.32em;letter-spacing:.11em;margin-top:22px;text-transform:uppercase;color:#68726f}.cv-summary{font-size:15px;line-height:2.05;max-width:550px}.cv-card-grid{grid-template-columns:repeat(3,1fr)}.cv-card-grid article{min-height:246px;padding:26px}.cv-card-grid .app-icon{width:62px;height:62px;margin-bottom:30px;background:#f2f3f1!important;border:1px solid #e1e3df;border-radius:14px;padding:8px}.cv-card-grid .app-icon img{width:100%;height:100%;object-fit:contain}.inner-header nav a{display:flex;flex-direction:column;gap:4px}.inner-header nav a small{font:10px "Noto Sans SC",sans-serif;letter-spacing:0;color:#a4acad}.inner-header nav a.active small{color:#e5ecea}.contact-page{background:#0d1114;color:#f4f7f4}.contact-main{min-height:calc(100vh - 80px);padding:160px 8.5vw 95px;display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;position:relative;overflow:hidden;background:radial-gradient(circle at 82% 15%,#24434a 0,transparent 29%),linear-gradient(135deg,#0d1114,#151f23)}.contact-main:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ffffff06 1px,transparent 1px),linear-gradient(#ffffff05 1px,transparent 1px);background-size:90px 90px;mask-image:linear-gradient(90deg,#0008,transparent 88%);pointer-events:none}.contact-lead,.contact-details{position:relative;z-index:1}.contact-lead>p:first-child,.contact-details small{font:10px "DM Mono",monospace;letter-spacing:.14em;color:#9caea9}.contact-lead h1{font-size:clamp(64px,7.5vw,124px);font-weight:300;letter-spacing:-.09em;line-height:.83;margin:30px 0}.contact-lead h1 span{color:#a7d9cf}.contact-lead>p:last-child{max-width:430px;font-size:14px;line-height:2;color:#b7c2c0}.contact-details{align-self:end;border-top:1px solid #ffffff2e}.contact-line{display:grid;grid-template-columns:132px 1fr auto;gap:18px;align-items:end;padding:23px 0;border-bottom:1px solid #ffffff2e;color:#f4f7f4;text-decoration:none;transition:.25s}.contact-line:hover{color:#b6ede0;padding-left:9px}.contact-line strong{font-size:clamp(19px,2.25vw,32px);font-weight:300;letter-spacing:-.045em}.contact-line b{font-size:22px;font-weight:400}.wechat-card{display:grid;grid-template-columns:130px 1fr;gap:24px;align-items:center;padding:30px 0 0}.wechat-card img{width:130px;aspect-ratio:1;object-fit:cover;background:#fff;padding:5px}.wechat-card div{display:flex;flex-direction:column;gap:9px}.wechat-card strong{font-size:22px;font-weight:400;letter-spacing:-.04em}.wechat-card p{font-size:12px;color:#aebbb8;line-height:1.8;margin:0}.contact-main aside{display:none}.contact-foot{background:#0d1114;border-top:1px solid #ffffff24;color:#9caea9}.contact-foot a{color:#e7f6f1}.contact-orbit{border-color:#73baad33}.contact-page .inner-header{background:#0d1114;border-bottom-color:#ffffff24}
@media(max-width:800px){.cv-intro h1{font-size:55px}.cv-card-grid{grid-template-columns:1fr 1fr}.contact-main{min-height:auto;padding:120px 6vw 70px;grid-template-columns:1fr;gap:60px}.contact-lead h1{font-size:63px}.contact-line{grid-template-columns:1fr auto;gap:8px}.contact-line small{grid-column:1/-1}.contact-line strong{font-size:21px}.wechat-card{grid-template-columns:105px 1fr}.wechat-card img{width:105px}.inner-header nav a small{display:block}}
.cv-intro h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(38px,4.5vw,62px);letter-spacing:.04em;line-height:1.1}.cv-intro h1 .name-cn{display:block;font-size:1em;font-weight:500}.cv-intro h1 .name-en{display:block;margin-top:13px;font-family:Manrope,sans-serif;font-size:.35em;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:#68726f}.showcase-nav{background:#111a1e80;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-bottom-color:#ffffff2c}.showcase-glass{padding:23px 25px;border:1px solid #ffffff3b;border-radius:18px;background:linear-gradient(135deg,#ffffff26,#ffffff09);backdrop-filter:blur(22px) saturate(145%);-webkit-backdrop-filter:blur(22px) saturate(145%);box-shadow:0 22px 70px #0004}.showcase-glass .showcase-eyebrow{margin:0;color:#e4f1ef;font:10px "DM Mono",monospace;letter-spacing:.16em}.showcase-glass .showcase-link{margin-top:18px}.showcase-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#1b3d4770,#07121722 48%,#ffffff10);backdrop-filter:blur(1px);pointer-events:none}.showcase-controls{padding:9px 12px;border:1px solid #ffffff2f;border-radius:15px;background:#10191d85;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.showcase-hud{position:absolute;z-index:5;left:50%;bottom:4.5vh;transform:translateX(-50%);width:min(580px,88vw);display:flex;flex-direction:column;align-items:center;gap:15px}.showcase-hud .showcase-copy,.showcase-hud .showcase-controls,.showcase-hud .showcase-bottom{position:static;left:auto;right:auto;bottom:auto;margin:0}.showcase-hud .showcase-copy{width:100%;text-align:center}.showcase-hud .showcase-link{margin-left:auto;margin-right:auto}.showcase-hud .showcase-controls{display:flex;align-items:center}.showcase-hud .showcase-bottom{width:100%;font-size:8px}.showcase-hud .showcase-bottom a{margin-left:auto}
.still-section{padding:115px 0 20px;border-top:1px solid #ffffff20}.still-section header{display:flex;align-items:end;gap:25px;margin-bottom:32px}.still-section header p{margin:0;font:10px "DM Mono",monospace;letter-spacing:.13em;color:#93a3a0}.still-section h2{margin:0;font-size:clamp(32px,4vw,58px);font-weight:300;letter-spacing:-.07em}.still-section header span{margin-left:auto;max-width:210px;font-size:12px;line-height:1.7;color:#a6b0ae}.still-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:13px}.still-card{grid-column:span 4;min-height:250px;padding:0;border:0;background:#152025;color:#fff;position:relative;overflow:hidden;cursor:pointer;text-align:left}.still-card.still-wide{grid-column:span 8}.still-card img{width:100%;height:100%;min-height:250px;display:block;object-fit:cover;transition:transform .7s ease,filter .35s}.still-card span{position:absolute;left:0;right:0;bottom:0;padding:20px;font-size:12px;background:linear-gradient(transparent,#071014df);opacity:0;transform:translateY(8px);transition:.3s}.still-card:hover img{transform:scale(1.045);filter:brightness(.78)}.still-card:hover span{opacity:1;transform:none}
.video-wrap{background:#020304}.video-wrap video{transition:opacity .16s ease}.video-wrap video.is-loading{opacity:0}
@media(max-width:800px){.still-section{padding-top:75px}.still-section header{display:block}.still-section header span{display:block;margin:16px 0 0}.still-grid{grid-template-columns:1fr 1fr;gap:9px}.still-card,.still-card.still-wide{grid-column:span 1;min-height:170px}.still-card img{min-height:170px}.still-card span{opacity:1;transform:none;padding:12px;font-size:10px}}
@media(max-width:800px){.showcase-hud{bottom:28px;width:min(460px,88vw);gap:11px}.showcase-hud .showcase-copy{padding:17px 18px}.showcase-hud .showcase-bottom span:nth-child(2){display:none}}

/* Multi-page portfolio layouts */
.site-header:not(.on-dark){position:relative;color:var(--ink);border-bottom:1px solid var(--line)}.site-header:not(.on-dark) .header-call{border-color:#bfc2be}.site-header:not(.on-dark) .desktop-nav a.active{font-weight:700;border-bottom:1px solid #111;padding-bottom:4px}.inner-page{background:#fff;padding:0 8.5vw 130px}.page-title{padding:115px 0 85px;border-bottom:1px solid var(--line);max-width:960px}.page-title h1{font-size:clamp(55px,8vw,122px);line-height:.9;letter-spacing:-.085em;margin:24px 0}.page-title h1 span{font-size:.27em;letter-spacing:.07em}.page-title>p:last-child{font-size:14px;line-height:1.9;color:var(--muted);max-width:500px}.bio-grid{padding:100px 0;display:grid;grid-template-columns:.85fr 1fr;gap:11vw;max-width:1100px}.bio-image img{width:100%;aspect-ratio:.9;object-fit:cover}.bio-grid h2{font-size:clamp(35px,4vw,60px);line-height:1.15;letter-spacing:-.06em;margin:20px 0 28px}.bio-grid h2 span{color:#8296e8}.bio-grid article>p:not(.eyebrow){font-size:14px;line-height:2;color:#5d6569}.value-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin:0 -8.5vw;padding:1px}.value-strip div{padding:45px 8.5vw;background:#15191d;color:white;display:flex;flex-direction:column;gap:7px}.value-strip b{font-size:42px;letter-spacing:-.07em}.value-strip sup{font-size:15px;color:var(--lime)}.value-strip span{font-size:11px;color:#b8c0c4}.career{padding:120px 0 0;max-width:900px}.career h2{font-size:clamp(42px,5vw,75px);letter-spacing:-.07em;margin:18px 0 55px}.timeline{border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:160px 1fr;gap:45px;padding:30px 0;border-bottom:1px solid var(--line)}.timeline time{font:10px "DM Mono",monospace;color:#7990df}.timeline h3{font-size:17px;margin:0 0 7px}.timeline b{font-size:11px;color:#737a7d}.timeline p{font-size:12px;line-height:1.9;color:#677074;max-width:560px}.skill-title{max-width:860px}.skill-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin:0 -8.5vw;padding:1px}.skill-detail{padding:58px 8.5vw;background:#edf0ea;min-height:420px}.skill-detail:nth-child(2),.skill-detail:nth-child(3){background:#f8f8f5}.skill-detail>span{font:10px "DM Mono",monospace;color:#7d91d8}.skill-detail h2{font-size:27px;letter-spacing:-.04em;margin:45px 0 8px}.skill-detail h3{font:500 11px "DM Mono",monospace;color:#667cbf;margin:0}.skill-detail p{font-size:13px;line-height:1.9;color:#626a6d;margin:25px 0}.skill-detail ul{margin:0;padding:0;list-style:none;font-size:11px;line-height:2;color:#3f4649}.skill-detail li:before{content:'+';color:#738ae3;margin-right:9px}.software-band{margin:0 -8.5vw -130px;padding:80px 8.5vw;background:#15191d;color:white}.software-band p{font:10px "DM Mono",monospace;letter-spacing:.12em;color:var(--lime)}.software-band div{display:flex;flex-wrap:wrap;gap:14px 27px;margin-top:35px}.software-band b{font-size:clamp(17px,2vw,30px);letter-spacing:-.06em}.works-page .page-title{max-width:none}.portfolio-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:23px}.portfolio-card{grid-column:span 4;min-height:300px;display:block;position:relative;overflow:hidden;background:#e9e9e6;text-decoration:none;color:#fff}.portfolio-card.wide{grid-column:span 8}.portfolio-card img{width:100%;height:100%;min-height:300px;object-fit:cover;transition:transform .7s ease,filter .35s}.portfolio-card span{position:absolute;bottom:0;left:0;right:0;padding:24px;display:flex;flex-direction:column;gap:5px;background:linear-gradient(transparent,#0f1519e6);opacity:0;transform:translateY(13px);transition:.35s}.portfolio-card:hover img{transform:scale(1.04);filter:brightness(.77)}.portfolio-card:hover span{opacity:1;transform:none}.portfolio-card small{font:9px "DM Mono",monospace;color:var(--lime)}.portfolio-card b{font-size:16px}.portfolio-card i{font-size:10px;font-style:normal}.portfolio-card.hidden{display:none}.project-page{background:#111519;color:#f6f7f7}.project-main{min-height:100vh;padding:140px 8.5vw 90px}.back-link{font:10px "DM Mono",monospace;letter-spacing:.08em;text-decoration:none;color:#cad0d2}.project-meta{margin:90px 0 45px;max-width:700px}.project-meta h1{font-size:clamp(40px,5vw,80px);line-height:1.05;letter-spacing:-.07em;margin:17px 0}.project-meta>p:last-child{font-size:14px;line-height:1.8;color:#aeb5b8}.video-wrap{background:#050708;max-width:1200px;box-shadow:0 25px 70px #0008}.video-wrap video{display:block;width:100%;max-height:74vh;background:#050708}.project-credit{display:flex;justify-content:space-between;max-width:1200px;padding-top:16px;font:9px "DM Mono",monospace;letter-spacing:.1em;color:#899195}.home-intro{display:grid;grid-template-columns:17% 1fr .9fr;gap:6vw;padding:135px 8.5vw;background:#fff}.section-number{font:10px "DM Mono",monospace;letter-spacing:.1em;margin:0;color:#737d80}.home-intro h2{font-size:clamp(38px,4.6vw,66px);letter-spacing:-.07em;line-height:1.12;margin:18px 0 25px}.home-intro h2 span{color:#8196e6}.home-intro p:not(.eyebrow){font-size:14px;line-height:2;color:#626b6f;max-width:450px}.line-link{display:inline-flex;align-items:center;gap:30px;margin-top:28px;padding-bottom:7px;border-bottom:1px solid #667078;color:#111;text-decoration:none;font-size:12px}.line-link b{color:#7b90dc}.home-intro-image img{width:100%;height:100%;object-fit:cover;min-height:370px}.home-work-preview{padding:115px 8.5vw;background:#e9ece5}.preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.preview-head .line-link{margin:0}.preview-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px}.preview-card{display:block;position:relative;min-height:310px;overflow:hidden;color:#fff;text-decoration:none}.preview-card img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .7s}.preview-card span{position:absolute;inset:auto 0 0;padding:20px;background:linear-gradient(transparent,#0d1215df);display:flex;flex-direction:column;gap:4px}.preview-card small{font:9px "DM Mono",monospace;color:var(--lime)}.preview-card b{font-size:16px}.preview-card i{font-size:10px;font-style:normal}.preview-card:hover img{transform:scale(1.05)}
@media(max-width:800px){.site-header:not(.on-dark) .menu-toggle i{background:#111}.page-title{padding:80px 0 60px}.inner-page{padding:0 6vw 80px}.bio-grid{grid-template-columns:1fr;gap:40px;padding:65px 0}.value-strip{margin:0 -6vw;grid-template-columns:1fr}.value-strip div{padding:30px 6vw}.career{padding-top:75px}.timeline article{grid-template-columns:1fr;gap:14px}.skill-detail-grid{grid-template-columns:1fr;margin:0 -6vw}.skill-detail{padding:40px 6vw;min-height:0}.software-band{margin:0 -6vw -80px;padding:55px 6vw}.portfolio-grid{grid-template-columns:1fr 1fr;gap:12px}.portfolio-card,.portfolio-card.wide{grid-column:span 1;min-height:180px}.portfolio-card img{min-height:180px}.portfolio-card span{opacity:1;transform:none;padding:13px}.portfolio-card b{font-size:12px}.portfolio-card i{display:none}.project-main{padding:105px 6vw 65px}.project-meta{margin:65px 0 32px}.project-credit{gap:10px;flex-wrap:wrap}.home-intro{grid-template-columns:1fr;padding:80px 6vw;gap:25px}.home-intro-image{max-width:430px}.home-work-preview{padding:75px 6vw}.preview-head{align-items:flex-start;gap:20px}.preview-grid{grid-template-columns:1fr;gap:12px}.preview-card{min-height:260px}.preview-card.large{min-height:340px}.preview-card span{padding:15px}.preview-card i{display:none}}

/* Reference-inspired portfolio homepage */
.ref-home{background:#edf1f4;color:#132129}.ref-nav{height:76px;padding:0 5vw;display:flex;align-items:center;position:absolute;z-index:9;inset:0 0 auto;color:#f8fbfc;border-bottom:1px solid #ffffff36}.ref-logo{font-size:22px;color:inherit;text-decoration:none;font-weight:700;letter-spacing:-.08em}.ref-logo span{color:#a9e6f5}.ref-nav nav{margin:auto;display:flex;gap:30px}.ref-nav nav a{color:inherit;text-decoration:none;font-size:12px}.ref-contact{padding:9px 15px;border:1px solid #ffffff75;border-radius:30px;color:inherit;text-decoration:none;font-size:11px}.ref-contact b{color:#a9e6f5}.ref-hero{min-height:880px;position:relative;overflow:hidden;background:linear-gradient(120deg,#071e28,#0e3b4b 46%,#9eced8);color:#f7fcfd;padding:166px 8.5vw 75px}.ref-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#05212ddd,#07394730),url('assets/works/x1.jpg') center/cover;mix-blend-mode:luminosity;opacity:.53}.ref-hero-glow{position:absolute;width:690px;height:690px;border-radius:50%;right:-150px;top:40px;background:radial-gradient(circle,#d8ffff 0,#8dd6e233 42%,transparent 70%);filter:blur(5px)}.ref-hero-copy{position:relative;z-index:2;max-width:660px}.ref-hero-copy>p:first-child,.ref-overline{font:10px "DM Mono",monospace;letter-spacing:.13em}.ref-hero-copy h1{font-size:clamp(62px,8vw,126px);line-height:.84;letter-spacing:-.09em;margin:28px 0}.ref-hero-copy h1 span{font-size:.42em;letter-spacing:-.06em;font-weight:400}.ref-lead{font-size:15px;line-height:1.9;color:#d4edf2}.ref-data{display:flex;gap:40px;margin-top:55px}.ref-data div{display:flex;flex-direction:column}.ref-data strong{font-size:30px;letter-spacing:-.06em}.ref-data sup{font-size:13px;color:#a9e6f5}.ref-data span{font-size:10px;color:#c8e5e9;margin-top:5px}.ref-featured{position:absolute;z-index:2;right:7vw;bottom:60px;width:min(42vw,600px);height:380px}.ref-featured>p{position:absolute;right:0;top:-30px;margin:0;font:9px "DM Mono",monospace;letter-spacing:.1em}.feature-item{position:absolute;overflow:hidden;display:block;color:white;text-decoration:none;background:#1a353d;border:1px solid #ffffff2e}.feature-item img{width:100%;height:100%;display:block;object-fit:cover;filter:brightness(.62);transition:.55s}.feature-item span{position:absolute;z-index:1;inset:auto 0 0;padding:15px;background:linear-gradient(transparent,#06171dcc);display:flex;flex-direction:column;gap:3px}.feature-item b{font-size:15px}.feature-item small{font-size:9px;color:#a9e6f5}.feature-main{width:54%;height:100%;left:0;bottom:0}.feature-small{width:42%;height:31%;right:0}.feature-small.first{top:0}.feature-small.second{top:34.5%}.feature-small.third{bottom:0}.feature-item:hover img{filter:brightness(1);transform:scale(1.05)}.ref-section-title p{font:10px "DM Mono",monospace;letter-spacing:.14em;color:#5e7f8b;margin:0}.ref-section-title h2{font-size:clamp(40px,5vw,70px);letter-spacing:-.07em;margin:14px 0 0}.ref-about{padding:130px 8.5vw;background:#f6f6f2}.ref-about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:11vw;max-width:1140px;margin:70px auto 0}.ref-about-grid figure{margin:0}.ref-about-grid figure img{width:100%;aspect-ratio:.9;object-fit:cover}.ref-about-grid figcaption{font:9px "DM Mono",monospace;letter-spacing:.1em;margin-top:10px;color:#70818b}.ref-about-grid article h3{font-size:clamp(31px,3.7vw,53px);line-height:1.13;letter-spacing:-.06em;margin:17px 0 28px}.ref-about-grid article h3 span{color:#628ca0}.ref-about-grid article>p:not(.ref-overline){font-size:14px;color:#59676d;line-height:2}.ref-about-grid dl{margin:32px 0 0;border-top:1px solid #d5d9d6}.ref-about-grid dl div{display:grid;grid-template-columns:110px 1fr;padding:14px 0;border-bottom:1px solid #d5d9d6;font-size:12px}.ref-about-grid dt{color:#688a99}.ref-about-grid dd{margin:0}.ref-text-link{display:inline-flex;gap:27px;color:#24333a;text-decoration:none;font-size:12px;border-bottom:1px solid #73848b;padding:0 0 7px;margin-top:30px}.ref-text-link b{color:#4a8da8}.ref-career-strip{margin:80px -8.5vw -130px;padding:40px 8.5vw;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;background:#153241;color:white}.ref-career-strip strong{font-size:13px;font-weight:500}.ref-career-strip span{color:#a9e6f5;font-size:24px;letter-spacing:-.06em;margin-right:8px}.ref-strengths{padding:130px 8.5vw;background:#e3ecee}.strength-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:65px}.strength-grid article{min-height:300px;padding:30px;background:#f7faf9;border:1px solid #c5d3d5}.strength-grid article>span{font:10px "DM Mono",monospace;color:#6993a5}.strength-grid h3{font-size:25px;letter-spacing:-.05em;margin:40px 0 14px}.strength-grid p{font-size:13px;line-height:1.9;color:#58666d;max-width:470px}.strength-grid em{font:10px "DM Mono",monospace;font-style:normal;border:1px solid #b5c9cf;padding:6px 8px;display:inline-block;margin:10px 6px 0 0;color:#547889}.ref-centered{display:flex;width:max-content;margin:50px auto 0}.ref-projects{padding:130px 8.5vw;background:#f7f8f6}.case-list{max-width:1050px;margin:70px auto 0}.case-list article{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;padding:45px 0;border-top:1px solid #cbd0ce}.case-list article:last-child{border-bottom:1px solid #cbd0ce}.case-list article>a{display:block;overflow:hidden}.case-list img{width:100%;aspect-ratio:1.45;object-fit:cover;display:block;transition:.5s}.case-list article>a:hover img{transform:scale(1.04)}.case-copy small{font:10px "DM Mono",monospace;color:#6791a5}.case-copy h3{font-size:31px;letter-spacing:-.05em;margin:13px 0 6px}.case-copy>p{font-size:12px;line-height:1.85;color:#657177}.case-copy>strong{display:block;line-height:1.7;font-size:13px;margin:20px 0}.case-copy em{font:10px "DM Mono",monospace;color:#577f91;border:1px solid #b7c7c9;padding:5px 7px;font-style:normal;display:inline-block;margin-right:6px}.case-link{display:inline-block;color:#222f35;text-decoration:none;font-size:12px;margin-top:23px;border-bottom:1px solid #76858a;padding-bottom:5px}.ref-works{padding:130px 8.5vw;background:#172f3b;color:#f3f7f8}.ref-works .ref-section-title p{color:#a9e6f5}.ref-works .ref-section-title h2{color:white}.work-intro{color:#bbd0d5;font-size:13px;margin:22px 0 50px}.ref-work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ref-work-grid a{position:relative;display:block;overflow:hidden;color:#fff;text-decoration:none;background:#203e4c}.ref-work-grid img{display:block;width:100%;aspect-ratio:1.45;object-fit:cover;transition:.5s;filter:brightness(.8)}.ref-work-grid span{position:absolute;inset:auto 0 0;padding:15px;background:linear-gradient(transparent,#07161dce);font:11px "DM Mono",monospace;letter-spacing:.05em}.ref-work-grid a:hover img{transform:scale(1.06);filter:brightness(1)}
@media(max-width:900px){.ref-nav{height:67px;padding:0 6vw}.ref-nav nav{position:absolute;top:67px;left:0;right:0;padding:26px 6vw;background:#153241;display:none;flex-direction:column;gap:20px}.ref-nav nav.open{display:flex}.ref-contact{display:none}.ref-nav .menu-toggle{display:flex;margin-left:auto;border:0;background:transparent;flex-direction:column;gap:6px}.ref-nav .menu-toggle i{width:25px;height:1px;background:#fff}.ref-hero{padding:125px 6vw 65px;min-height:860px}.ref-hero-copy h1{font-size:60px}.ref-data{gap:18px}.ref-data strong{font-size:24px}.ref-featured{width:88vw;right:6vw;bottom:55px;height:290px}.ref-about,.ref-strengths,.ref-projects,.ref-works{padding:85px 6vw}.ref-about-grid{grid-template-columns:1fr;gap:45px;margin-top:45px}.ref-about-grid figure{max-width:440px}.ref-career-strip{margin:60px -6vw -85px;padding:30px 6vw;grid-template-columns:1fr;gap:15px}.strength-grid{grid-template-columns:1fr;margin-top:40px}.strength-grid article{min-height:0}.case-list{margin-top:45px}.case-list article{grid-template-columns:1fr;gap:24px}.ref-work-grid{grid-template-columns:1fr 1fr}.ref-work-grid span{font-size:9px}.ref-lead br{display:none}}

/* Final three-entry site */
.cinema-home{background:#050606;color:#fff;overflow:hidden}.cinema-header{height:86px;position:fixed;z-index:20;inset:0 0 auto;display:flex;align-items:center;padding:0 4.2vw;border-bottom:1px solid #ffffff22}.cinema-logo,.inner-logo{color:inherit;text-decoration:none;display:flex;flex-direction:column}.cinema-logo span,.inner-logo b{font-size:25px;line-height:1;font-weight:600;letter-spacing:-.08em}.cinema-logo small,.inner-logo span{font:8px "DM Mono",monospace;letter-spacing:.12em;margin-top:6px;color:#a9aaab}.cinema-header nav{display:flex;gap:38px;margin-left:auto}.cinema-header nav a{color:#fff;text-decoration:none;font:10px "DM Mono",monospace;display:flex;flex-direction:column;gap:5px}.cinema-header nav a span{font:10px "Noto Sans SC",sans-serif;color:#9da3a5}.cinema-stage{height:100vh;min-height:720px;position:relative;overflow:hidden}.cinema-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cinema-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#030405e8 0%,#05060688 42%,#05060635 68%,#030405ad),linear-gradient(0deg,#020303c9 0%,transparent 45%)}.cinema-grain{position:absolute;inset:0;opacity:.045;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.cinema-copy{position:absolute;z-index:3;left:8vw;top:23%;max-width:720px}.cinema-kicker,.section-kicker{font:9px "DM Mono",monospace;letter-spacing:.18em;color:#c5c9ca}.cinema-copy h1{font-size:clamp(54px,7vw,108px);font-weight:400;line-height:1.04;letter-spacing:-.07em;margin:23px 0}.cinema-copy h1 em{font-style:normal;color:#b4b1aa}.cinema-copy>p:not(.cinema-kicker){font-size:14px;line-height:1.9;color:#c8ccce}.cinema-cta{display:flex;justify-content:space-between;align-items:center;width:190px;margin-top:35px;padding:15px 18px;color:#fff;text-decoration:none;border:1px solid #ffffff66;font-size:12px;transition:.3s}.cinema-cta:hover{background:#fff;color:#111}.cinema-portals{position:absolute;z-index:4;right:4.2vw;bottom:80px;width:min(600px,48vw);display:grid;grid-template-columns:1.45fr 1fr 1fr;border-top:1px solid #ffffff4a;border-bottom:1px solid #ffffff4a}.cinema-portals a{min-height:145px;padding:19px;border-left:1px solid #ffffff3d;color:#fff;text-decoration:none;position:relative;display:flex;flex-direction:column;transition:.35s}.cinema-portals a:last-child{border-right:1px solid #ffffff3d}.cinema-portals small{font:9px "DM Mono",monospace;color:#92999c}.cinema-portals strong{font-size:14px;font-weight:400;margin:auto 0 5px}.cinema-portals span{font:8px "DM Mono",monospace;letter-spacing:.09em;color:#92999c}.cinema-portals b{position:absolute;right:16px;top:16px;font-weight:300;color:#babdbd}.cinema-portals a:hover{background:#f2f1ed;color:#111;transform:translateY(-7px)}.cinema-portals a:hover span,.cinema-portals a:hover small{color:#65696a}.cinema-foot{position:absolute;z-index:4;left:4.2vw;right:4.2vw;bottom:20px;display:flex;justify-content:space-between;align-items:center;font:8px "DM Mono",monospace;letter-spacing:.12em;color:#8e9496}.sound-toggle{border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer}.inner-header{height:86px;display:flex;align-items:center;padding:0 5vw;border-bottom:1px solid #d9dcdd;color:#172027;background:#f5f5f2;position:relative;z-index:10}.inner-header.dark{background:#0d1012;color:#fff;border-color:#ffffff25}.inner-header nav{display:flex;gap:34px;margin-left:auto}.inner-header nav a{color:inherit;text-decoration:none;font:10px "DM Mono",monospace;padding:8px 0}.inner-header nav a.active{border-bottom:1px solid currentColor}.profile-page{background:#f5f5f2;color:#172027}.profile-hero{padding:100px 8.5vw 110px;display:grid;grid-template-columns:13% 1.1fr .6fr;gap:6vw;align-items:end}.page-index{align-self:start;font:9px "DM Mono",monospace;letter-spacing:.12em;color:#6d7477}.profile-hero h1{font-size:clamp(52px,7.5vw,115px);line-height:.86;letter-spacing:-.085em;margin:22px 0}.profile-hero h1 span{display:block;font-size:.24em;letter-spacing:.05em;margin-top:28px;color:#697377}.profile-lead{font-size:14px;line-height:1.95;color:#636d71;max-width:520px}.profile-hero figure{margin:0}.profile-hero figure img{width:100%;aspect-ratio:.84;object-fit:cover}.profile-hero figcaption{font:8px "DM Mono",monospace;letter-spacing:.1em;margin-top:10px;color:#747d80}.profile-story{padding:110px 14vw;display:grid;grid-template-columns:24% 1fr;gap:8vw;background:#172027;color:#f5f5f2}.profile-story aside p,.software-section header p,.capability-section header p,.career-section header p{font:9px "DM Mono",monospace;letter-spacing:.15em;margin:0;color:#8a9599}.profile-story aside span{display:block;font-size:22px;margin-top:12px}.profile-story h2{font-size:clamp(35px,4.5vw,66px);line-height:1.18;letter-spacing:-.06em;margin:0 0 35px}.profile-story h2 span{color:#aeb5b7}.profile-story article>p{font-size:14px;line-height:2;color:#b9c0c2}.profile-story dl{margin:38px 0 0;border-top:1px solid #ffffff27}.profile-story dl div{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid #ffffff27;font-size:12px}.profile-story dt{color:#8d989b}.profile-story dd{margin:0}.software-section,.capability-section,.career-section{padding:120px 8.5vw}.software-section header h2,.capability-section header h2,.career-section header h2{font-size:clamp(40px,5vw,74px);letter-spacing:-.07em;margin:13px 0 55px}.software-section header h2 span,.capability-section header h2 span{font-size:.32em;letter-spacing:.03em;color:#747c7f}.software-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#d1d4d4;border:1px solid #d1d4d4}.software-grid article{background:#fff;padding:34px;min-height:270px}.software-grid i{display:grid;place-items:center;width:52px;height:52px;border:1px solid #222;font:500 13px "DM Mono",monospace;font-style:normal;margin-bottom:35px}.software-grid h3{font-size:17px;margin:0 0 13px}.software-grid p{font-size:12px;line-height:1.85;color:#687174}.capability-section{background:#e5e7e4}.capability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.capability-grid article{background:#f8f8f5;padding:28px;min-height:245px}.capability-grid article>span{font:9px "DM Mono",monospace;color:#7b8386}.capability-grid h3{font-size:20px;margin:40px 0 18px}.capability-grid h3 small{display:block;font:8px "DM Mono",monospace;color:#858d90;margin-top:6px}.capability-grid p{font-size:12px;line-height:1.85;color:#687174}.career-section{background:#fff}.career-section>div{border-top:1px solid #d4d7d7}.career-section article{display:grid;grid-template-columns:150px 1fr 120px 1.4fr;gap:25px;align-items:center;padding:25px 0;border-bottom:1px solid #d4d7d7}.career-section time{font:9px "DM Mono",monospace;color:#6e777a}.career-section h3{font-size:15px;margin:0}.career-section b{font-size:11px;color:#727a7d}.career-section p{font-size:11px;line-height:1.7;color:#737b7e}.inner-footer{padding:100px 8.5vw 28px;background:#0e1113;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:50px}.inner-footer>div p{font-size:13px}.inner-footer h2{font-size:clamp(45px,6vw,90px);margin:8px 0}.inner-footer>a{align-self:center;border-bottom:1px solid #ffffff5e;padding-bottom:18px;color:white;text-decoration:none;display:grid;grid-template-columns:80px 1fr auto;align-items:end}.inner-footer>a span{font:9px "DM Mono",monospace;color:#8d9699}.inner-footer>a b{font-size:clamp(22px,3vw,43px);font-weight:400}.inner-footer>a i{font-size:22px;font-style:normal}.inner-footer>p{grid-column:span 2;border-top:1px solid #ffffff26;padding-top:18px;font:8px "DM Mono",monospace;color:#737c7f}.portfolio-page{background:#0d1012;color:#fff}.portfolio-main{padding:100px 6vw 130px}.portfolio-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:70px}.portfolio-title>div>p,.contact-main section>p{font:9px "DM Mono",monospace;letter-spacing:.13em;color:#838b8e}.portfolio-title h1{font-size:clamp(58px,8vw,125px);line-height:.83;letter-spacing:-.08em;font-weight:400;margin:22px 0 0}.portfolio-title h1 span{color:#777d7f}.portfolio-title>p{max-width:420px;font-size:13px;line-height:1.85;color:#9ca3a5}.portfolio-page .work-filters{border-color:#ffffff28}.portfolio-page .work-filters button{color:#747d80}.portfolio-page .work-filters button.active{color:#fff}.film-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.film-card{grid-column:span 4;min-height:330px;position:relative;overflow:hidden;color:#fff;text-decoration:none;background:#191d20}.film-card.film-wide{grid-column:span 8}.film-card img{position:absolute;width:100%;height:100%;object-fit:cover;filter:brightness(.72);transition:.65s}.film-card span{position:absolute;inset:0;padding:24px;display:flex;flex-direction:column;background:linear-gradient(0deg,#050607d4,transparent 62%)}.film-card small{font:8px "DM Mono",monospace;color:#a8afb1}.film-card b{font-size:22px;font-weight:400;margin-top:auto}.film-card i{font-size:11px;font-style:normal;color:#afb4b5;margin-top:4px}.film-card strong{font:8px "DM Mono",monospace;margin-top:14px;opacity:0;transform:translateY(5px);transition:.35s}.film-card:hover img{transform:scale(1.05);filter:brightness(.95)}.film-card:hover strong{opacity:1;transform:none}.film-card.hidden{display:none}.portfolio-footer{padding:100px 8.5vw 28px;background:#ecece8;color:#111}.portfolio-footer>p{font:9px "DM Mono",monospace}.portfolio-footer h2{font-size:clamp(45px,6vw,86px);margin:20px 0}.portfolio-footer>a{display:inline-flex;gap:55px;color:#111;text-decoration:none;border-bottom:1px solid #777;padding-bottom:10px}.portfolio-footer>span{display:block;margin-top:100px;border-top:1px solid #ccc;padding-top:16px;font:8px "DM Mono",monospace;color:#666}.project-page .inner-header{position:absolute;inset:0 0 auto;background:transparent}.project-footer{padding:45px 8.5vw;background:#ecece8;display:flex;justify-content:space-between}.project-footer a{color:#111;text-decoration:none;font-size:12px}.contact-page{background:#0b0e10;color:#fff;min-height:100vh}.contact-main{min-height:calc(100vh - 130px);padding:130px 8.5vw 80px;position:relative;overflow:hidden;display:flex;align-items:center}.contact-main section{position:relative;z-index:2;max-width:850px}.contact-main h1{font-size:clamp(55px,8vw,125px);line-height:1;letter-spacing:-.08em;font-weight:400;margin:25px 0}.contact-main h1 span{color:#747b7e}.contact-main section>p:nth-of-type(2){font-size:14px;line-height:1.9;color:#9da5a7}.contact-main section>a{display:grid;grid-template-columns:110px 1fr auto;align-items:end;max-width:650px;margin-top:65px;padding:0 0 20px;border-bottom:1px solid #ffffff4f;color:#fff;text-decoration:none}.contact-main section>a small{font:9px "DM Mono",monospace;color:#7f898c}.contact-main section>a strong{font-size:clamp(28px,4vw,58px);font-weight:300;letter-spacing:-.05em}.contact-main section>a b{font-size:24px}.contact-main aside{position:absolute;right:7vw;bottom:90px;display:flex;flex-direction:column;gap:8px;font:8px "DM Mono",monospace;color:#797f81}.contact-main aside p{color:#fff}.contact-orbit{position:absolute;width:650px;height:650px;border:1px solid #ffffff20;border-radius:50%;right:-100px;top:80px}.contact-orbit:before,.contact-orbit:after{content:"";position:absolute;border:1px solid #ffffff12;border-radius:50%}.contact-orbit:before{inset:15%}.contact-orbit:after{inset:33%;background:radial-gradient(circle,#9aa0a118,transparent 70%)}.contact-foot{height:44px;margin:0 5vw;border-top:1px solid #ffffff25;display:flex;align-items:center;justify-content:space-between;font:8px "DM Mono",monospace;color:#737a7c}.contact-foot a{color:#aab0b1;text-decoration:none}
@media(max-width:800px){.cinema-header,.inner-header{height:68px;padding:0 6vw}.cinema-header nav,.inner-header nav{position:absolute;top:68px;left:0;right:0;padding:25px 6vw;background:#111416;display:none;flex-direction:column;gap:19px}.cinema-header nav.open,.inner-header nav.open{display:flex}.cinema-header .menu-toggle,.inner-header .menu-toggle{display:flex;margin-left:auto;border:0;background:none;flex-direction:column;gap:6px}.cinema-header .menu-toggle i,.inner-header .menu-toggle i{width:25px;height:1px;background:currentColor}.cinema-stage{min-height:760px}.cinema-copy{left:6vw;right:6vw;top:17%}.cinema-copy h1{font-size:49px}.cinema-copy>p:not(.cinema-kicker) br{display:none}.cinema-portals{left:6vw;right:6vw;bottom:66px;width:auto;grid-template-columns:1fr}.cinema-portals a{min-height:70px;border-right:1px solid #ffffff3d;flex-direction:row;align-items:center;gap:15px}.cinema-portals strong{margin:0}.cinema-portals span{margin-left:auto;margin-right:25px}.cinema-portals b{top:26px}.cinema-foot{left:6vw;right:6vw;bottom:14px}.profile-hero{padding:70px 6vw 75px;grid-template-columns:1fr;gap:30px}.page-index{display:none}.profile-hero h1{font-size:58px}.profile-hero figure{max-width:380px}.profile-story{padding:75px 6vw;grid-template-columns:1fr;gap:40px}.software-section,.capability-section,.career-section{padding:75px 6vw}.software-grid,.capability-grid{grid-template-columns:1fr 1fr}.software-grid article{padding:24px;min-height:245px}.capability-grid article{min-height:220px;padding:22px}.career-section article{grid-template-columns:1fr;gap:8px}.career-section p{margin:4px 0}.inner-footer{padding:75px 6vw 25px;grid-template-columns:1fr}.inner-footer>a{grid-template-columns:65px 1fr auto}.inner-footer>p{grid-column:span 1}.portfolio-main{padding:70px 6vw 80px}.portfolio-title{display:block;margin-bottom:45px}.portfolio-title h1{font-size:60px}.portfolio-title>p{margin-top:35px}.film-grid{grid-template-columns:1fr 1fr;gap:10px}.film-card,.film-card.film-wide{grid-column:span 1;min-height:210px}.film-card span{padding:15px}.film-card b{font-size:15px}.film-card strong{display:none}.portfolio-footer{padding:70px 6vw 25px}.project-page .inner-header{position:absolute}.project-footer{padding:30px 6vw}.contact-main{padding:100px 6vw 70px;align-items:flex-start}.contact-main h1{font-size:57px;margin-top:35px}.contact-main section>a{grid-template-columns:1fr auto;margin-top:55px}.contact-main section>a small{grid-column:span 2;margin-bottom:10px}.contact-main section>a strong{font-size:35px}.contact-main aside{left:6vw;right:auto;bottom:60px}.contact-orbit{width:480px;height:480px;right:-280px}.contact-foot{margin:0 6vw}.contact-foot span:last-child{display:none}}

/* Full-screen work carousel, shaped around the reference site's homepage rhythm. */
.showcase-home{background:#090a0b;color:#fff;overflow:hidden}.showcase-nav{height:82px;position:fixed;z-index:10;inset:0 0 auto;display:flex;align-items:center;padding:0 4vw;border-bottom:1px solid #ffffff2c}.showcase-mark{color:#fff;text-decoration:none;font-size:24px;font-weight:600;letter-spacing:-.08em}.showcase-mark span{display:block;font:8px "DM Mono",monospace;letter-spacing:.14em;color:#a2a5a5;margin-top:5px}.showcase-nav nav{display:flex;gap:30px;margin-left:auto}.showcase-nav nav a{color:#fff;text-decoration:none;font:10px "DM Mono",monospace;display:flex;flex-direction:column;gap:5px;padding:10px 0}.showcase-nav nav a small{font:10px "Noto Sans SC",sans-serif;color:#bfc1c0}.showcase-nav nav a.active{color:#fff}.showcase{height:100vh;min-height:680px;position:relative;overflow:hidden}.showcase-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s linear .9s}.showcase-slide.active{opacity:1;visibility:visible;transition:opacity .9s ease}.showcase-slide video{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.08)}.showcase-shade{position:absolute;inset:0;background:linear-gradient(90deg,#08090ae8 0%,#08090a9c 36%,#08090a22 72%,#08090a88),linear-gradient(0deg,#08090ac7 0%,transparent 50%)}.showcase-copy{position:absolute;z-index:3;left:9vw;top:27%;max-width:650px}.showcase-eyebrow{font:9px "DM Mono",monospace;letter-spacing:.18em;color:#c2c4c3}.showcase-copy h1{font-size:clamp(65px,9vw,145px);line-height:.86;font-weight:300;letter-spacing:-.09em;margin:26px 0 16px}.showcase-subtitle{font:11px "DM Mono",monospace;letter-spacing:.17em;color:#d4d6d5;margin:0}.showcase-description{max-width:400px;margin:24px 0;color:#c7c9c8;font-size:14px;line-height:1.9}.showcase-link{display:inline-flex;gap:38px;border-bottom:1px solid #ffffff75;padding:0 0 9px;color:#fff;text-decoration:none;font-size:12px}.showcase-link b{font-size:17px;font-weight:300}.showcase-controls{position:absolute;z-index:4;left:9vw;bottom:17%;display:flex;align-items:center;gap:18px}.showcase-arrow{width:43px;height:43px;border:1px solid #ffffff5f;background:#0b0c0cb3;color:#fff;font-size:17px;cursor:pointer;transition:.25s}.showcase-arrow:hover{background:#fff;color:#111}.showcase-count{display:flex;align-items:center;gap:10px;font:10px "DM Mono",monospace;letter-spacing:.12em}.showcase-count b{font-size:15px;font-weight:400}.showcase-count i{display:block;width:42px;height:1px;background:#ffffff65}.showcase-count span{color:#979b9a}.showcase-rail{position:absolute;z-index:4;right:4vw;bottom:13%;display:flex;gap:2px}.showcase-rail button{width:120px;min-height:60px;padding:10px;background:#0a0b0bb0;border:1px solid #ffffff2d;color:#8e9291;text-align:left;cursor:pointer;transition:.3s}.showcase-rail button span{display:block;font:8px "DM Mono",monospace;margin-bottom:7px}.showcase-rail button b{font-size:11px;font-weight:400}.showcase-rail button.active{color:#fff;background:#ffffff25;border-color:#ffffff9b}.showcase-bottom{position:absolute;z-index:4;bottom:23px;left:4vw;right:4vw;display:flex;justify-content:space-between;align-items:center;font:8px "DM Mono",monospace;letter-spacing:.14em;color:#a1a4a3}.showcase-bottom a{color:#fff;text-decoration:none}
@media(max-width:800px){.showcase-nav{height:68px;padding:0 6vw}.showcase-nav nav{position:absolute;top:68px;left:0;right:0;display:none;padding:22px 6vw;background:#0a0b0c;flex-direction:column;gap:8px}.showcase-nav nav.open{display:flex}.showcase-nav .menu-toggle{display:flex;margin-left:auto;border:0;background:none;flex-direction:column;gap:6px}.showcase-nav .menu-toggle i{width:24px;height:1px;background:#fff}.showcase{min-height:720px}.showcase-copy{left:6vw;right:6vw;top:22%}.showcase-copy h1{font-size:59px}.showcase-description{font-size:13px;max-width:310px}.showcase-controls{left:6vw;bottom:23%}.showcase-rail{left:6vw;right:6vw;bottom:11%;overflow:auto}.showcase-rail button{min-width:112px}.showcase-bottom{left:6vw;right:6vw;bottom:18px}.showcase-bottom span:nth-child(2){display:none}}

/* Personal CV page: large editorial profile, tool cards, and skill cards. */
.cv-page{background:#f6f5f1;color:#191d20}.cv-nav{height:80px;padding:0 5vw;display:flex;align-items:center;border-bottom:1px solid #d6d4ce;background:#faf9f6}.cv-brand{color:#191d20;text-decoration:none;display:flex;align-items:center;gap:12px}.cv-brand b{font-size:24px;letter-spacing:-.08em}.cv-brand span{font:8px "DM Mono",monospace;letter-spacing:.11em;line-height:1.5;color:#777975}.cv-nav nav{display:flex;gap:31px;margin-left:auto}.cv-nav nav a{color:#565b5e;text-decoration:none;font:10px "DM Mono",monospace;display:flex;flex-direction:column;gap:4px;padding:8px 0}.cv-nav nav a small{font:10px "Noto Sans SC",sans-serif;color:#979997}.cv-nav nav a.active{color:#111;border-bottom:1px solid #111}.cv-intro{min-height:690px;padding:108px 11vw 95px;display:grid;grid-template-columns:1.1fr .65fr;gap:9vw;align-items:center}.cv-label,.cv-section header p,.cv-experience header p{font:9px "DM Mono",monospace;letter-spacing:.16em;color:#69726f}.cv-intro h1{font-size:clamp(60px,8vw,124px);font-weight:400;line-height:.8;letter-spacing:-.095em;margin:25px 0 0}.cv-intro h1 span{display:block;font-size:.25em;letter-spacing:.03em;margin-top:30px;color:#777f7d}.cv-meta{font:10px "DM Mono",monospace;letter-spacing:.12em;margin-top:26px;color:#252b2d}.cv-summary{font-size:14px;line-height:2;color:#656d6e;max-width:520px;margin:30px 0}.cv-intro-copy>a{font-size:12px;color:#1b2427;text-decoration:none;border-bottom:1px solid #606969;padding-bottom:8px;display:inline-flex;gap:33px}.avatar-card{margin:0;position:relative;background:#dce5e6;overflow:hidden;box-shadow:18px 18px 0 #1e2528}.avatar-art{height:450px;position:relative;background:linear-gradient(150deg,#9bb6bd,#dfe7e6 58%,#bacdce);overflow:hidden}.avatar-glow{position:absolute;width:260px;height:260px;border-radius:50%;background:#edf8f4a8;top:32px;left:50%;transform:translateX(-50%);filter:blur(6px)}.avatar-body{position:absolute;width:210px;height:200px;border-radius:48% 48% 0 0;background:#27363b;left:50%;bottom:-70px;transform:translateX(-50%)}.avatar-neck{position:absolute;width:46px;height:64px;background:#dfa983;left:50%;top:248px;transform:translateX(-50%);z-index:2}.avatar-head{position:absolute;width:165px;height:192px;border-radius:48% 48% 43% 43%;background:#edbd99;top:86px;left:50%;transform:translateX(-50%);z-index:3;box-shadow:inset -12px -3px #dc9e79}.avatar-ear{position:absolute;width:24px;height:38px;border-radius:50%;background:#e5ae88;top:90px}.avatar-ear.left{left:-14px}.avatar-ear.right{right:-14px}.avatar-hair{position:absolute;top:-11px;left:8px;width:148px;height:72px;border-radius:55% 45% 20% 20%;background:#20282b;transform:rotate(-4deg)}.avatar-glasses{position:absolute;left:25px;top:76px;display:flex;align-items:center;gap:10px}.avatar-glasses i{width:48px;height:35px;border:4px solid #263134;border-radius:10px;background:#b9dce244}.avatar-glasses b{position:absolute;width:12px;height:4px;background:#263134;left:49px}.avatar-eyes{position:absolute;top:91px;left:43px;display:flex;gap:41px}.avatar-eyes i{width:8px;height:8px;border-radius:50%;background:#243033}.avatar-nose{position:absolute;width:10px;height:18px;border-right:2px solid #b67759;border-bottom:2px solid #b67759;top:105px;left:77px;border-radius:0 0 5px 0}.avatar-mouth{position:absolute;width:25px;height:10px;border-bottom:2px solid #a85e57;border-radius:50%;top:141px;left:70px}.avatar-shirt{position:absolute;z-index:1;bottom:0;left:50%;width:194px;height:130px;background:#46616a;transform:translateX(-50%);clip-path:polygon(0 30%,38% 0,50% 19%,62% 0,100% 30%,100% 100%,0 100%)}.avatar-laptop{position:absolute;z-index:5;width:145px;height:78px;bottom:15px;right:18px;border-radius:6px 6px 0 0;background:#273437;transform:skewY(-7deg);box-shadow:0 7px #788c8f}.avatar-laptop span{position:absolute;inset:0;display:grid;place-items:center;color:#c8ebe9;font:20px "DM Mono",monospace}.avatar-card figcaption{display:flex;justify-content:space-between;gap:10px;padding:13px 15px;background:#20282b;color:#e8eeec;font:8px "DM Mono",monospace;letter-spacing:.08em}.avatar-card figcaption b{font-weight:400;color:#b4cecc}.cv-section,.cv-experience{padding:112px 8.5vw}.cv-section header{display:flex;align-items:end;justify-content:space-between;margin-bottom:55px}.cv-section header h2,.cv-experience h2{font-size:clamp(44px,5.4vw,82px);letter-spacing:-.075em;line-height:.9;margin:15px 0 0;font-weight:400}.cv-section header h2 span{font-size:.31em;letter-spacing:.04em;color:#878f8b}.cv-section header em{max-width:290px;font-size:12px;line-height:1.8;font-style:normal;color:#737c79}.cv-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.cv-card-grid article{min-height:275px;padding:28px;background:#fff;border:1px solid #deded8;transition:transform .3s,box-shadow .3s}.cv-card-grid article:hover{transform:translateY(-5px);box-shadow:9px 9px 0 #1f292b}.app-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:7px;color:#fff;font:12px "DM Mono",monospace;margin-bottom:36px}.app-icon.orange{background:#e77937}.app-icon.red{background:#e35b53}.app-icon.gray{background:#3d4446}.app-icon.blue{background:#5266be}.app-icon.navy{background:#304b71}.app-icon.cyan{background:#208caa}.cv-card-grid h3{font-size:17px;margin:0 0 12px}.cv-card-grid p{font-size:12px;color:#6b7475;line-height:1.85}.cv-skills{background:#202a2d;color:#f3f5f1}.cv-skills header p{color:#96a7a5}.cv-skills header h2 span{color:#a0a9a6}.cv-skills header em{color:#aeb8b6}.cv-skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#536063;border:1px solid #536063}.cv-skill-grid article{min-height:290px;padding:27px;background:#263236;position:relative}.cv-skill-grid article>span{font:9px "DM Mono",monospace;color:#95aaa8}.skill-symbol{width:43px;height:43px;margin:39px 0 27px;position:relative}.symbol-box{border:1px solid #c4d2cf;transform:rotate(30deg) skewY(-12deg)}.symbol-light{border:1px solid #c4d2cf;border-radius:50%;box-shadow:0 -12px 0 -11px #c4d2cf,0 12px 0 -11px #c4d2cf,12px 0 0 -11px #c4d2cf,-12px 0 0 -11px #c4d2cf}.symbol-flow:before,.symbol-flow:after{content:"";position:absolute;border:1px solid #c4d2cf;border-radius:50%;width:37px;height:18px;transform:rotate(-28deg)}.symbol-flow:before{top:5px}.symbol-flow:after{top:20px;left:9px}.symbol-layer:before,.symbol-layer:after{content:"";position:absolute;width:30px;height:19px;border:1px solid #c4d2cf;transform:skewY(-20deg)}.symbol-layer:before{top:6px}.symbol-layer:after{top:15px;left:8px}.symbol-frame{border:1px solid #c4d2cf;border-radius:50% 50% 0 50%}.symbol-grid{background:linear-gradient(90deg,transparent 31%,#c4d2cf 32%,#c4d2cf 34%,transparent 35%,transparent 65%,#c4d2cf 66%,#c4d2cf 68%,transparent 69%),linear-gradient(transparent 31%,#c4d2cf 32%,#c4d2cf 34%,transparent 35%,transparent 65%,#c4d2cf 66%,#c4d2cf 68%,transparent);border:1px solid #c4d2cf}.cv-skill-grid h3{font-size:19px;margin:0 0 13px;font-weight:400}.cv-skill-grid h3 small{display:block;font:8px "DM Mono",monospace;color:#92a8a6;margin-top:7px}.cv-skill-grid p{font-size:12px;color:#bac3c1;line-height:1.85;margin:0}.cv-experience{background:#edece7}.cv-experience header{margin-bottom:50px}.cv-timeline{border-top:1px solid #c7c8c1}.cv-timeline article{display:grid;grid-template-columns:170px 1.2fr .8fr;gap:36px;padding:27px 0;border-bottom:1px solid #c7c8c1}.cv-timeline time{font:10px "DM Mono",monospace;color:#69716e}.cv-timeline h3{font-size:17px;margin:0 0 8px}.cv-timeline b{font-size:11px;color:#6e7775}.cv-timeline p{font-size:12px;line-height:1.8;color:#6d7674;margin:0}.cv-footer{padding:95px 8.5vw 26px;background:#0f1517;color:#f4f7f5}.cv-footer>p{font-size:13px;margin:0}.cv-footer h2{font-size:clamp(48px,6vw,96px);font-weight:400;letter-spacing:-.08em;margin:11px 0 50px}.cv-footer>a{max-width:650px;display:grid;grid-template-columns:90px 1fr auto;align-items:end;border-bottom:1px solid #ffffff55;padding-bottom:18px;color:#fff;text-decoration:none}.cv-footer>a span{font:9px "DM Mono",monospace;color:#aeb7b4}.cv-footer>a b{font-size:clamp(25px,3.6vw,54px);font-weight:300;letter-spacing:-.06em}.cv-footer>a i{font-size:24px;font-style:normal}.cv-footer>small{display:block;margin-top:90px;border-top:1px solid #ffffff27;padding-top:16px;font:8px "DM Mono",monospace;letter-spacing:.1em;color:#7e8785}
@media(max-width:800px){.cv-nav{height:68px;padding:0 6vw}.cv-nav nav{display:none;position:absolute;top:68px;left:0;right:0;padding:22px 6vw;background:#f6f5f1;flex-direction:column;gap:6px;border-bottom:1px solid #d6d4ce}.cv-nav nav.open{display:flex}.cv-nav .menu-toggle{display:flex;margin-left:auto;border:0;background:transparent;flex-direction:column;gap:6px}.cv-nav .menu-toggle i{width:24px;height:1px;background:#111}.cv-intro{padding:70px 6vw;grid-template-columns:1fr;gap:44px}.cv-intro h1{font-size:68px}.avatar-card{max-width:370px;box-shadow:10px 10px 0 #1e2528}.cv-section,.cv-experience{padding:75px 6vw}.cv-section header{display:block;margin-bottom:35px}.cv-section header h2{font-size:48px}.cv-section header em{display:block;margin-top:25px}.cv-card-grid,.cv-skill-grid{grid-template-columns:1fr 1fr;gap:8px}.cv-card-grid article{padding:20px;min-height:250px}.cv-card-grid article .app-icon{margin-bottom:28px}.cv-card-grid h3{font-size:15px}.cv-skill-grid article{padding:20px;min-height:260px}.cv-timeline article{grid-template-columns:1fr;gap:7px}.cv-timeline p{margin-top:8px}.cv-footer{padding:70px 6vw 22px}.cv-footer>a{grid-template-columns:65px 1fr auto}.cv-footer>small{margin-top:65px}}

/* Reference-aligned CV rhythm: a quiet editorial intro followed by symmetric content rows. */
.cv-page{background:#fff}.cv-nav{background:#fff;border-color:#e7e6e1}.cv-intro{max-width:1320px;margin:auto;min-height:620px;padding-top:120px;padding-bottom:110px;grid-template-columns:1fr 320px;gap:12vw}.cv-intro-copy{max-width:670px}.cv-label{border-left:1px solid #222;padding-left:11px}.cv-intro h1{font-weight:300}.cv-intro h1 span{color:#24282a}.cv-meta{padding-top:11px;border-top:1px solid #e5e3de;max-width:430px}.cv-summary{max-width:565px}.avatar-card{box-shadow:none;border:1px solid #dcdedb}.avatar-art{height:410px}.cv-section{padding-top:125px;padding-bottom:125px;max-width:1440px;margin:auto}.cv-section header{display:block;text-align:center;margin-bottom:65px}.cv-section header p{display:inline-block;border-bottom:1px solid #bfc3c0;padding-bottom:8px}.cv-section header h2{font-size:clamp(40px,4.6vw,68px);margin-top:18px}.cv-section header em{display:block;margin:21px auto 0;max-width:440px}.cv-card-grid{gap:0;border-top:1px solid #dedfdb;border-left:1px solid #dedfdb;background:transparent}.cv-card-grid article{min-height:300px;border:0;border-right:1px solid #dedfdb;border-bottom:1px solid #dedfdb;box-shadow:none!important}.cv-card-grid article:hover{transform:none;background:#f6f7f4}.cv-skills{max-width:none;padding-left:8.5vw;padding-right:8.5vw;background:#f3f3ef;color:#1d2223}.cv-skills header p,.cv-skills header em{color:#747b78}.cv-skills header h2 span{color:#797f7d}.cv-skill-grid{border-color:#d5d7d2;background:#d5d7d2}.cv-skill-grid article{background:#fff;min-height:300px}.cv-skill-grid article>span,.cv-skill-grid h3 small{color:#667270}.cv-skill-grid h3{color:#1c2325}.cv-skill-grid p{color:#67716f}.skill-symbol{filter:invert(1)}.cv-experience{max-width:1200px;margin:auto;padding-top:125px;padding-bottom:125px;background:#fff}.cv-experience header{text-align:center;margin-bottom:65px}.cv-experience header p{display:inline-block;border-bottom:1px solid #bfc3c0;padding-bottom:8px}.cv-timeline article{grid-template-columns:180px 1fr;max-width:900px;margin:auto}.cv-timeline article>div{display:grid;grid-template-columns:1fr 120px 1.5fr;gap:25px;align-items:start}.cv-timeline p{grid-column:3;margin:0}.cv-footer{background:#faf9f6;color:#161c1e;text-align:center}.cv-footer>p{margin-bottom:0}.cv-footer h2{font-size:clamp(48px,5vw,76px);margin:12px 0 42px}.cv-footer>a{margin:auto;border-color:#8f9490;color:#161c1e;text-align:left}.cv-footer>a span{color:#676e69}.cv-footer>small{border-color:#d3d2cc;color:#7d817d}
@media(max-width:800px){.cv-intro{min-height:0;padding-top:75px;padding-bottom:75px;grid-template-columns:1fr}.cv-section{padding-top:80px;padding-bottom:80px}.cv-card-grid{gap:0}.cv-skills{padding-left:6vw;padding-right:6vw}.cv-experience{padding-top:80px;padding-bottom:80px}.cv-timeline article>div{display:block}.cv-timeline p{margin-top:10px}.cv-footer{text-align:left}.cv-footer>a{margin:0}}

/* Keep the Chinese name as a refined horizontal wordmark, never vertical text. */
.cv-intro-copy{min-width:0}.cv-intro h1{display:flex;flex-direction:column;align-items:flex-start;gap:13px;margin:22px 0 0;line-height:1}.cv-intro h1 .name-cn{display:block;white-space:nowrap;font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(42px,4.1vw,68px);font-weight:500;letter-spacing:.13em;line-height:1.05}.cv-intro h1 .name-en{display:block;margin:0;font-family:Manrope,sans-serif;font-size:15px;font-weight:500;letter-spacing:.27em;line-height:1;text-transform:uppercase;color:#6f7976}.cv-meta{margin-top:25px;max-width:520px}.cv-summary{max-width:540px}@media(max-width:800px){.cv-intro h1 .name-cn{font-size:48px;letter-spacing:.08em}.cv-intro h1 .name-en{font-size:12px}}

/* Compact tool palette placed beside the profile character. */
.cv-intro{grid-template-columns:minmax(0,1fr) 320px 245px;gap:48px}.cv-intro .software-aside{display:block;align-self:start;padding:0;margin:0;max-width:245px}.software-aside header{display:block;text-align:left;margin:0 0 16px}.software-aside header p{font-size:8px;padding:0;border:0}.software-aside header h2{font-size:22px;line-height:1.1;margin:8px 0}.software-aside header h2 span{display:none}.software-aside header em{display:none}.software-aside .cv-card-grid{grid-template-columns:repeat(3,1fr);gap:6px;border:0}.software-aside .cv-card-grid article{min-height:0;padding:8px;border:1px solid #e2e3df;background:#fff;text-align:center}.software-aside .cv-card-grid .app-icon{width:38px;height:38px;margin:0 auto 6px;padding:5px;border-radius:8px}.software-aside .cv-card-grid h3{font-size:8px;line-height:1.25;margin:0}.software-aside .cv-card-grid p{display:none}@media(max-width:1000px){.cv-intro{grid-template-columns:1fr 290px}.cv-intro .software-aside{grid-column:2;max-width:290px}.software-aside .cv-card-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.cv-intro{grid-template-columns:1fr}.cv-intro .software-aside{grid-column:auto;max-width:none;margin-top:-18px}.software-aside .cv-card-grid{grid-template-columns:repeat(3,1fr)}.software-aside header{text-align:left}}
.cv-intro{grid-template-columns:minmax(360px,1fr) 480px 245px;gap:38px}.cv-intro-copy{max-width:500px}.cv-summary{font-size:14px;line-height:1.9;max-width:480px}.cv-meta{max-width:480px}.avatar-card{width:100%}.profile-portrait{height:auto;aspect-ratio:.76;object-fit:cover}@media(max-width:1180px){.cv-intro{grid-template-columns:minmax(310px,1fr) 360px 230px;gap:28px}.cv-summary{max-width:370px}}@media(max-width:1000px){.cv-intro{grid-template-columns:1fr 300px}.cv-intro-copy{max-width:540px}.cv-summary{max-width:520px}.cv-intro .software-aside{grid-column:2}}

/* Editorial identity composition: declaration, portrait, then a tool wall. */
.cv-page{background:#f1f2ef}.cv-intro{max-width:1540px;min-height:720px;padding:72px 6vw;grid-template-columns:minmax(320px,.8fr) minmax(430px,1.16fr) 270px;gap:0;align-items:stretch}.cv-intro-copy{max-width:none;padding:58px 44px 42px;background:#172125;color:#f4f6f3;display:flex;flex-direction:column;justify-content:flex-end}.cv-label{color:#a9c6c0;border-left-color:#a9c6c0}.cv-intro h1{gap:17px;margin:24px 0 0}.cv-intro h1 .name-cn{color:#f5f6f2;font-size:clamp(48px,5.2vw,82px);letter-spacing:.08em}.cv-intro h1 .name-en{color:#a9cfc6;font-size:13px;letter-spacing:.35em}.cv-meta{border-color:#ffffff3b;color:#c6d1ce;margin-top:30px;padding-top:14px}.cv-summary{color:#c8d0cd;font-size:13px;line-height:2;margin:30px 0}.cv-intro-copy>a{margin-top:auto;align-self:flex-start;color:#eef5f1;border-color:#a9c6c0}.avatar-card{border:0;align-self:stretch;background:#b6d8db}.profile-portrait{height:100%;min-height:540px;aspect-ratio:auto;object-position:center;background:#b6d8db}.avatar-card figcaption{padding:15px 20px;background:#172125}.cv-intro .software-aside{max-width:none;background:#d8ebe7;color:#172125;padding:34px 24px;margin:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.software-aside header{margin-bottom:24px}.software-aside header p{color:#52706b;font-size:8px}.software-aside header h2{font-size:31px;letter-spacing:-.07em;margin:8px 0}.software-aside .cv-card-grid{grid-template-columns:repeat(3,1fr);gap:7px}.software-aside .cv-card-grid article{padding:12px 5px 10px;background:#f7faf8;border-color:#c2d5d0}.software-aside .cv-card-grid .app-icon{width:44px;height:44px;margin-bottom:8px}.software-aside .cv-card-grid h3{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-page{background:#10191c}.contact-main{max-width:1540px;margin:auto;min-height:calc(100vh - 80px);padding:80px 6vw;grid-template-columns:minmax(350px,.88fr) minmax(500px,1.12fr);gap:0;background:linear-gradient(115deg,#0c1215 0%,#111d20 51%,#17393c 100%)}.contact-main:after{background-image:linear-gradient(90deg,#ffffff08 1px,transparent 1px),linear-gradient(#ffffff07 1px,transparent 1px);background-size:110px 110px;mask-image:linear-gradient(90deg,#000,transparent 90%)}.contact-lead{padding:55px 58px 55px 0;display:flex;flex-direction:column;justify-content:flex-end;border-right:1px solid #ffffff22}.contact-lead h1{font-size:clamp(62px,6.3vw,104px);line-height:.86;margin:27px 0 29px;letter-spacing:-.1em}.contact-lead h1 span{color:#8ec9bd}.contact-lead>p:last-child{max-width:370px;font-size:13px}.contact-details{align-self:center;border:0;padding:0 0 0 64px}.contact-line{grid-template-columns:105px 1fr auto;padding:29px 0}.contact-line strong{font-size:clamp(25px,3.1vw,47px);letter-spacing:-.065em}.wechat-card{margin-top:16px;padding:30px 0;border-top:1px solid #ffffff2e;grid-template-columns:154px 1fr}.wechat-card img{width:154px;padding:7px}.wechat-card strong{font-size:28px}.contact-foot{max-width:1540px;margin:0 auto}@media(max-width:1000px){.cv-intro{grid-template-columns:1fr 1fr;padding:50px 6vw}.cv-intro .software-aside{grid-column:span 2}.avatar-card{min-height:500px}.cv-intro-copy{padding:42px}.contact-main{grid-template-columns:1fr;padding:70px 8vw}.contact-lead{border-right:0;border-bottom:1px solid #ffffff22;padding:35px 0 48px}.contact-details{padding:42px 0 0;max-width:720px;width:100%}}@media(max-width:800px){.cv-intro{display:grid;grid-template-columns:1fr;padding:0;gap:0}.cv-intro-copy{padding:56px 7vw 46px;min-height:480px}.cv-intro h1 .name-cn{font-size:56px}.avatar-card{min-height:0}.profile-portrait{min-height:0;height:auto;aspect-ratio:.83}.cv-intro .software-aside{grid-column:auto;padding:46px 7vw}.contact-main{padding:65px 6vw}.contact-lead{padding:25px 0 40px}.contact-lead h1{font-size:64px}.contact-details{padding-top:35px}.contact-line strong{font-size:25px}.wechat-card{grid-template-columns:116px 1fr}.wechat-card img{width:116px}.wechat-card strong{font-size:20px}}
.project-still-grid .still-card span{gap:5px}.project-still-grid .still-card span small{font:8px "DM Mono",monospace;letter-spacing:.12em;color:#b6ddd6}.project-still-grid .still-card{min-height:225px}.project-still-grid .still-card img{min-height:225px}.project-still-grid .still-card.still-wide{min-height:290px}.project-still-grid .still-card.still-wide img{min-height:290px}@media(max-width:800px){.project-still-grid .still-card,.project-still-grid .still-card.still-wide{min-height:155px}.project-still-grid .still-card img,.project-still-grid .still-card.still-wide img{min-height:155px}.project-still-grid .still-card span small{font-size:7px}}
.project-index{padding-top:84px}.project-index header{margin-bottom:55px}.project-collection{border-top:1px solid #ffffff2d}.project-row{display:grid;grid-template-columns:210px 1fr;gap:42px;padding:34px 0;border-bottom:1px solid #ffffff2d}.project-copy{padding-top:8px}.project-copy small{font:9px "DM Mono",monospace;letter-spacing:.12em;color:#9dbab4}.project-copy h3{font-size:25px;font-weight:400;letter-spacing:-.05em;margin:13px 0}.project-copy p{font-size:11px;line-height:1.9;color:#a8b2b0;margin:0}.project-frames{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:9px;min-height:215px}.project-frames button{min-width:0;padding:0;border:0;background:#151b1e;cursor:pointer;overflow:hidden;position:relative}.project-frames button:first-child{grid-row:span 1}.project-frames img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s ease,filter .35s}.project-frames button:hover img{transform:scale(1.045);filter:brightness(.78)}.project-row:nth-child(even) .project-frames{grid-template-columns:1fr 1fr 1.5fr}.project-row:nth-child(even) .project-frames button:first-child{order:3}@media(max-width:800px){.project-index{padding-top:55px}.project-index header{margin-bottom:34px}.project-row{grid-template-columns:1fr;gap:22px;padding:30px 0}.project-copy h3{font-size:23px}.project-copy p{max-width:370px}.project-frames{min-height:150px;gap:6px}.project-row:nth-child(even) .project-frames{grid-template-columns:1.5fr 1fr 1fr}.project-row:nth-child(even) .project-frames button:first-child{order:0}}

/* The extended still archive is paced as a second act, rather than a loose image dump. */
.project-row-studio{padding-top:48px;padding-bottom:48px}.project-row-studio .project-copy{position:relative}.project-row-studio .project-copy:before{content:"SELECTED / 2026";display:block;margin-bottom:24px;font:8px "DM Mono",monospace;letter-spacing:.15em;color:#5f8f87}.project-row-studio .project-frames{min-height:250px}.project-row-studio:nth-child(7n+1) .project-frames{grid-template-columns:1.7fr 1fr 1.12fr}.project-row-studio:nth-child(7n+2) .project-frames{grid-template-columns:1fr 1.55fr 1fr}.project-row-studio:nth-child(7n+3) .project-frames{grid-template-columns:1.15fr 1fr 1.7fr}@media(max-width:800px){.project-row-studio{padding-top:35px;padding-bottom:35px}.project-row-studio .project-copy:before{margin-bottom:16px}.project-row-studio .project-frames{min-height:165px}.project-row-studio:nth-child(7n+1) .project-frames,.project-row-studio:nth-child(7n+2) .project-frames,.project-row-studio:nth-child(7n+3) .project-frames{grid-template-columns:1.5fr 1fr 1fr}}
.mobile-video-link{display:none;color:#d8e6e2;text-decoration:none;font-size:12px;margin-top:16px;border-bottom:1px solid #7c8b88;padding-bottom:7px}@media(max-width:800px){.film-card video{display:block;pointer-events:none}.mobile-video-link{display:inline-block}.video-wrap video{width:100%;min-height:220px;object-fit:contain}}

/* A tighter portfolio rhythm keeps the gallery curated rather than oversized. */
.portfolio-main{max-width:1440px;margin:0 auto;padding:78px 7vw 96px}.portfolio-title{margin-bottom:48px}.portfolio-title h1{font-size:clamp(48px,6.3vw,94px);line-height:.88}.portfolio-title>p{max-width:360px;font-size:12px}.still-section{padding:74px 0 12px}.still-section header{margin-bottom:24px}.still-section h2{font-size:clamp(28px,3.3vw,46px)}.still-grid{gap:10px}.still-card{min-height:210px}.still-card img{min-height:210px}.work-filters{margin:62px 0 24px;padding-bottom:14px}.film-grid{gap:12px}.film-card{min-height:255px}.film-card span{padding:19px}.film-card b{font-size:19px}.portfolio-footer{padding-top:75px}@media(max-width:800px){.portfolio-main{padding:66px 6vw 72px}.portfolio-title{margin-bottom:35px}.portfolio-title h1{font-size:51px}.still-section{padding-top:54px}.still-card,.still-card.still-wide{min-height:150px}.still-card img{min-height:150px}.work-filters{margin-top:46px;margin-bottom:19px}.film-grid{gap:9px}.film-card,.film-card.film-wide{min-height:175px}.film-card span{padding:12px}.film-card b{font-size:14px}}
.mobile-nav-loading{pointer-events:none;opacity:.72}@media(max-width:800px){.showcase-slide video{display:none}.showcase-slide{background:#101719}.showcase-slide.active{background:#101719}.showcase-slide.active:before{content:"";position:absolute;inset:0;background:url('assets/works/x4.jpg') center/cover;opacity:.78}.film-card video{background:#171d20}}

/* Dimensional detailing for the original cartoon character illustration. */
.avatar-art{background:radial-gradient(circle at 27% 24%,#e8fbf6 0 2%,transparent 21%),linear-gradient(145deg,#94c5ca 0%,#dcece7 47%,#8bb3bd 100%)}.avatar-orbit{position:absolute;border:1px solid #ffffff9e;border-radius:50%;opacity:.8}.orbit-a{width:310px;height:115px;top:78px;left:50%;transform:translateX(-50%) rotate(-19deg)}.orbit-b{width:225px;height:80px;top:130px;left:50%;transform:translateX(-50%) rotate(32deg);border-color:#5f9298}.avatar-shadow{position:absolute;width:215px;height:37px;border-radius:50%;background:#406e753d;bottom:27px;left:50%;transform:translateX(-50%);filter:blur(6px)}.avatar-chair{position:absolute;width:112px;height:160px;border-radius:50px 50px 17px 17px;background:linear-gradient(90deg,#1c2c31,#496a6f,#1f3034);left:50%;bottom:48px;transform:translateX(-50%);box-shadow:inset 13px 0 #637f83,inset -10px 0 #18262b}.avatar-body{background:linear-gradient(100deg,#16272d,#38565e 45%,#1f343b);box-shadow:inset 18px 0 #4e7076,inset -14px 0 #13242a}.avatar-neck{background:linear-gradient(90deg,#ca8e6c,#f2c4a1 48%,#c98b68);box-shadow:inset 8px 0 #bc7b5d}.avatar-head{background:linear-gradient(95deg,#c98968,#f3c5a1 49%,#d99875);box-shadow:inset 12px -3px #c88766,0 5px 9px #3f626854}.avatar-hair{height:76px;background:linear-gradient(110deg,#101619,#28383b 58%,#142024);box-shadow:inset 11px 0 #34494b}.avatar-fringe{position:absolute;width:80px;height:30px;top:21px;left:23px;border-radius:0 0 70% 25%;background:#172326;transform:rotate(-9deg)}.avatar-glasses i{background:linear-gradient(135deg,#d8ffff55,#749ea544);box-shadow:inset 0 0 0 1px #eaffff49}.avatar-shirt{background:linear-gradient(105deg,#25444d,#5d8b93 50%,#294750);box-shadow:inset 15px 0 #6d9ca1,inset -10px 0 #1e343b}.avatar-shirt i{position:absolute;width:40px;height:52px;border-left:1px solid #d5f2ec88;border-right:1px solid #d5f2ec88;left:50%;transform:translateX(-50%);top:22px}.avatar-laptop{background:linear-gradient(125deg,#172528,#50686b 50%,#1d2c30);box-shadow:0 8px #50696c,10px 12px 20px #1d343755}.avatar-laptop i{position:absolute;inset:5px;border:1px solid #99d4d045;border-radius:4px}.avatar-cube{position:absolute;right:28px;top:70px;width:41px;height:41px;background:linear-gradient(135deg,#f1d18c,#c7914d);transform:rotate(30deg) skewY(-11deg);box-shadow:8px 10px 16px #486b7055}.avatar-cube i,.avatar-cube b{position:absolute;background:#e8b96c}.avatar-cube i{width:42px;height:18px;left:12px;top:-10px;transform:skewX(-49deg)}.avatar-cube b{width:18px;height:42px;left:42px;top:-10px;transform:skewY(-41deg)}

/* WeChat mobile: render a local poster-only first screen with no media request. */
@media(max-width:800px){.showcase-slide{background:#111a1e}.showcase-slide video{display:block!important}.showcase-slide.active:before{display:none}.showcase{background:#111a1e}}

/* Profile rhythm: the declaration sits in the visual centre, with the action close to its copy. */
.cv-intro-copy{justify-content:center}.cv-intro-copy>a{margin-top:38px}.software-aside .cv-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.software-aside .cv-card-grid article{min-height:102px;padding:13px 7px 11px}.software-aside .cv-card-grid .app-icon{width:48px;height:48px;margin:0 auto 9px}.software-aside .cv-card-grid h3{font-size:9px}@media(max-width:800px){.cv-intro-copy{justify-content:center}.cv-intro-copy>a{margin-top:34px}.software-aside .cv-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Video work is deliberately split by process: generative AI first, commercial craft second. */
.video-collection{margin-top:54px}.video-collection:first-of-type{margin-top:0}.video-collection-head{display:flex;align-items:end;justify-content:space-between;gap:30px;padding:0 0 18px;border-bottom:1px solid #ffffff2b}.video-collection-head p{margin:0;font:9px "DM Mono",monospace;letter-spacing:.15em;color:#92bcb4}.video-collection-head h2{margin:10px 0 0;font-size:clamp(27px,3vw,42px);font-weight:400;letter-spacing:-.06em}.video-collection-head span{max-width:280px;color:#9da8a7;font-size:11px;line-height:1.7}.video-collection .film-grid{margin-top:16px}@media(max-width:800px){.video-collection{margin-top:43px}.video-collection-head{display:block;padding-bottom:15px}.video-collection-head h2{font-size:29px}.video-collection-head span{display:block;margin-top:10px;font-size:10px}.video-collection .film-grid{margin-top:10px}}
@media(max-width:800px){.portfolio-title{display:block}.portfolio-title div{max-width:none}.portfolio-title p{max-width:none}.project-collection{border-top-color:#2f3639}.project-row{padding:26px 0}.project-copy{padding-top:0}.project-copy small{display:block;margin-bottom:10px}.project-copy h3{font-size:21px;line-height:1.12;margin:0 0 10px}.project-copy p{font-size:11px;line-height:1.75;max-width:none}.project-frames{grid-template-columns:1fr 1fr!important;grid-auto-rows:minmax(118px,auto)}.project-frames button:first-child{grid-column:1 / -1;order:0!important}.film-card,.film-card.film-wide{min-height:164px;border-radius:16px;overflow:hidden}.film-card video{object-position:center center}.film-card span{background:linear-gradient(180deg,transparent 0,#0d1316c4 45%,#0c1215f5 100%)}.film-card small{font-size:8px}.film-card b{font-size:13px;line-height:1.1}.film-card i{display:block;font-size:10px;line-height:1.5}.portfolio-footer{padding-top:56px}.portfolio-footer h2{font-size:34px;line-height:.96}.portfolio-footer a{font-size:14px}.showcase-copy{width:min(100%,420px)}.showcase-title{font-size:clamp(54px,17vw,82px)}.showcase-title span{display:block;margin-top:10px;font-size:.28em}.showcase-bottom{display:grid;grid-template-columns:1fr;gap:8px}.showcase-controls{bottom:18px}.video-wrap video{border-radius:18px;background:#0e1215}.project-main{padding-bottom:48px}.project-meta h1{font-size:clamp(32px,10vw,44px);line-height:.95}.project-credit{display:grid;grid-template-columns:1fr;gap:6px}.mobile-video-link{margin-top:14px}}

/* Home title is intentionally compact: a signature over the moving artwork, not a competing headline. */
.showcase-glass .showcase-title{margin:18px 0 7px;font-family:Manrope,"Noto Sans SC",sans-serif;font-size:clamp(52px,7.2vw,106px);font-weight:500;line-height:.82;letter-spacing:-.09em;color:#fff;text-shadow:0 12px 35px #0004}.showcase-glass .showcase-title em{font-style:normal;font-weight:300;letter-spacing:-.075em;color:#a7d4cc}.showcase-title-cn{margin:13px 0 24px;font-size:11px;letter-spacing:.26em;color:#d9e9e5}.showcase-glass .showcase-link{margin-top:0}@media(max-width:800px){.showcase-glass .showcase-title{font-size:57px;line-height:.8}.showcase-title-cn{margin:11px 0 21px;font-size:9px;letter-spacing:.18em}}

/* Tool marks live directly on the soft-green field; the final item closes the grid as a full-width signature. */
.software-aside .cv-card-grid{gap:0;border-top:1px solid #88aaa3;border-left:1px solid #88aaa3}.software-aside .cv-card-grid article{min-height:104px;padding:14px 8px 11px;background:transparent;border:0;border-right:1px solid #88aaa3;border-bottom:1px solid #88aaa3}.software-aside .cv-card-grid article:last-child{grid-column:span 2}.software-aside .cv-card-grid .app-icon{width:49px;height:49px;padding:0;border:0;border-radius:0;background:transparent!important}.software-aside .cv-card-grid .app-icon img{mix-blend-mode:multiply}.software-aside .cv-card-grid h3{font-size:9px;font-weight:600;letter-spacing:.01em}@media(max-width:800px){.software-aside .cv-card-grid article:last-child{grid-column:span 2}}

/* A wide title plaque keeps the home mark closer to the visual centre than a tall card. */
.showcase-hud{left:50%;bottom:16.5vh;transform:translateX(-50%);width:min(720px,88vw);gap:16px}.showcase-hud .showcase-copy{padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;text-align:center}.showcase-glass .showcase-eyebrow{display:inline-block;padding:0 13px;border-left:1px solid #a9d4cc;border-right:1px solid #a9d4cc;color:#dbeae6;font-size:9px;line-height:1.15;letter-spacing:.24em}.showcase-glass .showcase-title{margin:24px 0 0;font-family:Manrope,"Helvetica Neue",sans-serif;font-size:clamp(62px,7.3vw,104px);font-weight:500;line-height:.86;letter-spacing:-.065em;white-space:normal;color:#fff}.showcase-glass .showcase-title span{display:block;margin-top:17px;font-family:"Noto Serif SC","Songti SC",serif;font-size:.3em;font-weight:400;line-height:1;letter-spacing:.2em;color:#b2ded5}.showcase-title-cn{margin:24px 0 29px;font-size:10px;font-weight:500;letter-spacing:.2em;color:#e1efeb}.showcase-hud .showcase-link{margin:0 auto;padding:0 3px 10px;font-size:13px}.showcase-hud .showcase-controls{border-radius:999px}.showcase-hud .showcase-bottom{padding-top:2px}@media(max-width:800px){.showcase-hud{bottom:30px;width:min(460px,88vw);gap:12px}.showcase-hud .showcase-copy{padding:0}.showcase-glass .showcase-eyebrow{font-size:8px;letter-spacing:.16em}.showcase-glass .showcase-title{font-size:clamp(53px,14vw,74px);letter-spacing:-.06em}.showcase-glass .showcase-title span{margin-top:13px;font-size:.34em;letter-spacing:.15em}.showcase-title-cn{margin:18px 0 23px;font-size:9px;letter-spacing:.1em}}

.site-icp{display:inline-flex;align-items:center;gap:6px;font:500 10px "DM Mono","Noto Sans SC",sans-serif;letter-spacing:.12em;text-decoration:none;opacity:.72;transition:opacity .25s ease,color .25s ease}
.site-icp:hover{opacity:1}
.site-icp:before{content:"";width:18px;height:1px;background:currentColor;opacity:.55}
.showcase-icp{position:absolute;right:110px;bottom:18px;transform:none;margin-left:0;color:#d9e7e3;opacity:.78}
.cv-footer .site-icp{display:inline-flex;margin-top:18px;color:#7d817d}
.portfolio-footer .site-icp{display:inline-flex;margin-top:18px;color:#666}
.contact-foot .site-icp{color:#9caea9}
.project-footer{align-items:center}
.project-footer-meta{display:flex;align-items:center;gap:26px}
.project-footer .site-icp{color:#5f6769}
@media(max-width:800px){.showcase-hud .showcase-bottom{display:grid;grid-template-columns:1fr;gap:8px}.showcase-icp{left:auto;right:88px;bottom:14px}.contact-foot{height:auto;min-height:44px;padding:12px 0;gap:10px;flex-wrap:wrap}.project-footer{display:grid;gap:14px}.project-footer-meta{gap:14px;flex-wrap:wrap}.cv-footer .site-icp,.portfolio-footer .site-icp{margin-top:14px}}
