*,*::before,*::after{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;color:var(--color-ink);background:var(--color-white);font:var(--font-size-body)/var(--line-height-body) var(--font-body)}body,button,input,select,textarea{font-family:var(--font-body)}a{color:inherit}button,a{min-height:2.75rem}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-coral);outline-offset:3px}img,svg,video{display:block;max-width:100%}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{position:sticky;top:0;z-index:10;background:rgb(255 255 255/.96);border-bottom:1px solid var(--color-border)}.site-header-inner{width:min(100% - var(--container-gutter)*2,var(--container-max));min-height:var(--header-height);margin-inline:auto;display:flex;align-items:center;gap:var(--space-4)}.brand-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:1.25rem;font-weight:700;text-decoration:none}.brand-link::before{content:'G';display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-sm);background:var(--color-teal);color:var(--color-white)}.desktop-navigation{margin-inline:auto}.desktop-navigation .menu,.mobile-navigation .menu{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);margin:0;padding:0;list-style:none}.desktop-navigation a,.mobile-navigation a{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);font-size:var(--font-size-small);font-weight:700;text-decoration:none}.desktop-navigation a:hover,.desktop-navigation a:focus-visible,.mobile-navigation a:hover,.mobile-navigation a:focus-visible{color:var(--color-teal)}.cta-link{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);font-weight:700;text-decoration:none}.cta-link::after{content:'→';font-size:1.15em}.header-cta,.hero-actions .cta-link:first-child,.contact-form button{border:0;border-radius:var(--radius-sm);background:var(--color-teal);color:var(--color-white)}.header-cta:hover,.hero-actions .cta-link:first-child:hover,.contact-form button:hover{background:var(--color-deep-teal)}.menu-toggle{display:none;border:0;border-radius:var(--radius-sm);background:var(--color-ink);color:var(--color-white);padding:var(--space-2) var(--space-3)}.mobile-navigation{padding:var(--space-3) var(--container-gutter) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-white)}.mobile-navigation .menu{display:grid;gap:0}.mobile-navigation a{width:100%;border-bottom:1px solid var(--color-border)}
.site-section{padding:var(--space-8) var(--container-gutter)}.site-section>*{width:min(100%,var(--container-max));margin-inline:auto}.site-section>*+*{margin-top:var(--space-7)}.section-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,.7fr);column-gap:var(--space-7);align-items:end}.section-intro h2{max-width:42rem;margin:0;font-size:var(--font-size-h2);font-weight:400;line-height:var(--line-height-display);letter-spacing:-.045em}.section-description{max-width:31rem;margin:0 0 var(--space-1);color:var(--color-muted-text)}.eyebrow,.project-type,.project-meta,.step-number{margin:0 0 var(--space-2);color:var(--color-teal);font-size:var(--font-size-eyebrow);font-weight:700;letter-spacing:.14em;line-height:1.3;text-transform:uppercase}
.hero-section{padding:0 var(--container-gutter);background:linear-gradient(110deg,var(--color-white) 0 52%,var(--color-warm-off-white) 52%)}.hero-grid{width:min(100%,var(--container-max));min-height:37.5rem;margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(22rem,1fr);gap:var(--space-7);align-items:center}.hero-content{max-width:38rem;display:grid;gap:var(--space-4);padding-block:var(--space-8)}.hero-content h1{margin:0;font-size:var(--font-size-h1);font-weight:400;line-height:var(--line-height-display);letter-spacing:-.06em}.hero-content>p:not(.eyebrow){max-width:34rem;margin:0;color:var(--color-muted-text);font-size:1.1rem}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.supporting-points{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:0;padding:var(--space-3) 0 0;border-top:1px solid var(--color-border);list-style:none;color:var(--color-muted-text);font-size:var(--font-size-small)}.supporting-points li::before,.contact-intro li::before{content:'✓';margin-right:var(--space-1);color:var(--color-teal)}.hero-preview{position:relative;min-height:25rem;display:grid;place-items:center}.preview-window{width:min(100%,30rem);min-height:19rem;padding:var(--space-7) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white);box-shadow:var(--shadow-card);transform:rotate(-2deg)}.preview-url{margin:-2rem 0 var(--space-7);color:var(--color-muted-text);font-size:var(--font-size-small);text-align:center}.preview-window .eyebrow{color:var(--color-coral)}.preview-window strong{display:block;max-width:18rem;font-size:2rem;line-height:1}.preview-chip{position:absolute;display:block;max-width:14rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-white);box-shadow:var(--shadow-card);font-size:var(--font-size-small);font-weight:700}.chip-shopify{top:12%;right:0}.chip-wordpress{bottom:9%;left:0}
.services-section,.process-section{background:var(--color-warm-off-white)}.services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.service-card{min-height:25rem;padding:var(--space-6);border:1px solid var(--color-border);background:var(--color-white)}.service-card:nth-child(2){border-color:var(--color-deep-teal);background:var(--color-deep-teal);color:var(--color-white)}.service-card:nth-child(2) .eyebrow{color:var(--color-coral)}.service-card h3{margin:0 0 var(--space-3);font-size:var(--font-size-h3);font-weight:400}.service-card p:not(.eyebrow){max-width:32rem;color:var(--color-muted-text)}.service-card:nth-child(2) p:not(.eyebrow){color:var(--color-pale-green)}.service-card ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2) var(--space-4);margin:var(--space-5) 0;padding:var(--space-4) 0 0;border-top:1px solid var(--color-border);list-style:none;font-size:var(--font-size-small)}.service-card li::before{content:'✓';margin-right:var(--space-1);color:var(--color-teal)}.service-card:nth-child(2) ul{border-color:rgb(216 232 223/.25)}.service-card:nth-child(2) li::before{color:var(--color-pale-green)}
.portfolio-toolbar{display:grid;grid-template-columns:auto minmax(14rem,1fr) minmax(12rem,14rem);gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-warm-off-white)}.platform-filters{display:grid;grid-template-columns:repeat(3,auto);gap:var(--space-1)}.platform-filters button{border:0;border-radius:var(--radius-sm);background:transparent;padding:var(--space-2) var(--space-3);font-weight:700}.platform-filters button[aria-pressed=true]{background:var(--color-ink);color:var(--color-white)}.portfolio-toolbar input,.portfolio-toolbar select{width:100%;min-height:2.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-white);padding:var(--space-2) var(--space-3)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6) var(--space-3)}.portfolio-card{min-width:0}.portfolio-media{aspect-ratio:1.35;min-height:0;display:grid;place-items:end start;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-warm-off-white);color:var(--color-muted-text)}.portfolio-media span{font-size:var(--font-size-small)}.portfolio-card-content{display:grid;gap:var(--space-2);padding-top:var(--space-3)}.portfolio-card-content p,.portfolio-card-content h3{margin:0}.project-type{width:max-content;margin:0;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-ink);color:var(--color-white);letter-spacing:.08em}.project-meta{margin:0}.portfolio-card h3{font-size:1.4rem;font-weight:400}.portfolio-card-content>p:not(.project-type):not(.project-meta){color:var(--color-muted-text);font-size:var(--font-size-small)}.portfolio-card .cta-link{width:max-content;padding-inline:0;border-bottom:1px solid var(--color-border)}.portfolio-card:hover .portfolio-media{border-color:var(--color-teal);box-shadow:var(--shadow-card)}
.about-section{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-7);align-items:center;background:var(--color-deep-teal);color:var(--color-white)}.about-section>* ,.contact-section>*{width:min(100%,var(--container-max))}.about-section .eyebrow,.contact-section .eyebrow{color:var(--color-pale-green)}.about-content h2,.contact-intro h2{margin:0;font-size:var(--font-size-h2);font-weight:400;line-height:var(--line-height-display);letter-spacing:-.045em}.about-content>p:not(.eyebrow),.contact-intro>p:not(.eyebrow){max-width:34rem;color:var(--color-pale-green)}.about-content .cta-link{color:var(--color-white)}.capabilities-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid rgb(216 232 223/.18)}.capabilities-grid article{min-height:8rem;padding:var(--space-4);border-right:1px solid rgb(216 232 223/.18);border-bottom:1px solid rgb(216 232 223/.18)}.capabilities-grid article:nth-child(even){border-right:0}.capabilities-grid article:nth-last-child(-n+2){border-bottom:0}.capabilities-grid h3{margin:0 0 var(--space-2);font-size:1rem;font-weight:400}.capabilities-grid p{margin:0;color:var(--color-pale-green);font-size:var(--font-size-small)}.process-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none}.process-list li{min-height:12rem;padding:var(--space-4);border:1px solid var(--color-border);background:var(--color-white)}.process-list li+li{border-left:0}.process-list h3{margin:var(--space-5) 0 var(--space-2);font-size:1.1rem;font-weight:400}.process-list p{margin:0;color:var(--color-muted-text);font-size:var(--font-size-small)}.step-number{color:var(--color-coral)}
.reviews-section{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-7);align-items:center}.reviews-card{padding:var(--space-6);border:1px dashed var(--color-border)}.reviews-card h3{margin:0 0 var(--space-3);font-size:1.5rem;font-weight:400}.reviews-card p:not(.eyebrow){color:var(--color-muted-text)}.contact-section{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-7);align-items:center;background:var(--color-dark-section);color:var(--color-white)}.contact-intro ul{display:grid;gap:var(--space-2);margin:var(--space-5) 0 0;padding:0;list-style:none;color:var(--color-pale-green);font-size:var(--font-size-small)}.contact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-md);background:var(--color-white);color:var(--color-ink);box-shadow:var(--shadow-card)}.form-field{display:grid;gap:var(--space-1)}.form-field:nth-last-of-type(2),.form-field:last-of-type,.contact-form button,#contact-form-notice{grid-column:1/-1}.form-field label{font-size:var(--font-size-small);font-weight:700}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:2.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.form-field textarea{min-height:8rem;resize:vertical}.contact-form button{padding:var(--space-3);font-weight:700}#contact-form-notice{margin:0;color:var(--color-muted-text);font-size:.7rem;text-align:center}
.site-footer{display:grid;gap:var(--space-6);padding:var(--space-7) var(--container-gutter) var(--space-3);background:var(--color-deepest-footer);color:var(--color-white)}.site-footer>*{width:min(100%,var(--container-max));margin-inline:auto}.footer-identity p{max-width:18rem;color:var(--color-pale-green);font-size:var(--font-size-small)}.footer-navigation{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}.footer-navigation h2{margin:0 0 var(--space-2);font-size:var(--font-size-small)}.footer-navigation ul{display:grid;gap:var(--space-1);margin:0;padding:0;list-style:none}.footer-navigation li{display:flex}.footer-navigation a{display:inline-flex;min-height:2rem;padding:0;color:var(--color-pale-green);font-size:var(--font-size-small);text-decoration:none}.footer-legal{margin:0;padding-top:var(--space-3);border-top:1px solid rgb(216 232 223/.18);color:var(--color-pale-green);font-size:.7rem}
@media(max-width:1240px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1140px){.desktop-navigation,.header-cta{display:none}.menu-toggle{display:inline-flex;margin-left:auto;align-items:center}}@media(max-width:900px){.hero-grid,.about-section,.reviews-section,.contact-section{grid-template-columns:1fr}.hero-section{background:var(--color-white)}.hero-grid{min-height:auto}.hero-preview{min-height:23rem}.section-intro{grid-template-columns:1fr;gap:var(--space-3)}.portfolio-toolbar{grid-template-columns:1fr 1fr}.platform-filters{grid-column:1/-1}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-section,.reviews-section,.contact-section{align-items:start}.process-list{grid-template-columns:repeat(2,minmax(0,1fr))}.process-list li:nth-child(3){border-left:1px solid var(--color-border)}.process-list li:nth-child(n+3){border-top:0}}@media(max-width:760px){:root{--font-size-h1:clamp(2.7rem,10vw,3.75rem);--font-size-h2:clamp(2.25rem,9vw,3.25rem)}.site-header-inner{min-height:4.125rem}.hero-content{padding-block:var(--space-7)}.hero-content>p:not(.eyebrow){font-size:1rem}.hero-actions{align-items:flex-start;flex-direction:column}.hero-preview{min-height:20rem}.preview-window{min-height:15rem;padding:var(--space-6) var(--space-4)}.preview-chip{max-width:11rem;font-size:.7rem}.services-grid,.portfolio-grid,.capabilities-grid{grid-template-columns:1fr}.service-card{min-height:auto;padding:var(--space-5)}.portfolio-toolbar{grid-template-columns:1fr}.platform-filters{grid-column:auto;width:100%}.platform-filters button{padding-inline:var(--space-2)}.capabilities-grid article,.capabilities-grid article:nth-child(even),.capabilities-grid article:nth-last-child(-n+2){border-right:0;border-bottom:1px solid rgb(216 232 223/.18)}.capabilities-grid article:last-child{border-bottom:0}.process-list{grid-template-columns:1fr}.process-list li+li,.process-list li:nth-child(3){border-left:1px solid var(--color-border);border-top:0}.contact-form{grid-template-columns:1fr;padding:var(--space-4)}.form-field:nth-last-of-type(2),.form-field:last-of-type,.contact-form button,#contact-form-notice{grid-column:auto}.footer-navigation{grid-template-columns:1fr;gap:var(--space-4)}}@media(max-width:410px){:root{--font-size-h1:clamp(2.4rem,12vw,3.1rem)}.hero-preview{min-height:17rem}.preview-window{width:94%;min-height:13rem}.preview-chip{max-width:9.5rem;padding:var(--space-2)}.chip-shopify{right:-.25rem}.chip-wordpress{left:-.25rem}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.preview-window{transform:none}}
.case-study-page{overflow:hidden}.case-hero{width:min(100% - var(--container-gutter)*2,var(--container-max));margin-inline:auto;padding-block:var(--space-8);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-7);align-items:center}.case-hero-copy h1{max-width:38rem;margin:0 0 var(--space-3);font-size:clamp(3.5rem,8vw,6.5rem);font-weight:400;line-height:var(--line-height-display);letter-spacing:-.06em}.case-summary{max-width:32rem;margin:0 0 var(--space-5);color:var(--color-muted-text);font-size:1.15rem}.case-meta{display:grid;gap:var(--space-2);margin:0}.case-meta div{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.case-meta dt{color:var(--color-teal);font-size:var(--font-size-eyebrow);font-weight:700;letter-spacing:.12em}.case-meta dd{margin:0;font-size:var(--font-size-small)}.case-media{min-height:32rem;margin:0;display:grid;place-items:end start;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-warm-off-white);color:var(--color-muted-text);overflow:hidden}.case-media img{width:100%;height:100%;object-fit:cover}.media-placeholder{width:100%;height:100%;min-height:16rem;display:grid;place-items:end start;padding:var(--space-3);background:var(--color-warm-off-white);color:var(--color-muted-text)}.case-narrative{width:min(100% - var(--container-gutter)*2,var(--container-max));margin-inline:auto;padding-block:var(--space-7);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-7) var(--space-6)}.case-content-block{min-width:0}.case-content-block h2{max-width:34rem;margin:0 0 var(--space-3);font-size:var(--font-size-h2);font-weight:400;line-height:var(--line-height-display);letter-spacing:-.045em}.case-content-block>p:not(.eyebrow){max-width:38rem;margin:0;color:var(--color-muted-text)}.case-content-block ul{display:grid;gap:var(--space-2);max-width:38rem;margin:0;padding:0;list-style:none}.case-content-block li{padding-top:var(--space-2);border-top:1px solid var(--color-border);color:var(--color-muted-text)}.case-content-block li::before{content:'✓';margin-right:var(--space-2);color:var(--color-teal)}.case-cta{width:min(100% - var(--container-gutter)*2,var(--container-max));margin:var(--space-7) auto;padding:var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);background:var(--color-deep-teal);color:var(--color-white)}.case-cta h2{margin:0 0 var(--space-2);font-size:clamp(2rem,4vw,3.5rem);font-weight:400;line-height:var(--line-height-display)}.case-cta p:not(.eyebrow){max-width:34rem;margin:0;color:var(--color-pale-green)}.case-cta .eyebrow{color:var(--color-pale-green)}.case-cta .cta-link{flex:0 0 auto;background:var(--color-white);color:var(--color-ink);border-radius:var(--radius-sm)}@media(max-width:900px){.case-hero{grid-template-columns:1fr;gap:var(--space-6)}.case-media{min-height:24rem}.case-narrative{grid-template-columns:1fr;gap:var(--space-6)}.case-cta{align-items:flex-start;flex-direction:column}}@media(max-width:600px){.case-hero{padding-block:var(--space-7)}.case-hero-copy h1{font-size:clamp(2.85rem,15vw,4.5rem)}.case-meta div{grid-template-columns:5.75rem minmax(0,1fr)}.case-media{min-height:18rem}.case-cta{padding:var(--space-5)}}@media(max-width:360px){.case-meta div{grid-template-columns:1fr;gap:var(--space-1)}}
