*,*::before,*::after{box-sizing:border-box}
:root{--accent:#f06292;--accent-deep:#d94477;--on-accent:#111;--bg:#e9e8e5;--paper:#fff;--plate:#f4f3f0;--ink:#111115;--muted:#666675;--line:#d9d7d2;--radius:16px;--font:Inter,"Arial",sans-serif}
:root[data-accent=orange]{--accent:#fa5b01;--accent-deep:#d44d00;--on-accent:#111}
:root[data-accent=teal]{--accent:#0b8c87;--accent-deep:#076864;--on-accent:#fff}
:root[data-accent=blue]{--accent:#345cdf;--accent-deep:#2445ab;--on-accent:#fff}
:root[data-accent=pink]{--accent:#f06292;--accent-deep:#d94477;--on-accent:#111}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--font);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:-1;opacity:.15;pointer-events:none;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E")}
a{color:inherit}img{max-width:100%;height:auto}button,input,textarea{font:inherit}button{cursor:pointer}
.shell{width:min(1240px,calc(100% - 44px));margin-inline:auto}
.skip-link{position:absolute;top:-100px;left:10px;background:var(--ink);color:#fff;z-index:9999;padding:10px}.skip-link:focus{top:10px}
h1,h2,h3,p{overflow-wrap:break-word}h1,h2,h3{line-height:1.05;letter-spacing:-.055em}h1{font-size:clamp(48px,7.1vw,98px);margin:15px 0 24px;font-weight:900}h2{font-size:clamp(34px,4.7vw,64px);margin:12px 0 20px;font-weight:900}h3{font-size:clamp(23px,2.5vw,32px);margin:0 0 12px;font-weight:850}em{font-style:normal;background:linear-gradient(transparent 65%,var(--accent) 65%)}
.highlight{background:linear-gradient(transparent 66%,var(--accent) 66%)}
.eyebrow,.section-index{font-size:11px;letter-spacing:.14em;font-weight:900;line-height:1.5;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:10px}.pulse-dot{height:10px;width:10px;display:inline-block;flex:none;background:var(--accent);border-radius:100%;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 20%,transparent)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;gap:8px;padding:12px 21px;border:2px solid var(--ink);border-radius:6px;box-shadow:3px 3px 0 var(--ink);font-size:12px;line-height:1.2;font-weight:900;letter-spacing:.035em;text-transform:uppercase;text-decoration:none;transition:transform .18s,box-shadow .18s;background:#fff;color:var(--ink)}
.btn:hover,.btn:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}.btn-accent{background:var(--accent);color:var(--on-accent)}.btn-dark{background:var(--ink);color:#fff}.btn-outline{background:transparent}.button-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:28px}.text-link{font-size:13px;font-weight:900;text-underline-offset:5px}
.panel{background:var(--paper);border-radius:var(--radius);box-shadow:0 1px 1px #0001,0 12px 28px -25px #0007;position:relative}.panel::before,.panel::after{content:"";position:absolute;width:18px;height:18px;border:1px solid #ddd;border-radius:100%;background:#f9f9f8;box-shadow:inset 1px 1px 3px #0001}.panel::before{top:14px;left:14px}.panel::after{top:14px;right:14px}
.site-header{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);padding:14px 0}.header-inner{width:min(1240px,calc(100% - 44px));height:58px;margin:auto;background:var(--paper);border:1px solid #fff;border-radius:14px;display:flex;align-items:center;box-shadow:0 5px 24px #0001;padding:0 12px;gap:12px}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;white-space:nowrap;font-size:17px;letter-spacing:-.07em}.brand img{width:38px;height:38px;object-fit:cover;border:2px solid var(--ink);border-radius:50%}.brand strong{font-weight:950}.brand strong span{color:var(--accent)}
.primary-nav{display:flex;align-items:stretch;height:100%;margin-left:auto}.primary-nav a{display:flex;align-items:center;padding:0 17px;text-decoration:none;text-transform:uppercase;font-size:11px;letter-spacing:.04em;font-weight:900;transition:background .18s}.primary-nav a:hover,.primary-nav a.is-current{background:var(--plate)}.primary-nav .nav-contact{background:var(--accent);color:var(--on-accent);border-radius:5px;margin:8px 0 8px 8px;padding:0 16px}.primary-nav .nav-contact:hover{filter:brightness(.95);background:var(--accent)}
.header-actions{display:flex;gap:5px}.colour-button,.mobile-menu{height:36px;width:36px;border:0;border-radius:8px;background:var(--plate);font-size:23px;color:var(--accent)}.mobile-menu{display:none;color:var(--ink)}
.colour-panel{position:fixed;z-index:120;right:max(22px,calc((100vw - 1240px)/2));top:79px;padding:13px 16px;border-radius:12px;background:#fff;box-shadow:0 12px 30px #0002;display:flex;align-items:center;gap:12px}.colour-panel[hidden]{display:none}.colour-panel>span{font-size:10px;letter-spacing:.1em;font-weight:900}.colour-panel button{width:24px;height:24px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #777}.colour-panel button[data-palette=orange]{background:#fa5b01}.colour-panel button[data-palette=teal]{background:#0b8c87}.colour-panel button[data-palette=blue]{background:#345cdf}.colour-panel button[data-palette=pink]{background:#f06292}.colour-panel button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px}
.hero{margin-top:10px;padding:clamp(35px,6vw,85px) clamp(24px,6vw,80px);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:30px;min-height:540px}.hero-copy{position:relative;z-index:2}.hero-lead{font-size:clamp(19px,2.1vw,26px);font-weight:650;line-height:1.45;max-width:640px}.hero-copy>p:not(.eyebrow){max-width:490px}.hero-copy>p:not(.eyebrow):not(.hero-lead){font-size:16px;color:#40404a}.hero-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px}.hero-tags span{border:1px solid var(--line);border-radius:50px;font-size:10px;font-weight:800;padding:6px 11px;text-transform:uppercase;letter-spacing:.035em}
.portrait-column{min-width:0}.portrait-caption{font-size:10px;text-align:center;letter-spacing:.18em;font-weight:800;margin:5px 0 0;color:var(--muted)}
.hero-portrait{position:relative;aspect-ratio:1/1;width:min(100%,530px);margin:auto;--frame-x:.5;--frame-y:.5;--frame-r:.42;--frame-left:.08;--frame-right:.08;--frame-top:.08}
.hero-portrait .plush-frame{position:absolute;top:8%;left:8%;height:84%;width:84%;border-radius:50%;background:var(--accent)}
.hero-portrait>img{position:absolute;left:0;top:3%;width:100%;height:100%;object-fit:contain;object-position:center bottom}.hero-portrait.is-live>img{visibility:hidden}
.hero-portrait>canvas{position:absolute;z-index:2;left:calc(var(--plush-pad) * -100%);top:calc(var(--plush-pad) * -100% + 3%);width:calc(100% + var(--plush-pad) * 200%);height:calc(100% + var(--plush-pad) * 200%);pointer-events:none}
.hero-portrait>.plush-hit{position:absolute;z-index:3;inset:3% 0 -3%;width:100%;height:100%;border:0;padding:0;background:transparent;touch-action:pan-y pinch-zoom;clip-path:circle(42% at 50% 50%)}.hero-portrait:not(.is-live)>canvas,.hero-portrait:not(.is-live)>.plush-hit{display:none}
.section-head{display:grid;grid-template-columns:190px 1fr;gap:25px;align-items:start;padding:90px 25px 35px}.section-head h2{max-width:850px}.section-head p:last-child{color:var(--muted);font-size:18px;max-width:620px}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.service-card{position:relative;min-height:315px;padding:27px;display:flex;flex-direction:column;background:var(--paper);border:2px solid var(--ink);border-radius:12px;box-shadow:4px 4px 0 var(--ink);text-decoration:none;transition:transform .18s,box-shadow .18s}.service-card:nth-child(3){background:var(--accent);color:var(--on-accent)}.service-card:nth-child(2),.service-card:nth-child(5){background:#f4eee9}.service-card:hover{transform:translateY(-5px);box-shadow:6px 9px 0 var(--ink)}.card-number{font-size:11px;font-weight:900;letter-spacing:.1em}.card-icon{position:absolute;right:24px;top:12px;font-size:36px}.service-card h3{margin-top:67px}.service-card p{font-size:15px;line-height:1.55;margin:0 0 22px}.card-more{margin-top:auto;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.work-head{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:100px 25px 30px}.work-head h2{max-width:760px}
.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.project-card{display:flex;flex-direction:column;gap:16px;min-width:0;background:var(--paper);border-radius:12px;overflow:hidden;text-decoration:none;padding:22px;box-shadow:0 6px 18px #0001;transition:transform .18s,box-shadow .18s}.project-card:hover{transform:translateY(-5px);box-shadow:0 14px 28px #0002}.project-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.11em;color:var(--muted);font-weight:800}.project-image{height:230px;border-radius:8px;background:#fff;border:1px solid #e7e5e2;display:flex;align-items:center;justify-content:center;padding:18px}.project-image img{max-width:100%;max-height:192px;object-fit:contain;filter:none}.project-card:nth-child(2) .project-image img{max-width:85%}.project-card:nth-child(3) .project-image img{max-height:155px}.project-bottom{display:flex;align-items:end;justify-content:space-between;gap:15px}.project-bottom strong{display:block;font-size:21px;letter-spacing:-.04em;line-height:1.2}.project-bottom small{display:block;color:var(--muted);font-size:13px}.project-arrow{width:36px;height:36px;flex:none;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:900}
.about-band{margin-top:95px;padding:55px clamp(28px,5vw,65px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px}.about-band p:not(.section-index){font-size:20px;line-height:1.55}.about-band .btn{margin-top:14px}
.cta-block{margin-top:95px;margin-bottom:85px;background:var(--ink);color:#fff;text-align:center;padding:70px 25px;border-radius:18px}.cta-block h2{max-width:780px;margin:16px auto}.cta-block p:not(.section-index){font-size:17px;color:#ddd}.cta-block .btn{margin-top:15px}.cta-block em{color:#fff}
.breadcrumbs{padding:30px 8px 19px;display:flex;gap:10px;align-items:center;font-size:12px;font-weight:800;color:var(--muted)}.breadcrumbs a{text-decoration:none}.breadcrumbs a:hover{color:var(--ink);text-decoration:underline}
.internal-hero{padding:70px clamp(26px,6vw,80px);display:grid;grid-template-columns:1.2fr .8fr;gap:45px;align-items:center;overflow:hidden}.internal-hero h1{max-width:780px}.internal-hero .hero-lead{max-width:700px}.internal-art{min-height:350px;position:relative;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--on-accent);aspect-ratio:1}.internal-art>span{font-size:clamp(110px,15vw,220px);line-height:1;transform:rotate(-14deg)}.internal-art small{position:absolute;bottom:15%;font-size:11px;font-weight:900;letter-spacing:.2em}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:100px 25px}.detail-grid p:not(.section-index){max-width:550px;line-height:1.75}.benefit-list{border-top:2px solid var(--ink)}.benefit-list>div{display:grid;grid-template-columns:45px 1fr 18px;gap:15px;align-items:start;border-bottom:1px solid #bcb9b5;padding:20px 3px}.benefit-list span:first-child{font-size:11px;font-weight:900;color:var(--muted)}.benefit-list span:last-child{color:var(--accent);font-weight:900}.benefit-list p{margin:0!important;font-weight:650}
.faq-section{padding:55px clamp(25px,5vw,65px)}.faq-section h2{max-width:750px}.faq-section details{border-top:1px solid var(--line);padding:20px 0}.faq-section details:last-child{border-bottom:1px solid var(--line)}.faq-section summary{font-size:19px;font-weight:800;cursor:pointer}.faq-section details p{color:var(--muted);max-width:760px}
.related-services{padding:90px 25px 0}.related-services>div{display:flex;flex-wrap:wrap;gap:10px}.related-services a{border:1px solid var(--line);background:var(--paper);border-radius:50px;padding:10px 17px;text-decoration:none;font-size:13px;font-weight:800}.related-services a:hover{background:var(--accent);color:var(--on-accent)}
.simple-hero{padding:80px 30px 55px}.simple-hero .hero-lead{max-width:750px}.simple-hero+.shell{margin-bottom:50px}
.about-page{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:40px;overflow:hidden;padding:70px clamp(24px,6vw,75px)}.about-page>div:first-child{padding-bottom:0}.about-page p:not(.eyebrow){max-width:600px}.about-page .btn{margin-top:22px}.about-image{align-self:center;justify-self:center;width:min(100%,440px);aspect-ratio:1;min-height:0;border-radius:50%;overflow:hidden;background:var(--accent)}.about-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.site-footer{margin-top:70px}
.contact-page{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:70px clamp(24px,5vw,70px)}.contact-direct{display:grid;gap:12px;margin-top:35px}.contact-direct a{display:flex;justify-content:space-between;max-width:430px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:13px}.contact-direct strong{font-size:15px}.contact-form-wrap{padding:30px;background:var(--plate);border-radius:12px}.contact-form-wrap h2{font-size:30px;margin:0 0 22px}
.enquiry-form{display:grid;gap:19px}.enquiry-form label{display:grid;gap:6px;font-size:12px;text-transform:uppercase;font-weight:900;letter-spacing:.06em}.enquiry-form input,.enquiry-form textarea{display:block;width:100%;min-width:0;border:2px solid var(--line);border-radius:6px;padding:12px 13px;background:var(--paper);color:var(--ink);font-size:15px;text-transform:none;letter-spacing:normal}.enquiry-form input:focus,.enquiry-form textarea:focus{outline:3px solid var(--accent);outline-offset:2px}.enquiry-form textarea{resize:vertical}.form-duo{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-feedback{font-weight:700}.form-note{font-size:12px;color:var(--muted)}.form-note a{text-decoration:underline}
.site-footer{background:#17171b;color:#fff;padding:60px 0 26px}.footer-main{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:55px}.footer-brand{font-size:30px;font-weight:950;letter-spacing:-.065em;text-decoration:none}.footer-brand span{color:var(--accent)}.footer-main p{max-width:310px;color:#c7c7cf}.footer-main h2{font-size:11px;letter-spacing:.15em;margin:12px 0 20px}.footer-main a:not(.footer-brand){font-size:13px;display:block;text-decoration:none;color:#d5d5dd;margin-bottom:11px}.footer-main a:hover{text-decoration:underline}.footer-bottom{display:flex;gap:25px;justify-content:space-between;border-top:1px solid #34343a;margin-top:45px;padding-top:22px;font-size:11px;letter-spacing:.05em;color:#b0b0ba}.footer-bottom a{color:inherit}
.contact-widget{position:fixed;right:20px;bottom:20px;z-index:999;display:flex;align-items:end;flex-direction:column;gap:12px}.contact-panel{width:min(340px,calc(100vw - 30px));background:#fff;color:#111;border-radius:18px;border:1px solid #e7e7eb;box-shadow:0 20px 55px #0003;padding:15px}.contact-panel[hidden]{display:none}.contact-panel>p{font-size:10px;letter-spacing:.14em;font-weight:900;padding:0 10px 7px;display:flex;justify-content:space-between}.contact-panel>p span{color:var(--accent)}.contact-panel>a{display:flex;gap:12px;align-items:center;padding:11px 9px;text-decoration:none;border-radius:9px}.contact-panel>a:hover{background:#f3f3f5}.contact-panel>a>span:nth-child(2){flex:1}.contact-panel strong{display:block;font-size:14px}.contact-panel small{display:block;color:#777887;font-size:11px}.contact-panel b{font-weight:700}.contact-icon{height:39px;width:39px;display:grid;place-items:center;border-radius:11px;background:#f0efff;color:#4d58ce;font-size:21px}.contact-icon.whatsapp{background:#e8f9ee;color:#20ae5d}.contact-toggle{background:var(--accent);color:var(--on-accent);border:0;border-radius:40px;padding:0 20px;height:59px;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:900;box-shadow:0 10px 26px #0003}.contact-toggle:hover{transform:translateY(-2px)}.contact-toggle-chat{font-size:22px}.contact-toggle-close{display:none;font-size:28px}.contact-widget.is-open .contact-toggle-chat{display:none}.contact-widget.is-open .contact-toggle-close{display:inline}
@media(max-width:980px){.services-grid{grid-template-columns:repeat(2,1fr)}.hero-grid{grid-template-columns:1fr 1fr}.hero{padding:45px}.internal-hero{gap:20px}.internal-art{min-height:260px}.footer-main{gap:25px}}
@media(max-width:760px){.shell,.header-inner{width:min(100% - 26px,1240px)}.site-header{padding:8px 0}.mobile-menu{display:block;margin-left:auto}.primary-nav{display:none;position:absolute;top:68px;left:13px;right:13px;height:auto;margin:0;flex-direction:column;background:var(--paper);border-radius:12px;padding:10px;box-shadow:0 12px 35px #0003}.primary-nav.is-open{display:flex}.primary-nav a{padding:12px 15px}.primary-nav .nav-contact{margin:5px 0}.hero-grid,.internal-hero,.about-page,.contact-page{grid-template-columns:1fr}.hero{padding:42px 25px}.hero-grid{gap:5px}.portrait-column{max-width:500px;margin:auto;width:100%}.hero-copy h1{font-size:clamp(50px,10vw,75px)}.section-head{grid-template-columns:1fr;padding-top:65px;gap:2px}.projects-grid{grid-template-columns:1fr 1fr}.about-band,.detail-grid{grid-template-columns:1fr;gap:20px}.about-band{margin-top:65px}.internal-hero{padding:50px 27px}.internal-art{max-width:350px;width:100%;margin:auto}.detail-grid{padding:65px 15px}.footer-main{grid-template-columns:1fr 1fr;gap:30px}.about-page{padding-top:55px}.about-image{min-height:300px}.contact-page{gap:25px}}
@media(max-width:520px){.services-grid,.projects-grid{grid-template-columns:1fr}.hero-tags{display:none}.hero .button-row{align-items:stretch;flex-direction:column}.hero-copy h1{font-size:clamp(49px,13vw,68px)}.hero{padding:34px 22px}.service-card{min-height:250px}.service-card h3{margin-top:42px}.work-head{flex-direction:column;align-items:start;padding-top:70px}.section-head h2,.work-head h2{font-size:38px}.about-band{padding:38px 24px}.form-duo{grid-template-columns:1fr}.contact-form-wrap{padding:20px}.footer-main{grid-template-columns:1fr 1fr}.footer-main>div:first-child{grid-column:span 2}.footer-bottom{flex-wrap:wrap;justify-content:start}.colour-panel{right:14px}.contact-widget{right:13px;bottom:13px}.contact-toggle{height:54px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.service-card,.project-card{transition:none}}

/* Long-form service content and editorial layouts */
.editorial-panel{margin-top:30px;padding:clamp(30px,5vw,65px);display:grid;grid-template-columns:minmax(180px,.75fr) minmax(0,1.75fr);gap:24px 48px}
.editorial-panel>.section-index{grid-column:1;grid-row:1 / span 2;margin:10px 0}
.editorial-panel h2{grid-column:2;font-size:clamp(32px,4vw,54px);max-width:780px}
.editorial-copy{grid-column:2;max-width:760px}
.editorial-copy p{font-size:17px;line-height:1.8;margin:0 0 21px;color:#35353c}
.process-section{padding:80px 24px 25px}
.process-intro{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:start}
.process-intro h2{margin-top:0}
.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:25px}
.process-grid article{border-top:3px solid var(--ink);padding:22px 20px 20px;background:var(--paper);border-radius:0 0 10px 10px}
.process-grid article>span{font-size:13px;font-weight:900;color:var(--accent)}
.process-grid h3{font-size:23px;margin:28px 0 12px}
.process-grid p{font-size:15px;color:#41414b;line-height:1.65}
.process-next{margin:28px 0 0;font-weight:800}
.process-next a{text-decoration:underline;text-underline-offset:5px}
.about-more{margin-top:65px;padding:45px clamp(25px,5vw,70px);display:grid;grid-template-columns:.85fr 1.15fr;gap:45px}
.about-more p{font-size:17px;line-height:1.75}
.work-explain{padding:55px 25px 10px;max-width:900px}
.work-explain p{font-size:18px;line-height:1.75}
.form-feedback{padding:18px 22px;background:#e8f9ef;color:#166534;border:2px solid #22c55e;border-radius:12px;font-size:17px;font-weight:800;text-align:center;box-shadow:0 4px 15px #22c55e20}
.turnstile-wrap{min-height:68px;display:flex;align-items:center;max-width:100%;overflow:hidden}.turnstile-wrap .cf-turnstile{max-width:100%}
@media(max-width:760px){.editorial-panel,.about-more{grid-template-columns:1fr}.editorial-panel>.section-index,.editorial-panel h2,.editorial-copy{grid-column:1;grid-row:auto}.process-intro{grid-template-columns:1fr}.process-grid{grid-template-columns:1fr}.process-section{padding-top:55px}}
