:root {
    /* Underwater color palette - deeper, darker blues */
    --deep-ocean: #030811;
    --deep-blue: #0a1628;
    --ocean-mid: #0d1b2a;
    --ocean-light: #1a2c42;
    --bioluminescent: #4dd0e1;
    --glow-cyan: #00e5ff;
    --text-underwater: #b3e5fc;
    --text-glow: #80deea;
}

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

body {
    font-family: 'Manrope', sans-serif;
    overflow: hidden;
    background: var(--deep-ocean);
    color: var(--text-underwater);
    height: 100vh;
    width: 100vw;
    
    /* Prevent mobile browser behaviors */
    overscroll-behavior: none;
    -webkit-overflow-scrolling: touch;
    touch-action: none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
}

/* ============================================
   UNDERWATER CONTAINER - Deep ocean gradient
   ============================================ */

.underwater-container {
    position: relative;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        180deg,
        #0a1628 0%,
        #0d1b2a 30%,
        #061220 60%,
        #030811 100%
    );
    overflow: hidden;
}

/* ============================================
   UNDERWATER WELCOME TEXT
   ============================================ */

.underwater-welcome {
    position: fixed;
    top: 20vh;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    z-index: 5;
    max-width: 600px;
    padding: 0 2rem;
    
    /* Make non-selectable */
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.underwater-welcome p {
    font-weight: 300;
    letter-spacing: 0.05em;
    color: var(--text-underwater);
    margin: 0.8rem 0;
    opacity: 0;
    animation: fadeInWave 2s ease-in-out forwards;
}

.underwater-welcome .breath {
    font-size: 1.3rem;
    animation-delay: 0.5s;
    text-shadow: 0 0 15px rgba(77, 208, 225, 0.4);
}

.underwater-welcome .relax {
    font-size: 1.1rem;
    animation-delay: 1.5s;
    font-style: italic;
    color: var(--text-glow);
    text-shadow: 0 0 10px rgba(128, 222, 234, 0.3);
}

.underwater-welcome .hint {
    font-size: 0.95rem;
    animation-delay: 2.5s;
    color: var(--bioluminescent);
    opacity: 0.8;
}

@keyframes fadeInWave {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ============================================
   RETURN TO SURFACE BUTTON
   ============================================ */

.return-hint {
    position: fixed;
    top: 8vh;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    opacity: 1;
    
    /* Make non-selectable */
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.return-hint p {
    font-size: 1.1rem;
    font-weight: 400;
    letter-spacing: 0.03em;
    color: var(--text-glow);
    text-shadow: 0 0 20px rgba(77, 208, 225, 0.5);
    cursor: pointer;
    animation: floatUp 3s ease-in-out infinite;
    transition: all 0.3s ease;
}

.return-hint p:hover {
    color: var(--glow-cyan);
    text-shadow: 0 0 30px rgba(0, 229, 255, 0.8);
    transform: translateY(-5px);
}

@keyframes floatUp {
    0%, 100% { 
        transform: translateY(0); 
    }
    50% { 
        transform: translateY(-10px); 
    }
}

/* ============================================
   WATER WASH REVERSE - Top-down sweep for return
   ============================================ */

.water-wash-reverse {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 0;
    background: linear-gradient(
        to bottom,
        #1a2c42 0%,
        #1a2c42 40%,
        #0d1b2a 65%,
        rgba(13, 27, 42, 0.7) 85%,
        rgba(26, 31, 58, 0.3) 95%,
        transparent 100%
    );
    z-index: 1000;
    opacity: 0;
    pointer-events: none;
    transition: none;
}

.water-wash-reverse.active {
    opacity: 1;
    animation: washDown 2s cubic-bezier(0.4, 0.0, 0.2, 1) forwards;
}

@keyframes washDown {
    0% {
        height: 0;
        opacity: 0.7;
    }
    50% {
        height: 60vh;
        opacity: 0.95;
    }
    100% {
        height: 100vh;
        opacity: 1;
    }
}

/* ============================================
   JELLYFISH - Bioluminescent orange creatures
   ============================================ */

.jellyfish {
    position: absolute;
    filter: drop-shadow(0 0 30px rgba(255, 140, 50, 0.6));
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

/* Jellyfish bell (main body) */
.jellyfish-bell {
    fill: url(#jellyGradient);
    stroke: #ff8c32;
    stroke-width: 2.5;
    stroke-opacity: 0.9;
    filter: drop-shadow(0 0 15px rgba(255, 140, 50, 0.8));
    transform-origin: center;
    cursor: pointer;
    transition: stroke-width 0.3s ease, filter 0.3s ease;
}

.jellyfish-bell:hover {
    stroke-width: 3.5;
    filter: drop-shadow(0 0 25px rgba(255, 140, 50, 1));
}

/* Jellyfish labels */
.jellyfish-label {
    position: absolute;
    font-size: 1.1rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    color: var(--glow-cyan);
    text-shadow: 0 0 15px rgba(0, 229, 255, 0.6);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
    white-space: nowrap;
    user-select: none;
}

.jellyfish:hover .jellyfish-label {
    opacity: 1;
}

/* Bell morphing animation - squeeze and stretch like real jellyfish */
@keyframes bellMorph {
    0%, 100% {
        transform: scale(1, 1);
    }
    25% {
        transform: scale(1.05, 0.92); /* Wider, flatter */
    }
    50% {
        transform: scale(0.98, 1.08); /* Narrower, taller */
    }
    75% {
        transform: scale(1.03, 0.95); /* Wider again */
    }
}

/* Jellyfish tendrils */
.jellyfish-tendril {
    fill: none;
    stroke: #ff8c32;
    stroke-width: 2;
    stroke-linecap: round;
    opacity: 0.85;
    filter: drop-shadow(0 0 5px rgba(255, 140, 50, 0.5));
}

/* Individual tendril segments for fractal detail */
.tendril-segment {
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

/* Tendril wiggle animations - multiple variations */
@keyframes wiggle1 {
    0%, 100% {
        transform: rotate(0deg);
    }
    25% {
        transform: rotate(3deg);
    }
    50% {
        transform: rotate(-2deg);
    }
    75% {
        transform: rotate(4deg);
    }
}

@keyframes wiggle2 {
    0%, 100% {
        transform: rotate(0deg);
    }
    33% {
        transform: rotate(-4deg);
    }
    66% {
        transform: rotate(3deg);
    }
}

@keyframes wiggle3 {
    0%, 100% {
        transform: rotate(0deg);
    }
    20% {
        transform: rotate(2deg);
    }
    40% {
        transform: rotate(-3deg);
    }
    60% {
        transform: rotate(4deg);
    }
    80% {
        transform: rotate(-2deg);
    }
}

@keyframes wiggle4 {
    0%, 100% {
        transform: rotate(0deg);
    }
    50% {
        transform: rotate(-5deg);
    }
}

/* Slow floating animation */
@keyframes float {
    0%, 100% {
        transform: translateY(0) translateX(0);
    }
    25% {
        transform: translateY(-30px) translateX(10px);
    }
    50% {
        transform: translateY(-50px) translateX(-5px);
    }
    75% {
        transform: translateY(-30px) translateX(15px);
    }
}

/* Gentle drift animation */
@keyframes drift {
    0%, 100% {
        transform: translateX(0) rotate(0deg);
    }
    50% {
        transform: translateX(20px) rotate(2deg);
    }
}

/* Core glow inner light */
.jellyfish-core {
    fill: #ffb366;
    opacity: 0.9;
    filter: blur(8px);
    animation: coreGlow 3s ease-in-out infinite;
}

@keyframes coreGlow {
    0%, 100% {
        opacity: 0.7;
    }
    50% {
        opacity: 1;
    }
}

/* ============================================
   JELLYFISH CONTAINER - Placeholder
   ============================================ */

.jellyfish-container {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 2;
}

/* ============================================
   RESPONSIVE ADJUSTMENTS
   ============================================ */

@media (max-width: 768px) {
    .return-hint p {
        font-size: 1.3rem;
        font-weight: 500;
    }
}

@media (max-width: 480px) {
    .return-hint {
        top: 10vh;
    }
}

/* ============================================
   ACCESSIBILITY
   ============================================ */

@media (prefers-reduced-motion: reduce) {
    .return-hint p,
    .water-wash-reverse {
        animation: none;
    }
}
