@font-face { font-family: "Arc Sans"; src: url("/fonts/pretendard/PretendardVariable.core.woff2") format("woff2"); font-style: normal; font-weight: 100 900; font-display: swap; }
:root { --ink:#101010; --panel:#151515; --white:#fff; --primary:#9b7bff; --promo:#ffb04a; --line:#343434; --blue:#1767a7; --sans:"Arc Sans","Noto Sans KR","Apple SD Gothic Neo",Arial,sans-serif; --display:Georgia,"Times New Roman",serif; }
* { box-sizing: border-box; }
html { background: var(--ink); scroll-behavior: smooth; }
body { margin:0; overflow-x:hidden; background:var(--ink); color:white; font-family:var(--sans); -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
button,input,select { color:inherit; font:inherit; }
button { border:0; padding:0; background:none; cursor:pointer; }
a { color:inherit; text-decoration:none; }
img,video { display:block; width:100%; }
h1,h2,h3,p,blockquote { margin:0; }
.skip-link { position:fixed; z-index:1000; top:-70px; left:16px; min-height:44px; padding:12px 18px; background:var(--primary); color:#111; font-weight:850; }
.skip-link:focus { top:12px; }
:focus-visible { outline:3px solid var(--promo); outline-offset:3px; }

.site-header { position:fixed; z-index:50; inset:0 0 auto; height:126px; background:var(--ink); }
.promo { height:44px; display:flex; align-items:center; justify-content:center; background:var(--promo); color:#121212; font-size:18px; font-weight:900; line-height:24px; letter-spacing:2px; text-align:center; }
.nav-row { height:82px; display:grid; grid-template-columns:100px 178px 1fr 82px; border:1px solid var(--primary); }
.brand { height:81px; display:grid; place-items:center; border-right:1px solid var(--primary); }
.brand span,.booking-mark,.hero-brand>span,.footer-mark { display:grid; place-items:center; border:3px solid currentColor; border-radius:50%; font-weight:850; letter-spacing:-.08em; }
.brand span { width:50px; height:50px; font-size:24px; }
.booking-nav { position:relative; border-right:1px solid var(--primary); }
.booking-toggle { width:100%; height:81px; display:flex; align-items:center; justify-content:center; gap:10px; color:var(--primary); font-size:15px; font-weight:850; letter-spacing:2px; }
.booking-toggle i { width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s; }
.booking-toggle[aria-expanded="true"] i { transform:rotate(225deg) translate(-2px,-1px); }
.booking-menu { position:absolute; z-index:4; top:76px; left:24px; width:224px; visibility:hidden; overflow:hidden; border-radius:13px; background:white; color:#111; opacity:0; transform:translateY(-8px); transition:opacity .2s,transform .2s,visibility 0s .2s; }
.booking-menu.is-open { visibility:visible; opacity:1; transform:translateY(0); transition-delay:0s; }
.booking-menu button { width:100%; height:53px; padding:0 20px; display:flex; align-items:center; gap:14px; border-bottom:1px solid #ddd; color:#111; text-align:left; }
.booking-menu button:last-child { border-bottom:0; }
.booking-menu b { width:20px; font-size:21px; font-weight:400; }
.booking-menu span { font-size:13px; font-weight:850; letter-spacing:2px; }
.desktop-links { display:flex; align-items:stretch; padding-left:12px; }
.desktop-links a,.desktop-links button { min-width:90px; height:80px; padding:0 16px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:14px; font-weight:760; letter-spacing:2px; white-space:nowrap; }
.desktop-links a:hover,.desktop-links button:hover { color:var(--primary); }
.menu-toggle { width:81px; height:81px; position:relative; border-left:1px solid var(--primary); }
.menu-toggle span { position:absolute; left:22px; width:36px; height:5px; border-radius:4px; background:white; }
.menu-toggle span:nth-child(1){top:26px}.menu-toggle span:nth-child(2){top:38px}.menu-toggle span:nth-child(3){top:50px}

.main-menu { position:fixed; z-index:80; inset:0; visibility:hidden; background:rgba(0,0,0,.8); opacity:0; transition:opacity .2s,visibility 0s 1s; }
.main-menu.is-open { visibility:visible; opacity:1; transition-delay:0s; }
.menu-panel { position:absolute; inset:0; overflow-y:auto; padding:10px 20px 28px; background:var(--ink); color:white; transform:translateY(-100%); transition:transform 1s ease-in; }
.main-menu.is-open .menu-panel { transform:translateY(0); }
.menu-head { max-width:1320px; height:78px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; border-bottom:2px solid var(--primary); }
.menu-brand { width:90px; height:78px; border-right:0; }
.menu-close { min-height:44px; padding:0 10px; display:flex; align-items:center; gap:18px; font-size:20px; font-weight:750; letter-spacing:2px; }
.menu-close i { font-size:32px; font-style:normal; font-weight:300; }
.menu-grid { max-width:1320px; margin:40px auto 0; display:grid; grid-template-columns:repeat(3,1fr) 340px; gap:20px; }
.menu-column { display:flex; flex-direction:column; gap:28px; }
.menu-column section { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.menu-column h2 { margin-bottom:4px; color:var(--primary); font-size:24px; line-height:36px; letter-spacing:2px; }
.menu-column a,.menu-column button { min-height:36px; display:flex; align-items:center; color:white; font-size:20px; line-height:30px; letter-spacing:2px; text-align:left; }
.menu-visual img { width:100%; height:220px; object-fit:cover; border-bottom:4px solid var(--primary); }
.menu-foot { max-width:1320px; margin:28px auto 0; padding-top:16px; display:flex; align-items:center; gap:20px; border-top:1px solid #555; font-size:14px; letter-spacing:1px; }
.menu-foot button { min-height:44px; }
.menu-foot button:nth-last-child(-n+2) { margin-left:auto; }
.menu-foot button:last-child { margin-left:0; }

.site-main { padding-top:126px; }
.hero { position:relative; height:540px; margin-bottom:80px; overflow:hidden; background:#171526; }
.hero video { width:100%; height:100%; object-fit:cover; object-position:center 50%; }
.hero-shade { position:absolute; inset:0; background:rgba(0,0,0,.2); }
.hero-brand { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; }
.hero-brand>span { width:80px; height:80px; border-width:4px; font-size:38px; }
.hero-brand strong { font-size:38px; font-weight:480; letter-spacing:10px; }

.booking { height:128px; margin-bottom:80px; }
.booking-inner { width:1280px; height:128px; margin:0 auto; display:grid; grid-template-columns:128px 1fr 360px; align-items:center; }
.booking-mark { width:120px; height:120px; border-width:5px; color:white; font-size:54px; }
.booking-copy { padding-left:20px; }
.booking-copy h1 { color:var(--primary); font-family:var(--display); font-size:48px; font-weight:900; line-height:48px; letter-spacing:-2px; }
.booking-copy p { margin-top:18px; font-size:17px; line-height:24px; }
.booking-actions { width:360px; display:flex; flex-direction:column; align-items:flex-end; gap:14px; }
.all-locations { min-height:30px; border-bottom:3px solid var(--primary); font-size:13px; font-weight:900; letter-spacing:2px; }
.location-select { position:relative; width:360px; }
.location-toggle { width:360px; height:46px; padding:0 12px 0 20px; display:flex; align-items:center; justify-content:space-between; border:2px solid white; border-radius:25px; background:var(--primary); color:#111; }
.location-toggle span { font-size:14px; letter-spacing:3px; }
.location-toggle b { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:white; font-size:25px; }
.location-menu { position:absolute; z-index:10; top:51px; left:0; width:100%; visibility:hidden; overflow:hidden; border:1px solid #ddd; border-radius:13px; background:white; color:#111; opacity:0; transform:translateY(-6px); transition:.2s; }
.location-menu.is-open { visibility:visible; opacity:1; transform:none; }
.location-menu button { width:100%; min-height:48px; padding:0 18px; border-bottom:1px solid #ddd; text-align:left; }
.location-menu button:last-child { border-bottom:0; }

.quick-cards { height:488.4px; margin-bottom:80px; }
.cards-grid { width:min(1320px,calc(100% - 40px)); height:488.4px; margin:0 auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(2,229.2px); gap:30px; perspective:1000px; }
.tilt-card { position:relative; width:100%; height:100%; display:grid; place-items:center; border:1px solid var(--line); border-radius:4px; transform-style:preserve-3d; transition:transform .3s ease-out,border-color .2s; }
.tilt-card:hover,.tilt-card:focus-visible { border-color:#514f59; }
.tilt-card span { color:var(--primary); font-family:var(--display); font-size:43.2px; font-weight:900; line-height:57.6px; letter-spacing:1px; text-align:center; transform:translateZ(18px); }

.manifesto { height:450.9px; margin-bottom:80px; }
.manifesto-inner { width:1280px; height:450.9px; margin:0 auto; display:grid; grid-template-columns:536px 744px; align-items:center; }
.manifesto blockquote { color:var(--primary); font-family:"Segoe Script","Brush Script MT",cursive; font-size:60px; font-style:italic; line-height:.92; letter-spacing:-3px; text-align:center; opacity:0; transform:rotate(-9deg) translateY(20px); text-shadow:2px 2px 0 #171717; transition:opacity .6s ease-in-out,transform .6s ease-in-out; }
.manifesto-copy { height:283px; padding-top:40px; display:flex; flex-direction:column; justify-content:flex-start; gap:15px; opacity:0; transform:translateY(20px); transition:opacity .6s ease-in-out,transform .6s ease-in-out; }
.manifesto blockquote.is-visible { opacity:1; transform:rotate(-9deg) translateY(0); }
.manifesto-copy.is-visible { opacity:1; transform:translateY(0); }
.manifesto-copy p:first-child { font-size:18px; line-height:28px; }
.manifesto-copy p:last-child { font-size:16px; line-height:26px; }
.manifesto-copy strong { font-weight:850; }
.copy-extra { display:none; }
.copy-extra-common { display:inline; }
@media(min-width:1280px){ .copy-extra-wide { display:inline; } }
@media(min-width:901px) and (max-width:1279px){ .copy-extra-laptop { display:inline; } }

.image-rail { height:300px; margin-bottom:80px; overflow:hidden; }
.rail-track { width:7880px; height:300px; display:flex; animation:rail-move 50s linear infinite; will-change:transform; }
.image-rail:hover .rail-track,.image-rail:focus-within .rail-track { animation-play-state:paused; }
.rail-sequence { width:3940px; height:300px; display:flex; flex:0 0 3940px; }
.rail-sequence img { height:300px; flex:none; object-fit:cover; object-position:center; }
.rail-sequence .w300 { width:300px; }.rail-sequence .w500 { width:500px; }.rail-sequence .w520 { width:520px; }
@keyframes rail-move { to { transform:translateX(-3940px); } }

.site-footer { height:567.5px; }
.newsletter { height:219.5px; background:var(--primary); color:#111; }
.newsletter-inner { width:1280px; height:100%; margin:0 auto; padding-top:35px; text-align:center; }
.newsletter h2 { color:#111; font-size:16px; line-height:22px; font-weight:900; letter-spacing:1px; }
.newsletter-form { margin-top:28px; display:grid; grid-template-columns:repeat(5,1fr) 126px; gap:20px; }
.newsletter-form input,.newsletter-form select,.newsletter-form button { min-width:0; height:36px; border:0; border-radius:7px; }
.newsletter-form input,.newsletter-form select { padding:0 16px; background:white; color:#333; }
.newsletter-form button { background:var(--blue); color:white; font-size:14px; font-weight:900; letter-spacing:2px; box-shadow:0 4px 12px rgba(0,0,0,.2); }
.newsletter-note { margin:25px auto 0; max-width:1260px; color:#111; font-size:12px; line-height:19.5px; }
.form-status { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.footer-main { height:308px; background:var(--ink); }
.footer-inner { width:1280px; height:100%; margin:0 auto; padding:42px 0; display:grid; grid-template-columns:360px 1fr 240px; }
.footer-about { display:flex; flex-direction:column; align-items:flex-start; }
.footer-mark { width:50px; height:50px; margin-bottom:6px; border-width:3px; font-size:22px; }
.footer-about strong { font-size:18px; line-height:28px; }
.footer-contact>strong { font-size:18px; line-height:24px; }
.footer-about p { width:202px; max-width:100%; min-height:48px; margin-top:10px; font-size:16px; line-height:24px; }
.footer-about>div { margin-top:23px; display:flex; gap:20px; }
.footer-about button { width:44px; height:44px; font-size:20px; }
.footer-inner nav { padding-top:63px; display:grid; grid-template-columns:repeat(3,1fr); }
.footer-inner nav>div { display:flex; flex-direction:column; align-items:flex-start; }
.footer-inner nav button { min-height:44px; font-size:16px; line-height:20px; text-align:left; }
.footer-contact { padding:26px 0 0 56px; display:flex; flex-direction:column; align-items:stretch; gap:18px; border-left:1px solid white; }
.footer-contact button { height:36px; padding:0 22px; display:flex; align-items:center; justify-content:space-between; border-radius:7px; background:white; color:#111; font-weight:800; }
.footer-contact p { font-size:10px; line-height:16px; }
.copyright { height:40px; display:grid; place-items:center; background:white; color:#222; font-size:12px; }
.toast { position:fixed; z-index:120; left:50%; bottom:22px; max-width:calc(100vw - 32px); transform:translateX(-50%); padding:13px 18px; background:var(--promo); color:#111; font-size:13px; font-weight:850; box-shadow:0 12px 45px rgba(0,0,0,.25); }
.toast[hidden] { display:none; }

@media(max-width:1279px){
  .desktop-links { display:none; }
  .nav-row { grid-template-columns:100px 1fr 82px; }
  .booking-nav { border-right:0; }
  .booking-menu { left:50%; transform:translate(-50%,-8px); }
  .booking-menu.is-open { transform:translate(-50%,0); }
  .booking-inner { width:calc(100% - 40px); }
  .cards-grid { width:calc(100% - 40px); grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,195.9px); }
  .quick-cards { height:421.8px; }
  .tilt-card span { font-size:30.72px; line-height:40.96px; }
  .manifesto { height:343.3px; }
  .manifesto-inner { width:calc(100% - 40px); height:343.3px; grid-template-columns:42.44% 57.56%; }
  .manifesto blockquote { font-size:47px; }
  .manifesto-copy { height:337px; }
  .newsletter-inner,.footer-inner { width:calc(100% - 80px); }
  .site-footer { height:587px; }
  .newsletter { height:239px; }
  .newsletter-form { gap:14px; }
  .newsletter-note { font-size:10px; line-height:19.5px; }
  .footer-inner { grid-template-columns:280px 1fr 200px; }
  .footer-inner nav { padding-top:8px; }
  .footer-contact { padding:26px 0 0 30px; }
}

@media(max-width:900px){
  .desktop-links { display:none; }
  .nav-row { grid-template-columns:100px 1fr 82px; }
  .booking-nav { border-right:0; }
  .booking-menu { left:50%; transform:translate(-50%,-8px); }
  .booking-menu.is-open { transform:translate(-50%,0); }
  .hero { height:614.4px; }
  .booking { height:244px; }
  .booking-copy h1 { font-size:36px; line-height:40px; letter-spacing:1px; }
  .booking-inner { height:244px; grid-template-columns:128px 1fr; grid-template-rows:138px 106px; }
  .booking-actions { grid-column:1/3; width:360px; align-items:flex-end; }
  .cards-grid { height:641.9px; grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(3,194px); }
  .quick-cards { height:641.9px; }
  .tilt-card span { font-size:30px; line-height:40px; }
  .manifesto { height:471px; }
  .manifesto-inner { height:471px; grid-template-columns:43.3% 56.7%; }
  .manifesto blockquote { font-size:40px; }
  .manifesto-copy { height:471px; justify-content:flex-start; }
  .copy-extra-tablet { display:inline; }
  .site-footer { height:646.5px; }
  .newsletter { height:258.5px; }
  .newsletter-inner { width:calc(100% - 40px); padding-top:30px; }
  .newsletter-form { grid-template-columns:repeat(3,1fr); gap:10px; margin-top:20px; }
  .newsletter-note { margin-top:15px; font-size:13px; line-height:19.5px; }
  .footer-main { height:348px; }
  .footer-inner { width:calc(100% - 40px); padding:28px 0; grid-template-columns:180px 1fr 150px; }
  .footer-mark { margin-bottom:20px; }
  .footer-inner nav { padding-top:77px; }
  .footer-contact { padding:40px 0 0 18px; }
}

@media(max-width:600px){
  .site-header { height:150px; }
  .promo { height:56px; padding:0 22px; font-size:18px; line-height:24px; letter-spacing:2px; }
  .nav-row { height:94px; grid-template-columns:100px 1fr 82px; }
  .brand { height:93px; }.brand span{width:50px;height:50px;font-size:23px}
  .booking-toggle { height:93px; font-size:13px; }
  .menu-toggle { height:93px; }.menu-toggle span{left:22px;width:36px}.menu-toggle span:nth-child(1){top:32px}.menu-toggle span:nth-child(2){top:44px}.menu-toggle span:nth-child(3){top:56px}
  .site-main { padding-top:150px; }
  .hero { height:219.4px; margin-bottom:40px; }
  .hero video { object-position:center 53%; }
  .hero-brand { gap:8px; }.hero-brand>span{width:54px;height:54px;border-width:3px;font-size:25px}.hero-brand strong{font-size:20px;letter-spacing:6px}
  .booking { height:344px; margin-bottom:40px; }
  .booking-inner { width:350px; height:344px; padding-top:20px; display:block; }
  .booking-mark { width:80px; height:80px; border-width:4px; font-size:36px; }
  .booking-copy { padding:20px 0 0; }
  .booking-copy h1 { font-size:30px; line-height:36px; letter-spacing:1px; }
  .booking-copy p { width:340px; margin-top:16px; font-size:15px; line-height:28px; }
  .booking-actions { width:350px; margin-top:16px; gap:14px; }
  .location-select,.location-toggle { width:350px; }
  .location-toggle { height:46px; }
  .all-locations { order:2; align-self:flex-end; }
  .quick-cards { height:1338px; margin-bottom:40px; }
  .cards-grid { width:350px; height:1338px; grid-template-columns:1fr; grid-template-rows:repeat(6,198px); gap:30px; }
  .tilt-card span { font-size:30px; line-height:42px; }
  .manifesto { height:751.8px; margin-bottom:40px; }
  .manifesto-inner { width:350px; height:751.8px; display:block; }
  .manifesto blockquote { height:200.7px; padding-top:42px; font-size:42px; line-height:.9; text-align:left; transform:rotate(-7deg) translateY(20px); }
  .manifesto blockquote.is-visible { transform:rotate(-7deg) translateY(0); }
  .manifesto-copy { width:350px; height:551px; justify-content:flex-start; }
  .copy-extra-tablet { display:none; }
  .copy-extra-mobile { display:inline; }
  .image-rail { margin-bottom:40px; }
  .site-footer { height:1196.8px; }
  .newsletter { height:536.5px; }
  .newsletter-inner { width:350px; padding-top:31px; }
  .newsletter h2 { font-size:12px; line-height:18px; }
  .newsletter-form { margin-top:26px; display:flex; flex-direction:column; gap:2px; }
  .newsletter-form input,.newsletter-form select { width:350px; height:44px; flex:none; }
  .newsletter-form button { width:350px; height:44px; flex:none; }
  .newsletter-note { margin-top:12px; font-size:13px; line-height:19.5px; }
  .footer-main { height:616.3px; }
  .footer-inner { width:350px; height:100%; padding:32px 0; display:block; }
  .footer-mark { margin-bottom:17px; }
  .footer-about p { width:350px; max-width:none; min-height:48px; margin-top:10px; font-size:16px; line-height:24px; }
  .footer-about>div { margin-top:12px; }
  .footer-about button { width:44px; height:44px; }
  .footer-inner nav { margin-top:43px; padding:0; grid-template-columns:repeat(3,1fr); gap:10px; }
  .footer-inner nav button { min-width:44px; min-height:44px; font-size:16px; line-height:20px; }
  .footer-contact { margin-top:16px; padding:14px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:8px; border-left:0; border-top:1px solid white; }
  .footer-contact button { height:44px; }
  .footer-contact strong,.footer-contact p { grid-column:1/3; }
  .footer-contact p { font-size:9px; }
  .copyright { height:44px; padding:0 20px; font-size:16px; line-height:24px; text-align:center; }
  .menu-panel { padding:10px 20px 28px; }
  .menu-head { height:72px; }
  .menu-brand { width:64px; height:64px; }.menu-brand span{width:50px;height:50px}
  .menu-close { font-size:17px; }
  .menu-grid { margin-top:38px; display:block; }
  .menu-column { gap:24px; }
  .menu-column+.menu-column { margin-top:24px; }
  .menu-column section { gap:5px; }
  .menu-column h2 { font-size:24px; }
  .menu-column a,.menu-column button { min-width:44px; min-height:44px; font-size:19px; line-height:30px; }
  .menu-visual { margin-top:28px; }
  .menu-foot { flex-wrap:wrap; }
  .menu-foot button { min-width:44px; min-height:44px; }
  .menu-foot button:nth-last-child(-n+2) { margin-left:0; }
  .all-locations { min-height:44px; }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.rail-track{animation:none}.tilt-card{transform:none!important}.menu-panel,.booking-menu,.location-menu{transition-duration:.01ms!important}.hero video{display:none}.hero{background:url("assets/hero-bay-01.webp") center/cover no-repeat}.manifesto blockquote,.manifesto-copy{opacity:1;transition:none}.manifesto blockquote{transform:rotate(-9deg)}.manifesto-copy{transform:none}
}
