/* ============================================
   recycle.auction — Evolved-Minimal Auction House
   Neon-veined marble reliquary
   ============================================ */

:root {
    --void: #0a0a0f;
    --stone-dark: #1a1a1f;
    --stone-light: #e8e5e0;
    --weathered: #a09e98;
    --neon: #00ff88;
    --stone-vein: #2a2a30;
    --neon-glow-soft: rgba(0, 255, 136, 0.15);
    --neon-glow-strong: rgba(0, 255, 136, 0.4);
    --neon-text-glow: 0 0 12px rgba(0, 255, 136, 0.3);
    --neon-box-glow: 0 0 20px rgba(0, 255, 136, 0.15);
    --neon-box-glow-hover: 0 0 30px rgba(0, 255, 136, 0.4);
    --reveal-duration: 800ms;
    --reveal-easing: cubic-bezier(0.25, 0.1, 0.25, 1);
    --expand-duration: 500ms;
}

/* ---- RESET & BASE ---- */

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

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    background-color: var(--stone-dark);
    color: var(--stone-light);
    font-family: 'Barlow Condensed', sans-serif;
    overflow-x: hidden;
    line-height: 1.5;
}

/* ---- ZONE BASE ---- */

.zone {
    position: relative;
    width: 100%;
}

/* ============================================
   ZONE 1: VAULT ENTRANCE
   ============================================ */

.zone--entrance {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--stone-dark);
}

.entrance-marble {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 30%, rgba(42,42,48,0.5) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 70%, rgba(42,42,48,0.4) 0%, transparent 45%),
        radial-gradient(ellipse at 50% 50%, rgba(42,42,48,0.3) 0%, transparent 60%),
        linear-gradient(160deg, rgba(30,30,36,0.4) 0%, transparent 40%),
        linear-gradient(320deg, rgba(30,30,36,0.3) 20%, transparent 60%),
        var(--stone-dark);
    z-index: 1;
}

.fracture-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    filter: drop-shadow(0 0 8px rgba(0, 255, 136, 0.3));
}

.fracture-path {
    stroke-dasharray: 2000;
    stroke-dashoffset: 2000;
    transition: none;
}

.fracture-path.animated {
    animation: drawFracture 2500ms ease-out forwards;
}

.fracture-path--branch.animated {
    animation: drawFracture 1800ms ease-out 800ms forwards;
}

.fracture-path--branch2.animated {
    animation: drawFracture 1200ms ease-out 1200ms forwards;
}

@keyframes drawFracture {
    to {
        stroke-dashoffset: 0;
    }
}

.entrance-title {
    position: relative;
    z-index: 3;
    text-align: center;
}

.site-name {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    font-size: clamp(2.2rem, 5vw, 4.8rem);
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--stone-light);
    text-shadow: var(--neon-text-glow);
}

/* ============================================
   ZONE 2: EXCAVATION GRID
   ============================================ */

.zone--excavation {
    background: var(--stone-dark);
    padding: clamp(2rem, 5vw, 6rem) clamp(1rem, 3vw, 4rem);
}

.grid-header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: clamp(2rem, 4vw, 4rem);
    padding-bottom: 1rem;
}

.grid-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 300;
    font-size: clamp(1rem, 2.5vw, 1.6rem);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--weathered);
    white-space: nowrap;
}

.grid-divider {
    flex: 1;
    height: 1px;
    background: var(--weathered);
    opacity: 0.3;
}

/* ---- MASONRY GRID ---- */

.masonry-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr 0.8fr;
    grid-auto-rows: minmax(180px, auto);
    gap: 2px;
}

/* ---- LOT BLOCKS ---- */

.lot {
    position: relative;
    cursor: pointer;
    overflow: hidden;
    background:
        radial-gradient(ellipse at var(--vein-x1, 30%) var(--vein-y1, 40%), rgba(42,42,48,0.6) 0%, transparent 50%),
        radial-gradient(ellipse at var(--vein-x2, 70%) var(--vein-y2, 60%), rgba(42,42,48,0.4) 0%, transparent 40%),
        linear-gradient(135deg, rgba(30,30,36,0.3) 25%, transparent 25%),
        var(--stone-dark);
    transition: background-color 300ms ease;
}

.lot:hover {
    background-color: rgba(42,42,48,0.2);
}

.lot--span1 {
    grid-row: span 1;
}

.lot--span2 {
    grid-row: span 2;
}

.lot--span3 {
    grid-row: span 3;
}

/* ---- LOT BORDERS (neon accent) ---- */

.lot-border {
    position: absolute;
    background: var(--neon);
    box-shadow: var(--neon-box-glow);
    transition: box-shadow 300ms ease;
}

.lot:hover .lot-border {
    box-shadow: var(--neon-box-glow-hover);
}

.lot-border--left {
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
}

.lot-border--bottom {
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
}

/* ---- LOT CONTENT ---- */

.lot-content {
    padding: clamp(1.2rem, 2vw, 2rem);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.lot-number {
    font-family: 'Space Mono', monospace;
    font-weight: 400;
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    color: var(--neon);
    opacity: 0.8;
    text-shadow: var(--neon-text-glow);
    margin-bottom: 0.75rem;
    display: block;
}

.lot-name {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    font-size: clamp(1.2rem, 2.5vw, 1.8rem);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--stone-light);
    margin-bottom: 0.5rem;
    line-height: 1.2;
}

.lot-bid {
    font-family: 'Space Mono', monospace;
    font-weight: 400;
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    color: var(--neon);
    opacity: 0.8;
    text-shadow: var(--neon-text-glow);
}

/* ---- LOT DETAIL (expandable) ---- */

.lot-detail {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--expand-duration) ease;
    margin-top: auto;
}

.lot.expanded .lot-detail {
    max-height: 300px;
}

.lot-description {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 300;
    font-style: italic;
    font-size: clamp(0.85rem, 1.5vw, 1.1rem);
    letter-spacing: 0.02em;
    color: var(--stone-light);
    opacity: 0.6;
    line-height: 1.7;
    padding-top: 1.2rem;
    background:
        repeating-linear-gradient(
            45deg,
            transparent,
            transparent 7px,
            rgba(160, 158, 152, 0.05) 7px,
            rgba(160, 158, 152, 0.05) 8px
        );
    padding: 1.2rem 0.5rem 0.5rem;
}

/* ============================================
   ZONE 3: ARCHIVE DEPTHS
   ============================================ */

.zone--depths {
    height: 100vh;
    background: var(--void);
    display: flex;
    align-items: center;
    justify-content: center;
}

.depths-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
}

.neon-ring {
    filter: drop-shadow(0 0 15px rgba(0, 255, 136, 0.2));
}

.neon-ring-circle {
    stroke-dasharray: 754;
    stroke-dashoffset: 754;
    animation: ringPulse 8s linear infinite;
}

@keyframes ringPulse {
    0% {
        stroke-dashoffset: 754;
    }
    100% {
        stroke-dashoffset: 0;
    }
}

.depths-phrase {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 300;
    font-style: italic;
    font-size: clamp(1.2rem, 3vw, 2rem);
    letter-spacing: 0.02em;
    color: var(--neon);
    text-shadow: var(--neon-text-glow);
}

/* ============================================
   PROGRESSIVE DISCLOSURE (reveal animation)
   ============================================ */

.reveal-element {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity var(--reveal-duration) var(--reveal-easing),
                transform var(--reveal-duration) var(--reveal-easing);
}

.reveal-element.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================
   RESPONSIVE: MOBILE (<= 768px)
   ============================================ */

@media (max-width: 768px) {
    .masonry-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }

    .lot--span1,
    .lot--span2,
    .lot--span3 {
        grid-row: span 1;
    }

    .lot-content {
        padding: 1.5rem 1rem;
    }

    .zone--excavation {
        padding: 2rem 1rem;
    }

    .site-name {
        letter-spacing: 0.2em;
    }

    .neon-ring {
        width: 180px;
        height: 180px;
    }
}

/* ---- Neon glow hover transition for all neon elements ---- */

.lot-number,
.lot-bid {
    transition: text-shadow 300ms ease, opacity 300ms ease;
}

.lot:hover .lot-number,
.lot:hover .lot-bid {
    opacity: 1;
    text-shadow: 0 0 16px rgba(0, 255, 136, 0.5);
}
