@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');
/* Minimal reset (replaces the Tailwind base layer) */
*, *::before, *::after { box-sizing: border-box; }
h1, h2, h3, h4, p, blockquote, figure { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; }
button { background: none; border: 0; padding: 0; color: inherit; }
input, textarea { margin: 0; }

:root {
  font-family: 'Space Grotesk', Arial, sans-serif;
  color: #11110f;
  background: #f2f1eb;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  --ink: #11110f;
  --paper: #f2f1eb;
  --muted: #74736d;
  --line: rgba(17, 17, 15, 0.16);
  --lime: #d8f451;
  --lilac: #c5b5ff;
  --coral: #ff7656;
  --pointer-x: 50vw;
  --pointer-y: 50vh;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); }
button, input { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
button:focus-visible, a:focus-visible, input:focus-visible { outline: 2px solid var(--lime); outline-offset: 4px; }
.site-shell { overflow: clip; }
.page-width { width: min(1240px, calc(100% - 48px)); margin: 0 auto; }

.ambient-cursor { position: fixed; z-index: 20; width: 420px; height: 420px; pointer-events: none; border-radius: 50%; opacity: .09; transform: translate(-50%, -50%); left: var(--pointer-x); top: var(--pointer-y); background: radial-gradient(circle, rgba(216,244,81,.6), transparent 66%); filter: blur(18px); mix-blend-mode: screen; transition: opacity .3s ease; }

.site-nav { position: fixed; z-index: 50; top: 0; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; height: 82px; padding: 0 38px; color: #fff; transition: background .35s ease, color .35s ease, height .35s ease, border-color .35s ease; border-bottom: 1px solid transparent; }
.site-nav-scrolled { height: 70px; color: var(--ink); background: rgba(242, 241, 235, .86); border-bottom-color: var(--line); backdrop-filter: blur(18px); }
.site-nav-scrolled .brand-mark-inverse { color: var(--ink); }
.nav-brand, .footer-logo { display: inline-flex; gap: 10px; align-items: center; color: inherit; background: none; border: 0; padding: 0; text-align: left; }
.brand-mark { display: inline-block; flex: 0 0 auto; color: var(--ink); transition: color .35s ease; }
.brand-mark-inverse { color: #fff; }
.nav-brand-copy, .footer-logo span { display: flex; flex-direction: column; line-height: .86; letter-spacing: .12em; }
.nav-brand-copy strong, .footer-logo strong { font-size: 13px; font-weight: 600; }
.nav-brand-copy small, .footer-logo small { font-family: 'DM Mono', monospace; font-size: 7px; letter-spacing: .27em; margin-top: 6px; }
.nav-links { display: flex; align-items: center; gap: 32px; margin-left: auto; margin-right: 42px; font-size: 13px; }
.nav-links a { position: relative; opacity: .82; transition: opacity .2s ease; }
.nav-links a::after { content: ''; position: absolute; left: 0; bottom: -7px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .3s ease; }
.nav-links a:hover { opacity: 1; }
.nav-links a:hover::after { transform: scaleX(1); transform-origin: left; }
.nav-cta, .button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; font-size: 12px; font-weight: 600; letter-spacing: .01em; transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease; }
.nav-cta { color: var(--ink); background: var(--lime); padding: 12px 16px; border-radius: 999px; }
.nav-cta:hover, .button:hover { transform: translateY(-3px); box-shadow: 0 11px 24px rgba(216, 244, 81, .17); }
.menu-toggle { display: none; color: inherit; border: 0; background: transparent; padding: 8px; }
.menu-toggle .close-icon { display: none; }
.menu-toggle[aria-expanded="true"] .menu-icon { display: none; }
.menu-toggle[aria-expanded="true"] .close-icon { display: block; }
.mobile-menu { display: none; }

.hero { position: relative; min-height: 780px; height: 100svh; max-height: 980px; display: flex; align-items: flex-end; overflow: hidden; color: #fff; background: #11110f; }
.hero-image, .hero-image::after, .hero-grain { position: absolute; inset: 0; }
.hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: .52; filter: saturate(.72) contrast(1.12); transform: scale(1.04); animation: heroZoom 18s ease-out both; }
.hero-image::after { content: ''; background: linear-gradient(180deg, rgba(10,10,9,.73) 0%, rgba(10,10,9,.1) 30%, rgba(10,10,9,.6) 72%, rgba(10,10,9,.96) 100%); }
.hero-grain { opacity: .13; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' 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='.24'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }
.hero-content { position: relative; z-index: 2; padding-bottom: 13.5vh; }
.hero-kicker, .eyebrow, .proof-label, .section-index, .footer-label, .form-footnote { font-family: 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .12em; font-size: 10px; }
.hero-kicker { display: flex; align-items: center; gap: 9px; color: rgba(255,255,255,.68); }
.eyebrow-dot { width: 6px; height: 6px; display: inline-block; background: var(--lime); border-radius: 50%; box-shadow: 0 0 0 4px rgba(216,244,81,.13); }
.hero-title-wrap { width: min(820px, 85vw); margin-top: 27px; }
.hero h1 { margin: 0; font-size: clamp(58px, 8.6vw, 126px); line-height: .88; letter-spacing: -.075em; font-weight: 500; }
em { font-style: normal; color: var(--lime); }
.hero-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-top: 38px; max-width: 770px; }
.hero-description { max-width: 330px; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.55; margin: 0; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 21px; }
.button { min-height: 46px; padding: 0 19px; border-radius: 999px; }
.button-lime { color: var(--ink); background: var(--lime); }
.text-button { display: inline-flex; align-items: center; gap: 10px; border: 0; background: transparent; font-size: 13px; font-weight: 600; padding: 0; transition: gap .25s ease, color .25s ease; }
.text-button:hover { gap: 15px; }
.text-button-light { color: #fff; }
.text-button-dark { color: var(--ink); }
.hero-wordmark { position: absolute; z-index: 1; right: -1vw; bottom: -2.3vw; font-size: 17.6vw; line-height: .75; letter-spacing: -.1em; font-weight: 600; color: rgba(255,255,255,.08); user-select: none; pointer-events: none; }
.hero-scroll { position: absolute; z-index: 2; right: 38px; bottom: 40px; display: flex; align-items: center; gap: 15px; transform: rotate(90deg) translateX(100%); transform-origin: right bottom; color: rgba(255,255,255,.58); font-family: 'DM Mono', monospace; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.scroll-line { width: 55px; height: 1px; background: rgba(255,255,255,.6); position: relative; overflow: hidden; }
.scroll-line::after { content: ''; position: absolute; inset: 0; background: var(--lime); animation: scrollLine 2.1s ease-in-out infinite; }

.proof-strip { background: var(--ink); color: #fff; border-top: 1px solid rgba(255,255,255,.12); }
.proof-inner { display: flex; align-items: center; justify-content: space-between; min-height: 118px; gap: 50px; }
.proof-label { color: rgba(255,255,255,.46); line-height: 1.6; max-width: 180px; }
.proof-label span { display: block; color: rgba(255,255,255,.78); margin-top: 8px; }
.proof-logos { display: flex; align-items: center; justify-content: space-between; flex: 1; gap: 25px; color: rgba(255,255,255,.82); font-size: 18px; }
.proof-logos > span { transition: color .25s ease, transform .25s ease; }
.proof-logos > span:hover { color: var(--lime); transform: translateY(-2px); }
.logo-dot { color: var(--lime); }
.logo-serif { font-family: Georgia, serif; letter-spacing: -.04em; }
.logo-spaced { font-size: 13px; letter-spacing: .3em; font-weight: 600; }
.logo-italic { font-style: italic; font-size: 21px; }

.section-light { background: var(--paper); color: var(--ink); }
.intro-section { padding: 150px 0 135px; }
.intro-grid { display: grid; grid-template-columns: 1fr 2.3fr 1fr; gap: 42px; }
.section-index { color: var(--muted); padding-top: 7px; }
.intro-copy { max-width: 720px; }
h2 { font-weight: 500; letter-spacing: -.065em; line-height: .95; margin: 0; font-size: clamp(42px, 6.2vw, 88px); }
h2 span { color: #97968e; }
.intro-copy p { max-width: 470px; color: #686761; line-height: 1.6; font-size: 15px; margin: 31px 0 32px; }
.intro-stamp { justify-self: end; display: flex; flex-direction: column; align-items: flex-start; color: var(--ink); margin-top: 8px; }
.intro-stamp .brand-mark { margin-bottom: 20px; }
.intro-stamp span { font-size: 20px; line-height: .93; letter-spacing: -.06em; }
.intro-stamp i { color: #9b9a92; }

.services-section { padding: 40px 0 150px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.section-heading-split h2 { margin-top: 19px; }
.section-heading p { max-width: 260px; color: var(--muted); font-size: 13px; line-height: 1.6; margin: 0 0 4px; }
.service-list { border-top: 1px solid var(--line); margin-top: 72px; }
.service-row { display: grid; grid-template-columns: 65px 54px 1fr 24px; align-items: center; gap: 26px; min-height: 145px; border-bottom: 1px solid var(--line); transition: padding .35s ease, background .35s ease; }
.service-row:hover { padding-left: 16px; padding-right: 16px; background: rgba(255,255,255,.32); }
.service-number { font-family: 'DM Mono', monospace; font-size: 10px; color: var(--muted); }
.service-icon { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; color: var(--ink); transition: transform .35s ease; }
.service-row:hover .service-icon { transform: rotate(12deg) scale(1.08); }
.service-icon-lilac { background: var(--lilac); }
.service-icon-lime { background: var(--lime); }
.service-icon-coral { background: var(--coral); }
.service-info { display: flex; align-items: baseline; gap: 30px; }
.service-info h3 { margin: 0; font-size: clamp(24px, 3vw, 40px); font-weight: 500; letter-spacing: -.06em; }
.service-info p { max-width: 315px; color: var(--muted); font-size: 13px; line-height: 1.45; margin: 0; }

.work-section { background: var(--ink); color: #fff; padding: 145px 0 125px; }
.work-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.eyebrow-light { color: rgba(255,255,255,.52); }
.work-header h2 { margin-top: 18px; }
.work-header p { max-width: 220px; color: rgba(255,255,255,.54); line-height: 1.55; font-size: 13px; margin: 0 0 3px; }
.project-grid { display: grid; grid-template-columns: 1.07fr .93fr; gap: 58px 30px; align-items: start; margin-top: 78px; }
.project-tall { grid-row: span 2; }
.project-visual { position: relative; overflow: hidden; isolation: isolate; }
.project-visual::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(145deg, rgba(255,255,255,.08), transparent 30%, rgba(0,0,0,.18)); mix-blend-mode: overlay; }
.project-visual img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.project:hover .project-visual img { transform: scale(1.06); }
.project-tall .project-visual { height: 620px; }
.project-wide .project-visual { height: 290px; }
.project-orchard { background: #d85d3e; }
.project-orchard img { mix-blend-mode: multiply; opacity: .45; filter: saturate(1.3) contrast(1.2); }
.project-overlay { position: absolute; z-index: 1; inset: 0; display: flex; align-items: center; justify-content: center; gap: 20px; color: #f8d9bb; font-size: 24vw; line-height: .7; letter-spacing: -.17em; font-family: Georgia, serif; opacity: .9; }
.project-overlay span:last-child { transform: translateY(25%); }
.project-orchard-label { position: absolute; z-index: 2; left: 28px; bottom: 29px; color: #fff0dd; font-size: 16px; line-height: 1.05; letter-spacing: -.04em; }
.project-mineral { background: #d7e0dc; }
.project-mineral img { mix-blend-mode: multiply; opacity: .52; filter: sepia(.16) saturate(.7); }
.mineral-panel { position: absolute; z-index: 2; inset: 22px 24px; display: flex; flex-direction: column; justify-content: space-between; color: #1a332f; }
.mineral-panel span, .mineral-panel small { font-family: 'DM Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: .16em; }
.mineral-panel strong { font-size: clamp(30px, 4vw, 55px); line-height: .82; letter-spacing: -.08em; font-weight: 500; text-transform: lowercase; }
.mineral-panel small { align-self: flex-end; }
.project-common { background: #d6c5fb; }
.project-common img { mix-blend-mode: multiply; opacity: .32; filter: saturate(.65) contrast(1.1); }
.common-word { position: absolute; z-index: 2; left: 28px; top: 25px; font-size: clamp(30px, 4vw, 53px); letter-spacing: -.08em; line-height: .78; color: #2b2151; }
.common-word i { color: #fff; }
.common-corner { position: absolute; z-index: 2; right: 26px; bottom: 22px; color: #2b2151; font-size: 11px; line-height: 1.05; text-align: right; }
.project-meta { display: flex; justify-content: space-between; gap: 15px; padding-top: 15px; color: rgba(255,255,255,.58); font-family: 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .07em; font-size: 9px; }
.project-meta span:first-child { color: #fff; }
.work-footer { display: flex; align-items: center; gap: 16px; color: rgba(255,255,255,.55); font-family: 'DM Mono', monospace; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; margin-top: 75px; }
.circle-button { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: var(--ink); background: var(--lime); border: 0; transition: transform .3s ease; }
.circle-button:hover { transform: rotate(45deg); }

.process-section { padding: 150px 0; }
.process-grid { display: grid; grid-template-columns: .85fr 1fr; gap: 15%; }
.process-statement h2 { margin-top: 21px; }
.process-statement p { max-width: 340px; margin: 30px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.process-steps { border-top: 1px solid var(--line); }
.process-step { display: grid; grid-template-columns: 48px 1fr; gap: 25px; padding: 30px 0 31px; border-bottom: 1px solid var(--line); }
.process-step > span { font-family: 'DM Mono', monospace; color: var(--muted); font-size: 10px; padding-top: 5px; }
.process-step h3 { margin: 0; font-size: 22px; font-weight: 500; letter-spacing: -.045em; }
.process-step p { max-width: 340px; color: var(--muted); font-size: 13px; line-height: 1.55; margin: 10px 0 0; }

.benefit-section { background: #181816; color: #fff; padding: 145px 0; }
.benefit-grid { display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: 11%; }
.benefit-visual { position: relative; min-height: 530px; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 50%, rgba(216,244,81,.16), transparent 31%), #23231f; }
.benefit-ring { position: absolute; width: 400px; height: 400px; border: 1px solid rgba(216,244,81,.36); border-radius: 50%; animation: orbit 14s linear infinite; }
.benefit-ring-one { transform: rotate(28deg) scaleX(1.65); }
.benefit-ring-two { transform: rotate(-62deg) scaleX(1.65); animation-direction: reverse; animation-duration: 19s; border-color: rgba(197,181,255,.32); }
.benefit-orbit-word { position: absolute; top: 26px; left: 26px; color: rgba(255,255,255,.35); font-family: 'DM Mono', monospace; font-size: 9px; letter-spacing: .18em; writing-mode: vertical-rl; }
.benefit-center { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 18px; color: var(--lime); text-align: center; }
.benefit-center .brand-mark { color: var(--lime); margin-bottom: 10px; }
.benefit-center span { font-size: 33px; letter-spacing: -.08em; line-height: .8; }
.benefit-center i { color: #fff; }
.benefit-side-note { position: absolute; right: 25px; bottom: 25px; color: rgba(255,255,255,.5); font-family: 'DM Mono', monospace; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; text-align: right; line-height: 1.4; }
.benefit-copy h2 { margin-top: 21px; }
.benefit-copy p { max-width: 430px; color: rgba(255,255,255,.6); line-height: 1.6; font-size: 14px; margin: 30px 0 34px; }
.benefit-list { border-top: 1px solid rgba(255,255,255,.18); }
.benefit-list > div { display: grid; grid-template-columns: 23px 1fr; gap: 12px; padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.45; }
.benefit-list > div > span:first-child { color: var(--lime); margin-top: 1px; }
.benefit-list strong { color: #fff; font-weight: 500; }

.section-lilac { background: var(--lilac); color: var(--ink); }
.testimonial-section { padding: 125px 0 138px; }
.testimonial-grid { display: grid; grid-template-columns: 1fr 2.25fr; gap: 10%; }
.testimonial-label { display: flex; justify-content: space-between; flex-direction: column; color: rgba(17,17,15,.55); font-family: 'DM Mono', monospace; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.testimonial-mark { opacity: .65; }
.testimonial-mark .brand-mark { color: var(--ink); }
.testimonial-quote { position: relative; }
.quote-mark { position: absolute; top: -35px; left: -3px; color: rgba(17,17,15,.14); font-family: Georgia, serif; font-size: 110px; line-height: 1; }
blockquote { position: relative; max-width: 870px; margin: 0; font-size: clamp(35px, 5vw, 70px); line-height: .99; letter-spacing: -.075em; }
.quote-person { display: flex; align-items: center; gap: 13px; margin-top: 46px; }
.person-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--ink); color: var(--lime); font-family: 'DM Mono', monospace; font-size: 9px; }
.quote-person div:last-child { display: flex; flex-direction: column; gap: 3px; }
.quote-person strong { font-size: 12px; font-weight: 600; }
.quote-person span { color: rgba(17,17,15,.56); font-size: 11px; }

.quote-section { padding: 145px 0 135px; }
.quote-heading { display: grid; grid-template-columns: 1fr .9fr; align-items: end; gap: 25px; }
.quote-heading .eyebrow { grid-column: 1 / -1; }
.quote-heading p { max-width: 300px; color: var(--muted); font-size: 13px; line-height: 1.55; margin: 0 0 3px; }
.quote-grid { display: grid; grid-template-columns: 1.45fr .9fr; gap: 60px; align-items: start; margin-top: 70px; }
.quote-form { display: flex; flex-direction: column; }
.quote-step { padding: 30px 0; border-top: 1px solid var(--line); }
.quote-step:last-child { border-bottom: 1px solid var(--line); }
.quote-step-head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 22px; flex-wrap: wrap; }
.quote-step-head > span { font-family: 'DM Mono', monospace; font-size: 10px; color: var(--muted); letter-spacing: .12em; }
.quote-step-head h3 { margin: 0; font-size: 22px; font-weight: 500; letter-spacing: -.04em; }
.quote-step-head small { margin-left: auto; font-family: 'DM Mono', monospace; font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .12em; }
.quote-pick-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.quote-pick { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 22px 18px 18px; background: rgba(255,255,255,.25); border: 1px solid var(--line); color: var(--ink); text-align: left; transition: background .25s ease, border-color .25s ease, transform .25s ease; }
.quote-pick:hover { background: rgba(255,255,255,.6); transform: translateY(-3px); }
.quote-pick strong { font-size: 16px; font-weight: 500; letter-spacing: -.02em; }
.quote-pick small { font-family: 'DM Mono', monospace; font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
.quote-pick-check { position: absolute; top: 16px; right: 16px; width: 22px; height: 22px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; color: transparent; transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease; }
.quote-pick.is-active { background: var(--lime); border-color: var(--lime); }
.quote-pick.is-active .quote-pick-check { background: var(--ink); border-color: var(--ink); color: var(--lime); transform: scale(1.05); }
.quote-pick.is-active small { color: rgba(17,17,15,.6); }
.quote-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.quote-pill { padding: 11px 16px; background: transparent; border: 1px solid var(--line); color: var(--ink); font-size: 12px; font-weight: 500; border-radius: 999px; transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease; }
.quote-pill:hover { background: rgba(255,255,255,.6); transform: translateY(-2px); }
.quote-pill.is-active { background: var(--ink); color: var(--lime); border-color: var(--ink); }
.quote-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.quote-fields label { display: flex; flex-direction: column; gap: 8px; }
.quote-fields label span { font-family: 'DM Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.quote-fields input, .quote-fields textarea { font: inherit; font-size: 13px; padding: 13px 14px; background: rgba(255,255,255,.4); border: 1px solid var(--line); color: var(--ink); outline: 0; resize: vertical; transition: border-color .25s ease, background .25s ease; font-family: inherit; }
.quote-fields input:focus, .quote-fields textarea:focus { border-color: var(--ink); background: #fff; }
.quote-fields input::placeholder, .quote-fields textarea::placeholder { color: rgba(17,17,15,.35); }
.quote-textarea-label { grid-column: 1 / -1; }

.quote-summary { position: sticky; top: 100px; }
.quote-ticket { position: relative; padding: 26px 24px 24px; background: var(--ink); color: #fff; overflow: hidden; }
.quote-ticket::before { content: ''; position: absolute; top: -8px; left: -8px; right: -8px; height: 16px; background: radial-gradient(circle at 8px 8px, var(--paper) 5px, transparent 6px) repeat-x; background-size: 16px 16px; }
.quote-ticket-top { display: flex; justify-content: space-between; align-items: center; color: rgba(255,255,255,.55); padding: 10px 0 18px; border-bottom: 1px dashed rgba(255,255,255,.22); }
.quote-ticket-top .eyebrow { color: rgba(255,255,255,.55); }
.quote-ticket-top .brand-mark { color: rgba(255,255,255,.85); }
.quote-ticket-services { padding: 18px 0 14px; display: flex; flex-direction: column; gap: 10px; min-height: 44px; }
.quote-ticket-line { display: flex; justify-content: space-between; align-items: center; font-size: 13px; animation: ticketLineIn .35s ease both; }
.quote-ticket-line > span { color: #fff; letter-spacing: -.01em; }
.quote-ticket-remove { background: transparent; border: 1px solid rgba(255,255,255,.25); color: rgba(255,255,255,.6); width: 22px; height: 22px; border-radius: 50%; line-height: 1; font-size: 14px; display: grid; place-items: center; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.quote-ticket-remove:hover { background: var(--lime); color: var(--ink); border-color: var(--lime); transform: rotate(90deg); }
.quote-ticket-meta { padding: 14px 0; border-top: 1px dashed rgba(255,255,255,.22); border-bottom: 1px dashed rgba(255,255,255,.22); display: flex; flex-direction: column; gap: 8px; }
.quote-ticket-meta > div { display: flex; justify-content: space-between; align-items: center; font-size: 12px; }
.quote-ticket-meta span { color: rgba(255,255,255,.5); font-family: 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .1em; font-size: 9px; }
.quote-ticket-meta strong { font-weight: 500; color: #fff; }
.quote-ticket-total { padding: 22px 0 14px; display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
.quote-ticket-total span { color: rgba(255,255,255,.55); font-family: 'DM Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: .12em; max-width: 90px; line-height: 1.4; }
.quote-ticket-total strong { font-size: clamp(22px, 2.6vw, 30px); font-weight: 500; letter-spacing: -.05em; color: var(--lime); text-align: right; line-height: 1; }
.quote-ticket-barcode { height: 26px; margin: 4px -24px 18px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.78) 0 2px, transparent 2px 4px, rgba(255,255,255,.78) 4px 5px, transparent 5px 9px, rgba(255,255,255,.78) 9px 12px, transparent 12px 15px, rgba(255,255,255,.78) 15px 16px, transparent 16px 20px); opacity: .55; }
.quote-ticket-foot { color: rgba(255,255,255,.42); font-size: 10px; line-height: 1.5; padding-bottom: 18px; }
.quote-submit { width: 100%; justify-content: space-between; padding: 14px 18px; font-size: 13px; }
.quote-submit:disabled { opacity: .35; pointer-events: none; filter: saturate(.6); }
.quote-ticket-success { display: flex; flex-direction: column; gap: 6px; padding: 18px 0 4px; border-top: 1px dashed rgba(255,255,255,.22); animation: ticketLineIn .4s ease both; }
.quote-ticket-success > span:first-child { color: var(--lime); }
.quote-ticket-success strong { font-size: 18px; font-weight: 500; letter-spacing: -.03em; }
.quote-ticket-success span { color: rgba(255,255,255,.6); font-size: 12px; line-height: 1.5; }
.quote-mobile-bar { display: none; }

@keyframes ticketLineIn { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: translateX(0); } }

.faq-section { padding: 50px 0 160px; }
.faq-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 14%; }
.faq-heading h2 { margin-top: 20px; }
.faq-heading p { max-width: 240px; color: var(--muted); font-size: 13px; line-height: 1.55; margin: 27px 0 28px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 25px; border: 0; background: transparent; color: var(--ink); padding: 22px 0; text-align: left; font-size: 17px; letter-spacing: -.03em; }
.faq-icon { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; transition: transform .3s ease, background .3s ease; }
.faq-item-open .faq-icon { transform: rotate(45deg); background: var(--lime); border-color: var(--lime); }
.faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s ease; }
.faq-answer p { overflow: hidden; max-width: 570px; color: var(--muted); font-size: 13px; line-height: 1.6; margin: 0; }
.faq-item-open .faq-answer { grid-template-rows: 1fr; }
.faq-item-open .faq-answer p { padding: 0 55px 23px 0; }

.contact-section { position: relative; isolation: isolate; overflow: hidden; background: #11110f; color: #fff; padding: 145px 0 157px; }
.contact-section::before { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(130deg, rgba(216,244,81,.06), transparent 38%, rgba(197,181,255,.13)); }
.contact-glow { position: absolute; z-index: -1; width: 430px; height: 430px; border-radius: 50%; filter: blur(70px); opacity: .23; animation: floatGlow 8s ease-in-out infinite alternate; }
.contact-glow-one { background: var(--lime); top: -180px; left: 13%; }
.contact-glow-two { background: var(--lilac); right: -150px; bottom: -230px; animation-delay: -3s; }
.contact-inner { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 13%; }
.contact-heading h2 { margin-top: 21px; }
.contact-heading p { max-width: 330px; color: rgba(255,255,255,.57); font-size: 14px; line-height: 1.6; margin: 29px 0 0; }
.contact-form-wrap { align-self: end; }
.contact-form { padding-top: 40px; border-top: 1px solid rgba(255,255,255,.28); }
.contact-form label { display: block; margin-bottom: 16px; color: rgba(255,255,255,.65); font-family: 'DM Mono', monospace; font-size: 10px; text-transform: uppercase; letter-spacing: .11em; }
.form-row { display: flex; align-items: stretch; gap: 10px; }
.form-row input { min-width: 0; flex: 1; height: 48px; border: 1px solid rgba(255,255,255,.25); border-radius: 0; outline: 0; background: rgba(255,255,255,.05); color: #fff; padding: 0 15px; font-size: 13px; transition: border .25s ease, background .25s ease; }
.form-row input::placeholder { color: rgba(255,255,255,.35); }
.form-row input:focus { border-color: var(--lime); background: rgba(255,255,255,.08); }
.form-row .button { flex: 0 0 auto; }
.form-footnote { display: block; color: rgba(255,255,255,.35); margin-top: 16px; font-size: 9px; }
.form-success { border-top: 1px solid rgba(255,255,255,.28); padding-top: 40px; }
.success-icon { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 22px; border-radius: 50%; color: var(--ink); background: var(--lime); }
.form-success strong { display: block; font-size: 25px; font-weight: 500; letter-spacing: -.05em; }
.form-success p { color: rgba(255,255,255,.58); font-size: 13px; line-height: 1.5; }

.site-footer { background: #11110f; color: #fff; border-top: 1px solid rgba(255,255,255,.15); padding: 62px 0 30px; }
.footer-main { display: flex; justify-content: space-between; gap: 60px; padding-bottom: 82px; }
.footer-brand p { color: rgba(255,255,255,.5); font-size: 13px; line-height: 1.4; margin: 30px 0 0; }
.footer-logo .brand-mark { color: #fff; }
.footer-logo { color: #fff; }
.footer-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 75px; min-width: 480px; }
.footer-links > div { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; font-size: 12px; color: rgba(255,255,255,.65); }
.footer-links a { transition: color .2s ease; }
.footer-links a:hover { color: var(--lime); }
.footer-label { color: rgba(255,255,255,.35); margin-bottom: 7px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-top: 1px solid rgba(255,255,255,.15); padding-top: 22px; color: rgba(255,255,255,.4); font-family: 'DM Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.footer-bottom button { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.66); background: transparent; border: 0; text-transform: uppercase; font-family: inherit; font-size: inherit; letter-spacing: inherit; }
.footer-bottom button:hover { color: var(--lime); }
.footer-heart { color: var(--lime); }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay), transform .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.hero .reveal { transform: translateY(22px); }
.hero .reveal.is-visible { transform: translateY(0); }

@keyframes heroZoom { from { transform: scale(1.04); } to { transform: scale(1.12); } }
@keyframes scrollLine { 0% { transform: translateX(-100%); } 50%, 100% { transform: translateX(100%); } }
@keyframes orbit { from { transform: rotate(0deg) scaleX(1.65); } to { transform: rotate(360deg) scaleX(1.65); } }
@keyframes floatGlow { from { transform: translate3d(-20px, 10px, 0) scale(.9); } to { transform: translate3d(35px, -30px, 0) scale(1.15); } }

@media (max-width: 900px) {
  .site-nav { padding: 0 24px; }
  .nav-links, .nav-cta { display: none; }
  .menu-toggle { display: block; }
  .mobile-menu { position: fixed; z-index: 45; inset: 70px 0 auto; display: flex; flex-direction: column; padding: 15px 24px 28px; color: var(--ink); background: rgba(242,241,235,.97); border-bottom: 1px solid var(--line); transform: translateY(-120%); transition: transform .45s cubic-bezier(.2,.7,.2,1); backdrop-filter: blur(18px); }
  .mobile-menu-open { transform: translateY(0); }
  .mobile-menu a, .mobile-menu button { display: flex; align-items: center; justify-content: space-between; padding: 15px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 20px; letter-spacing: -.04em; background: transparent; border-left: 0; border-right: 0; border-top: 0; text-align: left; }
  .mobile-menu button { color: #4a5e14; border-bottom: 0; font-weight: 600; }
  .hero-content { padding-bottom: 15vh; }
  .hero-bottom { align-items: flex-start; flex-direction: column; }
  .proof-inner { align-items: flex-start; flex-direction: column; padding-top: 30px; padding-bottom: 30px; gap: 25px; }
  .proof-logos { flex-wrap: wrap; width: 100%; gap: 18px 25px; }
  .intro-grid, .process-grid, .benefit-grid, .testimonial-grid, .faq-grid, .contact-inner { grid-template-columns: 1fr; gap: 65px; }
  .intro-stamp { display: none; }
  .section-index { order: -1; }
  .intro-section { padding: 100px 0 90px; }
  .services-section { padding-bottom: 100px; }
  .service-info { display: block; }
  .service-info p { margin-top: 8px; }
  .work-section, .benefit-section { padding: 100px 0; }
  .process-section, .quote-section { padding: 100px 0; }
  .testimonial-section { padding: 95px 0 105px; }
  .testimonial-label { flex-direction: row; align-items: flex-start; }
  .project-grid { grid-template-columns: 1fr; gap: 45px; }
  .project-tall { grid-row: auto; }
  .project-tall .project-visual { height: min(620px, 105vw); }
  .project-wide .project-visual { height: min(370px, 62vw); }
  .quote-heading { display: block; }
  .quote-heading p { margin-top: 25px; }
  .quote-grid { grid-template-columns: 1fr; gap: 36px; margin-top: 50px; }
  .quote-summary { position: static; order: 2; }
  .quote-form { order: 1; }
  .quote-pick-grid { grid-template-columns: 1fr; }
  .quote-fields { grid-template-columns: 1fr; }
  .quote-mobile-bar { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 18px; background: rgba(17,17,15,.96); color: #fff; border-top: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(14px); transform: translateY(110%); opacity: 0; pointer-events: none; transition: transform .4s cubic-bezier(.2,.7,.2,1), opacity .3s ease; }
  .quote-mobile-bar.is-visible { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .quote-mobile-bar span { display: flex; flex-direction: column; gap: 2px; }
  .quote-mobile-bar small { font-family: 'DM Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: .12em; color: rgba(255,255,255,.55); }
  .quote-mobile-bar strong { font-size: 15px; font-weight: 500; letter-spacing: -.03em; color: var(--lime); }
  .quote-mobile-bar .button { padding: 10px 14px; }
  body.has-quote-bar { padding-bottom: 72px; }
  .faq-section { padding-bottom: 100px; }
  .footer-main { flex-direction: column; gap: 58px; padding-bottom: 60px; }
  .footer-links { min-width: 0; width: 100%; gap: 28px; }
  .ambient-cursor { display: none; }
}

@media (max-width: 560px) {
  .page-width { width: min(100% - 36px, 1240px); }
  .site-nav { height: 70px; padding: 0 18px; }
  .site-nav-scrolled { height: 64px; }
  .mobile-menu { inset: 64px 0 auto; padding-left: 18px; padding-right: 18px; }
  .hero { min-height: 720px; }
  .hero-content { padding-bottom: 110px; }
  .hero h1 { font-size: clamp(54px, 15vw, 78px); }
  .hero-kicker { max-width: 260px; line-height: 1.5; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .hero-wordmark { font-size: 24vw; bottom: 20px; }
  .hero-scroll { display: none; }
  .proof-logos { display: grid; grid-template-columns: 1fr 1fr; }
  .proof-logos > span { font-size: 15px; }
  h2 { font-size: clamp(42px, 13vw, 63px); }
  .section-heading, .work-header { align-items: flex-start; flex-direction: column; gap: 25px; }
  .section-heading p, .work-header p { max-width: 300px; }
  .service-row { grid-template-columns: 34px 45px 1fr 18px; gap: 11px; min-height: 135px; }
  .service-row:hover { padding-left: 8px; padding-right: 8px; }
  .service-icon { width: 42px; height: 42px; }
  .service-info h3 { font-size: 22px; }
  .service-info p { font-size: 11px; line-height: 1.35; }
  .project-tall .project-visual { height: 116vw; }
  .project-wide .project-visual { height: 64vw; }
  .project-meta { align-items: flex-start; flex-direction: column; gap: 6px; }
  .benefit-visual { min-height: 380px; }
  .benefit-ring { width: 290px; height: 290px; }
  .benefit-center span { font-size: 27px; }
  .quote-section { padding: 100px 0; }
  .quote-step-head h3 { font-size: 19px; }
  .quote-ticket::before { left: -4px; right: -4px; }
  .quote-mobile-bar { padding: 10px 14px; }
  .faq-question { font-size: 15px; }
  .faq-item-open .faq-answer p { padding-right: 0; }
  .form-row { align-items: stretch; flex-direction: column; }
  .form-row input, .form-row .button { width: 100%; }
  .footer-links { grid-template-columns: 1fr 1fr; }
  .footer-links > div:last-child { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Service-selection quote experience, no public prices */
.quote-service-groups { display: flex; flex-direction: column; gap: 30px; }
.service-choice-group { display: flex; flex-direction: column; gap: 14px; }
.choice-group-heading { display: flex; gap: 20px; align-items: start; justify-content: space-between; }
.choice-group-heading h4 { font-size: 16px; font-weight: 600; letter-spacing: -.035em; }
.choice-group-heading p { max-width: 440px; margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.choice-group-count { flex: 0 0 auto; padding-top: 3px; color: var(--muted); font-family: 'DM Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.quote-pick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.quote-pick { min-height: 108px; padding-right: 48px; }
.quote-pick strong { line-height: 1.18; font-size: 14px; }
.quote-pick small { line-height: 1.5; }
.quote-pick-package { width: 100%; min-height: 118px; background: rgba(197,181,255,.15); }
.quote-package-copy { display: flex; flex-direction: column; gap: 11px; }
.quote-pick-package small { text-transform: none; font-size: 10px; line-height: 1.7; letter-spacing: .02em; }
.quote-selection-count { padding: 17px 0 3px; color: var(--lime); font-family: 'DM Mono', monospace; font-size: 10px; text-transform: uppercase; letter-spacing: .11em; }
.quote-empty { color: rgba(255,255,255,.52); font-size: 12px; line-height: 1.6; }
.quote-ticket-services { max-height: 340px; overflow-y: auto; }
.quote-ticket-line { gap: 10px; align-items: flex-start; }
.quote-ticket-line > span { line-height: 1.4; }
.quote-ticket-remove { flex: 0 0 auto; }
.quote-ticket-total strong { text-align: right; font-size: 29px; }
.quote-channels { display: flex; flex-direction: column; gap: 10px; margin-top: 15px; padding-top: 17px; border-top: 1px dashed rgba(255,255,255,.25); }
.quote-channels[hidden] { display: none; }
.quote-channels > p { color: rgba(255,255,255,.74); font-size: 12px; line-height: 1.5; margin-bottom: 3px; }
.quote-channels .button { width: 100%; justify-content: space-between; padding: 12px 15px; min-height: 44px; }
.quote-channel-email { background: #f2f1eb; color: #11110f; }
.quote-channel-whatsapp { background: #225f45; color: white; }
.quote-channel-whatsapp[aria-disabled="true"] { opacity: .42; cursor: not-allowed; pointer-events: none; }
.quote-copy { color: var(--lime); text-align: left; padding: 7px 0; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.quote-delivery-note { color: rgba(255,255,255,.5); font-size: 10px; line-height: 1.5; }
.contact-form .contact-quote-button { color: #fff; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.3); }
.contact-form .contact-email-button { flex: none; }
@media (max-width: 1120px) and (min-width: 901px) { .quote-grid { gap: 24px; grid-template-columns: 1.35fr .95fr; } }
@media (max-width: 900px) { .quote-pick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) {
 .quote-pick-grid { grid-template-columns: 1fr; }
 .quote-pick { min-height: 82px; }
 .choice-group-count { display: none; }
 .quote-ticket-services { max-height: none; }
 .contact-form .form-row { flex-direction: column; }
 .contact-form .form-row .button { width: 100%; }
}
