

@keyframes introScaleIn { 0% { opacity: 0; transform: scale(.9) } 100% { opacity: 1; transform: scale(1) } }
@keyframes barGrowX { 0% { width: 0 } 100% { width: calc(100% + 100px) } }
@keyframes barGrowY { 0% { height: 0 } 100% { height: calc(100% + 100px) } }
@keyframes introRise { 0% { opacity: 0; height: 0 } 100% { opacity: 1; height: 30px } }
@keyframes copyDrop { 0% { opacity: 0; transform: translateY(-20px) } 100% { opacity: 1; transform: translateY(0) } }
@keyframes heroCopyIn { 0% { opacity: 0; transform: translateY(-20px) } 100% { opacity: 1; transform: translateY(0) } }
@keyframes pulseRing { 0% { box-shadow: 0 0 0 0 var(--brand-2) } 100% { box-shadow: 0 0 0 20px rgba(0,0,0,0) } }
@keyframes ringDrop { 0% { transform: translateY(0) } 100% { transform: translateY(150px) } }
@keyframes cueBlink { 0% { transform: translate(0,0); opacity: 0 } 40% { opacity: 1 } 80% { transform: translate(0,20px); opacity: 0 } 100% { opacity: 0 } }
@keyframes planRise { 0% { opacity: 0; transform: scale(.94) translateY(8px) } 100% { opacity: 1; transform: scale(1) translateY(0) } }
@keyframes bubbleBob { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-7px) } }
@keyframes pullArrow { 0%, 100% { transform: translateY(-50%) translateX(0); opacity: 1 } 50% { transform: translateY(-50%) translateX(-6px); opacity: .4 } }
@keyframes capFade { 0% { opacity: 0; transform: translateY(10px) } 100% { opacity: 1; transform: translateY(0) } }

@keyframes swipeHintL { 0%, 100% { transform: translateX(0); opacity: .55 } 50% { transform: translateX(-4px); opacity: 1 } }
@keyframes swipeHintR { 0%, 100% { transform: translateX(0); opacity: .55 } 50% { transform: translateX(4px); opacity: 1 } }
.throb { animation: pulseRing 2s infinite }

@media (min-width:991px) {
  
  #introLoading { position: fixed; inset: 0; z-index: 1001; background: #fff; color: var(--brand-1); overflow: hidden; cursor: pointer; transition: opacity 1.1s cubic-bezier(.45,0,.25,1), visibility 0s linear 1.1s }
  #introLoading.is-closing { opacity: 0; visibility: hidden; pointer-events: none }
  .pc-splash .spl-stage { position: absolute; inset: 0; transition: opacity 1s cubic-bezier(.45,0,.25,1) }
  .pc-splash .spl-stage-a { display: flex; align-items: center; justify-content: center; gap: clamp(22px,2.6vw,44px) }
  .pc-splash .spl-stage-b { opacity: 0 }
  .pc-splash.sb .spl-stage-a { opacity: 0 }
  .pc-splash.sb .spl-stage-b { opacity: 1 }
  .pc-splash .spl-card { display: flex; flex-direction: column; align-items: center; gap: 16px; margin: 0 }
  .pc-splash .spl-c2 { padding-top: 11vh }
  .pc-splash .spl-c3 { margin-bottom: 9vh }
  .pc-splash .spl-card img { width: clamp(118px,11vw,178px); height: auto; aspect-ratio: 9/19.5; object-fit: cover; opacity: 0; transform: translate3d(0,52px,0); transition: opacity 1.6s cubic-bezier(.45,0,.25,1), transform 2.4s cubic-bezier(.22,.8,.3,1) }
  .pc-splash .spl-word { font-family: var(--font-serif); font-weight: 300; font-size: clamp(17px,1.45vw,23px); line-height: 1; letter-spacing: .08em; opacity: 0; transform: translate3d(0,20px,0); transition: opacity 1.5s cubic-bezier(.45,0,.25,1) .4s, transform 2.2s cubic-bezier(.22,.8,.3,1) .4s }
  .pc-splash.s1 .spl-c1 img, .pc-splash.s1 .spl-c1 .spl-word,
  .pc-splash.s2 .spl-c2 img, .pc-splash.s2 .spl-c2 .spl-word,
  .pc-splash.s3 .spl-c3 img, .pc-splash.s3 .spl-c3 .spl-word { opacity: 1; transform: translate3d(0,0,0) }
  
  .pc-splash .spl-wide { position: absolute; inset: 0; margin: 0; clip-path: inset(19vh 50% 19vh 50%); transition: clip-path 1.9s cubic-bezier(.7,0,.3,1) }
  .pc-splash.w1 .spl-wide { clip-path: inset(19vh 17vw 19vh 17vw) }
  .pc-splash.w2 .spl-wide { clip-path: inset(0 0 0 0); transition-duration: 2.5s }
  .pc-splash .spl-wide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.14); transition: transform 4.2s cubic-bezier(.2,.9,.3,1) }
  .pc-splash.w1 .spl-wide img { transform: scale(1) }
  .pc-splash .spl-wide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(0,22,14,.16) 0%,rgba(0,22,14,.42) 50%,rgba(0,22,14,.2) 100%); opacity: 0; transition: opacity 1.4s ease }
  .pc-splash.w2 .spl-wide::after { opacity: 1 }
  .pc-splash .spl-copy { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0; text-align: center; color: #fff }
  .pc-splash .spl-copy span { font-family: var(--font-serif); font-weight: 300; font-size: clamp(27px,2.9vw,46px); line-height: 1.3; letter-spacing: .01em; text-shadow: 0 2px 20px rgba(0,0,0,.3); opacity: 0; transform: translate3d(0,26px,0); transition: opacity 1.5s cubic-bezier(.45,0,.25,1), transform 2.3s cubic-bezier(.22,.8,.3,1) }
  .pc-splash.w2 .spl-copy span { opacity: 1; transform: translate3d(0,0,0) }
  .pc-splash.w2 .spl-copy span + span { transition-delay: .4s }
  
  .pc-splash .spl-skip { position: fixed; left: 0; top: 0; z-index: 3; width: 78px; height: 78px; border-radius: 50%; background: var(--brand-1); color: #fff; font-family: var(--font-body); font-size: 13px; font-weight: 500; letter-spacing: .14em; opacity: 0; transform: translate3d(calc(100vw - 116px),calc(100vh - 116px),0); transition: transform .5s cubic-bezier(.22,.8,.3,1), opacity .6s ease }
  .pc-splash.sk .spl-skip { opacity: 1 }
  .pc-splash .spl-skip::before { content: ""; position: absolute; inset: -9px; border-radius: 50%; border: 5px solid var(--brand-1); opacity: 0; animation: splRing 2.2s linear infinite }
  @keyframes splRing { 0%, 25% { transform: scale(.72); opacity: 0 } 48% { opacity: .32 } 82%, 100% { transform: scale(1.02); opacity: 0 } }
  
  .sec-main .main-title { opacity: 0; transform: translateY(20px) }
  .sec-main .main-wordmark { opacity: 0; transform: translateY(20px) }
  .sec-main.is-loaded .main-title { animation: heroCopyIn .8s ease forwards; animation-delay: var(--delay-10) }
  .sec-main.is-loaded .main-wordmark { animation: heroCopyIn .8s ease forwards; animation-delay: var(--delay-20) }
  
  #cursorCircle { position: fixed; left: 0; top: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--brand-2); pointer-events: none; transition: .1s; z-index: 1200 }
  
  .sound-follow { position: fixed; left: 50vw; top: 50vh; transform: translate(-50%,-50%); display: flex; flex-direction: column; align-items: center; justify-content: center; width: 80px; height: 80px; border-radius: var(--radius-circle); background: var(--color-overlay-70); color: var(--color-text-invert); font-size: var(--fs-12); font-weight: var(--fw-btn); transition: opacity var(--dur-ui) ease; will-change: left,top; z-index: 40 }
  .sound-follow svg { display: block; stroke-width: 1.5px }
  .sound-follow span { letter-spacing: -0.6px }
  .sound-follow.is-audible { opacity: 0%; pointer-events: none }
  .has-intro .sound-follow { z-index: 1100 }
  .pagehead .tune-btn { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-circle); background: var(--brand-3); color: var(--brand-1); flex-shrink: 0 }
  .pagehead .tune-btn svg { width: 20px; height: 20px; stroke-width: 1.5px; flex-shrink: 0 }
  .pagehead .tune-btn .ic-off { display: none }
  .pagehead .tune-btn.tune-on .ic-off { display: block }
  .pagehead .tune-btn.tune-on .ic-on { display: none }
  .pagehead .tune-btn.tune-on { animation: pulseRing 2s infinite }
  
  .scroll-cue { position: fixed; right: 50px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; align-items: center; filter: drop-shadow(0 1px 1px rgba(0,0,0,.3)); z-index: 5 }
  .scroll-cue p { display: flex }
  .scroll-cue p { flex-direction: column }
  .scroll-cue p span { line-height: 1; font-weight: var(--fw-light); font-size: 12px; color: #fff; letter-spacing: var(--ls-point); transform: rotate(90deg) }
  .scroll-cue .ring-track { position: relative; margin-top: 30px; width: 1px; height: 150px; background: rgba(255,255,255,.3) }
  .scroll-cue .rail-dot { position: absolute; top: 0; left: -4px; width: 9px; height: 9px; border-radius: 50%; background: var(--brand-1); animation: ringDrop 3s infinite }
  
  .floating-btns { position: fixed; right: 100px; bottom: 50px; display: flex; align-items: center; gap: var(--sp-20); z-index: 6 }
  .floating-btns .fb { display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: var(--radius-circle); color: var(--color-text-invert); box-shadow: var(--shadow-soft); overflow: hidden; white-space: nowrap; transition: var(--dur-ui-slow) }
  .floating-btns .fb-popup { background: var(--brand-2) }
  .floating-btns .fb-reserve { background: var(--brand-1) }
  .floating-btns .fb .fb-icon { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px }
  .floating-btns .fb .fb-icon svg { inline-size: 100%; height: 100%; display: block }
  .floating-btns .fb p { display: none; padding-left: var(--sp-10); letter-spacing: var(--ls-title) }
  .floating-btns .fb:hover { background: #fff; color: #333; width: 150px }
  .floating-btns .fb:hover p { display: inline-block }
  
  .fb-popup-wrap { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-20); background: var(--color-overlay-60); transform: translateY(-100%); opacity: 0; pointer-events: none; transition: 1s ease; z-index: 1000 }
  .fb-popup-wrap.is-unfold { transform: translateY(0); opacity: 1; pointer-events: auto }
  .fb-popup-list { display: flex; justify-content: center; gap: 3rem }
  .fb-popup-list li { transition: var(--dur-ui) }
  .fb-popup-list li:hover { transform: translateY(-10px); box-shadow: var(--shadow-deep) }
  .fb-popup-list li img { width: 340px; box-shadow: var(--shadow-deep) }
  .fb-popup-close { background: var(--brand-1); color: var(--color-text-invert); font-weight: var(--fw-btn); padding: var(--sp-10) var(--sp-80) }
  
  .pagehead { transition: background var(--dur-ui) var(--delay-4) }
  .pagehead:hover { transition: background 0s 0s }
  .allmenu { transition: max-height var(--dur-ui-slow) }
  .header-dim { transition: opacity var(--dur-ui) }
  .dot-nav a i { transition: var(--dur-ui) }
  .pagehead .navlist a, .mega-col ul li a { transition: color var(--dur-ui-fast),background var(--dur-ui-fast) }
  
  .loc-slide { display: flex; opacity: 0; pointer-events: none; transition: opacity 1s ease }
  .loc-slide.hl-is-current { opacity: 1; pointer-events: auto; z-index: 2 }
  .loc-image { opacity: 0; transform: translateY(20px); transition: var(--dur-ui) }
  .sec-location.is-cur .loc-image { opacity: 1; transform: translateY(0); transition: 1s; transition-delay: var(--delay-10) }
  .loc-text { opacity: 0; transform: translateY(-20px); transition: all 1s ease }
  .sec-location.is-cur .loc-text { opacity: 100%; transform: translateY(0) }
  .loc-desc-wrap { overflow: hidden }
  .loc-desc { transform: translateY(100%); transition: var(--dur-section) }
  .loc-slide.hl-is-current .loc-desc { transform: translateY(0) }
  .loc-lines .line-h { transform: scaleX(0); transform-origin: left; transition: transform 1s ease var(--dur-section) }
  .sec-location.is-cur .loc-lines .line-h { transform: scaleX(1) }
  .loc-lines .line-v { height: 0; transition: height 1s ease 1.2s }
  .sec-location.is-cur .loc-lines .line-v { height: 100% }
  .loc-pg button { transition: opacity var(--dur-ui-fast) }
  
  .scroll-induce { position: absolute; left: 50%; bottom: 2%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; opacity: .9; z-index: 3 }
  .scroll-induce .cue-dot { position: relative; width: 30px; height: 50px; border: 2px solid #dbdbdb; border-radius: 50px }
  .scroll-induce .cue-dot::before { content: ""; position: absolute; top: 10px; left: 50%; width: 6px; height: 6px; margin-left: -3px; background: #555; border-radius: 50%; animation: cueBlink 3s infinite }
  .scroll-induce p { color: var(--color-gray-3); font-size: 14px; font-weight: var(--fw-light); padding-top: var(--sp-10) }
  
  .comm-display { letter-spacing: 70px; transform: translateY(130px); transition: 1s }
  .sec-community.is-cur .comm-display { letter-spacing: 5px; transform: translateY(0); transition: letter-spacing 1s ease var(--delay-10),transform 1s ease var(--delay-20) }
  .comm-tit p { opacity: 0; transform: translateY(-50px); transition: 1s }
  .sec-community.is-cur .comm-tit p { opacity: 1; transform: translateY(0); transition-delay: var(--delay-20) }
  .comm-thumbs { opacity: 0; transition: 1s }
  .sec-community.is-cur .comm-thumbs { opacity: 1; transition-delay: var(--delay-20) }
  .comm-thumbs button { transition: var(--dur-ui-slow) }
  .comm-thumbs button img { transition: filter var(--dur-ui-slow),transform var(--dur-ui-slow) }
  .comm-thumbs button:hover img { transform: scale(1.1) }
  .comm-caption { opacity: 0; margin-top: 60px; transition: 1s }
  .sec-community.is-cur .comm-caption { opacity: 1; margin-top: 10px; transition-delay: var(--delay-20) }
  .comm-caption h3.swap { animation: capFade 1s ease both }
  .comm-bg img { display: block; opacity: 0; transition: opacity 1s ease }
  .comm-bg img.hl-is-current { opacity: 1 }
  
  .plan-side { opacity: 0; transform: translateY(16px); transition: opacity .7s ease .05s,transform .7s ease .05s }
  .plan-main { opacity: 0; transform: translateY(16px); transition: opacity .7s ease .18s,transform .7s ease .18s }
  .sec-unit.is-cur .plan-side, .sec-unit.is-cur .plan-main { opacity: 100%; transform: translateY(0) }
  .u-iso img.float-in { animation: planRise var(--dur-ui-slow) ease both }
  .u-tabs button { transition: background 0.22s }
  .u-tabs button::before { transition: height 0.25s }
  .tab-label { transition: color 0.22s }
  .plan-img img { transition: opacity var(--dur-ui-fast) ease }
  
  .visit-card { position: relative; opacity: 0; transform: translateY(30px); transition: var(--dur-ui) }
  .sec-visit.is-cur .visit-card { opacity: 1; transform: translateY(0); transition: 1s var(--delay-10) }
  .info-line { transform: scaleX(0); transition: var(--dur-ui) }
  .sec-visit.is-cur .info-line { transform: scaleX(1); transition: var(--dur-section) var(--delay-10) }
  .visit-card::before, .visit-card::after, .visit-card .bd::before, .visit-card .bd::after { content: ""; position: absolute; background: var(--brand-3); transition: var(--dur-ui-slow) }
  
  .visit-card::before { left: -2px; top: -2px; width: 0; height: 2px }
  .visit-card::after { right: -2px; top: -2px; width: 2px; height: 0 }
  .visit-card .bd { position: absolute; inset: 0; z-index: -1; transition: var(--dur-ui-slow) }
  .visit-card .bd::before { right: -2px; bottom: -2px; width: 0; height: 2px }
  .visit-card .bd::after { left: -2px; bottom: -2px; width: 2px; height: 0 }
  .visit-card:hover::before { width: calc(100% + 2px) }
  .visit-card:hover::after { height: calc(100% + 2px) }
  .visit-card:hover .bd::before { width: calc(100% + 2px) }
  .visit-card:hover .bd::after { height: calc(100% + 2px) }
  .visit-card:hover .bd { background: rgba(0,0,0,.2) }
  .visit-card .cd-body, .visit-card .cd-head { transition: color var(--dur-ui-fast) }
  
  .vd--video, .vd--progress { display: none }
}

@media (max-width:990px) {
  .q-bubble.is-bob { animation: bubbleBob 2.2s ease-in-out infinite }
  #cursorCircle, .sound-follow, .scroll-cue, .floating-btns, .fb-popup-wrap, .scroll-induce, #introLoading { display: none }
  
  .bgm-toggle-mo { position: absolute; left: calc(4vw + 38px); top: 50%; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: var(--radius-circle); border: 1px solid rgba(255,255,255,.45); color: #fff }
  .bgm-toggle-mo.is-lit { animation: pulseRing 2s infinite }
  
  .allmenu { transition: transform var(--dur-ui) ease }
  .pagehead .menu-btn span { transition: transform var(--dur-ui-fast) ease,opacity var(--dur-ui-fast) ease }
  
  .pagehead .menu-btn { transition: transform var(--dur-ui-fast) ease }
  .pagehead .menu-btn:hover { transform: translateY(-50%) scale(1.2) }
  .pagehead .hl-tel { transition: transform var(--dur-ui-fast) }
  .pagehead .hl-tel:hover { transform: scale(1.05) }
  
  .mo-quick .q-btns a, .mo-quick .q-btns button, .mo-quick .q-banner a { transition: transform var(--dur-ui-fast) }
  .mo-quick .q-btns a:active, .mo-quick .q-btns button:active, .mo-quick .q-banner a:active { transform: scale(.96) }
  .mo-quick .q-btns a:hover, .mo-quick .q-btns button:hover { transform: scale(1.05) }
  #toTopBtn { transition: transform var(--dur-ui-fast) }
  #toTopBtn:active { transform: scale(.92) }
  
  .mo-form input, .mo-form textarea { transition: background var(--dur-ui),border var(--dur-ui) }
  .mo-form input:focus, .mo-form textarea:focus { background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.7) }
  
  .vd--banner { cursor: grab }
  .vd--banner.is-grip { cursor: grabbing }
  .vd--banner .vd--text, .vd--banner .vd--badge { transition: opacity 0.25s }
  .vd--banner .vd--arrow { animation: pullArrow 1.4s ease-in-out infinite; transition: opacity var(--dur-ui-fast) }
  .vd--banner .is-veiled { opacity: 0%; pointer-events: none }
  .vd--banner .vd--arrow.is-veiled { animation: none }
  
  .vd--banner .vd--video { position: absolute; inset: 0; background: rgb(0 0 0); transform: translateX(100%); transition: transform 0.38s cubic-bezier(0.25,0.46,0.45,0.94); border-radius: 16px; overflow: hidden; z-index: 4 }
  .vd--banner .vd--video.is-unfold { transform: translateX(0) }
  .vd--banner .vd--media { display: block; inline-size: 100%; height: 100%; object-fit: cover }
  .vd--banner .vd--video-ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: rgba(255,255,255,.6); font-size: var(--fs-14) }
  .vd--banner .vd--controls { position: absolute; top: var(--sp-10); right: var(--sp-12); opacity: 0; pointer-events: none; transition: opacity 0.25s 0.2s; z-index: 5 }
  .vd--banner .vd--video.is-unfold .vd--controls { opacity: 100%; pointer-events: auto }
  .vd--banner .vd--close { width: 30px; height: 30px; border-radius: 50%; background: rgba(0,0,0,.45); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px }
  .vd--banner .vd--progress { position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--brand-3); border-radius: 0 2px 2px 0; opacity: 0; transition: opacity .1s; z-index: 6 }
  .vd--banner.is-pulling .vd--progress { opacity: 1 }
}

@keyframes flareIn { 0% { opacity: 0 } 100% { opacity: 1 } }
@keyframes flareDrift { 0% { transform: translate3d(0,0,0) scale(1) } 50% { transform: translate3d(-3.2vw,1.8vw,0) scale(1.06) } 100% { transform: translate3d(0,0,0) scale(1) } }
.hero-flare { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; opacity: 0; animation: flareIn .5s ease forwards; -webkit-mask-image: linear-gradient(to bottom,#000 0%,#000 40%,transparent 56%); mask-image: linear-gradient(to bottom,#000 0%,#000 40%,transparent 56%); z-index: 1 }

.hero-flare .hf-drift { position: absolute; inset: 0; animation: flareDrift 16s ease-in-out infinite }
.hero-flare i { position: absolute; border-radius: 50%; transform: translate(-50%,-50%) }
.hero-flare .hf-sun { left: 72%; top: 38%; width: 24vw; height: 24vw; background: radial-gradient(circle,rgba(255,246,220,.85) 0%,rgba(255,220,160,.32) 32%,rgba(255,220,160,0) 68%) }
.hero-flare .hf-streak { left: 72%; top: 38%; width: 40vw; height: 2px; border-radius: 2px; background: linear-gradient(90deg,rgba(255,240,200,0),rgba(255,244,214,.75),rgba(255,240,200,0)) }
.hero-flare .hf-ring { background: radial-gradient(circle,rgba(255,255,255,.28) 0%,rgba(255,255,255,.10) 55%,rgba(255,255,255,0) 70%) }
.hero-flare .hf-r1 { left: 66%; top: 46%; width: 4.5vw; height: 4.5vw }
.hero-flare .hf-r2 { left: 61%; top: 52%; width: 2vw; height: 2vw }
.hero-flare .hf-r3 { left: 78%; top: 30%; width: 6.5vw; height: 6.5vw }
@media (max-width:990px) {
  
  .hero-flare { -webkit-mask-image: linear-gradient(to bottom,#000 0%,#000 42%,transparent 62%); mask-image: linear-gradient(to bottom,#000 0%,#000 42%,transparent 62%) }
  .hero-flare .hf-sun { left: 74%; top: 26%; width: 74vw; height: 74vw; background: radial-gradient(circle,rgba(255,255,255,.92) 0%,rgba(255,246,214,.42) 26%,rgba(255,232,180,.14) 48%,rgba(255,230,180,0) 70%) }
  .hero-flare .hf-streak { left: 74%; top: 26%; width: 128vw; height: 3px; background: linear-gradient(90deg,rgba(255,240,200,0),rgba(255,252,238,.85) 46%,rgba(255,214,150,.5) 58%,rgba(255,240,200,0)) }
  .hero-flare .hf-r1 { left: 60%; top: 38%; width: 11vw; height: 11vw }
  .hero-flare .hf-r2 { left: 50%; top: 46%; width: 6vw; height: 6vw }
  .hero-flare .hf-r3 { left: 86%; top: 17%; width: 17vw; height: 17vw }
  
  .hero-flare .hf-ghost { position: absolute; border-radius: 50%; transform: translate(-50%,-50%) }
  .hero-flare .hf-g1 { left: 44%; top: 50%; width: 26vw; height: 26vw; background: radial-gradient(circle,rgba(255,168,104,.30) 0%,rgba(255,168,104,.10) 52%,rgba(255,168,104,0) 72%) }
  .hero-flare .hf-g2 { left: 30%; top: 58%; width: 15vw; height: 15vw; background: radial-gradient(circle,rgba(255,132,176,.26) 0%,rgba(255,132,176,.08) 55%,rgba(255,132,176,0) 74%) }
  .hero-flare .hf-g3 { left: 62%; top: 33%; width: 9vw; height: 9vw; background: radial-gradient(circle,rgba(150,220,255,.34) 0%,rgba(150,220,255,.10) 55%,rgba(150,220,255,0) 74%) }
}

@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation: none !important }
  *, *::before, *::after { transition: none !important }
  html, .fp { scroll-behavior: auto !important }
  #introLoading { display: none !important }
  .hero-flare { opacity: 1 !important }
  
  
  .sec-main .main-title, .sec-main .main-wordmark, .loc-image, .loc-text, .comm-tit p, .comm-thumbs, .comm-caption, .plan-side, .plan-main, .visit-card { opacity: 100% !important; transform: none !important }
  .loc-desc { transform: none !important }
  .comm-display { letter-spacing: 5px !important; transform: none !important }
  .loc-lines .line-h { transform: scaleX(1) !important }
  .loc-lines .line-v { height: 100% !important }
  .info-line { transform: scaleX(1) !important }
}
