

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    --black: #000000;
    --white: #ffffff;
    --white-75: rgba(255,255,255,0.75);
    --white-60: rgba(255,255,255,0.60);
    --caption-bg: rgba(30,30,30,0.82);
    --nav-arrow-bg: rgba(255,255,255,0.15);
    --transition-fade: 0.6s ease-in-out;
}

html, body {
    background: var(--black);
    color: var(--white);
    font-family: Helvetica, Arial, sans-serif;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }

/* ─── HOMEPAGE ─────────────────────────────────────── */

.home-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100vh;
    padding: 2rem;
}

.home-title {
    font-family: 'Arial', Arial, sans-serif;
    font-weight: 1000;
    font-size: 1.44rem;
    letter-spacing: -0.044em;
    text-transform: uppercase;
    margin-top: .44rem;
    margin-bottom: 2rem;
    animation: fadeIn 1.77s ease-in-out;
}

.home-hero {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
}

.home-hero img {
    width: 100%;
    height: auto;
    display: block;
    max-height: 83vh;
    object-fit: contain;
    animation: fadeIn 1.77s ease-in-out;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
.home-nav {
    margin-top: 2.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
    animation: fadeIn 1.77s ease-in-out;
}

.home-nav-links {
    display: flex;
    gap: 10rem;
    align-items: center;
}

.home-nav-bottom {
    display: flex;
    gap: 0.2rem;
    align-items: center;
}

.home-nav-bottom svg {
    display: block;
    vertical-align: middle;
}

.home-nav-links a, .home-nav-bottom a {
    font-family: 'Arial', Arial, sans-serif;
    font-weight: 900;
    font-size: 1.24rem;
    letter-spacing: -0.034em;
    text-transform: uppercase;
    color: var(--white);
    transition: opacity 0.2s;
}

.home-nav-bottom a {
    font-family: 'Arial', Arial, sans-serif;
    font-weight: 500;
    font-size: 1rem;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.756);
    transition: opacity 0.2s;
}

.home-nav-bottom a:hover {
    opacity: 0.8;
}

.home-nav-links a:hover, .home-nav-bottom a:hover {
    opacity: 0.6;
}

.home-nav a:hover { opacity: 0.6; }

.home-nav .nav-icons {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.home-footer {
    font-family: 'Arial', Arial, sans-serif;
    width: 100%;
    text-align: center;
    padding-top: 4.44rem;
    padding-bottom: 1.88rem;
    font-size: 0.64rem;
    letter-spacing: 0.022em;
    color: rgba(255,255,255,0.35);
    text-transform: uppercase;
    animation: fadeIn 1.77s ease-in-out;
    bottom: 0;
    left: 0;
}

/* ─── INNER PAGES HEADER ────────────────────────────── */

.page-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.2rem 1.8rem;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.756) 0%, rgba(0,0,0,0) 100%);
}

.page-header a { pointer-events: all; }

.header-name {
     font-family: 'Arial', Arial, sans-serif;
    font-weight: 900;
    font-size: 1.44rem;
    letter-spacing: -0.034em;
    text-transform: uppercase;
    color: var(--white);
    transition: opacity 0.2s;
}

.header-name:hover { opacity: 0.6; }

.header-right {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.header-right .nav-icons {
    display: flex;
    align-items: center;
    gap: 0.22rem;
}

.header-right svg {
    display: block;
}

.header-right a {
    font-family: 'Arial', Arial, sans-serif;
    font-weight: 550;
    font-size: 1rem;
    letter-spacing: -0.034em;
    text-transform: uppercase;
    color: var(--white);
    transition: opacity 0.2s;
}

.header-right a:hover { opacity: 0.6; }

/* ─── MASONRY GRID ───────────── */

.grid-page {
    padding-top: 4rem;
    min-height: 100vh;
}

.grid-page .home-footer {
    position: relative;
    margin-top: 3rem;
}

.page-section-title {
    text-align: center;
    font-family: Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    padding: 2rem 0 1.5rem;
    color: var(--white);
}

.masonry-grid {
    position: relative;
    width: 100%;
    min-height: 100vh;
    padding: 1rem 2rem 4rem;
}

.masonry-item {
    position: absolute;
    cursor: none;
    transition: opacity 0.2s;
}

#camera-cursor {
    position: fixed;
    pointer-events: none;
    transform: translate(-50%, -50%);
    z-index: 9999;
    display: none;
}

#hand-cursor {
    position: fixed;
    pointer-events: none;
    transform: translate(-50%, -50%);
    z-index: 9999;
    display: none;
}

.concepts-page .masonry-item {
    cursor: none;
}

.masonry-item.lightbox-only {
    display: none;
}

.masonry-item:hover { opacity: 0.85; }
.masonry-item img { display: block; width: 100%; height: auto; }

.photography-page .masonry-item img {
    animation: fadeIn 1.44s ease-in-out;
    animation-fill-mode: backwards;
}

.concepts-page .masonry-item img {
    animation: fadeIn 1.44s ease-in-out;
    animation-fill-mode: backwards;
}

/* ─── LIGHTBOX ──────────────────────────────────────── */

.lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0,0,0,0.96);
    opacity: 1;
    transition: opacity 0.6s ease;
}

.lightbox.closing {
    opacity: 0;
}

.lightbox.active {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 44px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(12px);
}

.lightbox-slides {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.lightbox-slide {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

}

.concepts-lightbox.active {
    align-items: flex-start;
}

.concepts-lightbox .lightbox-inner {
    width: 100%;
    height: 100%;
    flex: 1;
}

.concepts-lightbox .lightbox-slides {
    height: 100%;
}

.concepts-lightbox .lightbox-slide {
    top: 2%;
    transform: translate(-50%, 0);
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    z-index: 1;
}

.lightbox-slide.active {
    display: block;
}

.lightbox-img-wrap {
    position: relative;
    display: inline-block;
}

.lightbox-img-wrap img {
    display: block;
    max-width: 60vw;
    max-height: calc(100vh - 64px);
    width: auto;
    height: auto;
}

.lightbox-caption {
    font-family: 'Arial', Arial, sans-serif;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0,0,0,0.65);
    padding: 20px 24px 20px 36px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 19px;
    line-height: 1.5;
    color: #fff;
    opacity: 0;
    transition: opacity 0.44s ease-in-out;
    pointer-events: none;
}

.lightbox-caption b {
    font-size: 15.8px;
}

.lightbox-img-wrap:hover .lightbox-caption {
    opacity: 1;
}

.lightbox-arrow:focus {
    outline: none;
}

.lightbox-arrow {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: rgba(255,255,255,0.3);
    font-size: 3rem;
    width: 22px;
    height: 44px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
    z-index: 1001;
}

.lightbox-arrow:hover {
    color: rgba(255,255,255,0.7);
}

.lightbox-arrow.prev { left: 1.5rem; }
.lightbox-arrow.next { right: 1.5rem; }

.lightbox-close {
    position: fixed;
    top: 1.8rem;
    right: 1.8rem;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.356);
    font-size: 1rem;
    cursor: pointer;
    z-index: 1001;
    transition: color 0.2s;
    line-height: 1;
}

.lightbox-close:hover {
    color: rgba(255, 255, 255, 0.795);
}

.lightbox-close:hover { opacity: 0.5; }

/* ─── PAINTINGS PAGE ────────────────────────────────── */

.paintings-page {
    padding-top: 5rem;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.painting-slide {
    display: none;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 0 2rem 4rem;
}

.painting-slide.active { display: flex; }

.painting-title-block {
    text-align: center;
    margin-bottom: 1.8rem;
}

.painting-title {
    font-family: 'Arial', Arial, sans-serif;
    font-weight: 700;
    font-size: 1.44rem;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: var(--white);
}

.painting-subtitle {
    font-family: 'Arial', Arial, sans-serif;
    font-weight: 400;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--white-60);
    margin-top: 0.44rem;
}

.painting-img-slides { position: relative; }

.painting-img-slide {
    opacity: 0;
    display: none;
    transition: opacity 0.8s ease-in-out;
}

.painting-img-slide.active {
    display: block;
    opacity: 1;
}

.painting-img-slide.active img { cursor: pointer; }
.painting-img-slide.active img:hover { opacity: 0.85; }

.painting-img-slide img {
    display: block;
    max-width: 620px;
    max-height: 75vh;
    width: auto;
    height: auto;
    margin: 0 auto;
}

.painting-description {
    max-width: 500px;
    width: 100%;
    text-align: center;
    font-family: 'Arial', Arial, sans-serif;
    font-size: 0.82rem;
    line-height: 1.7;
    color: var(--white-75);
    margin: 5rem auto 0;
    padding: 0 1rem;
    box-sizing: border-box;
}

.painting-nav {
    display: none !important;
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.15);
    border: none;
    color: rgba(255,255,255,0.85);
    font-size: 1.4rem;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    z-index: 10;
    backdrop-filter: blur(4px);
}

.painting-nav:hover { background: rgba(255,255,255,0.28); }
.painting-nav.prev { left: 1.5rem; }
.painting-nav.next { right: 1.5rem; }

.img-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.15);
    border: none;
    color: rgba(255,255,255,0.85);
    font-size: 1.2rem;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    backdrop-filter: blur(4px);
    transition: background 0.2s;
}

.img-nav:hover { background: rgba(255,255,255,0.28); }
.img-nav.img-prev { left: -50px; }
.img-nav.img-next { right: -50px; }

/* ─── INFO PAGE ─────────────────────────────────────── */

.info-page {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
}

.info-bg {
    position: fixed;
    inset: 0;
    z-index: 0;
}

.info-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1.77s ease-in-out;
}

.info-bg img.loaded {
    opacity: 1;
}

.info-content {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    padding: 2rem;
    display: flex;
    flex-direction: column;
}

.info-home-link {
    color: rgba(255,255,255,0.8);
    transition: opacity 0.2s;
}

.info-home-link:hover { opacity: 0.6; }

.info-main {
    margin-left: auto;
    margin-right: 1rem;
    max-width: 444px;
    text-align: right;
    margin-top: -0.03rem;
}

.info-bio {
    font-family: 'Arial', Arial, sans-serif;
    font-size: 0.9rem;
    line-height: 1.44;
    color: var(--white);
}

.info-contact { margin-top: 3rem; text-align: right; }

.info-contact .inquire {
    font-family: 'Arial', Arial, sans-serif;
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--white);
    display: block;
    margin-bottom: 1.44rem;
}

.info-contact .contact-line {
    font-family: 'Arial', Arial, sans-serif;
    font-size: 0.72rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.897);
    display: block;
    margin-bottom: 0.66rem;
}

.info-contact .contact-line a { color: rgba(255, 255, 255, 0.897);; transition: opacity 0.2s; }
.info-contact .contact-line a:hover { opacity: 0.6; }

.info-instagram { margin-top: auto; text-align: right; font-size: 1rem; }
.info-instagram a { color: var(--white); transition: opacity 0.2s; }
.info-instagram a:hover { opacity: 0.6; }

/* ─── LIGHTBOX IMAGE CLASS ──────────────────────────── */

.lightbox-img {
    display: block;
    max-width: 60vw;
    max-height: 94vh;
    width: auto;
    height: auto;
    object-fit: contain;
}

.concepts-lightbox .lightbox-img {
    max-width: 70vw;
    max-height: 82vh;
}

/* ══════════════════════════════════════════════════════
   RESPONSIVE LAYOUTS
   ══════════════════════════════════════════════════════

   Breakpoints:
     Phone   : max-width 480px
     Tablet  : 481px – 1024px
     Desktop : 1025px+  ← desktop layout is NEVER touched

   Custom photo positions
   ──────────────────────
   Each visible photo has a numbered class: photo-1…photo-62
   (photography) and concept-1…concept-25 (concepts).

   To position a specific photo differently at a given
   breakpoint, add a rule inside that @media block, e.g.:

     .photo-3  { width: 70% !important; }
     .concept-1 { width: 45% !important; align-self: flex-end; }

   All positions are relative flow by default — you don't
   need left/top/right, just width and optional margin/
   align-self to nudge things around.
   ══════════════════════════════════════════════════════ */


/* ─── SHARED: header + homepage shrink (≤768px) ─────── */

@media (max-width: 768px) {

    .home-title { font-size: 1.28rem; }
    .home-hero img { max-height: 55vh; }
    .home-nav { gap: 2rem; }
    .home-nav-links { gap: 3.5rem; }
    .home-nav-links a { font-size: 1.05rem; }
    .page-header { padding: 0.9rem 1rem; }
    .header-name { font-size: 1.1rem; }

    .painting-img-slideshow { max-width: 85vw !important; }
    .painting-img-slide img { max-width: 85vw; max-height: 60vh; }
    .img-nav.img-prev { left: -28px; }
    .img-nav.img-next { right: -28px; }
    .info-main { margin-right: 1rem; max-width: 100%; }
}


/* ─── TABLET LAYOUT (481px – 1366px) ────────────────── */
/* Covers all iPads portrait + landscape                  */

@media (min-width: 481px) and (max-width: 1366px) {

    /* Prevent any horizontal scrolling */
    body { overflow-x: hidden; }

    /* Grid: fully custom absolute positioning */
    .masonry-grid {
        position: relative !important;
        display: block !important;
        height: 898.47vw !important;
        padding: 0 !important;
    }

    .masonry-item {
        position: absolute !important;
    }

    .masonry-item.lightbox-only { display: none !important; }

    .page-section-title {
        padding-bottom: 1.5rem !important;
        padding-top: 1rem !important;
    }

    /* Lightbox */
    .lightbox.active { padding: 15px 12px; }
    .lightbox-img { max-width: 80vw; max-height: 82vh; }
    .lightbox-arrow.prev { left: 0.3rem; }
    .lightbox-arrow.next { right: 0.3rem; }

    /* Paintings page: shrink the title/subtitle at the top */
    .painting-title { font-size: 1.1rem !important; }
    .painting-subtitle { font-size: 0.62rem !important; }

    /* Paintings page: footer spacing at the bottom */
    .paintings-page ~ .home-footer {
        position: relative !important;
        margin-top: 1.5rem !important;
        padding-top: 1rem !important;
    }
}

/* ─── TABLET HOME PAGE (no scroll, everything centered) ──── */

@media (min-width: 481px) and (max-width: 1366px) {
    .home-page {
        height: 100vh !important;
        min-height: unset !important;
        overflow: hidden !important;
        justify-content: center !important;
        padding: 0.5rem 2.5rem !important;
        gap: 0 !important;
    }
    .home-title { margin-top: 0 !important; margin-bottom: 1.8rem !important; }
    .home-hero { max-width: 100% !important; }
    .home-hero img { max-height: 62vh !important; width: 100% !important; object-fit: cover !important; }
    .home-nav { margin-top: 1.8rem !important; gap: 2rem !important; }
    .home-nav-links { gap: 4rem !important; }
    .home-page .home-footer { position: absolute !important; bottom: 1rem !important; left: 0 !important; right: 0 !important; text-align: center !important; padding-top: 0 !important; padding-bottom: 0 !important; font-size: 0.44rem !important; }
    .home-page { position: relative !important; }
}

/* ─── TABLET LANDSCAPE LIGHTBOX ─────────────────────────── */

@media (min-width: 481px) and (max-width: 1366px) and (orientation: landscape) {
    .lightbox.active { padding: 40px 12px !important; }
    .lightbox-img { max-height: 68vh !important; }
    .concepts-lightbox .lightbox-img { max-height: 62vh !important; }
    .home-hero img { object-fit: contain !important; width: auto !important; margin: 0 auto !important; }
}

/* ─── TABLET PORTRAIT: info page background ─────────────── */

@media (min-width: 481px) and (max-width: 1366px) and (orientation: portrait) {
    .info-bg img { object-position: 15% center; }
}

/* ─── iPAD PRO LANDSCAPE (12.9") ─── */
@media (min-width: 1300px) and (max-width: 1366px) and (orientation: landscape) {
    .home-title { margin-bottom: 1.4rem !important; }
    .home-nav { margin-top: 1.4rem !important; }
    .home-hero img { max-height: 75vh !important; }
}

/* ─── iPAD AIR LANDSCAPE (~1180px) ─── */
@media (min-width: 1150px) and (max-width: 1299px) and (orientation: landscape) {
    .home-title { margin-bottom: 1.4rem !important; font-size: 1.35rem !important; }
    .home-nav { margin-top: 1.4rem !important; }
    .home-nav-links a { font-size: 1.08rem !important; }
    .home-nav-bottom a { font-size: 0.88rem !important; }
    .home-hero img { max-height: 75vh !important; }
}

/* ─── iPAD MINI LANDSCAPE (~1024–1133px) ─── */
@media (min-width: 1000px) and (max-width: 1149px) and (orientation: landscape) {
    .home-title { margin-bottom: 1.4rem !important; font-size: 1.35rem !important; }
    .home-nav { margin-top: 1.4rem !important; }
    .home-nav-links a { font-size: 1.08rem !important; }
    .home-nav-bottom a { font-size: 0.88rem !important; }
    .home-hero img { max-height: 75vh !important; }
}

@media (min-width: 481px) and (max-width: 1366px) {

    /* Concepts lightbox */
    .concepts-lightbox.active { align-items: center; }
    .concepts-lightbox .lightbox-inner { width: auto; height: auto; flex: unset; }
    .concepts-lightbox .lightbox-slides { height: auto; }
    .concepts-lightbox .lightbox-slide { top: 50%; transform: translate(-50%, -50%); }
    .concepts-lightbox .lightbox-img { max-width: 80vw; max-height: 75vh; }

    /* ── Photo positions — adjust left/right/top/width freely ── */
    .photo-1 { position: absolute !important; left: 3% !important; top: 1.95vw !important; width: 42% !important; }  /* NickEnsingDavidAskew07_2025Shot1.jpg */
    .photo-2 { position: absolute !important; left: 14% !important; top: 47.66vw !important; width: 32% !important; }  /* NickEnsingCatalinaatlanta2023shot2.jpg */
    .photo-3 { position: absolute !important; right: 3% !important; top: 1.95vw !important; width: 27% !important; }  /* NickEnsingCatalinaatlanta2023.jpg */
    .photo-4 { position: absolute !important; left: 56% !important; top: 29.69vw !important; width: 17% !important; }  /* NickEnsingPrincessAli08_2024.jpg */
    .photo-5 { position: absolute !important; right: 4% !important; top: 48.83vw !important; width: 18% !important; }  /* balloonphonebooth.jpg */
    .photo-6 { position: absolute !important; left: 47% !important; top: 56.15vw !important; width: 16.025% !important; }  /* NickEnsingErinDavidson11_2025Shot1.jpg */
    .photo-7 { position: absolute !important; right: 8% !important; top: 88.87vw !important; width: 24% !important; }  /* NickEnsingErinDavidson11_2025Shot2.jpg */
    .photo-8 { position: absolute !important; left: 11% !important; top: 93.75vw !important; width: 23% !important; }  /* NickEnsingDavid07_2025Look2Shot1.jpg */
    .photo-9 { position: absolute !important; left: 44% !important; top: 123.83vw !important; width: 34% !important; }  /* NickEnsingDavid07_2025Look2Shot2.jpg */
    .photo-10 { position: absolute !important; left: 5.5% !important; top: 145vw !important; width: 14% !important; }  /* NickEnsingSub10_2025.jpg */
    .photo-11 { position: absolute !important; left: 28% !important; top: 167.5vw !important; width: 20% !important; }  /* NickEnsingAri&Rick10_2025Shot1.jpg */
    .photo-12 { position: absolute !important; left: 48.5% !important; top: 193.36vw !important; width: 8% !important; }  /* NickEnsingPrincessAli11_2022Shot2.jpg */
    .photo-13 { position: absolute !important; left: 58% !important; top: 172.61vw !important; width: 38% !important; }  /* NickEnsingPrincessAli11_2022.jpg */
    .photo-14 { position: absolute !important; left: 8% !important; top: 193.54vw !important; width: 28% !important; }  /* NickEnsingBrooksWelch08_2016.jpg */
    .photo-15 { position: absolute !important; right: 4% !important; top: 210.72vw !important; width: 18% !important; }  /* NickEnsingCammyCarter_2019.jpg */
    .photo-16 { position: absolute !important; left: 54% !important; top: 227.72vw !important; width: 21% !important; }  /* NickEnsingSyd02_2020.jpg */
    .photo-17 { position: absolute !important; left: 10% !important; top: 223.83vw !important; width: 30% !important; }  /* NickEnsingPrincessAli_2022.jpg */
    .photo-18 { position: absolute !important; left: 45% !important; top: 248.78vw !important; width: 12.5% !important; }  /* NickEnsingPrincessAli_2020.jpg */
    .photo-19 { position: absolute !important; left: 68% !important; top: 260.82vw !important; width: 28% !important; }  /* NickEnsingBrooksWelch_2025.jpg */
    .photo-20 { position: absolute !important; left: 3% !important; top: 270vw !important; width: 32% !important; }  /* NickEnsingJulianaNorton_2024.jpg */
    .photo-21 { position: absolute !important; left: 41% !important; top: 294.44vw !important; width: 14.44% !important; }  /* NickEnsingJulianaNorton_2024Shot2.jpg */
    .photo-22 { position: absolute !important; left: 54% !important; top: 276.5vw !important; width: 8.88% !important; }  /* NickEnsingOrchidMichigan_2017.png */
    .photo-23 { position: absolute !important; left: 11% !important; top: 315vw !important; width: 14% !important; }  /* NickEnsingStillLife_2018.jpg */
    .photo-24 { position: absolute !important; left: 67% !important; top: 304vw !important; width: 30% !important; }  /* NickEnsingJasmineForte_2025.jpg */
    .photo-25 { position: absolute !important; left: 30.88% !important; top: 330vw !important; width: 18.88% !important; }  /* PrintThisOut.jpg */
    .photo-26 { position: absolute !important; left: 8.44% !important; top: 345vw !important; width: 17% !important; }  /* NickEnsingDavid05_2026Shot2.jpg */
    .photo-27 { position: absolute !important; left: 14% !important; top: 380.44vw !important; width: 34% !important; }  /* NickEnsingDavid05_2026Shot4.jpg */
    .photo-28 { position: absolute !important; left: 64% !important; top: 357vw !important; width: 26% !important; }  /* NickEnsingDavid05_2026Shot3.jpg */
    .photo-29 { position: absolute !important; left: 62% !important; top: 398vw !important; width: 34% !important; }  /* NickEnsingDavid05_2026Shot5.jpg */
    .photo-30 { position: absolute !important; left: 3% !important; top: 438vw !important; width: 16.44% !important; }  /* NickEnsingDavid05_2026Shot6.jpg */
    .photo-31 { position: absolute !important; left: 21.088% !important; top: 438vw !important; width: 25.70% !important; }  /* NickEnsingDavid05_2026Shot7.jpg */
    .photo-32 { position: absolute !important; left: 57.44% !important; top: 450vw !important; width: 36% !important; }  /* NickEnsingDavid06_2026Shot2.jpg */
    .photo-33 { position: absolute !important; left: 21% !important; top: 474vw !important; width: 18.88% !important; }  /* PLACEHOLDER3.jpg */
    .photo-34 { position: absolute !important; left: 65% !important; top: 492vw !important; width: 29% !important; }  /* NickEnsingDavid06_2026Shot4.jpg */
    .photo-35 { position: absolute !important; left: 3% !important; top: 507vw !important; width: 19% !important; }  /* PLACEHOLDER5.jpg */
    .photo-36 { position: absolute !important; left: 24% !important; top: 506.05vw !important; width: 22% !important; }  /* NickEnsingDavid06_2026Shot5.jpg */
    .photo-37 { position: absolute !important; left: 64% !important; top: 535vw !important; width: 25% !important; }  /* NickEnsingDavid06_2026Shot6.jpg */
    .photo-38 { position: absolute !important; left: 13% !important; top: 548vw !important; width: 28% !important; }  /* PLACEHOLDER8.jpg */
    .photo-39 { position: absolute !important; left: 58% !important; top: 577vw !important; width: 35% !important; }  /* NickEnsingDavid06_2026Shot8.jpg */
    .photo-40 { position: absolute !important; left: 17% !important; top: 589vw !important; width: 27% !important; }  /* NickEnsingRianRich01_2020.jpg */
    .photo-41 { position: absolute !important; left: 53.75% !important; top: 615vw !important; width: 25.88% !important; }  /* NickEnsingDavid07_2025Montage.jpg */
    .photo-42 { position: absolute !important; left: 55.88% !important; top: 637.078vw !important; width: 24.95% !important; }  /* NickEnsingDavidAskew07_2025Look2Shot3.jpg */
    .photo-43 { position: absolute !important; left: 18% !important; top: 637vw !important; width: 34.44% !important; }  /* NickEnsingPrincessAli_2024.jpg */
    .photo-44 { position: absolute !important; left: 19% !important; top: 684vw !important; width: 35% !important; }  /* NickEnsingTiaJackson02_2024.jpg */
    .photo-45 { position: absolute !important; left: 56% !important; top: 687.5vw !important; width: 6.74% !important; }  /* NickEnsingIvy03_2024.jpg */
    .photo-46 { position: absolute !important; left: 64.5% !important; top: 690vw !important; width: 19.88% !important; }  /* NickEnsingPrincessAli12_2023.jpg */
    .photo-47 { position: absolute !important; left: 5.44% !important; top: 719vw !important; width: 11.88% !important; }  /* NickEnsingHead_Makeup2025.jpg */
    .photo-48 { position: absolute !important; left: 27.88% !important; top: 715vw !important; width: 18% !important; }  /* NickEnsingAri&Rick10_2025Shot3.jpg */
    .photo-49 { position: absolute !important; left: 46.88% !important; top: 732vw !important; width: 13.44% !important; }  /* NickEnsingAbreale02_2024.jpg */
    .photo-50 { position: absolute !important; right: 5% !important; top: 729vw !important; width: 19% !important; }  /* NickEnsingDrewFriday_2024.jpg */
    .photo-51 { position: absolute !important; left: 2% !important; top: 752vw !important; width: 34.44% !important; }  /* NickEnsingJaybella_2024.jpg */
    .photo-52 { position: absolute !important; left: 12.44% !important; top: 785vw !important; width: 14.88% !important; }  /* NickEnsingDavidAskew07_2025altcrop.jpg */
    .photo-53 { position: absolute !important; left: 47% !important; top: 768vw !important; width: 25.88% !important; }  /* NickEnsingDavidAskew07_2025Shot2.jpg */
    .photo-54 { position: absolute !important; left: 73.56% !important; top: 781.3575vw !important; width: 17% !important; }  /* NickEnsingDavidAskew07_2025Montage.jpg */
    .photo-55 { position: absolute !important; left: 47% !important; top: 815vw !important; width: 13.88% !important; }  /* NickEnsingShoeCloset_2017.jpg */
    .photo-56 { position: absolute !important; left: 6% !important; top: 808vw !important; width: 26.44% !important; }  /* NickEnsingErinDavidson11_2025Shot4.jpg */
    .photo-57 { position: absolute !important; left: 49% !important; top: 842vw !important; width: 18.88% !important; }  /* NickEnsingJuliana_2024.jpg */
    .photo-58 { position: absolute !important; left: 75.88% !important; top: 823vw !important; width: 20% !important; }  /* NickEnsingQuis_2022.jpg */
    .photo-59 { position: absolute !important; left: 11% !important; top: 835vw !important; width: 17.88% !important; }  /* NickEnsingReece_2019.jpg */
    .photo-60 { position: absolute !important; left: 23% !important; top: 873vw !important; width: 38% !important; }  /* NickEnsingJalynn_2022.jpg */
    .photo-61 { position: absolute !important; left: 44% !important; top: 868.44vw !important; width: 44.44% !important; }  /* unused - reserved for a future photo */
}

/* ── DESIGN PAGE (design.html) — custom layout, TABLET PORTRAIT ONLY ── */

@media (min-width: 481px) and (max-width: 1366px) and (orientation: portrait) {
    .concepts-page .masonry-grid { height: 694.43vw !important; }

    /* Photos hidden from tablet-portrait grid but still in lightbox */
    .masonry-item.tablet-portrait-lightbox-only { display: none !important; }

    .concept-1  { position: absolute !important; left: 11%  !important; top: 2vw     !important; width: 38% !important; }  /* PRINCESSAUG24MagConcept1.jpg */
    .concept-2  { position: absolute !important; left: 52% !important; top: 2vw     !important; width: 38% !important; }  /* DAVIDJULY25MagConcept2.jpg */
    .concept-3  { position: absolute !important; left: 11%  !important; top: 58.6vw  !important; width: 38% !important; }  /* JASMINEAUG25MagConcept3AltCover.jpg */
    .concept-4  { position: absolute !important; left: 52% !important; top: 58.6vw  !important; width: 38% !important; }  /* DAVIDMAY26MagConcept4.jpg */
    .concept-5  { position: absolute !important; left: 3%  !important; top: 133.2vw !important; width: 50% !important; }  /* NoWorldTour.jpg */
    .concept-6  { position: absolute !important; left: 62% !important; top: 153.2vw !important; width: 28% !important; }  /* NickEnsingbassleveledalbumcover.jpg */
    .concept-7  { position: absolute !important; left: 57% !important; top: 191.24vw !important; width: 40% !important; }  /* NickEnsingmockalbum4.jpg */
    .concept-8  { position: absolute !important; left: 25%  !important; top: 212.2vw !important; width: 29% !important; }  /* NickEnsingmockalbum4tracklist.jpg */
    .concept-9  { position: absolute !important; left: 53% !important; top: 229.24vw !important; width: 44% !important; }  /* ComingNever!NE.jpg */
    .concept-10 { position: absolute !important; left: 6.25%  !important; top: 255.2vw !important; width: 32% !important; }  /* NEAlignmentsingle1.jpg */
    .concept-11 { position: absolute !important; left: 39.75% !important; top: 255.2vw !important; width: 32% !important; }  /* NEAlignmentsingle2.jpg */
    .concept-12 { position: absolute !important; left: 18%  !important; top: 292.2vw !important; width: 44% !important; }  /* NickEnsingAlbumCovermockprincess.png */
    .concept-13 { position: absolute !important; left: 65% !important; top: 323.39vw !important; width: 25% !important; }  /* NickEnsingtracklistprincess.jpg */
    .concept-14 { position: absolute !important; left: 3%  !important; top: 341.02vw !important; width: 55% !important; }  /* NickEnsingTourPosterprincess.jpg */
    .concept-15 { position: absolute !important; left: 79% !important; top: 386.39vw !important; width: 18% !important; }  /* NEMockSingle.jpg */
    .concept-16 { position: absolute !important; left: 69%  !important; top: 406.34vw !important; width: 28% !important; }  /* NEMockBonusTrack.jpg */
    .concept-17 { position: absolute !important; left: 59% !important; top: 439.39vw !important; width: 34% !important; }  /* NEMockAlbumCover.jpg */
    .concept-18 { position: absolute !important; left: 59%  !important; top: 475.34vw !important; width: 34% !important; }  /* NEmocktracklist.jpg */
    .concept-19 { position: absolute !important; left: 3% !important; top: 427.39vw !important; width: 50% !important; }  /* NETourPoster.jpg */
    .concept-20 { position: absolute !important; left: 12%  !important; top: 554.34vw !important; width: 36% !important; }  /* NEMockAlbumcoverjasmine.jpg */
    .concept-21 { position: absolute !important; left: 51% !important; top: 559.39vw !important; width: 40% !important; }  /* NETMockracklistjasmine.jpg */
    .concept-22 { position: absolute !important; left: 49%  !important; top: 619.39vw !important; width: 37% !important; }  /* julianaalbumcoveraltcopy.jpg */
    .concept-23 { position: absolute !important; left: 19% !important; top: 649.39vw !important; width: 28% !important; }  /* julianatracklist.jpg */
    .concept-24 { position: absolute !important; left: 71%  !important; top: 673.34vw !important; width: 23% !important; }  /* toiletalbumcover.jpg */
    .concept-25 { position: absolute !important; left: 53% !important; top: 681vw !important; width: 15% !important; }  /* singlecover.jpg */
    .concept-26 { position: absolute !important; left: 8%  !important; top: 507.34vw !important; width: 44% !important; }  /* NEMockAlbumcoverdavid.jpg */
    .concept-27 { position: absolute !important; left: 54.5% !important; top: 525vw !important; width: 32% !important; }  /* PLACEHOLDEr.jpg */
    .concept-28 { position: absolute !important; left: 5.5% !important; top: 607vw !important; width: 29% !important; }  /* NickDavidremix.jpg */
}

/* ── DESIGN PAGE (design.html) — custom layout, TABLET LANDSCAPE ONLY ── */
/* Wider viewport than portrait, so this uses 3 columns instead of 2.        */

@media (min-width: 481px) and (max-width: 1366px) and (orientation: landscape) {
    .concepts-page .masonry-grid { height: 361.4vw !important; }

    .concept-1  { position: absolute !important; left: 2.5%  !important; top: 4vw     !important; width: 23% !important; }  /* PRINCESSAUG24MagConcept1.jpg */
    .concept-2  { position: absolute !important; left: 26.5% !important; top: 4vw     !important; width: 23% !important; }  /* DAVIDJULY25MagConcept2.jpg */
    .concept-3  { position: absolute !important; left: 50.5% !important; top: 4vw     !important; width: 23% !important; }  /* JASMINEAUG25MagConcept3AltCover.jpg */
    .concept-4  { position: absolute !important; left: 74.5%  !important; top: 4vw    !important; width: 23% !important; }  /* DAVIDMAY26MagConcept4.jpg */
    .concept-5  { position: absolute !important; left: 3% !important; top: 47vw    !important; width: 35% !important; }  /* NoWorldTour.jpg */
    .concept-6  { position: absolute !important; left: 21% !important; top: 95vw    !important; width: 20% !important; }  /* NickEnsingbassleveledalbumcover.jpg */
    .concept-7  { position: absolute !important; left: 68% !important; top: 47vw !important; width: 30% !important; }  /* NickEnsingmockalbum4.jpg */
    .concept-8  { position: absolute !important; left: 49% !important; top: 80.5vw  !important; width: 23% !important; }  /* NickEnsingmockalbum4tracklist.jpg */
    .concept-9  { position: absolute !important; left: 79%  !important; top: 102vw    !important; width: 16% !important; }  /* ComingNever!NE.jpg */
    .concept-10 { position: absolute !important; left: 45.88% !important; top: 123.03vw !important; width: 24% !important; }  /* NEAlignmentsingle1.jpg */
    .concept-11 { position: absolute !important; left: 71%  !important; top: 123.03vw !important; width: 24% !important; }  /* NEAlignmentsingle2.jpg */
    .concept-12 { position: absolute !important; left: 5% !important; top: 135.5vw !important; width: 32% !important; }  /* NickEnsingAlbumCovermockprincess.png */
    .concept-13 { position: absolute !important; left: 39% !important; top: 159.03vw !important; width: 18% !important; }  /* NickEnsingtracklistprincess.jpg */
    .concept-14 { position: absolute !important; right: 2%  !important; top: 153.51vw !important; width: 34% !important; }  /* NickEnsingTourPosterprincess.jpg */
    .concept-15 { position: absolute !important; left: 4% !important; top: 187.91vw !important; width: 18% !important; }  /* NEMockSingle.jpg */
    .concept-16 { position: absolute !important; left: 24% !important; top: 198.03vw !important; width: 15% !important; }  /* NEMockBonusTrack.jpg */
    .concept-17 { position: absolute !important; left: 45% !important; top: 207vw !important; width: 30% !important; }  /* NEMockAlbumCover.jpg */
    .concept-18 { position: absolute !important; right: 4%  !important; top: 218vw !important; width: 19% !important; }  /* NEmocktracklist.jpg */
    .concept-19 { position: absolute !important; left: 7% !important; top: 220.03vw !important; width: 34% !important; }  /* NETourPoster.jpg */
    .concept-20 { position: absolute !important; left: 5% !important; top: 279.38vw !important; width: 30% !important; }  /* NEMockAlbumcoverjasmine.jpg */
    .concept-21 { position: absolute !important; left: 37%  !important; top: 298.91vw !important; width: 20% !important; }  /* NETMockracklistjasmine.jpg */
    .concept-22 { position: absolute !important; left: 27% !important; top: 334.38vw !important; width: 24% !important; }  /* julianaalbumcoveraltcopy.jpg */
    .concept-23 { position: absolute !important; left: 7% !important; top: 324.38vw !important; width: 18% !important; }  /* julianatracklist.jpg */
    .concept-24 { position: absolute !important; left: 78%  !important; top: 349.91vw !important; width: 17% !important; }  /* toiletalbumcover.jpg */
    .concept-25 { position: absolute !important; left: 65% !important; top: 355.38vw !important; width: 11% !important; }  /* singlecover.jpg */
    .concept-26 { position: absolute !important; left: 58% !important; top: 249.53vw !important; width: 33% !important; }  /* NEMockAlbumcoverdavid.jpg */
    .concept-27 { position: absolute !important; left: 66%  !important; top: 285.91vw !important; width: 25% !important; }  /* PLACEHOLDEr.jpg */
    .concept-28 { position: absolute !important; left: 63% !important; top: 320vw !important; width: 23% !important; }  /* NickDavidremix.jpg */
}


/* ─── PHONE HOME PAGE CENTERING (≤480px, any orientation) ── */

@media (max-width: 480px) {
    .home-page { display: flex !important; flex-direction: column !important; align-items: center !important; width: 100% !important; padding: 6rem 1.5rem 2rem !important; }
    .home-title { text-align: center !important; width: 100% !important; font-size: 1rem !important; }
    .home-hero { width: 100% !important; margin: 0 auto !important; }
    .home-hero img { display: block !important; margin: 0 auto !important; }
    .home-nav { display: flex !important; flex-direction: column !important; align-items: center !important; width: 100% !important; }
    .home-nav-links { display: flex !important; justify-content: center !important; width: 100% !important; }
    .home-nav-links a { font-size: 0.82rem !important; }
    .home-nav-bottom { display: flex !important; justify-content: center !important; width: 100% !important; }
    .home-nav-bottom a { font-size: 0.7rem !important; }
    .home-page .home-footer { text-align: center !important; width: 100% !important; margin-top: auto !important; padding-bottom: 1.5rem !important; }
}

/* ─── iPHONE SE (375px) ─── */
@media (max-width: 375px) {
    .home-page { padding-top: 5.44rem !important; }
}

/* ─── PHONE LAYOUT (portrait only, ≤480px) ──────────────── */

@media (max-width: 480px) and (orientation: portrait) {

    /* Grid: fully custom absolute positioning */
    .masonry-grid {
        position: relative !important;
        display: block !important;
        height: 1885.1vw !important;
        padding: 0 !important;
    }

    .masonry-item {
        position: absolute !important;
    }

    .masonry-item.lightbox-only { display: none !important; }

    /* Photos hidden from phone grid but still in lightbox */
    .masonry-item.phone-lightbox-only { display: none !important; }

    /* Info page background: shift crop left so the face profile outline shows instead of just fabric */
    .info-bg img { object-position: 17% center; }

    /* Info page background: dark tint so white text stands out */
    .info-bg::after {
        content: '';
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.28);
        pointer-events: none;
    }

    /* Info page text: fixed (narrow) width so it always wraps like the reference layout,
       instead of stretching wider and breaking the line breaks on bigger phones */
    body { overflow-x: hidden !important; }
    /* Everything below scales proportionally to viewport width (vw units, not px/rem),
       so the box-width-to-font-size ratio is identical on every phone size — meaning
       the text ALWAYS wraps at the exact same points, just physically bigger or smaller. */
    .info-content { padding-left: 8vw !important; padding-right: 8vw !important; }

    .info-main {
        width: 83.75vw !important;
        max-width: 83.75vw !important;
        flex-shrink: 0 !important;
        margin-right: 4vw !important;
    }

    .info-bio { font-size: 3.6vw !important; }
    .info-contact .inquire { font-size: 3.6vw !important; }
    .info-contact .contact-line { font-size: 2.88vw !important; }


    /* Disable captions on phone */
    .lightbox-caption { display: none !important; }

    /* Hide custom cursors on phone */
    #camera-cursor, #hand-cursor { display: none !important; }

    /* Smaller footer text on phone */
    .home-footer { font-size: 0.36rem !important; }

    /* Tighter footer spacing on phone (overrides the shared 3rem margin AND
       the 4.44rem padding-top baked into the base .home-footer rule) */
    .grid-page .home-footer { margin-top: 1rem !important; padding-top: 0.5rem !important; }


    .page-section-title {
        padding-bottom: 1.5rem !important;
        padding-top: 1rem !important;
    }

    /* Lightbox */
    .lightbox.active { padding: 6px 8px; }
    .lightbox-img { max-width: 91vw !important; max-height: 91vh !important; }
    .lightbox-img-wrap img { max-width: 91vw !important; max-height: 91vh !important; }
    .lightbox-arrow { display: none !important; }
    .lightbox-arrow.prev { left: 0.3rem; }
    .lightbox-arrow.next { right: 0.3rem; }

    /* Concepts lightbox */
    .concepts-lightbox.active { align-items: center; }
    .concepts-lightbox .lightbox-inner { width: auto; height: auto; flex: unset; }
    .concepts-lightbox .lightbox-slides { height: auto; }
    .concepts-lightbox .lightbox-slide { top: 50%; transform: translate(-50%, -50%); }
    .concepts-lightbox .lightbox-img { max-width: 92vw; max-height: 75vh; }

    /* ── Photo positions — adjust left/right/top/width freely ── */
    .photo-1 { position: absolute !important; left: 4% !important; top: 2.56vw !important; width: 55% !important; }  /* NickEnsingDavidAskew07_2025Shot1.jpg */
    .photo-2 { position: absolute !important; left: 6% !important; top: 114.87vw !important; width: 50% !important; }  /* NickEnsingCatalinaatlanta2023shot2.jpg */
    .photo-3 { position: absolute !important; right: 4% !important; top: 51.03vw !important; width: 44% !important; }  /* NickEnsingCatalinaatlanta2023.jpg */
    .photo-4 { position: absolute !important; left: 14% !important; top: 76.92vw !important; width: 30% !important; }  /* NickEnsingPrincessAli08_2024.jpg */
    .photo-5 { position: absolute !important; left: 6% !important; top: 351.28vw !important; width: 88% !important; }  /* balloonphonebooth.jpg */
    .photo-6 { position: absolute !important; left: 58% !important; top: 126.75vw !important; width: 26% !important; }  /* NickEnsingErinDavidson11_2025Shot1.jpg */
    .photo-7 { position: absolute !important; left: 54.44% !important; top: 183.08vw !important; width: 40.88% !important; }  /* NickEnsingErinDavidson11_2025Shot2.jpg */
    .photo-8 { position: absolute !important; left: 8% !important; top: 202.05vw !important; width: 28% !important; }  /* NickEnsingDavid07_2025Look2Shot1.jpg */
    .photo-9 { position: absolute !important; left: 44% !important; top: 243.59vw !important; width: 44.88% !important; }  /* NickEnsingDavid07_2025Look2Shot2.jpg */
    .photo-10 { position: absolute !important; left: 4% !important; top: 270.26vw !important; width: 18.88% !important; }  /* NickEnsingSub10_2025.jpg */
    .photo-11 { position: absolute !important; left: 15% !important; top: 307.69vw !important; width: 27% !important; }  /* NickEnsingAri&Rick10_2025Shot1.jpg */
    .photo-12 { position: absolute !important; left: 28% !important; top: 344.62vw !important; width: 16% !important; }  /* NickEnsingPrincessAli11_2022Shot2.jpg */
    .photo-13 { position: absolute !important; left: 47% !important; top: 316.41vw !important; width: 48% !important; }  /* NickEnsingPrincessAli11_2022.jpg */
    .photo-14 { position: absolute !important; left: 4% !important; top: 374.1vw !important; width: 39.44% !important; }  /* NickEnsingBrooksWelch08_2016.jpg */
    .photo-15 { position: absolute !important; right: 4% !important; top: 370.26vw !important; width: 25% !important; }  /* NickEnsingCammyCarter_2019.jpg */
    .photo-16 { position: absolute !important; left: 57.44% !important; top: 410.26vw !important; width: 30% !important; }  /* NickEnsingSyd02_2020.jpg */
    .photo-17 { position: absolute !important; left: 6% !important; top: 424.1vw !important; width: 44.44% !important; }  /* NickEnsingPrincessAli_2022.jpg */
    .photo-18 { position: absolute !important; left: 52.88% !important; top: 449.74vw !important; width: 20% !important; }  /* NickEnsingPrincessAli_2020.jpg */
    .photo-19 { position: absolute !important; left: 60% !important; top: 488.21vw !important; width: 34.44% !important; }  /* NickEnsingBrooksWelch_2025.jpg */
    .photo-20 { position: absolute !important; left: 4% !important; top: 506.15vw !important; width: 48% !important; }  /* NickEnsingJulianaNorton_2024.jpg */
    .photo-21 { position: absolute !important; left: 56% !important; top: 544.36vw !important; width: 28% !important; }  /* NickEnsingJulianaNorton_2024Shot2.jpg */
    .photo-22 { position: absolute !important; left: 19% !important; top: 580.51vw !important; width: 16% !important; }  /* NickEnsingOrchidMichigan_2017.png */
    .photo-23 { position: absolute !important; left: 6% !important; top: 600.26vw !important; width: 23% !important; }  /* NickEnsingStillLife_2018.jpg */
    .photo-24 { position: absolute !important; left: 44% !important; top: 608.72vw !important; width: 50.44% !important; }  /* NickEnsingJasmineForte_2025.jpg */
    .photo-25 { position: absolute !important; left: 6.2% !important; top: 652.31vw !important; width: 30% !important; }  /* PrintThisOut.jpg */
    .photo-26 { position: absolute !important; left: 53% !important; top: 689.23vw !important; width: 24% !important; }  /* NickEnsingDavid05_2026Shot2.jpg */
    .photo-27 { position: absolute !important; left: 12% !important; top: 741.79vw !important; width: 54% !important; }  /* NickEnsingDavid05_2026Shot4.jpg */
    .photo-28 { position: absolute !important; left: 54% !important; top: 690vw !important; width: 32% !important; }  /* NickEnsingDavid05_2026Shot3.jpg */
    .photo-29 { position: absolute !important; left: 16% !important; top: 822.69vw !important; width: 68% !important; }  /* NickEnsingDavid05_2026Shot5.jpg */
    .photo-30 { position: absolute !important; left: 4% !important; top: 902.74vw !important; width: 32% !important; }  /* NickEnsingDavid05_2026Shot6.jpg */
    .photo-31 { position: absolute !important; left: 39% !important; top: 902.74vw !important; width: 50% !important; }  /* NickEnsingDavid05_2026Shot7.jpg */
    .photo-32 { position: absolute !important; left: 29.5% !important; top: 955.46vw !important; width: 54.88% !important; }  /* NickEnsingDavid06_2026Shot2.jpg */
    .photo-33 { position: absolute !important; left: 7% !important; top: 1015.51vw !important; width: 32% !important; }  /* PLACEHOLDER3.jpg */
    .photo-34 { position: absolute !important; left: 55% !important; top: 1032.56vw !important; width: 40.5% !important; }  /* NickEnsingDavid06_2026Shot4.jpg */
    .photo-35 { position: absolute !important; left: 6% !important; top: 2966.67vw !important; width: 88% !important; }  /* PLACEHOLDER5.jpg */
    .photo-36 { position: absolute !important; left: 14% !important; top: 1068.72vw !important; width: 29% !important; }  /* NickEnsingDavid06_2026Shot5.jpg */
    .photo-37 { position: absolute !important; left: 52% !important; top: 1100.23vw !important; width: 40% !important; }  /* NickEnsingDavid06_2026Shot6.jpg */
    .photo-38 { position: absolute !important; left: 4% !important; top: 1125.13vw !important; width: 33% !important; }  /* PLACEHOLDER8.jpg */
    .photo-39 { position: absolute !important; left: 20% !important; top: 1168.85vw !important; width: 65% !important; }  /* NickEnsingDavid06_2026Shot8.jpg */
    .photo-40 { position: absolute !important; left: 44% !important; top: 1238.31vw !important; width: 44% !important; }  /* NickEnsingRianRich01_2020.jpg */
    .photo-41 { position: absolute !important; left: 2.44% !important; top: 1257.95vw !important; width: 32% !important; transform: rotate(-90deg) !important; }  /* NickEnsingDavid07_2025Montage.jpg */
    .photo-42 { position: absolute !important; left: 59% !important; top: 1310.69vw !important; width: 37% !important; }  /* NickEnsingDavidAskew07_2025Look2Shot3.jpg */
    .photo-43 { position: absolute !important; left: 4% !important; top: 1310.69vw !important; width: 51% !important; }  /* NickEnsingPrincessAli_2024.jpg */
    .photo-44 { position: absolute !important; left: 6% !important; top: 1376.92vw !important; width: 48% !important; }  /* NickEnsingTiaJackson02_2024.jpg */
    .photo-45 { position: absolute !important; left: 57% !important; top: 1390.77vw !important; width: 14% !important; }  /* NickEnsingIvy03_2024.jpg */
    .photo-46 { position: absolute !important; left: 63% !important; top: 1415.38vw !important; width: 32% !important; }  /* NickEnsingPrincessAli12_2023.jpg */
    .photo-47 { position: absolute !important; left: 20% !important; top: 1425.64vw !important; width: 19.88% !important; }  /* NickEnsingHead_Makeup2025.jpg */
    .photo-48 { position: absolute !important; left: 13% !important; top: 1470.26vw !important; width: 36.44% !important; }  /* NickEnsingAri&Rick10_2025Shot3.jpg */
    .photo-49 { position: absolute !important; left: 53% !important; top: 1503.08vw !important; width: 31% !important; }  /* NickEnsingAbreale02_2024.jpg */
    .photo-50 { position: absolute !important; left: 6% !important; top: 1542.31vw !important; width: 36.44% !important; }  /* NickEnsingDrewFriday_2024.jpg */
    .photo-51 { position: absolute !important; left: 6% !important; top: 4381.54vw !important; width: 88% !important; }  /* NickEnsingJaybella_2024.jpg */
    .photo-52 { position: absolute !important; left: 64.88% !important; top: 1575.38vw !important; width: 28.88% !important; }  /* NickEnsingDavidAskew07_2025altcrop.jpg */
    .photo-53 { position: absolute !important; left: 4% !important; top: 1615.38vw !important; width: 54.75% !important; }  /* NickEnsingDavidAskew07_2025Shot2.jpg */
    .photo-54 { position: absolute !important; left: 60.15% !important; top: 1636.67vw !important; width: 36% !important; }  /* NickEnsingDavidAskew07_2025Montage.jpg */
    .photo-55 { position: absolute !important; left: 65% !important; top: 1699.74vw !important; width: 22% !important; }  /* NickEnsingShoeCloset_2017.jpg */
    .photo-56 { position: absolute !important; left: 12.4% !important; top: 1719.49vw !important; width: 47% !important; }  /* NickEnsingErinDavidson11_2025Shot4.jpg */
    .photo-57 { position: absolute !important; left: 15% !important; top: 1769.23vw !important; width: 35% !important; }  /* NickEnsingJuliana_2024.jpg */
    .photo-58 { position: absolute !important; left: 61% !important; top: 1759.87vw !important; width: 30% !important; }  /* NickEnsingQuis_2022.jpg */
    .photo-59 { position: absolute !important; left: 58% !important; top: 1818.05vw !important; width: 28% !important; }  /* NickEnsingReece_2019.jpg */
    .photo-60 { position: absolute !important; left: 17% !important; top: 1852.15vw !important; width: 58% !important; }  /* NickEnsingJalynn_2022.jpg */
    .photo-61 { position: absolute !important; left: 24% !important; top: 1877.44vw !important; width: 68% !important; }  /* unused - reserved for a future photo */

    /* ── DESIGN PAGE (design.html) — custom phone layout ── */
    .concepts-page .masonry-grid { height: 795vw !important; }

    .concept-1  { position: absolute !important; left: 4%  !important; top: 4vw     !important; width: 44% !important; }  /* PRINCESSAUG24MagConcept1.jpg */
    .concept-2  { position: absolute !important; left: 52% !important; top: 4vw     !important; width: 44% !important; }  /* DAVIDJULY25MagConcept2.jpg */
    .concept-3  { position: absolute !important; left: 4%  !important; top: 68.6vw  !important; width: 44% !important; }  /* JASMINEAUG25MagConcept3AltCover.jpg */
    .concept-4  { position: absolute !important; left: 52% !important; top: 68.6vw  !important; width: 44% !important; }  /* DAVIDMAY26MagConcept4.jpg */
    .concept-5  { position: absolute !important; left: 4%  !important; top: 145.2vw !important; width: 58% !important; }  /* NoWorldTour.jpg */
    .concept-6  { position: absolute !important; left: 66% !important; top: 170.2vw !important; width: 30% !important; }  /* NickEnsingbassleveledalbumcover.jpg */
    .concept-7  { position: absolute !important; left: 4% !important; top: 233.2vw !important; width: 44% !important; }  /* NickEnsingmockalbum4.jpg */
    .concept-8  { position: absolute !important; left: 52%  !important; top: 233.2vw !important; width: 44% !important; }  /* NickEnsingmockalbum4tracklist.jpg */
    .concept-9  { position: absolute !important; left: 62% !important; top: 291.24vw !important; width: 28% !important; }  /* ComingNever!NE.jpg */
    .concept-10 { position: absolute !important; left: 14.5%  !important; top: 292.2vw !important; width: 34% !important; }  /* NEAlignmentsingle1.jpg */
    .concept-11 { position: absolute !important; left: 51.5% !important; top: 292.2vw !important; width: 34% !important; }  /* NEAlignmentsingle2.jpg */
    .concept-12 { position: absolute !important; left: 4%  !important; top: 329.2vw !important; width: 44% !important; }  /* NickEnsingAlbumCovermockprincess.png */
    .concept-13 { position: absolute !important; left: 52% !important; top: 329.2vw !important; width: 44% !important; }  /* NickEnsingtracklistprincess.jpg */
    .concept-14 { position: absolute !important; left: 23.5%  !important; top: 378.02vw !important; width: 54% !important; }  /* NickEnsingTourPosterprincess.jpg */
    .concept-15 { position: absolute !important; left: 4% !important; top: 458.39vw !important; width: 21% !important; }  /* NEMockSingle.jpg */
    .concept-16 { position: absolute !important; left: 28%  !important; top: 465.34vw !important; width: 29% !important; }  /* NEMockBonusTrack.jpg */
    .concept-17 { position: absolute !important; left: 60% !important; top: 482.39vw !important; width: 36% !important; }  /* NEMockAlbumCover.jpg */
    .concept-18 { position: absolute !important; left: 60%  !important; top: 522.34vw !important; width: 36% !important; }  /* NEmocktracklist.jpg */
    .concept-19 { position: absolute !important; left: 5.88% !important; top: 502.39vw !important; width: 45% !important; }  /* NETourPoster.jpg */
    .concept-20 { position: absolute !important; left: 4%  !important; top: 600vw !important; width: 38% !important; }  /* NEMockAlbumcoverjasmine.jpg */
    .concept-21 { position: absolute !important; left: 16% !important; top: 644vw !important; width: 28% !important; }  /* NETMockracklistjasmine.jpg */
    .concept-22 { position: absolute !important; left: 18%  !important; top: 735.34vw !important; width: 37% !important; }  /* julianaalbumcoveraltcopy.jpg */
    .concept-23 { position: absolute !important; left: 61% !important; top: 749.39vw !important; width: 29% !important; }  /* julianatracklist.jpg */
    .concept-24 { position: absolute !important; left: 60% !important; top: 690.5vw !important; width: 32% !important; }  /* toiletalbumcover.jpg */
    .concept-25 { position: absolute !important; left: 30% !important; top: 782.39vw !important; width: 20% !important; }  /* singlecover.jpg */
    .concept-26 { position: absolute !important; left: 45%  !important; top: 575.34vw !important; width: 52% !important; }  /* NEMockAlbumcoverdavid.jpg */
    .concept-27 { position: absolute !important; left: 47% !important; top: 629.5vw !important; width: 38% !important; }  /* PLACEHOLDEr.jpg */
    .concept-28 { position: absolute !important; left: 8% !important; top: 690.5vw !important; width: 32% !important; }  /* nickdavidremix.jpg */
}
