/* ラスベガスの夜景と電飾を組み合わせたトップページ */
.vegas-home { --bg:#09070d; --panel:#131017; --line:#342735; --muted:#b4a7b8; --neon-y:#edc77d; background:#09070d; }
.vegas-home .wrap { width:min(1240px,100% - 72px); }
.vegas-home button { font:inherit; cursor:pointer; }
.vegas-home a { -webkit-tap-highlight-color:transparent; }
.vegas-home .site-header { background:#0c0810e8; border-color:#c59f6340; }
.vegas-home .header-row { min-height:76px; }
.vegas-home .brand-mark { background:transparent; border:1px solid #edc77d; color:#edc77d; border-radius:50%; box-shadow:0 0 20px #edc77d22; }
.vegas-home .brand-small { font-size:16px; color:#edc77d; letter-spacing:.25em; }
.vegas-home .global-nav a { color:#c7bcca; font-size:16px; }
.vegas-home .global-nav a[aria-current] { color:#edc77d; background:#edc77d0d; }
.vegas-hero { isolation:isolate; position:relative; overflow:hidden; background:#0b070f; }
.hero-night { position:absolute; inset:0; z-index:-3; background:linear-gradient(90deg,#0b061173, #0b061136 50%,#0b06115c),linear-gradient(0deg,#09070d 1%,#09070d11 60%,#09070d60),url('./vegas-boulevard.png') center 61% / cover; opacity:.8; }
.vegas-hero::after { content:''; position:absolute; inset:0; pointer-events:none; z-index:-1; background:radial-gradient(450px 350px at var(--light-x,50%) var(--light-y,40%),#ff3da418,transparent); }
.hero-topline { display:flex; align-items:center; justify-content:space-between; padding-block:23px; color:#cfbdcf; font:16px var(--mono); letter-spacing:.2em; }
.status-light { display:inline-block; width:5px; height:5px; border-radius:50%; margin-right:9px; background:#efc989; box-shadow:0 0 9px #edc77d; }
.experience-controls { display:flex; gap:8px; }
.experience-controls button { border:1px solid #f3d8ed30; border-radius:20px; color:#decfdf; background:#130b18a0; font:16px var(--mono); padding:7px 12px; letter-spacing:.05em; }
.experience-controls button:hover,.experience-controls button[aria-pressed=true] { border-color:#edc77d; color:#edc77d; }
.hero-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:center; padding-block:20px 40px; min-height:590px; }
.vegas-eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 20px; font-size:16px; letter-spacing:.18em; color:#edc77d; font-weight:600; }
.hero-copy .vegas-eyebrow span { width:25px; height:1px; background:#edc77d; }
.hero-copy h1 { font:900 clamp(75px,8.8vw,124px)/.85 Arial,Helvetica,sans-serif; letter-spacing:-.075em; margin:0 0 24px; color:#fff5e3; text-shadow:0 0 45px #edc77d20; overflow-wrap:normal; }
.neon-script { position:relative; display:block; color:#ff83ca; font:italic 500 clamp(62px,7vw,96px)/1.15 Georgia,'Times New Roman',serif; letter-spacing:-.065em; white-space:nowrap; padding-left:24px; transform:rotate(-7deg); text-shadow:0 0 2px #fff,0 0 10px #ff269c,0 0 35px #fc1785,0 0 70px #fc178560; }
.hero-jp { margin:36px 0 13px; font-size:clamp(23px,2.5vw,34px); font-weight:800; letter-spacing:.07em; color:#fff4e9; }
.hero-jp span { color:#f5d398; }
.hero-description { margin:0; color:#dbcedd; font-size:16px; line-height:2.1; }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:29px; }
.vegas-button { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; padding:15px 23px; color:#23131a; background:linear-gradient(115deg,#f9e2af,#dfb05d); font-size:16px; font-weight:800; text-decoration:none; border:1px solid #fff0cc; box-shadow:0 0 28px #edc77d30; transition:box-shadow .2s,transform .2s; }
.vegas-button:hover { transform:translateY(-3px); box-shadow:0 0 40px #edc77d65; }
.vegas-button span { font-size:22px; line-height:1; }
.text-link { text-decoration:none; color:#f0e5f0; font-size:16px; font-weight:600; }
.text-link:hover { color:#edc77d; }
.hero-footnote { margin:17px 0 0; color:#c0aebf; font-size:16px; letter-spacing:.02em; }
.hero-attraction { text-align:center; min-width:0; }
.attraction-label { color:#f2d4a3; font:16px var(--mono); letter-spacing:.25em; margin-bottom:22px; }
.attraction-label span { color:#ff65b7; padding-inline:10px; }
.wheel-stage { position:relative; width:min(100%,390px); aspect-ratio:1; margin:auto; }
.vegas-wheel { position:absolute; inset:0; border-radius:50%; border:12px solid #2a171e; outline:1px solid #d8ac6c; background:repeating-conic-gradient(#fff1bc 0deg 1deg,transparent 1deg 9deg),#332119; box-shadow:0 0 0 6px #120c12,0 0 0 8px #b98748,0 0 40px #ebad3a40,0 0 100px #ff28951a; transition:transform 2.6s cubic-bezier(.12,.7,.12,1); }
.vegas-wheel::before { content:''; position:absolute; inset:7px; border-radius:50%; border:1px solid #fae1a7; background:#0b0910; }
.wheel-sectors { position:absolute; inset:12px; border-radius:50%; background:conic-gradient(from 0deg,#4a172f 0deg 39.4deg,#c59c63 39.4deg 40deg,#19272a 40deg 79.4deg,#c59c63 79.4deg 80deg,#2a153d 80deg 119.4deg,#c59c63 119.4deg 120deg,#4d2825 120deg 159.4deg,#c59c63 159.4deg 160deg,#15362c 160deg 199.4deg,#c59c63 199.4deg 200deg,#5a1420 200deg 239.4deg,#c59c63 239.4deg 240deg,#1c3a2a 240deg 279.4deg,#c59c63 279.4deg 280deg,#162246 280deg 319.4deg,#c59c63 319.4deg 320deg,#3b2a17 320deg 359.4deg,#c59c63 359.4deg 360deg); box-shadow:inset 0 0 55px #0008; }
.wheel-sectors::after { content:''; position:absolute; inset:12px; border:1px solid #f5d59a60; border-radius:50%; }
.wheel-label { position:absolute; inset:0; display:flex; justify-content:center; transform:rotate(var(--angle)); padding-top:51px; }
.wheel-label span { font:700 16px var(--mono); color:#f1d7b0; letter-spacing:.1em; }
.wheel-stars { position:absolute; inset:0; display:grid; place-items:center; color:#edc77d; font-size:160px; opacity:.2; }
.wheel-spin { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:128px; aspect-ratio:1; border-radius:50%; color:#2b1720; border:6px solid #38232a; outline:1px solid #e6bc78; background:radial-gradient(circle at 40% 30%,#fff3d0,#edc77d 60%,#bf8a43); box-shadow:0 4px 20px #0009,0 0 25px #edc77d40; }
.wheel-spin span { display:block; font:bold 30px Georgia,serif; letter-spacing:.08em; }
.wheel-spin small { font-size:16px; }
.wheel-spin:hover { filter:brightness(1.15); }
.wheel-spin:disabled { cursor:wait; filter:saturate(.6); }
.wheel-pointer { position:absolute; top:-12px; left:50%; transform:translateX(-50%); z-index:2; width:23px; height:37px; background:linear-gradient(90deg,#c28a4b,#fff0bf,#c28a4b); clip-path:polygon(0 0,100% 0,50% 100%); filter:drop-shadow(0 0 7px #f8bc6c); }
.wheel-orbit { position:absolute; font-size:52px; color:#f4d49d; text-shadow:0 0 25px #ffb950; animation:vegas-float 6s ease-in-out infinite; pointer-events:none; }
.orbit-one { left:-35px; top:18px; transform:rotate(15deg); }
.orbit-two { right:-20px; bottom:30px; font-size:32px; color:#ff8cca; animation-delay:-3s; }
.wheel-result { margin:28px auto 0; min-height:72px; }
.result-kicker { display:block; font:16px var(--mono); color:#edc77d; letter-spacing:.25em; }
.wheel-result p { margin:7px 0 0; color:#dfcadb; font-size:16px; }
.wheel-result a { display:inline-block; margin-top:7px; color:#ffe0a6; text-decoration:none; border-bottom:1px solid #edc77d70; font-size:16px; }
.hero-bottom { display:flex; align-items:center; justify-content:space-between; padding-block:20px 24px; border-top:1px solid #e9c48b30; color:#c1aebe; font:16px var(--mono); letter-spacing:.15em; }
.hero-bottom b { margin-left:15px; color:#edc77d; }
.hero-bottom p { margin:0; }.hero-bottom p span { color:#f4d29a; font-size:16px; }.hero-bottom i { font-style:normal; color:#df6dab; margin-inline:16px; }
.spotlight { position:absolute; z-index:-2; top:-150px; width:110px; height:900px; background:linear-gradient(#ff53b82a,transparent); filter:blur(12px); transform-origin:top center; pointer-events:none; animation:vegas-beam 16s ease-in-out infinite alternate; }
.spotlight-one { left:12%; transform:rotate(-25deg); }.spotlight-two { right:15%; background:linear-gradient(#ffe0a629,transparent); animation-delay:-8s; }
.vegas-ticker { overflow:hidden; padding:12px 0; background:#edc77d; color:#21151b; border-block:1px solid #fff0d0; }
.vegas-ticker>div { display:flex; align-items:center; gap:25px; width:max-content; font:900 24px Arial,sans-serif; letter-spacing:.05em; animation:vegas-marquee 42s linear infinite; }
.ticker-outline { color:transparent; -webkit-text-stroke:1px #32202a; }
.game-floor { padding-block:72px 50px; }
.floor-heading { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:30px; }
.floor-heading .vegas-eyebrow { margin-bottom:10px; font:16px var(--mono); letter-spacing:.25em; }
.floor-heading h2 { margin:0; font-size:30px; font-weight:800; }.floor-heading h2 span { color:#f6dec0; }.floor-heading>p { font-size:16px; color:#b9a9b8; line-height:1.9; margin:0; }
.vegas-games { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; padding:0; margin:0; list-style:none; }
.vegas-games li { min-width:0; perspective:800px; }
.vegas-game { position:relative; overflow:hidden; display:block; height:100%; color:#f4eaf1; text-decoration:none; border:1px solid #392a3a; background:radial-gradient(circle at var(--card-x,50%) var(--card-y,30%),color-mix(in srgb,var(--game-color) 9%,transparent),transparent 65%),#120d16; transition:border-color .25s,box-shadow .25s,transform .2s; transform:perspective(800px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); }
.vegas-game:hover,.vegas-game:focus-visible { border-color:var(--game-color); box-shadow:0 0 34px color-mix(in srgb,var(--game-color) 16%,transparent); }
.game-top { display:flex; justify-content:space-between; align-items:center; padding:19px 20px 0; font:16px var(--mono); letter-spacing:.1em; color:#b5a4b8; }
.game-availability { display:flex; gap:6px; align-items:center; color:var(--game-color); }.game-availability i { width:4px; height:4px; border-radius:50%; background:currentColor; box-shadow:0 0 8px currentColor; }
.game-art { height:180px; position:relative; display:grid; place-items:center; isolation:isolate; overflow:hidden; }
.game-orb { width:155px; height:155px; position:absolute; border:1px solid color-mix(in srgb,var(--game-color) 25%,transparent); border-radius:50%; background:radial-gradient(color-mix(in srgb,var(--game-color) 12%,transparent),transparent 70%); }
.game-orb::after { content:''; position:absolute; inset:13px; border:1px dashed color-mix(in srgb,var(--game-color) 25%,transparent); border-radius:50%; animation:vegas-rotate 50s linear infinite; }
.game-icon { width:105px; color:var(--game-color); filter:drop-shadow(0 0 12px color-mix(in srgb,var(--game-color) 65%,transparent)); transition:transform .4s; }
.game-icon svg { display:block; width:100%; }
.art-word { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); font:900 63px Arial,sans-serif; letter-spacing:-.03em; color:transparent; -webkit-text-stroke:1px #ffffff09; z-index:-1; white-space:nowrap; }
.game-preview { position:absolute; width:105px; height:140px; object-fit:cover; border:1px solid var(--game-color); right:28px; top:22px; border-radius:4px; transform:translateX(35px) rotate(9deg); opacity:0; transition:transform .4s,opacity .4s; box-shadow:0 10px 30px #0009; }
.vegas-game:hover .game-preview,.vegas-game:focus-visible .game-preview { opacity:1; transform:translateX(0) rotate(9deg); }
.vegas-game:hover .game-icon,.vegas-game:focus-visible .game-icon { transform:translateX(-65px) rotate(-8deg); }
.game-details { padding:0 22px 20px; }.game-details h3 { margin:0 0 9px; font:800 24px Arial,sans-serif; letter-spacing:.025em; display:flex; justify-content:space-between; }.game-details h3>span { color:var(--game-color); font-weight:400; font-size:25px; }
.game-tagline { margin:0 0 4px; color:#e5d3e1; font-size:16px; font-weight:600; }.game-description { margin:0; color:#bca9bc; font-size:16px; }
.game-bottom { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-top:20px; padding-top:15px; border-top:1px solid #392a3a; }.game-bottom>span { color:#bba7bd; font-size:16px; }.game-bottom b { font:700 16px var(--mono); letter-spacing:.05em; color:var(--game-color); }.game-bottom b span { margin-left:12px; }
.floor-note { margin:25px 0 0; text-align:center; color:#bcadbf; font-size:16px; }.floor-note>span { margin-right:10px; color:#edc77d; }
.vegas-interlude { padding:30px 0; margin-block:0 45px; border-block:1px solid #b58c5240; display:flex; gap:25px; align-items:center; }.vegas-interlude>span { font-size:52px; color:#edc77d; line-height:1; }.vegas-interlude p { margin:0 0 7px; color:#edc77d; font:16px var(--mono); letter-spacing:.15em; }.vegas-interlude h2 { margin:0; font-size:21px; }.vegas-interlude a { margin-left:auto; }
.vegas-home .box { background:#15101a; border:1px solid #3b293c; border-radius:0; padding:22px; }.vegas-home .box-head { color:#e6c58d; font-size:16px; letter-spacing:.15em; }.vegas-home .rank { border-radius:0; }.vegas-home .arcade-lower { gap:22px; }.vegas-home .card { border-radius:0; background:#141018; border-color:#392b3b; }.vegas-home .card:hover { border-color:#dfb974; box-shadow:0 0 25px #edc77d17; }.vegas-home .section-head { border-color:#5d414f; }.vegas-home .section-head h2 { font-size:21px; }.vegas-home .section-battle { border-radius:0; background:linear-gradient(115deg,#32102040,#151019); }.vegas-home .site-footer { border-top-color:#77542f; background:#0d0910; }.vegas-home .footer-brand { color:#edc77d; }
.spark-layer { position:fixed; inset:0; z-index:60; pointer-events:none; overflow:hidden; }.vegas-spark { position:absolute; width:5px; height:5px; background:var(--spark-color); box-shadow:0 0 9px var(--spark-color); border-radius:1px; animation:vegas-spark .85s ease-out forwards; }
.vegas-home.fx-paused *, .vegas-home.fx-paused *::before,.vegas-home.fx-paused *::after { animation-play-state:paused!important; scroll-behavior:auto!important; }.vegas-home.fx-paused .vegas-wheel { transition:none; }.vegas-home.fx-paused .vegas-game { transform:none; }
@keyframes vegas-beam { from { transform:rotate(-28deg); } to { transform:rotate(29deg); } }
@keyframes vegas-float { 50% { translate:0 -12px; rotate:12deg; } }
@keyframes vegas-marquee { to { transform:translateX(-50%); } }
@keyframes vegas-rotate { to { transform:rotate(360deg); } }
@keyframes vegas-spark { to { transform:translate(var(--spark-x),var(--spark-y)) rotate(160deg); opacity:0; } }
@media (prefers-reduced-motion:no-preference) { html:has(.vegas-home):not(:has(.fx-paused)) { scroll-behavior:smooth; } }
@media (max-width:1100px) { .hero-layout { gap:35px; }.wheel-stage { width:330px; }.wheel-label { padding-top:44px; }.wheel-label span { font-size:16px; }.hero-copy h1 { font-size:100px; }.neon-script { font-size:79px; }.vegas-home .global-nav a { padding-inline:7px; font-size:16px; }.vegas-home .header-row { gap:15px; }.game-details { padding-inline:18px; } }
@media (max-width:900px) { .vegas-home .wrap { width:calc(100% - 40px); }.vegas-home .header-row { min-height:64px; gap:0 12px; }.vegas-home .global-nav { margin-inline:-20px; padding-inline:20px; }.hero-layout { grid-template-columns:1.05fr 1fr; gap:22px; padding-block:30px; min-height:530px; }.hero-copy h1 { font-size:83px; }.neon-script { font-size:65px; padding-left:12px; }.hero-jp { font-size:25px; }.hero-description { font-size:16px; }.hero-actions { gap:16px; }.vegas-button { padding:13px 15px; gap:18px; font-size:16px; }.wheel-stage { width:min(100%,300px); }.wheel-spin { width:102px; }.wheel-spin span { font-size:26px; }.wheel-spin small { font-size:16px; }.attraction-label { font-size:16px; letter-spacing:.1em; }.attraction-label span { padding:4px; }.wheel-label { padding-top:36px; }.wheel-label span { font-size:16px; }.vegas-games { gap:15px; }.game-details h3 { font-size:20px; }.game-tagline { font-size:16px; }.game-description { font-size:16px; }.game-bottom { flex-wrap:wrap; }.hero-bottom { letter-spacing:.05em; font-size:16px; }.hero-bottom i { margin-inline:8px; }.vegas-edition { display:none; } }
@media (max-width:650px) { .hero-topline { padding-block:15px; font-size:16px; letter-spacing:.08em; gap:8px; }.experience-controls { gap:5px; }.experience-controls button { font-size:16px; padding:6px 9px; }.hero-layout { grid-template-columns:1fr; padding-block:27px 16px; gap:45px; }.hero-copy { text-align:center; }.hero-copy .vegas-eyebrow { justify-content:center; font-size:16px; }.hero-copy h1 { font-size:clamp(84px,19vw,117px); }.neon-script { font-size:clamp(68px,16vw,98px); padding:0; }.hero-jp { margin-top:33px; font-size:27px; }.hero-description { font-size:16px; }.hero-actions { justify-content:center; gap:28px; }.hero-footnote { font-size:16px; }.hero-night { background-position:center,center,48% 50%; background-size:auto,auto,auto 105%; opacity:.55; }.wheel-stage { width:290px; }.wheel-label { padding-top:40px; }.wheel-label span { font-size:16px; }.wheel-spin { width:110px; }.attraction-label { font-size:16px; }.wheel-result { margin-top:22px; min-height:65px; }.hero-bottom { justify-content:center; padding-block:18px; }.hero-bottom>span { display:none; }.hero-bottom p span { font-size:16px; }.hero-bottom i { margin-inline:12px; }.vegas-ticker { padding-block:9px; }.vegas-ticker>div { font-size:20px; gap:18px; }.game-floor { padding-block:43px 32px; }.floor-heading { align-items:start; flex-direction:column; gap:12px; margin-bottom:24px; }.floor-heading h2 { font-size:27px; }.floor-heading>p br { display:none; }.vegas-games { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.game-top { padding:13px 12px 0; font-size:16px; letter-spacing:0; }.game-availability { font-size:16px; gap:4px; }.game-art { height:134px; }.game-orb { width:116px; height:116px; }.game-icon { width:80px; }.art-word { font-size:39px; }.game-details { padding:0 12px 14px; }.game-details h3 { font-size:18px; margin-bottom:8px; }.game-details h3>span { font-size:18px; }.game-tagline { font-size:16px; min-height:30px; }.game-description { font-size:16px; min-height:32px; line-height:1.7; }.game-bottom { margin-top:12px; padding-top:10px; gap:6px; }.game-bottom>span { font-size:16px; flex-basis:100%; }.game-bottom b { font-size:16px; }.game-preview { width:65px; height:86px; right:12px; }.vegas-game:hover .game-icon,.vegas-game:focus-visible .game-icon { transform:translateX(-28px) rotate(-8deg); }.floor-note { font-size:16px; text-wrap:balance; }.vegas-interlude { gap:15px; flex-wrap:wrap; padding-block:24px; margin-bottom:30px; }.vegas-interlude>span { font-size:35px; }.vegas-interlude p { font-size:16px; letter-spacing:.07em; }.vegas-interlude h2 { font-size:17px; }.vegas-interlude a { margin-left:50px; }.vegas-home .section-head h2 { font-size:17px; }.vegas-home .section-head a { font-size:16px; }.vegas-home .section-head { align-items:center; }.vegas-home .box { padding:17px; } }
@media (prefers-reduced-motion:reduce) { .vegas-home:not(.fx-explicit-on) *, .vegas-home:not(.fx-explicit-on) *::before,.vegas-home:not(.fx-explicit-on) *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }.vegas-home .vegas-game { transform:none; } }

/* 中央の電飾看板を軸にしたファーストビュー */
.vegas-site .hero-night { transform:translate3d(0,var(--hero-city-y,0px),0) scale(1.08); background-position:center,center,center 66%; opacity:.82; }
.hero-marquee { position:relative; text-align:center; padding:6px 45px 0; transform:translate3d(0,var(--hero-sign-y,0px),0); }
.hero-marquee>.vegas-eyebrow { justify-content:center; margin:0 0 7px; font:16px var(--mono); letter-spacing:.3em; }
.marquee-crown { position:absolute; top:-30px; left:50%; transform:translateX(-50%); color:#f3d292; font-size:24px; text-shadow:0 0 20px #f0b95b; }
.marquee-frame { position:relative; width:min(900px,100%); margin:auto; padding:16px 20px 25px; border-block:1px solid #edc77d66; background:linear-gradient(90deg,transparent,#1b0d2460,transparent); }
.marquee-frame::before,.marquee-frame::after { content:''; position:absolute; top:5px; left:4px; right:4px; height:4px; background:radial-gradient(circle,#ffe7ac 1px,transparent 2px) 0 0/14px 4px; filter:drop-shadow(0 0 4px #f6c46b); animation:marquee-bulbs 3s ease-in-out infinite alternate; }
.marquee-frame::after { top:auto; bottom:5px; animation-delay:-1.5s; }
.hero-marquee h1 { position:relative; display:flex; align-items:center; justify-content:center; margin:0; color:#fff3da; font:900 clamp(90px,9.6vw,138px)/1 Arial,sans-serif; letter-spacing:-.07em; text-shadow:0 0 45px #f5c47430; }
.hero-marquee .neon-script { display:inline-block; padding:0; margin:10px 0 0 -20px; transform:rotate(-8deg); font-size:clamp(76px,7.8vw,112px); letter-spacing:-.065em; }
body.vegas-site .hero-layout { width:min(930px,100% - 64px); grid-template-columns:1.1fr 1fr; min-height:0; padding-block:24px 26px; gap:50px; align-items:center; }
.hero-stock-word { flex:none; white-space:nowrap; overflow-wrap:normal; }
.hero-marquee h1 { overflow-wrap:normal; white-space:nowrap; font-size:clamp(88px,9vw,128px); }
.hero-marquee .neon-script { flex:none; font-size:clamp(72px,7vw,100px); }
.vegas-site .wheel-spin { padding:0; }
.vegas-site .wheel-spin span { white-space:nowrap; letter-spacing:.04em; }
.vegas-site .hero-copy { padding:10px 0 0 25px; }
.vegas-site .hero-jp { margin:0 0 14px; font-size:29px; line-height:1.5; }
.vegas-site .hero-description { font-size:16px; }
.vegas-site .hero-actions { margin-top:23px; }
.vegas-site .hero-attraction { padding-right:15px; }
.vegas-site .wheel-stage { width:280px; }
.vegas-site .wheel-label { padding-top:35px; }.vegas-site .wheel-label span { font-size:16px; }
.vegas-site .wheel-spin { width:100px; }.vegas-site .wheel-spin span { font-size:27px; }.vegas-site .wheel-spin small { font-size:16px; }
.vegas-site .attraction-label { margin-bottom:15px; font-size:16px; }
.vegas-site .wheel-result { margin-top:18px; min-height:50px; }
.hero-chip { position:absolute; top:30%; display:grid; place-items:center; width:72px; height:72px; border:2px dashed #e7be7d; outline:1px solid #b4854e; outline-offset:6px; border-radius:50%; background:radial-gradient(#4b1a3f,#1e1029); font:40px Georgia,serif; color:#f0ce94; box-shadow:0 0 35px #e4509e35; }
.chip-left { left:0; rotate:-20deg; animation:vegas-float 7s ease-in-out infinite; }.chip-right { right:0; rotate:18deg; color:#ff81bd; animation:vegas-float 7s ease-in-out -3s infinite; }
.vegas-site.fx-paused .hero-marquee,.vegas-site.fx-paused .hero-night { transform:none; }
@keyframes marquee-bulbs { to { opacity:.45; filter:drop-shadow(0 0 7px #ff5cba); } }
@media (max-width:1100px) { .hero-chip { width:50px; height:50px; font-size:30px; }.hero-marquee { padding-inline:55px; }.hero-marquee h1 { font-size:100px; }.hero-marquee .neon-script { font-size:85px; }body.vegas-site .hero-layout { gap:30px; }.vegas-site .hero-jp { font-size:26px; } }
@media (max-width:750px) { .hero-marquee h1 { font-size:76px; }.hero-marquee .neon-script { font-size:67px; }.hero-chip { width:37px; height:37px; font-size:24px; }.hero-marquee { padding-inline:45px; }body.vegas-site .hero-layout { width:calc(100% - 40px); gap:20px; }.vegas-site .hero-copy { padding-left:0; }.vegas-site .hero-attraction { padding:0; }.vegas-site .wheel-stage { width:250px; }.vegas-site .hero-jp { font-size:23px; }.vegas-site .hero-actions { gap:15px; } }
@media (max-width:650px) { .hero-marquee { padding:20px 10px 0; }.hero-marquee>.vegas-eyebrow { font-size:16px; letter-spacing:.1em; }.marquee-crown { top:-8px; font-size:20px; }.hero-marquee h1 { flex-direction:column; font-size:clamp(81px,21vw,118px); line-height:.9; }.hero-marquee .neon-script { font-size:clamp(67px,17vw,94px); margin:-3px 0 0; }.marquee-frame { padding:20px 10px 26px; }.hero-chip { top:38%; width:28px; height:28px; font-size:18px; outline-offset:4px; opacity:.65; }.chip-left { left:-2px; }.chip-right { right:-2px; }body.vegas-site .hero-layout { padding-top:23px; grid-template-columns:1fr; gap:29px; }.vegas-site .hero-copy { padding:0; }.vegas-site .hero-jp { font-size:25px; margin-bottom:12px; }.vegas-site .hero-description { font-size:16px; }.vegas-site .hero-attraction { padding-top:5px; }.vegas-site .hero-actions { justify-content:center; gap:24px; margin-top:18px; }.vegas-site .hero-footnote { margin-top:11px; }.vegas-site .wheel-stage { width:265px; }.vegas-site .wheel-label { padding-top:32px; }.vegas-site .wheel-label span { font-size:16px; } }
@media (prefers-reduced-motion:reduce) { body.vegas-site:not(.fx-explicit-on) .hero-marquee,body.vegas-site:not(.fx-explicit-on) .hero-night { transform:none!important; } }

/* 大きなルーレットと、中央の実記事デッキ */
body.vegas-site .hero-layout { width:min(1280px,100% - 64px); grid-template-columns:minmax(0,.92fr) minmax(0,.84fr) minmax(0,1.4fr); gap:26px; padding-block:28px 25px; }
.vegas-site .hero-copy { padding:0; }
.vegas-site .hero-jp { font-size:clamp(24px,2.3vw,31px); }
.vegas-site .hero-description { font-size:16px; line-height:2; }
.vegas-site .hero-actions { flex-wrap:wrap; gap:16px; margin-top:24px; }
.vegas-site .hero-footnote { max-width:265px; font-size:16px; }
.vegas-site .hero-attraction { padding:0; }
.vegas-site .wheel-stage { width:min(100%,440px); }
.vegas-site .wheel-label { padding-top:60px; }.vegas-site .wheel-label span { font-size:16px; }
.vegas-site .wheel-spin { width:146px; }.vegas-site .wheel-spin span { font-size:39px; }.vegas-site .wheel-spin small { font-size:16px; }
.vegas-site .attraction-label { font-size:16px; margin-bottom:20px; }
.vegas-site .wheel-result { margin-top:24px; min-height:58px; }
.hero-story-deck { position:relative; isolation:isolate; text-align:center; min-width:0; padding-top:15px; }
.deck-eyebrow { margin:0 0 16px; font:16px var(--mono); letter-spacing:.18em; color:#f3d193; }.deck-eyebrow span { color:#ff65b6; margin-left:6px; }
.hero-deck-cards { position:relative; width:100%; height:306px; perspective:1100px; }
.hero-deck-cards>p { color:#bd9eb8; font-size:16px; padding-top:120px; }
.hero-story-card { position:absolute; width:220px; left:50%; top:12px; min-height:266px; padding:8px; background:#f7e8ce; color:#2e1730; text-decoration:none; box-shadow:0 18px 40px #0009,0 0 20px #f259a427; border:1px solid #ffdca0; border-radius:8px; transform:translateX(-50%) rotate(-7deg); transform-origin:50% 80%; transition:transform .3s,box-shadow .3s; }
.hero-story-card:nth-child(1) { transform:translateX(-63%) rotate(-17deg); top:0; z-index:1; background:#d4a875; }
.hero-story-card:nth-child(2) { transform:translateX(-37%) rotate(15deg); top:6px; z-index:2; background:#efb9d4; }
.hero-story-card:nth-child(3) { z-index:3; }
.hero-story-card:hover,.hero-story-card:focus-visible { z-index:5; transform:translateX(-50%) translateY(-15px) rotate(0); box-shadow:0 16px 45px #000a,0 0 28px #ff58b36b; }
.hero-story-card img { display:block; width:100%; height:136px; object-fit:cover; border-radius:3px; border:1px solid #caa277; }
.hero-story-card .deck-card-label { display:flex; justify-content:space-between; padding:3px 2px 7px; color:#87375e; font:700 16px var(--mono); }
.hero-story-card h2 { padding:10px 5px 4px; margin:0; font:800 16px/1.65 var(--font); color:#3d1b37; }
.hero-story-card small { display:block; color:#82415d; font-size:16px; padding:5px; }
.deck-shuffle { position:relative; z-index:6; padding:9px 12px; border:1px solid #d5a36699; background:#2a112bd9; color:#f4d397; border-radius:20px; font:16px var(--mono)!important; letter-spacing:.08em; cursor:pointer; }
.deck-shuffle:hover { border-color:#ff73bd; color:#ff9acf; }.deck-shuffle span { font-size:16px; margin-left:6px; }
.hero-deck-cards.is-shuffling .hero-story-card { animation:deck-deal .5s cubic-bezier(.15,.7,.3,1); }
.hero-deck-cards.is-shuffling .hero-story-card:nth-child(2) { animation-delay:.04s; }.hero-deck-cards.is-shuffling .hero-story-card:nth-child(3) { animation-delay:.08s; }
@keyframes deck-deal { from { opacity:0; translate:0 65px; rotate:20deg; scale:.7; } to { opacity:1; translate:0 0; rotate:0deg; scale:1; } }
@media (max-width:1150px) { body.vegas-site .hero-layout { gap:22px; grid-template-columns:minmax(0,.9fr) minmax(0,.74fr) minmax(0,1.22fr); }.vegas-site .wheel-stage { width:min(100%,370px); }.vegas-site .wheel-label { padding-top:45px; }.vegas-site .wheel-label span { font-size:16px; }.vegas-site .wheel-spin { width:125px; }.vegas-site .wheel-spin span { font-size:32px; }.vegas-site .hero-jp { font-size:24px; }.vegas-site .hero-description { font-size:16px; }.hero-story-card { width:190px; min-height:248px; }.hero-story-card img { height:115px; }.hero-deck-cards { height:285px; }.deck-eyebrow { font-size:16px; letter-spacing:.08em; } }
@media (max-width:900px) { body.vegas-site .hero-layout { width:calc(100% - 48px); grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:25px 35px; }.hero-story-deck { grid-column:1/-1; grid-row:2; width:420px; max-width:100%; margin:auto; }.hero-deck-cards { height:268px; }.hero-story-card { width:210px; }.vegas-site .hero-attraction { grid-column:2; grid-row:1; }.vegas-site .wheel-stage { width:100%; max-width:370px; }.vegas-site .hero-copy { text-align:left; }.vegas-site .hero-actions { justify-content:flex-start; }.vegas-site .hero-footnote { margin-inline:0; }.hero-story-card:nth-child(1) { transform:translateX(-95%) rotate(-16deg); }.hero-story-card:nth-child(2) { transform:translateX(-5%) rotate(15deg); } }
@media (max-width:650px) { body.vegas-site .hero-layout { width:calc(100% - 40px); grid-template-columns:1fr; gap:26px; }.vegas-site .hero-copy { text-align:center; }.vegas-site .hero-jp { font-size:27px; }.vegas-site .hero-actions { justify-content:center; gap:24px; }.vegas-site .hero-footnote { max-width:none; }.vegas-site .hero-attraction { grid-column:auto; grid-row:2; }.vegas-site .wheel-stage { width:min(100% - 10px,350px); }.vegas-site .wheel-label { padding-top:43px; }.vegas-site .wheel-label span { font-size:16px; }.vegas-site .wheel-spin { width:123px; }.vegas-site .wheel-spin span { font-size:33px; }.vegas-site .wheel-spin small { font-size:16px; }.hero-story-deck { grid-column:auto; grid-row:3; width:100%; }.hero-deck-cards { height:282px; }.hero-story-card { width:200px; }.hero-story-card:nth-child(1) { transform:translateX(-67%) rotate(-15deg); }.hero-story-card:nth-child(2) { transform:translateX(-33%) rotate(14deg); }.deck-eyebrow { font-size:16px; }.deck-shuffle { font-size:16px!important; } }
body.vegas-site.fx-paused .hero-story-card { animation:none!important; }

/* 9台になったので、ゲーム選びのルーレットは名前の代わりに番号を出す（名前は結果欄に出る） */
.wheel-label>span { display:none; }
.wheel-label::after { content:attr(data-short); color:#f1d7b0; font:400 18px/1.3 var(--show, var(--mono)); }
/* カジノコーナー（下段：03 ROULETTE・07 BLACKJACK・08 POKER） */
.casino-corner-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px; margin:34px 0 16px; padding-top:20px; border-top:1px solid #4a3443; }
.casino-corner-head .vegas-eyebrow { margin:0; font:16px var(--mono); letter-spacing:.25em; color:#edc77d; }
.casino-corner-note { margin:0; color:#bcadbf; font-size:16px; line-height:1.7; }
