@import url("https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
:root {
    --purple-900: #1a0a4a;
    --purple-700: #4b0fa8;
    --purple-500: #8a1fe0;
    --purple-100: #f0e8fb;
    --yellow: #ffe600;
    --ink: #2b2340;
    --grey: #efefef;
}
body {
    font-family: "Barlow", system-ui, sans-serif;
    color: var(--ink);
}
.text-purple {
    color: var(--purple-700);
}
.section-title {
    font-weight: 700;
    font-size: clamp(1.4rem, 3vw, 1.9rem);
    color: #6920d9;
    text-align: center;
    margin-bottom: 2rem;
}

/* Navbar */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 76px;
}
.site-nav {
    background: linear-gradient(180deg, rgba(26, 10, 74, 0.55), rgba(26, 10, 74, 0));
    transition:
        background 0.3s,
        box-shadow 0.3s;
}
.site-nav.scrolled {
    background: #31087a;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}
@media (max-width: 991.98px) {
    .site-nav .navbar-collapse {
        background: var(--purple-900);
        border-radius: 1rem;
        padding: 1rem;
        margin-top: 0.5rem;
    }
}
.site-nav .navbar-brand {
    color: #fff;
    font-weight: 800;
    letter-spacing: 0.01em;
}
.site-nav .navbar-brand span {
    color: var(--yellow);
}
.site-nav .navbar-brand img {
    height: 44px;
    width: auto;
}
.site-nav .nav-link {
    color: #e4d8f8;
    font-weight: 600;
    padding: 0.6rem 1rem;
}
.site-nav .nav-link:hover,
.site-nav .nav-link.active {
    color: var(--yellow);
}
.site-nav .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.4);
}
.site-nav .navbar-toggler-icon {
    filter: invert(1);
}
.btn-register {
    background: var(--yellow);
    color: var(--purple-900);
    font-weight: 700;
    border-radius: 2rem;
    padding: 0.5rem 1.4rem;
    border: 0;
}
.btn-register:hover,
.btn-register:focus-visible {
    background: #fff;
    color: var(--purple-700);
}

/* Hero */
.hero {
    /* Put your image at images/hero-bg.jpg (or change the path below) */
    background-image: url("../new_assets/images/bg.webp");
    color: #fff;
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: center;
    background-size: cover;
}

.hero h1 {
    font-weight: 700;
    font-size: 8rem;
    line-height: 1;
    letter-spacing: 0;
    font-family: "Poppins", sans-serif;
}
.hero .tag {
    font-weight: 700;
    letter-spacing: 0.02em;
    font-size: 1.7rem;
}
.hero .subtext {
    font-weight: 400;
    letter-spacing: 0.02em;
    font-size: 1.3rem;
    max-width: 80%;
}
.entry {
    font-size: 1.5rem;
    font-weight: 500;
}

/* Partners */
.partner-box {
    position: relative;
    border: 1.5px solid var(--purple-500);
    border-radius: 1.5rem;
    padding: 3rem 1rem 1.5rem;
    height: 100%;
}
.partner-box .pill {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--purple-700);
    color: #fff;
    font-weight: 600;
    padding: 0.35rem 1.6rem;
    border-radius: 2rem;
    white-space: nowrap;
    box-shadow: 0px 7px 10px 0px rgb(0 0 0 / 0.3);
}
.logo-slot {
    font-weight: 700;
    color: var(--purple-700);
    text-align: center;
    font-size: 0.95rem;
    line-height: 1.2;
}
.logo-slot i {
    font-size: 1.8rem;
    display: block;
}
.partner-logo img {
    max-width: 100%;
    max-height: 80px;
    width: auto;
    height: auto;
    object-fit: contain;
}
.partner-logo.divided {
    border-left: 1px solid var(--purple-500);
}

/* Banner */
.banner {
    background-image: url("../new_assets/images/bar.webp");
    background-size: cover;
    color: #fff;
    background-position: center;
}
.banner .big {
    font-weight: 800;
    color: var(--yellow);
    font-size: 6rem;
    line-height: 1;
}
.banner .sub {
    font-weight: 700;
    font-size: 4rem;
}
.banner .sub-2 {
    letter-spacing: 0.12em;
    font-weight: 600;
    font-size: 1.3rem;
}
.banner .note {
    border: 1px dashed rgba(255, 255, 255, 0.6);
    padding: 1.5rem;
    text-align: center;
    font-size: 1.25rem;
    background: #b124f73b;
}

/* Explore */
.explore-card {
    background: var(--grey);
    border-radius: 1.5rem;
    padding: 3.2rem 1.25rem 1.5rem;
    text-align: center;
    position: relative;
    height: 100%;
    margin-top: 2rem;
}
.explore-card .ico {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 5.2rem;
    height: 5.2rem;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--purple-500);
    display: grid;
    place-items: center;
    color: var(--purple-700);
    font-size: 1.7rem;
}
.explore-card .ico img {
    width: 2.4rem;
    height: 2.4rem;
    object-fit: contain;
}
.explore-card h3 {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--purple-700);
}
.explore-card p {
    font-size: 1.1rem;
    font-weight: 600;
    margin: 1rem auto 0;
    line-height: 1.3;
}

/* Venues */
.venue-card {
    background: var(--purple-700);
    color: #fff;
    border-radius: 1.25rem;
    padding: 1rem;
    text-align: center;
    height: 100%;
}
.venue-logo {
    background: #fff;
    border-radius: 0.5rem;
    height: 4.5rem;
    padding: 0.4rem;
    margin-bottom: 0.75rem;
    overflow: hidden;
}
.venue-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}
.venue-card h4 {
    color: var(--yellow);
    font-size: 1rem;
    font-weight: 500;
}
.venue-card address {
    font-size: 0.82rem;
    opacity: 0.92;
    margin: 0;
    line-height: 1.45;
}

/* Students CTA */
.cta {
    background: linear-gradient(120deg, #f4f4f4 60%, #e4e4e4);
    border-radius: 1rem;
    padding: 2rem;
}
.cta h2 {
    font-weight: 500;
    font-size: clamp(1.3rem, 3vw, 1.8rem);
    margin: 0;
}
.cta h2 strong {
    display: block;
    font-weight: 800;
    color: var(--purple-700);
    font-size: clamp(1.8rem, 4.5vw, 2.6rem);
}
.btn-fest {
    background: var(--purple-700);
    color: #fff;
    font-weight: 700;
    border-radius: 2rem;
    padding: 0.7rem 1.8rem;
}
.btn-fest:hover,
.btn-fest:focus-visible {
    background: var(--purple-500);
    color: #fff;
}

/* CTA: small aviation touch — dashed "boarding stub" edge + plane icon, same box otherwise */
.cta{position:relative;}
.cta::before{content:"";position:absolute;inset-block:.9rem;left:0;width:2px;background:repeating-linear-gradient(180deg,var(--purple-500) 0 10px,transparent 10px 20px);}
.cta{padding-left:2.2rem;}
.cta h2{display:flex;align-items:center;gap:.6rem;}
.cta h2 svg{width:1.3em;height:1.3em;flex-shrink:0;color:var(--purple-700);}
@media(max-width:767.98px){.cta{padding-left:1.6rem;}}

/* Footer */
.site-footer {
    color: #cbb8ee;
    font-size: 0.95rem;
}
.footer-main {
    position: relative;
    overflow: hidden;
    padding: 4rem 0 3rem;
    background: radial-gradient(600px 320px at 92% 0%, rgba(138, 31, 224, 0.5), transparent 70%),
        radial-gradient(520px 320px at 0% 100%, rgba(106, 16, 200, 0.4), transparent 70%),
        linear-gradient(180deg, #1a0a4a, #120638);
}
.footer-main::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: radial-gradient(rgba(255, 255, 255, 0.09) 1px, transparent 1px);
    background-size: 22px 22px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%);
    mask-image: linear-gradient(90deg, transparent, #000 60%);
}
.footer-main > .container {
    position: relative;
}
.footer-logo {
    height: 64px;
    width: auto;
    max-width: 100%;
}
.site-footer h5 {
    color: #fff;
    font-weight: 700;
    font-size: 1.15rem;
    margin-bottom: 1.4rem;
    position: relative;
    padding-bottom: 0.7rem;
}
.site-footer h5::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 2.5rem;
    height: 3px;
    border-radius: 2px;
    background: var(--yellow);
}
.footer-links a {
    color: #cbb8ee;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.35rem 0;
    transition:
        color 0.2s,
        transform 0.2s;
}
.footer-links a::before {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--yellow);
    flex-shrink: 0;
}
.footer-links a:hover,
.footer-links a:focus-visible {
    color: var(--yellow);
    transform: translateX(4px);
}
.footer-bar {
    background: linear-gradient(90deg, #3a0c8c, #8a1fe0);
    color: #fff;
    padding: 1.1rem 0;
}
.footer-terms {
    color: #fff;
    text-decoration: none;
    font-weight: 400;
}
.footer-terms:hover,
.footer-terms:focus-visible {
    color: var(--yellow);
    text-decoration: underline;
}
.to-top {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    background: var(--yellow);
    color: var(--purple-900);
    display: grid;
    place-items: center;
    text-decoration: none;
    font-size: 1.2rem;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
    opacity: 0;
    visibility: hidden;
    transition: 0.25s;
    z-index: 1040;
}
.to-top.show {
    opacity: 1;
    visibility: visible;
}

/* Page header */
.page-head {
    background: linear-gradient(135deg, #9d1cf0 0%, #6a10c8 55%, #3a0c8c 100%);
    color: #fff;
    padding: 7rem 0 6.5rem;
    text-align: center;
}
.page-head h1 {
    font-weight: 800;
    font-size: clamp(2.2rem, 6vw, 3.6rem);
    line-height: 1.05;
}
.page-head h1 span {
    color: var(--yellow);
}
.page-head p {
    max-width: 70%;
    margin: 1rem auto 0;
    opacity: 0.92;
}

/* Form card */
.form-wrap {
    margin-top: -4rem;
    position: relative;
}
.form-card {
    background: #fff;
    border-radius: 1.5rem;
    padding: clamp(1.25rem, 4vw, 2.5rem);
    box-shadow: 0 12px 40px rgba(58, 12, 140, 0.15);
}
.step-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 700;
    font-size: 1.25rem;
    color: var(--purple-700);
    margin: 2rem 0 1.1rem;
}
.step-title:first-child {
    margin-top: 0;
}
.step-title .n {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--purple-700);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 0.95rem;
    flex-shrink: 0;
}
.form-label {
    font-weight: 600;
    font-size: 0.95rem;
}
.form-control,
.form-select {
    border-radius: 0.75rem;
    padding: 0.7rem 0.9rem;
    border-color: #d9cff0;
}
.form-control:focus,
.form-select:focus {
    border-color: var(--purple-500);
    box-shadow: 0 0 0 0.2rem rgba(138, 31, 224, 0.18);
}
.req {
    color: #d6336c;
}

/* Selectable option cards (venue + type) */
.opt {
    display: block;
    height: 100%;
    text-align: left;
    border: 1.5px solid #d9cff0;
    border-radius: 0.9rem;
    padding: 0.8rem 1rem;
    cursor: pointer;
    background: #fff;
    transition: 0.15s;
}
.opt strong {
    display: block;
    color: var(--purple-700);
}
.opt small {
    color: #6d6486;
}
.btn-check:checked + .opt {
    border-color: var(--purple-500);
    background: #f3e9ff;
    box-shadow: 0 0 0 2px rgba(138, 31, 224, 0.25);
}
.btn-check:focus-visible + .opt {
    outline: 3px solid rgba(138, 31, 224, 0.4);
}
.opt:hover {
    border-color: var(--purple-500);
}
.was-validated .btn-check:invalid + .opt {
    border-color: #dc3545;
}
.group-msg {
    display: none;
    color: #dc3545;
    font-size: 0.875rem;
    margin-top: 0.4rem;
}
.was-validated .group:has(.btn-check:invalid) .group-msg {
    display: block;
}

.btn-submit {
    background: var(--purple-700);
    color: #fff;
    font-weight: 700;
    border-radius: 2rem;
    padding: 0.85rem 2.4rem;
    font-size: 1.1rem;
    border: 0;
}
.btn-submit:hover,
.btn-submit:focus-visible {
    background: var(--purple-500);
    color: #fff;
}
.thanks {
    text-align: center;
    padding: 2rem 0;
}
.thanks .tick {
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 50%;
    background: var(--yellow);
    color: var(--purple-900);
    font-size: 2.2rem;
    font-weight: 800;
    display: grid;
    place-items: center;
    margin: 0 auto 1rem;
}
.form-check-input {
    border: 1px solid #aab1b9;
}


/* ===== Departures board + boarding pass (all classes prefixed "dep") ===== */
.dep{background:radial-gradient(700px 300px at 50% 0%,rgba(138,31,224,.35),transparent 70%),#0c0424;color:#fff;padding:4.5rem 0;}
.dep-tag{display:inline-block;font-weight:700;letter-spacing:.25em;font-size:.8rem;color:var(--yellow);border:1px solid rgba(255,230,0,.5);padding:.3rem .9rem;border-radius:2rem;}
.dep h2{font-weight:800;font-size:clamp(1.9rem,4.5vw,3rem);margin:1rem 0 .5rem;}
.dep-sub b{color:var(--yellow);}
.dep-board{max-width:1000px;margin:2rem auto 0;background:#07030f;border:1px solid rgba(255,255,255,.14);border-radius:1rem;overflow:hidden;font-family:ui-monospace,Consolas,"Courier New",monospace;box-shadow:0 20px 50px rgba(0,0,0,.45);}
.dep-row{display:grid;grid-template-columns:.8fr 1.2fr 2.4fr 1.5fr 1.2fr;gap:.75rem;align-items:center;padding:.9rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);text-transform:uppercase;letter-spacing:.05em;font-size:.92rem;}
.dep-head{border-top:0;background:rgba(255,255,255,.06);color:#a99bd6;font-size:.7rem;}
.dep-flt{color:#fff;font-weight:700;}
.dep-city{color:#ffc933;font-weight:700;font-size:1.05rem;}
.dep-ven{color:#d9d0f5;text-transform:none;letter-spacing:0;font-size:.85rem;}
.dep-dt{color:#ffc933;}
.dep-st{color:#3dff8b;font-weight:700;}
.dep-st::before{content:"";display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:#3dff8b;margin-right:.5rem;animation:depBlink 1.4s steps(2) infinite;}
@keyframes depBlink{50%{opacity:.15}}
.dep-pass{max-width:900px;margin:3rem auto 0;display:grid;grid-template-columns:1fr 220px;background:#fff;color:var(--purple-900);border-radius:1.25rem;box-shadow:0 20px 50px rgba(0,0,0,.45);}
.dep-pass-top{background:linear-gradient(90deg,#3a0c8c,#8a1fe0);color:#fff;padding:.8rem 1.5rem;display:flex;justify-content:space-between;font-weight:700;letter-spacing:.12em;font-size:.8rem;border-radius:1.25rem 0 0 0;}
.dep-pass-body{padding:1.4rem 1.5rem 1.2rem;}
.dep-route{display:flex;align-items:center;gap:1rem;}
.dep-route > div{flex:1;}
.dep-mid{flex:0 0 auto;font-size:1.8rem;color:var(--purple-500);}
.dep-pass label{display:block;font-size:.68rem;letter-spacing:.14em;color:#7a6fa0;font-weight:700;text-transform:uppercase;}
.dep-big{font-size:clamp(1.3rem,3.5vw,1.9rem);font-weight:800;line-height:1.1;}
.dep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.2rem;font-weight:700;}
.dep-barcode{height:38px;margin-top:1.2rem;background:repeating-linear-gradient(90deg,#1a0a4a 0 2px,transparent 2px 5px,#1a0a4a 5px 6px,transparent 6px 10px,#1a0a4a 10px 13px,transparent 13px 15px);opacity:.85;}
.dep-stub{position:relative;background:var(--yellow);border-left:2px dashed var(--purple-900);border-radius:0 1.25rem 1.25rem 0;padding:1.4rem 1.2rem;display:flex;flex-direction:column;justify-content:center;text-align:center;gap:1rem;}
.dep-stub::before,.dep-stub::after{content:"";position:absolute;left:-13px;width:24px;height:24px;border-radius:50%;background:#0c0424;}
.dep-stub::before{top:-12px;}
.dep-stub::after{bottom:-12px;}
.dep-stub strong{font-size:1.1rem;letter-spacing:.1em;}
@media (max-width:767.98px){
  .dep-head{display:none;}
  .dep-row{grid-template-columns:1fr 1fr;row-gap:.35rem;}
  .dep-row .dep-ven{grid-column:1/-1;}
  .dep-pass{grid-template-columns:1fr;}
  .dep-pass-top{border-radius:1.25rem 1.25rem 0 0;}
  .dep-stub{border-left:0;border-top:2px dashed var(--purple-900);border-radius:0 0 1.25rem 1.25rem;}
  .dep-stub::before{top:-13px;left:-12px;}
  .dep-stub::after{top:-13px;bottom:auto;left:auto;right:-12px;}
  .dep-grid{grid-template-columns:1fr 1fr;}
  .dep-route{flex-direction:column;align-items:flex-start;gap:.4rem;}
  .dep-mid{transform:rotate(90deg);}
}

/* ===== end Departures ===== */

/*-- ===== 360째 AIRCRAFT VIEWER (paste between </nav> and the hero <header>) ===== */
.viewer360{position:relative;overflow:hidden;color:#fff;padding:7rem 0 4.5rem;
  background:radial-gradient(800px 420px at 78% 35%,rgba(138,31,224,.5),transparent 70%),radial-gradient(500px 300px at 10% 90%,rgba(0,190,255,.16),transparent 70%),linear-gradient(160deg,#0c0424,#1a0a4a 55%,#2a0a78);}
.viewer360::before{content:"AVIATION";position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);font-weight:800;font-size:clamp(6rem,24vw,22rem);letter-spacing:.04em;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.07);pointer-events:none;white-space:nowrap;}
.viewer360>.container{position:relative;}
.v360-tag{display:inline-block;font-weight:700;letter-spacing:.25em;font-size:.8rem;color:#ffe600;border:1px solid rgba(255,230,0,.5);padding:.3rem .9rem;border-radius:2rem;}
.viewer360 h2{font-weight:800;font-size:clamp(2.3rem,5.5vw,3.8rem);line-height:1;margin:1rem 0;}
.viewer360 h2 span{background:linear-gradient(90deg,#ffe600,#ff9d00);-webkit-background-clip:text;background-clip:text;color:transparent;}
.viewer360 .lead{opacity:.88;max-width:29rem;}
.v360-btns{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;}
.v360-btns button{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:.5rem;padding:.45rem 1.1rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;transition:.2s;}
.v360-btns button:hover,.v360-btns button.on{background:#ffe600;border-color:#ffe600;color:#1a0a4a;box-shadow:0 0 18px rgba(255,230,0,.5);}
.v360-stats{display:flex;gap:1.5rem;margin-top:1.8rem;}
.v360-stats b{display:block;font-size:1.6rem;color:#ffe600;line-height:1;}
.v360-stats small{opacity:.7;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;}
.v360-stage{position:relative;aspect-ratio:16/11;cursor:grab;touch-action:pan-y;border-radius:1rem;
  background:radial-gradient(ellipse at 50% 60%,rgba(138,31,224,.28),rgba(10,4,36,.55) 70%);border:1px solid rgba(255,255,255,.12);}
.v360-stage:active{cursor:grabbing;}
.v360-stage canvas{display:block;width:100%;height:100%;border-radius:1rem;}
.v360-stage i{position:absolute;width:26px;height:26px;border:2px solid #ffe600;pointer-events:none;}
.v360-stage .tl{top:-2px;left:-2px;border-right:0;border-bottom:0;border-top-left-radius:1rem;}
.v360-stage .tr{top:-2px;right:-2px;border-left:0;border-bottom:0;border-top-right-radius:1rem;}
.v360-stage .bl{bottom:-2px;left:-2px;border-right:0;border-top:0;border-bottom-left-radius:1rem;}
.v360-stage .br{bottom:-2px;right:-2px;border-left:0;border-top:0;border-bottom-right-radius:1rem;}
.v360-hud{position:absolute;font:600 .72rem/1.5 ui-monospace,Consolas,monospace;letter-spacing:.12em;color:#9fe8ff;pointer-events:none;text-shadow:0 0 8px rgba(0,190,255,.6);}
.v360-hud.l{top:.9rem;left:1.2rem;}.v360-hud.r{top:.9rem;right:1.2rem;text-align:right;}.v360-hud.b{bottom:.9rem;left:50%;transform:translateX(-50%);color:#fff;opacity:.8;text-shadow:none;white-space:nowrap;}
.v360-msg{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:1rem;opacity:.8;pointer-events:none;}
.v360-hs{position:absolute;left:0;top:0;width:28px;height:28px;margin:-14px 0 0 -14px;border:0;background:none;padding:0;z-index:2;transition:opacity .25s;}
.v360-hs.off{opacity:0;pointer-events:none;}
.v360-hs b{position:absolute;inset:8px;border-radius:50%;background:#ffe600;box-shadow:0 0 12px #ffe600;}
.v360-hs b::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid #ffe600;animation:v360p 1.8s ease-out infinite;}
@keyframes v360p{from{transform:scale(.6);opacity:.9}to{transform:scale(1.9);opacity:0}}
.v360-hs span{color:#ffe600;position:absolute;left:32px;top:50%;transform:translateY(-50%);white-space:nowrap;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:rgba(10,4,36,.88);border:1px solid rgba(255,230,0,.6);padding:.2rem .6rem;border-radius:.4rem;opacity:0;pointer-events:none;transition:opacity .2s;}
.v360-hs:hover span,.v360-hs:focus-visible span,.v360-hs.on span{opacity:1;}
.v360-hs.on b{background:#fff;}
.v360-card{position:absolute;left:1rem;bottom:2.4rem;width:min(19rem,calc(100% - 2rem));background:rgba(10,4,36,.88);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2);border-left:4px solid #ffe600;border-radius:.75rem;padding:.9rem 2.2rem .9rem 1rem;z-index:3;}
.v360-card h3{font-size:1rem;font-weight:700;color:#ffe600;margin:0 0 .3rem;}
.v360-card p{font-size:.85rem;margin:0;opacity:.9;}
.v360-card .x{position:absolute;top:.3rem;right:.5rem;background:none;border:0;color:#fff;font-size:1.4rem;line-height:1;}
@media(max-width:575.98px){.v360-hud{font-size:.6rem}.v360-stats{justify-content:center}}



.edate{position:relative;overflow:hidden;color:#fff;padding:3.5rem ;
  background:linear-gradient(100deg,#1a0a4a 0%,#3a0c8c 55%,#6a10c8 100%);
  border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);border-radius: 15px;}
/* runway centre-line, marching across the section */
.edate::before{content:"";position:absolute;left:0;right:0;top:50%;height:6px;margin-top:-3px;
  background:repeating-linear-gradient(90deg,var(--yellow) 0 40px,transparent 40px 80px);opacity:.16;
  animation:edateRunway 3s linear infinite;}
@keyframes edateRunway{from{background-position:0 0;}to{background-position:160px 0;}}
.edate::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(480px 260px at 10% 0%,rgba(255,230,0,.14),transparent 70%),radial-gradient(480px 260px at 90% 100%,rgba(138,31,224,.35),transparent 70%);}
.edate>.container{position:relative;}
.edate-tag{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;letter-spacing:.25em;font-size:.78rem;
  color:var(--purple-900);background:var(--yellow);padding:.35rem 1rem;border-radius:2rem;}
.edate-tag svg{width:16px;height:16px;flex-shrink:0;}
.edate h2{font-weight:800;font-size:clamp(1.7rem,4vw,2.6rem);margin:1rem 0 .35rem;line-height:1.15;}
.edate .sub{opacity:.85;font-size:1.05rem;margin-bottom:0;}
.edate-dates{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;margin-top:1.6rem;}
.edate-d{text-align:center;}
.edate-d label{display:block;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#c9b8ee;margin-bottom:.15rem;}
.edate-d .v{font-weight:800;font-size:clamp(1.5rem,3.2vw,2.1rem);line-height:1;color:var(--yellow);}
.edate-arrow{font-size:1.6rem;color:#c9b8ee;transform:translateY(.15rem);}
.edate .btn-fest{margin-top:1.8rem;}
 
/* Countdown */
.edate-cd{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;}
.edate-cd div{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:.9rem;
  padding:1rem .5rem;text-align:center;backdrop-filter:blur(4px);}
.edate-cd b{display:block;font-size:clamp(1.7rem,4.5vw,2.6rem);font-weight:800;color:#fff;line-height:1;font-variant-numeric:tabular-nums;}
.edate-cd small{display:block;margin-top:.35rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#c9b8ee;}
.edate-live{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.1rem;font-size:.85rem;color:#8effb4;font-weight:600;}
.edate-live i{width:.55rem;height:.55rem;border-radius:50%;background:#3dff8b;animation:edateBlink 1.4s steps(2) infinite;}
@keyframes edateBlink{50%{opacity:.2;}}
 
@media(max-width:767.98px){
  .edate-dates{justify-content:center;text-align:center;}
  .edate-cd{max-width:26rem;margin-inline:auto;}
}
@media(max-width:400px){
    .edate-dates{display:block;}
}

#venues .venue-row{display:flex;flex-wrap:wrap;justify-content:center;gap:1.1rem;}
#venues .venue-col{flex:0 0 calc(50% - .55rem);max-width:calc(50% - .55rem);}
@media(min-width:768px){#venues .venue-col{flex:0 0 calc(33.333% - .74rem);max-width:calc(33.333% - .74rem);}}
@media(min-width:1200px){#venues .venue-col{flex:0 0 calc(25% - .83rem);max-width:calc(25% - .83rem);}}
 
/* Gate card */
.gate{background:var(--purple-700);border-radius:1.1rem;overflow:hidden;height:100%;display:flex;flex-direction:column;
  box-shadow:0 10px 26px rgba(26,10,74,.25);}
.gate-top{background:linear-gradient(90deg,#1a0a4a,#3a0c8c);padding:.65rem .9rem;display:flex;align-items:center;justify-content:space-between;
  font-family:ui-monospace,Consolas,monospace;border-bottom:2px solid var(--yellow);}
.gate-no{color:var(--yellow);font-weight:800;font-size:.78rem;letter-spacing:.1em;}
.gate-top svg{width:16px;height:16px;color:#c9b8ee;flex-shrink:0;}
.gate-logo{background:#fff;padding:.4rem;display:flex;align-items:center;justify-content:center;height:4.5rem;}
.gate-logo img{max-width:100%;max-height:100%;object-fit:contain;}
.gate-body{padding:1rem 1.1rem 1.1rem;text-align:center;color:#fff;flex:1;display:flex;flex-direction:column;}
.gate-body h4{color:var(--yellow);font-size:1rem;font-weight:500;margin-bottom:.5rem;}
.gate-body address{font-size:.8rem;opacity:.92;margin:0 0 .9rem;line-height:1.45;flex:1;}
.gate-status{display:inline-flex;align-items:center;gap:.45rem;align-self:center;font-family:ui-monospace,Consolas,monospace;
  font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8effb4;
  background:rgba(0,0,0,.18);border:1px solid rgba(142,255,180,.35);border-radius:2rem;padding:.3rem .8rem;}
.gate-status i{width:.5rem;height:.5rem;border-radius:50%;background:#3dff8b;flex-shrink:0;animation:gateBlink 1.4s steps(2) infinite;}
@keyframes gateBlink{50%{opacity:.2;}}