@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Instrument+Serif:ital@0;1&display=swap');
:root{--ink:#17251e;--muted:#68736a;--paper:#fafbf6;--lime:#c8ff6a;--line:#dfe4d9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #658a35;outline-offset:6px}.wrap{width:min(1200px,calc(100% - 100px));margin:auto}.header{width:min(1320px,calc(100% - 64px));height:102px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:10px;font-size:21px;font-weight:700;letter-spacing:-1px}.brand-dot{font-size:10px;align-self:flex-start;margin:5px 0 0 -5px}.header nav{display:flex;gap:33px;font-size:13px}.header nav a:hover,.text-link:hover{color:#607e34}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--ink);color:white;border-radius:7px;padding:18px 24px;font-size:13px;font-weight:550;transition:transform .2s,background .2s}.button:hover{background:#354c38;transform:translateY(-2px)}.button span{font-size:20px;line-height:1}.button.small{padding:13px 19px;gap:27px}.hero{display:grid;grid-template-columns:1.12fr 1fr;gap:32px;padding:76px 0 73px;align-items:center}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.8px;display:flex;gap:9px;align-items:center;margin:0 0 27px}.status-dot{width:7px;height:7px;border-radius:50%;background:#6e9046}.hero h1{font-size:clamp(48px,5.4vw,76px);font-weight:500;line-height:1.06;letter-spacing:-3.8px;margin:0 0 26px}.serif{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-style:italic;letter-spacing:-1.8px}.intro{max-width:390px;line-height:1.85;color:var(--muted);font-size:15px;margin-bottom:30px}.text-link{display:inline-block;font-size:11px;margin-left:22px}.hero-note{display:flex;gap:9px;align-items:center;font-size:10px;color:var(--muted);margin-top:45px}.hero-note>span{font-size:22px;color:var(--ink)}.hero-art{height:510px;position:relative;display:flex;justify-content:center;align-items:center;background:#eef1e6;border-radius:140px 140px 16px 16px;isolation:isolate;overflow:hidden}.art-grid{position:absolute;inset:0;background-image:linear-gradient(#ccd4bf55 1px,transparent 1px),linear-gradient(90deg,#ccd4bf55 1px,transparent 1px);background-size:35px 35px;z-index:-2;mask-image:linear-gradient(transparent,#000)}.orbit{position:absolute;width:440px;height:250px;border:1px solid #c3cdb7;border-radius:50%;transform:rotate(-35deg);z-index:-1}.orbit-two{transform:rotate(38deg);width:420px;height:340px}.phone{width:224px;height:421px;border:6px solid #26332b;background:#fff;border-radius:35px;box-shadow:15px 25px 35px #25351f25;transform:rotate(-8deg);padding:11px 13px;position:relative}.phone-top{display:flex;justify-content:space-between;font-size:7px;font-weight:700;margin:0 3px 24px}.phone-camera{position:absolute;top:8px;left:75px;width:66px;height:16px;border-radius:15px;background:#26332b}.app-heading{display:flex;align-items:center;gap:7px;font-size:8px;line-height:1.4;font-weight:600;margin-bottom:16px}.mini-logo{background:#eef1e8;border-radius:50%;width:27px;height:27px;font-size:20px;text-align:center}.app-menu{margin-left:auto;font-size:13px}.app-card{height:181px;background:var(--lime);border-radius:13px;padding:16px 13px;position:relative;overflow:hidden}.app-kicker{font-size:5px;letter-spacing:1px}.app-card h2{font-size:29px;line-height:1.05;letter-spacing:-1px;margin:11px 0}.app-flower{position:absolute;right:-18px;top:58px;font-size:111px;line-height:1;color:#607f30;transform:rotate(12deg)}.app-card-bottom{font-size:7px;display:flex;justify-content:space-between;align-items:center;margin-top:19px}.app-card-bottom b{background:var(--ink);color:white;border-radius:50%;padding:5px;font-size:11px}.app-row{display:flex;justify-content:space-between;font-size:8px;margin:19px 0 10px}.app-row span+span{font-size:6px;color:var(--muted)}.app-tiles{display:flex;gap:8px}.app-tiles>div{display:flex;flex-direction:column;background:#f2f3ed;border-radius:9px;flex:1;padding:9px;gap:5px}.app-tiles strong{font-size:9px}.app-tiles small{font-size:5px;color:var(--muted)}.app-bottom{display:flex;justify-content:space-around;font-size:16px;margin-top:15px}.floating-tag{position:absolute;background:#fff;border:1px solid #e6e9df;border-radius:9px;display:flex;align-items:center;gap:9px;padding:13px 16px;box-shadow:0 8px 24px #23341c09;font-size:10px;z-index:2}.tag-top{top:58px;right:20px;transform:rotate(5deg)}.tag-top>span{font-size:19px}.tag-bottom{bottom:63px;left:15px;transform:rotate(3deg);font-size:10px}.check{background:var(--lime);border-radius:50%;width:26px;height:26px;display:grid;place-items:center}.tag-bottom small{display:block;color:var(--muted);font-size:7px;margin-top:5px}.art-caption{position:absolute;bottom:20px;font-size:7px;letter-spacing:1.4px;color:var(--muted)}.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 0}.ticker-inner{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:10px;letter-spacing:1.3px;font-weight:550}.ticker-inner>span:nth-child(even){font-size:23px;color:#79944b}.section{padding-top:95px;padding-bottom:95px}.about{display:grid;grid-template-columns:1fr 2.2fr;gap:40px}.about>.eyebrow{padding-top:12px;align-self:start}h2{font-size:46px;line-height:1.14;letter-spacing:-1.8px;font-weight:500;margin:0 0 30px}.about-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px}.about-columns p,.service p,.steps p,.process-intro{font-size:13px;line-height:1.9;color:var(--muted);margin:0}.services{background:#f0f2e9}.section-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.section-top h2{margin-bottom:0}.section-top>p{color:var(--muted);font-size:12px;line-height:1.8;margin-bottom:3px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service{padding:30px 26px;background:var(--paper);border-radius:10px;position:relative}.service-icon{width:44px;height:44px;display:grid;place-items:center;background:#e8eddc;border-radius:10px;font-size:29px;margin-bottom:45px}.service-number{position:absolute;right:26px;top:35px;color:#8d9588;font-size:10px}h3{font-size:18px;letter-spacing:-.5px;font-weight:550;margin:0 0 13px}.pills{display:flex;gap:6px;margin-top:26px}.pills span{border:1px solid var(--line);border-radius:20px;padding:6px 9px;font-size:8px;color:#61705e}.process{display:grid;grid-template-columns:1fr 1fr;gap:100px}.process-intro{max-width:310px}.steps{list-style:none;padding:0;margin:0}.steps li{display:flex;gap:23px;padding:24px 0;border-bottom:1px solid var(--line)}.steps li:first-child{padding-top:0}.steps li>span{font-size:11px;color:#7a866d;padding-top:4px}.steps h3{font-size:17px;margin-bottom:8px}.contact{padding:65px;background:var(--ink);color:#f5f8ed;border-radius:13px;position:relative;overflow:hidden;margin-bottom:55px}.contact .eyebrow{color:#bccab3}.contact h2{font-size:62px;position:relative;z-index:1}.contact h2 .serif{color:var(--lime)}.contact>p:not(.eyebrow){color:#b1bcae;font-size:13px;line-height:1.8}.contact-spark{position:absolute;right:65px;top:35px;font-size:290px;line-height:1;color:var(--lime);transform:rotate(15deg)}.contact-pending{display:flex;flex-direction:column;gap:7px;margin-top:28px;font-size:12px}.contact-pending span{color:#b1bcae;font-size:10px}.footer{display:flex;justify-content:space-between;align-items:center;padding-bottom:30px;gap:20px}.footer>span,.footer small{font-size:10px;color:var(--muted)}
@media(min-width:1500px){.hero h1{font-size:80px}}@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.hero{gap:25px}.hero h1{font-size:57px}.hero-art{height:470px}.text-link{margin:20px 0 0;display:block}.tag-top{right:5px;font-size:8px}.tag-bottom{left:5px}.service{padding:25px 20px}.service h3{font-size:16px}.pills{flex-wrap:wrap}.process{gap:45px}.contact-spark{right:20px;font-size:230px;top:90px}.about{grid-template-columns:1fr 2.5fr;gap:20px}.about-columns{gap:20px}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{height:80px;width:calc(100% - 40px)}.header nav{display:none}.brand{font-size:18px}.button.small{font-size:11px;padding:12px;gap:15px}.hero{grid-template-columns:1fr;padding:45px 0;gap:40px}.hero h1{font-size:58px;letter-spacing:-3px}.hero .eyebrow{font-size:8px}.hero .intro{max-width:400px}.hero-note{margin-top:25px}.text-link{display:inline-block;margin:0 0 0 16px;font-size:10px}.hero-art{height:470px;max-width:450px;width:100%;margin:auto}.tag-top{right:15px}.tag-bottom{left:12px}.ticker{padding:15px 0}.ticker-inner{font-size:8px;letter-spacing:.7px;flex-wrap:wrap;justify-content:center;gap:12px}.ticker-inner>span:nth-last-child(-n+2){display:none}.section{padding-top:60px;padding-bottom:60px}.about{grid-template-columns:1fr;gap:8px}h2{font-size:38px}.about-columns{grid-template-columns:1fr;gap:16px}.section-top{display:block}.section-top>p{margin-top:22px}.service-grid{grid-template-columns:1fr}.service-icon{margin-bottom:28px}.service h3{font-size:20px}.service p{max-width:350px}.pills span{font-size:9px}.process{grid-template-columns:1fr;gap:35px}.process-intro{max-width:none}.contact{padding:38px 26px;margin-bottom:35px}.contact h2{font-size:46px}.contact-spark{right:-36px;top:80px;font-size:170px;opacity:.16}.contact .eyebrow{font-size:8px}.footer{flex-wrap:wrap;gap:18px}.footer>span{width:100%;order:3}.footer small{margin-left:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

.contact-button{background:var(--lime);color:var(--ink);margin-top:24px;position:relative}.contact-button:hover{background:#dcffa5}.contact-number{margin-top:15px;font-size:12px;color:#b1bcae;position:relative}

.business-details{position:relative;z-index:1;max-width:580px;display:grid;gap:22px;margin-top:30px;padding-top:24px;border-top:1px solid #b1bcae40;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.business-details strong{display:block;color:#bccab3;font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:5px}.business-details address{font-style:normal}.business-details a:hover{text-decoration:underline}

.business-details{color:#f5f8ed;border-top-color:#bccab340}.business-details .business-name{color:var(--lime);font-size:18px;line-height:1.5;letter-spacing:.3px;margin:0}.business-details a,.business-details address,.business-details div>span{color:inherit}.business-details strong{color:#bccab3}.business-details a:hover{color:var(--lime)}.footer{flex-wrap:wrap}.footer .copyright{margin-left:auto;text-align:right;line-height:1.7;max-width:100%}@media(max-width:700px){.footer .copyright{order:4;flex-basis:100%;text-align:right}.business-details .business-name{font-size:16px}}

.service-icon>svg{display:block;flex-shrink:0}

/* Pin the complete navigation bar to the viewport throughout the page. */
body{padding-top:102px}
.header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--paper);box-shadow:0 0 0 100vmax var(--paper);clip-path:inset(0 -100vmax)}
html{scroll-padding-top:122px}
@media(max-width:700px){body{padding-top:80px}html{scroll-padding-top:100px}}

.business-details .business-registration{display:inline-block;font-size:8px;font-weight:400;letter-spacing:0;line-height:1.6;margin-left:6px;color:inherit;vertical-align:baseline}

/* Custom cursor only activates after mouse movement on supported devices. */
.cursor-dot,.cursor-ring{display:none;position:fixed;top:0;left:0;pointer-events:none;border-radius:50%;z-index:10000;will-change:transform}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
html.custom-cursor,html.custom-cursor *{cursor:none!important}
.custom-cursor .cursor-dot,.custom-cursor .cursor-ring{display:block}
.cursor-dot{width:7px;height:7px;background:var(--lime);box-shadow:0 0 0 1px #17251e88}
.cursor-ring{width:30px;height:30px;border:1px solid var(--lime);box-shadow:0 0 0 1px #17251e44;transition:width .18s ease,height .18s ease,background .18s ease}
.cursor-ring.is-hovering{width:44px;height:44px;background:#c8ff6a22}
}

/* FTFY-specific extensions */
:root{--ink:#17251e;--muted:#68736a;--paper:#fafbf6;--lime:#c8ff6a;--line:#dfe4d9}
.header .brand{gap:8px}.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--ink);color:var(--lime);display:grid;place-items:center;font-size:14px;font-weight:700}
.hero{grid-template-columns:1.12fr 1fr}.hero-art{border-radius:140px 140px 16px 16px}.hero-visual{position:relative;display:grid;place-items:center;min-height:470px}.hero-visual .visual-center{font-size:clamp(100px,15vw,210px);line-height:1;color:var(--ink);font-weight:500;letter-spacing:-18px;transform:rotate(-12deg);transition:transform .6s cubic-bezier(.2,.8,.2,1)}.hero-visual:hover .visual-center{transform:rotate(4deg) scale(1.06)}.hero-visual .visual-orbit{position:absolute;border:1px solid #b9c8a7;border-radius:50%;width:78%;height:50%;transform:rotate(-35deg)}.hero-visual .visual-orbit.two{transform:rotate(35deg)}.hero-visual .floating-tag{font-size:11px}.hero-visual .tag-top{right:20px}.hero-visual .tag-bottom{left:20px}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.service{transition:transform .25s,box-shadow .25s}.service:hover{transform:translateY(-7px);box-shadow:0 15px 35px #17251e0e}.service-icon{width:58px;height:58px}.service-icon svg{width:35px;height:35px}.service:hover .service-icon svg{transform:rotate(-8deg) scale(1.08)}.service-icon svg{transition:transform .3s}.clientele{background:#f0f2e9}.clientele-panel{background:var(--paper);border:1px dashed #bdc9b4;border-radius:12px;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px}.clientele-panel .placeholder-symbol{font-size:52px;color:#6e9046}.clientele-panel h3{margin-top:16px}.clientele-panel p{max-width:450px;color:var(--muted);font-size:13px;line-height:1.8}.hero h1{font-size:clamp(48px,5.4vw,76px)}.hero-note{margin-top:35px}.header nav{gap:24px}.contact .business-details{position:relative;z-index:2}.footer .brand-mark{width:30px;height:30px}.process .steps li{transition:padding-left .25s}.process .steps li:hover{padding-left:8px}@media(max-width:1000px){.hero-visual{min-height:400px}.hero-visual .visual-center{font-size:140px}}@media(max-width:700px){.hero{grid-template-columns:1fr}.hero-art{height:360px;border-radius:100px 100px 16px 16px}.hero-visual{min-height:340px}.hero-visual .visual-center{font-size:120px}.service-grid{grid-template-columns:1fr}.header nav{display:none}.clientele-panel{min-height:200px}.contact h2{font-size:44px}}@media(prefers-reduced-motion:reduce){.service,.service-icon svg,.hero-visual .visual-center{transition:none}}

/* Floating service links respond to pointer position and keyboard focus. */
.header .brand{font-size:20px;letter-spacing:-.7px;white-space:nowrap}
.hero-visual .interactive-tag{padding:11px 12px;font-size:10px;gap:7px;transform:translate(var(--move-x,0px),var(--move-y,0px)) rotate(var(--tilt,0deg));transition:transform .24s ease,box-shadow .24s ease,background .24s ease;will-change:transform}
.interactive-tag>span:first-child{font-size:18px;color:#607e34}
.interactive-tag:hover,.interactive-tag:focus-visible{background:#f2ffdd;box-shadow:0 12px 26px #23341c20;z-index:4}
.tag-activation{top:24%;left:5%;--tilt:-6deg}
.tag-roadshows{top:38%;right:4%;--tilt:5deg}
.tag-creative{top:10%;left:17%;--tilt:-4deg}
.tag-sampling{bottom:32%;left:4%;--tilt:4deg}
.tag-events{bottom:18%;right:4%;--tilt:-5deg}
.tag-people{bottom:6%;right:12%;--tilt:3deg}
@media(max-width:1100px) and (min-width:701px){.header nav{gap:12px}.header .brand{font-size:17px}.header .button.small{gap:12px}.hero-visual .interactive-tag{font-size:8px;padding:10px 8px}}
@media(max-width:700px){.header .brand{font-size:16px;gap:6px}.header .brand-mark{width:28px;height:28px}.header .button.small{gap:7px;font-size:10px}.hero-visual .interactive-tag{font-size:9px;padding:9px 10px}.hero-visual .tag-top{top:52px;font-size:9px}.hero-visual .tag-bottom{bottom:53px;font-size:9px}.tag-activation{top:30%;left:3%}.tag-roadshows{top:43%;right:3%}.tag-creative{top:5%;left:12%}.tag-sampling{bottom:32%;left:3%}.tag-events{bottom:23%;right:3%}.tag-people{bottom:5%;right:6%}}
@media(prefers-reduced-motion:reduce){.hero-visual .interactive-tag{transition:none;transform:rotate(var(--tilt,0deg))}.hero-visual:hover .visual-center{transform:rotate(-12deg)}}

.brand-logo{display:block;width:44px;height:44px;object-fit:contain;flex-shrink:0;border-radius:0}.footer .brand-logo{width:38px;height:38px}@media(max-width:700px){.header .brand-logo{width:34px;height:34px}}

/* Turn the contact star on hover while respecting motion preferences. */
.contact-spark{transform-origin:center;transition:transform 1.2s cubic-bezier(.22,.61,.36,1)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
.contact-spark:hover{transform:rotate(195deg)}
}
@media(prefers-reduced-motion:reduce){.contact-spark{transition:none}}

.social-links{display:flex;flex-wrap:wrap;gap:12px 24px}.social-links a{display:inline-flex;align-items:center;gap:8px;text-decoration:underline;text-underline-offset:4px}.social-links a:hover{color:var(--lime)}

/* Clientele photo gallery: native touch scrolling plus button and keyboard navigation. */
.portfolio-controls{display:flex;justify-content:flex-end;gap:10px;margin-bottom:18px}
.portfolio-controls button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-size:22px;cursor:pointer}
.portfolio-controls button:hover:not(:disabled){background:var(--lime)}
.portfolio-controls button:disabled{opacity:.35;cursor:default}
.portfolio-controls button:focus-visible,.portfolio-track:focus-visible{outline:3px solid #658a35;outline-offset:4px}
.portfolio-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:4px 0 18px;scrollbar-color:#79944b #dfe4d9}
.portfolio-slide{flex:0 0 23.4%;min-width:0;margin:0;scroll-snap-align:start}
.portfolio-photo{position:relative;overflow:hidden;border-radius:14px;background:#e5e9de;aspect-ratio:4/3}
.portfolio-photo{display:grid;place-items:center}.portfolio-image-boundary{position:relative;overflow:hidden}.portfolio-image-boundary>.event-photo{display:block;width:100%;height:100%;object-fit:contain}
.portfolio-watermark{position:absolute;width:18%;max-width:58px;height:auto;opacity:.2;pointer-events:none;user-select:none}
.portfolio-watermark:nth-of-type(2){top:7%;left:7%}
.portfolio-watermark:nth-of-type(3){top:45%;right:7%}
.portfolio-watermark:nth-of-type(4){bottom:7%;left:30%}
.portfolio-slide figcaption{padding:14px 2px 0;font-size:13px;color:var(--muted)}
@media(max-width:700px){.portfolio-slide{flex-basis:27.6%}.portfolio-track{gap:14px}}
