:root {
  --accent: #e52228;
  --accent-rgb: 229, 34, 40;
  --bg: #0b0b0d;
  --panel: #111114;
  --panel-2: #17171a;
  --line: rgba(255,255,255,.12);
  --muted: #8b8b91;
  --text: #f0efeb;
  --display: "Unbounded", sans-serif;
  --sans: "Inter", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: #2c2c32 #0b0b0d; }
html::-webkit-scrollbar { width: 8px; }
html::-webkit-scrollbar-track { background: #0b0b0d; }
html::-webkit-scrollbar-thumb { background: #2c2c32; }
html::-webkit-scrollbar-thumb:hover { background: #4a4a52; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--sans); overflow-x: hidden; }
body.modal-open { overflow:hidden; }
body.account-open { overflow:hidden; }
button, a { color: inherit; font: inherit; }
button { border: 0; }
a { text-decoration: none; }
[hidden] { display: none !important; }
::selection { background: var(--accent); color: white; }

.noise { position: fixed; inset: 0; pointer-events: none; opacity: .05; z-index: 1000; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }
.cursor-glow { position: fixed; width: 440px; height: 440px; border-radius: 50%; background: rgba(var(--accent-rgb),.055); filter: blur(70px); pointer-events: none; z-index: 0; transform: translate(-50%,-50%); }
.header { position: fixed; z-index: 100; top: 0; left: 0; right: 0; height: 74px; display: flex; align-items: center; padding: 0 3.5vw; background: linear-gradient(to bottom, rgba(8,8,10,.92), transparent); transition: background .3s, border-color .3s; }
.header.scrolled { background: rgba(11,11,13,.9); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.logo { display: inline-flex; align-items: center; gap: 11px; font: 700 17px var(--display); letter-spacing: .04em; }
.logo-mark { width: 18px; height: 18px; background: var(--accent); display: inline-block; clip-path: polygon(0 0,100% 0,100% 35%,40% 35%,40% 65%,100% 65%,100% 100%,0 100%); }
.nav { position: absolute; left: 50%; transform: translateX(-50%); display: flex; gap: 2vw; }
.nav a, .wallet-chip { color: #c6c6ca; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.nav a { position: relative; padding: 28px 0; }
.nav .nav-mobile-action { display:none; }
.nav .nav-back { color:#9a9aa0; }
.nav a::after { content:""; position:absolute; left:0; right:100%; bottom:18px; height:1px; background:var(--accent); transition:.25s; }
.nav a:hover::after,.nav a.active::after { right:0; }
.nav a.active { color:#fff; }
.header-actions { margin-left:auto; display:flex; gap:12px; align-items:center; }
.wallet-chip { display:flex; flex-direction:column; align-items:flex-end; gap:3px; background:none; padding:6px 8px; cursor:pointer; }
.wallet-chip:hover span { color:#9a9aa0; }
.wallet-chip span { color:#696970; font-size:7px; letter-spacing:.14em; }
.wallet-chip strong,.wallet-money,.wallet-points { font:600 13px var(--display); letter-spacing:0; text-transform:none; }
.wallet-money { color:#f0efeb; }
.wallet-points { color:var(--accent); }
.profile-button,.mobile-profile { width:36px; height:36px; border-radius:50%; background:#242429; color:#fff; font-size:10px; font-weight:700; cursor:pointer; display:grid; place-items:center; overflow:hidden; background-size:cover; background-position:center; }
.profile-button[aria-expanded="true"]:not(.has-avatar) { background-color:var(--accent); }
.profile-button[aria-expanded="true"] { box-shadow:0 0 0 2px var(--accent); }
.profile-button.has-avatar span,.mobile-profile.has-avatar span,.account-avatar.has-avatar span,.ps-portrait.has-avatar span,.teaser-portrait.has-avatar span { display:none; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:18px; background:var(--accent); color:#fff; text-transform:uppercase; letter-spacing:.1em; font-size:11px; font-weight:700; min-height:56px; padding:0 26px; cursor:pointer; transition:filter .2s, transform .2s; }
.button:hover { filter:brightness(1.14); }
.button:disabled { cursor:not-allowed; filter:none; opacity:.55; }
.button.loading { position:relative; color:rgba(255,255,255,.65); }
.button-small { min-height:40px; padding:0 18px; font-size:9px; }
.menu-button { display:none; margin-left:auto; width:40px; height:40px; background:none; }
.menu-button span { display:block; margin:6px; height:1px; background:white; }
.mobile-profile,.mobile-booking-cta,.mobile-floor-tabs,.booking-sheet-close { display:none; }
.mobile-profile { cursor:pointer; }

.hero { min-height:100svh; position:relative; overflow:hidden; display:flex; align-items:center; padding:100px 5vw 50px; }
.hero-image, .hero-vignette, .hero-grid { position:absolute; inset:-3%; }
.hero-image { background: url("https://images.unsplash.com/photo-1603481546238-487240415921?auto=format&fit=crop&w=2200&q=90") center 55%/cover no-repeat; filter:saturate(.38) contrast(1.18) brightness(.58); transform:scale(1.05); }
.hero-image::after { content:""; position:absolute; inset:0; background:linear-gradient(105deg,rgba(5,5,7,.92) 2%,rgba(6,6,8,.46) 45%,rgba(100,0,4,.15) 75%), linear-gradient(to top,#0b0b0d 0%,transparent 35%); }
.hero-vignette { background:radial-gradient(circle at 73% 49%,rgba(var(--accent-rgb),.23),transparent 22%), radial-gradient(ellipse,transparent 35%,rgba(0,0,0,.72) 100%); }
.hero-grid { opacity:.12; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:8.33vw 8.33vw; mask-image:linear-gradient(to right,black,transparent 70%); }
.hero-copy { position:relative; z-index:2; max-width:1000px; }
.eyebrow { margin:0 0 20px; color:#9a9aa0; font-size:9px; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.live-dot { width:6px; height:6px; border-radius:50%; background:var(--accent); display:inline-block; margin-right:7px; box-shadow:0 0 12px var(--accent); animation:pulse 2s infinite; }
@keyframes pulse { 50% { opacity:.35; box-shadow:0 0 2px var(--accent); } }
h1,h2,h3 { font-family:var(--display); margin:0; text-transform:uppercase; letter-spacing:-.055em; max-width:100%; overflow-wrap:normal; word-break:normal; hyphens:none; text-wrap:pretty; }
.h-fit { display:block; }
.hero h1 { font-size:clamp(64px,10vw,158px); line-height:.79; font-weight:600; text-shadow:0 8px 50px rgba(0,0,0,.4); }
.hero h1 span { color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.5); padding-left:9vw; }
.hero-bottom { display:flex; align-items:center; gap:46px; margin-top:42px; }
.button-hero { min-width:260px; }
.availability { display:flex; flex-direction:column; text-transform:uppercase; }
.availability strong { font:600 28px var(--display); letter-spacing:-.08em; }
.availability strong i { font-style:normal; color:#55555b; margin:0 4px; }
.availability > span { color:#a4a4aa; font-size:8px; letter-spacing:.14em; margin-top:4px; }
.hero-specs { z-index:3; position:absolute; right:3.5vw; top:23%; display:flex; flex-direction:column; align-items:flex-end; gap:18px; }
.hero-specs span { color:#8a8a90; font-size:8px; letter-spacing:.14em; text-transform:uppercase; border-right:1px solid var(--line); padding-right:13px; }
.hero-specs b { color:#fff; font:500 14px var(--display); margin-right:5px; }
.scroll-hint { position:absolute; right:3.5vw; bottom:40px; z-index:3; color:#77777d; text-transform:uppercase; font-size:8px; letter-spacing:.15em; display:flex; align-items:center; gap:12px; }
.scroll-hint span { display:block; height:1px; width:42px; background:#77777d; position:relative; overflow:hidden; }
.scroll-hint span::after { content:""; position:absolute; inset:0; background:white; transform:translateX(-100%); animation:scan 2s infinite; }
@keyframes scan { to { transform:translateX(100%); } }

.section { position:relative; padding:140px 5vw; }
.section-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:76px; gap:40px; }
.section-head h2, .leaderboard-head h2, .contact-layout h2, .equipment h2 { font-size:clamp(48px,7vw,112px); line-height:.91; font-weight:600; }
.section-intro { width:min(360px,100%); color:#929298; font-size:13px; line-height:1.7; margin:0 4vw 0 0; }
.compact { margin-bottom:50px; }
.reveal { opacity:0; transform:translateY(45px); transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1); }
.reveal.visible { opacity:1; transform:none; }

.booking { background:#0f0f12; }
.booking-shell { display:grid; grid-template-columns:minmax(0,1fr) 340px; border:1px solid var(--line); min-height:720px; }
.floor { position:relative; padding:30px 3vw 45px; overflow:hidden; background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px); background-size:30px 30px; }
.floor::before { content:""; position:absolute; left:0; top:0; width:5px; height:100%; background:linear-gradient(transparent 18%,rgba(var(--accent-rgb),.5) 18% 38%,transparent 38%); pointer-events:none; }
.floor-toolbar { display:flex; justify-content:space-between; align-items:center; padding-bottom:28px; border-bottom:1px solid var(--line); }
.legend { display:flex; gap:20px; }
.legend span, .floor-status { color:#77777d; font-size:8px; letter-spacing:.12em; text-transform:uppercase; }
.legend i { width:7px; height:7px; display:inline-block; border:1px solid #707078; margin-right:7px; }
.legend .legend-busy { background:#333338; border-color:#333338; }
.legend .legend-selected { background:var(--accent); border-color:var(--accent); }
.zone-label { display:flex; justify-content:space-between; align-items:center; margin:26px 0 15px; color:#bbb; font:500 10px var(--display); text-transform:uppercase; }
.zone-label small { color:#58585e; font:500 8px var(--sans); letter-spacing:.12em; }
.floor-plan { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(170px,.72fr); grid-template-rows:auto 38px auto; gap:0 22px; position:relative; }
.floor-zone { min-width:0; }
.floor-standard { grid-column:1; grid-row:1; }
.floor-pro { grid-column:1; grid-row:3; }
.desk-row { padding:10px; border:1px solid rgba(255,255,255,.075); background:rgba(255,255,255,.018); }
.desk-row-top { border-bottom:3px solid #26262b; }
.floor-passage { grid-column:1; grid-row:2; display:flex; align-items:center; gap:12px; color:#44444a; text-transform:uppercase; font-size:7px; letter-spacing:.14em; }
.floor-passage i { flex:1; border-top:1px dashed #303036; }
.pc-grid { display:grid; grid-template-columns:repeat(8,1fr); gap:9px; }
.pc-seat { min-width:0; height:49px; background:#18181c; border:1px solid #2b2b30; color:#99999f; font:600 10px var(--display); cursor:pointer; position:relative; transition:.22s; }
.pc-seat::before { content:""; position:absolute; top:6px; left:7px; right:7px; height:3px; background:#3d3d43; }
.pc-seat:hover:not(.busy) { border-color:#b5b5bb; color:white; transform:translateY(-2px); }
.pc-seat.busy { color:#48484e; background:#111114; border-color:#1b1b1f; cursor:not-allowed; }
.pc-seat.busy::before { background:#202024; }
.pc-seat.selected { background:var(--accent); border-color:var(--accent); color:white; box-shadow:0 0 24px rgba(var(--accent-rgb),.22); }
.pc-seat.selected::before { background:white; }
.floor-divider { height:1px; background:var(--line); margin-top:26px; }
.vip-room { grid-column:2; grid-row:1/3; margin-top:26px; padding:0 14px 14px; border:1px solid rgba(255,255,255,.12); background:rgba(var(--accent-rgb),.025); position:relative; }
.vip-grid { grid-template-columns:repeat(3,1fr); }
.vip-door { position:absolute; right:-1px; bottom:-18px; color:#555; text-transform:uppercase; font-size:7px; letter-spacing:.11em; }
.service-room { grid-column:2; grid-row:3; margin-top:22px; border:1px dashed #303036; display:grid; place-items:center; min-height:125px; color:#4f4f55; text-transform:uppercase; font-size:8px; letter-spacing:.14em; background:repeating-linear-gradient(-45deg,transparent,transparent 8px,rgba(255,255,255,.015) 8px,rgba(255,255,255,.015) 9px); }
.floor-label { color:#55555a; font-size:8px; letter-spacing:.12em; text-transform:uppercase; position:absolute; left:3vw; bottom:14px; }
.pc-tooltip { position:fixed; z-index:120; display:none; width:190px; padding:15px; background:#e9e9e6; color:#111; pointer-events:none; box-shadow:0 12px 30px rgba(0,0,0,.35); font-size:9px; line-height:1.55; text-transform:uppercase; }
.pc-tooltip strong { display:block; font:600 14px var(--display); margin-bottom:6px; }
.pc-tooltip b { color:var(--accent); display:block; margin-top:6px; }
.booking-panel { background:#161619; border-left:1px solid var(--line); padding:32px; display:flex; flex-direction:column; }
.booking-pc { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:24px 0; display:grid; grid-template-columns:auto 1fr; align-items:end; }
.booking-pc span { font:600 14px var(--display); color:#77777d; align-self:center; }
.booking-pc strong { font:600 70px var(--display); line-height:.8; text-align:right; color:var(--accent); }
.booking-pc small { grid-column:2; text-align:right; color:#aaa; font-size:8px; margin-top:9px; letter-spacing:.14em; }
.booking-details { margin-top:20px; }
.booking-row { width:100%; padding:15px 0; display:flex; justify-content:space-between; background:none; border-bottom:1px solid var(--line); cursor:pointer; }
.booking-row span,.duration > span { color:#77777d; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.booking-row strong { font-size:12px; }
.duration { padding:18px 0; }
.duration-control { display:flex; align-items:center; justify-content:space-between; margin-top:14px; }
.duration-control button { width:33px; height:33px; background:#242429; color:#fff; cursor:pointer; font-size:18px; }
.duration-control strong { font-size:12px; }
.duration-control strong b { font-size:14px; }
.booking-config { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.booking-config span { padding:9px; border:1px solid var(--line); font-size:8px; color:#aaa; text-align:center; }
.booking-total { margin-top:auto; border-top:1px solid var(--line); padding-top:22px; display:flex; justify-content:space-between; align-items:flex-end; }
.booking-total span { color:#777; font-size:9px; text-transform:uppercase; }
.booking-total strong { font:600 28px var(--display); }
.booking-submit { margin-top:20px; width:100%; }
.booking-note { text-align:center; color:#606067; font-size:7px; line-height:1.5; text-transform:uppercase; letter-spacing:.08em; }

.zones { background:#0b0b0d; padding-top:100px; padding-bottom:100px; }
.zone-showcase { height:min(800px,82vh); min-height:620px; position:relative; overflow:hidden; border:1px solid var(--line); display:grid; grid-template-columns:1.45fr .7fr; align-items:end; padding:4vw; }
.zone-showcase-image,.zone-showcase-shade { position:absolute; inset:0; }
.zone-showcase-image { background:center/cover no-repeat; filter:grayscale(.58) contrast(1.12) brightness(.62); transform:scale(1.025); transition:opacity .35s,transform 1.1s cubic-bezier(.16,1,.3,1); }
.zone-showcase-image.switching { opacity:0; transform:scale(1.06); }
.zone-showcase-shade { background:linear-gradient(90deg,rgba(7,7,9,.96),rgba(7,7,9,.2) 70%),linear-gradient(to top,rgba(7,7,9,.85),transparent 60%); }
.zone-switcher { position:absolute; z-index:2; top:30px; right:30px; display:flex; }
.zone-switcher button { min-width:110px; padding:13px 17px; color:#aaa; background:rgba(10,10,12,.55); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.18); text-transform:uppercase; letter-spacing:.12em; font-size:8px; cursor:pointer; }
.zone-switcher button + button { border-left:0; }
.zone-switcher button:hover:not(.active) { color:var(--accent); border-color:rgba(var(--accent-rgb),.55); background:rgba(255,255,255,.05); }
.zone-switcher button.active { background:var(--accent); color:#fff; border-color:var(--accent); }
.zone-showcase-copy,.zone-showcase-data { position:relative; z-index:2; }
.zone-showcase-copy h2 { font-size:clamp(48px,6.3vw,104px); line-height:.9; }
.zone-identity { display:flex; gap:18px; align-items:center; margin-top:35px; }
.zone-identity span { color:var(--accent); font:600 34px var(--display); }
.zone-identity strong { font:600 13px var(--display); letter-spacing:.12em; }
.zone-showcase-data { padding-left:3vw; border-left:1px solid rgba(255,255,255,.22); }
.zone-main-price { display:flex; align-items:flex-end; gap:8px; }
.zone-main-price span,.zone-main-price small { color:#999; text-transform:uppercase; font-size:8px; }
.zone-main-price strong { color:var(--accent); font:600 37px var(--display); }
.zone-live { display:grid; grid-template-columns:auto 1fr; align-items:center; margin:24px 0; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.zone-live i { grid-row:1/3; }
.zone-live strong { font:500 13px var(--display); }
.zone-live span { color:#777; font-size:7px; text-transform:uppercase; letter-spacing:.12em; }
.zone-spec-grid { display:grid; grid-template-columns:1fr 1fr; }
.zone-spec-grid div { padding:13px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; }
.zone-spec-grid div:nth-child(even) { padding-left:18px; border-left:1px solid var(--line); }
.zone-spec-grid span { color:#666; text-transform:uppercase; font-size:7px; letter-spacing:.12em; }
.zone-spec-grid strong { font:500 10px var(--display); margin-top:7px; }

.tariffs { background:#e5e4df; color:#101012; padding-top:110px; padding-bottom:110px; }
.tariffs .eyebrow,.tariffs .section-intro { color:#6e6e72; }
.tariff-tabs { display:flex; gap:5px; }
.tariff-tabs button,.leaderboard-tabs button { padding:12px 20px; background:transparent; border:1px solid currentColor; opacity:.45; text-transform:uppercase; font-size:9px; letter-spacing:.12em; cursor:pointer; }
.tariff-tabs button:hover:not(.active),.leaderboard-tabs button:hover:not(.active) { color:var(--accent); border-color:var(--accent); opacity:.85; }
.tariff-tabs button.active,.leaderboard-tabs button.active { opacity:1; background:var(--accent); border-color:var(--accent); color:#fff; }
.tariff-list { border-top:1px solid #aaa; }
.tariff-row { position:relative; width:100%; min-height:110px; display:grid; grid-template-columns:55px 2fr 1fr 1fr 40px; gap:20px; align-items:center; text-align:left; border-bottom:1px solid #aaa; background:transparent; color:#111; cursor:pointer; transition:padding .3s,color .2s; overflow:hidden; }
.tariff-row::before { content:""; position:absolute; inset:0; background:#d4d3ce; transform:translateY(101%); transition:.35s cubic-bezier(.16,1,.3,1); z-index:0; }
.tariff-row > * { position:relative; z-index:1; }
.tariff-row:hover:not(.selected) { color:#111; padding:0 8px; }
.tariff-row:hover:not(.selected)::before { transform:none; }
.tariff-row:hover:not(.selected) strong { transform:translateX(7px); }
.tariff-row:hover:not(.selected) i { color:var(--accent); transform:translate(4px,-3px); }
.tariff-row strong,.tariff-row i { transition:transform .25s,color .25s; }
.tariff-row.selected { color:white; padding:0 18px; }
.tariff-row.selected::before { transform:none; background:var(--accent); }
.tariff-row.selected .tariff-index,.tariff-row.selected > b,.tariff-row.selected i { color:white; }
.tariff-index { color:#777; font-size:9px; }
.tariff-row strong { font:600 clamp(20px,2.5vw,38px) var(--display); }
.tariff-row strong small { display:block; font:600 8px var(--sans); letter-spacing:.12em; margin-top:6px; }
.tariff-row > span:not(.tariff-index) { font-size:9px; letter-spacing:.1em; }
.tariff-row > b { font:600 20px var(--display); text-align:right; }
.tariff-row i { font-style:normal; font-size:20px; text-align:right; }

.player-teaser { background:#0c0c0e; padding-top:100px; padding-bottom:100px; }
.player-teaser-shell { min-height:680px; display:grid; grid-template-columns:.82fr 1.18fr; border:1px solid var(--line); background:radial-gradient(circle at 78% 36%,rgba(var(--accent-rgb),.13),transparent 34%),#111114; overflow:hidden; cursor:pointer; transition:border-color .3s,transform .3s; }
.player-teaser-shell:hover { border-color:rgba(var(--accent-rgb),.65); transform:translateY(-3px); }
.teaser-copy { padding:4vw; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; border-right:1px solid var(--line); }
.teaser-copy h2 { font-size:clamp(48px,5.7vw,92px); line-height:.9; }
.teaser-copy > p:not(.eyebrow) { margin:32px 0; color:#8c8c92; font-size:12px; line-height:1.8; }
.teaser-profile { position:relative; overflow:hidden; padding:4vw; display:flex; flex-direction:column; justify-content:center; container-type:inline-size; }
.teaser-level-bg { position:absolute; right:-4vw; top:50%; transform:translateY(-53%); color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.07); font:600 30vw/1 var(--display); letter-spacing:-.12em; }
.teaser-identity { position:relative; display:flex; align-items:center; gap:22px; margin:36px 0 12px; min-width:0; }
.teaser-portrait { width:96px; height:96px; flex:0 0 96px; border-radius:50%; display:grid; place-items:center; color:white; background:radial-gradient(circle at 32% 28%,#3a3a42,#17171a 70%); border:1px solid rgba(255,255,255,.16); box-shadow:0 0 0 7px rgba(0,0,0,.28),0 0 40px rgba(var(--accent-rgb),.14); font:600 22px var(--display); overflow:hidden; background-size:cover; background-position:center; }
.teaser-profile h3 { position:relative; max-width:100%; min-width:0; font-size:clamp(44px,16cqw,110px); line-height:.9; margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.teaser-profile h3.is-long { font-size:clamp(32px,11cqw,72px); }
.teaser-level { position:relative; color:#777; font:500 13px var(--display); }
.teaser-level strong { color:var(--accent); font-size:42px; margin-left:10px; }
.teaser-profile .level-progress { margin-top:42px; max-width:none; }
.teaser-stats { position:relative; display:grid; grid-template-columns:1fr 1fr; margin-top:35px; border-top:1px solid var(--line); }
.teaser-stats div { padding:22px 0; display:flex; flex-direction:column; }
.teaser-stats div + div { padding-left:25px; border-left:1px solid var(--line); }
.teaser-stats span { color:#777; text-transform:uppercase; font-size:8px; letter-spacing:.12em; }
.teaser-stats strong { font:600 24px var(--display); margin-top:8px; }
.teaser-stats small { color:#777; font-size:9px; }

.profile { background:#0c0c0e; }
.profile-shell { border:1px solid var(--line); display:grid; grid-template-columns:1.65fr 1fr; min-height:670px; }
.profile-main { position:relative; overflow:hidden; padding:45px; background:radial-gradient(circle at 70% 30%,rgba(var(--accent-rgb),.13),transparent 36%),#131316; }
.profile-top { display:flex; justify-content:space-between; }
.profile-top > span { color:#777; font-size:8px; letter-spacing:.12em; text-transform:uppercase; }
.player-id { margin-top:68px; font-size:9px; color:#777; letter-spacing:.15em; }
.profile-main h2 { font-size:clamp(54px,8vw,120px); line-height:1; margin-top:4px; }
.level-ghost { position:absolute; font:600 370px/1 var(--display); right:-40px; top:68px; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.055); }
.level-progress { position:relative; z-index:2; max-width:540px; margin-top:55px; }
.level-progress > div:first-child { display:flex; justify-content:space-between; font-size:8px; letter-spacing:.12em; color:#aaa; }
.progress,.mini-progress { height:3px; background:#333338; margin-top:11px; overflow:hidden; }
.progress i,.mini-progress i { height:100%; display:block; background:var(--accent); transition:width 1.5s cubic-bezier(.16,1,.3,1); }
.profile-stats { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; max-width:650px; margin-top:60px; border-top:1px solid var(--line); }
.profile-stats div { padding:22px 0; display:flex; flex-direction:column; border-bottom:1px solid var(--line); }
.profile-stats div:nth-child(odd) { border-right:1px solid var(--line); }
.profile-stats div:nth-child(even) { padding-left:25px; }
.profile-stats span,.sessions > .eyebrow { color:#777; font-size:8px; text-transform:uppercase; letter-spacing:.12em; }
.profile-stats strong { font:600 19px var(--display); margin-top:8px; }
.profile-stats small { font-size:9px; color:#777; }
.sessions { padding:45px 35px; display:flex; flex-direction:column; }
.session-row { display:grid; grid-template-columns:1.4fr .7fr .7fr; padding:25px 0; border-bottom:1px solid var(--line); align-items:center; font-size:10px; }
.session-row span { font-weight:700; }
.session-row small { display:block; color:#666; margin-top:6px; font-size:7px; }
.session-row b { font-size:9px; }
.session-row i { color:var(--accent); font-size:8px; text-align:right; font-style:normal; }
.text-link { margin-top:auto; width:max-content; color:inherit; background:none; padding:13px 0; border-bottom:1px solid currentColor; text-transform:uppercase; letter-spacing:.13em; font-size:9px; cursor:pointer; }
.text-link span { margin-left:30px; }

.loyalty { background:#111114; }
.reward-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.session-complete,.cp-panel { min-height:560px; padding:50px; position:relative; overflow:hidden; border:1px solid var(--line); }
.session-complete { display:flex; flex-direction:column; justify-content:flex-end; background:radial-gradient(circle at 50% 20%,rgba(var(--accent-rgb),.18),transparent 35%),#0e0e10; }
.session-complete h3 { font-size:clamp(52px,6vw,90px); line-height:.9; }
.session-complete h3 small { font-size:14px; }
.session-complete h3.accent { color:var(--accent); margin-top:12px; }
.reward-rings { position:absolute; width:330px; height:330px; top:-25px; left:50%; transform:translateX(-50%); display:grid; place-items:center; border:1px solid rgba(255,255,255,.12); border-radius:50%; }
.reward-rings span { position:absolute; width:75%; height:75%; border:1px solid rgba(255,255,255,.08); border-radius:50%; }
.reward-rings span:nth-child(2) { width:48%; height:48%; border-color:rgba(var(--accent-rgb),.45); }
.reward-rings strong { font:600 45px var(--display); color:var(--accent); }
.cp-panel { background:var(--accent); display:flex; flex-direction:column; justify-content:space-between; }
.cp-panel .eyebrow { color:rgba(255,255,255,.65); }
.cp-panel h3 { font-size:clamp(47px,6vw,88px); line-height:.9; }
.cp-symbol { position:absolute; right:-20px; top:10px; font:600 200px var(--display); color:rgba(255,255,255,.1); }
.cp-panel ul { padding:0; margin:40px 0 0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
.cp-panel li { border-top:1px solid rgba(255,255,255,.32); padding:16px 0; text-transform:uppercase; font-size:9px; letter-spacing:.08em; }
.cp-panel li span { opacity:.6; margin-right:14px; }

.achievements { overflow:hidden; }
.achievement-counter { display:flex; flex-direction:column; align-items:flex-end; }
.achievement-counter strong { font:600 80px/1 var(--display); color:var(--accent); }
.achievement-counter span { color:#777; font-size:9px; text-transform:uppercase; letter-spacing:.12em; }
.achievement-track { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.achievement { min-height:390px; padding:28px; border-right:1px solid var(--line); display:flex; flex-direction:column; position:relative; }
.achievement:last-child { border-right:0; }
.achievement > span { color:#666; text-transform:uppercase; font-size:7px; letter-spacing:.12em; margin-top:25px; }
.achievement h3 { font-size:22px; letter-spacing:-.03em; margin-top:14px; }
.achievement p { color:#777; font-size:11px; line-height:1.6; }
.achievement-icon { width:104px; height:104px; display:grid; place-items:center; border:1px solid #414147; color:#777; font:600 21px var(--display); transform:rotate(-5deg); }
.achievement.unlocked .achievement-icon { border-color:var(--accent); color:white; background:linear-gradient(135deg,rgba(var(--accent-rgb),.45),transparent); }
.achievement.locked { opacity:.35; }
.achievement .mini-progress { margin-top:auto; }
.achievement > small { text-align:right; color:#777; font-size:8px; margin-top:8px; }

.leaderboard { background:#dcdcd7; color:#111; }
.leaderboard-head { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:60px; }
.leaderboard .eyebrow { color:#666; }
.season-id { display:grid; grid-template-columns:auto auto; align-items:start; }
.season-id span { text-transform:uppercase; font-size:8px; color:#777; }
.season-id strong { grid-row:1/3; grid-column:2; font:600 95px/1 var(--display); color:var(--accent); }
.season-id small { font-size:8px; color:#777; }
.leaderboard-tabs { display:flex; gap:5px; margin-bottom:28px; }
.leader-list { border-top:1px solid #aaa; }
.leader { min-height:86px; display:grid; grid-template-columns:70px 1.5fr 1fr 1fr 70px; align-items:center; border-bottom:1px solid #aaa; transition:.25s; }
.leader:hover { background:#c9c9c4; padding:0 16px; }
.leader.first { background:#151517; color:white; padding:0 16px; border-color:#151517; }
.leader > span { font:600 26px var(--display); color:#777; }
.leader.first > span { color:var(--accent); }
.leader > strong { font:600 clamp(20px,3vw,38px) var(--display); }
.leader small { font-size:8px; letter-spacing:.1em; color:#777; }
.leader b { font:500 13px var(--display); }
.leader i { font-style:normal; color:var(--accent); font-size:8px; text-align:right; }

.season { min-height:100vh; background:#0e0e10; display:grid; grid-template-columns:1fr 1.25fr; align-items:center; overflow:hidden; }
.season-bg { position:absolute; left:-7vw; top:50%; transform:translateY(-50%); font:600 57vw/1 var(--display); color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.035); }
.season-copy,.quests { position:relative; z-index:2; }
.season-copy h2 { font-size:clamp(70px,11vw,175px); line-height:.8; }
.season-copy h2 span { color:var(--accent); }
.season-time { display:flex; gap:28px; margin-top:48px; align-items:flex-end; }
.season-time > span { color:#777; text-transform:uppercase; font-size:8px; letter-spacing:.12em; }
.season-time strong { font:600 35px var(--display); }
.season-time small { font-size:8px; color:#777; }
.quests { border-top:1px solid var(--line); }
.quest { min-height:125px; display:grid; grid-template-columns:45px 1fr 100px; align-items:center; gap:20px; border-bottom:1px solid var(--line); }
.quest > span { color:#666; font:500 12px var(--display); }
.quest strong { font:500 13px var(--display); text-transform:uppercase; }
.quest small { display:block; color:#666; font-size:8px; margin-top:8px; }
.quest b { color:#888; font-size:8px; text-align:right; }
.quest.completed b { color:var(--accent); }

.tournaments { background:#131316; }
.tournament { min-height:240px; display:grid; grid-template-columns:230px 1.4fr 1fr 80px; align-items:center; border-top:1px solid var(--line); position:relative; cursor:pointer; }
.tournament:last-child { border-bottom:1px solid var(--line); }
.tournament::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(var(--accent-rgb),.12),transparent 60%); opacity:0; transition:.3s; pointer-events:none; }
.tournament:hover::after { opacity:1; }
.tournament-date { display:flex; gap:16px; align-items:flex-end; }
.tournament-date strong { font:600 100px/.8 var(--display); color:var(--accent); }
.tournament-date span { font-size:9px; line-height:1.5; letter-spacing:.12em; }
.game span,.prize span { color:#777; font-size:8px; text-transform:uppercase; letter-spacing:.12em; }
.game h3 { font-size:clamp(32px,4vw,62px); line-height:.9; margin-top:8px; }
.prize { display:flex; flex-direction:column; gap:8px; }
.prize strong { font:600 22px var(--display); }
.prize small { color:#777; text-transform:uppercase; font-size:8px; }
.circle-button { width:64px; height:64px; border-radius:50%; background:transparent; color:white; border:1px solid #555; font-size:20px; cursor:pointer; }

.equipment { position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; padding:100px 5vw; }
.equipment-image,.equipment-overlay { position:absolute; inset:0; }
.equipment-image { background:url("https://images.unsplash.com/photo-1587202372634-32705e3bf49c?auto=format&fit=crop&w=2200&q=90") center/cover; filter:grayscale(.6) brightness(.6) contrast(1.2); }
.equipment-overlay { background:linear-gradient(90deg,rgba(7,7,9,.98),rgba(7,7,9,.25) 70%),radial-gradient(circle at 70% 55%,rgba(var(--accent-rgb),.2),transparent 22%); }
.equipment-content { position:relative; width:100%; }
.equipment-specs { margin-top:70px; display:grid; grid-template-columns:repeat(4,1fr); max-width:850px; border-top:1px solid rgba(255,255,255,.2); }
.equipment-specs div { padding:20px 20px 20px 0; display:flex; flex-direction:column; border-right:1px solid rgba(255,255,255,.2); }
.equipment-specs div:not(:first-child) { padding-left:20px; }
.equipment-specs span { color:#777; text-transform:uppercase; font-size:8px; letter-spacing:.12em; }
.equipment-specs strong { font:600 16px var(--display); margin-top:9px; }

.atmosphere { background:#0d0d0f; }
.gallery { display:grid; grid-template-columns:1.35fr .65fr; grid-template-rows:55vh 38vh; gap:2vw; }
.gallery figure { margin:0; position:relative; overflow:hidden; }
.gallery-wide { grid-column:1/3; }
.gallery-tall { grid-row:2; }
.gallery img { width:100%; height:100%; object-fit:cover; filter:grayscale(.55) brightness(.65); transition:transform 1s,filter .5s; }
.gallery figure:hover img { transform:scale(1.03); filter:grayscale(.2) brightness(.75); }
.gallery figcaption { position:absolute; left:18px; bottom:16px; background:rgba(10,10,12,.8); padding:9px 12px; font-size:8px; letter-spacing:.12em; }

.contacts { background:#e1e0dc; color:#111; padding-top:100px; padding-bottom:0; }
.contact-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:9vw; }
.contacts .eyebrow { color:#666; }
.contact-info { display:flex; flex-direction:column; }
.contact-info > div { display:flex; flex-direction:column; padding:20px 0; border-bottom:1px solid #aaa; }
.contact-info span { color:#777; text-transform:uppercase; font-size:8px; letter-spacing:.12em; }
.contact-info strong { font:500 14px var(--display); margin-top:8px; }
.contact-value,.social-links a { transition:color .2s; }
.contact-value:hover,.social-links a:hover { color:var(--accent); }
.map { height:320px; margin-top:65px; position:relative; overflow:hidden; background:#c7c7c2; }
.map-lines { position:absolute; inset:-20%; transform:rotate(12deg); background-image:linear-gradient(#adada8 1px,transparent 1px),linear-gradient(90deg,#adada8 1px,transparent 1px); background-size:80px 55px; }
.map-lines::after,.map-lines::before { content:""; position:absolute; width:160%; height:35px; background:#b8b8b3; top:42%; left:-20%; transform:rotate(-22deg); border:1px solid #aaa; }
.map-lines::after { transform:rotate(30deg); top:65%; }
.map-pin { position:absolute; left:57%; top:47%; transform:translate(-50%,-50%); padding:20px 28px; background:#111; color:white; display:grid; grid-template-columns:auto 1fr; gap:3px 10px; box-shadow:0 20px 50px rgba(0,0,0,.25); }
.map-pin .logo-mark { grid-row:1/3; align-self:center; }
.map-pin b { font:600 13px var(--display); }
.map-pin small { color:#777; font-size:7px; }

.final-cta { min-height:100vh; position:relative; display:flex; align-items:center; padding:100px 5vw; overflow:hidden; }
.final-bg { position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,6,8,.96),rgba(6,6,8,.3)),url("https://images.unsplash.com/photo-1550745165-9bc0b252726f?auto=format&fit=crop&w=2200&q=90") center/cover; filter:saturate(.3) brightness(.65); }
.final-content { position:relative; z-index:2; width:100%; }
.final-content h2 { font-size:clamp(70px,12vw,190px); line-height:.79; }
.final-content h2 span { color:var(--accent); }
.final-bottom { display:flex; justify-content:flex-end; gap:55px; align-items:center; margin-top:-45px; }
.button-final { min-width:260px; min-height:70px; }
footer { min-height:100px; padding:0 5vw; display:flex; justify-content:space-between; align-items:center; color:#666; font-size:8px; letter-spacing:.12em; text-transform:uppercase; border-top:1px solid var(--line); }
.toast { position:fixed; z-index:500; right:25px; bottom:25px; background:#efefeb; color:#111; min-width:300px; padding:16px; display:flex; gap:14px; align-items:center; transform:translateY(150%); transition:.45s cubic-bezier(.16,1,.3,1); box-shadow:0 20px 50px rgba(0,0,0,.4); }
.toast.show { transform:none; }
.toast > span { width:35px; height:35px; display:grid; place-items:center; color:white; background:var(--accent); }
.toast div { display:flex; flex-direction:column; }
.toast strong { font-size:9px; letter-spacing:.1em; }
.toast small { color:#777; font-size:8px; margin-top:5px; }

.product-modal { position:fixed; inset:0; z-index:400; visibility:hidden; opacity:0; overflow:hidden; transition:opacity .28s,visibility .28s; }
.product-modal.open { visibility:visible; opacity:1; }
.modal-backdrop { position:absolute; inset:0; width:100%; height:100%; background:rgba(0,0,0,.76); backdrop-filter:blur(8px); cursor:pointer; }
.modal-panel { position:absolute; top:0; right:0; bottom:0; width:min(92vw,720px); max-width:100vw; background:#111114; border-left:1px solid var(--line); overflow-x:hidden; overflow-y:auto; transform:translateX(100%); transition:transform .45s cubic-bezier(.16,1,.3,1); }
.product-modal.open .modal-panel { transform:none; }
.modal-close { position:sticky; z-index:4; top:20px; margin:20px 20px 0 auto; display:grid; place-items:center; width:42px; height:42px; color:white; background:#202024; cursor:pointer; font-size:23px; }
.modal-close:hover { background:var(--accent); }
.modal-content { padding:25px 40px 60px; min-width:0; max-width:100%; overflow-x:hidden; container-type:inline-size; }
.modal-kicker { color:var(--accent); text-transform:uppercase; letter-spacing:.16em; font-size:8px; margin-bottom:20px; }
.modal-content > h2 { max-width:100%; font-size:clamp(34px,6vw,68px); font-size:clamp(34px,12cqi,68px); line-height:.88; overflow-wrap:anywhere; }
.booking-flow { margin-top:45px; }
.booking-flow > section { display:grid; grid-template-columns:42px 1fr; gap:14px; padding:23px 0; border-top:1px solid var(--line); }
.flow-number { color:var(--accent); font:500 11px var(--display); }
.flow-options,.flow-pcs { display:flex; flex-wrap:wrap; gap:7px; }
.flow-options button,.flow-pcs button { min-height:38px; padding:0 14px; border:1px solid var(--line); color:#aaa; background:#17171b; cursor:pointer; font-size:8px; letter-spacing:.08em; }
.flow-pcs button { width:62px; height:49px; display:flex; flex-direction:column; justify-content:center; align-items:center; font:600 9px var(--display); }
.flow-pcs small { color:#5e5e64; font:500 6px var(--sans); margin-top:4px; }
.flow-options button:hover:not(.selected),.flow-pcs button:hover:not(.selected) { color:var(--accent); border-color:var(--accent); background:#202024; }
.flow-options button.selected,.flow-pcs button.selected { color:white; border-color:var(--accent); background:var(--accent); }
.flow-pcs button.selected small { color:white; }
.selected-package { margin-top:12px; padding:12px; color:var(--accent); border:1px solid rgba(var(--accent-rgb),.45); font:500 9px var(--display); display:flex; justify-content:space-between; }
.selected-package button { color:white; background:none; cursor:pointer; }
.modal-summary { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; padding:24px 0; border-top:1px solid var(--line); min-width:0; }
.modal-summary span { color:#999; font:500 10px var(--display); min-width:0; }
.modal-summary strong { color:var(--accent); font:600 28px var(--display); white-space:nowrap; }
.modal-sticky { position:sticky; bottom:0; z-index:3; margin:0 -40px -60px; padding:8px 40px 28px; background:linear-gradient(to top,#111114 78%,rgba(17,17,20,0)); }
.modal-sticky .modal-summary { margin:0; }
.modal-primary { width:100%; margin-top:20px; }
.modal-secondary { width:100%; padding:18px; color:#888; background:transparent; cursor:pointer; text-transform:uppercase; letter-spacing:.1em; font-size:8px; }
.modal-secondary:hover { color:white; }
.wallet-player-link { display:block; text-align:center; }
.confirmation-grid { margin-top:45px; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); min-width:0; }
.confirmation-grid > div { display:flex; flex-direction:column; padding:20px 0; border-bottom:1px solid var(--line); }
.confirmation-grid > div:nth-child(even) { padding-left:22px; border-left:1px solid var(--line); }
.confirmation-grid span,.tournament-detail span,.rules-box span { color:#666; text-transform:uppercase; letter-spacing:.12em; font-size:7px; }
.confirmation-grid strong,.tournament-detail strong { font:500 12px var(--display); margin-top:8px; }
.confirmation-grid .confirmation-total { grid-column:1/3; border-left:0; padding-left:0; }
.confirmation-total strong { color:var(--accent); font-size:28px; }
.success-mark { width:60px; height:60px; display:grid; place-items:center; background:var(--accent); font-size:25px; margin-bottom:32px; }
.success-booking { margin:42px 0; padding:28px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); min-width:0; }
.success-booking strong { color:var(--accent); font:600 27px var(--display); }
.success-booking span { color:#999; font-size:10px; line-height:1.6; text-align:right; }
.booking-history { margin-top:40px; border-top:1px solid var(--line); }
.booking-history-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr); gap:12px; padding:20px 0; border-bottom:1px solid var(--line); font-size:9px; min-width:0; }
.booking-history-row span { color:var(--accent); }
.booking-history-row small { display:block; color:#666; margin-top:5px; }
.booking-history-row b { text-align:right; }
.tournament-modal-row { width:100%; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,.8fr); gap:15px; align-items:center; padding:22px 0; color:white; background:transparent; border-bottom:1px solid var(--line); text-align:left; cursor:pointer; min-width:0; }
.tournament-modal-row:hover { color:var(--accent); }
.tournament-modal-row span { color:var(--accent); font:500 11px var(--display); }
.tournament-modal-row small { display:block; color:#666; font:500 7px var(--sans); margin-top:6px; }
.tournament-modal-row strong { font:500 11px var(--display); }
.tournament-modal-row b { text-align:right; font-size:9px; }
.empty-state { padding:60px 0; color:#666; font-size:10px; }
.tournament-detail { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:42px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); min-width:0; }
.tournament-detail div { padding:19px 0; display:flex; flex-direction:column; }
.modal-description { color:#aaa; line-height:1.75; font-size:12px; margin:28px 0; }
.rules-box { padding:20px; background:#18181c; border:1px solid var(--line); }
.rules-box p { color:#999; line-height:1.6; font-size:10px; margin:9px 0 0; }
.tournament-form { margin-top:42px; display:flex; flex-direction:column; gap:18px; }
.tournament-form label { display:flex; flex-direction:column; gap:8px; color:#777; text-transform:uppercase; letter-spacing:.12em; font-size:7px; }
.tournament-form input,.tournament-form select { height:52px; color:white; background:#17171b; border:1px solid var(--line); padding:0 15px; outline:none; }
.tournament-form input:focus,.tournament-form select:focus { border-color:var(--accent); }

.account-layer { position:fixed; inset:0; z-index:280; visibility:hidden; pointer-events:none; }
.account-layer.open { visibility:visible; pointer-events:auto; }
.account-backdrop { position:absolute; inset:0; width:100%; height:100%; background:transparent; cursor:pointer; }
.account-dropdown { position:absolute; top:82px; right:3.5vw; width:min(340px,calc(100vw - 32px)); background:#111114; border:1px solid var(--line); box-shadow:0 24px 60px rgba(0,0,0,.45); transform:translateY(-8px); opacity:0; transition:opacity .22s,transform .28s cubic-bezier(.16,1,.3,1); }
.account-layer.open .account-dropdown { transform:none; opacity:1; }
.account-user { display:flex; align-items:center; gap:14px; padding:22px 22px 12px; }
.account-avatar { position:relative; width:64px; height:64px; flex:0 0 64px; border-radius:50%; display:grid; place-items:center; color:white; background:var(--accent); font:700 16px var(--display); cursor:pointer; overflow:hidden; background-size:cover; background-position:center; }
.account-avatar i { position:absolute; inset:auto 0 0; padding:5px 0 6px; background:rgba(0,0,0,.62); color:white; font:700 11px var(--sans); font-style:normal; opacity:0; transition:opacity .2s; }
.account-avatar:hover i { opacity:1; }
.account-user-meta { min-width:0; }
.account-user strong { display:block; font:600 16px var(--display); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-user-meta > span { display:block; color:#777; font-size:8px; letter-spacing:.12em; margin-top:4px; }
.account-user-meta [data-edit-name] { margin-top:8px; padding:0; color:#8a8a90; background:none; text-transform:uppercase; letter-spacing:.1em; font-size:7px; cursor:pointer; }
.account-user-meta [data-edit-name]:hover { color:white; }
.account-name-edit { display:flex; gap:8px; padding:0 22px 12px; }
.account-name-edit[hidden] { display:none; }
.account-name-edit input { flex:1; min-width:0; height:40px; color:white; background:#17171b; border:1px solid var(--line); padding:0 12px; outline:none; font:600 12px var(--display); }
.account-name-edit input:focus { border-color:var(--accent); }
.account-name-edit button { width:48px; color:white; background:var(--accent); cursor:pointer; font:700 9px var(--sans); letter-spacing:.08em; }
.account-photo-remove { margin:0 22px 12px; padding:0; color:#777; background:none; text-transform:uppercase; letter-spacing:.1em; font-size:7px; cursor:pointer; }
.account-photo-remove:hover { color:white; }
.account-file { display:none; }
.account-xp { padding:0 22px 18px; }
.account-xp > div:first-child { display:flex; justify-content:space-between; color:#777; font-size:7px; letter-spacing:.12em; text-transform:uppercase; }
.account-wallet { padding:18px 22px; border-top:1px solid var(--line); }
.account-wallet > span { color:#777; font-size:7px; letter-spacing:.14em; text-transform:uppercase; }
.account-currencies { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:14px; }
.account-currencies strong { display:block; font:600 20px var(--display); }
.account-currencies span { display:block; color:#6d6d73; font-size:7px; letter-spacing:.1em; text-transform:uppercase; margin-top:6px; }
.account-actions { display:flex; flex-direction:column; border-top:1px solid var(--line); }
.account-actions a,.account-actions button { width:100%; padding:15px 22px; color:#d8d8dc; background:transparent; text-align:left; text-transform:uppercase; letter-spacing:.1em; font-size:8px; cursor:pointer; border-bottom:1px solid var(--line); }
.account-actions a:hover,.account-actions button:hover { color:white; background:#18181c; }
.account-logout { width:100%; padding:16px 22px; color:#666; background:transparent; text-transform:uppercase; letter-spacing:.12em; font-size:8px; cursor:pointer; }
.account-logout:hover { color:#aaa; }

@media (max-width: 1050px) {
  .nav,.wallet-chip { display:none; }
  .booking-shell { grid-template-columns:1fr 300px; }
  .floor-plan { grid-template-columns:1fr; }
  .floor-standard,.floor-passage,.floor-pro,.vip-room,.service-room { grid-column:1; grid-row:auto; }
  .vip-room { margin-top:24px; }
  .service-room { display:none; }
  .achievement-track { grid-template-columns:1fr 1fr; }
  .achievement:nth-child(2) { border-right:0; }
  .achievement:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .tournament { grid-template-columns:180px 1.4fr 1fr 70px; }
  .tournament-date strong { font-size:75px; }
}

@media (max-width: 760px) {
  :root { --mobile-display:clamp(32px,9.4vw,42px); }
  html { overflow-x:clip; scrollbar-gutter:auto; }
  body { overflow-x:clip; max-width:100%; }
  .header-actions { display:none; }
  .menu-button { display:block; }
  .nav.open { display:flex; position:fixed; inset:64px 0 auto; transform:none; background:#101012; padding:25px; flex-direction:column; }
  .nav.open a { padding:12px; }
  .nav.open .nav-mobile-action { display:block; margin-top:8px; padding:15px 12px; color:white; background:var(--accent); }
  .cursor-glow { display:none; }
  .hero { padding:90px 20px 40px; align-items:center; }
  .hero h1 { font-size:clamp(42px,12.2vw,54px); }
  .hero h1 span { padding-left:0; }
  .hero-specs { display:none; }
  .hero-bottom { flex-direction:column; align-items:flex-start; gap:24px; }
  .scroll-hint { display:none; }
  .section { padding:90px 20px; }
  .section-head { flex-direction:column; align-items:flex-start; margin-bottom:45px; }
  .section-head h2,.leaderboard-head h2,.contact-layout h2,.equipment h2 { font-size:var(--mobile-display); overflow-wrap:normal; word-break:normal; }
  .booking-shell { grid-template-columns:1fr; }
  .floor { padding:22px 14px 35px; overflow:auto; }
  .floor-toolbar { align-items:flex-start; gap:15px; }
  .legend { gap:8px; flex-wrap:wrap; }
  .floor-status { display:none; }
  .pc-grid { min-width:500px; grid-template-columns:repeat(8,1fr); }
  .vip-grid { grid-template-columns:repeat(6,1fr); }
  .booking-panel { border-left:0; border-top:1px solid var(--line); }
  .zone-showcase { height:auto; min-height:760px; padding:24px; display:flex; flex-direction:column; justify-content:flex-end; }
  .zone-switcher { left:16px; right:16px; top:16px; }
  .zone-switcher button { min-width:0; flex:1; }
  .zone-showcase-copy { width:100%; margin-top:180px; }
  .zone-showcase-copy h2 { font-size:var(--mobile-display); overflow-wrap:normal; word-break:normal; }
  .zone-showcase-data { width:100%; padding:24px 0 0; margin-top:30px; border-left:0; border-top:1px solid var(--line); }
  .tariff-tabs { width:100%; overflow:auto; }
  .tariff-row { min-height:100px; grid-template-columns:30px 1.6fr 1fr 24px; gap:8px; }
  .tariff-row > span:not(.tariff-index) { display:none; }
  .tariff-row > b { font-size:13px; }
  .player-teaser { overflow:hidden; }
  .player-teaser-shell { grid-template-columns:1fr; min-width:0; max-width:100%; }
  .teaser-copy { padding:40px 18px; border-right:0; border-bottom:1px solid var(--line); min-width:0; overflow:hidden; }
  .teaser-copy h2 { font-size:var(--mobile-display); overflow-wrap:normal; word-break:normal; }
  .teaser-profile { min-height:500px; padding:40px 22px; min-width:0; overflow:hidden; }
  .teaser-level-bg { font-size:48vw; }
  .profile-shell { grid-template-columns:1fr; }
  .profile-main { padding:28px 22px; }
  .sessions { padding:35px 22px; }
  .level-ghost { font-size:250px; }
  .reward-grid { grid-template-columns:1fr; }
  .session-complete,.cp-panel { min-height:520px; padding:30px 24px; }
  .cp-panel ul { grid-template-columns:1fr; }
  .achievement-track { display:flex; overflow:auto; }
  .achievement { min-width:78vw; border-bottom:0!important; }
  .leaderboard-head { flex-direction:column; }
  .leaderboard-tabs { overflow:auto; }
  .leader { grid-template-columns:45px 1fr .65fr; padding:0 5px; }
  .leader small,.leader i { display:none; }
  .leader b { font-size:10px; text-align:right; }
  .season { grid-template-columns:1fr; }
  .season-copy { margin-bottom:40px; }
  .quest { grid-template-columns:30px 1fr 70px; }
  .tournament { grid-template-columns:1fr 1fr; gap:25px; padding:35px 0; }
  .tournament-date strong { font-size:65px; }
  .circle-button { display:none; }
  .prize { text-align:right; }
  .equipment { padding:90px 20px; align-items:flex-end; }
  .equipment-specs { grid-template-columns:1fr 1fr; }
  .equipment-specs div { border-bottom:1px solid rgba(255,255,255,.2); }
  .gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:8px; }
  .gallery-wide { grid-column:1/3; grid-row:auto; aspect-ratio:16/10; }
  .gallery-tall,.gallery-small { grid-row:auto; aspect-ratio:4/3; }
  .contact-layout { grid-template-columns:1fr; }
  .map { margin-left:calc(var(--mobile-gutter) * -1); margin-right:calc(var(--mobile-gutter) * -1); }
  .final-content h2 { font-size:18vw; }
  .final-bottom { flex-direction:column; align-items:flex-start; margin-top:45px; gap:30px; }
  footer { padding:28px 20px; flex-wrap:wrap; gap:20px; }
  .modal-content { padding:18px 22px 45px; }
  .modal-panel { width:min(100vw,720px); top:5vh; }
  .modal-sticky { margin:0 -22px -45px; padding:8px 22px 22px; }
  .booking-flow > section { grid-template-columns:30px 1fr; }
  .confirmation-grid { grid-template-columns:1fr; }
  .confirmation-grid > div,.confirmation-grid > div:nth-child(even) { grid-column:auto; padding-left:0; border-left:0; }
  .confirmation-grid .confirmation-total { grid-column:auto; }
  .tournament-detail { grid-template-columns:1fr; }
  .booking-history-row { grid-template-columns:1fr; }
  .booking-history-row b { text-align:left; }
  .tournament-modal-row { grid-template-columns:1fr 1fr; }
  .tournament-modal-row b { grid-column:2; text-align:left; }
}

@media (max-width: 760px) {
  :root { --mobile-gutter:18px; --mobile-display:clamp(32px,9.4vw,42px); }
  .section-head > div,.equipment-content,.teaser-copy,.zone-showcase-copy,.leaderboard-head,.contact-layout > div:first-child { container-type:inline-size; }
  .h-fit { font-size:.86em; font-size:min(1em,calc(100cqw / 11.7)); }
  .h-fit.is-phrase { white-space:nowrap; font-size:.72em; font-size:min(1em,calc(100cqw / 15)); }
  html { overflow-x:clip; scrollbar-gutter:auto; }
  html { scroll-padding-top:calc(64px + env(safe-area-inset-top)); }
  body.menu-open,body.pc-sheet-open { overflow:hidden; }
  .header,.header.scrolled { height:calc(64px + env(safe-area-inset-top)); padding:env(safe-area-inset-top) var(--mobile-gutter) 0; background:#0a0a0c; backdrop-filter:none; border-bottom:1px solid var(--line); }
  .logo { position:relative; z-index:3; }
  .mobile-profile { position:relative; z-index:3; display:grid; place-items:center; margin-left:auto; width:44px; height:44px; border-radius:50%; background:#252529; color:white; font-size:9px; font-weight:700; overflow:hidden; background-size:cover; background-position:center; }
  .menu-button { position:relative; z-index:3; display:block; margin-left:4px; width:44px; height:44px; cursor:pointer; }
  .menu-button span { transition:transform .25s,margin .25s; }
  .menu-button[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .nav { display:flex; position:fixed; z-index:2; inset:0; padding:calc(115px + env(safe-area-inset-top)) 24px calc(35px + env(safe-area-inset-bottom)); flex-direction:column; align-items:stretch; gap:0; background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.16),transparent 27%),#0d0d0f; transform:translateX(100%); opacity:0; pointer-events:none; transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .25s; }
  .nav.open { inset:0; padding:calc(115px + env(safe-area-inset-top)) 24px calc(35px + env(safe-area-inset-bottom)); transform:none; opacity:1; pointer-events:auto; }
  .nav a,.nav.open a { display:block; padding:18px 0; border-bottom:1px solid var(--line); color:white; font:600 clamp(22px,8vw,36px) var(--display); letter-spacing:-.04em; }
  .nav a::after { display:none; }
  .nav.open .nav-mobile-action { margin-top:auto; padding:18px; border:0; font:700 10px var(--sans); letter-spacing:.12em; text-align:center; }
  .mobile-booking-cta { position:fixed; z-index:90; left:var(--mobile-gutter); right:var(--mobile-gutter); bottom:calc(12px + env(safe-area-inset-bottom)); display:flex; min-height:54px; padding:0 19px; align-items:center; justify-content:space-between; color:white; background:var(--accent); box-shadow:0 15px 40px rgba(0,0,0,.42); text-transform:uppercase; letter-spacing:.11em; font-size:9px; font-weight:700; transition:transform .3s,opacity .3s; }
  body.modal-open .mobile-booking-cta,body.menu-open .mobile-booking-cta,body.account-open .mobile-booking-cta,body.in-booking .mobile-booking-cta,body.pc-sheet-open .mobile-booking-cta { transform:translateY(140%); opacity:0; pointer-events:none; }
  .hero { min-height:100svh; padding:calc(92px + env(safe-area-inset-top)) var(--mobile-gutter) calc(92px + env(safe-area-inset-bottom)); }
  .hero-image { background-position:64% 50%; filter:saturate(.4) contrast(1.2) brightness(.5); }
  .hero-vignette { background:radial-gradient(circle at 75% 47%,rgba(var(--accent-rgb),.22),transparent 27%),linear-gradient(to top,#0b0b0d 3%,transparent 42%); }
  .hero-copy { width:100%; }
  .hero h1 { max-width:100%; font-size:clamp(42px,12vw,54px); line-height:.82; letter-spacing:-.07em; overflow-wrap:normal; word-break:normal; }
  .hero-image { background-size:auto 82%; background-position:72% 68%; background-repeat:no-repeat; background-color:#070709; filter:saturate(.45) contrast(1.18) brightness(.72); }
  .hero-image::after { background:linear-gradient(to bottom,rgba(5,5,7,.44),rgba(6,6,8,.18) 58%,#0b0b0d 96%),linear-gradient(90deg,rgba(5,5,7,.62),transparent 72%); }
  .hero-bottom { margin-top:34px; }
  .button-hero { min-width:225px; min-height:52px; }
  .availability strong { font-size:25px; }
  .section { padding:86px var(--mobile-gutter); }
  .section-head h2,.leaderboard-head h2,.contact-layout h2,.equipment h2 { font-size:var(--mobile-display); line-height:.9; overflow-wrap:normal; word-break:normal; }
  .booking { overflow:hidden; }
  .booking-shell { min-height:0; }
  .floor { overflow:hidden; padding:20px 14px 30px; }
  .mobile-floor-tabs { display:flex; position:sticky; left:0; z-index:3; gap:0; margin:20px 0 10px; }
  .mobile-floor-tabs button { flex:1; min-height:46px; border:1px solid var(--line); color:#777; background:#151518; font-size:8px; letter-spacing:.1em; cursor:pointer; }
  .mobile-floor-tabs button + button { border-left:0; }
  .mobile-floor-tabs button:hover:not(.active) { color:var(--accent); border-color:var(--accent); }
  .mobile-floor-tabs button.active { color:white; background:var(--accent); border-color:var(--accent); }
  .floor-plan { display:block; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; touch-action:pan-x pan-y; scrollbar-width:thin; scrollbar-color:#3a3a40 transparent; -webkit-overflow-scrolling:touch; }
  .floor-plan [data-floor-section] { display:none; width:540px; max-width:none; }
  .floor-plan [data-floor-section].mobile-active { display:block; }
  .floor-zone .zone-label,.vip-room .zone-label { position:sticky; left:0; width:calc(100vw - 64px); }
  .desk-row { width:540px; padding:11px; }
  .pc-grid { min-width:0; width:518px; grid-template-columns:repeat(8,56px); gap:8px; }
  .vip-grid { grid-template-columns:repeat(6,70px); width:460px; }
  .pc-seat { width:56px; height:56px; font-size:10px; touch-action:manipulation; }
  .vip-grid .pc-seat { width:70px; }
  .vip-room { width:490px!important; margin-top:0; padding:0 14px 18px; }
  .floor-passage,.service-room { display:none; }
  .floor-label { display:none; }
  .booking-panel { position:fixed; z-index:320; left:0; right:0; bottom:0; max-height:84svh; min-height:0; padding:24px 24px calc(24px + env(safe-area-inset-bottom)); border:0; border-top:1px solid var(--line); background:#17171a; box-shadow:0 -20px 60px rgba(0,0,0,.55); overflow:auto; transform:translateY(105%); transition:transform .42s cubic-bezier(.16,1,.3,1); }
  .booking-panel.mobile-open { transform:none; }
  .booking-sheet-close { display:grid; position:absolute; right:16px; top:16px; place-items:center; width:44px; height:44px; color:white; background:#242428; font-size:22px; cursor:pointer; }
  .booking-panel > .eyebrow { padding-right:52px; }
  .booking-pc { padding:18px 0; }
  .booking-pc strong { font-size:58px; }
  .booking-details { margin-top:10px; }
  .booking-row { min-height:48px; }
  .duration-control button { width:44px; height:44px; }
  .booking-submit { min-height:54px; }
  .zone-showcase { min-height:720px; }
  .zone-switcher button { min-height:46px; }
  .zone-showcase-copy { margin-top:155px; }
  .zone-showcase-copy h2 { font-size:var(--mobile-display); overflow-wrap:normal; word-break:normal; }
  .tariffs { padding-top:82px; padding-bottom:82px; }
  .tariff-tabs button { min-height:46px; white-space:nowrap; }
  .tariff-row { min-height:92px; touch-action:manipulation; }
  .player-teaser { overflow:hidden; padding-top:82px; padding-bottom:82px; }
  .teaser-copy h2 { font-size:var(--mobile-display); overflow-wrap:normal; word-break:normal; }
  .teaser-profile { min-height:0; }
  .teaser-identity { gap:12px; margin:22px 0 10px; }
  .teaser-portrait { width:52px; height:52px; flex-basis:52px; font-size:13px; }
  .teaser-profile h3 { flex:1; min-width:0; font-size:clamp(28px,8.4vw,40px); }
  .teaser-level strong { font-size:32px; }
  .teaser-profile .level-progress { width:100%; max-width:100%; margin-top:28px; }
  .teaser-stats { min-width:0; }
  .teaser-stats div { min-width:0; padding:16px 0; }
  .teaser-stats div + div { padding-left:16px; }
  .teaser-stats strong { font-size:16px; }
  .tournament { min-height:145px; grid-template-columns:82px 1fr 88px; gap:12px; padding:25px 0; }
  .tournament-date { grid-row:1; align-items:center; gap:6px; }
  .tournament-date strong { font-size:48px; }
  .tournament-date span { display:none; }
  .game { grid-column:2; }
  .game span { display:block; }
  .game h3 { font-size:21px; line-height:.95; }
  .prize { grid-column:3; text-align:right; }
  .prize span,.prize small { display:none; }
  .prize strong { font-size:12px; }
  .equipment { min-height:92svh; padding:90px var(--mobile-gutter) calc(90px + env(safe-area-inset-bottom)); }
  .equipment-image { background-position:62% center; }
  .equipment-specs strong { font-size:12px; }
  .atmosphere { overflow:hidden; }
  .gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:8px; overflow:visible; margin-right:0; padding-right:0; scroll-snap-type:none; }
  .gallery figure { position:relative; min-width:0; width:100%; height:auto; margin-top:0; overflow:hidden; }
  .gallery-wide { grid-column:1/3; grid-row:auto; aspect-ratio:16/10; }
  .gallery-tall,.gallery-small { grid-column:auto; grid-row:auto; aspect-ratio:4/3; }
  .gallery img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .contacts { padding-top:82px; }
  .contact-info > div { padding:18px 0; }
  .contact-info strong { font-size:12px; line-height:1.45; }
  .map { height:280px; margin-top:55px; }
  .final-cta { min-height:100svh; padding:90px var(--mobile-gutter) calc(100px + env(safe-area-inset-bottom)); }
  .final-bg { background-position:58% center; }
  .final-content h2 { font-size:clamp(44px,13vw,58px); overflow-wrap:normal; word-break:normal; }
  .button-final { min-width:230px; min-height:60px; }
  footer { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
  .product-modal { display:flex; align-items:flex-end; }
  .modal-panel { position:relative; top:auto; left:auto; right:auto; bottom:auto; width:100%; max-height:92svh; border-left:0; border-top:1px solid var(--line); border-radius:16px 16px 0 0; transform:translateY(105%); -webkit-overflow-scrolling:touch; }
  .product-modal.open .modal-panel { transform:none; }
  .modal-close { top:12px; margin:12px 12px 0 auto; width:44px; height:44px; }
  .modal-content { padding:10px 20px calc(35px + env(safe-area-inset-bottom)); }
  .modal-content > h2 { font-size:clamp(36px,12cqi,52px); }
  .modal-sticky { margin:0 -20px calc(-35px - env(safe-area-inset-bottom)); padding:8px 20px calc(22px + env(safe-area-inset-bottom)); }
  .account-backdrop { background:rgba(0,0,0,.72); }
  .account-dropdown { top:auto; right:0; left:0; bottom:0; width:100%; max-height:88svh; overflow:auto; border:0; border-top:1px solid var(--line); border-radius:16px 16px 0 0; transform:translateY(105%); }
  .account-layer.open .account-dropdown { transform:none; }
  .flow-options button { min-height:44px; }
  .flow-pcs button { width:64px; height:54px; }
  .toast { left:12px; right:12px; bottom:calc(78px + env(safe-area-inset-bottom)); min-width:0; transform:translateY(calc(100% + 110px)); }
  .toast.show { transform:none; }
}

@media (min-width:761px) and (max-width:1050px) {
  body.menu-open { overflow:hidden; }
  .header,.header.scrolled { background:#0a0a0c; backdrop-filter:none; }
  .menu-button { position:relative; z-index:3; display:block; width:44px; height:44px; margin-left:10px; cursor:pointer; }
  .menu-button[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .menu-button span { transition:transform .25s; }
  .nav { display:flex; position:fixed; z-index:2; inset:0; padding:120px 7vw 45px; flex-direction:column; align-items:stretch; gap:0; background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.16),transparent 27%),#0d0d0f; transform:translateX(100%); opacity:0; pointer-events:none; transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .25s; }
  .nav.open { display:flex; left:0; transform:none; opacity:1; pointer-events:auto; }
  .nav a { padding:16px 0; border-bottom:1px solid var(--line); color:white; font:600 34px var(--display); letter-spacing:-.04em; }
  .nav a::after { display:none; }
  .nav.open .nav-mobile-action { display:block; margin-top:auto; padding:17px; color:white; background:var(--accent); font:700 10px var(--sans); text-align:center; }
}

@media (min-width:761px) and (max-width:900px) {
  .booking-shell { grid-template-columns:1fr; }
  .booking-panel { border-left:0; border-top:1px solid var(--line); min-height:620px; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}
