/* =========================================================
   SeaOfBattle V14 Ultimate UI Add-on
   Put AFTER style-v13-final.css
   ========================================================= */

:root{
    --sob14-gold:#ffd861;
    --sob14-gold-soft:rgba(255,216,97,.18);
    --sob14-panel:rgba(18,13,8,.82);
    --sob14-line:rgba(255,216,97,.34);
    --sob14-red:#d24b4b;
    --sob14-green:#20b86b;
}

/* page load */
html.sob14-ready body{
    opacity:0;
}
html.sob14-ready body.sob14-loaded{
    opacity:1;
    transition:opacity .34s ease;
}

/* premium animated ambience */
.sob14-ambience{
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:-1;
    overflow:hidden;
}
.sob14-ambience:before,
.sob14-ambience:after{
    content:"";
    position:absolute;
    inset:-20%;
    background:
        radial-gradient(circle at 20% 25%,rgba(255,216,97,.08),transparent 24%),
        radial-gradient(circle at 75% 55%,rgba(255,137,38,.055),transparent 26%),
        radial-gradient(circle at 50% 100%,rgba(60,120,160,.045),transparent 35%);
    animation:sob14-drift 18s ease-in-out infinite alternate;
}
.sob14-ambience:after{
    filter:blur(18px);
    opacity:.55;
    animation-duration:27s;
    animation-direction:alternate-reverse;
}
@keyframes sob14-drift{
    from{transform:translate3d(-1.5%,0,0) scale(1)}
    to{transform:translate3d(1.5%,1%,0) scale(1.04)}
}

/* reveal */
.sob14-reveal{
    opacity:0;
    transform:translateY(18px) scale(.992);
    transition:opacity .48s ease,transform .48s ease;
}
.sob14-reveal.sob14-visible{
    opacity:1;
    transform:none;
}

/* card glow */
.card,.panel,.stat,.package,.download-card,.video-card,.guide-item,.ticket-row{
    will-change:transform;
}
.card:after,.panel:after,.package:after,.download-card:after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(105deg,transparent 0%,rgba(255,216,97,.10) 45%,transparent 70%);
    opacity:0;
    transform:translateX(-35%);
    transition:.45s ease;
}
.card:hover:after,.panel:hover:after,.package:hover:after,.download-card:hover:after{
    opacity:1;
    transform:translateX(35%);
}

/* button ripple */
.sob14-ripple{
    position:absolute;
    border-radius:50%;
    pointer-events:none;
    background:rgba(255,255,255,.45);
    transform:translate(-50%,-50%) scale(0);
    animation:sob14-ripple .55s ease-out forwards;
}
@keyframes sob14-ripple{
    to{transform:translate(-50%,-50%) scale(7);opacity:0}
}

/* toast */
.sob14-toast-wrap{
    position:fixed;
    right:18px;
    top:18px;
    z-index:9999;
    display:grid;
    gap:10px;
    max-width:min(360px,calc(100vw - 36px));
}
.sob14-toast{
    background:linear-gradient(135deg,rgba(35,24,12,.97),rgba(5,5,5,.97));
    border:1px solid var(--sob14-line);
    border-radius:14px;
    padding:14px 16px;
    color:#fff6cf;
    box-shadow:0 20px 45px rgba(0,0,0,.55),0 0 22px rgba(255,216,97,.12);
    animation:sob14-toast-in .22s ease both;
}
.sob14-toast b{color:var(--sob14-gold)}
@keyframes sob14-toast-in{
    from{opacity:0;transform:translateY(-8px)}
    to{opacity:1;transform:none}
}

/* back to top */
.sob14-top{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:400;
    width:48px!important;
    height:48px;
    padding:0!important;
    border-radius:50%!important;
    opacity:0;
    pointer-events:none;
    transform:translateY(12px);
    transition:.22s ease;
}
.sob14-top.show{
    opacity:1;
    pointer-events:auto;
    transform:none;
}

/* mobile menu polish */
body.menu-open .nav{
    box-shadow:0 20px 55px rgba(0,0,0,.55);
}
body.menu-open .navlinks{
    animation:sob14-menu .18s ease both;
}
@keyframes sob14-menu{
    from{opacity:0;transform:translateY(-8px)}
    to{opacity:1;transform:none}
}

/* form/button loading */
button.sob14-loading,
.btn.sob14-loading{
    opacity:.68;
    pointer-events:none;
    filter:grayscale(.15);
}
button.sob14-loading:after,
.btn.sob14-loading:after{
    content:"";
    display:inline-block;
    width:12px;
    height:12px;
    margin-left:9px;
    border:2px solid rgba(0,0,0,.35);
    border-top-color:rgba(0,0,0,.9);
    border-radius:50%;
    animation:sob14-spin .7s linear infinite;
}
@keyframes sob14-spin{to{transform:rotate(360deg)}}

/* shop polish */
.package input[type="number"],
.bulk-actions input[type="number"]{
    max-width:100px;
    text-align:center;
    font-weight:900;
}
.package.sob14-added{
    animation:sob14-added .55s ease;
}
@keyframes sob14-added{
    0%{box-shadow:0 0 0 rgba(255,216,97,0)}
    45%{box-shadow:0 0 38px rgba(255,216,97,.45)}
    100%{box-shadow:inherit}
}

/* confetti */
.sob14-confetti{
    position:fixed;
    top:-12px;
    width:8px;
    height:12px;
    background:var(--sob14-gold);
    z-index:9998;
    pointer-events:none;
    animation:sob14-fall 1.4s linear forwards;
}
@keyframes sob14-fall{
    to{transform:translateY(calc(100vh + 30px)) rotate(540deg);opacity:0}
}

/* image polish */
img[data-sob14-lazy]{
    opacity:0;
    transition:opacity .25s ease;
}
img[data-sob14-lazy].sob14-img-loaded{
    opacity:1;
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
    .sob14-ambience,.sob14-ambience:before,.sob14-ambience:after,
    .sob14-reveal,.sob14-toast,.sob14-confetti{
        animation:none!important;
        transition:none!important;
    }
    .sob14-reveal{opacity:1;transform:none}
}

/* mobile */
@media(max-width:800px){
    .sob14-toast-wrap{
        left:12px;
        right:12px;
        top:12px;
        max-width:none;
    }
    .sob14-top{
        right:14px;
        bottom:14px;
    }
}
