:root {
    --tblr-primary: #6424d4;
    --tblr-primary-rgb: 100, 36, 212;
    --ink: #0a1025;
    --paper: #faf9fe;
    --purple: #6424d4;
    --pink: #e009a4;
    --blue: #075ee7;
    --orange: #ff981a;
    --border: #e6e1ef;
    --brand-gradient: linear-gradient(115deg, #075ee7 0%, #5b0fca 43%, #cf009f 76%, #ff8d0a 100%);
}
body { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); }
a { color: #6424d4; }
a:hover { color: #4715a3; }
h1, h2, h3 { letter-spacing: -.04em; color: var(--ink); }
h2 { font-size: 30px; font-weight: 750; }
h3 { font-size: 20px; font-weight: 700; }
.guest-body { background: var(--paper); }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; text-decoration: none; }
.brand-logo { display: block; width: 210px; height: auto; }
.guest-header { padding: 14px 0; background: #fff; border-bottom: 1px solid var(--border); }
.guest-header nav > a { color: var(--ink); text-decoration: none; font-size: 13px; font-weight: 650; }
.guest-header nav > a:hover { color: var(--purple); }
.guest-header nav .btn { color: #fff; }
.cart-count { display: inline-flex; align-items: center; justify-content: center; width: 23px; height: 23px; margin-left: 5px; border-radius: 50%; background: #eee7fc; color: #6424d4; }
.btn { padding: 12px 20px; border-radius: 9px; font-weight: 650; box-shadow: none; transition: transform .18s, box-shadow .18s; }
.btn:hover { transform: translateY(-1px); }
.btn-sm { padding: 6px 10px; }
.btn-dark, .btn-primary { color: #fff; background: linear-gradient(115deg, #6424d4, #3c16ae); border-color: #6424d4; }
.btn-dark:hover, .btn-primary:hover { background: #4e17b5; border-color: #4e17b5; color: #fff; box-shadow: 0 5px 16px #6424d426; }
.btn-outline-dark { color: #6424d4; border-color: #bca5e9; }
.btn-outline-dark:hover { background: #6424d4; border-color: #6424d4; color: #fff; }
.btn-brand { background: #fff; color: #341469; border: 0; gap: 50px; padding: 16px 25px; }
.btn-brand:hover { background: #f0e8ff; color: #341469; box-shadow: 0 8px 28px #0003; }
.home-hero { position: relative; overflow: hidden; padding: 70px 0 65px; color: white; background: radial-gradient(ellipse at 90% 75%, #40239c88, transparent 53%), radial-gradient(ellipse at 60% 0, #d20b7130, transparent 45%), #090e25; }
.hero-grid { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 35px; }
.hero-copy { position: relative; z-index: 1; }
.hero-kicker { display: flex; align-items: center; gap: 10px; color: #d5c9f2; font-size: 10px; font-weight: 700; letter-spacing: .16em; margin-bottom: 26px; }
.kicker-dot { width: 7px; height: 7px; border-radius: 50%; background: #ff981a; box-shadow: 0 0 15px #ff981a70; }
.home-hero h1 { color: white; font-size: clamp(60px, 6.8vw, 94px); font-weight: 850; line-height: 1.04; letter-spacing: -.055em; word-spacing: .1em; margin: 0; }
.home-hero em { color: #db8ef9; background: linear-gradient(105deg, #ac9bff, #ff6ed4 65%, #ffad52); background-clip: text; -webkit-text-fill-color: transparent; font-style: normal; }
.hero-copy > p { font-size: 16px; line-height: 1.8; color: #c0bed5; margin: 27px 0 29px; }
.hero-note { color: #9691b0; font-size: 11px; margin-top: 21px; letter-spacing: .025em; }
.hero-visual { height: 390px; position: relative; display: flex; align-items: center; justify-content: center; }
.orbit { position: absolute; width: 440px; height: 250px; border: 1px solid #d5c3ff24; border-radius: 50%; transform: rotate(-32deg); }
.orbit-two { width: 510px; height: 310px; transform: rotate(-32deg); border-style: dashed; opacity: .6; }
.decor-ticket { position: absolute; width: 280px; height: 350px; border-radius: 22px; }
.ticket-back { background: linear-gradient(140deg, #185bf9, #8b1bda); transform: rotate(-17deg) translate(-25px, -2px); border: 1px solid #ffffff30; opacity: .65; }
.ticket-front { background: linear-gradient(145deg, #ff9c12 0%, #ff4774 25%, #cd039e 47%, #6d0ac6 70%, #075ee7 100%); transform: rotate(10deg); padding: 24px; box-shadow: 0 25px 65px #0005; overflow: hidden; }
.ticket-visual-heading { display: flex; justify-content: space-between; align-items: center; font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.ticket-visual-heading > span { font-size: 28px; line-height: 1; }
.ticket-visual-main { position: relative; font-size: 185px; font-weight: 900; line-height: 1.05; letter-spacing: -.12em; text-align: center; }
.ticket-swoosh { position: absolute; border-bottom: 15px solid #ffffffa0; width: 240px; height: 110px; border-radius: 50%; transform: rotate(-35deg); left: -22px; top: 55px; }
.ticket-perforation { border-top: 2px dashed #ffffff65; position: absolute; top: 259px; left: 15px; right: 15px; }
.ticket-front::before, .ticket-front::after { content: ''; position: absolute; width: 28px; height: 28px; background: #171139; border-radius: 50%; top: 246px; z-index: 1; }
.ticket-front::before { left: -14px; }
.ticket-front::after { right: -14px; }
.ticket-visual-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 28px; font-size: 10px; letter-spacing: .12em; font-weight: 750; line-height: 1.4; }
.ticket-visual-arrow { font-size: 32px; font-weight: 400; }
.hero-star { position: absolute; color: #ff981a; line-height: 1; text-shadow: 0 0 24px #ff981a20; }
.star-large { font-size: 85px; top: -15px; right: 12px; transform: rotate(12deg); }
.star-small { font-size: 36px; bottom: 2px; left: 10px; color: #be8dff; }
.visual-caption { position: absolute; bottom: -20px; right: 30px; font-size: 8px; letter-spacing: .3em; color: #b9a6e7; transform: rotate(-6deg); }
.section-space { padding-top: 55px; padding-bottom: 65px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin-bottom: 26px; }
.section-heading h2 { margin-bottom: 0; }
.eyebrow { font-size: 10px; font-weight: 750; letter-spacing: .14em; color: #81689d; margin-bottom: 7px; }
.brand-accent { color: #ce0aad; }
.card { border-color: var(--border); box-shadow: 0 3px 12px #29114c04; border-radius: 12px; }
.event-card { display: block; color: var(--ink); background: #fff; border: 1px solid var(--border); border-radius: 15px; overflow: hidden; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.event-card:hover { color: var(--ink); text-decoration: none; transform: translateY(-4px); box-shadow: 0 12px 35px #6221c415; }
.event-image { height: 230px; background-size: cover; background-position: center; position: relative; }
.event-badge { position: absolute; left: 18px; top: 18px; background: #ffffffed; color: #56259c; font-size: 9px; font-weight: 800; letter-spacing: .09em; padding: 7px 10px; border-radius: 5px; }
.event-arrow { position: absolute; right: 16px; bottom: 16px; border-radius: 50%; color: white; background: linear-gradient(135deg, #b709d2, #095de8); font-size: 25px; width: 42px; height: 42px; text-align: center; }
.event-body { padding: 24px; }
.event-body h3 { font-size: 25px; margin: 10px 0; }
.event-body p { font-size: 13px; color: #757184; min-height: 42px; line-height: 1.6; }
.event-link { display: flex; justify-content: space-between; border-top: 1px dashed #ddd3ed; padding-top: 18px; margin-top: 22px; font-size: 12px; font-weight: 700; color: #6424d4; }
.account-banner { display: flex; align-items: center; gap: 25px; background: linear-gradient(110deg, #eee8ff, #fbe7f7 70%, #fff1df); border: 1px solid #ebdcf9; border-radius: 15px; padding: 32px; }
.account-banner h3 { margin-bottom: 6px; }
.account-banner p { margin: 0; color: #777083; }
.account-banner .btn { margin-left: auto; flex-shrink: 0; }
.banner-icon { font-size: 52px; color: #cc0eaf; }
.guest-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 28px; padding-bottom: 30px; border-top: 1px solid var(--border); font-size: 12px; color: #757184; gap: 20px; }
.guest-footer .brand-logo { width: 165px; }
.event-hero { background-size: cover; background-position: center; min-height: 450px; display: flex; align-items: end; color: white; padding: 35px 0 50px; }
.event-hero h1 { color: inherit; font-size: clamp(42px,6vw,74px); font-weight: 800; }
.event-hero p { font-size: 17px; max-width: 670px; line-height: 1.7; }
.back-link { display: block; color: #fff; margin-bottom: 90px; }
.back-link:hover { color: #f2c0ff; }
.edition-card { display: flex; flex-direction: row; padding: 28px; gap: 24px; }
.date-block { display: flex; flex-direction: column; align-items: center; justify-content: center; background: #eee7fc; color: #6424d4; min-width: 85px; height: 100px; border-radius: 9px; text-transform: uppercase; font-size: 12px; }
.date-block strong { font-size: 38px; line-height: 1.3; }
.gallery-image { width: 100%; height: 250px; object-fit: cover; border-radius: 12px; }
.display-title { font-size: clamp(34px,4vw,53px); font-weight: 800; letter-spacing: -.05em; margin-top: 14px; margin-bottom: 20px; }
.edition-photo { width: 100%; height: 270px; object-fit: cover; border-radius: 12px; }
.info-line { margin: 15px 0; font-size: 15px; }
.ticket-card { padding: 26px; margin-bottom: 20px; border-radius: 14px; position: relative; border-top: 3px solid #a138df; }
.ticket-card::after { content: ''; position: absolute; left: 0; right: 0; bottom: 100px; border-top: 1px dashed #e4d8f1; pointer-events: none; }
.ticket-price { color: #6424d4; font-size: 22px; white-space: nowrap; }
.quantity-input { width: 90px; }
.checkout-card { padding: 28px; background: linear-gradient(150deg, #f2edff, #fff7fd); position: sticky; top: 20px; }
.checkout-card h3 { margin-top: 15px; }
.auth-wrap { display: flex; align-items: center; justify-content: space-around; gap: 60px; padding-top: 70px; padding-bottom: 80px; min-height: 680px; }
.auth-intro { background: radial-gradient(ellipse at 100% 100%, #5d0e9a, transparent 70%), #0b112d; color: #fff; padding: 45px; border-radius: 18px; flex: 1; max-width: 490px; position: relative; overflow: hidden; min-height: 490px; }
.auth-intro .eyebrow { color: #c5a8eb; }
.auth-intro h1 { color: inherit; font-size: 50px; font-weight: 800; margin: 35px 0 25px; line-height: 1.1; }
.auth-intro em { color: #f488d6; font-style: normal; }
.auth-intro p { font-size: 16px; line-height: 1.8; color: #c2b6d9; }
.auth-spark { font-size: 150px; color: #ff981a; position: absolute; right: 30px; bottom: -40px; }
.auth-card { padding: 40px; width: 440px; max-width: 100%; border-radius: 15px; }
.auth-card h2 { font-size: 32px; }
.form-control { border-color: #ded6eb; border-radius: 7px; padding: 11px 12px; }
.form-control:focus { border-color: #9e77e0; box-shadow: 0 0 0 3px #6424d419; }
.form-label { font-size: 12px; font-weight: 650; }
input[type=checkbox] { accent-color: #6424d4; }
.admission-link { padding: 17px; display: flex; justify-content: space-between; gap: 12px; background: #f2ebff; border: 1px dashed #dfcdf7; border-radius: 8px; font-size: 13px; }
.admission-paper { max-width: 570px; overflow: hidden; }
.ticket-paper-top { padding: 35px; background: linear-gradient(130deg, #1e1b64, #7b12ae 75%, #cc0a9b); color: white; border-bottom: 2px dashed #d2a6ed; }
.ticket-paper-top .eyebrow { color: #e5c9fa; }
.ticket-paper-top h1 { color: inherit; font-size: 34px; }
.ticket-paper-top h2 { color: inherit; }
.ticket-logo { display: inline-block; padding: 8px 15px; border-radius: 9px; background: #fff; margin-bottom: 24px; }
.ticket-logo img { display: block; max-width: 100%; height: auto; }
.ticket-code { padding: 22px 14px; border: 1px dashed #c1a7e0; background: #faf6ff; text-align: center; }
.ticket-code small { display: block; letter-spacing: 2px; font-size: 9px; margin-bottom: 12px; }
.ticket-code strong { font-family: monospace; font-size: 16px; overflow-wrap: anywhere; }
.account-order { color: var(--ink); }
.account-order:hover { color: var(--ink); text-decoration: none; border-color: #a37ce1; box-shadow: 0 6px 25px #6424d40d; }
.lead { font-size: 17px; line-height: 1.8; }
.badge { font-weight: 650; letter-spacing: 0; }
.bg-teal-lt { background: #f0e8ff !important; color: #6424d4 !important; }
.text-teal { color: #6424d4 !important; }
@media (max-width: 991px) {
    .hero-grid { grid-template-columns: 1.1fr .9fr; gap: 10px; }
    .hero-visual { transform: scale(.85); transform-origin: center; }
    .hero-star.star-large { right: -20px; }
    .auth-wrap { gap: 25px; }
    .auth-intro { padding: 30px; }
    .auth-intro h1 { font-size: 39px; }
}
@media (max-width: 650px) {
    .guest-header { padding: 12px 0; }
    .brand-logo { width: 145px; }
    .guest-header nav { gap: 12px !important; }
    .guest-header nav > a { font-size: 11px; }
    .guest-header .btn { padding: 10px 11px; }
    .home-hero { padding: 40px 12px 30px; }
    .hero-grid { grid-template-columns: 1fr; }
    .hero-kicker { font-size: 8px; letter-spacing: .12em; }
    .home-hero h1 { font-size: clamp(55px, 13.5vw, 78px); }
    .hero-copy > p { font-size: 14px; }
    .hero-note { font-size: 10px; }
    .hero-visual { height: 330px; transform: scale(.8); margin-top: 0; margin-bottom: -25px; }
    .hero-star.star-large { right: 5px; top: -20px; }
    .orbit { width: 365px; }
    .orbit-two { width: 400px; }
    .visual-caption { bottom: -15px; right: 5px; }
    .section-space { padding-top: 35px; padding-bottom: 40px; }
    .section-heading { align-items: start; flex-direction: column; }
    .account-banner { flex-wrap: wrap; padding: 23px; gap: 15px; }
    .account-banner .btn { margin-left: 0; }
    .guest-footer { flex-direction: column; align-items: start; }
    .auth-wrap { padding: 35px 12px; min-height: 0; }
    .auth-intro { display: none; }
    .auth-card { padding: 25px; }
    .edition-card { padding: 20px; gap: 16px; }
    .event-hero { min-height: 380px; }
    .event-hero p { font-size: 15px; }
    .ticket-card { padding: 20px; }
    .ticket-price { font-size: 19px; }
    .ticket-code strong { font-size: 13px; }
}
@media (max-width: 380px) {
    .brand-logo { width: 120px; }
    .guest-header nav { gap: 8px !important; }
    .cart-count { width: 19px; height: 19px; margin-left: 2px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
@media print {
    .guest-header, .guest-footer, .no-print { display: none !important; }
    .section-space { padding: 0; }
    .admission-paper { border: 1px solid #342263; break-inside: avoid; }
    .ticket-paper-top { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
    body { background: white; }
}
