:root{--ink:#202124;--muted:#929399;--line:#eeeef0;--red:#f44964;--paper:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:122px}body{margin:0;color:var(--ink);background:var(--paper);font:14px/1.7 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #f3a5b2;outline-offset:5px}.skip{position:fixed;top:-60px;left:20px;z-index:30;padding:10px 16px;background:var(--ink);color:white}.skip:focus{top:10px}.site-header{height:88px;margin:0 48px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px}.identity{display:inline-flex;align-items:center;gap:12px;font-size:18px;font-weight:650;letter-spacing:1px;flex:none}.identity-mark{width:39px;height:39px;border-radius:14px;background:#26272c;color:#fff;display:grid;place-items:center;font-size:21px;line-height:1;transform:rotate(-5deg)}.identity small{display:block;font-size:9px;letter-spacing:2px;font-weight:400;color:#96979d;line-height:1.3}.header-note{font-size:11px;color:#a0a1a7;letter-spacing:1px}.back-link{margin-left:auto;font-size:12px;color:#6b6c73;border:1px solid #e7e7eb;border-radius:30px;padding:7px 14px}.back-link:hover{border-color:#b9bac0;color:var(--ink)}main{max-width:1744px;margin:auto;padding:0 48px}.gallery-intro{padding:39px 0 27px;display:flex;justify-content:space-between;gap:30px;align-items:center}.eyebrow{font-size:9px;letter-spacing:2px;color:#a2a3a9}.gallery-intro h1{font-size:32px;font-weight:650;letter-spacing:-.7px;margin:7px 0 7px;line-height:1.4}.gallery-intro h1 span{color:var(--red)}.gallery-intro p{font-size:12px;color:#96979d;margin:0}.search{display:flex;align-items:center;gap:10px;background:#f7f7f8;border-radius:30px;padding:9px 15px;min-width:290px;color:#9b9ca3}.search>span{font-size:24px;line-height:1}.search input{width:100%;border:0;outline:0;background:none;color:#45464e;font-size:12px;min-width:0}.search input::placeholder{color:#acaeb5}.search kbd{font-family:inherit;font-size:10px;border:1px solid #e4e4e8;border-radius:4px;padding:0 5px}.gallery-section{padding-bottom:48px}.company-tabs{display:flex;gap:26px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#e6e7eb transparent;border-bottom:1px solid var(--line);padding:0 2px;position:sticky;top:0;z-index:10;background:#ffffffed;backdrop-filter:blur(14px)}.company-tabs button{position:relative;flex:none;border:0;background:none;padding:17px 0 15px;color:#909198;font-size:13px;white-space:nowrap}.company-tabs small{margin-left:4px;font-size:9px;color:#b8b9c0}.company-tabs button.active{color:#232429;font-weight:650}.company-tabs button.active::after{content:"";position:absolute;height:3px;width:30px;bottom:0;left:50%;transform:translateX(-50%);background:var(--red);border-radius:3px}.company-tabs button:hover{color:var(--ink)}.gallery-meta{display:flex;gap:25px;justify-content:space-between;align-items:center;font-size:10px;color:#a5a6ad;padding:18px 0 23px}.gallery-meta p{margin:0}.gallery-meta>span{white-space:nowrap}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}.cards[data-layout="masonry"]{display:block;position:relative}.cards[data-layout="masonry"]>.project-card{position:absolute;left:0;top:0}.project-card{min-width:0}.project-card[hidden]{display:none}.card-link{display:block;border-radius:18px}.cover{position:relative;border-radius:18px;overflow:hidden;border:1px solid #ededf0;background:#f5f5f7}.cover>img{width:100%;height:auto;display:block;transition:transform .25s}.card-link:hover .cover>img{transform:scale(1.025)}.cover-arrow{position:absolute;right:12px;bottom:12px;border-radius:50%;background:#ffffffdc;border:1px solid #ffffffb3;width:29px;height:29px;display:grid;place-items:center;font-size:18px;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}.card-link:hover .cover-arrow,.card-link:focus-visible .cover-arrow{opacity:1;transform:none}.card-copy{padding:13px 9px 0}.card-copy h2{font-size:14px;line-height:1.6;font-weight:600;letter-spacing:.2px;margin:0 0 9px;overflow-wrap:anywhere}.card-company{display:flex;align-items:center;gap:7px;font-size:10px;color:#797b83;min-width:0}.company-avatar{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#eeeaf7;color:#79649d;font-size:10px;flex:none}.company-avatar.blue{background:#e4f0f8;color:#4f7b9c}.company-avatar.orange,.company-avatar.cream{background:#f8eddf;color:#a67d43}.company-avatar.pink,.company-avatar.rose{background:#f9e4eb;color:#aa6780}.company-avatar.sky{background:#e5edf7;color:#6b8aaa}.company-avatar.mike,.company-avatar.mint{background:#e6eedc;color:#6b8557}.company-avatar.dark{background:#e6e9e5;color:#59715a}.card-year{margin-left:auto;font-size:9px;color:#a5a6ad;white-space:nowrap}.card-copy>p{margin:8px 0 0;font-size:9px;color:#a4a6ae;line-height:1.6}.empty{text-align:center;padding:70px 20px;background:#fafafa;border-radius:18px;color:#777}.empty[hidden]{display:none}.empty b{font-size:18px;color:#444}.empty p{font-size:12px}.empty button{border:1px solid #eee;background:#fff;border-radius:25px;padding:8px 17px;margin-top:12px;color:#777}.career{border-top:1px solid var(--line);padding:50px 0 60px;display:grid;grid-template-columns:1fr 1.7fr;gap:70px}.career h2{font-size:24px;font-weight:550;margin:12px 0}.career-heading>p{font-size:12px;color:#a0a1a8;max-width:300px}.career-list{border-top:1px solid var(--line)}.career-list>.career-entry{padding:16px 0;display:grid;grid-template-columns:160px 1fr;column-gap:15px;border-bottom:1px solid var(--line);align-items:center}.career-list>.career-entry>span{font-size:11px;color:#a4a5ac}.career-list b{font-size:12px;font-weight:550}.career-list small{font-size:10px;color:#a4a5ac;grid-column:2}.career-list a:hover b{color:var(--red)}footer{max-width:1744px;margin:0 auto;padding:28px 48px 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;font-size:10px;color:#a3a4ab}footer>span:first-child{color:#777a83}footer>div{display:flex;gap:15px;font-size:9px}footer a:hover{color:#6e7078}.case-page{max-width:1200px;padding-top:30px}.back-to-list{font-size:11px;color:#9a9ba3}.back-to-list:hover{color:#333}.case-header{display:grid;grid-template-columns:1.6fr 1fr;gap:65px;margin:40px 0}.case-title h1{font-size:35px;line-height:1.45;letter-spacing:-.7px;font-weight:600;margin:12px 0 18px}.case-lead{font-size:14px;line-height:1.95;color:#8d8f98;margin:0 0 20px}.case-tags{display:flex;flex-wrap:wrap;gap:7px}.case-tags>span{font-size:10px;border:1px solid #e9e9ee;border-radius:20px;padding:5px 12px;color:#8b8d98}.case-meta{margin:0;border-left:1px solid #ececf0;padding-left:29px;display:flex;flex-direction:column;justify-content:center;gap:15px}.case-meta>div{display:grid;grid-template-columns:85px 1fr;gap:12px;font-size:11px}.case-meta dt{color:#afb0b6}.case-meta dd{margin:0;color:#757781}.demo-link{display:inline-flex;background:#282b2c;color:white;border-radius:30px;padding:9px 19px;font-size:12px;margin-top:23px}.demo-link:hover{background:#474c43}.case-cover{margin:0;border:1px solid #eeeeef;border-radius:20px;overflow:hidden;position:relative;background:#f6f5f9;text-align:center;padding:30px}.case-cover img{display:block;width:auto;max-width:100%;height:450px;margin:auto;border-radius:15px}.case-cover figcaption{font-size:9px;color:#a1a0a7;margin-top:18px}.case-cover.blue{background:#f2f6fa}.case-cover.orange,.case-cover.cream{background:#faf5ed}.case-cover.pink,.case-cover.rose{background:#fbf3f4}.case-cover.mike,.case-cover.mint{background:#f4f7ef}.case-cover.dark{background:#edf0ed}.case-content{max-width:780px;margin:15px auto 0}.case-content>section{padding:39px 0;border-bottom:1px solid var(--line)}.section-label{font-size:9px;letter-spacing:1.7px;color:#b0b0b7}.case-content h2,.related h2{font-size:23px;font-weight:550;letter-spacing:-.3px;margin:10px 0 18px}.case-content p,.case-content li{font-size:13px;line-height:2;color:#81838e}.case-content ul{padding-left:19px;margin-bottom:0}.case-content li{padding-left:3px;margin-bottom:8px}.focus-list>article{display:flex;gap:21px;padding:18px 0;border-top:1px solid #f0f0f2}.focus-list>article>span{font-size:11px;color:#b0a5ad;padding-top:3px}.focus-list h3{font-size:14px;font-weight:550;margin:0 0 7px}.focus-list p{margin:0;font-size:12px}.delivery{padding:22px 25px;background:#f7f7f8;border-radius:12px;font-size:12px;line-height:2;color:#8a8b94}.related{max-width:780px;margin:45px auto 55px}.related>a:not(.return-bottom){display:flex;align-items:center;gap:20px;padding:17px 0;border-top:1px solid var(--line)}.related img{width:73px;height:82px;object-fit:cover;border-radius:9px}.related>a>span{display:flex;flex-direction:column;gap:7px}.related small{font-size:9px;color:#a5a5ad}.related b{font-size:13px;font-weight:550}.related i{margin-left:auto;font-style:normal;color:#9b9ca5;font-size:23px}.return-bottom{display:inline-flex;margin-top:27px;font-size:11px;color:#999}
@media(min-width:1650px){.cards{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1100px){.site-header{margin:0 30px}main{padding-left:30px;padding-right:30px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.company-tabs{gap:22px}.card-company{flex-wrap:wrap}.card-year{font-size:8px}.career{gap:35px;grid-template-columns:1fr 1.5fr}footer{padding-left:30px;padding-right:30px}.case-header{gap:35px}.case-title h1{font-size:29px}.case-meta{padding-left:23px}.case-meta>div{grid-template-columns:70px 1fr;font-size:10px}}
@media(max-width:720px){html{scroll-padding-top:80px}.site-header{height:75px;margin:0 20px;gap:10px}.identity{font-size:16px;gap:9px}.identity-mark{width:34px;height:34px;font-size:18px}.identity small{font-size:8px}.header-note{display:none}.back-link{font-size:10px;padding:6px 11px}main{padding-left:18px;padding-right:18px}.gallery-intro{display:block;padding-top:29px;padding-bottom:22px}.gallery-intro h1{font-size:29px}.gallery-intro p{font-size:11px}.eyebrow{font-size:8px;letter-spacing:1.4px}.search{min-width:0;margin-top:23px;max-width:none;padding:8px 13px}.search input{font-size:11px}.search kbd{display:none}.company-tabs{gap:24px;margin-left:-18px;margin-right:-18px;padding-left:20px;padding-right:20px}.company-tabs button{font-size:12px;padding:14px 0 13px}.company-tabs small{font-size:8px}.gallery-meta{padding-top:16px;padding-bottom:19px;gap:20px;font-size:9px}.gallery-meta p{max-width:260px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cover{border-radius:14px}.card-copy{padding:10px 3px 0}.card-copy h2{font-size:12px;line-height:1.65;margin-bottom:7px}.card-company{font-size:9px;gap:5px}.company-avatar{width:18px;height:18px;font-size:9px}.card-year{margin-left:0;flex-basis:100%;padding-left:23px;font-size:8px}.card-copy>p{font-size:8px;margin-top:5px}.cover-arrow{display:none}.gallery-section{padding-bottom:35px}.career{grid-template-columns:1fr;gap:18px;padding-top:31px;padding-bottom:35px}.career h2{font-size:22px}.career-heading>p{font-size:11px;max-width:none}.career-list>.career-entry{grid-template-columns:130px 1fr;padding:14px 0;gap:3px 12px}.career-list>.career-entry>span{font-size:9px}.career-list b{font-size:11px}.career-list small{font-size:9px}.case-page{padding-top:23px}.case-header{grid-template-columns:1fr;gap:25px;margin:27px 0}.case-title h1{font-size:27px;margin:13px 0}.case-lead{font-size:12px}.case-meta{border-left:0;border-top:1px solid #eee;padding:20px 0 0;gap:11px}.case-meta>div{grid-template-columns:90px 1fr;font-size:10px}.case-cover{padding:18px;border-radius:15px}.case-cover img{height:360px;max-height:65vh;max-width:100%;object-fit:contain}.case-cover figcaption{font-size:8px;line-height:1.6}.case-content>section{padding:30px 0}.case-content h2,.related h2{font-size:21px}.case-content p,.case-content li{font-size:12px}.focus-list h3{font-size:13px}.focus-list p{font-size:11px}.delivery{font-size:11px;padding:20px}.related{margin-top:32px}.related img{width:60px;height:70px}.related b{font-size:12px}.related small{font-size:8px}footer{padding:23px 20px;display:block;font-size:9px}footer>span{display:block;margin-bottom:10px}footer>div{flex-wrap:wrap;gap:5px 15px;font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cover>img,.cover-arrow{transition:none}}

/* Project identity beside the title. */
.card-heading{display:flex;align-items:center;gap:11px;margin-bottom:12px;min-width:0}.card-heading .app-icon{width:48px;height:48px;flex:none;object-fit:contain;border:1px solid #ededf0;border-radius:12px;background:#fff}.card-heading h2{margin:0;min-width:0}.card-company{padding-left:0}.card-year{margin-left:auto}
@media(max-width:720px){.card-heading{gap:8px;margin-bottom:10px;align-items:flex-start}.card-heading .app-icon{width:38px;height:38px;border-radius:10px}.card-heading h2{font-size:12px;margin:0}.card-year{padding-left:0}}

.platform-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.platform-tags>span{font-size:10px;line-height:1.5;padding:4px 9px;border:1px solid #ececf0;border-radius:7px;background:#f7f8fa;color:#747782;white-space:nowrap}@media(max-width:720px){.platform-tags{gap:5px;margin-top:9px}.platform-tags>span{font-size:9px;padding:3px 7px}}

.access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.access-card{border:1px solid #e9eaf0;border-radius:14px;padding:23px;min-width:0;background:#fcfcfd}.access-card h3{font-size:14px;margin:0 0 17px;font-weight:600}.access-action{display:inline-flex;align-items:center;border-radius:25px;background:#282b2c;color:#fff;padding:10px 17px;font-size:12px}.access-action:hover{background:#4a4d50}.access-pending{display:inline-block;font-size:12px;color:#a0a2ab;background:#f0f1f4;border-radius:8px;padding:8px 12px}.access-card .mini-code{display:block;width:180px;height:180px;max-width:100%;object-fit:contain;background:white;border-radius:10px}.access-card .mini-code-link{display:inline-block}.access-card p{margin:12px 0 0;font-size:11px;line-height:1.7}.project-access{scroll-margin-top:90px}@media(max-width:720px){.access-grid{grid-template-columns:1fr;gap:12px}.access-card{padding:20px}.access-action,.access-pending{font-size:11px}.access-card .mini-code{width:180px;height:180px}}

/* Android download: keep the QR and download action together. */
.access-grid{align-items:start}
.android-download{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.android-download .mini-code-link{flex:0 0 148px}
.access-card .android-download .mini-code{width:148px;height:148px;border-radius:8px}
.android-download-info{flex:1 1 150px;min-width:0}
.access-card .download-title{margin:0;color:#282b2c;font-size:14px;font-weight:600;line-height:1.5}
.access-card .download-note{margin:8px 0 18px;color:#8b8e98;font-size:12px;line-height:1.8}
.android-download .access-action{font-size:12px;line-height:1.5;padding:11px 16px;text-align:center}
@media(max-width:480px){.android-download{flex-direction:column;align-items:flex-start;gap:16px}.android-download .mini-code-link{flex-basis:auto}.android-download-info{flex:none;width:100%}.access-card .download-note{margin-bottom:16px}}
