PageSourceSearch

https://www.stephencarballo.com/tattoo-reviews

html stephencarballo.com collected 2026-10-09 23:24:12 UTC 95,690 bytes, 392 lines download raw bytes

1<!DOCTYPE html><html lang="en"> <head>
1<script>(function(w,i,g){w[g]=w[g]||[];if(typeof w[g].push=='function')w[g].push(i)})
2(window,'GTM-M7QXQ8J6','google_tags_first_party');</script>
2<script>(function(w,d,s,l){w[l]=w[l]||[];(function(){w[l].push(arguments);})('set', 'developer_id.dYzg1YT', true);
3		w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
4		j=d.createElement(s);j.async=true;j.src='/wybf/';
5		f.parentNode.insertBefore(j,f);
6		})(window,document,'script','dataLayer');</script>
6<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="icon" type="image/png" href="/images/branding/stephen-carballo-tattoos-logo.png"><link rel="preload" as="font" type="font/woff2" href="/fonts/inter-variable.woff2" crossorigin><title>Tattoo Reviews, Stephen Carballo · 4.9-Star Fine-Line Artist</title><meta name="description" content="31 Google reviews at a 4.9-star average for fine-line and micro-realism tattoos by Stephen Carballo."><meta name="robots" content="index, follow"><link rel="canonical" href="https://stephencarballo.com/tattoo-reviews"><meta property="og:type" content="website"><meta property="og:title" content="Tattoo Reviews, Stephen Carballo · 4.9-Star Fine-Line Artist"><meta property="og:description" content="31 Google reviews at a 4.9-star average for fine-line and micro-realism tattoos by Stephen Carballo."><meta property="og:image" content="https://stephencarballo.com/images/branding/og-default.jpg"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:url" content="https://stephencarballo.com/tattoo-reviews"><meta property="og:site_name" content="Stephen Carballo"><meta property="og:locale" content="en_US"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Tattoo Reviews, Stephen Carballo · 4.9-Star Fine-Line Artist"><meta name="twitter:description" content="31 Google reviews at a 4.9-star average for fine-line and micro-realism tattoos by Stephen Carballo."><meta name="twitter:image" content="https://stephencarballo.com/images/branding/og-default.jpg"><meta name="author" content="Stephen Carballo"><meta name="geo.region" content="US-CA"><meta name="geo.placename" content="Escondido">
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://stephencarballo.com"},{"@type":"ListItem","position":2,"name":"Reviews","item":"https://stephencarballo.com/tattoo-reviews"}]}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Eric M."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Stephen is amazing. I’ve had him do all my work and every time it’s better than I could have imagined. His line work is incredible and he has a really cool esthetic. I’ve gotten a lot of compliments on the work, but most importantly I’m super happy when I leave. 10/10","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Yves Y."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Stephen helped bring my ideas for my first tattoo to life. He was patient with me as we talked through some reference images and ways to tweak the design to make it my own. The tattoo came just as I hoped and I'm very happy with the outcome. Looking forward to working with Stephen again on future tattoos!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Sara T."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"the tattoo speaks for itself","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Devon S."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Had such a great experience! Super easy to work with, insanely talented artist, and knew exactly how to put what I wanted into my piece. 10/10 will come back.","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Kate V."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"I was searching for a tattoo artist to do a very small intricate tattoo and I’m glad I found Stephen. The whole process was very easy and he’s fun to talk to while you’re getting your ink!  Love my tattoo thanks Stephen.","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Emma B."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Steven is awesome! I changed my design day of and it was no problem. He did an awesome job, got all the details which was super impressive considering how small I wanted it. Painless and I love my tattoo so much. Would definitely come back.","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Jack R."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Super smooth from design to tattoo. Steven is an easy going guy makes the time fly and his art work speaks for itself would recommend to anyone.","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Emily B."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Loved his energy and flexibility with figuring out what/where you want your work. My designs turned out better than what I had brought to him!!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"jaiden B."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"absolutely killed it everything I wanted","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Cowchicka K."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Stepen Carballo Takes such care to detail on his fine line tattoos\nHe didnsuvh a badass job on my bronc tattoo!  Can't wait to get another fine line with him!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Gina N."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"I had been searching for a fine line tattoo artist in the Prescott area but couldn’t find anyone whose work I really loved. An ad popped up for Stephan, who was traveling through town. His portfolio was exactly what I had been looking for.\n\nStephan was professional, organized, and brought my vision to life perfectly. The script turned out exactly how I imagined it. If you’ve been looking for a talented fine line artist, he’s your guy!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"paul H."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Steve is the best tattoo artist I've been to. He communicates well and has a great eye for making the art I like fit where I want. His decision-making and execution are always high quality (which I can't say for others I've been to) so it's easy to trust him. Can't recommend him highly enough","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"david C."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Amazing work. Fantastic communication and care. Will be visiting Stephen again and again. Thanks man, for the bowl of brains!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"McKenzie M."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"I’ve gotten 2 pieces done by Stephen this past year and I get so many compliments on the fine lines and shading he does. He’s a serious artist and kills it every time, and the vibe is super calm and chill in his shop. I can’t wait to get more tattoos from him!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Taylor H."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"I was lucky enough to get a slot with Stephen while he was in Frisco, CO and im so stoked on my new tat. He absolutely killed it, but it’s no surprise. If you’re familiar with Stephen’s work, then you already know he’s one of the best fine line artists out there. He’s also just a really down to earth dude. He took his time and you can tell how passionate he is about his craft. It shows. A true artist indeed. Can’t recommend enough!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Sincerity M."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"craft to detail and cares for customer satisfaction!  great job!  love the tattoos!  thanks Stephen!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"morgan B."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Most amazing tattoo experience. Stephen is very articulate and cares deeply about what he is doing. I am absolutely in love with my tattoos he did for me, and I can’t wait to get more from him in the future.","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Emily C."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Stephen is such an incredible artist and person! I was so excited to get an appointment with him when he came through Flagstaff and I couldn’t be happier with my tattoo! I can’t recommend him enough!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Cindy J."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Super talented artist!  He took my idea and made it even better.  Really nice guy and there was almost no pain.  I really appreciate his professionalism too.","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Adam V."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Steve’s the best tattoo artist in Los Angeles. My fineline tattoo healed perfectly. He was patient, focused and fun to work with. I highly recommend him to anyone looking for some fresh ink.","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Robert G."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Best in the biz, hands down!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Topanga J."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"I have been looking for a single needle tattoo for the longest time in Los Angeles! Finally found the best single needle in the area, he crushed my Borat tattoo!","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"Matt M."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"Exquisite detail, fair price, and a great dude.  I can’t imagine trusting anyone else with my body.","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<script type="application/ld+json">{"@context":"https://schema.org","@type":"Review","author":{"@type":"Person","name":"olina S."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5},"reviewBody":"My tattoo turned out amazing, the design is so unique, and I get compliments all the time. The quality is top-notch. I’m so glad I didn’t go the cheap route and chose this artist instead. Hands down the best fine line work in Los Angeles.","itemReviewed":{"@id":"https://stephencarballo.com/#business"}}</script>
6<!-- Google Tag Manager -->
6<script>(function(){const gtmId = "GTM-M7QXQ8J6";
7
8    (function (w, d, s, l, i) {
9      w[l] = w[l] || [];
10      w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
11      var f = d.getElementsByTagName(s)[0],
12        j = d.createElement(s),
13        dl = l != 'dataLayer' ? '&l=' + l : '';
14      j.async = true;
15      j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
16      f.parentNode.insertBefore(j, f);
17    })(window, document, 'script', 'dataLayer', gtmId);
18  })();</script>
18<script>(function(){const posthogKey = "phc_rd3oG3LEUNQvCDpPSkpnCsqmuRrGuJKwEKr7AKwcxhtD";
19
20      !function(t,e){var o,n,p,r;e.__SV||(window.posthog && window.posthog.__loaded)||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}p||((p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",p.onerror=function(){p=null},(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r));var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="No qo jo init ol ll nl sl vl wa al fl el capture getExtension ul Do calculateEventProperties bl register register_once register_for_session unregister unregister_for_session xl rl wl getFeatureFlag getFeatureFlagPayload getFeatureFlagResult getAllFeatureFlags isFeatureEnabled reloadFeatureFlags updateFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey displaySurvey cancelPendingSurvey canRenderSurvey canRenderSurveyAsync Cl identify setPersonProperties unsetPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset Tl shutdown setIdentity clearIdentity get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException addExceptionStep captureLog startExceptionAutocapture stopExceptionAutocapture loadToolbar get_property getSessionProperty kl ml createPersonProfile setInternalOrTestUser Sl Bo Ho opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing get_explicit_consent_status is_capturing clear_opt_in_out_capturing pl debug ka En getPageViewId captureTraceFeedback captureTraceMetric Ko".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
21      posthog.init(posthogKey, {
22        api_host: 'https://us.i.posthog.com',
23        defaults: '2026-05-30',
24        person_profiles: 'identified_only',
25      });
26    })();</script>
26<script>
27    (function () {
28      try {
29        var KEY = 'sc_attribution_v1';
30        var TTL = 90 * 24 * 60 * 60 * 1000;
31        var CLICK = ['gclid', 'gbraid', 'wbraid', 'fbclid', 'msclkid', 'ttclid'];
32        var UTM = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
33        var params = new URL(window.location.href).searchParams;
34        var fresh = {};
35        var has = false;
36        [].concat(CLICK, UTM).forEach(function (k) {
37          var v = params.get(k);
38          if (v) { fresh[k] = v; has = true; }
39        });
40        var existing = null;
41        try {
42          var raw = localStorage.getItem(KEY);
43          if (raw) {
44            var p = JSON.parse(raw);
45            if (p && p.firstTouch && typeof p.firstTouch.ts === 'number' && (Date.now() - p.firstTouch.ts) <= TTL) {
46              existing = p;
47            } else {
48              localStorage.removeItem(KEY);
49            }
50          }
51        } catch (_) {}
52        if (!has) return;
53        fresh.ts = Date.now();
54        fresh.landing_page = window.location.pathname + window.location.search;
55        fresh.referrer = document.referrer || undefined;
56        var next = {
57          firstTouch: (existing && existing.firstTouch) ? existing.firstTouch : fresh,
58          lastTouch: fresh
59        };
60        try { localStorage.setItem(KEY, JSON.stringify(next)); } catch (_) {}
61      } catch (_) {}
62    })();
63  </script>
63<link rel="stylesheet" href="/_astro/index.3P2tfI3J.css">
64<link rel="stylesheet" href="/_astro/index.Ow-QEvKD.css">
65<style>.section-header[data-astro-cid-smbb6lpu]{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2.5rem}.section-header[data-astro-cid-smbb6lpu].align-center{text-align:center;align-items:center}.section-header[data-astro-cid-smbb6lpu].align-left{text-align:left;align-items:flex-start}.section-eyebrow[data-astro-cid-smbb6lpu]{font-family:var(--font-nav);font-size:var(--type-eyebrow);font-weight:600;letter-spacing:var(--letter-eyebrow);text-transform:uppercase;margin:0;line-height:1.2}.eyebrow-copper[data-astro-cid-smbb6lpu]{color:var(--brand-copper)}.eyebrow-sage[data-astro-cid-smbb6lpu]{color:var(--brand-sage)}.section-title[data-astro-cid-smbb6lpu]{font-family:var(--font-display);font-weight:400;margin:0;color:inherit;font-size:var(--type-h2);line-height:var(--lh-heading);letter-spacing:var(--letter-tight)}.size-hero[data-astro-cid-smbb6lpu] .section-title[data-astro-cid-smbb6lpu]{font-size:var(--type-display);line-height:var(--lh-tight)}.size-page[data-astro-cid-smbb6lpu] .section-title[data-astro-cid-smbb6lpu]{font-size:var(--type-h1);line-height:var(--lh-tight)}.size-section[data-astro-cid-smbb6lpu] .section-title[data-astro-cid-smbb6lpu]{font-size:var(--type-h2)}.size-sub[data-astro-cid-smbb6lpu] .section-title[data-astro-cid-smbb6lpu]{font-size:var(--type-h3)}.section-deck[data-astro-cid-smbb6lpu]{font-family:var(--font-body);font-size:var(--type-deck);line-height:var(--lh-body);color:var(--brand-stone);margin:.25rem 0 0;max-width:56ch}.align-center[data-astro-cid-smbb6lpu] .section-deck[data-astro-cid-smbb6lpu]{text-align:center}
66.faq-section[data-astro-cid-h4zmggu3]{padding:5rem 2rem;background:var(--brand-paper)}.faq-inner[data-astro-cid-h4zmggu3]{max-width:var(--max-narrow);margin:0 auto}.faq-list[data-astro-cid-h4zmggu3]{display:flex;flex-direction:column;border-top:1px solid color-mix(in srgb,var(--brand-stone) 20%,transparent)}.faq-item[data-astro-cid-h4zmggu3]{border-bottom:1px solid color-mix(in srgb,var(--brand-stone) 20%,transparent)}.faq-question[data-astro-cid-h4zmggu3]{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;border:none;cursor:pointer;padding:1.25rem 0;text-align:left;gap:1rem;font-family:var(--font-body);font-size:1rem;color:var(--brand-ink);font-weight:500}.faq-question[data-astro-cid-h4zmggu3]:hover{color:var(--brand-copper)}.faq-icon[data-astro-cid-h4zmggu3]{flex-shrink:0;transition:transform .2s;color:var(--brand-stone)}.faq-item[data-astro-cid-h4zmggu3].open .faq-icon[data-astro-cid-h4zmggu3]{transform:rotate(180deg)}.faq-answer[data-astro-cid-h4zmggu3]{display:none;padding:0 0 1.25rem}.faq-item[data-astro-cid-h4zmggu3].open .faq-answer[data-astro-cid-h4zmggu3]{display:block}.faq-answer[data-astro-cid-h4zmggu3] p[data-astro-cid-h4zmggu3]{font-family:var(--font-body);font-size:.95rem;line-height:1.7;color:var(--brand-stone);margin:0}
67.starfield-pattern[data-astro-cid-oh65jl74]{position:absolute;inset:0;pointer-events:none;opacity:var(--starOpacity);z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='10' cy='10' r='0.6' fill='%23f7f3ec' opacity='0.55'/%3E%3Ccircle cx='50' cy='40' r='0.9' fill='%23f7f3ec' opacity='0.7'/%3E%3Ccircle cx='80' cy='20' r='0.4' fill='%23f7f3ec' opacity='0.4'/%3E%3Ccircle cx='30' cy='80' r='0.55' fill='%23f7f3ec' opacity='0.6'/%3E%3Ccircle cx='90' cy='70' r='0.7' fill='%23f7f3ec' opacity='0.5'/%3E%3Ccircle cx='15' cy='55' r='0.3' fill='%23f7f3ec' opacity='0.35'/%3E%3Ccircle cx='65' cy='85' r='0.45' fill='%23f7f3ec' opacity='0.5'/%3E%3Ccircle cx='45' cy='15' r='0.35' fill='%23f7f3ec' opacity='0.4'/%3E%3C/svg%3E");background-size:var(--tileSize);background-repeat:repeat}.cta-band[data-astro-cid-m7xpifmb]{position:relative;padding:7rem 2rem 9rem;background:var(--brand-deep-space);overflow:hidden;text-align:center}.starfield-canvas[data-astro-cid-m7xpifmb]{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.7}.pyramid-silhouette[data-astro-cid-m7xpifmb]{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:0;border-left:clamp(180px,28vw,280px) solid transparent;border-right:clamp(180px,28vw,280px) solid transparent;border-bottom:clamp(120px,18vw,200px) solid color-mix(in srgb,var(--brand-ink) 92%,black);filter:drop-shadow(0 -16px 40px rgba(180,108,72,.22));pointer-events:none;z-index:1}.cta-band-content[data-astro-cid-m7xpifmb]{position:relative;z-index:2;max-width:var(--max-narrow);margin:0 auto -2rem;display:flex;flex-direction:column;align-items:center;gap:2rem}.cta-band-content[data-astro-cid-m7xpifmb] .section-title{color:var(--brand-paper);font-size:clamp(1.75rem,4vw,2.75rem)}.cta-band-content[data-astro-cid-m7xpifmb] .section-deck{color:color-mix(in srgb,var(--brand-paper) 80%,transparent);max-width:52ch}.cta-band-urgency[data-astro-cid-m7xpifmb]{font-family:var(--font-nav);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-copper);margin:0}.btn-cosmic[data-astro-cid-m7xpifmb]{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2.5rem;background:var(--brand-ink);color:var(--brand-paper);border:2px solid var(--brand-ink);font-family:var(--font-nav);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:background .2s,border-color .2s,color .2s}.btn-cosmic[data-astro-cid-m7xpifmb]:hover{background:var(--brand-copper);border-color:var(--brand-copper)}.cta-band-sms-link[data-astro-cid-m7xpifmb]{font-family:var(--font-nav);font-size:.72rem;letter-spacing:.06em;color:color-mix(in srgb,var(--brand-paper) 55%,transparent);text-decoration:none;transition:color .2s}.cta-band-sms-link[data-astro-cid-m7xpifmb]:hover{color:var(--brand-copper)}.cta-stats-row[data-astro-cid-m7xpifmb]{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem}.cta-stats-row[data-astro-cid-m7xpifmb] li[data-astro-cid-m7xpifmb]{display:inline-flex;align-items:baseline;font-family:var(--font-nav);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--brand-paper) 70%,transparent);white-space:nowrap}.cta-stats-row[data-astro-cid-m7xpifmb] li[data-astro-cid-m7xpifmb]:before{content:"⟁ ";color:color-mix(in srgb,var(--brand-copper) 65%,transparent);font-size:.8rem;margin-right:.5rem;letter-spacing:0}.cta-stats-row[data-astro-cid-m7xpifmb] li[data-astro-cid-m7xpifmb]:first-child:before{content:"";margin-right:0}
68</style>
69<link rel="stylesheet" href="/_astro/index.Cvjo2aC7.css">
70<style>.reviews-hero[data-astro-cid-d4zahlxa]{padding:6rem 2rem 3rem;background:var(--brand-paper)}.reviews-hero-inner[data-astro-cid-d4zahlxa]{max-width:var(--max-content);margin:0 auto}.reviews-elfsight[data-astro-cid-d4zahlxa]{padding:2rem 2rem 5rem;background:var(--brand-paper)}.reviews-elfsight-inner[data-astro-cid-d4zahlxa]{max-width:var(--max-narrow);margin:0 auto;text-align:center}.reviews-elfsight-eyebrow[data-astro-cid-d4zahlxa]{font-family:var(--font-nav);font-size:.66rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--brand-stone);margin:0 0 1rem}.elfsight-app-placeholder[data-astro-cid-d4zahlxa]{padding:2.5rem 2rem;border:1px dashed color-mix(in srgb,var(--brand-stone) 25%,transparent);border-radius:2px}.elfsight-note[data-astro-cid-d4zahlxa]{font-family:var(--font-body);font-size:.95rem;color:var(--brand-stone);margin:0}.elfsight-note[data-astro-cid-d4zahlxa] a[data-astro-cid-d4zahlxa]{color:var(--brand-copper);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--brand-copper) 35%,transparent)}
71.noise-overlay[data-astro-cid-75hzplo6]{position:absolute;inset:0;pointer-events:none;opacity:var(--noiseOpacity);
71mix-blend-mode:var(--mixBlend);z-index:0;overflow:hidden}.noise-overlay-svg[data-astro-cid-75hzplo6]{width:100%;height:100%;display:block}
72</style>
72<script type="module" src="/_astro/hoisted.D7wf1e6F.js"></script>
72</head> <body> <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, line 72
72 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
72GTM-M7QXQ8J6
vendor: 84 bytes, line 72
72" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>  
72<script>
73  window.dataLayer = window.dataLayer || [];
74  document.addEventListener('click', function (e) {
75    var el = e.target.closest('a, button');
76    if (!el) return;
77    var href = el.getAttribute('href') || '';
78    var text = (el.textContent || '').trim().toLowerCase();
79    var page = window.location.pathname;
80    var loc = el.closest('.msb') ? 'sticky_bar'
81      : el.closest('.header') ? 'header'
82      : el.closest('.hero') ? 'hero'
83      : 'page';
84    var inCommsDrawer = !!el.closest('[data-comms-drawer]');
85    if (el.getAttribute('data-comms-trigger') === 'open') {
86      window.dataLayer.push({ event: 'comms_drawer_open', click_location: loc, page_path: page });
87      return;
88    }
89    if (href.indexOf('tel:') === 0) {
90      window.dataLayer.push({ event: 'call_click', click_location: loc, page_path: page });
91    } else if (href.indexOf('sms:') === 0) {
92      if (inCommsDrawer) {
93        window.dataLayer.push({ event: 'sms_intent_confirmed', click_location: loc, page_path: page });
94      } else {
95        window.dataLayer.push({ event: 'sms_click', click_location: loc, page_path: page });
96      }
97    } else if (href.indexOf('/tattoo-inquiry') !== -1 || text.indexOf('inquir') !== -1) {
98      window.dataLayer.push({ event: 'inquiry_click', click_location: loc, page_path: page });
99    }
100  }, true);
101</script>
101  
101<script src="https://link.msgsndr.com/js/form_embed.js" async></script>
101 <header class="header" id="header" data-astro-cid-3ef6ksr2> <div class="header-inner" data-astro-cid-3ef6ksr2> <nav class="header-nav-left" aria-label="Primary navigation" data-astro-cid-3ef6ksr2>  <a href="/portfolio" data-astro-cid-3ef6ksr2>Portfolio</a> <a href="/about" data-astro-cid-3ef6ksr2>About</a> <a href="/tattoo-reviews" data-astro-cid-3ef6ksr2>Reviews</a> <a href="/contact" data-astro-cid-3ef6ksr2>Contact</a>  </nav> <div class="header-logo" data-astro-cid-3ef6ksr2> <a href="/" aria-label="Stephen Carballo, home" data-astro-cid-3ef6ksr2> <picture> <source type="image/avif" srcset="/images/branding/stephen-carballo-tattoos-logo-white-480w.avif 480w, /images/branding/stephen-carballo-tattoos-logo-white-960w.avif 960w, /images/branding/stephen-carballo-tattoos-logo-white-1600w.avif 1024w" sizes="96px"> <source type="image/webp" srcset="/images/branding/stephen-carballo-tattoos-logo-white-480w.webp 480w, /images/branding/stephen-carballo-tattoos-logo-white-960w.webp 960w, /images/branding/stephen-carballo-tattoos-logo-white-1600w.webp 1024w" sizes="96px"> <img src="/images/branding/stephen-carballo-tattoos-logo-white.png" alt="Stephen Carballo" width="96" height="96" loading="eager" decoding="async" fetchpriority="high" class="header-logo-img"> </picture>  <span class="header-wordmark header-wordmark-fallback" data-astro-cid-3ef6ksr2>Stephen Carballo</span> </a> </div> <div class="header-nav-right" data-astro-cid-3ef6ksr2>  <a href="tel:+17604058955" class="header-phone" aria-label="Call Stephen Carballo" data-cta-id="header-nav-phone" data-cta-surface="header-nav" data-astro-cid-3ef6ksr2> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14" aria-hidden="true" data-astro-cid-3ef6ksr2> <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z" data-astro-cid-3ef6ksr2></path> </svg> (760) 405-8955 </a> <a href="/tattoo-inquiry" class="btn btn-primary btn-sm" data-cta-id="header-nav-inquiry" data-cta-surface="header-nav" data-astro-cid-3ef6ksr2>Start Your Tattoo</a>  </div> <button class="header-mobile-menu" id="headerMenuBtn" aria-label="Open menu" aria-expanded="false" data-astro-cid-3ef6ksr2> <span data-astro-cid-3ef6ksr2></span><span data-astro-cid-3ef6ksr2></span><span data-astro-cid-3ef6ksr2></span> </button> </div> </header>   <section class="reviews-hero zone-paper" aria-label="Reviews intro" data-astro-cid-d4zahlxa> <div class="reviews-hero-inner" data-astro-cid-d4zahlxa> <div class="section-header align-center size-section" data-astro-cid-smbb6lpu> <p class="section-eyebrow eyebrow-copper" data-astro-cid-smbb6lpu>4.9★ · 31 GOOGLE REVIEWS</p> <h1 class="section-title" data-astro-cid-smbb6lpu>Straight from the chair.</h1> <p class="section-deck" data-astro-cid-smbb6lpu>Every review captured verbatim, first-time collectors, returning clients, and out-of-town bookings.</p> </div>  </div> </section> <section class="reviews-section zone-paper" id="reviews" aria-label="Client reviews" data-astro-cid-cb5vetvs>  <div class="noise-overlay" aria-hidden="true" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.05;--mixBlend: multiply;"> <svg class="noise-overlay-svg" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.05;--mixBlend: multiply;"> <filter id="noise-light-85" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.05;--mixBlend: multiply;"> <feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="3" stitchTiles="stitch" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.05;--mixBlend: multiply;"></feTurbulence> <feColorMatrix type="matrix" values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.05;--mixBlend: multiply;"></feColorMatrix> </filter> <rect width="100%" height="100%" filter="url(#noise-light-85)" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.05;--mixBlend: multiply;"></rect> </svg> </div>  <div class="reviews-inner" data-astro-cid-cb5vetvs> <div class="section-header align-center size-section" data-astro-cid-smbb6lpu> <p class="section-eyebrow eyebrow-copper" data-astro-cid-smbb6lpu>WHAT CLIENTS SAY</p> <h2 class="section-title" data-astro-cid-smbb6lpu>Here&#39;s What My Clients Say</h2>  </div>   <div class="reviews-grid" data-astro-cid-cb5vetvs> <div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Stephen helped bring my ideas for my first tattoo to life. He was patient with me as we talked through some reference images and ways to tweak the design to make it my own. The tattoo came just as I hoped and I&#39;m very happy with the outcome. Looking forward to working with Stephen again on future tattoos!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Yves Y.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Oct 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;the tattoo speaks for itself&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Sara T.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Aug 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Had such a great experience! Super easy to work with, insanely talented artist, and knew exactly how to put what I wanted into my piece. 10/10 will come back.&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Devon S.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Aug 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;I was searching for a tattoo artist to do a very small intricate tattoo and I’m glad I found Stephen. The whole process was very easy and he’s fun to talk to while you’re getting your ink!  Love my tattoo thanks Stephen.&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Kate V.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Aug 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Steven is awesome! I changed my design day of and it was no problem. He did an awesome job, got all the details which was super impressive considering how small I wanted it. Painless and I love my tattoo s
101o much. Would definitely come back.&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Emma B.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Aug 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Super smooth from design to tattoo. Steven is an easy going guy makes the time fly and his art work speaks for itself would recommend to anyone.&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Jack R.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jul 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Loved his energy and flexibility with figuring out what/where you want your work. My designs turned out better than what I had brought to him!!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Emily B.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jul 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;absolutely killed it everything I wanted&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>jaiden B.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jul 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Stepen Carballo Takes such care to detail on his fine line tattoos
102He didnsuvh a badass job on my bronc tattoo!  Can&#39;t wait to get another fine line with him!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Cowchicka K.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jul 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;I had been searching for a fine line tattoo artist in the Prescott area but couldn’t find anyone whose work I really loved. An ad popped up for Stephan, who was traveling through town. His portfolio was exactly what I had been looking for.
103
104Stephan was professional, organized, and brought my vision to life perfectly. The script turned out exactly how I imagined it. If you’ve been looking for a talented fine line artist, he’s your guy!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Gina N.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jul 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Steve is the best tattoo artist I&#39;ve been to. He communicates well and has a great eye for making the art I like fit where I want. His decision-making and execution are always high quality (which I can&#39;t say for others I&#39;ve been to) so it&#39;s easy to trust him. Can&#39;t recommend him highly enough&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>paul H.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jun 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Amazing work. Fantastic communication and care. Will be visiting Stephen again and again. Thanks man, for the bowl of brains!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>david C.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jun 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;I’ve gotten 2 pieces done by Stephen this past year and I get so many compliments on the fine lines and shading he does. He’s a serious artist and kills it every time, and the vibe is super calm and chill in his shop. I can’t wait to get more tattoos from him!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>McKenzie M.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jun 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;I was lucky enough to get a slot with Stephen while he was in Frisco, CO and im so stoked on my new tat. He absolutely killed it, but it’s no surprise. If you’re familiar with Stephen’s work, then you already know he’s one of the best fine line artists out there. He’s also just a really down to earth dude. He took his time and 
104you can tell how passionate he is about his craft. It shows. A true artist indeed. Can’t recommend enough!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Taylor H.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jun 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;craft to detail and cares for customer satisfaction!  great job!  love the tattoos!  thanks Stephen!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Sincerity M.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jun 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Most amazing tattoo experience. Stephen is very articulate and cares deeply about what he is doing. I am absolutely in love with my tattoos he did for me, and I can’t wait to get more from him in the future.&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>morgan B.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jun 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Stephen is such an incredible artist and person! I was so excited to get an appointment with him when he came through Flagstaff and I couldn’t be happier with my tattoo! I can’t recommend him enough!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Emily C.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jun 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Super talented artist!  He took my idea and made it even better.  Really nice guy and there was almost no pain.  I really appreciate his professionalism too.&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Cindy J.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>Jun 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Steve’s the best tattoo artist in Los Angeles. My fineline tattoo healed perfectly. He was patient, focused and fun to work with. I highly recommend him to anyone looking for some fresh ink.&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Adam V.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>May 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Best in the biz, hands down!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>
104Robert G.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>May 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;I have been looking for a single needle tattoo for the longest time in Los Angeles! Finally found the best single needle in the area, he crushed my Borat tattoo!&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Topanga J.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>May 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;Exquisite detail, fair price, and a great dude.  I can’t imagine trusting anyone else with my body.&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>Matt M.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>May 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div><div class="review-card" data-animate data-astro-cid-cb5vetvs> <div class="review-stars" aria-label="5 out of 5 stars" data-astro-cid-cb5vetvs> <span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span><span aria-hidden="true" data-astro-cid-cb5vetvs>★</span> </div> <blockquote class="review-text" data-astro-cid-cb5vetvs>&ldquo;My tattoo turned out amazing, the design is so unique, and I get compliments all the time. The quality is top-notch. I’m so glad I didn’t go the cheap route and chose this artist instead. Hands down the best fine line work in Los Angeles.&rdquo;</blockquote> <div class="review-meta" data-astro-cid-cb5vetvs> <cite class="review-author" data-astro-cid-cb5vetvs>olina S.</cite> <div class="review-meta-right" data-astro-cid-cb5vetvs> <span class="review-date" data-astro-cid-cb5vetvs>May 2025</span> <span class="review-source" data-astro-cid-cb5vetvs>Google</span> </div> </div> </div> </div> <div class="reviews-cta" data-astro-cid-cb5vetvs> <a href="/tattoo-reviews" class="btn btn-ghost-ink" data-cta-id="reviews-read-all" data-cta-surface="homepage-reviews" data-astro-cid-cb5vetvs>Read All Reviews</a> </div> </div> </section>  <section class="reviews-elfsight zone-paper" aria-label="Live Google reviews widget" data-astro-cid-d4zahlxa> <div class="reviews-elfsight-inner" data-astro-cid-d4zahlxa> <p class="reviews-elfsight-eyebrow" data-astro-cid-d4zahlxa>LIVE FROM GOOGLE</p> <div class="elfsight-app-placeholder" data-astro-cid-d4zahlxa> <p class="elfsight-note" data-astro-cid-d4zahlxa>
105For the latest reviews, see Stephen's
106<a href="https://www.google.com/maps/place/?q=place_id:ChIJoQ4fU_67woARyu0ovSTIc_o" rel="noopener" target="_blank" data-cta-id="reviews-elfsight-fallback-google" data-cta-surface="reviews-page" data-astro-cid-d4zahlxa>Google Business Profile &rarr;</a> </p> </div> </div> </section> <section class="faq-section zone-paper" id="faq" aria-label="Frequently asked questions" data-astro-cid-h4zmggu3> <div class="faq-inner" data-astro-cid-h4zmggu3> <div class="section-header align-center size-section" data-astro-cid-smbb6lpu> <p class="section-eyebrow eyebrow-copper" data-astro-cid-smbb6lpu>QUESTIONS · BEFORE YOU BOOK</p> <h2 class="section-title" data-astro-cid-smbb6lpu>Straight Answers Before You Book</h2>  </div>  <div class="faq-list" data-astro-cid-h4zmggu3> <div class="faq-item" id="faq-item-0" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-0" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>What kinds of tattoos do you offer?</span>
106 <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-0" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>I work exclusively in black-and-gray fine-line and micro-realism, sometimes with a touch of red for dynamic contrast. You can choose a pre-drawn flash piece or bring references for something custom. Either way, we&#39;ll refine it together on the spot so it flows with your placement and feels like it&#39;s always been part of you.</p> </div> </div><div class="faq-item" id="faq-item-1" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-1" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>Does it hurt?</span> <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-1" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>Most clients say pain level is around 3/10, some even doze off. I have a light hand and keep the pace calm and collaborative. Most fine-line pieces take 20–45 minutes so the discomfort is brief.</p> </div> </div><div class="faq-item" id="faq-item-2" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-2" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>How do I book an appointment?</span> <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-2" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>The easiest way is to fill out the Tattoo Inquiry form on this site or text me at (760) 405-8955 with your idea, reference photos, preferred placement, and rough size. I&#39;ll reply same-day with a quote and next steps. A $50 deposit locks in your spot.</p> </div> </div><div class="faq-item" id="faq-item-3" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-3" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>Do you offer touch-ups?</span> <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-3" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>Yes, free lifetime touch-ups on all work. Fine-line tattoos can soften over time. If your piece ever loses crispness, I&#39;ll refresh it. That&#39;s part of my commitment to the work.</p> </div> </div><div class="faq-item" id="faq-item-4" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-4" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>How long does a session take?</span> <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-4" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>Most pieces take 20 to 45 minutes of actual needle time. I plan for about an hour for mini work, 90 minutes for small pieces, or two hours for medium pieces. That gives us time to settle the design and placement without rushing.</p> </div> </div><div class="faq-item" id="faq-item-5" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-5" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>What&#39;s your deposit policy?</span>
106 <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-5" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>A $50 deposit is required to hold your appointment. It goes toward the cost of your tattoo. Deposits are non-refundable, but they transfer if you need to reschedule with advance notice.</p> </div> </div><div class="faq-item" id="faq-item-6" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-6" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>What does a tattoo cost? Do you have a minimum?</span> <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-6" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>Pricing depends on size, detail, and placement. Current booking options start at $250 for mini tattoos, $350 for small tattoos, and $400+ for medium tattoos. Larger or more detailed work is quoted individually. Send me your reference and placement and I&#39;ll give you a same-day estimate.</p> </div> </div><div class="faq-item" id="faq-item-7" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-7" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>Do you charge by the hour or by the piece?</span> <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-7" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>I quote custom work by the piece, not the hour, so you&#39;ll know the price before we start. Flash pieces keep the listed price. The mini/small/medium sizing above is just how I reserve enough time for the piece. Your final price comes from the actual design, detail, and placement.</p> </div> </div><div class="faq-item" id="faq-item-8" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-8" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>What should I do to prepare for my appointment?</span> <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-8" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>Eat a good meal beforehand, stay hydrated, and wear or bring clothing that gives easy access to the area being tattooed. Avoid alcohol for 24 hours before your session. Come with clean skin, no lotions or oils on the area.</p> </div> </div><div class="faq-item" id="faq-item-9" data-astro-cid-h4zmggu3> <button class="faq-question" aria-expanded="false" aria-controls="faq-answer-9" data-astro-cid-h4zmggu3> <span data-astro-cid-h4zmggu3>Do fine-line tattoos fade faster?</span> <svg class="faq-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-h4zmggu3> <path d="M6 9l6 6 6-6" data-astro-cid-h4zmggu3></path> </svg> </button> <div class="faq-answer" id="faq-answer-9" role="region" data-astro-cid-h4zmggu3> <p data-astro-cid-h4zmggu3>Fine-line work can soften over time, yes, but the difference comes down to how it&#39;s done. Proper depth, steady hand, correct needle gauge, and aftercare discipline are what keep a fine-line piece crisp for 10+ years. That&#39;s why touch-ups are included free for life on anything I do: a clean line should stay a clean line.</p> </div> </div> </div> </div> </section>  <section class="cta-band zone-cosmic" id="cta-band" aria-label="Call to action" data-astro-cid-m7xpifmb>
106 <div class="starfield-pattern" aria-hidden="true" data-astro-cid-oh65jl74 style="--starOpacity: 0.45;--tileSize: 120px;"></div>  <div class="noise-overlay" aria-hidden="true" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.22;--mixBlend: screen;"> <svg class="noise-overlay-svg" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.22;--mixBlend: screen;"> <filter id="noise-dark-95" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.22;--mixBlend: screen;"> <feTurbulence type="fractalNoise" baseFrequency="0.95" numOctaves="3" stitchTiles="stitch" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.22;--mixBlend: screen;"></feTurbulence> <feColorMatrix type="matrix" values="0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.22;--mixBlend: screen;"></feColorMatrix> </filter> <rect width="100%" height="100%" filter="url(#noise-dark-95)" data-astro-cid-75hzplo6 style="--noiseOpacity: 0.22;--mixBlend: screen;"></rect> </svg> </div>  <canvas class="starfield-canvas" aria-hidden="true" id="cosmicStarfield" data-astro-cid-m7xpifmb></canvas> <div class="pyramid-silhouette" aria-hidden="true" data-astro-cid-m7xpifmb></div>  <div class="cta-band-content" data-astro-cid-m7xpifmb> <div class="section-header align-center size-section" data-astro-cid-smbb6lpu> <p class="section-eyebrow eyebrow-copper" data-astro-cid-smbb6lpu>READY TO ADD YOURS?</p> <h2 class="section-title" data-astro-cid-smbb6lpu>Book your session, then write the next review.</h2> <p class="section-deck" data-astro-cid-smbb6lpu>Send me what you&#39;re picturing, placement, size, references. Same-day reply with a quote and a path forward.</p> </div>   <a href="/tattoo-inquiry" class="btn btn-cosmic" data-cta-id="cta-band-primary" data-cta-surface="cta-band" data-astro-cid-m7xpifmb> Start Your Tattoo <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16" data-astro-cid-m7xpifmb> <path d="M5 12h14M12 5l7 7-7 7" data-astro-cid-m7xpifmb></path> </svg> </a>  <a href="sms:+17604058955?&#38;body=Hi Stephen, I'm interested in a tattoo" class="cta-band-sms-link" data-cta-id="sms-cta-band" data-cta-surface="cta-band" data-astro-cid-m7xpifmb>Or text Stephen directly</a>  <ul class="cta-stats-row" data-astro-cid-m7xpifmb> <li data-astro-cid-m7xpifmb>20+ Years Experience</li> <li data-astro-cid-m7xpifmb>Single-Needle Precision</li> <li data-astro-cid-m7xpifmb>4.9★ Google Rating</li> </ul> </div> </section>    <footer class="footer" data-astro-cid-sz7xmlte> <div class="footer-stack" data-astro-cid-sz7xmlte>  <a href="/" aria-label="Stephen Carballo, home" class="footer-logo-link" data-astro-cid-sz7xmlte> <picture> <source type="image/avif" srcset="/images/branding/stephen-carballo-tattoos-logo-white-480w.avif 480w, /images/branding/stephen-carballo-tattoos-logo-white-960w.avif 960w, /images/branding/stephen-carballo-tattoos-logo-white-1600w.avif 1024w" sizes="240px"> <source type="image/webp" srcset="/images/branding/stephen-carballo-tattoos-logo-white-480w.webp 480w, /images/branding/stephen-carballo-tattoos-logo-white-960w.webp 960w, /images/branding/stephen-carballo-tattoos-logo-white-1600w.webp 1024w" sizes="240px"> <img src="/images/branding/stephen-carballo-tattoos-logo-white.png" alt="Stephen Carballo" width="240" height="240" loading="lazy" decoding="async" class="footer-logo"> </picture> </a>  <div class="footer-primary-cta" data-astro-cid-sz7xmlte> <a href="/tattoo-inquiry" class="btn btn-footer-primary" data-cta-id="footer-inquiry" data-cta-surface="footer" data-astro-cid-sz7xmlte>Share My Idea</a> </div>  <p class="footer-trust" data-astro-cid-sz7xmlte>20+ years · 40+ countries · 4.9 Google</p>  <a href="tel:+17604058955" class="footer-phone" data-cta-id="footer-phone" data-cta-surface="footer" data-astro-cid-sz7xmlte> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" width="16" height="16" aria-hidden="true" data-astro-cid-sz7xmlte> <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z" data-astro-cid-sz7xmlte></path> </svg> <span data-astro-cid-sz7xmlte>(760) 405-8955</span> </a>  <nav class="footer-nav" aria-label="Footer navigation" data-astro-cid-sz7xmlte> <a href="/" data-astro-cid-sz7xmlte>Home</a> <a href="/portfolio" data-astro-cid-sz7xmlte>Portfolio</a> <a href="/about" data-astro-cid-sz7xmlte>About</a> <a href="/tattoo-reviews" data-astro-cid-sz7xmlte>Reviews</a> <a href="/faq" data-astro-cid-sz7xmlte>FAQ</a> <a href="/contact" data-astro-cid-sz7xmlte>Contact</a> </nav>  <a href="https://www.instagram.com/stephencarballo/" aria-label="Instagram" class="footer-social-link" target="_blank" rel="noopener" data-astro-cid-sz7xmlte> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20" data-astro-cid-sz7xmlte> <rect x="2" y="2" width="20" height="20" rx="5" data-astro-cid-sz7xmlte></rect> <path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z" data-astro-cid-sz7xmlte></path> <line x1="17.5" y1="6.5" x2="17.51" y2="6.5" data-astro-cid-sz7xmlte></line> </svg> </a>  <p class="footer-fine" data-astro-cid-sz7xmlte>
107© 2026 Stephen Carballo <span class="footer-fine-sep" data-astro-cid-sz7xmlte>·</span> <a href="/legal#privacy" data-astro-cid-sz7xmlte>Privacy</a> <span class="footer-fine-sep" data-astro-cid-sz7xmlte>·</span> <a href="/legal#terms" data-astro-cid-sz7xmlte>Terms</a> </p> </div> </footer>  <div class="msb-backdrop" id="msbBackdrop" aria-hidden="true" data-astro-cid-od6bqyjf></div>  <aside class="msb-panel" id="msbNavDrawer" aria-hidden="true" aria-label="Site navigation" data-astro-cid-od6bqyjf> <div class="msb-panel-header" data-astro-cid-od6bqyjf> <span class="msb-panel-title" data-astro-cid-od6bqyjf>
107Stephen Carballo</span> <button class="msb-close-btn" data-close-panel aria-label="Close menu" data-astro-cid-od6bqyjf> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" width="20" height="20" data-astro-cid-od6bqyjf> <line x1="18" y1="6" x2="6" y2="18" data-astro-cid-od6bqyjf></line> <line x1="6" y1="6" x2="18" y2="18" data-astro-cid-od6bqyjf></line> </svg> </button> </div>  <div class="msb-panel-ctas msb-panel-ctas--top" data-astro-cid-od6bqyjf> <a href="tel:+17604058955" class="msb-phone-link" data-cta-id="msb-nav-phone" data-cta-surface="msb-nav-drawer" data-astro-cid-od6bqyjf> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="15" height="15" data-astro-cid-od6bqyjf> <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z" data-astro-cid-od6bqyjf></path> </svg> (760) 405-8955 </a> </div> <nav class="msb-nav-links" aria-label="Mobile navigation" data-astro-cid-od6bqyjf>  <a href="/" class="msb-nav-link" data-astro-cid-od6bqyjf>Home</a> <a href="/portfolio" class="msb-nav-link" data-astro-cid-od6bqyjf>Portfolio</a> <a href="/about" class="msb-nav-link" data-astro-cid-od6bqyjf>About Stephen</a> <a href="/tattoo-reviews" class="msb-nav-link" data-astro-cid-od6bqyjf>Reviews</a> <a href="/faq" class="msb-nav-link" data-astro-cid-od6bqyjf>FAQ</a> <a href="/contact" class="msb-nav-link" data-astro-cid-od6bqyjf>Contact</a>  </nav> </aside>  <aside class="msb-panel" id="msbLocationDrawer" aria-hidden="true" aria-label="Studio info and hours" data-astro-cid-od6bqyjf> <div class="msb-panel-header" data-astro-cid-od6bqyjf> <span class="msb-panel-title" data-astro-cid-od6bqyjf>Golden Child Tattoo</span> <button class="msb-close-btn" data-close-panel aria-label="Close" data-astro-cid-od6bqyjf> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" width="20" height="20" data-astro-cid-od6bqyjf> <line x1="18" y1="6" x2="6" y2="18" data-astro-cid-od6bqyjf></line> <line x1="6" y1="6" x2="18" y2="18" data-astro-cid-od6bqyjf></line> </svg> </button> </div> <div class="msb-location-body" data-astro-cid-od6bqyjf>  <div class="msb-status-row" data-astro-cid-od6bqyjf> <span class="msb-status-dot" id="msbStatusDot" data-astro-cid-od6bqyjf></span> <span class="msb-status-text" id="msbStatusText" data-astro-cid-od6bqyjf>Checking hours...</span> <button class="msb-loc-distance" id="msbLocDistance" type="button" aria-label="Get distance to Golden Child Tattoo" data-astro-cid-od6bqyjf>Tap for Distance</button> </div>  <div class="msb-address" data-astro-cid-od6bqyjf> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" width="14" height="14" data-astro-cid-od6bqyjf> <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z" data-astro-cid-od6bqyjf></path> <circle cx="12" cy="10" r="3" data-astro-cid-od6bqyjf></circle> </svg> <span data-astro-cid-od6bqyjf>Golden Child Tattoo · Escondido, CA</span> </div>  <table class="msb-hours-table" data-astro-cid-od6bqyjf> <tbody data-astro-cid-od6bqyjf> <tr data-astro-cid-od6bqyjf><td data-astro-cid-od6bqyjf>Mon–Sun</td><td data-astro-cid-od6bqyjf>12:00 PM – 8:00 PM</td></tr> </tbody> </table>  <p class="msb-location-note" data-astro-cid-od6bqyjf>By appointment only. <a href="tel:+17604058955" data-astro-cid-od6bqyjf>(760) 405-8955</a></p>  <div class="msb-map" data-mab-no-swipe data-astro-cid-od6bqyjf> <iframe id="msbMapFrame" data-src="https://maps.google.com/maps?cid=18046988191921663434&output=embed" width="100%" height="160" style="border:0;" loading="lazy" referrerpolicy="no-referrer-when-downgrade" title="Map to Golden Child Tattoo" data-astro-cid-od6bqyjf></iframe> </div>  <div class="msb-directions-row" data-astro-cid-od6bqyjf> <a href="https://www.google.com/maps/dir/?api=1&destination=505%20W%20Washington%20Ave%2C%20Escondido%2C%20CA%2092025" target="_blank" rel="noopener noreferrer" class="msb-directions-btn" data-cta-id="msb-directions-google" data-cta-surface="msb-location-drawer" data-astro-cid-od6bqyjf>Google Maps &rarr;</a> <a href="https://maps.apple.com/?address=505%20W%20Washington%20Ave%2C%20Escondido%2C%20CA%2092025&q=Stephen%20Carballo%20Tattoos" target="_blank" rel="noopener noreferrer" class="msb-directions-btn" data-cta-id="msb-directions-apple" data-cta-surface="msb-location-drawer" data-astro-cid-od6bqyjf>Apple Maps &rarr;</a> </div> </div> <div class="msb-panel-ctas" data-astro-cid-od6bqyjf> <a href="/tattoo-inquiry" class="msb-cta-btn" data-cta-id="msb-location-inquiry" data-cta-surface="msb-location-drawer" data-astro-cid-od6bqyjf>Start Your Tattoo &rarr;</a> </div> </aside>  <aside class="msb-panel" id="msbCommsDrawer" data-comms-drawer aria-hidden="true" aria-label="Contact Stephen" data-astro-cid-od6bqyjf> <div class="msb-panel-header" data-astro-cid-od6bqyjf> <span class="msb-panel-title" data-astro-cid-od6bqyjf>Reach Stephen</span> <button class="msb-close-btn" data-close-panel aria-label="Close" data-astro-cid-od6bqyjf> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" width="20" height="20" data-astro-cid-od6bqyjf> <line x1="18" y1="6" x2="6" y2="18" data-astro-cid-od6bqyjf></line> <line x1="6" y1="6" x2="18" y2="18" data-astro-cid-od6bqyjf></line> </svg> </button> </div> <div class="msb-comms-body" data-comms-drawer data-astro-cid-a2wwsc33> <p class="msb-comms-status" data-astro-cid-a2wwsc33>Usually replies by text</p> <a href="sms:+17604058955?&#38;body=Hi Stephen, I'm interested in a tattoo" class="msb-comms-text" data-cta-id="msb-comms-text" data-cta-surface="msb-comms-drawer" data-astro-cid-a2wwsc33> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16" aria-hidden="true" data-astro-cid-a2wwsc33> <path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z" data-astro-cid-a2wwsc33></path> </svg> <span data-astro-cid-a2wwsc33>Text Stephen</span> </a> <a href="tel:+17604058955" class="msb-comms-call" data-cta-id="msb-comms-call" data-cta-surface="msb-comms-drawer" data-astro-cid-a2wwsc33>
108Call (760) 405-8955 </a> </div> <a href="/tattoo-inquiry" class="msb-comms-footer-link" data-cta-id="msb-comms-inquire" data-cta-surface="msb-comms-drawer" data-astro-cid-a2wwsc33>Prefer to write it out? Inquire &rarr;</a>  </aside>  <nav id="msbBar" class="msb msb--no-call" role="navigation" aria-label="Mobile actions" data-config="{&#34;hours&#34;:[{&#34;day&#34;:0,&#34;open&#34;:[12,0],&#34;close&#34;:[20,0]},{&#34;day&#34;:1,&#34;open&#34;:[12,0],&#34;close&#34;:[20,0]},{&#34;day&#34;:2,&#34;open&#34;:[12,0],&#34;close&#34;:[20,0]},{&#34;day&#34;:3,&#34;open&#34;:[12,0],&#34;close&#34;:[20,0]},{&#34;day&#34;:4,&#34;open&#34;:[12,0],&#34;close&#34;:[20,0]},{&#34;day&#34;:5,&#34;open&#34;:[12,0],&#34;close&#34;:[20,0]},{&#34;day&#34;:6,&#34;open&#34;:[12,0],&#34;close&#34;:[20,0]}],&#34;timezone&#34;:&#34;America/Los_Angeles&#34;,&#34;geo&#34;:{&#34;lat&#34;:33.1245867,&#34;lng&#34;:-117.0900268}}" data-astro-cid-od6bqyjf>  <button class="msb-btn" id="msbMenuBtn" aria-label="Open navigation" aria-expanded="false" aria-controls="msbNavDrawer" data-astro-cid-od6bqyjf> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="22" height="22" data-astro-cid-od6bqyjf> <line x1="3" y1="6" x2="21" y2="6" data-astro-cid-od6bqyjf></line> <line x1="3" y1="12" x2="21" y2="12" data-astro-cid-od6bqyjf></line> <line x1="3" y1="18" x2="21" y2="18" data-astro-cid-od6bqyjf></line> </svg> </button>  <button class="msb-location-pill" id="msbLocationBtn" aria-label="Studio location and hours" aria-expanded="false" aria-controls="msbLocationDrawer" data-astro-cid-od6bqyjf> <span class="msb-loc-dot" id="msbOpenIndicator" data-astro-cid-od6bqyjf></span> <span class="msb-loc-text" data-astro-cid-od6bqyjf> <span class="msb-loc-name" data-astro-cid-od6bqyjf>
108Stephen Carballo Tattoos</span> <span class="msb-loc-hours" id="msbHoursPreview" data-astro-cid-od6bqyjf>At Golden Child · 12–8 PM</span> </span> </button>  <button type="button" class="msb-comms-trigger" id="msbCommsBtn" aria-label="Call or text Stephen Carballo" aria-expanded="false" aria-controls="msbCommsDrawer" data-comms-trigger="open" data-cta-id="msb-bar-comms" data-cta-surface="msb-bar" data-astro-cid-od6bqyjf> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" aria-hidden="true" data-astro-cid-od6bqyjf> <path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z" data-astro-cid-od6bqyjf></path> </svg> </button>  <a href="/tattoo-inquiry" class="msb-inquire-btn" data-cta-id="msb-bar-inquiry" data-cta-surface="msb-bar" data-astro-cid-od6bqyjf>Inquire</a> </nav>     <div class="lightbox" id="lightbox" aria-hidden="true" role="dialog" aria-modal="true"> <button class="lightbox-close" id="lightboxClose" aria-label="Close"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" width="20" height="20"> <line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line> </svg> </button> <button class="lightbox-nav prev" id="lightboxPrev" aria-label="Previous"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="24" height="24"><path d="M15 18l-6-6 6-6"></path></svg> </button> <img class="lightbox-img" id="lightboxImg" src="" alt=""> <button class="lightbox-nav next" id="lightboxNext" aria-label="Next"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="24" height="24"><path d="M9 18l6-6-6-6"></path></svg> </button> </div> 
108<script>
109  (function () {
110    var lb = document.getElementById('lightbox');
111    var img = document.getElementById('lightboxImg');
112    var images = [];
113    var idx = 0;
114
115    /**
116     * Resolve which raster the lightbox should show for a thumbnail. Full
117     * rationale is in this file's header comment above (does not ship here).
118     */
119    function fullSrc(el) {
120      return el.getAttribute('data-full') || el.getAttribute('src');
121    }
122
123    // ── pan/zoom state (full rationale in this file's header comment) ──
124    var scale = 1, panX = 0, panY = 0;
125    var MIN_SCALE = 1, MAX_SCALE = 4, DOUBLE_TAP_SCALE = 2.5;
126
127    function applyTransform(withTransition) {
128      img.style.transition = withTransition ? 'transform 0.2s ease' : 'none';
129      img.style.transform = 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')';
130      lb.classList.toggle('is-zoomed', scale > 1);
131    }
132
133    /** Clamp pan so the scaled image can't drift fully off-screen. Uses the
134     * image's own rendered (unscaled) box — object-fit:contain means that
135     * box's size already reflects the image's true aspect ratio. */
136    function clampPan() {
137      var rect = img.getBoundingClientRect();
138      // getBoundingClientRect() includes the current transform, so back out
139      // scale to get the unscaled box the pan bounds are computed against.
140      var baseW = rect.width / scale;
141      var baseH = rect.height / scale;
142      var maxX = Math.max(0, (baseW * scale - baseW) / 2);
143      var maxY = Math.max(0, (baseH * scale - baseH) / 2);
144      panX = Math.max(-maxX, Math.min(maxX, panX));
145      panY = Math.max(-maxY, Math.min(maxY, panY));
146    }
147
148    function resetZoom(withTransition) {
149      scale = 1; panX = 0; panY = 0;
150      applyTransform(!!withTransition);
151    }
152
153    /** Zoom toward a viewport point (clientX/clientY), e.g. a double-click
154     * or double-tap location, so the tapped detail stays under the finger. */
155    function zoomToward(clientX, clientY, targetScale) {
156      var rect = img.getBoundingClientRect();
157      var cx = rect.left + rect.width / 2;
158      var cy = rect.top + rect.height / 2;
159      var ratio = targetScale / scale;
160      panX = (panX - (clientX - cx)) * ratio + (clientX - cx);
161      panY = (panY - (clientY - cy)) * ratio + (clientY - cy);
162      scale = targetScale;
163      clampPan();
164      applyTransform(true);
165    }
166
167    function toggleDoubleZoom(clientX, clientY) {
168      if (scale > 1) { resetZoom(true); }
169      else { zoomToward(clientX, clientY, DOUBLE_TAP_SCALE); }
170    }
171
172    function open(srcs, i) {
173      images = srcs; idx = i; img.src = images[idx];
174      resetZoom(false);
175      lb.classList.add('open'); lb.setAttribute('aria-hidden', 'false');
176      document.body.style.overflow = 'hidden';
177      if (window.dataLayer) { window.dataLayer.push({ event: 'lightbox_open', image_src: images[idx] }); }
178    }
179    function close() {
180      lb.classList.remove('open'); lb.setAttribute('aria-hidden', 'true');
181      document.body.style.overflow = ''; img.src = '';
182      resetZoom(false);
183    }
184    function nav(d) {
185      if (images.length <= 1) return;
186      idx = (idx + d + images.length) % images.length;
187      img.src = images[idx];
188      resetZoom(false);
189    }
190    document.getElementById('lightboxClose').addEventListener('click', close);
191    document.getElementById('lightboxPrev').addEventListener('click', function (e) { e.stopPropagation(); nav(-1); });
192    document.getElementById('lightboxNext').addEventListener('click', function (e) { e.stopPropagation(); nav(1); });
193    lb.addEventListener('click', function (e) { if (e.target === lb) close(); });
194    document.addEventListener('keydown', function (e) {
195      if (!lb.classList.contains('open')) return;
196      if (e.key === 'Escape') close();
197      if (e.key === 'ArrowLeft') nav(-1);
198      if (e.key === 'ArrowRight') nav(1);
199    });
200
201    // ── desktop: wheel-zoom + double-click-to-zoom + drag-to-pan ──────
202    img.addEventListener('wheel', function (e) {
203      e.preventDefault();
204      var next = scale - e.deltaY * 0.0025;
205      next = Math.max(MIN_SCALE, Math.min(MAX_SCALE, next));
206      if (next === MIN_SCALE) { resetZoom(true); return; }
207      zoomToward(e.clientX, e.clientY, next);
208    }, { passive: false });
209
210    img.addEventListener('dblclick', function (e) {
211      toggleDoubleZoom(e.clientX, e.clientY);
212    });
213
214    var mouseDragging = false, dragStartX = 0, dragStartY = 0, panStartX = 0, panStartY = 0;
215    img.addEventListener('mousedown', function (e) {
216      if (scale === 1) return;
217      mouseDragging = true;
218      dragStartX = e.clientX; dragStartY = e.clientY;
219      panStartX = panX; panStartY = panY;
220      img.style.cursor = 'grabbing';
221    });
222    window.addEventListener('mousemove', function (e) {
223      if (!mouseDragging) return;
224      panX = panStartX + (e.clientX - dragStartX);
225      panY = panStartY + (e.clientY - dragStartY);
226      clampPan();
227      applyTransform(false);
228    });
229    window.addEventListener('mouseup', function () {
230      if (!mouseDragging) return;
231      mouseDragging = false;
232      img.style.cursor = scale > 1 ? 'grab' : 'zoom-in';
233    });
234
235    // ── touch: swipe-nav (unzoomed) / pan (zoomed) / pinch / double-tap ──
236    // Swipe-to-navigate only applies at scale===1; a single-finger drag
237    // while zoomed pans instead. Horizontal swipe >= 50px triggers prev/next;
238    // vertical swipes ignored.
239    var touchStartX = 0, touchStartY = 0, touchActive = false;
240    var SWIPE_THRESHOLD = 50;
241    var pinchActive = false, pinchStartDist = 0, pinchStartScale = 1;
242    var pinchMidX = 0, pinchMidY = 0;
243    var panTouchActive = false, panStartTX = 0, panStartTY = 0;
244    var lastTapTime = 0, lastTapX = 0, lastTapY = 0;
245
246    function touchDist(t0, t1) {
247      var dx = t1.clientX - t0.clientX, dy = t1.clientY - t0.clientY;
248      return Math.sqrt(dx * dx + dy * dy);
249    }
250    function touchMid(t0, t1) {
251      return { x: (t0.clientX + t1.clientX) / 2, y: (t0.clientY + t1.clientY) / 2 };
252    }
253
254    lb.addEventListener('touchstart', function (e) {
255      if (!lb.classList.contains('open')) return;
256
257      if (e.touches.length === 2) {
258        pinchActive = true; touchActive = false; panTouchActive = false;
259        pinchStartDist = touchDist(e.touches[0], e.touches[1]);
260        pinchStartScale = scale;
261        var mid = touchMid(e.touches[0], e.touches[1]);
262        pinchMidX = mid.x; pinchMidY = mid.y;
263        return;
264      }
265
266      if (e.touches.length !== 1) return;
267      var t = e.touches[0];
268
269      // Double-tap-to-zoom: two touchstarts within 300ms and 30px of each other.
270      var now = Date.now();
271      if (now - lastTapTime < 300 &&
272          Math.abs(t.clientX - lastTapX) < 30 && Math.abs(t.clientY - lastTapY) < 30) {
273        toggleDoubleZoom(t.clientX, t.clientY);
274        lastTapTime = 0;
275        return;
276      }
277      lastTapTime = now; lastTapX = t.clientX; lastTapY = t.clientY;
278
279      if (scale > 1) {
280        panTouchActive = true;
281        panStartTX = t.clientX - panX;
282        panStartTY = t.clientY - panY;
283      } else {
284        touchStartX = t.clientX;
285        touchStartY = t.clientY;
286        touchActive = true;
287      }
288    }, { passive: true });
289
290    lb.addEventListener('touchmove', function (e) {
291      if (pinchActive && e.touches.length === 2) {
292        e.preventDefault();
293        var dist = touchDist(e.touches[0], e.touches[1]);
294        var next = pinchStartScale * (dist / pinchStartDist);
295        next = Math.max(MIN_SCALE, Math.min(MAX_SCALE, next));
296        zoomToward(pinchMidX, pinchMidY, next);
297        return;
298      }
299      if (panTouchActive && e.touches.length === 1) {
300        e.preventDefault();
301        panX = e.touches[0].clientX - panStartTX;
302        panY = e.touches[0].clientY - panStartTY;
303        clampPan();
304        applyTransform(false);
305      }
306    }, { passive: false });
307
308    lb.addEventListener('touchend', function (e) {
309      if (pinchActive) {
310        if (e.touches.length < 2) {
311          pinchActive = false;
312          if (scale <= MIN_SCALE) resetZoom(true);
313        }
314        return;
315      }
316      if (panTouchActive) {
317        if (e.touches.length === 0) panTouchActive = false;
318        return;
319      }
320      if (!touchActive) return;
321      touchActive = false;
322      var t = e.changedTouches[0];
323      var dx = t.clientX - touchStartX;
324      var dy = t.clientY - touchStartY;
325      if (Math.abs(dx) < SWIPE_THRESHOLD) return;
326      if (Math.abs(dy) > Math.abs(dx)) return; // mostly vertical, ignore
327      nav(dx < 0 ? 1 : -1);
328    }, { passive: true });
329
330    // ── grid binding: event-delegated (full rationale in header comment) ──
331    // ONE listener per grid, re-queried live on every click. A tile revealed
332    // later by a Load More click is caught automatically — no rebind, and
333    // the navigable set always matches what's visible (hidden tiles are
334    // excluded from arrow/swipe navigation, not silently included).
335    document.querySelectorAll('.portfolio-grid').forEach(function (grid) {
336      grid.addEventListener('click', function (e) {
337        var itemEl = e.target.closest('.portfolio-item');
338        if (!itemEl || !grid.contains(itemEl)) return;
339        var visible = Array.from(grid.querySelectorAll('.portfolio-item:not(.portfolio-item-hidden) img'));
340        var clickedImg = itemEl.querySelector('img');
341        var i = visible.indexOf(clickedImg);
342        if (i === -1) return;
343        open(visible.map(fullSrc), i);
344      });
345    });
346
347    // Hero featured strip lightbox (PLAN_0009 Batch 3c).
348    // Separate class keeps binding independent of .portfolio-grid. Strip
349    // duplicates slides for a seamless loop, so the navigable set dedupes
350    // by resolved src (delegated + re-queried live, same as the grid above).
351    document.querySelectorAll('.hero-strip-grid').forEach(function (strip) {
352      strip.addEventListener('click', function (e) {
353        var itemEl = e.target.closest('.strip-item');
354        if (!itemEl || !strip.contains(itemEl)) return;
355        var items = Array.from(strip.querySelectorAll('.strip-item img'));
356        var srcs = [];
357        items.forEach(function (el) {
358          var s = fullSrc(el);
359          if (srcs.indexOf(s) === -1) srcs.push(s);
360        });
361        var clickedSrc = fullSrc(itemEl.querySelector('img'));
362        var i = srcs.indexOf(clickedSrc);
363        if (i === -1) return;
364        open(srcs, i);
365      });
366    });
367  })();
368</script>
368 
368<script>
369  (function () {
370    var observer = new IntersectionObserver(function (entries) {
371      entries.forEach(function (e) {
372        if (e.isIntersecting) { e.target.classList.add('animated'); observer.unobserve(e.target); }
373      });
374    }, { threshold: 0.1, rootMargin: '0px 0px -40px 0px' });
375    document.querySelectorAll('[data-animate]').forEach(function (el) { observer.observe(el); });
376  })();
377</script>
377 
377<script>
378  document.querySelectorAll('.faq-question').forEach(function (btn) {
379    btn.addEventListener('click', function () {
380      var item = btn.closest('.faq-item');
381      var wasOpen = item.classList.contains('open');
382      document.querySelectorAll('.faq-item.open').forEach(function (i) { i.classList.remove('open'); });
383      if (!wasOpen) item.classList.add('open');
384    });
385  });
386</script>
386  <style is:global>html[data-site-overlay-open] chat-widget {
387  display: none !important;
388}</style>
388<script>(function(){const config = {"widgetId":"685db452a806916874ba3089","locationId":"hc3K4Qm6XQHLoVN81k6r","loaderSrc":"https://widgets.leadconnectorhq.com/loader.js","resourcesUrl":"https://widgets.leadconnectorhq.com/chat-widget/loader.js","load":{"mobileBreakpointPx":1023,"delays":{"default":{"mobile":15000,"desktop":5000},"conversion":{"mobile":45000,"desktop":10000}},"routes":{"omit":["/thank-you-contact","/thank-you-inquiry-sent"],"immediate":["/portfolio"],"conversion":["/tattoo-inquiry"]},"interactionTrigger":true,"sessionKey":"stephen_chat_loaded"},"offset":{"enabled":true,"gapPx":8,"hostZIndex":150}};
389
390  window.__ghlChatWidgetConfig = config;
391})();</script>
391 
391<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"74e5afe67bde4172aed77c9cb2b8ffe3","r":1,"spa":2}' crossorigin="anonymous"></script>
391
392</body></html> 

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.