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

html, body {
    min-height: 100vh; /* Ensure both html and body span full viewport height */
    /* overflow-x: hidden; */ /* Removed to prevent clipping of positioned elements like logo */
}

/* CSS Custom Properties (Variables) */
:root {
    /* Colors from design_export.yaml and plan.txt */
    --color-bg-primary: #000d1d; /* page.global_styles.body_background_color / SECTION fill */
    --color-text-primary: #ffffff; /* page.global_styles.text_color_primary */
    --color-text-placeholder: #aab8c2; /* email input placeholder */

    --color-accent-gradient-start: #ffffff;
    --color-accent-gradient-end: #1e90ff; /* Button / primary gradient */

    --color-input-bg: #0b2545; /* EmailInputFieldGroup background_color */
    --color-input-border: #2e4a6a; /* EmailInputFieldGroup border */
    --color-input-button-text: #0b2545; /* Submit button text on light gradient */

    --color-mobile-content-bg: rgba(2, 20, 41, 0.2); /* #02142933 - ContentWrapper mobile */
    --color-mobile-content-border-start: #ffffff66;
    --color-mobile-content-border-end: #99999900;

    --color-desktop-content-bg-start: rgba(58, 134, 255, 0); /* #3a86ff00 - ContentWrapper desktop */
    --color-desktop-content-bg-end: rgba(58, 134, 255, 0.5); /* #3a86ff80 */
    --color-desktop-content-border-start: #ffffff;
    --color-desktop-content-border-end: #ffffff00;

    --color-logo-container-bg-mobile-start: rgba(0, 29, 63, 0.3); /* More opaque dark blue */
    --color-logo-container-bg-mobile-end: rgba(58, 134, 255, 0.2); /* More opaque blue */
    --color-logo-container-border-mobile-start: #ffffff;
    --color-logo-container-border-mobile-end: #ffffff00;

    /* Fonts from design_export.yaml and plan.txt */
    --font-primary: 'Montserrat', sans-serif; /* For main headings */
    --font-secondary: 'Open Sans', sans-serif; /* For body text, placeholders, etc. */
}

/* Body Styling */
body {
    background-color: var(--color-bg-primary);
    font-family: var(--font-secondary);
    color: var(--color-text-primary);
    line-height: 1.5; /* Default line height */
    position: relative; /* For positioning pseudo-elements or fixed children if needed */
    display: flex; /* Make body a flex container */
    flex-direction: column; /* Stack children vertically */
    /* min-height: 100vh; /* Now covered by html, body rule above */
}

/* --- SHARED COMPONENTS (or base styles) --- */

/* BackgroundImageOverlay - Static image background */
.background-image-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2; /* Behind everything */
    background-image: url('/assets/images/boat-background-poster.png'); /* Fallback image */
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

/* Removed styles for .background-video-overlay video */

.background-image-overlay .gradient-overlay-on-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(to bottom, 
        rgba(8, 26, 43, 0) 0%,      /* Transparent at the top */
        rgba(8, 26, 43, 0) 40%,     /* Still transparent up to 40% down */
        rgba(8, 26, 43, 1) 100%     /* Opaque at the bottom, transitioning from 40% */
    );
    z-index: -1; /* Above background image, still behind content */
}

/* Utility Classes (Optional) */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* --- MOBILE UI PLACEHOLDERS --- */
.mobile-status-bar {
    /* display: none; */ /* Initially visible for mobile dev, hidden by media query later */
    height: 59px; /* From design_export.yaml */
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10; /* Above content wrapper if content has its own background */
    /* background: rgba(0,0,0,0.1); */ /* Optional: for visualization */
}

.mobile-tab-bar {
    /* display: none; */ /* Initially visible for mobile dev, hidden by media query later */
    height: 34px; /* From design_export.yaml */
    width: 100%;
    position: fixed; /* Fixed to bottom of viewport */
    bottom: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    z-index: 10;
}

.mobile-tab-bar .home-indicator {
    width: 134px;
    height: 5px;
    background-color: var(--color-text-primary);
    border-radius: 100px;
}

/* --- CONTENT WRAPPER --- */
.content-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;  /* Content inside aligns to bottom of wrapper */
    padding: 20px; /* General padding */
    padding-top: 95px; /* Increased to accommodate logo (75px + 20px spacing) */
    padding-bottom: 50px; /* Approx 34px (tabbar) + some spacing */
    position: relative; /* For absolute positioning of children if needed */
    z-index: 1;
    max-width: 440px; /* From 'Coming Soon mobile' width */
    margin-top: auto;    /* Push wrapper to bottom of flex container (body) */
    margin-bottom: 0;    /* Or a small value if padding-bottom isn't enough separation */
    margin-left: auto;   /* Center wrapper horizontally */
    margin-right: auto;  /* Center wrapper horizontally */
    background-color: var(--color-mobile-content-bg);
    border-radius: 32px 32px 0 0;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    overflow: visible; /* Allow logo to extend outside the wrapper */
}

.content-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, var(--color-mobile-content-border-start), var(--color-mobile-content-border-end));
    border-radius: inherit;
    padding: 1px; /* This creates the border thickness */
    -webkit-mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
    mask-composite: exclude;
    z-index: -1;
}

/* --- LOGO CONTAINER --- */
.logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 30px; 
    width: 150px;
    height: 150px;
    background-color: rgba(0, 13, 29, 0.6); /* Semi-transparent base matching page background */
    background-image: linear-gradient(to bottom right, var(--color-logo-container-bg-mobile-start), var(--color-logo-container-bg-mobile-end));
    border-radius: 19px;
    backdrop-filter: blur(28px);
    -webkit-backdrop-filter: blur(28px);
    padding: 10px;
    position: absolute;
    top: -75px; /* Move up by half the height (150px / 2 = 75px) */
    left: 50%;
    transform: translateX(-50%); /* Center horizontally */
    overflow: hidden;
    z-index: 2; /* Ensure it's above the content wrapper */
}

.logo-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, var(--color-logo-container-border-mobile-start), var(--color-logo-container-border-mobile-end));
    border-radius: inherit;
    padding: 1px; /* This creates the border thickness */
    -webkit-mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
    mask-composite: exclude;
    z-index: -1;
}

.logo-svg {
    width: 70%; 
    height: auto;
    fill: var(--color-text-primary);
}

/* --- ABSTRACT VECTOR GRAPHIC --- */
.abstract-vector-graphic {
    position: absolute; 
    opacity: 0.1; 
    z-index: -1; 
    width: 380px; 
    height: 248px;
    bottom: 80px; 
    left: 50%;
    transform: translateX(-50%);
    pointer-events: none; /* So it doesn't interfere with interactions */
}
.abstract-vector-graphic img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}


/* --- TYPOGRAPHY --- */
.main-heading {
    /* font-family: var(--font-primary); */ /* Removed, now an image */
    /* font-weight: 500; */ /* Removed */
    /* font-size: 36px; */ /* Removed, size will be controlled by image dimensions or specific img styles */
    /* line-height: 1.45; */ /* Removed */
    /* letter-spacing: 0.1px; */ /* Removed */
    /* color: var(--color-text-primary); */ /* Removed */
    text-align: center; /* This will help center the inline-block image */
    /* text-transform: capitalize; */ /* Removed */
    margin-bottom: 15px; /* Adjusted from YAML for potentially tighter mobile spacing */
}

.main-heading img {
    display: inline-block; /* Or block, depending on desired layout */
    max-width: 100%; /* Ensure image scales down if container is smaller */
    height: auto;    /* Maintain aspect ratio */
    max-height: 300px; /* Added max-height */
    /* User may need to add specific width/max-width here for mobile */
    /* e.g., max-width: 250px; if more control over width is needed beyond max-height */
}

.description-text {
    font-family: var(--font-secondary);
    font-weight: 400;
    font-size: 18px; /* Mobile size */
    line-height: 1.45;
    color: var(--color-text-primary);
    text-align: center;
    text-transform: capitalize; 
    max-width: 358px; 
    margin: 0 auto 25px auto; /* Adjusted */
}

/* --- EMAIL INPUT FIELD GROUP --- */
.email-input-field-group {
    display: flex;
    align-items: center;
    border-radius: 16px;
    background-color: var(--color-input-bg);
    border: 1px solid var(--color-input-border);
    padding: 4px; 
    margin-bottom: 30px; /* Adjusted */
    max-width: 376px; 
    width: calc(100% - 40px); /* Take full width minus some padding */
    margin-left: auto;
    margin-right: auto;
}

.email-input-field-group .input-email {
    flex-grow: 1;
    padding: 14px 12px; /* Adjusted padding */
    border: none;
    background-color: transparent;
    color: var(--color-text-primary); /* Actual text color */
    font-family: var(--font-secondary);
    font-size: 16px; 
    line-height: 1.25;
    outline: none;
}

.email-input-field-group .input-email::placeholder {
    color: var(--color-text-placeholder);
    opacity: 1;
}

.email-input-field-group .submit-button {
    height: 48px;
    border-radius: 13px; 
    background-image: linear-gradient(to bottom, var(--color-accent-gradient-start) 0%, var(--color-accent-gradient-end) 100%);
    border: none;
    color: var(--color-input-button-text); 
    font-family: var(--font-secondary); 
    font-weight: bold; 
    font-size: 16px; 
    cursor: pointer;
    padding: 0 20px; /* Adjusted padding for text */
    white-space: nowrap;
    flex-shrink: 0; /* Prevent button from shrinking */
}

/* --- SOCIAL ICONS GROUP --- */
.social-icons-group {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px; 
    margin-bottom: 25px; /* Adjusted */
}

.social-icons-group .icon-link {
    display: inline-block;
    line-height: 0; /* Prevents extra space if using img/svg */
}

.social-icons-group .icon-svg {
    width: 20px; 
    height: 20px;
    fill: var(--color-text-primary);
}

/* --- FOOTER TEXT --- */
.footer-text {
    font-family: var(--font-secondary);
    font-weight: 400;
    color: var(--color-text-primary);
    text-align: center;
    text-transform: capitalize; 
    font-size: 12px; /* Mobile */
    line-height: 1.45;
    opacity: 0.8; 
}

/* --- MESSAGE CONTAINER --- */
.message-container {
    max-width: 376px;
    width: calc(100% - 40px);
    margin: 0 auto 20px auto;
    padding: 12px 16px;
    border-radius: 12px;
    text-align: center;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid transparent;
    animation: slideDown 0.3s ease-out;
}

.message-container.success-message {
    background-color: rgba(34, 197, 94, 0.1); /* Green background */
    border-color: rgba(34, 197, 94, 0.3);
    color: #22c55e; /* Green text */
}

.message-container.error-message {
    background-color: rgba(239, 68, 68, 0.1); /* Red background */
    border-color: rgba(239, 68, 68, 0.3);
    color: #ef4444; /* Red text */
}

.message-text {
    font-family: var(--font-secondary);
    font-weight: 400;
    font-size: 14px;
    line-height: 1.4;
    margin: 0;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- BUTTON LOADING STATE --- */
.submit-button .button-loading {
    font-size: 16px;
    animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

.submit-button:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

/* --- DESKTOP RESPONSIVE STYLES --- */
@media (min-width: 768px) {
    /* Hide Mobile UI */
    .mobile-status-bar,
    .mobile-tab-bar {
        display: none;
    }

    /* Content Wrapper - Desktop */
    .content-wrapper {
        min-width: 912px; /* From 'Coming Soon desktop/image' width */
        border-radius: 32px; /* All corners for desktop */
        backdrop-filter: blur(40px);
        -webkit-backdrop-filter: blur(40px);
        padding: 60px 40px; /* General padding from design_export.yaml */
        padding-top: 125px; /* Increased to accommodate larger logo (104.5px + 20px spacing) */
        justify-content: flex-end; /* Content inside aligns to bottom of wrapper */
        margin-top: auto;
        margin-bottom: 0; /* Or desktop specific value */
        margin-left: auto;
        margin-right: auto;
    }

    .content-wrapper::before {
        background: linear-gradient(to bottom, var(--color-desktop-content-border-start), var(--color-desktop-content-border-end));
        padding: 1.5px; /* Slightly thicker border for desktop */
    }

    /* Logo Container - Desktop */
    .logo-container {
        width: 209px;
        height: 209px;
        top: -104px; /* Move up by half the height (209px / 2 = 104.5px, rounded down) */
        border-radius: 27px;
        background-color: rgba(0, 13, 29, 0.6); /* Semi-transparent base matching page background */
        background-image: linear-gradient(to bottom right, var(--color-logo-container-bg-mobile-start), var(--color-logo-container-bg-mobile-end));
        backdrop-filter: blur(40px);
        -webkit-backdrop-filter: blur(40px);
        margin-bottom: 40px;
        padding: 10px;
    }

    .logo-container::before {
        padding: 1.5px; /* Slightly thicker border for desktop */
    }

    .logo-svg {
        width: 70%; /* Or adjust based on desktop design visual */
    }

    /* Abstract Vector Graphic - Desktop */
    .abstract-vector-graphic {
        width: 708px;
        height: 462px;
        bottom: 60px; /* Adjusted for desktop, review in browser */
        opacity: 0.07; /* Can be more subtle on larger screens */
    }

    /* Typography - Desktop */
    .main-heading {
        /* font-size: 48px; */ /* Removed */
        margin-bottom: 20px;
        /* Text-specific properties removed, inherits text-align: center */
    }

    .main-heading img {
        /* Inherits max-height: 300px; from base style */
        /* User may need to add specific width/max-width here for desktop */
        /* e.g., max-width: 350px; or a different value than mobile, if needed */
        /* Or override max-height for desktop if needed: */
        /* max-height: 400px; */
    }

    .description-text {
        font-size: 20px; /* design_export.yaml */
        max-width: 450px; /* design_export.yaml */
        margin-bottom: 35px;
    }

    /* Email Input Group - Desktop */
    .email-input-field-group {
        max-width: 450px; /* Can be wider or same as mobile, adjust as per visual */
        margin-bottom: 40px;
    }

    .email-input-field-group .input-email {
        font-size: 18px; /* design_export.yaml */
        padding: 16px 14px; /* Slightly more padding */
    }

    .email-input-field-group .submit-button {
        font-size: 18px; /* design_export.yaml */
        padding: 0 25px;
    }

    /* Social Icons Group - Desktop */
    .social-icons-group {
        gap: 30px;
        margin-bottom: 35px;
    }

    .social-icons-group .icon-svg {
        width: 22px; /* Slightly larger if needed */
        height: 22px;
    }

    /* Footer Text - Desktop */
    .footer-text {
        font-size: 16px; /* design_export.yaml */
    }

    /* Message Container - Desktop */
    .message-container {
        max-width: 450px;
        font-size: 16px;
        padding: 16px 20px;
    }

    .message-text {
        font-size: 16px;
    }
}

/* Phase 4: Interactivity & Polish (Placeholder for now) */
.email-input-field-group .submit-button:hover {
    opacity: 0.9;
    transform: scale(1.02);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.social-icons-group .icon-link:hover .icon-svg {
    opacity: 0.8;
    transform: scale(1.1);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.email-input-field-group .input-email:focus {
    box-shadow: 0 0 0 2px var(--color-accent-gradient-end); /* Example focus style */
    transition: box-shadow 0.2s ease;
} 