SHOOT
Car meet photography — Adelaide, SA

CAPTURE
EVERY
DETAIL.

Professional on-location photography for car meets and events across Adelaide. High-resolution edits, fast delivery, zero fuss.

120+
Shoots completed
48h
Delivery time
100%
Digital delivery
Selected work

RECENT
WORK

What's coming up

UPCOMING
EVENTS

12Apr 2025
Adelaide Car Meet — Wayville Showgrounds
Wayville, Adelaide SA
Spots open Book →
19Apr 2025
JDM Sunday — Hindmarsh Square
Hindmarsh Square, Adelaide SA
Spots open Book →
26Apr 2025
Euro Collective — Victoria Park
Victoria Park, Adelaide SA
Fully booked
03May 2025
Import Alliance SA — Clipsal Park
Clipsal Park, Wingfield SA
Spots open Book →
What's included

PACKAGES

Essential
5
images included
$80 + gst

Clean, edited shots of your car at the meet.

  • 5 fully edited images
  • 48h turnaround
  • Personal use licence
Premium
20
images included
$240 + gst

Full-coverage with interior shots, action frames, and social media crops.

  • 20 fully edited images
  • Interior + action shots
  • Social media crops
  • 48h turnaround
  • 2 revision rounds
Get in touch

BOOK
A SHOOT

Fill in your details and I'll get back to you within 24 hours to confirm your spot.

Adelaide, South AustraliaAvailable across the greater Adelaide metro area
48 hour deliveryFully edited images sent to your online gallery
$50 deposit to confirmRefundable if cancelled 72+ hours before the event
Your deposit secures your spot. The remaining balance is due on the day of the shoot.
✓ Booking confirmed — check your email for details.
/* NAV */ nav{position:fixed;inset:0 0 auto 0;z-index:500;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;background:rgba(255,255,255,0.93);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);} .nav-logo{font-family:var(--font-m);font-size:13px;font-weight:500;color:var(--text);text-decoration:none;letter-spacing:0.02em;} .nav-logo-dot{color:var(--text-3);} .nav-center{display:flex;gap:0;list-style:none;height:100%;align-items:stretch;} .nav-center li{display:flex;align-items:center;} .nav-center a{font-size:11px;font-weight:400;color:var(--text-3);text-decoration:none;letter-spacing:0.08em;text-transform:uppercase;padding:0 18px;height:100%;display:flex;align-items:center;transition:color 0.2s;} .nav-center a:hover,.nav-center a.active{color:var(--text);} .nav-indicator{position:absolute;bottom:-1px;height:1px;background:var(--text);transition:left 0.3s var(--ease),width 0.3s var(--ease),opacity 0.2s;pointer-events:none;opacity:0;} .nav-indicator.visible{opacity:1;} .nav-cta{font-family:var(--font-m);font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:#fff;background:var(--text);border:none;padding:10px 22px;text-decoration:none;cursor:pointer;transition:opacity 0.18s;} .nav-cta:hover{opacity:0.75;} .nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:none;border:none;cursor:pointer;padding:4px;flex-shrink:0;} .nav-hamburger span{display:block;width:20px;height:1px;background:var(--text);transition:transform 0.25s var(--ease),opacity 0.2s,width 0.2s;transform-origin:center;} .nav-hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg);} .nav-hamburger.open span:nth-child(2){opacity:0;width:0;} .nav-hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);} .nav-drawer{position:fixed;top:64px;left:0;right:0;z-index:490;background:var(--bg);border-bottom:1px solid var(--border-2);transform:translateY(-8px);opacity:0;pointer-events:none;transition:transform 0.28s var(--ease),opacity 0.22s;padding:8px 0 20px;max-height:calc(100dvh - 64px);overflow-y:auto;} .nav-drawer.open{transform:translateY(0);opacity:1;pointer-events:auto;} .nav-drawer a{display:flex;align-items:center;padding:13px 28px;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);text-decoration:none;border-bottom:1px solid var(--border);transition:color 0.15s;} .nav-drawer a:hover{color:var(--text);} .nav-drawer a:last-of-type{border-bottom:none;} .nav-drawer-cta{display:block;margin:16px 28px 0;padding:13px;background:var(--text);color:#fff !important;text-align:center;font-family:var(--font-m);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;font-weight:500;text-decoration:none;transition:opacity 0.18s;} .nav-drawer-cta:hover{opacity:0.75 !important;} /* BUTTONS */ .btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-m);font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;padding:12px 24px;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:all 0.18s var(--ease);white-space:nowrap;} .btn-primary{background:var(--text);color:#fff;border-color:var(--text);} .btn-primary:hover{opacity:0.75;} .btn-ghost{background:transparent;color:var(--text);border-color:var(--border-2);} .btn-ghost:hover{border-color:var(--text);} .btn-ghost-outline{background:transparent;color:var(--text-2);border:1px solid var(--border-2);font-size:11px;padding:8px 16px;} .btn-ghost-outline:hover{color:var(--text);border-color:var(--text);} .btn:disabled{opacity:0.3;cursor:not-allowed;pointer-events:none;} /* SCAFFOLD */ .section-wrap{padding:112px 48px;} .section-inner{max-width:1140px;margin:0 auto;} .eyebrow{font-family:var(--font-m);font-size:10px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-3);margin-bottom:20px;display:flex;align-items:center;gap:12px;} .eyebrow::before{content:'';display:block;width:28px;height:1px;background:var(--text-3);} .section-title{font-family:var(--font-d);font-size:clamp(44px,5.5vw,72px);font-weight:900;line-height:0.93;letter-spacing:-0.01em;color:var(--text);margin-bottom:56px;} /* REVEAL */ .reveal{opacity:0;transform:translateY(24px);transition:opacity 0.6s var(--ease),transform 0.6s var(--ease);} .reveal.visible{opacity:1;transform:translateY(0);} @keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}} @keyframes fadeIn{from{opacity:0;}to{opacity:1;}} /* HERO */ #hero{min-height:100dvh;display:flex;flex-direction:column;justify-content:flex-end;padding:80px 48px 64px;position:relative;overflow:hidden;background:#0a0a0a;} .hero-bg-text{position:absolute;top:50%;left:-0.02em;transform:translateY(-52%);font-family:var(--font-d);font-size:clamp(160px,26vw,400px);font-weight:900;line-height:0.85;color:rgba(255,255,255,0.028);pointer-events:none;white-space:nowrap;letter-spacing:-0.03em;animation:fadeIn 1.5s ease both;} .hero-inner{max-width:1140px;margin:0 auto;width:100%;position:relative;z-index:1;} .hero-kicker{font-family:var(--font-m);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.35);display:flex;align-items:center;gap:14px;margin-bottom:32px;animation:fadeIn 0.8s ease 0.1s both;} .kicker-line{width:36px;height:1px;background:rgba(255,255,255,0.25);} .hero-heading{font-family:var(--font-d);font-size:clamp(80px,13vw,180px);font-weight:900;line-height:0.88;letter-spacing:-0.02em;color:#fff;animation:fadeUp 1s var(--ease) 0.15s both;} .hero-heading em{font-style:italic;color:rgba(255,255,255,0.45);} .hero-bottom{display:grid;grid-template-columns:1fr auto;align-items:flex-end;gap:40px;margin-top:48px;animation:fadeUp 1s var(--ease) 0.3s both;} .hero-sub{max-width:360px;font-size:14px;font-weight:300;color:rgba(255,255,255,0.45);line-height:1.8;} .hero-ctas{display:flex;gap:10px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;} .hero-ctas .btn-primary{background:#fff;color:#0a0a0a;border-color:#fff;} .hero-ctas .btn-ghost{background:transparent;color:rgba(255,255,255,0.6);border-color:rgba(255,255,255,0.18);} .hero-ctas .btn-ghost:hover{color:#fff;border-color:rgba(255,255,255,0.55);} .hero-stats-row{display:flex;gap:0;margin-top:72px;padding-top:36px;border-top:1px solid rgba(255,255,255,0.08);animation:fadeUp 1s var(--ease) 0.45s both;} .stat{flex:1;padding-right:36px;border-right:1px solid rgba(255,255,255,0.08);margin-right:36px;} .stat:last-child{border-right:none;margin-right:0;padding-right:0;} .stat-num{font-family:var(--font-d);font-size:48px;font-weight:900;color:#fff;line-height:1;margin-bottom:6px;} .stat-lbl{font-family:var(--font-m);font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.3);} /* PORTFOLIO (homepage) */ #portfolio{background:var(--bg);overflow:hidden;} .hp-scroll-wrap{position:relative;width:100%;} /* Track scrolls freely — only pauses when cursor is ON a photo */ .hp-track{display:flex;gap:3px;width:max-content;animation:hpScroll 55s linear infinite;} @keyframes hpScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}} .hp-item{flex-shrink:0;overflow:hidden;background:var(--bg-2);position:relative;} /* Pause ONLY on the photo itself, not whitespace */ .hp-item:hover .hp-track, .hp-item:hover{animation-play-state:paused;} .hp-scroll-wrap:has(.hp-item:hover) .hp-track{animation-play-state:paused;} .hp-item:nth-child(6n+1){height:520px;width:780px;} .hp-item:nth-child(6n+2){height:400px;width:540px;} .hp-item:nth-child(6n+3){height:560px;width:840px;} .hp-item:nth-child(6n+4){height:440px;width:660px;} .hp-item:nth-child(6n+5){height:520px;width:700px;} .hp-item:nth-child(6n+6){height:400px;width:600px;} .hp-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.6s var(--ease),filter 0.3s;} .hp-item:hover img{transform:scale(1.03);filter:brightness(0.9);} .hp-portfolio-footer{display:flex;justify-content:flex-end;margin-top:20px;} .hp-view-all{font-family:var(--font-m);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-3);text-decoration:none;display:flex;align-items:center;gap:8px;transition:color 0.2s;} .hp-view-all::after{content:'→';} .hp-view-all:hover{color:var(--text);} /* Placeholder */ .portfolio-grid{display:flex;gap:3px;overflow:hidden;} .photo-slot{flex-shrink:0;overflow:hidden;background:var(--bg-2);} .photo-slot:nth-child(1){height:520px;width:780px;} .photo-slot:nth-child(2){height:400px;width:540px;} .photo-slot:nth-child(3){height:560px;width:840px;} .photo-slot:nth-child(4){height:440px;width:660px;} .photo-slot:nth-child(5){height:520px;width:700px;} /* EVENTS */ #events{background:var(--bg-1);} .events-list{border-top:1px solid var(--border-2);} .event-row{display:grid;grid-template-columns:96px 1fr auto auto;align-items:center;gap:28px;padding:24px 0;border-bottom:1px solid var(--border);transition:background 0.15s;} .event-row:hover{background:rgba(0,0,0,0.02);} .event-row.booked{opacity:0.4;} .event-date-block{display:flex;flex-direction:column;} .event-day{font-family:var(--font-d);font-size:40px;font-weight:900;line-height:1;color:var(--text);} .event-mon{font-family:var(--font-m);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-3);margin-top:2px;} .event-name{font-size:14px;font-weight:500;color:var(--text);margin-bottom:3px;} .event-location{font-family:var(--font-m);font-size:11px;color:var(--text-3);letter-spacing:0.04em;} .badge{font-family:var(--font-m);font-size:9px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;padding:4px 10px;white-space:nowrap;} .badge-open{color:var(--green);background:rgba(26,122,74,0.07);border:1px solid rgba(26,122,74,0.18);} .badge-full{color:var(--red);background:rgba(192,57,43,0.07);border:1px solid rgba(192,57,43,0.18);} .badge-limited{color:var(--amber);background:rgba(139,105,20,0.07);border:1px solid rgba(139,105,20,0.18);} /* PACKAGES */ #packages{background:var(--bg);} .pkg-dots{display:none;justify-content:center;gap:7px;margin-top:16px;} .pkg-dot{width:6px;height:6px;border-radius:50%;background:var(--border-2);border:none;cursor:pointer;padding:0;transition:background 0.2s,transform 0.2s;flex-shrink:0;} .pkg-dot.active{background:var(--text);transform:scale(1.35);} .packages-wrap{position:relative;} .pkg-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:40px;height:40px;background:var(--bg);border:1px solid var(--border-2);color:var(--text-2);cursor:pointer;display:none;align-items:center;justify-content:center;transition:border-color 0.18s,color 0.18s;} .pkg-arrow:hover{border-color:var(--text);color:var(--text);} .pkg-arrow svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;} .pkg-arrow.prev{left:-56px;} .pkg-arrow.next{right:-56px;} .pkg-arrow:disabled{opacity:0.25;cursor:not-allowed;} .pkg-arrow.visible{display:flex;} .packages-viewport{border:1px solid var(--border-2);overflow:hidden;} .packages-grid{display:flex;background:var(--border-2);gap:1px;transition:transform 0.4s var(--ease);} @media(max-width:940px){ .packages-viewport{overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;} .packages-viewport::-webkit-scrollbar{display:none;} .packages-grid{transform:none !important;transition:none !important;gap:0;width:max-content;} .pkg{width:88vw !important;max-width:400px !important;scroll-snap-align:center;flex-shrink:0;border-right:none;} .pkg+.pkg{border-left:1px solid var(--border);} .pkg-ghost{display:none !important;} .pkg-arrow{display:none !important;} .pkg-dots{display:flex;} } .pkg{background:var(--bg);padding:36px 32px 32px;display:flex;flex-direction:column;position:relative;flex-shrink:0;transition:background 0.2s;max-width:420px;} .pkg:hover{background:var(--bg-1);} .pkg.featured{background:#0a0a0a;} .pkg.featured:hover{background:#111;} .pkg.featured .pkg-tier{color:rgba(255,255,255,0.35);} .pkg.featured .pkg-count{color:#fff;} .pkg.featured .pkg-count-unit,.pkg.featured .pkg-gst{color:rgba(255,255,255,0.35);} .pkg.featured .pkg-price{color:#fff;} .pkg.featured .pkg-desc{color:rgba(255,255,255,0.5);} .pkg.featured .pkg-divider{background:rgba(255,255,255,0.1);} .pkg.featured .pkg-features li{color:rgba(255,255,255,0.55);} .pkg.featured .feat-dash{color:rgba(255,255,255,0.25);} .pkg.featured .btn-ghost{color:rgba(255,255,255,0.55);border-color:rgba(255,255,255,0.18);} .pkg.featured .btn-ghost:hover{color:#fff;border-color:rgba(255,255,255,0.5);} .pkg.featured .btn-primary{background:#fff;color:#0a0a0a;border-color:#fff;} .pkg.featured .pkg-popular-badge{color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.07);border-color:rgba(255,255,255,0.12);} .pkg.selected{box-shadow:inset 0 0 0 2px var(--text);} .pkg.featured.selected{box-shadow:inset 0 0 0 2px rgba(255,255,255,0.55);} .pkg.selected .pkg-tier::after{content:' ✓';} .pkg.selected .btn{background:var(--text) !important;color:#fff !important;border-color:var(--text) !important;} .pkg.selected .btn::before{content:'✓ ';font-size:10px;} .packages-viewport.sparse .packages-grid{background:var(--bg);justify-content:center;gap:1px;} .packages-viewport.sparse .pkg:not(.pkg-ghost){border:1px solid var(--border-2);} .pkg-ghost{visibility:hidden;pointer-events:none;} .pkg-top-line{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;} .pkg-tier{font-family:var(--font-m);font-size:9px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-3);} .pkg-popular-badge{font-family:var(--font-m);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);background:var(--bg-2);border:1px solid var(--border-2);padding:3px 9px;} .pkg-count{font-family:var(--font-d);font-size:80px;font-weight:900;line-height:0.85;color:var(--text);margin-bottom:4px;letter-spacing:-0.02em;} .pkg-count-unit{font-family:var(--font-m);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:18px;} .pkg-price{font-family:var(--font-d);font-size:28px;font-weight:700;color:var(--text);margin-bottom:14px;} .pkg-gst{font-family:var(--font-m);font-size:11px;color:var(--text-3);font-weight:400;margin-left:4px;} .pkg-desc{font-size:13px;font-weight:300;color:var(--text-2);line-height:1.65;margin-bottom:22px;flex:1;} .pkg-divider{height:1px;background:var(--border);margin-bottom:18px;} .pkg-features{list-style:none;display:flex;flex-direction:column;gap:9px;margin-bottom:26px;} .pkg-features li{font-size:13px;color:var(--text-2);display:flex;align-items:flex-start;gap:10px;line-height:1.5;} .feat-dash{font-family:var(--font-m);color:var(--text-3);font-size:10px;flex-shrink:0;margin-top:2px;} @keyframes pkgPulse{0%{box-shadow:0 0 0 0 rgba(10,10,10,0.3);border-color:var(--text);}60%{box-shadow:0 0 0 6px rgba(10,10,10,0);border-color:var(--text);}100%{border-color:rgba(10,10,10,0.5);}} #package.pkg-prefilled{animation:pkgPulse 0.7s var(--ease) both;} /* BOOKING */ #booking{background:var(--bg-1);} .booking-layout{display:grid;grid-template-columns:1fr 440px;gap:80px;align-items:start;} .booking-left h2{font-family:var(--font-d);font-size:clamp(44px,5.5vw,72px);font-weight:900;line-height:0.9;letter-spacing:-0.01em;color:var(--text);margin-bottom:18px;margin-top:8px;} .booking-sub{font-size:14px;font-weight:300;color:var(--text-2);line-height:1.75;max-width:300px;margin-bottom:40px;} .booking-meta{display:flex;flex-direction:column;gap:18px;} .booking-meta-item{display:flex;align-items:flex-start;gap:14px;} .meta-icon{width:32px;height:32px;background:var(--bg-2);border:1px solid var(--border-2);display:flex;align-items:center;justify-content:center;flex-shrink:0;} .meta-icon svg{width:13px;height:13px;stroke:var(--text-2);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;} .meta-text{font-size:13px;color:var(--text-2);line-height:1.5;} .meta-text strong{display:block;font-size:13px;font-weight:500;color:var(--text);margin-bottom:1px;} .booking-form-wrap{background:var(--bg);border:1px solid var(--border-2);padding:36px;} .form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;} .form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;} .form-label{font-family:var(--font-m);font-size:9px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-3);} input,select,textarea{background:var(--bg);border:1px solid var(--border-2);color:var(--text);font-family:var(--font-b);font-size:16px;font-weight:400;padding:11px 13px;width:100%;outline:none;transition:border-color 0.18s;-webkit-appearance:none;appearance:none;border-radius:0;} input::placeholder,textarea::placeholder{color:var(--text-3);font-size:13px;} input:focus,select:focus,textarea:focus{border-color:var(--text);} select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath stroke='%23999' stroke-width='1.2' fill='none' stroke-linecap='round' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px;cursor:pointer;} select option{background:var(--bg);} textarea{resize:vertical;min-height:90px;} .btn-submit{width:100%;justify-content:center;padding:14px;margin-top:6px;} .form-note{margin-top:14px;font-size:11px;color:var(--text-3);line-height:1.6;border-top:1px solid var(--border);padding-top:14px;} .success-banner{display:none;background:rgba(26,122,74,0.06);border:1px solid rgba(26,122,74,0.18);padding:12px 16px;color:var(--green);font-family:var(--font-m);font-size:11px;letter-spacing:0.04em;margin-top:12px;animation:fadeIn 0.4s ease both;} /* RECEIPT */ .receipt-backdrop{display:none;position:fixed;inset:0;z-index:2000;background:rgba(255,255,255,0.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:24px;} .receipt-backdrop.open{display:flex;animation:fadeIn 0.22s ease both;} .receipt-modal{position:relative;background:var(--bg);border:1px solid var(--border-2);width:100%;max-width:420px;max-height:90vh;overflow-y:auto;padding:40px 36px 32px;animation:receiptIn 0.3s var(--ease) both;} @keyframes receiptIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}} .receipt-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-3);cursor:pointer;padding:4px;line-height:1;transition:color 0.15s;} .receipt-close:hover{color:var(--text);} .receipt-close svg{width:16px;height:16px;display:block;} .receipt-loading{text-align:center;padding:40px 0;font-family:var(--font-m);font-size:11px;letter-spacing:0.08em;color:var(--text-3);} .receipt-check{width:44px;height:44px;background:rgba(26,122,74,0.07);border:1px solid rgba(26,122,74,0.18);display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--green);} .receipt-check svg{width:20px;height:20px;} .receipt-ref{font-family:var(--font-m);font-size:10px;letter-spacing:0.14em;color:var(--text-3);margin-bottom:6px;text-transform:uppercase;} .receipt-headline{font-family:var(--font-d);font-size:32px;font-weight:900;color:var(--text);line-height:1;margin-bottom:6px;} .receipt-sub{font-size:13px;color:var(--text-3);margin-bottom:4px;} .receipt-divider{height:1px;background:var(--border);margin:20px 0;} .receipt-section-label{font-family:var(--font-m);font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-3);margin-bottom:8px;} .receipt-row{font-size:14px;color:var(--text);line-height:1.6;} .receipt-row.muted{font-size:12px;color:var(--text-2);} .receipt-line-item{display:flex;justify-content:space-between;font-size:13px;color:var(--text-2);margin-bottom:8px;} .receipt-line-item.receipt-total{font-size:14px;color:var(--text);font-weight:500;padding-top:10px;border-top:1px solid var(--border);margin-top:6px;} .receipt-paid{color:var(--green);display:flex;align-items:center;gap:6px;} .receipt-badge-paid{font-family:var(--font-m);font-size:8px;letter-spacing:0.1em;background:rgba(26,122,74,0.08);border:1px solid rgba(26,122,74,0.18);color:var(--green);padding:2px 6px;} .receipt-badge-due{font-family:var(--font-m);font-size:8px;letter-spacing:0.1em;background:rgba(139,105,20,0.08);border:1px solid rgba(139,105,20,0.18);color:var(--amber);padding:2px 6px;} .receipt-footer-note{margin-top:20px;font-family:var(--font-m);font-size:10px;color:var(--text-3);letter-spacing:0.04em;text-align:center;} .receipt-actions{display:flex;gap:10px;margin-top:24px;justify-content:flex-end;} /* FOOTER */ footer{border-top:1px solid var(--border);padding:28px 48px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;} .footer-logo{font-family:var(--font-m);font-size:12px;color:var(--text-3);text-decoration:none;transition:color 0.2s;} .footer-logo:hover{color:var(--text);} .footer-right{display:flex;align-items:center;gap:32px;} .footer-right a{font-size:12px;color:var(--text-3);text-decoration:none;transition:color 0.2s;} .footer-right a:hover{color:var(--text);} .footer-copy{font-family:var(--font-m);font-size:10px;color:var(--text-3);letter-spacing:0.06em;} /* PAGE TRANSITIONS */ body{animation:fadeUp 0.3s var(--ease) both;} body.page-exit{opacity:0;transform:translateY(-6px);transition:opacity 0.22s ease,transform 0.22s ease;pointer-events:none;} /* RESPONSIVE */ @media(max-width:940px){ nav{padding:0 20px;} .nav-center,.nav-cta{display:none;} .nav-hamburger{display:flex;} .section-wrap{padding:72px 24px;} #hero{padding:72px 24px 52px;} .hero-bottom{grid-template-columns:1fr;gap:28px;} .hero-ctas{justify-content:flex-start;} .booking-layout{grid-template-columns:1fr;gap:40px;} footer{padding:20px 24px;} } @media(max-width:600px){ #hero{padding:72px 20px 44px;min-height:auto;} .hero-heading{font-size:clamp(60px,16vw,100px);} .hero-bottom{margin-top:28px;gap:24px;} .hero-ctas{flex-direction:column;width:100%;} .hero-ctas .btn{width:100%;justify-content:center;} .hero-stats-row{margin-top:40px;padding-top:24px;} .stat{padding-right:16px;margin-right:16px;} .stat-num{font-size:36px;} .section-wrap{padding:56px 20px;} .section-title{font-size:clamp(34px,9vw,52px);margin-bottom:32px;} .portfolio-grid{grid-template-columns:1fr 1fr;gap:2px;} .photo-slot:nth-child(1){grid-column:span 2;aspect-ratio:16/9;} .photo-slot:nth-child(n+2){grid-column:span 1;aspect-ratio:4/3;} .hp-item{height:280px !important;} .hp-item:nth-child(n){width:min(78vw,420px);} .event-row{grid-template-columns:64px 1fr;gap:12px;padding:16px 0;} .event-day{font-size:28px;} .event-row .event-details{grid-column:2;} .event-row .badge{grid-column:2;justify-self:start;margin-top:4px;} .event-row .btn-ghost-outline{grid-column:1 / -1;justify-content:center;width:100%;margin-top:4px;} .booking-layout{gap:0;} .booking-left{display:none;} .booking-form-wrap{padding:24px 18px;} .form-row-2{grid-template-columns:1fr;gap:0;} footer{flex-direction:column;align-items:flex-start;gap:14px;padding:20px;} .receipt-modal{padding:28px 20px 22px;} .receipt-actions{flex-direction:column;} .receipt-actions .btn{width:100%;justify-content:center;} } @media(max-width:390px){ nav{padding:0 16px;} .hero-heading{font-size:clamp(52px,16vw,80px);} .section-wrap{padding:48px 16px;} .booking-form-wrap{padding:18px 14px;} .hero-stats-row{flex-wrap:wrap;gap:20px;} .stat{border-right:none;padding-right:0;margin-right:0;flex:0 0 calc(50% - 10px);} .stat:last-child{flex-basis:100%;} .receipt-backdrop{padding:12px;} .receipt-modal{max-height:calc(100dvh - 24px);} }
SHOOT
Car meet photography — Adelaide, SA

CAPTURE
EVERY
DETAIL.

Professional on-location photography for car meets and events across Adelaide. High-resolution edits, fast delivery, zero fuss.

120+
Shoots completed
48h
Delivery time
100%
Digital delivery
Selected work

RECENT
WORK

What's coming up

UPCOMING
EVENTS

12Apr 2025
Adelaide Car Meet — Wayville Showgrounds
Wayville, Adelaide SA
Spots open Book →
19Apr 2025
JDM Sunday — Hindmarsh Square
Hindmarsh Square, Adelaide SA
Spots open Book →
26Apr 2025
Euro Collective — Victoria Park
Victoria Park, Adelaide SA
Fully booked
03May 2025
Import Alliance SA — Clipsal Park
Clipsal Park, Wingfield SA
Spots open Book →
What's included

PACKAGES

Essential
5
images included
$80 + gst

Clean, edited shots of your car at the meet.

  • 5 fully edited images
  • 48h turnaround
  • Personal use licence
Premium
20
images included
$240 + gst

Full-coverage with interior shots, action frames, and social media crops.

  • 20 fully edited images
  • Interior + action shots
  • Social media crops
  • 48h turnaround
  • 2 revision rounds
Get in touch

BOOK
A SHOOT

Fill in your details and I'll get back to you within 24 hours to confirm your spot.

Adelaide, South AustraliaAvailable across the greater Adelaide metro area
48 hour deliveryFully edited images sent to your online gallery
$50 deposit to confirmRefundable if cancelled 72+ hours before the event
Your deposit secures your spot. The remaining balance is due on the day of the shoot.
✓ Booking confirmed — check your email for details.