.ProjectMock_stage__jjMXf{position:relative;width:100%;aspect-ratio:4/3;border-radius:22px;overflow:hidden;background:radial-gradient(120% 120% at 78% 8%,color-mix(in srgb,var(--accent) 55%,#fff),transparent 60%),color-mix(in srgb,var(--accent) 26%,#fff);isolation:isolate}.ProjectMock_blob__L_CPu{position:absolute;width:58%;aspect-ratio:1;right:-8%;top:-14%;border-radius:50%;background:color-mix(in srgb,var(--accent) 70%,#fff);filter:blur(2px);opacity:.85}.ProjectMock_phone__H4LYF{position:absolute;left:9%;bottom:-14%;width:40%;aspect-ratio:9/19;background:#14140f;border-radius:26px;padding:7px;box-shadow:0 22px 40px -18px rgba(20,20,15,.5);transform:rotate(-9deg);transition:transform .6s var(--spring)}.ProjectMock_stage__jjMXf[data-variant=cards] .ProjectMock_phone__H4LYF{transform:rotate(6deg);left:auto;right:10%}.ProjectMock_stage__jjMXf[data-variant=map] .ProjectMock_phone__H4LYF{transform:rotate(-5deg)}.ProjectMock_notch__xH880{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:34%;height:7px;border-radius:999px;background:#14140f;z-index:2}.ProjectMock_screen__4cEGE{position:relative;height:100%;border-radius:20px;background:#fff;padding:16px 12px 12px;display:flex;flex-direction:column;gap:8px;overflow:hidden}.ProjectMock_dots__3q0_a{display:flex;gap:4px}.ProjectMock_dots__3q0_a i{width:5px;height:5px;border-radius:50%;background:color-mix(in srgb,var(--accent) 60%,#cfcfca)}.ProjectMock_hero__mqfxK{height:34%;border-radius:12px;background:radial-gradient(100% 100% at 20% 10%,color-mix(in srgb,var(--accent) 80%,#fff),transparent 70%),color-mix(in srgb,var(--accent) 45%,#fff);margin-top:2px}.ProjectMock_glyph__T8DWJ{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);font-size:clamp(1.4rem,4vw,2rem);filter:drop-shadow(0 4px 8px rgba(0,0,0,.18))}.ProjectMock_bar__0jHEQ{height:7px;border-radius:999px;background:#ececea;width:70%}.ProjectMock_barWide__wbh_5{width:90%;margin-top:2px}.ProjectMock_snippet__Tk9JH{position:absolute;background:#fff;border-radius:14px;padding:11px 13px;box-shadow:0 16px 30px -16px rgba(20,20,15,.4);display:flex;flex-direction:column;gap:6px;transition:transform .6s var(--spring)}.ProjectMock_snipA__9s3t1{top:14%;left:6%;width:38%;transform:rotate(-4deg)}.ProjectMock_snipB__9_3r9{right:7%;bottom:16%;width:30%;align-items:center;transform:rotate(5deg)}.ProjectMock_stage__jjMXf[data-variant=cards] .ProjectMock_snipA__9s3t1{left:auto;right:8%;top:10%;transform:rotate(4deg)}.ProjectMock_stage__jjMXf[data-variant=cards] .ProjectMock_snipB__9_3r9{left:8%;right:auto;bottom:12%;transform:rotate(-5deg)}.ProjectMock_snipDot__7kMyE{width:16px;height:16px;border-radius:50%;background:color-mix(in srgb,var(--accent) 75%,#fff)}.ProjectMock_snipLine__FAfWD{height:6px;width:100%;border-radius:999px;background:#e9e9e6}.ProjectMock_snipLineShort__LDnSw{height:6px;width:60%;border-radius:999px;background:#efefec}.ProjectMock_bigNum__8l5b8{font-family:var(--font-display);font-weight:700;font-size:1.1rem;letter-spacing:-.02em;color:var(--ink-accent)}.cardHover:hover .ProjectMock_phone__H4LYF{transform:rotate(-6deg) translateY(-4px) scale(1.02)}.ProjectMock_stage__jjMXf[data-variant=cards] .cardHover:hover .ProjectMock_phone__H4LYF{transform:rotate(4deg) translateY(-4px) scale(1.02)}.CaseGallery_grid__ZIHVl{column-count:2;column-gap:clamp(.8rem,2vw,1.2rem)}.CaseGallery_tile__K2MkQ{page-break-inside:avoid;break-inside:avoid;margin:0 0 clamp(.8rem,2vw,1.2rem);border-radius:var(--radius);overflow:hidden;background:var(--bg-2);border:1px solid var(--line);cursor:pointer;transition:transform .35s var(--spring),box-shadow .35s var(--ease-out)}.CaseGallery_tile__K2MkQ:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(29,29,27,.35)}.CaseGallery_wide__h8DYx{column-span:all}.CaseGallery_phoneGrid__f0u3a{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:clamp(.9rem,2.2vw,1.6rem) clamp(.8rem,2vw,1.3rem);gap:clamp(.9rem,2.2vw,1.6rem) clamp(.8rem,2vw,1.3rem);width:100%}.CaseGallery_phoneGrid__f0u3a .CaseGallery_tile__K2MkQ{margin:0;background:transparent;border:none;border-radius:0;overflow:visible}.CaseGallery_phoneGrid__f0u3a .CaseGallery_img__bBVbz{filter:drop-shadow(0 14px 24px rgba(29,29,27,.16));border-radius:calc(150px * .118)}.CaseGallery_phoneGrid__f0u3a .CaseGallery_tile__K2MkQ:hover{transform:translateY(-4px);box-shadow:none}.CaseGallery_phoneGrid__f0u3a .CaseGallery_caption___ZzNy{padding:.6rem .2rem 0;text-align:center}@media (max-width:440px){.CaseGallery_phoneGrid__f0u3a{grid-template-columns:repeat(2,1fr)}}.CaseGallery_img__bBVbz{width:100%;height:auto}.CaseGallery_caption___ZzNy{font-size:.85rem;color:var(--text-soft);padding:.7rem .95rem .85rem}@media (max-width:620px){.CaseGallery_grid__ZIHVl{column-count:1}}.CaseGallery_lightbox__D2MdE{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);background:rgba(20,20,18,.82);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:CaseGallery_lbIn__328IX .25s var(--ease-out)}@keyframes CaseGallery_lbIn__328IX{0%{opacity:0}}.CaseGallery_lbFigure__AcdFF{max-width:min(1100px,92vw);max-height:88vh;display:flex;flex-direction:column;gap:.8rem}.CaseGallery_lbImg__MQvj8{width:100%;max-height:80vh;object-fit:contain;border-radius:var(--radius);box-shadow:0 30px 80px -30px rgba(0,0,0,.6)}.CaseGallery_lbCaption__QCzEi{text-align:center;color:hsla(0,0%,100%,.86);font-size:.9rem}.CaseGallery_lbClose__GdAc4{position:absolute;top:clamp(.8rem,2vw,1.6rem);right:clamp(.8rem,2vw,1.6rem);width:44px;height:44px;border-radius:50%;background:hsla(0,0%,100%,.12);color:#fff;font-size:1.1rem;display:grid;place-items:center;transition:background .25s var(--ease-out)}.CaseGallery_lbClose__GdAc4:hover{background:hsla(0,0%,100%,.24)}.CaseGallery_lbNav__tLiKy{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:hsla(0,0%,100%,.12);color:#fff;font-size:1.8rem;line-height:1;display:grid;place-items:center;transition:background .25s var(--ease-out),transform .25s var(--spring)}.CaseGallery_lbNav__tLiKy:hover{background:hsla(0,0%,100%,.24)}.CaseGallery_lbPrev__xLqnw{left:clamp(.5rem,2vw,1.6rem)}.CaseGallery_lbPrev__xLqnw:hover{transform:translateY(-50%) translateX(-3px)}.CaseGallery_lbNext__i66J2{right:clamp(.5rem,2vw,1.6rem)}.CaseGallery_lbNext__i66J2:hover{transform:translateY(-50%) translateX(3px)}@media (max-width:620px){.CaseGallery_lbNav__tLiKy{display:none}}.CaseStudy_wrap__w_YyJ{padding-top:clamp(7rem,14vh,11rem);padding-bottom:clamp(3rem,8vw,6rem)}.CaseStudy_topBar__b_DWJ{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;margin-bottom:clamp(2rem,4vw,3rem)}.CaseStudy_back__tGkEg{position:absolute;left:0;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:.35rem;font-size:.92rem;font-weight:600;color:var(--text-soft);transition:color .25s var(--ease-out),transform .25s var(--spring)}.CaseStudy_back__tGkEg:hover{color:var(--text);transform:translateY(-50%) translateX(-3px)}.CaseStudy_head__V09OL{margin:1.4rem 0 clamp(2rem,4vw,3rem);max-width:32ch}.CaseStudy_title__ug6yX{font-size:clamp(3rem,9vw,6rem);margin-top:.6rem}.CaseStudy_lede__er3BL{margin-top:1rem;color:var(--text-soft);font-size:clamp(1.1rem,2.2vw,1.4rem);line-height:1.5;max-width:36ch}.CaseStudy_cover__qpdOt{position:relative;border-radius:var(--radius-lg);background:var(--bg-2);border:1px solid var(--line-soft);padding:clamp(1.5rem,4vw,3.2rem);overflow:hidden}.CaseStudy_coverBadge__C0gc4{position:absolute;top:1.2rem;right:1.2rem;z-index:4;font-size:.8rem;font-weight:600;background:hsla(0,0%,100%,.92);border:1px solid var(--line);padding:.36rem .85rem;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.CaseStudy_coverMock__kq_Dw{max-width:620px;margin-inline:auto}.CaseStudy_coverImg__HD3H6{width:100%;height:auto;border-radius:var(--radius);display:block}.CaseStudy_meta__4pZAs{display:flex;flex-wrap:wrap;gap:clamp(1.4rem,4vw,3.5rem);margin:clamp(2rem,4vw,3rem) 0;padding:1.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.CaseStudy_metaItem__1C1ID{display:flex;flex-direction:column;gap:.45rem}.CaseStudy_metaLabel__YGW68{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--text-faint)}.CaseStudy_metaValue__BYWAn{font-weight:600;color:var(--text)}.CaseStudy_tags__fw00d{display:flex;flex-wrap:wrap;gap:.4rem}.CaseStudy_tag__gAi9A{font-size:.78rem;color:var(--text-soft);padding:.25rem .65rem;border:1px solid var(--line);border-radius:999px}.CaseStudy_body__JQJvZ{max-width:720px;display:flex;flex-direction:column;gap:clamp(2.4rem,5vw,3.6rem)}.CaseStudy_block__j945L{display:flex;flex-direction:column;gap:1rem}.CaseStudy_tabBar__abZW5{display:flex;flex-wrap:wrap;gap:.4rem;background:#2b2a27;border-radius:999px;padding:.4rem}.CaseStudy_tabBtn__xZiDR{font-family:inherit;font-size:.95rem;font-weight:600;padding:.6rem 1.1rem;border-radius:999px;border:none;background:transparent;color:#fff;cursor:pointer;transition:background .3s var(--ease-out),color .3s var(--ease-out)}.CaseStudy_tabBtn__xZiDR:hover{background:hsla(0,0%,100%,.15)}.CaseStudy_tabActive__hky27{background:#fff;color:#3a3a37}.CaseStudy_tabBtn__xZiDR:focus-visible{outline:2px solid var(--text);outline-offset:2px}.CaseStudy_blockTitle__0FR3P{font-family:var(--font-display);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--text-faint)}.CaseStudy_prose___w24O{font-size:clamp(1.1rem,2vw,1.3rem);line-height:1.6;color:var(--text)}.CaseStudy_list__ajlLA{list-style:none;display:flex;flex-direction:column;gap:1rem}.CaseStudy_listItem__SKvfl{display:flex;gap:1rem;font-size:clamp(1rem,1.7vw,1.12rem);line-height:1.5;color:var(--text);padding-bottom:1rem;border-bottom:1px solid var(--line-soft)}.CaseStudy_num__Ek5_f{font-family:var(--font-display);font-weight:700;color:var(--ink-accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}.CaseStudy_outcomes__NLyvk{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem}.CaseStudy_outcome__HPjQV{border-radius:var(--radius);background:var(--card);padding:1.4rem 1.2rem;display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--line);border-top:3px solid var(--accent)}.CaseStudy_outcomeValue__QsMBU{font-size:clamp(1.5rem,3.5vw,2.1rem)}.CaseStudy_outcomeLabel__nyYpC{font-size:.9rem;color:var(--text-soft)}@media (max-width:620px){.CaseStudy_outcomes__NLyvk{grid-template-columns:1fr}}@media (max-width:760px){.CaseStudy_topBar__b_DWJ{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:1rem}.CaseStudy_back__tGkEg{position:static;transform:none}.CaseStudy_back__tGkEg:hover{transform:translateX(-3px)}.CaseStudy_tabBar__abZW5{width:100%;overflow-x:auto;flex-wrap:nowrap}}.CaseStudy_progress__f5EV6{border-radius:var(--radius-lg);background:var(--bg-2);border:1px dashed var(--line);padding:clamp(1.6rem,4vw,2.4rem);display:flex;flex-direction:column;gap:.8rem}.CaseStudy_progressTag__gmw1D{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem}.CaseStudy_progressDot__THGks{width:8px;height:8px;border-radius:50%;background:var(--ink-accent);animation:CaseStudy_pulse__mwDiB 1.8s var(--ease-soft) infinite}@keyframes CaseStudy_pulse__mwDiB{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.CaseStudy_progress__f5EV6 p{color:var(--text-soft);max-width:52ch}.CaseStudy_progressCta__jtrPJ{font-weight:600;color:var(--text);align-self:flex-start;transition:transform .25s var(--spring)}.CaseStudy_progressCta__jtrPJ:hover{transform:translateX(3px)}.CaseStudy_pager__NpxlH{display:flex;justify-content:space-between;gap:1rem;margin-top:clamp(3rem,7vw,5rem);padding-top:1.6rem;border-top:1px solid var(--line)}.CaseStudy_pagerLink__sJ3in{display:flex;flex-direction:column;gap:.3rem;transition:transform .3s var(--spring)}.CaseStudy_pagerNext__FVPdz{text-align:right;align-items:flex-end}.CaseStudy_pagerLink__sJ3in:hover{transform:translateY(-3px)}.CaseStudy_pagerLabel__9GbuL{font-size:.82rem;color:var(--text-faint);font-weight:600}.CaseStudy_pagerName__V2NTa{font-family:var(--font-display);font-weight:700;font-size:clamp(1.2rem,3vw,1.6rem);letter-spacing:-.02em}