/* Responsive composition and motion, shared by the portfolio and case studies. */
:root{--page-gutter:clamp(22px,6vw,120px);--section-space:clamp(76px,8vw,144px);--ease-out:cubic-bezier(.22,1,.36,1)}
[hidden]{display:none!important}html{scroll-padding-top:90px}body{overflow-x:clip}main>section{scroll-margin-top:88px}.section-pad{padding:var(--section-space) var(--page-gutter)}
main>#services{order:4}main>#projects{order:5}
.topbar{padding-inline:var(--page-gutter);height:72px}.topbar nav a{display:flex;align-items:center;min-height:44px}.lang-toggle{min-height:44px;min-width:64px}.menu-btn{width:44px;height:44px;align-content:center;justify-content:center;cursor:pointer}.menu-btn i{transition:transform .25s}.menu-btn[aria-expanded=true] i:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-btn[aria-expanded=true] i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
a:focus-visible,button:focus-visible{outline:2px solid #9766ff;outline-offset:5px}.hero{height:min(100svh,1080px);min-height:740px;padding:120px var(--page-gutter) 50px;background:#020204}.hero-navline{display:none}.hero-copy h1{left:var(--page-gutter);right:var(--page-gutter);top:145px;font-size:clamp(80px,9.4vw,180px);letter-spacing:-.065em;line-height:.95;gap:.18em;justify-content:center}.hero-copy .hero-intro{left:var(--page-gutter);top:49%;width:23%;max-width:350px;font-size:clamp(22.5px,1.95vw,34.5px);line-height:1.55;text-transform:none;letter-spacing:-.02em}.hero-copy .pill{right:var(--page-gutter);top:54%;min-width:0;width:21%;max-width:320px;min-height:60px;font-size:clamp(13px,1.2vw,20px);gap:20px;padding:16px 22px;border-width:1px}.hero-portrait-placeholder{width:48%;max-width:780px;height:70%;max-height:780px;left:50%;bottom:0;transform:translateX(-50%) translate(var(--portrait-x,0px),var(--portrait-y,0px));will-change:auto}.hero-portrait-placeholder img{object-fit:contain}
.hero .pill{transition:translate .3s var(--ease-out),box-shadow .3s}.hero .pill:hover{translate:0 -4px;box-shadow:0 0 32px #ae27ffaa,0 0 48px #ff753355}
.clients{padding-block:46px 64px}.clients .eyebrow{text-align:center}.logo-row{mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.logo-set{gap:clamp(28px,4.4vw,68px);padding-inline:clamp(14px,2vw,30px)}.logo-set .company-logo{width:clamp(210px,24vw,330px);height:81px}.logo-set .company-logo img{height:clamp(45px,4.5vw,66px)}
.about-composition{min-height:0;padding:clamp(170px,15vw,260px) 0 clamp(135px,11vw,190px)}.about-copy{padding:0}.about-copy h2{width:min(64%,1000px);margin-bottom:clamp(32px,4vw,64px)}.about-description{width:min(64%,900px);font-size:clamp(18px,1.6vw,28px);line-height:1.55;text-wrap:pretty}.about-description>span{margin-top:18px}.about-contact{width:clamp(230px,23vw,330px);min-height:64px;font-size:clamp(22px,2vw,30px);margin-top:40px}.about-decoration-1{width:min(20%,310px);top:5%}.about-decoration-2{width:min(18%,285px);top:6%}.about-decoration-3{top:auto;bottom:5%;width:min(16%,250px)}.about-decoration-4{top:auto;bottom:6%;width:min(19%,290px)}
.section-heading h2{font-size:clamp(48px,8.3vw,135px);letter-spacing:-.065em;line-height:.95;overflow-wrap:normal}.section-heading .eyebrow{margin-bottom:22px}.service-list{margin-top:clamp(40px,5vw,76px)}.service{grid-template-columns:110px minmax(0,1fr) 32px;gap:28px;padding:34px 0;transition:background .3s,padding .3s}.service h3{font-size:clamp(18px,1.55vw,25px)}.service p{font-size:clamp(15px,1.2vw,19px);max-width:760px;line-height:1.6;color:#62656b}.service b{font-size:clamp(48px,5vw,76px)}
.project-stack{margin-top:clamp(42px,5vw,76px);gap:44px;padding-bottom:36px}.project-card{top:calc(92px + var(--card-index,0)*12px);padding:24px;border-radius:28px;border-color:#575961;box-shadow:0 -10px 30px #0005;transition:opacity .7s var(--ease-out),border-color .3s;transform:none!important}.project-card:nth-child(n){top:calc(92px + var(--card-index,0)*12px)}.project-meta{gap:20px}.project-meta>div{min-width:0;flex:1}.project-meta strong{display:block;font-size:clamp(15px,1.5vw,22px);line-height:1.2}.project-meta small{line-height:1.5}.outline-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;white-space:nowrap;cursor:pointer;transition:background .25s,color .25s,border-color .25s}.outline-btn:hover{background:var(--white);color:var(--ink);border-color:var(--white)}.projects .project-art{aspect-ratio:16/6.5;border-radius:18px;max-height:480px}.project-note{font-size:15px;line-height:1.55;max-width:900px}.projects .art-billing{height:clamp(220px,32vw,480px)}.projects .billing-phone-row{height:100%;gap:18px}.projects .billing-phone-row img{height:90%;max-height:none}.project-card:hover{border-color:#a6a3bd}.project-art>img{transition:scale .65s var(--ease-out)}
.contact-poster{padding:48px var(--page-gutter) 100px;min-height:0}.contact-mini-nav{max-width:none;margin:0 0 80px}.contact-poster-grid{grid-template-columns:minmax(0,1.5fr) minmax(220px,.7fr);gap:7vw;margin-left:10%}.contact-poster h2{font-size:clamp(72px,9vw,144px);letter-spacing:-.06em}.contact-poster .email{font-size:clamp(20px,2.3vw,36px);overflow-wrap:anywhere;line-height:1.4}.poster-send{min-height:76px}.contact-knot{opacity:.7;pointer-events:none}.poster-footer{padding:72px var(--page-gutter) 170px;gap:48px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);min-height:0}.poster-footer .footer-brand{font-size:clamp(48px,7vw,108px);letter-spacing:-.065em}.footer-contact-only{min-width:0;justify-self:end}.footer-contact-only a{overflow-wrap:anywhere}.shape-parade{pointer-events:none}.scroll-review{right:14px}.scroll-review-actions button{width:36px;height:36px}
.reveal{transform:translateY(24px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}.reveal.visible{transform:none}.clients:not(.motion-visible) .marquee-track,.about-composition:not(.motion-visible) .about-decoration .about-sprite{animation-play-state:paused}
@media(hover:hover){.project-card:hover .project-art>img{scale:1.015}.service:hover{padding-left:12px}}
@media(min-width:761px) and (max-width:1100px){.hero{min-height:800px}.hero-copy h1{font-size:9.2vw}.hero-copy .hero-intro{top:35%;width:31%;font-size:25.5px}.hero-copy .pill{top:auto;bottom:64px;width:26%;right:5vw}.hero-portrait-placeholder{width:65%;height:68%;left:58%;bottom:0}.about-description{width:70%;font-size:20px}.contact-poster-grid{margin-left:0;gap:5vw}.contact-knot{left:-170px}.topbar nav{gap:20px;font-size:10px}}
@media(max-width:1100px),(max-height:760px){.project-card:nth-child(n){position:relative;top:auto}.scroll-review{display:none}}
@media(max-width:760px){
:root{--page-gutter:22px;--section-space:76px}html{scroll-padding-top:78px}.topbar{height:62px;gap:16px}.topbar .brand{margin-right:auto}.topbar nav{display:none;position:absolute;left:0;right:0;top:62px;background:#101014f5;backdrop-filter:blur(20px);padding:20px 22px 28px;border-bottom:1px solid #3a3a43;flex-direction:column;gap:4px}.topbar nav.open{display:flex}.topbar nav a{font-size:14px;min-height:48px}.menu-btn{display:grid}.lang-toggle{font-size:11px}.hero{height:auto;min-height:860px;padding:116px 22px 400px}.hero-copy{position:relative;z-index:4}.hero-copy h1{position:static;display:block;white-space:normal;font-size:clamp(50px,13.8vw,100px);line-height:.96;letter-spacing:-.065em;text-align:left}.hero-copy h1 br{display:block}.hero-copy h1 em{display:block}.hero-copy .hero-intro{position:static;width:100%;max-width:450px;margin:26px 0 24px;font-size:24px;line-height:1.5}.hero-intro>span+span{margin-top:8px}.hero-copy .pill{position:relative;top:auto;left:auto;right:auto;bottom:auto;width:210px;min-height:52px;font-size:14px;padding:12px 20px}.hero-portrait-placeholder{width:380px;max-width:100%;height:370px;bottom:0;left:50%;transform:translateX(-50%)}.clients{padding-block:32px 44px}.clients .eyebrow{font-size:9px;line-height:1.6;letter-spacing:.09em}.logo-set{gap:14.4px;padding-inline:7.2px}.logo-set .company-logo{width:195px;height:63px}.logo-set .company-logo img{height:45px}
.about-composition{min-height:0;padding:145px 0 150px}.about-copy h2{width:90%;margin-bottom:30px}.about-description{width:86%;font-size:16px;line-height:1.6}.about-description>span:first-child{font-size:22px;margin-bottom:20px}.about-contact{width:220px;min-height:58px;margin-top:32px;font-size:23px}.about-decoration-1{width:28%;left:-2%;top:2%}.about-decoration-2{width:26%;right:-2%;top:2%}.about-decoration-3{width:24%;left:-3%;bottom:1%}.about-decoration-4{width:27%;right:-3%;bottom:1%}.section-heading h2{font-size:clamp(38px,10.2vw,74px);letter-spacing:-.065em}.section-heading .eyebrow{font-size:10px;margin-bottom:16px}.service{grid-template-columns:42px minmax(0,1fr) 18px;gap:13px;padding:28px 0}.service b{font-size:38px}.service h3{font-size:16px;line-height:1.3}.service p{font-size:14px;line-height:1.6}.service .arrow{font-size:20px}.service:hover{padding-left:0}.project-stack{gap:26px;padding-bottom:0;margin-top:36px}.project-card{padding:16px;border-radius:22px}.project-meta{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px 12px;align-items:start}.project-num{font-size:30px}.project-meta strong{font-size:15px;line-height:1.3;overflow-wrap:anywhere}.project-meta small{font-size:11px;margin-top:6px}.project-meta .outline-btn{grid-column:2;justify-self:start;margin:2px 0 0;font-size:10px;padding:10px 14px}.projects .project-art{aspect-ratio:4/3;margin-top:18px;border-radius:12px}.projects .art-billing{height:230px;padding:20px 12px}.projects .billing-phone-row{gap:10px}.projects .billing-phone-row img{border-radius:9px}.project-note{font-size:13px;line-height:1.6;margin-top:16px}.projects .art-knowledge>img{min-width:0;max-width:90%}
.contact-poster{padding:28px 22px 66px}.contact-mini-nav{margin-bottom:56px;gap:20px;font-size:10px}.contact-mini-nav nav{gap:14px;font-size:9px}.contact-poster-grid{grid-template-columns:minmax(0,1fr);gap:36px;margin:0}.contact-poster h2{font-size:clamp(64px,15vw,100px);line-height:.87;margin-bottom:22px}.contact-poster .email{font-size:clamp(17px,4.7vw,28px);margin-top:12px;text-underline-offset:5px}.telegram-copy{font-size:16px;min-height:44px;margin-top:14px;gap:10px}.poster-send{min-height:62px;font-size:19px}.contact-knot{right:-150px;left:auto;top:90px;opacity:.35}.poster-footer{grid-template-columns:minmax(0,1fr);padding:56px 22px 145px;gap:40px}.poster-footer .footer-brand{font-size:clamp(48px,12vw,74px);grid-column:auto}.footer-contact-only{justify-self:start;width:100%}.footer-contact-only a,.footer-contact-only p{font-size:14px}.shape-parade{transform:scale(.6);bottom:-30px}.detail-nav{padding-inline:22px}.detail-nav-actions{gap:12px}.detail-back{font-size:9px;max-width:125px}.detail-hero{padding:90px 22px 65px;min-height:0}.detail-hero h1{font-size:clamp(46px,12vw,80px);overflow-wrap:anywhere;letter-spacing:-.065em}.detail-intro{font-size:18px}.detail-gallery h2{font-size:42px}
}
@media(prefers-reduced-motion:no-preference){.hero-copy h1{animation:about-enter .9s var(--ease-out) both}.hero-copy .hero-intro{animation:about-enter .9s .12s var(--ease-out) both}.hero-copy .pill{animation:about-enter .9s .24s var(--ease-out) both}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.marquee-track{animation:none}.about-decoration{transform:none}.hero-portrait-placeholder{transform:translateX(-50%)!important}.about-composition.entrance-ready .about-copy h2,.about-composition.entrance-ready .about-description>span,.about-composition.entrance-ready .about-contact,.about-composition.entrance-ready .about-decoration{opacity:1}}

/* Added partner logos share the same optical width and seamless repeat. */
.logo-set .logo-thoughtworks img{width:100%;height:auto;max-height:66px;mix-blend-mode:screen}
.logo-set .logo-bytedance .bytedance-art{display:block;position:relative;width:100%;aspect-ratio:580/112;overflow:hidden;mix-blend-mode:screen}
.logo-set .logo-bytedance .bytedance-art img{position:absolute;left:-16.38%;top:-291.07%;width:132.414%;max-width:none;height:auto;filter:contrast(8) contrast(.94);object-fit:initial}
.marquee-track{animation-duration:30s}
.contact-poster{padding-top:clamp(64px,7vw,112px)}
.contact-poster .email,.contact-poster .telegram-copy{font-family:'DM Sans',sans-serif;font-size:clamp(22px,3vw,42px);font-weight:500;line-height:1.4;letter-spacing:-.035em;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1.5px}
.contact-poster .telegram-copy{border:0;padding:0;margin-top:22px;text-align:left;min-height:44px;flex-wrap:wrap;gap:10px 16px}
.contact-poster .telegram-copy span{overflow-wrap:anywhere}
.contact-poster .telegram-copy small{font-size:10px;letter-spacing:.12em;text-decoration:none}
@media(max-width:760px){.logo-set .logo-thoughtworks img{max-height:45px}.contact-poster{padding-top:64px}.contact-poster .email,.contact-poster .telegram-copy{font-size:clamp(18px,4.7vw,28px);line-height:1.5;text-underline-offset:5px}.contact-poster .telegram-copy{margin-top:18px}}

/* Reuse the About Me button, with hero-specific placement. */
.hero-copy .hero-contact{position:absolute;z-index:5;right:var(--page-gutter);top:54%;margin-top:0}
@media(min-width:761px) and (max-width:1100px){.hero-copy .hero-contact{top:auto;bottom:64px;right:5vw}}
@media(max-width:760px){.hero-copy .hero-contact{position:relative;top:auto;right:auto;bottom:auto;margin-top:0}}

/* Blend away the title artwork’s black matte. */
.about-title-art{mix-blend-mode:screen}
.footer-design-quote{position:relative;align-self:start;justify-self:end;width:100%;max-width:410px;margin:0;padding:24px 0 0;border-top:0;text-align:left}
.footer-quote-mark{position:absolute;top:12px;left:0;font-family:Georgia,serif;font-size:44px;line-height:1;color:#999999}
.footer-design-quote p{margin:0;padding-left:34px;color:#ffffff;font-size:15px;font-weight:400;line-height:1.8;letter-spacing:.005em;text-wrap:pretty}
.footer-design-quote em{font-style:normal;color:inherit}
@media(max-width:760px){.footer-design-quote{justify-self:start;max-width:410px;padding-top:20px}.footer-design-quote p{font-size:14px;line-height:1.75}}

.projects .art-knowledge>img{border-radius:16px}

.glow-cursor-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:100;pointer-events:none}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.glow-cursor-canvas{display:none}}

/* Let the page background show through the About section and artwork mattes. */
.about-copy,.about-copy h2,.about-description{background:transparent}
.about-decoration{mix-blend-mode:screen}

/* Space visible logo bounds rather than equal-width cells. */
.logo-set{--logo-height:clamp(45px,4.5vw,66px);--logo-gap:clamp(52px,6vw,86px);gap:var(--logo-gap);padding-inline:calc(var(--logo-gap)/2);justify-content:flex-start}
.logo-set .company-logo{width:auto}
.logo-set .company-logo img{max-width:none}
.logo-set .company-logo img[src*="coinw-trimmed"]{height:calc(var(--logo-height)*42/76)}
.logo-set .company-logo img[src*="bybit-trimmed"]{height:calc(var(--logo-height)*58/76)}
.logo-set .logo-thoughtworks,.logo-set .logo-bytedance{width:clamp(210px,24vw,330px)}
.logo-set .logo-thoughtworks img{max-width:100%}
@media(max-width:760px){.logo-set{--logo-height:45px;--logo-gap:40px}.logo-set .logo-thoughtworks,.logo-set .logo-bytedance{width:195px}}
