.np3d-header,
.np3d-header * {
    box-sizing: border-box;
}

.np3d-header {
    --np3d-height: 330px;
    --np3d-height-mobile: 300px;
    --np3d-primary: #16a6a7;
    --np3d-deep: #163f52;
    --np3d-water: #138ab0;
    --np3d-sand: #9b7a55;
    --np3d-overlay: .28;
    --np3d-bg: none;
    position: relative;
    isolation: isolate;
    width: 100%;
    min-height: var(--np3d-height);
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 72% 15%, rgba(255,255,255,.88) 0 2%, transparent 18%),
        linear-gradient(180deg, #78c9db 0%, #d9eef2 52%, #f5f4ed 100%);
    perspective: 1200px;
    transform-style: preserve-3d;
}

.np3d-photo,
.np3d-vignette,
.np3d-scene,
.np3d-scene > *,
.np3d-bottom-glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.np3d-photo {
    z-index: -5;
    background-image: var(--np3d-bg);
    background-size: cover;
    background-position: center;
    filter: saturate(.92) contrast(1.05);
    transform: scale(1.06);
}

.np3d-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7,29,40,.56), rgba(16,63,82,var(--np3d-overlay)) 46%, rgba(5,22,30,.48));
}

.np3d-vignette {
    z-index: 2;
    box-shadow: inset 0 0 90px rgba(5,21,30,.26), inset 0 -70px 90px rgba(3,18,28,.40);
}

.np3d-scene {
    z-index: 1;
    transform-style: preserve-3d;
}

.np3d-layer {
    will-change: transform;
    transition: transform .14s linear;
}

.np3d-sun {
    inset: auto auto 62% 69%;
    width: 115px;
    height: 115px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,247,196,.96), rgba(255,245,180,.44) 38%, rgba(255,255,255,0) 72%);
    filter: blur(.2px);
}

.np3d-clouds {
    overflow: hidden;
}

.np3d-cloud {
    position: absolute;
    width: 170px;
    height: 38px;
    border-radius: 50px;
    background: rgba(255,255,255,.58);
    filter: blur(1px);
    animation: np3d-cloud-drift 30s linear infinite;
}

.np3d-cloud::before,
.np3d-cloud::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: inherit;
}

.np3d-cloud::before { width: 70px; height: 70px; left: 28px; top: -28px; }
.np3d-cloud::after { width: 90px; height: 90px; right: 20px; top: -40px; }
.np3d-cloud-a { top: 18%; left: -11%; animation-duration: 42s; }
.np3d-cloud-b { top: 30%; left: 46%; transform: scale(.68); animation-duration: 52s; animation-delay: -18s; opacity: .72; }
.np3d-cloud-c { top: 10%; left: 75%; transform: scale(.48); animation-duration: 64s; animation-delay: -29s; opacity: .62; }

.np3d-mountains-back,
.np3d-mountains-mid,
.np3d-foreground,
.np3d-bridge {
    width: 106%;
    left: -3%;
    height: auto;
}

.np3d-mountains-back { top: 13%; height: 65%; }
.np3d-mountains-mid { top: 28%; height: 61%; filter: drop-shadow(0 -12px 20px rgba(9,33,43,.18)); }
.np3d-water {
    top: 59%;
    height: 42%;
    background:
        linear-gradient(180deg, rgba(255,255,255,.18), transparent 22%),
        linear-gradient(180deg, var(--np3d-water), #075574 85%);
    transform-origin: center top;
    clip-path: polygon(0 7%, 16% 1%, 42% 4%, 67% 0, 100% 7%, 100% 100%, 0 100%);
}

.np3d-water span {
    position: absolute;
    left: -12%;
    width: 124%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.48), transparent);
    animation: np3d-water-shimmer 6s ease-in-out infinite;
}
.np3d-water span:nth-child(1) { top: 18%; }
.np3d-water span:nth-child(2) { top: 35%; animation-delay: -1.5s; }
.np3d-water span:nth-child(3) { top: 52%; animation-delay: -3s; }
.np3d-water span:nth-child(4) { top: 70%; animation-delay: -4.5s; }

.np3d-bridge { top: 51%; height: 40%; filter: drop-shadow(0 11px 11px rgba(2,20,31,.28)); opacity: .93; }
.np3d-foreground { top: 68%; height: 40%; filter: drop-shadow(0 -15px 18px rgba(2,14,23,.35)); }

.np3d-content {
    position: relative;
    z-index: 8;
    display: grid;
    grid-template-columns: minmax(300px, 1.25fr) minmax(300px, .75fr);
    align-items: center;
    gap: clamp(24px, 5vw, 90px);
    width: min(1320px, calc(100% - 48px));
    min-height: var(--np3d-height);
    margin: 0 auto;
    padding: 32px 0 44px;
}

.np3d-card,
.np3d-glass {
    backdrop-filter: blur(12px) saturate(1.12);
    -webkit-backdrop-filter: blur(12px) saturate(1.12);
}

.np3d-brand {
    justify-self: start;
    max-width: 580px;
    padding: 20px 26px 18px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(9,44,61,.68), rgba(16,81,99,.28));
    box-shadow: 0 20px 50px rgba(2,20,31,.30), inset 0 1px 0 rgba(255,255,255,.20);
    transform: translateZ(62px);
}

.np3d-logo {
    display: block;
    width: min(100%, 430px);
    max-height: 150px;
    object-fit: contain;
    object-position: left center;
    filter: drop-shadow(0 8px 16px rgba(0,0,0,.28));
}

.np3d-wordmark {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(40px, 5vw, 70px);
    font-weight: 700;
    line-height: .98;
    text-shadow: 0 5px 18px rgba(0,0,0,.35);
}

.np3d-tagline {
    margin-top: 9px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(20px, 2.1vw, 31px);
    font-style: italic;
    line-height: 1.1;
    text-shadow: 0 3px 12px rgba(0,0,0,.34);
}

.np3d-subline {
    margin-top: 8px;
    color: rgba(255,255,255,.87);
    font-size: 14px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.np3d-actions {
    justify-self: end;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 15px;
    width: min(100%, 430px);
    transform: translateZ(82px);
}

.np3d-weather {
    width: 100%;
    min-height: 118px;
    padding: 17px 19px;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 16px;
    color: #102f3e;
    background: linear-gradient(145deg, rgba(255,255,255,.90), rgba(238,248,249,.73));
    box-shadow: 0 18px 45px rgba(3,24,35,.25), inset 0 1px 0 rgba(255,255,255,.9);
}

.np3d-weather-demo {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.np3d-weather-demo strong { font-size: 17px; }
.np3d-weather-demo span { font-size: 13px; opacity: .72; }

.np3d-daisy {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 11px 18px;
    border: 1px solid rgba(255,255,255,.46);
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, rgba(13,59,78,.94), rgba(13,37,50,.94));
    box-shadow: 0 13px 28px rgba(2,17,27,.33), inset 0 1px 0 rgba(255,255,255,.18);
    text-decoration: none;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.np3d-daisy:hover,
.np3d-daisy:focus-visible {
    transform: translateY(-2px) scale(1.02);
    border-color: rgba(255,255,255,.78);
    box-shadow: 0 16px 34px rgba(2,17,27,.38), 0 0 0 4px rgba(255,255,255,.12);
    outline: none;
    color: #fff;
}

.np3d-daisy-icon {
    position: relative;
    width: 27px;
    height: 21px;
    border: 2px solid currentColor;
    border-radius: 50%;
}
.np3d-daisy-icon::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -5px;
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    transform: rotate(27deg);
}

.np3d-float {
    animation: np3d-float 7s ease-in-out infinite;
}

.np3d-bottom-glow {
    z-index: 7;
    inset: auto 0 0;
    height: 5px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.74), var(--np3d-primary), rgba(255,255,255,.74), transparent);
    box-shadow: 0 -3px 22px rgba(33,190,194,.48);
}

@keyframes np3d-cloud-drift {
    from { translate: 0 0; }
    to { translate: 125vw 0; }
}

@keyframes np3d-water-shimmer {
    0%,100% { transform: translateX(-3%) scaleX(.94); opacity: .28; }
    50% { transform: translateX(3%) scaleX(1.04); opacity: .72; }
}

@keyframes np3d-float {
    0%,100% { translate: 0 0; }
    50% { translate: 0 -7px; }
}

@media (max-width: 900px) {
    .np3d-content {
        grid-template-columns: 1fr;
        align-content: center;
        gap: 18px;
        width: min(760px, calc(100% - 32px));
        padding: 24px 0 38px;
    }
    .np3d-brand,
    .np3d-actions {
        justify-self: center;
        width: 100%;
    }
    .np3d-actions { align-items: center; }
    .np3d-brand { text-align: center; }
    .np3d-logo { margin-inline: auto; object-position: center; }
    .np3d-weather { min-height: 90px; }
}

@media (max-width: 640px) {
    .np3d-header { min-height: var(--np3d-height-mobile); }
    .np3d-content {
        min-height: var(--np3d-height-mobile);
        width: calc(100% - 22px);
        padding: 18px 0 32px;
    }
    .np3d-brand { padding: 15px 16px 14px; border-radius: 16px; }
    .np3d-logo { max-height: 105px; }
    .np3d-tagline { font-size: 20px; }
    .np3d-subline { display: none; }
    .np3d-weather { padding: 12px 14px; }
    .np3d-mountains-back { top: 20%; }
    .np3d-mountains-mid { top: 35%; }
    .np3d-bridge { opacity: .58; }
}

@media (prefers-reduced-motion: reduce) {
    .np3d-header *,
    .np3d-header *::before,
    .np3d-header *::after {
        animation: none !important;
        transition: none !important;
    }
}
