:root{
    --r:#ff7043;
    --g:#ffd300;
    --c:#00ffff;
    --v:#4b0082;
    --b:#0a001f;
    --panel:rgba(10,0,31,.72);
    --text:#ffd300;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{min-height:100%}
body{
    background:var(--b) center fixed;
    background-size:cover;
    color:var(--text);
    font-family:'Orbitron',sans-serif;
    overflow-x:hidden;
}
body::before{
    content:"";
    position:fixed;
    inset:0;
    background:rgba(5,0,18,.34);
    pointer-events:none;
    z-index:-1;
}
.site-header{
    position:fixed;
    top:0;left:0;right:0;
    background:rgba(10,0,31,.95);
    padding:15px;
    text-align:center;
    z-index:1000;
    backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(0,255,255,.35);
}
.site-nav{display:flex;gap:22px;align-items:center;justify-content:center;flex-wrap:wrap}
.site-nav a{
    color:var(--g);
    font-size:1.05rem;
    text-decoration:none;
    text-shadow:0 0 12px var(--c);
    transition:.3s;
    letter-spacing:.05em;
}
.site-nav a:hover{color:var(--c)}
.page-section{
    min-height:100vh;
    padding:140px 20px 80px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    position:relative;
}
.section-inner{
    width:min(1100px, 94vw);
    margin:0 auto;
    padding:44px 26px;
    border-radius:32px;
    background:var(--panel);
    box-shadow:0 0 42px rgba(0,255,255,.18);
    border:1px solid rgba(255,211,0,.25);
}
.section-inner.narrow{width:min(850px, 94vw)}
h1{font-size:clamp(2.8rem,7vw,4.8rem);color:var(--r);text-shadow:0 0 60px var(--r);margin-bottom:1rem;line-height:1.05}
h2{font-size:clamp(2.1rem,5vw,3.4rem);color:var(--r);text-shadow:0 0 50px var(--r);margin-bottom:2rem;line-height:1.1}
h3{font-size:clamp(1.35rem,3vw,2.1rem);color:var(--g);text-shadow:0 0 22px var(--c);margin:20px 0 10px}
h4{font-size:1.05rem;color:#fff;margin-bottom:10px;line-height:1.5}
p{font-size:clamp(1.05rem,2.2vw,1.5rem);line-height:1.65;margin:20px auto;max-width:900px}
.glow-btn,.disco-btn{
    appearance:none;
    border:0;
    background:var(--r);
    color:#fff;
    padding:18px 50px;
    border-radius:50px;
    box-shadow:0 0 60px var(--r);
    transition:.4s;
    display:inline-block;
    margin:22px;
    cursor:pointer;
    font-family:inherit;
    font-weight:900;
    letter-spacing:.05em;
    font-size:1rem;
}
.glow-btn:hover{transform:translateY(-2px) scale(1.03)}
.crew-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:44px;align-items:start}
.char-card{
    opacity:0;
    transform:translateY(80px) scale(.7);
    transition:all .9s cubic-bezier(.175,.885,.32,1.4);
    cursor:pointer;
    padding:24px;
    border-radius:28px;
}
.char-card.visible{opacity:1;transform:translateY(0) scale(1)}
.char-card:hover{box-shadow:0 0 80px var(--c);transform:scale(1.035)}
.char-card img{width:100%;max-width:380px;border-radius:50%;border:6px solid var(--g);box-shadow:0 0 60px var(--c);display:block;margin:0 auto 16px}
.crew-bio{font-size:1rem;color:#fff;line-height:1.6}
.audio-player{width:90%;max-width:560px;margin:30px auto;display:block}
.video-wrap{width:min(900px,92vw);aspect-ratio:16 / 9;margin:35px auto 0;border-radius:24px;overflow:hidden;box-shadow:0 0 45px rgba(0,255,255,.35);border:2px solid rgba(255,211,0,.45)}
.video-wrap iframe{width:100%;height:100%;display:block}
.site-footer{text-align:center;padding:28px 20px;background:rgba(10,0,31,.94);color:var(--g);border-top:1px solid rgba(0,255,255,.35)}
body.disco{animation:discoPulse .5s infinite alternate}
@keyframes discoPulse{from{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}
@media (max-width:768px){.site-nav{gap:12px}.site-nav a{font-size:.85rem}.page-section{padding-top:130px}.section-inner{padding:34px 18px}.glow-btn{padding:15px 28px}}

/* Patch 05: admin-controlled background layer and contact wrapping. */
body{
    background-image:none !important;
    background-color:var(--b);
}
.smg-bg-layer{
    position:fixed;
    inset:0;
    z-index:0;
    pointer-events:none;
    background-position:var(--smg-bg-position, center center);
    background-repeat:var(--smg-bg-repeat, no-repeat);
    background-size:var(--smg-bg-size, cover);
    opacity:var(--smg-bg-layer-opacity, 1);
    filter:var(--smg-bg-filter, none);
    will-change:background-image;
}
body::before{
    z-index:1;
    background:var(--smg-bg-overlay-color, rgba(5,0,18,.34));
}
.site-header,main,.site-footer{position:relative;z-index:2}
h1,h2,h3,h4,p,.site-nav a,.site-footer{overflow-wrap:anywhere;word-break:normal}
.contact-section h2{overflow-wrap:anywhere;word-break:break-word;max-width:100%}
body.smg-bg-scroll{position:relative}
body.smg-bg-scroll .smg-bg-layer{position:absolute !important;min-height:100%;height:100%}
body.smg-bg-fixed .smg-bg-layer{position:fixed !important}

/* Patch 08: Our Web Properties section. */
.properties-subtitle{margin-top:-.75rem;margin-bottom:2.2rem}
.properties-grid{display:grid;grid-template-columns:repeat(var(--smg-property-columns,3),minmax(0,1fr));gap:34px;align-items:stretch;margin-top:28px}
.property-card{opacity:0;transform:translateY(80px) scale(.7);transition:all .9s cubic-bezier(.175,.885,.32,1.4);cursor:pointer;padding:24px;border-radius:28px;background:rgba(10,0,31,.55);border:1px solid rgba(255,211,0,.28);display:flex;flex-direction:column;align-items:center;min-height:100%}
.property-card.visible{opacity:1;transform:translateY(0) scale(1)}
.property-card:hover{box-shadow:0 0 80px var(--c);transform:scale(1.035)}
.property-image{width:100%;height:190px;object-fit:cover;border-radius:22px;border:4px solid var(--g);box-shadow:0 0 34px rgba(0,255,255,.42);display:block;margin:0 auto 16px}
.property-image-placeholder{width:100%;height:190px;border-radius:22px;border:4px solid var(--g);box-shadow:0 0 34px rgba(0,255,255,.42);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:var(--g);font-size:2rem;background:rgba(255,255,255,.06);text-shadow:0 0 18px var(--c)}
.property-description{font-size:1rem;color:#fff;line-height:1.6;margin:10px auto 18px;max-width:100%}
.property-link{display:inline-block;margin-top:auto;text-decoration:none;background:var(--r);color:#fff;border:1px solid rgba(255,255,255,.4);padding:13px 22px;border-radius:999px;box-shadow:0 0 34px rgba(255,112,67,.55);font-weight:900;letter-spacing:.05em;transition:transform .25s ease, box-shadow .25s ease}
.property-link:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 0 48px var(--r)}
@media(max-width:980px){.properties-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.properties-grid{grid-template-columns:1fr}.property-image,.property-image-placeholder{height:170px}}

/* Patch 09: background cross-dissolve transition. */
.smg-bg-layer{
    opacity:0 !important;
    transition-property:opacity;
    transition-duration:var(--smg-bg-transition, 2s);
    transition-timing-function:ease-in-out;
    will-change:opacity, background-image;
}
.smg-bg-layer.is-active{
    opacity:var(--smg-bg-layer-opacity, 1) !important;
}

/* Patch 12: public theme selector mini dashboard. */
.public-theme-chooser{
    margin:18px auto 0;
    display:grid;
    gap:12px;
    justify-items:center;
}
.public-theme-title{
    color:var(--g);
    font-size:.9rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    text-shadow:0 0 18px var(--c);
}
.public-theme-buttons{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:12px;
}
.theme-choice-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:12px 20px;
    border-radius:999px;
    border:1px solid rgba(0,255,255,.65);
    background:rgba(10,0,31,.58);
    color:#fff;
    text-decoration:none;
    font-weight:900;
    letter-spacing:.06em;
    box-shadow:0 0 24px rgba(0,255,255,.22);
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.theme-choice-btn:hover{transform:translateY(-2px);box-shadow:0 0 34px rgba(255,112,67,.42);background:rgba(255,112,67,.32)}
.theme-choice-btn.is-active{background:var(--r);border-color:var(--r);color:#fff;box-shadow:0 0 46px var(--r)}
.theme-choice-btn.site-default-btn{font-size:.8rem;opacity:.9}
@media(max-width:680px){.public-theme-buttons{gap:9px}.theme-choice-btn{width:100%;max-width:280px}.public-theme-chooser{width:100%}}
