:root {
  --gd-paper: #e9e9e5;
  --gd-ink: #101010;
  --gd-muted: #aaa9a3;
  --gd-accent: #ff6047;
  --gd-contact: #f3cf3f;
  --gd-gutter: clamp(1.25rem, 3vw, 2.5rem);
  --gd-section-top: clamp(5.25rem, 7.8vw, 7rem);
  --gd-section-bottom: clamp(6.25rem, 10vw, 10rem);
}

.elementor-widget-groucho_preloader,
.elementor-widget-groucho_header,
.elementor-widget-groucho_hero,
.elementor-widget-groucho_about,
.elementor-widget-groucho_projects,
.elementor-widget-groucho_services,
.elementor-widget-groucho_showcase,
.elementor-widget-groucho_testimonials,
.elementor-widget-groucho_contact {
  width: 100%;
  margin: 0 !important;
  font-family: "Inter Tight", Arial, sans-serif;
}

.elementor-widget-groucho_preloader *,
.elementor-widget-groucho_header *,
.elementor-widget-groucho_hero *,
.elementor-widget-groucho_about *,
.elementor-widget-groucho_projects *,
.elementor-widget-groucho_services *,
.elementor-widget-groucho_showcase *,
.elementor-widget-groucho_testimonials *,
.elementor-widget-groucho_contact * { box-sizing: border-box; }

.elementor-widget-groucho_preloader p,
.elementor-widget-groucho_header p,
.elementor-widget-groucho_hero p,
.elementor-widget-groucho_about p,
.elementor-widget-groucho_projects p,
.elementor-widget-groucho_services p,
.elementor-widget-groucho_showcase p,
.elementor-widget-groucho_testimonials p,
.elementor-widget-groucho_contact p,
.elementor-widget-groucho_projects h2,
.elementor-widget-groucho_projects h3,
.elementor-widget-groucho_services h2,
.elementor-widget-groucho_services h3,
.elementor-widget-groucho_testimonials h2,
.elementor-widget-groucho_contact h2,
.elementor-widget-groucho_hero h1 { margin: 0; }

.gd-loader { position: fixed; inset: 0; z-index: 100000; isolation: isolate; background: #111; color: var(--gd-paper); display: grid; grid-template-rows: auto 1fr auto; padding: clamp(1.25rem, 2vw, 1.75rem) var(--gd-gutter) clamp(1.125rem, 1.7vw, 1.5rem); clip-path: inset(0); transition: clip-path .9s cubic-bezier(.76,0,.24,1); }
.gd-loader--done { clip-path: inset(0 0 100%); pointer-events: none; }
.gd-loader__top, .gd-loader__bottom { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #ffffff30; padding-bottom: .875rem; font-size: .6875rem; font-weight: 650; text-transform: uppercase; letter-spacing: .1em; }
.gd-loader__bottom { border: 0; border-top: 1px solid #ffffff30; padding: .875rem 0 0; }
.gd-loader__image { align-self: center; justify-self: center; display: block; width: min(76rem, 92vw); max-height: min(72vh, 56rem); object-fit: contain; mix-blend-mode: lighten; }

.gd-nav { --gd-nav-bg: var(--gd-accent); --gd-nav-ink: var(--gd-ink); position: fixed; z-index: 9999; top: 0; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; padding: 1.25rem var(--gd-gutter); color: var(--gd-nav-ink); background: var(--gd-nav-bg); border-bottom: 1px solid color-mix(in srgb, var(--gd-nav-ink) 20%, transparent); box-shadow: 0 .5rem 1.5rem #0000000b; transition: color .45s cubic-bezier(.16,1,.3,1), background-color .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease; }
.gd-nav[data-theme="coral"] { --gd-nav-bg: #ff6047; --gd-nav-ink: #101010; }
.gd-nav[data-theme="ink"] { --gd-nav-bg: #101010; --gd-nav-ink: #e9e9e5; box-shadow: 0 .5rem 1.75rem #00000026; }
.gd-nav[data-theme="blue"] { --gd-nav-bg: #7fc0d7; --gd-nav-ink: #101010; }
.gd-nav[data-theme="yellow"] { --gd-nav-bg: #f3cf3f; --gd-nav-ink: #101010; }
.gd-brand { display: flex; align-items: center; color: inherit; text-decoration: none; }
.gd-brand span { font-size: 1.15rem; line-height: .82; text-transform: uppercase; letter-spacing: .005em; font-weight: 800; }
.gd-nav__links { display: flex; gap: clamp(1rem, 2vw, 1.875rem); list-style: none; margin: 0; padding: 0; }
.gd-nav__links a, .gd-menu-button { color: inherit; font-size: .875rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; opacity: .72; text-decoration: none; transition: opacity .2s; }
.gd-nav__links a:hover, .gd-nav__links a:focus-visible { opacity: 1; }
.gd-menu-button { display: none; border: 0; padding: 0; background: transparent; cursor: pointer; }

.gd-hero { min-height: 100svh; position: relative; overflow: hidden; background: var(--gd-paper); color: var(--gd-ink); isolation: isolate; }
.gd-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 73% 38%, #fff 0, transparent 35%), linear-gradient(135deg, transparent 0 68%, #d3d3ce 68% 68.2%, transparent 68.2%); opacity: .9; }
.gd-hero__copy { position: relative; z-index: 3; padding: clamp(6.875rem, 9vw, 8rem) var(--gd-gutter) clamp(5.75rem, 8vw, 6.875rem); min-height: 100svh; display: flex; flex-direction: column; justify-content: center; }
.gd-eyebrow { font-size: .6875rem; text-transform: uppercase; letter-spacing: .11em; font-weight: 650; }
.gd-hero h1 { max-width: 9ch; margin-top: clamp(3.125rem, 8vh, 5.625rem); color: var(--gd-ink); font-family: inherit; font-size: clamp(5.2rem, 11.8vw, 12.3rem); line-height: .82; letter-spacing: -.03em; text-transform: uppercase; font-weight: 850; }
.gd-hero h1 span { display: block; }
.gd-hero h1 span:nth-child(2) { margin-left: .5em; }
.gd-hero h1 .gd-outline { color: transparent; -webkit-text-stroke: 1.5px var(--gd-ink); margin-left: 1.7em; }
.gd-hero__intro { width: min(39ch, 34vw); margin: clamp(2rem, 3vw, 2.5rem) clamp(0rem, 8vw, 8rem) 0 auto !important; font-size: clamp(1.05rem, 1.45vw, 1.35rem); line-height: 1.4; font-weight: 480; }
.gd-hero__meta { position: absolute; z-index: 4; left: var(--gd-gutter); right: var(--gd-gutter); bottom: clamp(1.25rem, 2vw, 1.625rem); display: flex; justify-content: space-between; text-transform: uppercase; letter-spacing: .08em; font-size: .625rem; font-weight: 650; opacity: .6; }
.gd-hero__meta a { color: inherit; text-decoration: none; }
.gd-hero__graphic { position: absolute; z-index: 1; width: min(38vw, 33.75rem); aspect-ratio: 1; top: 8%; right: 3%; }
.gd-orbit { position: absolute; inset: 0; border: 1px solid #1116; border-radius: 50%; animation: gd-spin 18s linear infinite; }
.gd-orbit--one span { position: absolute; font-size: .5625rem; letter-spacing: .18em; font-weight: 700; }
.gd-orbit--one span:nth-child(1) { top: -.3125rem; left: 47%; }
.gd-orbit--one span:nth-child(2) { right: -1.125rem; top: 58%; transform: rotate(90deg); }
.gd-orbit--one span:nth-child(3) { bottom: -.3125rem; left: 47%; transform: rotate(180deg); }
.gd-orbit--one span:nth-child(4) { top: 38%; left: -1.875rem; transform: rotate(-90deg); }
.gd-orbit--two { inset: 18%; border-style: dashed; animation-direction: reverse; animation-duration: 12s; }
.gd-core { position: absolute; inset: 34%; border-radius: 50%; display: grid; place-content: center; text-align: center; color: white; background: var(--gd-accent); box-shadow: 0 1.25rem 3.125rem #ff604766; animation: gd-float 4s ease-in-out infinite; }
.gd-core span { font-size: clamp(2rem, 4vw, 4rem); line-height: .86; letter-spacing: -.025em; font-weight: 850; }
.gd-core small { margin-top: .5rem; text-transform: uppercase; letter-spacing: .15em; font-size: .5rem; }
@keyframes gd-spin { to { transform: rotate(360deg); } }
@keyframes gd-float { 50% { transform: translateY(-.875rem) rotate(4deg); } }

.gd-section-line { position: relative; display: grid; grid-template-columns: 1fr; border-top: 1px solid #1114; padding-top: .875rem; font-size: .625rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.gd-about { min-height: 233svh; position: relative; color: var(--gd-ink); background: var(--gd-paper); }
.gd-about__sticky { position: sticky; top: 0; min-height: 100svh; padding: clamp(5.25rem, 7.25vw, 6.5rem) var(--gd-gutter) clamp(1.375rem, 2vw, 1.75rem); display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; background: radial-gradient(circle at 78% 50%, #fff, transparent 37%), var(--gd-paper); }
.gd-about__statement { align-self: center; padding: clamp(1.5rem, 5vh, 3.75rem) clamp(0rem, 6vw, 5.5rem); }
.gd-about__statement p { max-width: 24ch; margin: 0 auto 0 0 !important; white-space: normal; text-align: left; font-size: clamp(2.25rem, 3.4vw, 4.6rem); letter-spacing: -.02em; line-height: 1; font-weight: 790; color: var(--gd-muted); }
.gd-about__word { color: var(--gd-muted); transition: color .18s linear; }
.gd-about__word--active { color: var(--gd-ink); }
.gd-about__foot { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(1.25rem, 2vw, 1.875rem); align-items: end; }
.gd-about__foot > p { max-width: 49ch; margin: 0 8vw 0 auto !important; font-size: .875rem; line-height: 1.45; }
.gd-round-link { width: 3rem; aspect-ratio: 1; border-radius: 50%; border: 1px solid #1117; display: grid; place-items: center; color: inherit; text-decoration: none; transition: .3s; }
.gd-round-link:hover { background: var(--gd-ink); color: var(--gd-paper); transform: scale(1.06); }

[data-gd-reveal] { opacity: 0; transform: translateY(2.375rem); transition: opacity .85s ease, transform 1s cubic-bezier(.16,1,.3,1); }
[data-gd-reveal][data-gd-visible="true"] { opacity: 1; transform: translateY(0); }
.elementor-editor-active [data-gd-reveal] { opacity: 1; transform: none; }

.gd-work { background: #0d0d0d; color: var(--gd-paper); padding: var(--gd-section-top) var(--gd-gutter) var(--gd-section-bottom); overflow: hidden; }
.gd-work__header { position: relative; display: grid; grid-template-columns: 1fr; border-top: 1px solid #ffffff42; padding-top: .875rem; padding-bottom: 6.875rem; }
.gd-work__header .gd-eyebrow { opacity: .6; }
.gd-work__header h2 { padding-top: clamp(4.375rem, 11vh, 8.125rem); color: var(--gd-paper); font-family: inherit; font-size: clamp(5rem, 11.6vw, 12rem); text-transform: uppercase; letter-spacing: -.03em; line-height: .8; font-weight: 850; }
.gd-work__header h2 span { display: block; }
.gd-work__header h2 span:last-child { margin-left: .45em; color: transparent; -webkit-text-stroke: 1.5px var(--gd-paper); }
.gd-projects { display: grid; gap: clamp(7rem, 14vw, 11.875rem); }
.gd-project__top { position: relative; display: flex; justify-content: space-between; padding: .875rem 0 1.375rem; border-top: 1px solid #ffffff3b; font-size: .625rem; text-transform: uppercase; letter-spacing: .09em; font-weight: 650; }
.gd-project a { color: inherit; text-decoration: none; }
.gd-project__heading { display: grid; grid-template-columns: 1.2fr .65fr; gap: clamp(2rem, 8vw, 7rem); align-items: end; padding-bottom: clamp(1.75rem, 3vw, 2.375rem); }
.gd-project__heading > div > p { margin-bottom: .875rem !important; font-size: .6875rem; text-transform: uppercase; letter-spacing: .09em; color: var(--gd-project-accent); }
.gd-project__heading h3 { max-width: 10ch; color: var(--gd-paper); font-family: inherit; font-size: clamp(3.8rem, 7.4vw, 8.3rem); letter-spacing: -.025em; line-height: .9; font-weight: 790; }
.gd-project__heading > p { max-width: 37ch; font-size: clamp(1rem, 1.3vw, 1.3rem); line-height: 1.36; opacity: .7; }
.gd-project__visual { position: relative; display: block; aspect-ratio: 16 / 9.4; overflow: hidden; border-radius: .875rem; color: var(--gd-ink); background: var(--gd-project-accent); }
.gd-project__visual::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 5%, #ffffff8f, transparent 34%), linear-gradient(145deg, #ffffff44, transparent 52%); }
.gd-project__number { position: absolute; right: -.03em; bottom: -.2em; font-size: clamp(14rem, 32vw, 34rem); line-height: .7; letter-spacing: -.12em; font-weight: 900; color: #1111; }
.gd-browser { position: absolute; z-index: 2; width: 88%; top: 8%; left: 6%; overflow: hidden; border-radius: .6875rem; background: #f7f7f2; box-shadow: 0 2.1875rem 5.625rem #0005; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.gd-project__visual:hover .gd-browser { transform: translateY(-.625rem) scale(1.01); }
.gd-browser__bar { display: grid; grid-template-columns: auto auto auto 1fr; gap: .375rem; align-items: center; height: 2.125rem; padding: 0 .75rem; color: #1117; background: #efefeb; }
.gd-browser__bar i { width: .375rem; aspect-ratio: 1; border-radius: 50%; background: #1113; }
.gd-browser__bar b { justify-self: center; margin-right: 1.875rem; font-size: .5rem; text-transform: uppercase; letter-spacing: .08em; }
.gd-browser__screen { display: block; position: relative; aspect-ratio: 16/8.5; overflow: hidden; }
.gd-browser__screen img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.gd-project__cta { position: absolute; z-index: 3; bottom: 1.25rem; left: 1.25rem; display: flex; align-items: center; gap: 1.125rem; padding: .875rem 1.0625rem; border-radius: 99rem; background: #111; color: var(--gd-paper); font-size: .625rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 650; }
.gd-project__cta b { font-size: 1rem; transition: transform .2s; }
.gd-project__visual:hover .gd-project__cta b { transform: translateX(.25rem); }
.gd-project__footer { display: grid; grid-template-columns: 16vw 1fr auto; gap: clamp(1rem, 2vw, 1.25rem); padding: 1.125rem 0; border-bottom: 1px solid #ffffff3b; font-size: .625rem; text-transform: uppercase; letter-spacing: .07em; }
.gd-project__footer > span { opacity: .45; }

.gd-services { padding: var(--gd-section-top) var(--gd-gutter) var(--gd-section-bottom); background: var(--gd-paper); color: var(--gd-ink); overflow: hidden; }
.gd-services__intro { display: grid; grid-template-columns: .35fr .65fr; align-items: start; padding: clamp(5rem, 12vh, 8rem) 0 clamp(4.5rem, 10vh, 7rem); }
.gd-services__intro h2, .gd-testimonials__title h2 { color: inherit; font-family: inherit; font-size: clamp(4rem, 8vw, 9rem); line-height: .86; letter-spacing: -.025em; font-weight: 820; }
.gd-services__intro h2 > span { display: block; white-space: nowrap; }
.gd-services__outline { color: transparent; -webkit-text-stroke: 1.5px var(--gd-ink); }
.gd-service { display: grid; grid-template-columns: .35fr .4fr .25fr; gap: clamp(1.5rem, 2.1vw, 1.875rem); align-items: start; margin-inline: calc(var(--gd-gutter) * -1); padding: clamp(2rem, 2.5vw, 2.25rem) var(--gd-gutter) clamp(2.5rem, 3vw, 2.75rem); border-top: 1px solid #1114; transition: background-color .38s cubic-bezier(.16,1,.3,1); }
.gd-service h3 { color: inherit; font-family: inherit; font-size: clamp(2rem, 3.7vw, 4.5rem); letter-spacing: -.02em; line-height: .96; }
.gd-service h3 small { display: block; margin-top: 1rem; font-size: .6875rem; line-height: 1.2; letter-spacing: .1em; text-transform: uppercase; }
.gd-service > p { max-width: 39ch; line-height: 1.45; }
.gd-service ul { list-style: none; margin: 0; padding: 0; font-size: .6875rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 650; }
.gd-service li { border-top: 1px solid #1113; padding: .5625rem 0; }
@media (hover: hover) and (pointer: fine) { .gd-service:hover { background: var(--gd-accent); } }
@media (hover: none), (pointer: coarse) { .gd-service--featured { background: var(--gd-accent); } .gd-service:active { background: var(--gd-accent); } }
.gd-solutions { margin-top: 7.5rem; padding-top: 1.125rem; border-top: 1px solid #1114; overflow: hidden; }
.gd-solutions__marquee { display: flex; width: max-content; margin-top: 4.375rem; font-size: clamp(4rem, 8vw, 9rem); line-height: .96; letter-spacing: -.02em; text-transform: uppercase; font-weight: 820; animation: gd-marquee 28s linear infinite; }
.gd-solutions__marquee span { white-space: nowrap; }
@keyframes gd-marquee { to { transform: translateX(-50%); } }

.gd-showcase { position: relative; background: #161616; padding: clamp(4rem, 8vw, 8rem) var(--gd-gutter) 2rem; }
.gd-showcase__image { aspect-ratio: 16 / 9; overflow: hidden; border-radius: .75rem; box-shadow: 0 2.1875rem 6.25rem #0008; }
.gd-showcase__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.gd-showcase__label { display: flex; justify-content: space-between; padding-top: 1.25rem; color: #fff; font-size: .625rem; text-transform: uppercase; letter-spacing: .09em; opacity: .62; }

.gd-testimonials { background: #161616; color: var(--gd-paper); padding: var(--gd-section-top) var(--gd-gutter) var(--gd-section-bottom); }
.gd-section-line--light { border-color: #ffffff44; }
.gd-testimonials__title { padding: clamp(5rem, 12vh, 8rem) 0 clamp(4.5rem, 10vh, 7rem) clamp(0rem, 30vw, 28rem); }
.gd-testimonials__title h2 { font-size: clamp(4.5rem, 9vw, 10rem); }
.gd-testimonials__title h2 span { color: transparent; -webkit-text-stroke: 1.5px var(--gd-paper); }
.gd-quotes { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #ffffff38; border-bottom: 1px solid #ffffff38; }
.gd-quotes figure { min-height: 26.25rem; display: grid; grid-template-rows: 1fr auto; margin: 0; padding: clamp(1.25rem, 1.7vw, 1.5rem); border-right: 1px solid #ffffff38; }
.gd-quotes figure:last-child { border-right: 0; }
.gd-quotes blockquote { align-self: center; margin: 0; padding: 0; border: 0; color: inherit; font-size: clamp(1.6rem, 2.5vw, 2.9rem); letter-spacing: -.015em; line-height: 1.1; }
.gd-quotes figcaption { display: grid; gap: .375rem; }
.gd-quotes figcaption strong { color: var(--gd-paper); text-transform: uppercase; letter-spacing: .08em; font-size: .625rem; }
.gd-quotes figcaption small { color: var(--gd-paper); opacity: 1; font-size: .6875rem; }

.gd-contact { min-height: 190svh; background: var(--gd-contact); position: relative; color: #15130a; }
.gd-contact__sticky { min-height: 100svh; position: sticky; top: 0; display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; padding: clamp(5.25rem, 7.25vw, 6.5rem) var(--gd-gutter) clamp(1.375rem, 2vw, 1.625rem); background: radial-gradient(circle at 80% 20%, #fff7, transparent 28%), var(--gd-contact); }
.gd-contact__sticky::before { content: "G"; position: absolute; right: -.08em; bottom: -.25em; font-size: min(62vw, 55rem); font-weight: 900; line-height: 1; letter-spacing: -.15em; color: #1111110e; }
.gd-section-line--contact { border-color: #1115; }
.gd-contact__body { position: relative; z-index: 2; align-self: center; padding: 6vh 0; }
.gd-contact__body > p { margin-bottom: 5vh !important; text-transform: uppercase; letter-spacing: .1em; font-size: .6875rem; font-weight: 700; }
.gd-contact__body h2 { max-width: 13ch; margin-left: 17vw; color: inherit; font-family: inherit; font-size: clamp(4.5rem, 8vw, 9rem); line-height: .94; letter-spacing: -.025em; font-weight: 830; }
.gd-contact__body h2 span { display: block; }
.gd-outline-dark { color: transparent; -webkit-text-stroke: 1.5px #15130a; }
.gd-contact__form { margin-top: clamp(2rem, 5vh, 4rem); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1.5rem, 4vw, 4rem); }
.gd-contact__form,
.gd-contact__form label,
.gd-contact__form input,
.gd-contact__form textarea,
.gd-contact__form small,
.gd-contact__form strong,
.gd-contact__form button { color: #15130a !important; }
.gd-contact__website { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.gd-contact__field { display: grid; gap: .5rem; padding: .75rem 0 1rem; border-bottom: 1px solid #15130a; transition: border-color .2s, border-width .2s; }
.gd-contact__field--message { grid-column: 1 / -1; padding-top: 1.25rem; }
.gd-contact__field:focus-within { border-bottom-width: 2px; }
.gd-contact__field label, .gd-contact__submit-row small { text-transform: uppercase; letter-spacing: .1em; font-size: .5625rem; font-weight: 700; }
.gd-contact__field input, .gd-contact__field textarea { width: 100%; border: 0; outline: 0; border-radius: 0; padding: 0; color: #15130a; background: transparent; font-family: inherit; font-size: clamp(1.15rem, 1.8vw, 1.7rem); line-height: 1.25; box-shadow: none; }
.gd-contact__field input::placeholder, .gd-contact__field textarea::placeholder { color: #15130a !important; opacity: .58; }
.gd-contact__field input:-webkit-autofill, .gd-contact__field textarea:-webkit-autofill { -webkit-text-fill-color: #15130a !important; caret-color: #15130a; }
.gd-contact__field textarea { min-height: 4.5rem; resize: vertical; }
.gd-contact__submit-row { grid-column: 1 / -1; margin-top: clamp(1.5rem, 3vh, 2.5rem); display: grid; grid-template-columns: 1fr auto; align-items: center; border: 1.5px solid #15130a; border-radius: 100rem; padding: .75rem .875rem .75rem clamp(1rem, 2vw, 1.75rem); transition: background-color .35s, color .35s; }
.gd-contact__submit-row:hover, .gd-contact__submit-row:focus-within { color: #15130a; background: #15130a12; }
.gd-contact__submit-row > span { display: grid; gap: .25rem; }
.gd-contact__submit-row strong { font-size: clamp(1.35rem, 2.2vw, 2.2rem); letter-spacing: -.01em; }
.gd-contact__submit-row button { width: clamp(3.75rem, 5.5vw, 5rem); aspect-ratio: 1; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; padding: 0; color: inherit; background: transparent; font-family: inherit; font-size: clamp(1.6rem, 2.5vw, 2.5rem); cursor: pointer; transition: transform .3s, background-color .3s, color .3s; }
.gd-contact__submit-row button:hover { transform: rotate(45deg); background: var(--gd-contact); color: #15130a; }
.gd-contact__submit-row button:focus-visible { outline: 2px solid currentColor; outline-offset: .25rem; }
.gd-contact__submit-row button:disabled { cursor: wait; opacity: .55; }
.gd-contact__status { grid-column: 1 / -1; min-height: 1.5em; margin: .75rem 0 0 !important; color: #15130a !important; font-size: .75rem; font-weight: 700; letter-spacing: .04em; }
.gd-contact__form--success .gd-contact__status::before { content: "✓ "; }
.gd-contact__form--error .gd-contact__status::before { content: "! "; }
.gd-contact__form-embed { margin-top: clamp(2rem, 5vh, 4rem); color: #15130a; }
.gd-contact__form-embed,
.gd-contact__form-embed label,
.gd-contact__form-embed input,
.gd-contact__form-embed textarea,
.gd-contact__form-embed select,
.gd-contact__form-embed button { color: #15130a !important; font-family: inherit; }
.gd-contact__form-embed form { margin: 0; }
.gd-contact__form-embed .gd-contact__form { margin-top: 0; }
.gd-contact__form-embed label { text-transform: uppercase; letter-spacing: .1em; font-size: .625rem; font-weight: 700; }
.gd-contact__form-embed input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
.gd-contact__form-embed textarea,
.gd-contact__form-embed select { width: 100%; border: 0; border-bottom: 1px solid #15130a; border-radius: 0; padding: .75rem 0 1rem; background: transparent; box-shadow: none; outline: 0; font-size: clamp(1.15rem, 1.8vw, 1.7rem); line-height: 1.25; }
.gd-contact__form-embed input::placeholder,
.gd-contact__form-embed textarea::placeholder { color: #15130a !important; opacity: .58; }
.gd-contact__form-embed input[type="submit"],
.gd-contact__form-embed button[type="submit"] { min-height: 3.75rem; margin-top: 1.5rem; border: 1.5px solid #15130a; border-radius: 100rem; padding: .75rem 1.75rem; background: transparent; font-size: 1rem; font-weight: 750; cursor: pointer; }
.gd-contact__form-embed input[type="submit"]:hover,
.gd-contact__form-embed button[type="submit"]:hover { background: #15130a12; }
.gd-contact__form-embed .wpcf7-response-output,
.gd-contact__form-embed .wpforms-confirmation-container-full,
.gd-contact__form-embed .ff-message-success,
.gd-contact__form-embed .forminator-response-message { margin: 1rem 0 0 !important; border-color: #15130a !important; color: #15130a !important; background: transparent !important; }

/* Elementor Pro Form templates: restore the native Groucho contact treatment. */
.gd-contact__form-embed .elementor-form-fields-wrapper {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: clamp(1.5rem, 4vw, 4rem) !important;
  row-gap: 0 !important;
}
.gd-contact__form-embed .elementor-form-fields-wrapper > .elementor-field-group {
  grid-column: 1 / -1;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}
.gd-contact__form-embed .elementor-form-fields-wrapper > .elementor-field-type-text,
.gd-contact__form-embed .elementor-form-fields-wrapper > .elementor-field-type-email,
.gd-contact__form-embed .elementor-form-fields-wrapper > .elementor-field-type-tel {
  grid-column: span 1;
}
.gd-contact__form-embed .elementor-form-fields-wrapper > .elementor-field-group:not(.elementor-field-type-submit):not(.elementor-field-type-hidden):not(.elementor-field-type-honeypot):not(.elementor-field-type-recaptcha):not(.elementor-field-type-recaptcha_v3) {
  display: grid !important;
  gap: .5rem !important;
  padding: .75rem 0 1rem !important;
  border-bottom: 1px solid #15130a !important;
}
.gd-contact__form-embed .elementor-field-group > .elementor-field-label {
  margin: 0 !important;
  padding: 0 !important;
  color: #15130a !important;
  line-height: 1.2 !important;
}
.gd-contact__form-embed .elementor-field-group .elementor-field:not([type="checkbox"]):not([type="radio"]),
.gd-contact__form-embed .elementor-field-group .elementor-field-textual {
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  color: #15130a !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
  font-family: inherit !important;
  font-size: clamp(1.15rem, 1.8vw, 1.7rem) !important;
  line-height: 1.25 !important;
}
.gd-contact__form-embed .elementor-field-group textarea.elementor-field {
  min-height: 4.5rem !important;
  resize: vertical !important;
}
.gd-contact__form-embed .elementor-field-group .elementor-field:focus {
  outline: 0 !important;
  box-shadow: none !important;
}
.gd-contact__form-embed .elementor-field-group:focus-within:not(.elementor-field-type-submit) {
  border-bottom-width: 2px !important;
}
.gd-contact__form-embed .elementor-form-fields-wrapper > .e-form__buttons {
  display: grid !important;
  grid-column: 1 / -1 !important;
  grid-template-columns: 1fr auto !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  column-gap: 1rem !important;
  width: 100% !important;
  margin-top: clamp(2rem, 4vh, 3rem) !important;
  border: 1.5px solid #15130a !important;
  border-radius: 100rem !important;
  padding: .75rem .875rem .75rem clamp(1rem, 2vw, 1.75rem) !important;
  background: transparent !important;
}
.gd-contact__form-embed .e-form__buttons::before {
  content: "READY WHEN YOU ARE";
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  color: #15130a;
  font-size: .5625rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .1em;
}
.gd-contact__form-embed .e-form__buttons::after {
  content: "SEND YOUR ENQUIRY";
  grid-column: 1;
  grid-row: 2;
  align-self: start;
  color: #15130a;
  font-size: clamp(1.35rem, 2.2vw, 2.2rem);
  font-weight: 750;
  line-height: 1.1;
  letter-spacing: -.01em;
}
.gd-contact__form-embed .e-form__buttons .elementor-button {
  grid-column: 2 !important;
  grid-row: 1 / 3 !important;
  place-self: center end !important;
  width: clamp(3.75rem, 5.5vw, 5rem) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  aspect-ratio: 1 !important;
  margin: 0 !important;
  border: 1px solid #15130a !important;
  border-radius: 50% !important;
  padding: 0 !important;
  color: #15130a !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0 !important;
  line-height: 1 !important;
  transition: transform .3s, background-color .3s !important;
}
.gd-contact__form-embed .e-form__buttons .elementor-button-content-wrapper {
  display: grid !important;
  position: relative;
  place-items: center !important;
  width: 100%;
  height: 100%;
  gap: 0 !important;
}
.gd-contact__form-embed .e-form__buttons .elementor-button-content-wrapper::before {
  content: "↗";
  color: #15130a;
  font-size: clamp(1.6rem, 2.5vw, 2.5rem);
  font-weight: 400;
  line-height: 1;
}
.gd-contact__form-embed .e-form__buttons .elementor-button-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.gd-contact__form-embed .e-form__buttons .elementor-button:hover {
  transform: rotate(45deg) !important;
  background: var(--gd-contact) !important;
}
.gd-contact__form-embed .elementor-message,
.gd-contact__form-embed .elementor-field-type-recaptcha,
.gd-contact__form-embed .elementor-field-type-recaptcha_v3 {
  grid-column: 1 / -1 !important;
  color: #15130a !important;
}
.gd-contact__form-embed .elementor-message-success {
  max-width: 34ch;
  margin: clamp(1rem, 2vh, 1.5rem) 0 0 !important;
  border: 0 !important;
  padding: 0 !important;
  color: #15130a !important;
  background: transparent !important;
  font-family: inherit !important;
  font-size: clamp(1.15rem, 1.65vw, 1.5rem) !important;
  font-weight: 650 !important;
  line-height: 1.22 !important;
  letter-spacing: -.01em !important;
}
.gd-contact__form-embed .elementor-message-success::before {
  display: none !important;
  content: none !important;
}
.gd-contact__form-embed .elementor-message-success > i,
.gd-contact__form-embed .elementor-message-success > svg,
.gd-contact__form-embed .elementor-message-success > .elementor-message-icon { display: none !important; }
.gd-contact__footer { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto 1fr; row-gap: .75rem; padding-top: 1.125rem; border-top: 1px solid #1115; font-size: .5625rem; text-transform: uppercase; letter-spacing: .09em; font-weight: 700; }
.gd-contact__footer span:nth-child(2) { justify-self: center; }
.gd-contact__footer > a { justify-self: end; color: inherit; text-decoration: none; }
.gd-contact__recaptcha { grid-column: 1 / -1; max-width: 67ch; color: #15130ab8; font-size: clamp(.625rem, .75vw, .75rem); font-weight: 550; line-height: 1.45; letter-spacing: .02em; text-transform: none; }
.gd-contact__recaptcha a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
.gd-contact__recaptcha a:hover, .gd-contact__recaptcha a:focus-visible { color: #15130a; }

@media (max-width: 47.5rem) {
  .gd-loader__top span:last-child { display: none; }
  .gd-nav { padding-block: 1rem; }
  .gd-menu-button { display: block; }
  .gd-nav__links { position: fixed; inset: 0; z-index: -1; flex-direction: column; justify-content: center; align-items: center; gap: .75rem; background: #111; color: white; transform: translateY(-100%); transition: transform .65s cubic-bezier(.76,0,.24,1); }
  .gd-nav__links--open { transform: translateY(0); }
  .gd-nav__links a { font-size: 14vw; letter-spacing: -.02em; font-weight: 800; }
  .gd-hero__copy { padding-block: 6.875rem 6.25rem; }
  .gd-hero h1 { margin-top: 18vh; font-size: 17vw; }
  .gd-hero h1 span:nth-child(2) { margin-left: .2em; }
  .gd-hero h1 .gd-outline { margin-left: .7em; }
  .gd-hero__intro { width: min(72%, 28rem); margin: 2.625rem 0 0 auto !important; }
  .gd-hero__graphic { width: 62vw; top: 11%; right: -8%; }
  .gd-about { min-height: 258svh; }
  .gd-about__statement { padding: clamp(1.5rem, 3vh, 2.5rem) 0; }
  .gd-about__statement p { max-width: 12.6ch; font-size: clamp(1.65rem, 7vw, 2.4rem); line-height: 1.04; }
  .gd-about__foot > p { margin: 0 !important; max-width: 70%; font-size: .75rem; }
  .gd-work__header { padding-bottom: 5.5rem; }
  .gd-work__header h2 { font-size: 15vw; line-height: .86; }
  .gd-project__heading { display: block; }
  .gd-project__heading h3 { font-size: 12vw; }
  .gd-project__heading > p { margin-top: 1.5rem !important; }
  .gd-project__visual { border-radius: .75rem; aspect-ratio: 16 / 10.75; }
  .gd-browser { inset: 7% 5%; width: auto; border-radius: .5rem; box-shadow: 0 1.25rem 3rem #0004; }
  .gd-browser__bar { display: none; }
  .gd-browser__screen { height: 100%; aspect-ratio: auto; }
  .gd-browser__screen img { object-fit: contain; background: #f7f7f2; }
  .gd-project__number, .gd-project__cta { display: none; }
  .gd-project__footer { grid-template-columns: 1fr auto; font-size: .5rem; }
  .gd-project__footer > span { display: none; }
  .gd-services__intro { display: block; }
  .gd-services__intro h2 { margin-top: 4.375rem; font-size: 12vw; line-height: .9; }
  .gd-service { grid-template-columns: 1fr; gap: 1.25rem; }
  .gd-service h3 { font-size: 10vw; }
  .gd-service > p, .gd-service ul { grid-column: 1; }
  .gd-solutions { margin-top: 5rem; }
  .gd-solutions__marquee { font-size: 15vw; }
  .gd-showcase { padding-top: 4rem; padding-bottom: 1.25rem; }
  .gd-showcase__image { aspect-ratio: .82; }
  .gd-showcase__label span:last-child { display: none; }
  .gd-testimonials__title { padding: 5rem 0 4.375rem; }
  .gd-testimonials__title h2 { font-size: 15vw; }
  .gd-quotes { display: block; }
  .gd-quotes figure { min-height: 21.25rem; border-right: 0; border-bottom: 1px solid #ffffff38; padding: 1.375rem 0; }
  .gd-contact { min-height: 170svh; }
  .gd-contact__body h2 { margin-left: 0; font-size: 14vw; }
  .gd-contact__form { grid-template-columns: 1fr; margin-top: 2rem; }
  .gd-contact__field, .gd-contact__field--message { grid-column: 1; padding-top: .75rem; }
  .gd-contact__field textarea { min-height: 3.75rem; }
  .gd-contact__submit-row { border-radius: 1.5rem; padding: .625rem .625rem .625rem 1rem; }
  .gd-contact__submit-row button { width: 3.25rem; }
  .gd-contact__form-embed .elementor-form-fields-wrapper { grid-template-columns: 1fr !important; }
  .gd-contact__form-embed .elementor-form-fields-wrapper > .elementor-field-type-text,
  .gd-contact__form-embed .elementor-form-fields-wrapper > .elementor-field-type-email,
  .gd-contact__form-embed .elementor-form-fields-wrapper > .elementor-field-type-tel { grid-column: 1 !important; }
  .gd-contact__form-embed .elementor-form-fields-wrapper > .e-form__buttons { margin-top: 1.75rem !important; border-radius: 1.5rem !important; padding: .625rem .625rem .625rem 1rem !important; }
  .gd-contact__form-embed .e-form__buttons .elementor-button { width: 3.25rem !important; }
  .gd-contact__footer { grid-template-columns: 1fr auto; }
  .gd-contact__footer span:nth-child(2) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .gd-loader, [data-gd-reveal], .gd-about__word, .gd-nav, .gd-service, .gd-browser, .gd-project__cta b, .gd-round-link, .gd-contact__submit-row, .gd-contact__submit-row button { transition-duration: .01ms !important; }
  .gd-orbit, .gd-core, .gd-solutions__marquee { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .gd-about, .gd-contact { min-height: 100svh; }
  .gd-about__sticky, .gd-contact__sticky { position: relative; }
  .gd-about__word { color: var(--gd-ink); }
}
