@font-face{font-family:"Switzer";src:url("https://framerusercontent.com/third-party-assets/fontshare/wf/OYB4CXKJQXKTNSLJMTDQOIVUL2V5EL7S/WYO2P7DQVV5RNXGMCUO2HL4RJP4VFUAS/6XPIMU23OJVRY676OG5YVJMWEHWICATX.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:500}
@font-face{font-family:"Switzer";src:url("https://framerusercontent.com/third-party-assets/fontshare/wf/5SZVFDB7V52TI6ULVC6J3WQZQCIZVDV5/ODYPSTCUDMKSTYIPTV4CLQ7URIK7XYBJ/YS3VPNVO4B3TOJMEXDGFZQ4TLZGGSRZC.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:600}
@font-face{font-family:"Switzer";src:url("https://framerusercontent.com/third-party-assets/fontshare/wf/HBNTRIISA5MEXGL5WPYI7CV2HIWTDV3Q/YDPDINVT673XLXNSTMLG4JNCZZMVVNPN/Y7SCNZJOT2MW5ADSGOFLDGH4TNL4JCQY.woff2") format("woff2");font-display:swap;font-style:normal;font-weight:700}

:root{
  --bg:#fafafa;--surface:#fff;--ink:#080808;--muted:#7f7f7f;--line:#e3e3e3;--soft:#f3f3f3;
  --max:1080px;--pad:44px;--radius:14px;--ease:cubic-bezier(.22,.8,.22,1);
  --shadow:0 12px 26px rgba(0,0,0,.08),0 2px 5px rgba(0,0,0,.05)
}
*{box-sizing:border-box}
html{scroll-behavior:auto;background:#050505}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.42;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{max-width:100%}
.noise{position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.025;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='.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E")}
.section{width:min(var(--max),calc(100% - 32px));margin:auto;padding:104px var(--pad);position:relative;background:rgba(250,250,250,.97);border-left:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}

/* Floating navigation */
.floating-nav{position:fixed;z-index:150;left:50%;top:24px;transform:translateX(-50%);width:min(550px,calc(100% - 28px));height:58px;padding:8px 9px 8px 11px;border:1px solid rgba(0,0,0,.12);border-radius:999px;background:rgba(255,255,255,.78);backdrop-filter:blur(18px) saturate(1.2);box-shadow:0 5px 18px rgba(0,0,0,.055);display:flex;align-items:center;transition:width .42s var(--ease),background .25s,border-color .25s,box-shadow .25s}
.identity{display:flex;align-items:center;gap:9px;white-space:nowrap;min-width:0}.identity img{width:34px;height:34px;border-radius:50%;object-fit:cover}.identity strong{font-size:12px;line-height:1;font-weight:750}
.nav-links{display:flex;align-items:center;gap:23px;margin-left:auto;font-size:12px;font-weight:700;transition:opacity .22s var(--ease),transform .22s var(--ease)}.nav-links a{transition:opacity .2s}.nav-links a:hover{opacity:.48}.nav-contact{padding:9px 15px;border:1px solid #ddd;border-radius:999px;background:#fff;box-shadow:0 5px 12px rgba(0,0,0,.065)}
.nav-more{display:none;margin-left:auto;border:0;background:transparent;padding:12px 9px;gap:3px;align-items:center;cursor:pointer}.nav-more span{display:block;width:4px;height:4px;border-radius:50%;background:#505050}
.floating-nav.compact{width:232px}.floating-nav.compact .nav-links{position:absolute;opacity:0;pointer-events:none;transform:scale(.92)}.floating-nav.compact .nav-more{display:flex}.floating-nav.menu-open{width:min(540px,calc(100% - 28px))}.floating-nav.menu-open .nav-links{display:flex;position:static;opacity:1;pointer-events:auto;transform:none}.floating-nav.menu-open .nav-more{display:none}

/* Common typography and controls */
.display-heading,.split-heading,.hero h1{margin:0;letter-spacing:-.06em;line-height:.94;font-weight:660}.display-heading,.split-heading{font-size:clamp(46px,4.5vw,58px)}.display-heading span,.split-heading span,.hero h1 span{color:#858585;font-weight:470}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:max-content;padding:11px 16px;border-radius:999px;font-size:13px;font-weight:760;transition:transform .24s var(--ease),box-shadow .24s var(--ease)}.button:hover{transform:translateY(-2px)}.button-dark{background:#050505;color:#fff;box-shadow:0 10px 18px rgba(0,0,0,.22)}.button-dark:hover{box-shadow:0 15px 24px rgba(0,0,0,.25)}.button-light{background:#fff;color:#111}.button img{width:27px;height:27px;margin-left:-7px;border-radius:50%;object-fit:cover}
.availability,.slots{display:inline-flex;align-items:center;gap:9px;width:max-content;padding:7px 12px;border-radius:999px;background:#fff;box-shadow:var(--shadow);font-size:11px;font-weight:700}.availability i,.slots i{width:7px;height:7px;border-radius:50%;background:#62dd83;box-shadow:0 0 0 4px #e8faed}
.text-link{display:block;width:max-content;margin:62px auto 0;font-size:13px;font-weight:750}

/* Hero */
.hero{padding-top:145px;padding-bottom:0}.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:34px;align-items:start;min-height:440px}.hero-copy{padding-top:3px}.hero h1{font-size:clamp(62px,5.2vw,72px);margin:28px 0 24px;white-space:nowrap}.hero-copy>p{max-width:445px;margin:0 0 30px;font-size:16px;line-height:1.36;color:#555}.hero-copy>p strong{color:#111;font-weight:750}
.hero-art{position:relative;min-height:292px;perspective:none}.hero-static-stack{position:absolute;inset:-8px 0 0;will-change:opacity}.hero-static-stack .static-card{position:absolute;display:block;aspect-ratio:4/3;object-fit:cover;border-radius:12px;box-shadow:0 14px 30px rgba(0,0,0,.16),0 2px 7px rgba(0,0,0,.08);transform-origin:center}.hero-static-stack .static-axiom{z-index:1;left:18%;top:1%;width:72%;transform:rotate(2deg)}.hero-static-stack .static-mugen{z-index:2;left:0;top:16%;width:76%;transform:rotate(-6deg)}.hero-static-stack .static-kyma{z-index:3;left:24%;top:10%;width:77%;transform:rotate(6.5deg)}.hero-static-stack .static-kora{z-index:4;left:7%;top:12%;width:83%;transform:rotate(7deg)}
.logo-strip{height:105px;margin:20px calc(var(--pad)*-1) 0;padding:0 var(--pad);border-top:1px solid var(--line);display:flex;align-items:center;gap:48px;overflow:hidden}.happy-clients{display:flex;align-items:center;gap:10px;min-width:max-content}.avatar-stack{display:flex;padding-left:9px}.avatar-stack img{width:28px;height:28px;margin-left:-9px;border:1.5px solid var(--bg);border-radius:50%;object-fit:cover}.stars{font-size:10px;letter-spacing:1.5px;color:#050505}.happy-clients span{font-size:10px;color:#666}.logo-flow{flex:1;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.logo-flow-track{display:flex;align-items:center;gap:58px;width:max-content;color:#686868;font-size:17px;font-weight:720;animation:logoDrift 42s linear infinite}.logo-flow-track span{white-space:nowrap}.logo-flow-track b{font-size:16px}@keyframes logoDrift{to{transform:translateX(-50%)}}

/* Opening project morph */
.project-morph-layer{position:absolute;left:0;top:0;width:100%;height:0;z-index:55;pointer-events:none;display:none}.morph-card{position:absolute;left:0;top:0;overflow:hidden;border-radius:12px;background:#090909;box-shadow:0 16px 34px rgba(0,0,0,.17),0 3px 8px rgba(0,0,0,.09);transform-origin:50% 50%;will-change:transform,width,height,opacity;backface-visibility:hidden;transform:translateZ(0);contain:paint}.morph-card img{display:block;width:100%;height:100%;object-fit:cover;backface-visibility:hidden;transform:translateZ(0)}.morph-ready .project-morph-layer{display:block}.morph-ready .hero-static-stack{opacity:0}.morph-disabled .hero-static-stack{opacity:1}

/* Projects */
.projects{padding-top:94px;padding-bottom:112px;background:#fff}.project-heading{margin-bottom:34px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 12px;background:#fff}.project-card{min-width:0;background:#fff}.project-image{position:relative;display:block;overflow:hidden;aspect-ratio:1.335;border-radius:11px;background:#fff;isolation:isolate}.project-image>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .68s var(--ease),filter .35s}.project-image:hover>img{transform:scale(1.035);filter:saturate(1.06)}
.cursor-pill{position:absolute;left:0;top:0;z-index:3;padding:8px 11px;border-radius:999px;background:rgba(250,250,250,.82);backdrop-filter:blur(12px);box-shadow:0 5px 14px rgba(0,0,0,.10);font-size:10px;font-weight:750;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.9);transition:opacity .18s,scale .2s var(--ease)}.pointer-card:hover .cursor-pill{opacity:1;scale:1}
.project-meta{display:flex;justify-content:space-between;align-items:end;padding:8px 0 0}.project-meta h3{margin:0;font-size:13px}.project-meta p,.project-meta a{margin:2px 0 0;font-size:10px;color:#555}.project-meta a{font-weight:650}.js .project-heading{opacity:0;filter:blur(11px);transform:translateY(14px)}.js .project-meta{opacity:0;transform:translateY(9px)}.morph-disabled .project-heading,.morph-disabled .project-meta{opacity:1!important;filter:none!important;transform:none!important}

/* Quote */
.quote-section{padding-top:138px;padding-bottom:138px;min-height:455px;display:grid;place-items:center}.quote-wrap{max-width:720px;margin:auto;text-align:center}.quote-wrap>p{margin:0;font-size:25px;line-height:1.26;letter-spacing:-.035em;font-weight:630}.quote-author{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;text-align:left}.quote-author img,.testimonial-card footer img{width:38px;height:38px;border-radius:50%;object-fit:cover}.quote-author div,.testimonial-card footer div{display:flex;flex-direction:column}.quote-author strong,.testimonial-card footer strong{font-size:11px}.quote-author span,.testimonial-card footer span{font-size:9px;color:#777}

/* Services */
.services{padding-top:128px;padding-bottom:120px}.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.services-left{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.split-heading{font-size:clamp(46px,4.25vw,56px)}.tech-stack{margin-top:62px}.tech-stack h3{margin:0 0 14px;font-size:11px}.tool-row{display:flex;gap:9px;flex-wrap:wrap}.tool-row button{position:relative;width:42px;height:42px;border:1px solid #ddd;border-radius:9px;background:#fff;box-shadow:0 7px 13px rgba(0,0,0,.065);font-size:17px;font-weight:900;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s}.tool-row button:hover{transform:translateY(-6px) rotate(-3deg);box-shadow:0 13px 20px rgba(0,0,0,.12)}.tool-row button:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,5px);padding:5px 7px;border-radius:6px;background:#111;color:#fff;font-size:9px;font-weight:650;opacity:0;pointer-events:none;transition:.2s}.tool-row button:hover:after{opacity:1;transform:translate(-50%,0)}
.service-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}.service-list li{display:flex;align-items:center;gap:13px;font-size:16px;font-weight:650}.service-list i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#050505;color:#fff;font-style:normal;font-size:13px;box-shadow:0 7px 13px rgba(0,0,0,.2);transition:transform .25s}.service-list li:hover i{transform:rotate(8deg) scale(1.08)}

/* About */
.about{padding-top:112px;padding-bottom:112px}.about>.display-heading{margin-bottom:58px}.about-grid{display:grid;grid-template-columns:.68fr 1.32fr;gap:54px}.about-left{min-width:0}.portrait-media{position:relative}.portrait-media>img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:11px}.social-overlay{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;gap:5px}.social-overlay a{height:26px;min-width:26px;padding:0 7px;border-radius:999px;background:rgba(45,45,45,.74);color:#fff;backdrop-filter:blur(10px);display:grid;place-items:center;font-size:9px;font-weight:700;border:1px solid rgba(255,255,255,.14)}.social-overlay a:not(:first-child){padding:0;width:26px}.portrait-card h3{margin:13px 0 1px;font-size:15px}.portrait-card>p{margin:0;color:#555;font-size:10px}.about-right{padding-top:1px}.about-right>p{margin:0 0 28px;font-size:15px;line-height:1.43;color:#555;letter-spacing:-.012em}.about-right>p strong{color:#111;font-weight:760}.signature{margin:56px 0 0 8px;width:max-content;font-family:"Snell Roundhand","Brush Script MT",cursive;font-size:36px;line-height:.58;transform:rotate(-7deg);font-weight:500}.signature span{font-size:.82em;margin-left:12px}
.history{margin-top:40px}.history>h3{margin:0 0 15px;font-size:12px}.history-list{display:grid;gap:9px}.history-list article{display:flex;align-items:center;justify-content:space-between;padding:14px 13px;border:1px solid #ddd;border-radius:11px;background:#fff;box-shadow:0 7px 14px rgba(0,0,0,.055);transition:transform .22s,box-shadow .22s,opacity .25s,max-height .38s var(--ease),padding .38s var(--ease),margin .38s var(--ease),border-width .38s}.history-list article:hover{transform:translateX(4px);box-shadow:0 10px 18px rgba(0,0,0,.08)}.history-list article>div{display:flex;flex-direction:column}.history-list strong{font-size:11px}.history-list span,.history-list time{font-size:9px;color:#555}.extra-job{max-height:0;opacity:0;overflow:hidden;padding-top:0!important;padding-bottom:0!important;border-width:0!important;margin-top:-9px;pointer-events:none}.history.expanded .extra-job{max-height:70px;opacity:1;padding-top:14px!important;padding-bottom:14px!important;border-width:1px!important;margin-top:0;pointer-events:auto}.show-history{display:block;margin:17px auto 0;padding:7px 10px;border:0;border-radius:999px;background:#fff;box-shadow:0 6px 13px rgba(0,0,0,.08);font-size:9px;font-weight:750;cursor:pointer}.show-history span{font-size:8px;margin-left:3px}

/* Pricing */
.pricing{padding-top:116px;padding-bottom:112px}.pricing-intro{display:flex;align-items:end;justify-content:space-between;gap:46px}.pricing-intro>p{min-width:285px;margin:0 2px 2px;font-size:13px;color:#555}.pricing-intro>p strong{color:#111}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;margin:54px 0 54px}.steps article{position:relative;padding-left:20px}.steps i{position:absolute;left:0;top:0;font-style:normal;font-size:11px}.steps h3{margin:0 0 8px;font-size:11px}.steps p{margin:0;color:#555;font-size:11px;line-height:1.45}.pricing-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:13px}.pricing-side,.price-card{border:1px solid #d9d9d9;border-radius:13px;background:#fff;box-shadow:0 9px 22px rgba(0,0,0,.055)}.pricing-side{padding:0 18px 25px}.subscription-card{position:relative;height:246px;margin:-1px -18px 20px;padding:18px;border-radius:14px;background:#030303;color:#fff;overflow:hidden;box-shadow:0 12px 24px rgba(0,0,0,.22);transform:rotate(-1.1deg);transform-origin:50% 100%}.subscription-card>span{position:relative;z-index:2;display:inline-block;padding:7px 10px;border-radius:999px;background:#fff;color:#111;font-size:9px;font-weight:750}.subscription-card .bolt{position:absolute;width:176px;height:176px;right:-8px;top:28px;object-fit:contain;transform:rotate(-10deg);filter:grayscale(1) brightness(1.45)}.subscription-card p{position:absolute;z-index:2;left:18px;bottom:18px;margin:0;color:#9a9a9a;font-size:14px;line-height:1.22}.subscription-card strong{color:#fff}.slots{margin:2px 0 14px;box-shadow:none;border:1px solid #e1e1e1}.pricing-side>h3{margin:0 0 6px;font-size:18px}.pricing-side>p{margin:0;color:#555;font-size:11px}.price-card{padding:27px 30px}.price-card>h3{margin:0 0 12px;font-size:23px;letter-spacing:-.035em}.price-card>p{max-width:410px;margin:0;color:#555;font-size:11px}.price-card hr{border:0;border-top:1px solid #e3e3e3;margin:24px 0 18px}.price{display:flex;align-items:end;gap:7px;margin-bottom:16px}.price strong{font-size:32px;line-height:1}.price span{font-size:10px;color:#777;margin-bottom:4px}.price-card ul{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;font-size:10px}.price-actions{display:flex;align-items:center;gap:12px}.price-actions>span{font-size:10px;color:#999;font-weight:700}.single-project{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1.2fr auto;align-items:center;gap:24px;padding:20px 22px;border-radius:13px;background:#030303;color:#fff;box-shadow:0 10px 22px rgba(0,0,0,.18)}.single-project .eyebrow{display:block;margin-bottom:5px;font-size:14px;font-weight:700}.single-project p{margin:0;color:#aaa;font-size:10px}.single-project ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:7px 20px;font-size:9px}.single-project .button{justify-self:end}

/* Testimonials */
.testimonials{padding-top:82px;padding-bottom:112px}.trusted-marquee{padding-bottom:30px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:30px}.trusted-marquee>strong{font-size:10px}.trusted-marquee>div{display:flex;gap:40px;color:#727272;font-size:12px;font-weight:650}.testimonial-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin:78px 0 40px}.testimonial-heading .display-heading{margin:0}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;position:relative}.testimonial-card{min-height:190px;padding:21px;border:1px solid #ddd;border-radius:11px;background:#fff;box-shadow:0 7px 14px rgba(0,0,0,.04);display:flex;flex-direction:column}.testimonial-card>b{font-size:18px}.testimonial-card>p{margin:9px 0 25px;font-size:11px;line-height:1.45}.testimonial-card footer{display:flex;align-items:center;gap:9px;margin-top:auto}.testimonial-card footer img{width:32px;height:32px}.faded-one{--fade-opacity:.58}.faded-two{--fade-opacity:.38}.faded-three{--fade-opacity:.22}

/* FAQ */
.faq{padding-top:110px;padding-bottom:110px}.faq-grid{display:grid;grid-template-columns:1.58fr .82fr;gap:48px;align-items:start}.faq .display-heading{margin-bottom:38px}.accordion{display:grid;gap:8px}.faq-item{border:1px solid #ddd;border-radius:9px;background:#fff;overflow:hidden}.faq-item button{width:100%;padding:12px 13px;border:0;background:#fff;display:grid;grid-template-columns:24px 1fr 22px;align-items:center;gap:8px;text-align:left;cursor:pointer}.faq-number{font-size:9px;color:#666}.faq-item button strong{font-size:10px}.faq-item button i{font-style:normal;font-size:16px;text-align:center}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}.faq-answer>p{overflow:hidden;margin:0;padding:0 45px;color:#444;font-size:10px;transition:padding .35s var(--ease)}.faq-item.open .faq-answer{grid-template-rows:1fr;border-top:1px solid #e8e8e8}.faq-item.open .faq-answer>p{padding:13px 45px 16px}.discovery-card{position:sticky;top:91px;padding:25px;border:1px solid #d9d9d9;border-radius:13px;background:#fff;box-shadow:0 10px 21px rgba(0,0,0,.065)}.discovery-card>img{width:56px;height:56px;border-radius:50%;object-fit:cover}.discovery-card h3{margin:23px 0 14px;font-size:27px;line-height:1.08;letter-spacing:-.045em}.discovery-card h3 span{color:#858585;font-weight:470}.discovery-card p{font-size:11px;color:#555}.discovery-card em{margin-left:12px;color:#aaa;font-size:9px;font-style:normal;font-weight:700}

/* Blog */
.blog{padding-top:108px;padding-bottom:112px}.blog-heading{display:flex;justify-content:space-between;align-items:end}.blog-heading .display-heading{margin-bottom:38px}.blog-heading .text-link{margin:0 0 43px}.featured-article{display:grid;grid-template-columns:1fr 1fr;border:1px solid #d8d8d8;border-radius:13px;background:#fff;overflow:hidden}.featured-article .article-image{min-height:340px}.article-image{position:relative;display:block;overflow:hidden}.article-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease)}.article-image:hover img{transform:scale(1.04)}.featured-article>div{display:flex;flex-direction:column;justify-content:center;padding:32px}.featured-article h3{margin:0 0 16px;font-size:27px;line-height:1.08;letter-spacing:-.04em}.featured-article>div>p:last-child{font-size:11px;color:#555}.article-meta{font-size:9px!important;color:#666}.article-meta strong{margin-left:8px;color:#222}.blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.small-article{overflow:hidden;border:1px solid #d8d8d8;border-radius:12px;background:#fff}.small-article .article-image{aspect-ratio:1.72}.small-article>div{padding:20px 23px}.small-article h3{margin:0 0 10px;font-size:17px}

/* Footer */
.footer{background:#050505;color:#fff}.footer-inner{width:min(var(--max),calc(100% - 32px));margin:auto;padding:66px var(--pad) 24px;border-left:1px solid #222;border-right:1px solid #222}.footer-cta{padding-bottom:62px;border-bottom:1px solid #242424}.rotating-line,.footer-cta h2{margin:0;font-size:clamp(50px,5.5vw,72px);line-height:.9;letter-spacing:-.065em}.rotating-line{display:flex;gap:.2em}.word-window{position:relative;display:inline-block;min-width:4.5em;height:.96em;overflow:hidden;color:#484848}.word-window b{position:absolute;left:0;top:0;font-weight:600;opacity:0;transform:translateY(80%);animation:wordCycle 4.2s var(--ease) infinite}.word-window b:nth-child(2){animation-delay:1.4s}.word-window b:nth-child(3){animation-delay:2.8s}@keyframes wordCycle{0%{opacity:0;transform:translateY(80%)}10%,27%{opacity:1;transform:translateY(0)}33%,100%{opacity:0;transform:translateY(-80%)}}
.footer-info{display:grid;grid-template-columns:1.35fr .75fr .75fr .65fr .85fr;gap:28px;padding:35px 0}.footer-info>div{display:flex;flex-direction:column;gap:5px}.footer-info span{margin-bottom:6px;color:#777;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.footer-info a{font-size:10px}.footer-info a:hover{color:#888}.footer-bottom{display:flex;justify-content:space-between;align-items:end;padding-top:24px;border-top:1px solid #242424;overflow:hidden}.footer-bottom>span{color:#777;font-size:9px}.footer-bottom strong{font-size:clamp(110px,15vw,168px);line-height:.64;letter-spacing:-.08em;color:#fff}

/* Contact dock */
.contact-dock{position:fixed;z-index:145;left:50%;bottom:16px;transform:translate(-50%,25px) scale(.94);opacity:0;pointer-events:none;display:flex;align-items:center;gap:7px;padding:7px 8px 7px 15px;border:1px solid rgba(0,0,0,.13);border-radius:999px;background:rgba(255,255,255,.78);backdrop-filter:blur(17px) saturate(1.15);box-shadow:0 10px 25px rgba(0,0,0,.12);transition:opacity .32s,transform .38s var(--ease)}.contact-dock.visible{opacity:1;pointer-events:auto;transform:translate(-50%,0) scale(1)}.contact-dock>div{display:flex;flex-direction:column;min-width:118px}.contact-dock strong{font-size:10px}.contact-dock span{font-size:9px;color:#666}.contact-dock>a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#050505;color:#fff;font-size:14px;box-shadow:0 5px 10px rgba(0,0,0,.18)}.contact-dock>a:last-child{background:#fff;color:#111;border:1px solid #ddd}

/* Scroll-linked reveals */
.scroll-reveal,.scroll-reveal-dark{--reveal:0;--fade-opacity:1;opacity:calc(var(--reveal)*var(--fade-opacity));filter:blur(calc((1 - var(--reveal))*9px));transform:translate3d(0,calc((1 - var(--reveal))*16px),0);will-change:transform,opacity,filter}.scroll-reveal-dark{filter:blur(calc((1 - var(--reveal))*10px))}.no-js .scroll-reveal,.no-js .scroll-reveal-dark{opacity:1;filter:none;transform:none}

@media (min-width:901px){.morph-ready .project-card{pointer-events:none;background:#fff!important}.morph-ready:not(.morph-targets-visible) .project-image{visibility:hidden!important;background:#fff!important;box-shadow:none!important}.morph-ready.morph-targets-visible .project-image{visibility:visible;background:#fff!important}.morph-ready:not(.morph-meta-visible) .project-meta{visibility:hidden!important;pointer-events:none}.morph-settled .project-card{pointer-events:auto}}
@media (max-width:900px){
  :root{--pad:28px}.section{width:calc(100% - 20px);padding-top:82px;padding-bottom:82px}.floating-nav{top:12px;width:calc(100% - 24px)}.floating-nav .nav-links{display:none}.floating-nav .nav-more{display:flex}.floating-nav.compact{width:224px}.floating-nav.menu-open{width:calc(100% - 24px)}.floating-nav.menu-open .nav-links{display:flex;gap:15px}.nav-contact{padding:8px 11px}
  .hero{padding-top:92px;padding-bottom:0}.hero-grid,.services-grid,.about-grid,.faq-grid,.featured-article{grid-template-columns:1fr}.hero-grid{min-height:0}.hero-copy{order:2;margin-top:24px}.hero-art{order:1;min-height:clamp(260px,62vw,470px)}.hero h1{white-space:normal}.logo-strip{margin-left:calc(var(--pad)*-1);margin-right:calc(var(--pad)*-1)}.project-morph-layer{display:none!important}.hero-static-stack{opacity:1!important}.project-heading,.project-meta{opacity:1!important;filter:none!important;transform:none!important}.project-grid,.testimonial-grid,.blog-grid{grid-template-columns:1fr}.services-grid{gap:55px}.about-grid{gap:45px}.about-left{max-width:480px}.pricing-intro,.testimonial-heading{display:block}.pricing-intro>p{margin-top:24px;min-width:0}.pricing-layout{grid-template-columns:1fr}.single-project{grid-column:auto;grid-template-columns:1fr}.single-project .button{justify-self:start}.trusted-marquee{display:block;overflow:hidden}.trusted-marquee>div{margin-top:18px;width:max-content}.faq-grid{gap:45px}.discovery-card{position:static}.footer-info{grid-template-columns:1fr 1fr}.footer-inner{width:calc(100% - 20px)}.featured-article .article-image{min-height:300px}.faded-one,.faded-two,.faded-three{opacity:1}
}
@media (max-width:560px){
  :root{--pad:20px}.section{padding-top:72px;padding-bottom:72px}.display-heading,.split-heading,.hero h1{font-size:43px}.hero h1{font-size:46px}.hero-copy>p{font-size:14px}.happy-clients{display:none}.logo-flow-track{font-size:15px;gap:40px}.project-meta a{display:none}.services-grid{gap:38px}.tool-row button{width:39px;height:39px}.about-grid{grid-template-columns:1fr}.pricing-layout{display:block}.price-card,.pricing-side,.single-project{margin-bottom:13px}.price-card ul{grid-template-columns:1fr}.steps{grid-template-columns:1fr;gap:22px}.testimonial-grid{grid-template-columns:1fr}.faq-grid{grid-template-columns:1fr}.blog-heading{display:block}.blog-heading .text-link{margin:-18px 0 34px}.footer-info{grid-template-columns:1fr}.footer-bottom{display:block}.footer-bottom strong{display:block;margin-top:65px}.rotating-line,.footer-cta h2{font-size:46px}.contact-dock>div{display:none}.contact-dock{padding-left:7px}.featured-article h3{font-size:24px}.featured-article>div{padding:24px}.nav-links a:not(.nav-contact){display:none}.floating-nav.menu-open .nav-links a:not(.nav-contact){display:block}.floating-nav.menu-open .nav-links{gap:11px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.scroll-reveal,.scroll-reveal-dark{opacity:1!important;filter:none!important;transform:none!important}.project-morph-layer{display:none!important}.hero-static-stack{opacity:1!important}.project-heading,.project-meta{opacity:1!important;filter:none!important;transform:none!important}}

/* Compact mobile menu fit */
@media (max-width:560px){
  .floating-nav.menu-open .identity strong{display:none}
  .floating-nav.menu-open .identity{gap:0}
  .floating-nav.menu-open .nav-links{gap:9px;font-size:10px}
  .floating-nav.menu-open .nav-contact{padding:8px 10px}
}


/* --------------------------------------------------------------------------
   Original LaunchFolio fidelity pass — navigation islands, type and scale
   -------------------------------------------------------------------------- */
:root{
  --bg:#fff;
  --surface:#fff;
  --line:#e1e1e1;
  --ease:cubic-bezier(.16,1,.3,1);
}
body{
  background:#fff;
  font-family:"Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  font-optical-sizing:auto;
  font-synthesis:none;
  font-feature-settings:"cv02" 1,"cv03" 1,"cv04" 1,"cv11" 1;
  letter-spacing:-.012em;
}
.section{background:#fff}

/* Top island: full at the top, compact after scrolling, full again on hover. */
.floating-nav{
  width:min(550px,calc(100% - 28px));
  height:58px;
  padding:8px 9px 8px 11px;
  overflow:hidden;
  background:rgba(255,255,255,.74);
  border-color:rgba(0,0,0,.13);
  backdrop-filter:blur(20px) saturate(1.12);
  -webkit-backdrop-filter:blur(20px) saturate(1.12);
  box-shadow:0 7px 23px rgba(0,0,0,.055),0 1px 2px rgba(0,0,0,.035);
  transition:
    width .43s cubic-bezier(.16,1,.3,1),
    background-color .28s ease,
    border-color .28s ease,
    box-shadow .28s ease;
  will-change:width;
}
.identity{flex:0 0 auto;gap:9px}
.identity img{width:34px;height:34px}
.identity strong{font-size:13px;line-height:1;font-weight:700;letter-spacing:-.025em}
.nav-links{
  gap:23px;
  margin-left:auto;
  font-size:12px;
  line-height:1;
  font-weight:650;
  opacity:1;
  visibility:visible;
  transform:translate3d(0,0,0);
  transition:
    opacity .22s ease .09s,
    transform .36s cubic-bezier(.16,1,.3,1) .035s,
    visibility 0s linear 0s;
}
.nav-links a{white-space:nowrap}
.nav-contact{padding:10px 16px;box-shadow:0 5px 15px rgba(0,0,0,.07)}
.nav-more{
  display:flex;
  flex:0 0 0;
  width:0;
  margin-left:auto;
  padding:12px 0;
  gap:3px;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  transform:translateX(7px);
  transition:
    flex-basis .35s cubic-bezier(.16,1,.3,1),
    width .35s cubic-bezier(.16,1,.3,1),
    padding .35s cubic-bezier(.16,1,.3,1),
    opacity .16s ease,
    transform .32s cubic-bezier(.16,1,.3,1);
}
.nav-more span{width:4px;height:4px;flex:0 0 4px}
.floating-nav.compact{width:232px}
.floating-nav.compact .nav-links{
  position:absolute;
  right:10px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate3d(-8px,0,0) scale(.975);
  transition:
    opacity .12s ease,
    transform .24s ease,
    visibility 0s linear .24s;
}
.floating-nav.compact .nav-more{
  flex-basis:42px;
  width:42px;
  padding:12px 9px;
  opacity:1;
  pointer-events:auto;
  transform:none;
  transition-delay:.08s,.08s,.08s,.12s,.08s;
}
.floating-nav.menu-open,.floating-nav.hover-open{width:min(550px,calc(100% - 28px))}
.floating-nav.menu-open .nav-links,.floating-nav.hover-open .nav-links{
  display:flex;
  position:static;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}
.floating-nav.menu-open .nav-more,.floating-nav.hover-open .nav-more{
  flex-basis:0;width:0;padding-left:0;padding-right:0;opacity:0;pointer-events:none;transform:translateX(7px)
}

/* Bottom island: the text and circular actions morph into two labelled pills. */
.contact-dock{
  width:246px;
  height:64px;
  gap:6px;
  padding:8px;
  border-color:rgba(0,0,0,.13);
  background:rgba(255,255,255,.77);
  backdrop-filter:blur(20px) saturate(1.12);
  -webkit-backdrop-filter:blur(20px) saturate(1.12);
  box-shadow:0 15px 38px rgba(0,0,0,.14),0 2px 6px rgba(0,0,0,.055);
  overflow:hidden;
  transition:
    width .40s cubic-bezier(.16,1,.3,1),
    opacity .32s ease,
    transform .42s cubic-bezier(.16,1,.3,1),
    box-shadow .3s ease;
}
.contact-dock:hover,.contact-dock.is-expanded{width:226px;box-shadow:0 17px 42px rgba(0,0,0,.16),0 2px 7px rgba(0,0,0,.06)}
.contact-dock .dock-intro{
  flex:1 1 auto;
  min-width:0;
  max-width:126px;
  padding-left:10px;
  overflow:hidden;
  white-space:nowrap;
  opacity:1;
  transform:translate3d(0,0,0);
  transition:
    flex-basis .39s cubic-bezier(.16,1,.3,1),
    max-width .39s cubic-bezier(.16,1,.3,1),
    padding .39s cubic-bezier(.16,1,.3,1),
    opacity .16s ease .10s,
    transform .34s cubic-bezier(.16,1,.3,1);
}
.contact-dock .dock-intro strong{font-size:13px;line-height:1.15;font-weight:700;letter-spacing:-.025em}
.contact-dock .dock-intro span{font-size:11px;line-height:1.2;color:#666;letter-spacing:-.01em}
.contact-dock .dock-action{
  flex:0 0 46px;
  width:46px;
  height:46px;
  min-width:46px;
  padding:0 13px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  overflow:hidden;
  border-radius:999px;
  background:#050505;
  color:#fff;
  box-shadow:0 6px 14px rgba(0,0,0,.19);
  transition:
    flex-basis .36s cubic-bezier(.16,1,.3,1),
    width .36s cubic-bezier(.16,1,.3,1),
    transform .25s cubic-bezier(.16,1,.3,1),
    box-shadow .25s ease;
}
.contact-dock .dock-action:hover{transform:translateY(-1px)}
.contact-dock .dock-call{background:#fff;color:#111;border:1px solid #dadada;box-shadow:0 5px 13px rgba(0,0,0,.08)}
.dock-icon{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px}
.dock-icon svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.dock-label{
  max-width:0;
  opacity:0;
  overflow:hidden;
  white-space:nowrap;
  font-size:12px;
  line-height:1;
  font-weight:650;
  letter-spacing:-.025em;
  transform:translateX(-7px);
  transition:
    max-width .4s cubic-bezier(.16,1,.3,1),
    opacity .18s ease,
    transform .36s cubic-bezier(.16,1,.3,1);
}
.contact-dock:hover .dock-intro,.contact-dock.is-expanded .dock-intro{
  flex-basis:0;
  max-width:0;
  padding-left:0;
  opacity:0;
  transform:translateX(-12px);
  transition-delay:0s,0s,0s,0s,0s;
}
.contact-dock:hover .dock-contact,.contact-dock.is-expanded .dock-contact{flex-basis:96px;width:96px}
.contact-dock:hover .dock-call,.contact-dock.is-expanded .dock-call{flex-basis:108px;width:108px}
.contact-dock:hover .dock-label,.contact-dock.is-expanded .dock-label{
  max-width:78px;
  opacity:1;
  transform:none;
  transition-delay:.03s,.11s,.03s;
}

/* Type/scale corrections visible in the supplied recording. */
.display-heading,.split-heading,.hero h1{letter-spacing:-.055em}
.display-heading,.split-heading{font-weight:610}
.display-heading span,.split-heading span,.hero h1 span{font-weight:410;color:#858585}
.trusted-marquee>strong{font-size:18px;font-weight:650;letter-spacing:-.035em}
.trusted-marquee>div{gap:48px;font-size:17px;font-weight:620;letter-spacing:-.03em}
.testimonial-card{min-height:214px;padding:22px 22px 21px;border-radius:12px}
.testimonial-card>b{font-size:20px;line-height:1}
.testimonial-card>p{margin:11px 0 27px;font-size:14px;line-height:1.5;letter-spacing:-.02em}
.testimonial-card footer strong{font-size:12px}
.testimonial-card footer span{font-size:10px}
.testimonial-card footer img{width:34px;height:34px}
.testimonial-heading .happy-clients .avatar-stack img{width:30px;height:30px}
.testimonial-heading .happy-clients .stars{font-size:11px}
.testimonial-heading .happy-clients span{font-size:11px}
.single-project{padding:24px 25px;gap:28px}
.single-project .eyebrow{font-size:22px;letter-spacing:-.035em}
.single-project p{font-size:13px;line-height:1.4}
.single-project ul{font-size:12px;gap:9px 24px}
.history>h3,.tech-stack h3,.steps h3{font-size:13px}
.history-list strong{font-size:13px}.history-list span,.history-list time{font-size:11px}
.steps p,.pricing-side>p,.price-card>p{font-size:12px}
.price-card ul{font-size:11px}
.faq-item button strong{font-size:13px}.faq-number{font-size:10px}.faq-answer>p{font-size:12px;line-height:1.5}
.featured-article>div>p:last-child{font-size:12px}

@media (max-width:900px){
  .floating-nav{overflow:visible}
  .floating-nav .nav-links{display:none}
  .floating-nav .nav-more{display:flex;flex-basis:42px;width:42px;padding:12px 9px;opacity:1;pointer-events:auto;transform:none}
  .floating-nav.menu-open .nav-links{display:flex}
  .floating-nav.menu-open .nav-more{flex-basis:0;width:0;padding:0;opacity:0}
  .contact-dock{width:246px}
}
@media (max-width:560px){
  .contact-dock,.contact-dock:hover,.contact-dock.is-expanded{width:112px;height:62px;padding:8px}
  .contact-dock .dock-intro{display:none}
  .contact-dock .dock-action{flex-basis:43px;width:43px;height:43px;min-width:43px;padding:0 11px}
  .contact-dock:hover .dock-contact,.contact-dock.is-expanded .dock-contact,
  .contact-dock:hover .dock-call,.contact-dock.is-expanded .dock-call{flex-basis:43px;width:43px}
  .contact-dock .dock-label{display:none}
}

/* =========================================================
   V6 — measured liquid islands, exact pricing/footer scale,
   flash-free project landing and section-specific motion.
   ========================================================= */
:root{
  --max:1080px;
  --pad:44px;
  --liquid-ease:cubic-bezier(.16,1,.3,1);
  --liquid-spring:cubic-bezier(.2,1.18,.28,1);
}

/* True glass/liquid treatment: less white paint, more optical depth. */
.floating-nav,.contact-dock{
  isolation:isolate;
  border:1px solid rgba(20,20,20,.105);
  background:
    linear-gradient(118deg,rgba(255,255,255,.66),rgba(255,255,255,.44) 48%,rgba(245,245,245,.56));
  -webkit-backdrop-filter:blur(28px) saturate(1.34) contrast(1.03);
  backdrop-filter:blur(28px) saturate(1.34) contrast(1.03);
  box-shadow:
    0 18px 46px rgba(0,0,0,.105),
    0 3px 9px rgba(0,0,0,.05),
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 -1px 0 rgba(255,255,255,.28);
}
.floating-nav::before,.contact-dock::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:1px;
  border-radius:inherit;
  pointer-events:none;
  background:
    radial-gradient(120% 180% at 12% -35%,rgba(255,255,255,.86),transparent 52%),
    linear-gradient(100deg,rgba(255,255,255,.18),transparent 42%,rgba(255,255,255,.26));
  opacity:.82;
  transform:translate3d(-2%,0,0);
  transition:transform .72s var(--liquid-ease),opacity .4s ease;
}
.floating-nav:hover::before,.contact-dock:hover::before,.contact-dock.is-expanded::before{
  transform:translate3d(3%,0,0);
  opacity:1;
}

/* Top island: compact capsule expands automatically on hover/focus. */
.floating-nav{
  top:26px;
  width:min(558px,calc(100% - 28px));
  height:58px;
  padding:8px 10px 8px 11px;
  overflow:hidden;
  transition:
    width .58s var(--liquid-spring),
    transform .48s var(--liquid-ease),
    box-shadow .38s ease,
    background-color .38s ease;
  will-change:width,transform;
}
.floating-nav.compact{width:240px}
.floating-nav.compact:hover,.floating-nav.compact.hover-open,.floating-nav.compact:focus-within,
.floating-nav.menu-open{width:min(558px,calc(100% - 28px))}
.identity img{width:34px;height:34px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.identity strong{font-size:13px;font-weight:690;letter-spacing:-.027em}
.nav-links{gap:22px;font-size:12px;font-weight:620}
.nav-links a{
  opacity:1;
  transform:translate3d(0,0,0);
  transition:opacity .22s ease,transform .48s var(--liquid-spring);
}
.floating-nav.compact .nav-links a{opacity:0;transform:translate3d(-12px,0,0)}
.floating-nav.hover-open .nav-links a,.floating-nav.menu-open .nav-links a{
  opacity:1;transform:none;
}
.floating-nav.hover-open .nav-links a:nth-child(1),.floating-nav.menu-open .nav-links a:nth-child(1){transition-delay:.025s}
.floating-nav.hover-open .nav-links a:nth-child(2),.floating-nav.menu-open .nav-links a:nth-child(2){transition-delay:.055s}
.floating-nav.hover-open .nav-links a:nth-child(3),.floating-nav.menu-open .nav-links a:nth-child(3){transition-delay:.085s}
.floating-nav.hover-open .nav-links a:nth-child(4),.floating-nav.menu-open .nav-links a:nth-child(4){transition-delay:.115s}
.floating-nav.hover-open .nav-links a:nth-child(5),.floating-nav.menu-open .nav-links a:nth-child(5){transition-delay:.145s}
.nav-contact{padding:10px 16px;background:rgba(255,255,255,.7);border-color:rgba(0,0,0,.095);box-shadow:0 5px 16px rgba(0,0,0,.075),inset 0 1px 0 rgba(255,255,255,.9)}
.nav-more{justify-content:center}

/* Bottom island: corrected optical alignment and deeper liquid morph. */
.contact-dock{
  width:252px;
  height:64px;
  bottom:18px;
  gap:7px;
  padding:8px;
  transform:translate(-50%,30px) scale(.94);
  transition:
    width .56s var(--liquid-spring),
    opacity .34s ease,
    transform .54s var(--liquid-spring),
    box-shadow .38s ease;
}
.contact-dock.visible{transform:translate(-50%,0) scale(1)}
.contact-dock:hover,.contact-dock.is-expanded{width:238px;box-shadow:0 22px 55px rgba(0,0,0,.145),0 4px 11px rgba(0,0,0,.06),inset 0 1px 0 rgba(255,255,255,.94)}
.contact-dock .dock-intro{
  flex:1 1 126px;
  max-width:126px;
  height:46px;
  padding:7px 3px 5px 10px;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:1px;
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  transform-origin:left center;
  transition:
    flex-basis .48s var(--liquid-spring),
    max-width .48s var(--liquid-spring),
    padding .48s var(--liquid-spring),
    opacity .18s ease .08s,
    transform .45s var(--liquid-spring);
}
.contact-dock .dock-intro strong{font-size:13px;line-height:15px;font-weight:690;letter-spacing:-.028em}
.contact-dock .dock-intro span{font-size:11px;line-height:14px;color:rgba(20,20,20,.58);letter-spacing:-.018em}
.contact-dock .dock-action{
  flex:0 0 46px;
  width:46px;
  min-width:46px;
  height:46px;
  padding:0 13px;
  gap:8px;
  justify-content:flex-start;
  align-items:center;
  border-radius:999px;
  transform:translateZ(0);
  transition:
    flex-basis .52s var(--liquid-spring),
    width .52s var(--liquid-spring),
    transform .32s var(--liquid-spring),
    box-shadow .3s ease;
}
.contact-dock .dock-contact{background:#070707;box-shadow:0 8px 18px rgba(0,0,0,.21),inset 0 1px 0 rgba(255,255,255,.1)}
.contact-dock .dock-call{background:rgba(255,255,255,.78);border-color:rgba(0,0,0,.1);box-shadow:0 6px 15px rgba(0,0,0,.085),inset 0 1px 0 rgba(255,255,255,.96)}
.dock-icon{flex:0 0 20px;width:20px;height:20px;align-self:center}
.dock-icon svg{width:19px;height:19px;stroke-width:1.7}
.dock-label{
  display:flex;
  align-items:center;
  height:100%;
  max-width:0;
  opacity:0;
  font-size:11px;
  line-height:1;
  font-weight:620;
  letter-spacing:-.025em;
  transform:translate3d(-8px,0,0);
  transition:max-width .48s var(--liquid-spring),opacity .2s ease,transform .45s var(--liquid-spring);
}
.contact-dock:hover .dock-intro,.contact-dock.is-expanded .dock-intro{
  flex-basis:0;max-width:0;padding-left:0;padding-right:0;opacity:0;transform:translate3d(-12px,0,0) scale(.88)
}
.contact-dock:hover .dock-contact,.contact-dock.is-expanded .dock-contact{flex-basis:98px;width:98px}
.contact-dock:hover .dock-call,.contact-dock.is-expanded .dock-call{flex-basis:119px;width:119px}
.contact-dock:hover .dock-label,.contact-dock.is-expanded .dock-label{max-width:86px;opacity:1;transform:none;transition-delay:.04s,.11s,.04s}
.contact-dock:hover .dock-action:first-of-type{transform:translate3d(-1px,0,0)}
.contact-dock:hover .dock-action:last-of-type{transform:translate3d(1px,0,0)}
.contact-dock.over-footer{opacity:0!important;pointer-events:none!important;transform:translate(-50%,22px) scale(.96)!important}

/* Project landing: one rendered image at a time. No blur, flash or cross-fade. */
.morph-card,.morph-card img,.project-image,.project-image>img{
  filter:none!important;
  image-rendering:auto;
  -webkit-transform-style:preserve-3d;
  transform-style:preserve-3d;
}
.morph-card{background:transparent;contain:layout paint;box-shadow:0 16px 34px rgba(0,0,0,.15),0 3px 8px rgba(0,0,0,.075)}
.morph-card img{opacity:1!important}
@media (min-width:901px){
  .morph-ready:not(.morph-swapped) .project-image{visibility:hidden!important;opacity:0!important}
  .morph-ready.morph-swapped .project-image{visibility:visible!important;opacity:1!important}
  .morph-ready.morph-swapped .morph-card{visibility:hidden!important;opacity:0!important}
  .morph-ready:not(.morph-swapped) .morph-card{visibility:visible!important;opacity:1!important}
}

/* Services scale and right-opening tech stack reveal. */
.services{padding-top:126px;padding-bottom:126px;overflow:hidden}
.services-grid{grid-template-columns:1.12fr .88fr;gap:84px;min-height:650px}
.split-heading{font-size:clamp(56px,5.2vw,68px);line-height:.97;letter-spacing:-.064em}
.tech-stack{margin-top:72px;overflow:visible}
.tech-stack h3{font-size:18px;font-weight:560;letter-spacing:-.035em;margin-bottom:16px}
.tool-row{
  width:max-content;
  flex-wrap:nowrap;
  gap:9px;
  clip-path:inset(0 100% 0 0 round 12px);
  opacity:.2;
  transform:translate3d(-7px,0,0);
  transition:clip-path 1.05s var(--liquid-ease),opacity .42s ease,transform .9s var(--liquid-ease);
}
.tech-stack.tech-active .tool-row{clip-path:inset(0 0 0 0 round 12px);opacity:1;transform:none}
.tool-row button{
  width:58px;height:58px;border-radius:12px;font-size:22px;
  opacity:0;transform:translate3d(-34px,0,0) scale(.92);
  transition:opacity .36s ease,transform .72s var(--liquid-spring),box-shadow .28s ease;
}
.tech-stack.tech-active .tool-row button{opacity:1;transform:none}
.tech-stack.tech-active .tool-row button:nth-child(1){transition-delay:.08s}
.tech-stack.tech-active .tool-row button:nth-child(2){transition-delay:.13s}
.tech-stack.tech-active .tool-row button:nth-child(3){transition-delay:.18s}
.tech-stack.tech-active .tool-row button:nth-child(4){transition-delay:.23s}
.tech-stack.tech-active .tool-row button:nth-child(5){transition-delay:.28s}
.tech-stack.tech-active .tool-row button:nth-child(6){transition-delay:.33s}
.tech-stack.tech-active .tool-row button:nth-child(7){transition-delay:.38s}
.tech-stack.tech-active .tool-row button:nth-child(8){transition-delay:.43s}
.service-list{gap:27px}
.service-list li{font-size:23px;font-weight:540;letter-spacing:-.04em;gap:14px}
.service-list i{width:44px;height:44px;font-size:17px;box-shadow:0 12px 20px rgba(0,0,0,.21)}

/* Pricing geometry and type measured against the supplied original frame. */
.pricing{padding-top:116px;padding-bottom:116px}
.pricing-layout{grid-template-columns:5fr 7fr;gap:5px;align-items:stretch}
.pricing-side,.price-card{border:5px solid #f1f1f1;border-radius:15px;box-shadow:none}
.pricing-side{min-height:458px;padding:0 34px 35px;background:#fff}
.subscription-card{
  height:258px;
  margin:-45px -26px 31px -35px;
  padding:26px 25px;
  border-radius:17px;
  transform-origin:52% 62%;
  box-shadow:0 18px 30px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.13);
  animation:subscriptionDrift 9.5s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes subscriptionDrift{
  0%{transform:perspective(900px) rotateX(.2deg) rotateY(-.45deg) rotateZ(-3.5deg) translate3d(-2px,-5px,0)}
  42%{transform:perspective(900px) rotateX(-.35deg) rotateY(.5deg) rotateZ(-2.25deg) translate3d(1px,1px,0)}
  100%{transform:perspective(900px) rotateX(.15deg) rotateY(-.2deg) rotateZ(-1.5deg) translate3d(4px,-1px,0)}
}
.subscription-card>span{padding:8px 12px;font-size:11px}
.subscription-card .bolt{width:174px;height:174px;right:18px;top:36px;filter:grayscale(1) brightness(1.55) contrast(.92);transform:rotate(-9deg)}
.subscription-card p{left:25px;bottom:25px;font-size:22px;line-height:1.24;letter-spacing:-.035em}
.subscription-card p strong{font-weight:650}
.slots{margin:0 0 24px;padding:9px 14px;font-size:12px}
.pricing-side>h3{font-size:31px;line-height:1.05;letter-spacing:-.045em;margin:0 0 20px}
.pricing-side>p{max-width:300px;font-size:14px;line-height:1.55;color:#222}
.price-card{min-height:458px;padding:36px 39px 34px;background:#fff}
.price-card>h3{font-size:32px;line-height:1.08;font-weight:580;letter-spacing:-.052em;margin:0 0 20px}
.price-card>p{max-width:475px;font-size:14px;line-height:1.48;color:#222}
.price-card hr{margin:31px 0 28px;border-color:#dedede}
.price{gap:9px;margin-bottom:24px}
.price strong{font-size:49px;font-weight:620;letter-spacing:-.055em}
.price span{font-size:12px;color:#222;margin-bottom:8px}
.price-card ul{font-size:14px;line-height:1.35;gap:15px 32px;margin-bottom:30px}
.price-card li{font-weight:560;letter-spacing:-.02em}
.price-actions{gap:24px}.price-actions .button{font-size:14px;padding:12px 20px}.price-actions>span{font-size:22px;color:#b6b6b6}
.single-project{
  min-height:172px;
  grid-template-columns:1.42fr 1.12fr auto;
  gap:38px;
  padding:30px 34px;
  border:5px solid #eee;
  border-radius:15px;
  box-shadow:none;
}
.single-project .eyebrow{font-size:29px;line-height:1.05;font-weight:560;letter-spacing:-.05em;margin-bottom:18px}
.single-project p{font-size:14px;line-height:1.45;color:#aaa}
.single-project ul{font-size:14px;line-height:1.35;gap:14px 28px}
.single-project .button{font-size:14px;padding:13px 21px}

/* Footer rebuilt to match the original hierarchy and crop. */
.footer{position:relative;background:#030303;color:#fff;overflow:hidden}
.footer-inner{
  position:relative;
  width:min(var(--max),calc(100% - 32px));
  min-height:665px;
  margin:auto;
  padding:72px var(--pad) 0;
  border-left:1px solid #1c1c1c;
  border-right:1px solid #1c1c1c;
  overflow:hidden;
}
.footer-cta{padding:0 0 50px;border:0}
.footer-cta h2{margin:0;font-size:clamp(62px,5.35vw,77px);line-height:.96;letter-spacing:-.063em;font-weight:520}
.footer-live-line,.footer-muted-line{display:block}
.footer-muted-line{color:#555}
.footer-live-line{color:#fff;display:flex;align-items:baseline;gap:.22em}
.word-window{height:1em;min-width:4.72em;color:#fff}
.word-window b{font-weight:520}
.footer-contact-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:56px;padding:0 0 38px}
.footer-contact-block{display:flex;flex-direction:column;gap:8px}
.footer-contact-block>span,.footer-menu-block>span,.footer-legal-block>span{font-size:13px;color:#777}
.footer-contact-block>a{font-size:19px;letter-spacing:-.025em}
.footer-socials{display:flex;align-items:center;gap:8px}
.footer-socials a{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:999px;background:#fff;color:#050505;font-size:12px;font-weight:700}
.footer-socials .social-wide{padding:0 13px;min-width:67px}
.footer-rule{height:1px;background:#454545}
.footer-meta{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:56px;align-items:end;padding:26px 0 0}
.footer-menu-block>div{display:grid;grid-template-columns:auto auto;width:max-content;gap:8px 42px;margin-top:13px}
.footer-legal-block>div{display:flex;flex-direction:column;gap:8px;margin-top:13px}
.footer-meta a{font-size:13px}
.footer-copyright{align-self:end;padding-bottom:2px;font-size:13px;color:#aaa}
.footer-orb{position:absolute;right:30px;top:447px;width:18px;height:18px;border-radius:50%;background:#eee;box-shadow:0 0 18px rgba(255,255,255,.15)}
.footer-name{
  position:absolute;
  left:50%;
  bottom:-54px;
  transform:translateX(-50%);
  width:max-content;
  font-size:clamp(180px,20vw,306px);
  line-height:.7;
  letter-spacing:-.085em;
  font-weight:560;
  color:#fff;
  filter:blur(0px);
  text-shadow:0 18px 26px rgba(255,255,255,.08);
}
.footer-name::after{
  content:"";position:absolute;left:0;right:0;bottom:-5px;height:44%;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  mask-image:linear-gradient(to bottom,transparent,#000 82%);
  pointer-events:none;
}
.footer-info,.footer-bottom{display:none!important}

/* A little more native-feeling scale consistency. */
body{font-weight:400}
.project-meta h3{font-size:14px;font-weight:650}.project-meta p,.project-meta a{font-size:11px}

@media (max-width:900px){
  .floating-nav{top:14px}
  .services-grid{grid-template-columns:1fr;min-height:0}
  .tool-row{width:100%;flex-wrap:wrap;clip-path:none;opacity:1;transform:none}
  .tool-row button{opacity:1;transform:none;width:48px;height:48px}
  .pricing-layout{grid-template-columns:1fr;gap:12px}
  .pricing-side,.price-card{border-width:3px}
  .subscription-card{margin:-24px -18px 28px;animation:none;transform:rotate(-2deg)}
  .single-project{grid-template-columns:1fr;border-width:3px}
  .footer-contact-grid,.footer-meta{grid-template-columns:1fr 1fr;gap:30px}
  .footer-social-block,.footer-copyright{grid-column:1/-1}
  .footer-inner{min-height:740px}
}
@media (max-width:560px){
  .contact-dock,.contact-dock:hover,.contact-dock.is-expanded{width:112px}
  .contact-dock:hover .dock-contact,.contact-dock.is-expanded .dock-contact,
  .contact-dock:hover .dock-call,.contact-dock.is-expanded .dock-call{flex-basis:43px;width:43px}
  .pricing-side{padding-left:20px;padding-right:20px}.subscription-card{margin-left:-16px;margin-right:-16px;height:230px}.subscription-card p{font-size:18px}
  .price-card{padding:27px 23px}.price strong{font-size:42px}.price-card ul{grid-template-columns:1fr;font-size:13px}
  .footer-contact-grid,.footer-meta{grid-template-columns:1fr}.footer-social-block,.footer-copyright{grid-column:auto}.footer-inner{min-height:790px}.footer-name{font-size:34vw}.footer-orb{display:none}
}
/* V6 final optical corrections. */
.subscription-card .bolt{
  width:160px;height:160px;right:31px;top:31px;
  opacity:.92;
  filter:grayscale(1) brightness(2.7) contrast(.52);
  mix-blend-mode:screen;
}
@keyframes wordCycle{
  0%{opacity:0;transform:none;filter:blur(7px)}
  10%,27%{opacity:1;transform:none;filter:blur(0)}
  34%,100%{opacity:0;transform:none;filter:blur(7px)}
}
.footer-name{opacity:1!important;filter:none!important;transform:translateX(-50%)!important}
.single-project{transition:none}

/* =========================================================
   V7 — homogeneous liquid glass, direction-aware top island,
   centered dock morph, aligned footer word and earlier project fan-out.
   ========================================================= */

/* Keep the glass density uniform from left to right. The original capsule
   has optical depth, but not a dark/opaque center band. */
.floating-nav,
.contact-dock{
  background:rgba(248,248,248,.70);
  -webkit-backdrop-filter:blur(26px) saturate(1.26) contrast(1.015);
  backdrop-filter:blur(26px) saturate(1.26) contrast(1.015);
  border-color:rgba(15,15,15,.105);
  box-shadow:
    0 17px 42px rgba(0,0,0,.105),
    0 3px 9px rgba(0,0,0,.045),
    inset 0 1px 0 rgba(255,255,255,.88),
    inset 0 -1px 0 rgba(255,255,255,.34);
}
.floating-nav::before,
.contact-dock::before{
  z-index:0;
  inset:1px;
  opacity:1;
  transform:none!important;
  background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(255,255,255,.055));
  transition:opacity .3s ease;
}
.floating-nav:hover::before,
.contact-dock:hover::before,
.contact-dock.is-expanded::before{transform:none!important;opacity:1}
.floating-nav>* , .contact-dock>*{position:relative;z-index:1}

/* The original opens the top island while the page is being scrolled upward. */
.floating-nav.scroll-open{width:min(558px,calc(100% - 28px))}
.floating-nav.scroll-open .nav-links{position:static;opacity:1;pointer-events:auto;transform:none}
.floating-nav.scroll-open .nav-links a{opacity:1;transform:none}
.floating-nav.scroll-open .nav-more{display:none}

/* The outer lower island stays centered. Only its contents morph, so the
   right-side call button can never press against or escape the capsule. */
.contact-dock{
  width:252px;
  overflow:hidden;
  justify-content:flex-start;
}
.contact-dock:hover,
.contact-dock.is-expanded{
  width:252px;
}
.contact-dock:hover .dock-contact,
.contact-dock.is-expanded .dock-contact{flex-basis:100px;width:100px}
.contact-dock:hover .dock-call,
.contact-dock.is-expanded .dock-call{flex-basis:120px;width:120px}
.contact-dock:hover .dock-action:first-of-type,
.contact-dock:hover .dock-action:last-of-type,
.contact-dock.is-expanded .dock-action:first-of-type,
.contact-dock.is-expanded .dock-action:last-of-type{transform:none}
.contact-dock .dock-label{white-space:nowrap}

/* "Lets" and the changing verb share the exact same top edge and line box. */
.footer-live-line{
  display:flex;
  align-items:flex-start;
  gap:.18em;
  line-height:.96;
  white-space:nowrap;
}
.footer-live-line .word-window{
  position:relative;
  display:block;
  flex:0 0 4.78em;
  width:4.78em;
  min-width:4.78em;
  height:.96em;
  line-height:.96;
  overflow:hidden;
  transform:none;
}
.footer-live-line .word-window b{
  top:0;
  left:0;
  display:block;
  height:.96em;
  line-height:.96;
  font-size:1em;
  transform-origin:left top;
}

/* The four opening cards begin fanning out in the first third of the trip. */
.morph-card{will-change:transform,width,height;image-rendering:auto}

@media (max-width:900px){
  .floating-nav.scroll-open{width:calc(100% - 24px)}
  .footer-live-line{white-space:normal;flex-wrap:wrap}
}

/* =========================================================
   V8 — clearer liquid islands, premium dock iconography,
   and Framer-like three-dot contraction choreography.
   ========================================================= */

/* A lighter, more transparent glass volume. The tint is intentionally
   uniform across the capsule; depth comes from blur, edge refraction and
   highlights rather than an opaque centre band. */
.floating-nav,
.contact-dock{
  background:rgba(255,255,255,.35)!important;
  -webkit-backdrop-filter:blur(30px) saturate(1.52) brightness(1.06)!important;
  backdrop-filter:blur(30px) saturate(1.52) brightness(1.06)!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:
    0 18px 44px rgba(0,0,0,.105),
    0 3px 10px rgba(0,0,0,.045),
    inset 0 0 0 1px rgba(18,18,18,.055),
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -1px 0 rgba(255,255,255,.32)!important;
}
.floating-nav::before,
.contact-dock::before{
  inset:1px!important;
  opacity:1!important;
  background:linear-gradient(180deg,rgba(255,255,255,.34) 0%,rgba(255,255,255,.08) 42%,rgba(255,255,255,.015) 100%)!important;
  mix-blend-mode:screen;
  pointer-events:none;
}
.floating-nav::after,
.contact-dock::after{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  left:9%;right:9%;top:1px;height:1px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.92) 22%,rgba(255,255,255,.92) 78%,transparent);
  opacity:.72;
}

/* Top island and link disappearance. */
.floating-nav{
  isolation:isolate;
  transition:
    width .60s cubic-bezier(.16,1,.3,1),
    transform .48s cubic-bezier(.16,1,.3,1),
    box-shadow .38s ease,
    background-color .38s ease!important;
}
.nav-links a{
  will-change:opacity,transform,filter;
  transition:
    opacity .17s ease,
    transform .43s cubic-bezier(.16,1,.3,1),
    filter .20s ease!important;
}
.floating-nav.compact .nav-links a{
  opacity:0!important;
  transform:translate3d(-10px,0,0) scale(.97)!important;
  filter:blur(3.5px);
}
.floating-nav.hover-open .nav-links a,
.floating-nav.scroll-open .nav-links a,
.floating-nav.menu-open .nav-links a{
  opacity:1!important;
  transform:none!important;
  filter:blur(0)!important;
}

/* The original ellipsis does not simply pop in. It rides the shrinking
   capsule edge toward the identity, sharpens from a tiny blurred cluster,
   and resolves right-to-left over a few frames. */
.nav-more{
  display:flex!important;
  position:absolute!important;
  z-index:4;
  right:10px;
  top:50%;
  width:38px;
  height:38px;
  margin:0!important;
  padding:0!important;
  align-items:center;
  justify-content:center;
  gap:3.5px;
  opacity:0;
  pointer-events:none;
  transform:translate3d(16px,-50%,0) scale(.68);
  filter:blur(2px);
  transition:
    opacity .12s ease,
    transform .50s cubic-bezier(.16,1,.3,1),
    filter .16s ease!important;
}
.nav-more span{
  width:4px!important;
  height:4px!important;
  background:rgba(42,42,42,.74)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.55);
  opacity:0;
  transform:translate3d(7px,0,0) scale(.48);
  filter:blur(1.5px);
  transition:
    opacity .11s ease,
    transform .31s cubic-bezier(.2,.9,.25,1.25),
    filter .12s ease;
}
.floating-nav.compact .nav-more{
  opacity:1;
  pointer-events:auto;
  transform:translate3d(0,-50%,0) scale(1);
  filter:blur(0);
  transition-delay:.075s,0s,.075s!important;
}
.floating-nav.compact .nav-more span{
  opacity:1;
  transform:none;
  filter:blur(0);
}
/* right-most dot resolves first, then the centre, then the left one */
.floating-nav.nav-contracting .nav-more span:nth-child(3){transition-delay:.075s}
.floating-nav.nav-contracting .nav-more span:nth-child(2){transition-delay:.100s}
.floating-nav.nav-contracting .nav-more span:nth-child(1){transition-delay:.125s}
.floating-nav.nav-expanding .nav-more,
.floating-nav.hover-open .nav-more,
.floating-nav.scroll-open .nav-more,
.floating-nav.menu-open .nav-more{
  opacity:0!important;
  pointer-events:none!important;
  transform:translate3d(14px,-50%,0) scale(.72)!important;
  filter:blur(1.7px)!important;
  transition-delay:0s!important;
}
.floating-nav.nav-expanding .nav-more span,
.floating-nav.hover-open .nav-more span,
.floating-nav.scroll-open .nav-more span,
.floating-nav.menu-open .nav-more span{
  opacity:0!important;
  transform:translate3d(6px,0,0) scale(.58)!important;
  filter:blur(1px)!important;
  transition-delay:0s!important;
}
@keyframes navLiquidContract{
  0%{transform:translateX(-50%) scaleX(1) scaleY(1)}
  43%{transform:translateX(-50%) scaleX(.985) scaleY(1.035)}
  100%{transform:translateX(-50%) scaleX(1) scaleY(1)}
}
@keyframes navLiquidExpand{
  0%{transform:translateX(-50%) scaleX(1) scaleY(1)}
  38%{transform:translateX(-50%) scaleX(1.012) scaleY(.975)}
  100%{transform:translateX(-50%) scaleX(1) scaleY(1)}
}
.floating-nav.nav-contracting{animation:navLiquidContract .58s cubic-bezier(.16,1,.3,1)}
.floating-nav.nav-expanding{animation:navLiquidExpand .58s cubic-bezier(.16,1,.3,1)}

/* Bottom island: stronger hierarchy, crisp bespoke icons and larger labels. */
.contact-dock{
  width:254px;
  height:64px;
  padding:8px;
  gap:7px;
  overflow:hidden;
  isolation:isolate;
  transition:
    width .60s cubic-bezier(.16,1,.3,1),
    opacity .34s ease,
    transform .54s cubic-bezier(.16,1,.3,1),
    box-shadow .38s ease!important;
}
.contact-dock:hover,
.contact-dock.is-expanded{
  width:278px;
  box-shadow:
    0 23px 58px rgba(0,0,0,.145),
    0 4px 12px rgba(0,0,0,.055),
    inset 0 0 0 1px rgba(18,18,18,.05),
    inset 0 1px 0 rgba(255,255,255,.98)!important;
}
.contact-dock .dock-intro{
  flex-basis:128px;
  max-width:128px;
  padding:6px 4px 5px 10px;
  gap:1px;
}
.contact-dock .dock-intro strong{
  color:#101010;
  font-size:13.5px;
  line-height:16px;
  font-weight:730;
  letter-spacing:-.03em;
}
.contact-dock .dock-intro span{
  color:rgba(16,16,16,.67)!important;
  font-size:11.5px!important;
  line-height:14px;
  font-weight:520;
  letter-spacing:-.018em;
}
.contact-dock .dock-action{
  flex-basis:46px;
  width:46px;
  min-width:46px;
  height:46px;
  padding:0 13px;
  gap:8px;
  border:1px solid transparent;
  overflow:hidden;
}
.contact-dock .dock-contact{
  color:#fff;
  background:#050505!important;
  border-color:rgba(255,255,255,.08)!important;
  box-shadow:0 8px 20px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.13)!important;
}
.contact-dock .dock-call{
  color:#0a0a0a!important;
  background:rgba(255,255,255,.72)!important;
  border-color:rgba(8,8,8,.13)!important;
  box-shadow:0 7px 18px rgba(0,0,0,.09),inset 0 1px 0 rgba(255,255,255,.98)!important;
}
.dock-icon{
  display:grid;
  place-items:center;
  flex:0 0 20px!important;
  width:20px!important;
  height:20px!important;
  color:currentColor;
}
.dock-icon svg{
  display:block;
  width:20px!important;
  height:20px!important;
  fill:none;
  stroke:currentColor;
  stroke-width:2.05!important;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.dock-label{
  color:currentColor!important;
  font-size:12.5px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:-.022em!important;
}
.contact-dock:hover .dock-contact,
.contact-dock.is-expanded .dock-contact{flex-basis:109px!important;width:109px!important}
.contact-dock:hover .dock-call,
.contact-dock.is-expanded .dock-call{flex-basis:132px!important;width:132px!important}
.contact-dock:hover .dock-label,
.contact-dock.is-expanded .dock-label{max-width:95px!important}
@keyframes dockLiquidOpen{
  0%{transform:translate(-50%,0) scaleX(1) scaleY(1)}
  42%{transform:translate(-50%,0) scaleX(1.018) scaleY(.975)}
  100%{transform:translate(-50%,0) scaleX(1) scaleY(1)}
}
.contact-dock.visible:hover,
.contact-dock.visible.is-expanded{animation:dockLiquidOpen .62s cubic-bezier(.16,1,.3,1)}

@media (max-width:900px){
  .nav-more{opacity:1;pointer-events:auto;transform:translate3d(0,-50%,0) scale(1);filter:none}
  .nav-more span{opacity:1;transform:none;filter:none}
  .contact-dock,.contact-dock:hover,.contact-dock.is-expanded{width:114px}
}

/* --------------------------------------------------------------------------
   V9.1 — live Framer typography and responsive geometry parity
   -------------------------------------------------------------------------- */
:root{--max:1082px}
body{
  font-family:"Switzer","Switzer Placeholder",Arial,sans-serif;
  font-weight:500;
  font-feature-settings:"cv03" 1,"cv04" 1,"cv09" 1,"cv11" 1;
  letter-spacing:-.01em;
}
button{font-family:inherit}

.identity strong,.nav-links{font-size:14px;line-height:1.12;font-weight:600;letter-spacing:-.02em}
.floating-nav{width:min(550px,calc(100% - 28px))}
.floating-nav.menu-open,.floating-nav.hover-open,.floating-nav.scroll-open{width:min(550px,calc(100% - 28px))}
.availability,.slots{font-size:12px;font-weight:600;letter-spacing:-.02em}
.button{font-size:14px;line-height:1.12;font-weight:600;letter-spacing:-.02em;padding:9px 15px}
.button img{width:28px;height:28px}

.display-heading,.split-heading,.hero h1{
  font-family:"Switzer","Switzer Placeholder",Arial,sans-serif;
  font-weight:500;
  letter-spacing:-.03em;
}
.display-heading,.split-heading{font-size:64px;line-height:1}
.display-heading span,.split-heading span,.hero h1 span{font-weight:500;color:#898989}
.hero h1{font-size:72px;line-height:.95;letter-spacing:-.03em}
.hero-copy>p{max-width:400px;font-size:18px;line-height:1.4;font-weight:500;letter-spacing:-.02em;color:#545454}
.hero-copy>p strong{font-weight:600;color:#000}

.text-link{font-size:18px;line-height:1.4;font-weight:500;letter-spacing:-.02em}
.project-heading span{color:#000}
.project-meta h3{font-size:14px;line-height:1.4;font-weight:600}
.project-meta p,.project-meta a{font-size:12px;line-height:1.4;font-weight:500}

.quote-wrap{max-width:780px}
.quote-wrap>p{font-size:28px;line-height:1.4;letter-spacing:-.03em;font-weight:500}
.quote-author strong,.testimonial-card footer strong{font-size:14px;line-height:1.12;font-weight:600}
.quote-author span,.testimonial-card footer span{font-size:12px;line-height:1.3}

.services{padding-top:126px;padding-bottom:126px}
.split-heading{font-size:64px;line-height:1;letter-spacing:-.03em}
.tech-stack h3{font-size:18px;line-height:1.4;font-weight:500;letter-spacing:-.02em}
.service-list li{font-size:22px;line-height:1.4;font-weight:500;letter-spacing:-.03em}

.about>.display-heading{margin-bottom:64px}
.about-grid{grid-template-columns:371px 1fr;gap:64px}
.portrait-media>img{height:410px;aspect-ratio:auto;object-position:center 38%}
.portrait-card h3{font-size:22px;line-height:1.4;font-weight:500;letter-spacing:-.03em}
.portrait-card>p{font-size:14px;line-height:1.6}
.about-right>p{margin-bottom:30px;font-size:22px;line-height:1.4;font-weight:500;letter-spacing:-.03em;color:#545454}
.about-right>p strong{font-weight:600;color:#000}
.history>h3{font-size:18px;line-height:1.4;font-weight:500;letter-spacing:-.02em}
.history-list strong{font-size:14px;line-height:1.4;font-weight:600}
.history-list span,.history-list time{font-size:12px;line-height:1.4}

.pricing-intro>p{min-width:323px;font-size:18px;line-height:1.4;font-weight:500;letter-spacing:-.02em}
.pricing-intro>p strong{font-weight:600;color:#000}
.steps h3{font-size:16px;line-height:1.5;font-weight:600;letter-spacing:-.02em}
.steps p{font-size:14px;line-height:1.6;font-weight:500;letter-spacing:-.01em}
.pricing-side>h3,.price-card>h3,.single-project .eyebrow{font-size:32px;line-height:1.15;font-weight:500;letter-spacing:-.03em}
.pricing-side>p,.price-card>p,.single-project p{font-size:14px;line-height:1.6;font-weight:500}
.price-card ul,.single-project ul{font-size:14px;line-height:1.4;font-weight:500}

.trusted-marquee>strong{font-size:22px;line-height:1.4;font-weight:500;letter-spacing:-.03em}
.trusted-marquee>div{font-size:18px;line-height:1.4;font-weight:500;letter-spacing:-.03em}
.testimonial-card>p{font-size:14px;line-height:1.6;font-weight:500;letter-spacing:-.01em}

.faq-item button strong{font-size:16px;line-height:1.5;font-weight:600;letter-spacing:-.02em}
.faq-number{font-size:12px}
.faq-answer>p{font-size:14px;line-height:1.6;font-weight:500}
.discovery-card h3{font-size:32px;line-height:1.15;font-weight:500;letter-spacing:-.03em}
.discovery-card h3 span{font-weight:500}
.discovery-card p{font-size:14px;line-height:1.6;font-weight:500}

.featured-article h3{font-size:32px;line-height:1.15;font-weight:500;letter-spacing:-.03em}
.featured-article>div>p:last-child{font-size:14px;line-height:1.6;font-weight:500}
.article-meta{font-size:12px!important;line-height:1.4}
.small-article h3{font-size:20px;line-height:1.3;font-weight:500;letter-spacing:-.03em}

.footer-cta h2{font-size:72px;line-height:.95;font-weight:500;letter-spacing:-.03em}
.word-window b{font-weight:500}
.footer-contact-block>span,.footer-menu-block>span,.footer-legal-block>span{font-size:12px;line-height:1.12}
.footer-contact-block>a{font-size:18px;line-height:1.4;font-weight:500;letter-spacing:-.02em}
.footer-meta a,.footer-copyright{font-size:12px;line-height:1.4;font-weight:500}
.footer-name{font-size:296px;line-height:1;letter-spacing:-.03em;font-weight:500;bottom:-96px}

@media (max-width:900px){
  .about-grid{grid-template-columns:1fr;gap:46px}
  .portrait-media>img{width:100%;height:auto;aspect-ratio:3/4;object-position:center}
}

@media (max-width:560px){
  :root{--pad:11px}
  .section{width:calc(100% - 20px);padding-top:60px;padding-bottom:60px}
  .floating-nav{top:24px;width:230px;height:58px}
  .floating-nav.compact{width:230px}
  .floating-nav.menu-open{width:calc(100% - 44px)}
  .identity strong{font-size:14px}

  .hero{padding-top:123px;padding-bottom:0}
  .hero-grid{display:block;min-height:0}
  .hero-copy{margin:0;padding:0}
  .hero-art{display:none}
  .hero h1{font-size:42px;line-height:.95;letter-spacing:-.03em}
  .hero-copy>p{max-width:346px;font-size:16px;line-height:1.4}
  .logo-strip{height:174px;margin-top:46px}
  .logo-strip{flex-direction:column;align-items:flex-start;justify-content:center;gap:28px}
  .happy-clients{display:flex}
  .logo-flow{width:100%;flex:none}

  .display-heading,.split-heading{font-size:36px;line-height:1;letter-spacing:-.03em}
  .projects{padding-top:49px;padding-bottom:54px}
  .projects .project-heading{margin-bottom:0}
  .projects .project-grid{display:none}
  .projects .text-link{margin-top:170px;font-size:16px;line-height:1.4}
  .quote-section{min-height:0;padding-top:23px;padding-bottom:27px}
  .quote-wrap>p{font-size:22px;line-height:1.4}
  .quote-author strong{font-size:14px}.quote-author span{font-size:12px}

  .services{padding-top:60px;padding-bottom:60px}
  .services-grid{gap:48px}
  .tech-stack{margin-top:50px}
  .tech-stack h3{font-size:16px;line-height:1.5}
  .tool-row{gap:8px}
  .tool-row button{width:56px;height:56px;border-radius:11px;font-size:20px}
  .service-list{gap:40px}
  .service-list li{font-size:18px;line-height:1.4;gap:12px}
  .service-list i{width:42px;height:42px;font-size:16px}

  .about>.display-heading{margin-bottom:54px}
  .about-grid{gap:42px}
  .about-right{order:1}
  .about-left{order:2}
  .portrait-media>img{height:382px;aspect-ratio:auto;object-position:center 38%}
  .portrait-card h3{font-size:20px}
  .about-right>p{font-size:18px;line-height:1.4}
  .history>h3{font-size:16px}
  .history-list strong{font-size:14px}.history-list span,.history-list time{font-size:12px}

  .pricing-intro>p{font-size:16px;line-height:1.4}
  .steps h3{font-size:14px;line-height:1.5}.steps p{font-size:14px;line-height:1.6}
  .pricing-side>h3,.price-card>h3,.single-project .eyebrow{font-size:26px;line-height:1.15}
  .trusted-marquee>strong{font-size:18px}.trusted-marquee>div{font-size:16px}
  .testimonial-heading .happy-clients{display:flex;margin-top:24px}
  .testimonials{overflow:hidden}
  .testimonial-grid{display:flex;gap:14px;width:max-content}
  .testimonial-card{flex:0 0 314px;width:314px;min-height:280px;padding:24px}

  .faq-item button{grid-template-columns:26px 1fr 22px;padding:14px 15px}
  .faq-item button strong{font-size:14px;line-height:1.5}
  .faq-answer>p{font-size:14px;line-height:1.6;padding-left:15px;padding-right:15px}
  .faq-item.open .faq-answer>p{padding:16px 15px 18px}
  .discovery-card h3{font-size:26px;line-height:1.15}
  .featured-article .article-image{height:195px;min-height:195px}
  .featured-article>div{padding:32px}
  .featured-article h3{font-size:20px;line-height:1.3}
  .small-article h3{font-size:18px}

  .footer-cta h2{font-size:42px;line-height:.95;letter-spacing:-.03em}
  .footer-inner{width:calc(100% - 20px);padding-left:var(--pad);padding-right:var(--pad)}
  .footer-meta{grid-template-columns:1fr 1fr;gap:30px}
  .footer-copyright{grid-column:1/-1}
  .footer-name{font-size:296px;line-height:1;letter-spacing:-.03em;bottom:-95px}
}
