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

html{
    scroll-behavior:smooth;
}

body{

    background:#eef3f5;

    color:#1d2d38;

    font-family:
        "Segoe UI",
        Helvetica,
        Arial,
        sans-serif;

    overflow-x:hidden;



    -webkit-user-select:none;

    -moz-user-select:none;
    -ms-user-select:none;
user-select:none;

}

img{

    display:block;

    max-width:100%;

    -webkit-user-drag:none;

    user-drag:none;

}

a{

    color:inherit;

    text-decoration:none;

}
.hero{

    position:relative;

    width:100%;

    height:100vh;

    overflow:hidden;

    display:flex;

    justify-content:center;

    align-items:center;

    background:#1f3139;

}


.hero-overlay{

    position:absolute;

    inset:0;

    z-index:8;

    background:
        linear-gradient(
            rgba(18,30,38,.18),
            rgba(18,30,38,.34)
        );

}

.hero-image{

    position:absolute;

    inset:0;

    overflow:hidden;

}

.hero-image picture{

    display:block;

    width:100%;

    height:100%;

}

.hero-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    object-position:center;

    transform:scale(1.05);

    will-change:transform;

    user-select:none;

    pointer-events:none;

}


.hero-content{

    position:relative;

    z-index:20;

    text-align:center;

    padding:24px;

}

.hero-content h1{

    color:#ffffff;

    font-weight:300;

    font-size:clamp(2.4rem,6vw,5.4rem);

    letter-spacing:.08em;

    line-height:1.2;

    text-shadow:

        0 4px 30px rgba(0,0,0,.35);

}


/* ---------- Living Fjord Layers ---------- */

.background-layer,
.water-layer,
.fog-layer,
.light-layer{

    position:absolute;

    inset:0;

    pointer-events:none;

}

.background-layer{

    z-index:0;

}

.hero-image{

    z-index:5;

}

.water-layer{

    z-index:10;

}

.fog-layer{

    z-index:20;

    overflow:hidden;

}

.light-layer{

    z-index:30;

    overflow:hidden;

}

.brand{

    position:absolute;

    top:32px;

    left:32px;

    z-index:500;

    display:block;

}

.brand img{

    width:56px;

    opacity:.82;

    transition:.6s ease;

}

.brand:hover img{

    opacity:1;

    transform:scale(1.04);

}

.hero-content{

    z-index:110;

}

/* ===========================
   Living Fog Engine
=========================== */

.fog-layer{

    opacity:.42;

}

.fog-layer::before,
.fog-layer::after{

    content:"";

    position:absolute;

    inset:0;

    background:url("../svg/fog.svg") center/cover no-repeat;

    will-change:transform;

}

.fog-layer::before{

    animation:fogA 180s linear infinite;

    opacity:.55;

}

.fog-layer::after{

    animation:fogB 260s linear infinite reverse;

    opacity:.35;

}

@keyframes fogA{

    from{

        transform:translateX(-3%);

    }

    to{

        transform:translateX(3%);

    }

}

@keyframes fogB{

    from{

        transform:translateX(2%);

    }

    to{

        transform:translateX(-2%);

    }

}

/* ===========================
   Water Reflection
=========================== */

.water-layer{

    overflow:hidden;

}

.water-shimmer{

    position:absolute;

    left:-20%;

    bottom:0;

    width:140%;

    height:32%;

    opacity:.10;

    pointer-events:none;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(255,255,255,.65) 48%,
            transparent 100%
        );

    filter:blur(28px);

    animation:waterFlow 14s ease-in-out infinite;
}

@keyframes waterFlow{

    0%{

        transform:translateX(-12%);

    }

    50%{

        transform:translateX(12%);

    }

    100%{

        transform:translateX(-12%);

    }

}

/* ---------- TABLETS ---------- */

@media (max-width:1024px){

    .brand{

        top:22px;

        left:22px;

    }

    .brand img{

        width:48px;

    }

}

/* ---------- PHONES ---------- */

@media (max-width:768px){

    .brand{

        top:18px;

        left:18px;

    }

    .brand img{

        width:42px;

    }

    .site-footer{

        right:18px;

        bottom:18px;

    }

    .footer-inner{

        font-size:11px;

        gap:8px;

    }

}

/* ---------- SMALL PHONES ---------- */

@media (max-width:480px){

    .brand img{

        width:36px;

    }

    .site-footer{

        right:14px;

        bottom:14px;

    }

    .footer-inner{

        font-size:10px;

        letter-spacing:.04em;

    }

}

/* ===========================================================
   Image protection
   =========================================================== */

.hero img{

    -webkit-user-drag:none;

    user-select:none;
    -webkit-user-select:none;

    -webkit-touch-callout:none;

    pointer-events:none;

}

.hero picture{

    pointer-events:none;

}

.brand img{

    -webkit-user-drag:none;

    user-select:none;
    -webkit-user-select:none;

    -webkit-touch-callout:none;

}

.site-footer{

    position:fixed;

    right:28px;

    bottom:24px;

    left:auto;

    z-index:900;

    pointer-events:auto;

}

.footer-inner{

    display:flex;

    align-items:center;

    gap:12px;

    color:rgba(255,255,255,.82);

    font-size:13px;

    font-weight:300;

    letter-spacing:.06em;

    text-shadow:0 2px 10px rgba(0,0,0,.55);

}

.footer-title{

    font-weight:400;

}

.footer-copy{

    opacity:.85;

}

/* ---------- View Modal ---------- */

.view-modal{

    position:fixed;

    inset:0;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(0,0,0,.42);

    backdrop-filter:blur(8px);

    opacity:0;

    visibility:hidden;

    transition:

        opacity .22s ease,

        visibility .22s ease;

    z-index:5000;

}

.view-modal.show{

    opacity:1;

    visibility:visible;

}

.view-box{

    width:min(340px,90vw);

    padding:34px;

    border-radius:18px;

    background:rgba(25,36,44,.88);

    border:1px solid rgba(255,255,255,.15);

    text-align:center;

    color:#fff;

    box-shadow:0 25px 70px rgba(0,0,0,.45);
    
    box-sizing:border-box;

    overflow:hidden;

    transform:translateY(18px) scale(.96);

    opacity:0;

    transition:

         transform .22s cubic-bezier(.2,.8,.2,1),

         opacity .22s ease;
}

.view-modal.show .view-box{

    transform:translateY(0) scale(1);

    opacity:1;

}

.view-icon{

    font-size:34px;

    margin-bottom:14px;

}

.view-title{

    font-size:20px;

    font-weight:300;

    letter-spacing:.06em;

}

.view-brand{

    margin-top:12px;

    opacity:.75;

    font-size:13px;

    letter-spacing:.18em;

}

#view-close{

    margin-top:26px;

    padding:10px 28px;

    border:none;

    border-radius:999px;

    cursor:pointer;

    background:#ffffff;

    color:#20323c;

    font-size:14px;

    transition:.25s;

}

#view-close:hover{

    transform:scale(1.05);

}

/* ---------- Support ---------- */

.footer-support{

    background:none;

    border:none;

    color:rgba(255,255,255,.65);

    font:inherit;

    cursor:pointer;

    transition:.25s;

    padding:0;

}

.footer-support:hover{

    color:#fff;

}

.wallet{

    margin-top:22px;

    padding:16px;

    border:1px solid rgba(255,255,255,.10);

    border-radius:14px;

    background:rgba(255,255,255,.03);

}

.wallet-name{

    font-size:15px;

    margin-bottom:10px;

    opacity:.95;

}

.wallet-row{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:14px;

}

.wallet-row span{

    font-family:monospace;

    font-size:15px;

    opacity:.85;

}

.copy-wallet{

    border:1px solid rgba(255,255,255,.20);

    background:rgba(255,255,255,.05);

    color:#fff;

    border-radius:10px;

    padding:8px 18px;

    cursor:pointer;

    transition:.25s;

}

.copy-wallet:hover{

    background:rgba(255,255,255,.12);

}

.thanks{

    margin:26px 0 22px;

    opacity:.75;

    font-size:14px;

    text-align:center;

}

/* ---------- Tablet ---------- */

@media (max-width:1024px){

    .site-footer{

        right:20px;
        bottom:20px;

    }

    .footer-inner{

        font-size:12px;
        gap:10px;

    }

}

/* ---------- Phone ---------- */

@media (max-width:768px){

    .site-footer{

        right:16px;
        bottom:16px;

    }

    .footer-inner{

        display:grid;

        justify-items:end;

        row-gap:4px;

        column-gap:8px;

        font-size:11px;

        text-align:right;

    }

    .footer-title{

        grid-column:1 / 3;

    }

    .footer-copy{

        grid-column:1;

    }

    .footer-support{

        grid-column:2;

    }

}

/* ---------- Small phones ---------- */

@media (max-width:420px){

    .footer-inner{

        font-size:10px;

    }

}

/* ===========================================================
   Responsive Footer
   =========================================================== */

@media (max-width:1024px){

    .site-footer{

        right:22px;
        bottom:22px;

    }

    .footer-inner{

        font-size:12px;
        gap:10px;

    }

}

@media (max-width:768px){

    .site-footer{

        left:16px;
        right:16px;
        bottom:16px;

    }

    .footer-inner{

        display:grid;

        grid-template-columns:1fr auto;

        grid-template-areas:
            "title title"
            "copy support";

        align-items:center;

        row-gap:6px;

    }

    .footer-title{

        grid-area:title;

        font-size:13px;

    }

    .footer-copy{

        grid-area:copy;

        font-size:11px;

    }

    .footer-support{

        grid-area:support;

        justify-self:end;

        font-size:11px;

    }

}

@media (max-width:420px){

    .footer-title{

        font-size:12px;

    }

    .footer-copy,
    .footer-support{

        font-size:10px;

    }

}

/* ===========================================================
   Responsive Support Modal
   =========================================================== */

@media (max-width:768px){

    .view-box{

        width:calc(100vw - 32px);

        max-width:none;

        padding:26px;

    }

    .wallet-row{

        flex-direction:column;

        align-items:flex-start;

        gap:10px;

    }

    .copy-wallet{

        width:100%;

    }

}

@media (max-width:420px){

    .view-title{

        font-size:18px;

    }

    .wallet-name{

        font-size:14px;

    }

    .wallet-row span{

        font-size:13px;

    }

}

/* ===========================================================
   Landscape phones
   =========================================================== */

@media (max-width:950px) and (orientation:landscape){

    .view-box{

        width:min(520px,90vw);

        max-height:88vh;

        overflow:auto;

        padding:22px;

    }

    .wallet{

        margin-top:16px;

    }

    .wallet-row{

        display:flex;

        flex-direction:row;

        align-items:center;

        justify-content:space-between;

    }

    .copy-wallet{

        width:auto;

        min-width:110px;

    }

}
