:root{
    --bg:#0b0d12;
    --card: rgba(18, 22, 32, .62);
    --stroke: rgba(255,255,255,.08);
    --text: rgba(255,255,255,.92);
    --muted: rgba(255,255,255,.65);
    --accent: #4aa3ff;
    --accent2:#a855f7;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
    margin:0;
    font-family: 'Sora', system-ui, sans-serif;
    background: var(--bg);
    color: var(--text);
    overflow-x:hidden;
}

.bg{
    position:fixed;
    inset:0;
    z-index:-2;
    background:
        radial-gradient(900px 500px at 10% 20%, rgba(74,163,255,.18), transparent 60%),
        radial-gradient(700px 500px at 85% 30%, rgba(168,85,247,.18), transparent 60%),
        radial-gradient(800px 600px at 60% 85%, rgba(34,211,238,.10), transparent 60%),
        linear-gradient(180deg, #07080c 0%, #0b0d12 55%, #07080c 100%);
}

.bg-video {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}

.orb{
    position:absolute;
    border-radius: 999px;
    filter: blur(30px);
    opacity: .55;
    animation: floaty 12s ease-in-out infinite;
}
.orb-1{
    width: 520px; height: 520px;
    left: -120px; top: 80px;
    background: radial-gradient(circle at 30% 30%, rgba(74,163,255,.55), transparent 60%);
    animation-duration: 14s;
}
.orb-2{
    width: 520px; height: 520px;
    right: -160px; top: 120px;
    background: radial-gradient(circle at 30% 30%, rgba(168,85,247,.55), transparent 60%);
    animation-duration: 16s;
}
.orb-3{
    width: 600px; height: 600px;
    left: 30%; bottom: -220px;
    background: radial-gradient(circle at 30% 30%, rgba(34,211,238,.35), transparent 60%);
    animation-duration: 18s;
}

@keyframes floaty{
    0%,100%{ transform: translate3d(0,0,0) scale(1); }
    50%{ transform: translate3d(0,-18px,0) scale(1.03); }
}

/* film grain overlay */
.grain{
    position:absolute; inset:0;
    pointer-events:none;
    opacity:.12;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
    mix-blend-mode: overlay;
}

.wrap{
    min-height:100%;
    display:flex;
    flex-direction:column;
    padding: 28px 18px;
    max-width: 1200px;
    margin: 0 auto;
}

.topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 14px;
}

.brand{
    font-weight: 800;
    letter-spacing: -.02em;
    font-size: 22px;
}
.brand span{
    color: var(--accent);
}

.mini{
    color: var(--muted);
    font-size: 15px;
    white-space: nowrap;
    overflow:hidden;
    text-overflow: ellipsis;
    max-width: 55%;
}

.card{
    margin: auto 0;
    background: var(--card);
    border: 1px solid var(--stroke);
    border-radius: 18px;
    padding: 20px 30px;
    box-shadow: 0 18px 60px rgba(0,0,0,.55);
    backdrop-filter: blur(14px);
    transform-style: preserve-3d;
    transition: transform .15s ease;
    text-align: center;
}

.badge{
    display:inline-block;
    font-size: 12px;
    letter-spacing: .18em;
    color: rgba(255,255,255,.75);
    border: 1px solid var(--stroke);
    padding: 8px 10px;
    border-radius: 999px;
    margin-bottom: 16px;
}

.coming-soon{
    font-size: clamp(32px, 4vw, 56px);
    font-weight: 800;
    letter-spacing: -0.02em;
    text-align: center;

    text-shadow:
        0 0 25px rgba(168,85,247,.35),
        0 0 45px rgba(74,163,255,.25);

    background: linear-gradient(
        90deg,
        #a855f7 0%,
        #4aa3ff 40%,
        #22d3ee 70%,
        #a855f7 100%
    );

    background-size: 200% auto;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;

    animation: slideGradient 4s linear infinite;
}


.logo{
    width: clamp(120px, 18vw, 220px);
    height: auto;
}

h1{
    margin: 0 0 20px 0;
    font-size: clamp(24px, 3vw, 40px);
    line-height: 1.15;
    letter-spacing: -0.02em;
}

.sub{
    margin: 0 0 22px 0;
    color: var(--muted);
    font-size: 16px;
}

.form{
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center; /* για να μην απλώνει άσχημα */
}

input[type="email"]{
    width: min(520px, 100%);
    height: 48px;
    padding: 0 14px;
    border-radius: 12px;
    border: 1px solid var(--stroke);
    background: rgba(8,10,16,.7);
    color: var(--text);
    outline:none;
}
input[type="email"]::placeholder{ color: rgba(255,255,255,.45); }
input[type="email"]:focus{
    border-color: rgba(168,85,247,.55);
    box-shadow: 0 0 0 4px rgba(74,163,255,.12);
}

button{
    margin-top: 10px;
    height: 70px;
    padding: 0 30px;
    border-radius: 12px;
    border: 0;
    color: #071018;
    font-weight: 700;
    font-size: 16px;
    cursor:pointer;
    background: linear-gradient(90deg, rgba(74,163,255,1), rgba(168,85,247,1));
    box-shadow: 0 12px 30px rgba(74,163,255,.14);
    transition: transform .12s ease, filter .12s ease;
}
button:hover{ transform: translateY(-1px); filter: brightness(1.05); }
button:active{ transform: translateY(0px); }

.cta-row{
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    justify-content: center;
}

button.secondary{
    background: transparent;
    color: white;
    border: 1px solid transparent;

    background-image:
        linear-gradient(#0b0d12, #0b0d12),
        linear-gradient(90deg, rgba(74,163,255,1), rgba(168,85,247,1));

    background-origin: border-box;
    background-clip: padding-box, border-box;
}
button.secondary:hover{
    filter: brightness(1.1);
}


.msg{
    width: min(520px, 100%);
    margin: 0 auto;
    padding: 0 12px;
    border-radius: 12px;
    border: 1px solid transparent;
    font-size: 14px;

    max-height: 0;
    opacity: 0;
    transform: translateY(10px);
    overflow: hidden;

    transition:
        max-height 0.45s ease,
        opacity 0.35s ease,
        transform 0.35s ease,
        margin-top 0.35s ease,
        padding 0.35s ease,
        border-color 0.35s ease,
        background-color 0.35s ease;
}

.msg.show{
    margin-top: 14px;
    padding: 12px 12px;
    max-height: 120px;
    opacity: 1;
    transform: translateY(0);
    border-color: var(--stroke);
}

.msg.success{
  background: rgba(34,197,94,.08);
  border-color: rgba(34,197,94,.22);
}
.msg.error{
  background: rgba(239,68,68,.08);
  border-color: rgba(239,68,68,.22);
}

.social{
    margin-top: 18px;
    display:flex;
    align-items:center;
    gap: 10px;
    color: var(--muted);
    font-size: 14px;
    flex-wrap: wrap;
    justify-content: center;
}
.social a{
    color: rgba(255,255,255,.88);
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,.18);
}
.social a:hover{
    border-bottom-color: rgba(74,163,255,.7);
}
.dot{ opacity:.5; }

.fine{
    margin-top: 15px;
    color: rgba(255,255,255,.45);
    font-size: 12px;
}

.footer{
    margin-top:auto;
    display:flex;
    gap: 10px;
    color: rgba(255,255,255,.35);
    font-size: 12px;
    flex-wrap: wrap;
}
.sep{ opacity:.35; }

.hp-field{
    position: absolute;
    left: -9999px;
    opacity: 0;
    pointer-events: none;
}

@media (max-width: 1100px){

    .form button{
        margin: auto;
        margin-top: 10px;
    }
    button{
        height: 50px;
        padding: 0 18px;
        font-size: 14px;
    }
    .cta-row{
        gap: 12px;
    }

    .mini{
            font-size: 10px;
            max-width: 100%;
            white-space: normal;
            text-align: right;
    }
    .card{ padding: 20px 18px; margin: auto 0; }
}

@keyframes slideGradient {
    0% { background-position: 0% center; }
    100% { background-position: 200% center; }
}