:root{--bg:#090d1f;--bg2:#121a3d;--ink:#f5f2ff;--mute:#aaa8cc;--pink:#ff4d8d;--amber:#ffb547;--teal:#2ee6c8;--line:rgba(255,255,255,.12);--glass:rgba(255,255,255,.06);--r:22px}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:400 1.02rem/1.65 "DM Sans",system-ui,sans-serif;min-height:100vh;display:flex;flex-direction:column;background-image:radial-gradient(60% 40% at 80% -5%,rgba(255,77,141,.22),transparent),radial-gradient(50% 40% at 0 30%,rgba(46,230,200,.12),transparent)}
main{flex:1}[hidden]{display:none!important}
h1,h2,h3{font-family:Outfit,sans-serif;line-height:1.05;letter-spacing:-.02em}
h1{font-weight:900;font-size:clamp(3rem,8vw,6rem)}h2{font-weight:900;font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:8px}h3{font-weight:700;font-size:1.5rem}
a{color:inherit}:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}.page{padding:64px 0 90px}
.lead{color:var(--mute);max-width:58ch;margin-bottom:32px}.note{color:var(--mute);font-size:.9rem}
.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);padding:26px;backdrop-filter:blur(12px)}
.btn{display:inline-block;border:0;cursor:pointer;font:700 1rem Outfit,sans-serif;color:#fff;text-decoration:none;padding:13px 26px;border-radius:999px;background:linear-gradient(135deg,var(--pink),#ff7a4d);box-shadow:0 10px 30px -8px rgba(255,77,141,.7);transition:transform .15s}
.btn:hover{transform:translateY(-2px)}.btn.ghost{background:transparent;box-shadow:none;border:1.5px solid var(--line)}.btn.sm{padding:8px 16px;font-size:.88rem}
#banner{background:linear-gradient(90deg,var(--pink),var(--amber));color:#1a0b22;text-align:center;font-weight:700;padding:8px 14px}
.top{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px max(20px,calc((100% - 1120px)/2));background:rgba(9,13,31,.78);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{font:900 1.3rem Outfit;text-decoration:none;display:flex;align-items:center;gap:10px}.dot{width:14px;height:14px;border-radius:50%;background:var(--amber);box-shadow:0 0 14px var(--amber);animation:tw 1.6s infinite}
#nav{display:flex;gap:2px;align-items:center}#nav a{text-decoration:none;padding:8px 13px;border-radius:999px;font-weight:500;font-size:.93rem;color:var(--mute)}
#nav a:hover,#nav a.on{color:var(--ink);background:var(--glass)}#nav .pill{background:var(--ink);color:#1a0b22;font-weight:700;margin-left:6px}#nav .adm{font-size:.8rem;opacity:.6}
#burger{display:none;background:none;border:1px solid var(--line);color:var(--ink);font-size:1.3rem;border-radius:12px;padding:4px 12px}
@media(max-width:940px){#burger{display:block}#nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--bg);padding:12px;border-bottom:1px solid var(--line)}#nav.open{display:flex}}
/* hero */
.hero{overflow:hidden}.hero-in{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:20px;min-height:min(84vh,760px);padding:40px 0}
.hero h1{background:linear-gradient(120deg,#fff 30%,var(--amber) 70%,var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--mute);font-size:1.15rem;max-width:44ch;margin:22px 0 30px}.cta{display:flex;gap:14px;flex-wrap:wrap}
.stats{display:flex;gap:34px;margin-top:46px;flex-wrap:wrap}.stats dt{font:900 2.2rem Outfit;color:var(--teal)}.stats dd{color:var(--mute);font-size:.9rem}
.wheelbox svg{width:100%;height:auto;filter:drop-shadow(0 0 30px rgba(255,181,71,.25))}
.wheel{animation:spin 70s linear infinite;transform-origin:200px 190px}.gon{animation:spin 70s linear infinite reverse}.bulb{animation:tw 1.8s infinite}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes tw{50%{opacity:.35}}
@media(max-width:860px){.hero-in{grid-template-columns:1fr}.wheelbox{max-width:380px;margin:0 auto}}
/* event */
.event{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;padding:38px;border-color:rgba(255,181,71,.4)}
.live{display:inline-block;background:var(--pink);font:700 .85rem Outfit;padding:3px 14px;border-radius:999px;margin-bottom:14px}
.event h3{font-size:clamp(1.8rem,4vw,2.6rem);color:var(--amber);margin-bottom:10px}
.cd{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0;max-width:420px}.cd div{background:rgba(0,0,0,.3);border-radius:16px;padding:12px 6px;text-align:center;color:var(--mute);font-size:.8rem}.cd b{display:block;font:900 1.9rem Outfit;color:var(--teal)}
.prog{list-style:none;padding:0;border-left:2px dashed var(--line);padding-left:22px}.prog li{padding:10px 0;position:relative}.prog li::before{content:"";position:absolute;left:-29px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--amber)}.prog b{font-family:Outfit;color:var(--amber);margin-right:12px}
@media(max-width:780px){.event{grid-template-columns:1fr;padding:24px}}
/* attractions */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.tabs button{font:700 .9rem "DM Sans";background:var(--glass);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:9px 18px;cursor:pointer}.tabs .on{background:var(--amber);color:#1a0b22;border-color:var(--amber)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.card{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .2s,border-color .2s}.card:hover{transform:translateY(-5px);border-color:var(--pink)}
.art{height:150px;background:linear-gradient(160deg,#2c1d6b,#c2407a)}.art svg{width:100%;height:100%}.card div+div{padding:18px 20px 22px}.card h3{font-size:1.2rem;margin-bottom:4px}.card p{color:var(--mute);font-size:.94rem}
/* map */
.mapgrid{display:grid;grid-template-columns:1.8fr 1fr;gap:24px;align-items:start}
.map{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);line-height:0}.map img{width:100%;height:auto}
.slot{position:absolute;width:5%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:8px;border:3px solid var(--c);background:color-mix(in srgb,var(--c) 40%,transparent);color:#fff;font:900 0/1 Outfit;padding:0;cursor:pointer;transition:transform .15s}
.slot:hover,.slot.sel{font-size:clamp(.65rem,1.6vw,1.1rem);transform:translate(-50%,-50%) scale(1.25);z-index:2;box-shadow:0 0 0 3px #fff,0 0 20px var(--c)}
.free{--c:#3dff8a}.pending{--c:#ffc53d}.taken{--c:#ff3b4e}.mine{--c:#3de6ff}
.legend{margin-top:14px;color:var(--mute);font-size:.9rem}.l{display:inline-block;width:14px;height:14px;border-radius:4px;border:3px solid var(--c);background:color-mix(in srgb,var(--c) 40%,transparent);margin:0 6px 0 14px;vertical-align:-2px}
#panel{position:sticky;top:90px}#panel h3{margin-bottom:8px}
@media(max-width:860px){.mapgrid{grid-template-columns:1fr}#panel{position:static}}
/* forms */
form{display:grid;gap:14px}.two{grid-template-columns:1fr 1fr}.full{grid-column:1/-1}@media(max-width:640px){.two{grid-template-columns:1fr}}
label{display:grid;gap:6px;font-weight:700;font-size:.9rem}
input,select,textarea{font:400 1rem "DM Sans";color:var(--ink);background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:14px;padding:12px 14px;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--teal);outline:none}textarea{min-height:100px;resize:vertical}
.tag,.badge{display:inline-block;font:700 .78rem "DM Sans";padding:3px 12px;border-radius:999px;border:1px solid currentColor}.tag.ok,.badge.ok{color:var(--teal)}.tag.no,.badge.no{color:var(--pink)}.badge{color:var(--amber)}
.jobs{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-bottom:34px}.jobs b{font:700 1.15rem Outfit;color:var(--amber)}.jobs p{color:var(--mute);margin:4px 0 12px}
.rules{columns:2 320px;gap:36px;padding-left:44px}.rules li{margin-bottom:12px;break-inside:avoid}
details{background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:16px 20px;margin-bottom:10px;max-width:820px}summary{cursor:pointer;font-weight:700}details p{color:var(--mute);margin-top:8px}
.disc{background:linear-gradient(135deg,#4653d8,#8a3fd1);border-radius:28px;padding:clamp(28px,6vw,64px);display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center}.disc p{margin:12px 0 24px;color:#e8e3ff}.disc .btn{background:#fff;color:#4653d8;box-shadow:none}
.chan{list-style:none;padding:20px;background:rgba(0,0,0,.28);border-radius:18px;font-weight:700;line-height:2.1}.chan li::before{content:"# ";color:#b9b6ff}@media(max-width:780px){.disc{grid-template-columns:1fr}}
.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.box{margin-bottom:12px}.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:30px}.kpi div{background:var(--glass);border:1px solid var(--line);border-radius:18px;padding:16px;text-align:center;color:var(--mute);font-size:.88rem}.kpi b{display:block;font:900 2rem Outfit;color:var(--amber)}
.auth{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:860px}@media(max-width:700px){.auth{grid-template-columns:1fr}}.narrow{max-width:420px}
h4{font:700 1.3rem Outfit;color:var(--amber);margin:32px 0 12px}
footer{border-top:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;gap:4px;align-items:center;color:var(--mute);font-size:.9rem}
#toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,30px);background:var(--ink);color:#1a0b22;font-weight:700;padding:12px 22px;border-radius:999px;opacity:0;pointer-events:none;transition:.25s;z-index:99}#toast.on{opacity:1;transform:translate(-50%,0)}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.art img{width:100%;height:100%;object-fit:cover;display:block}.ride-row{display:flex;align-items:center;gap:16px}.ride-row .row{margin:0 0 0 auto}.th{width:84px;height:56px;border-radius:10px;overflow:hidden;background:linear-gradient(160deg,#2c1d6b,#c2407a);flex:none}.th img,.th svg{width:100%;height:100%;object-fit:cover}
