:root{--paper:#f7f5ef;--ink:#4f554b;--muted:var(--ink);--line:#d7d9cf;--green:#596a55;--soft:#edf0e7;--white:#fffef9;--brown:#81684e;--jp:'Shippori Mincho', 'Yu Mincho',serif;--en:'Baskerville URW','Baskerville', 'Libre Baskerville', Georgia,serif;--sans:Arial,'Hiragino Kaku Gothic ProN',Meiryo,sans-serif;--gutter:clamp(28px,7.3vw,140px);--content:1320px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--jp);font-weight:400;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid #596a55;outline-offset:6px}
/* V1.35: pointer activation of the header logo must not retain a focus box. */
.brand[data-pointer-focus]:focus{outline:none}
img{display:block;width:100%;height:auto}figure,p,h1,h2,h3,h4{margin:0}h1,h2,h3,h4{font-weight:400}p{font-size:15px;line-height:2.25;letter-spacing:.07em}h2{font-size:clamp(32px,3.3vw,50px);line-height:1.75;letter-spacing:.14em}h3{font-size:29px;line-height:1.8;letter-spacing:.1em}p+p{margin-top:1.2em}.section-shell{width:calc(100% - var(--gutter)*2);max-width:var(--content);margin-inline:auto}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--paper);padding:12px}.skip-link:focus{top:10px}.masthead{height:106px;padding:22px 40px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px}.brand{width:156px;aspect-ratio:156/49.875;justify-self:start;overflow:hidden}.brand img{width:100.14%;height:100%;max-width:none;transform:translateX(-.07%)}.masthead__caption{display:grid;grid-template-columns:82px 23px 81px;column-gap:10px;align-items:center;width:206px;transform:translateX(-5px);font:400 10px/12px 'baskerville-urw','Baskerville URW','Libre Baskerville',serif;font-synthesis:none;letter-spacing:1.9px;color:var(--muted);white-space:nowrap}.masthead__caption>span{transform:translateY(.5px);white-space:pre}.masthead__compass{width:23px;height:23px;transform:translateX(1.5px)}.masthead__right{justify-self:end;display:flex;align-items:center}.group-logo{width:149px}
.hero{position:relative;height:calc(100svh - 138px);min-height:620px;max-height:1080px;margin:0 28px;overflow:hidden;color:var(--white);background:#617360}.hero__image{height:100%;object-fit:cover;object-position:57% 50%;filter:saturate(.78) brightness(.89)}.hero__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,44,31,.06) 20%,rgba(13,32,23,.1) 45%,rgba(12,28,20,.58) 100%)}.hero__top{position:absolute;top:38px;left:46px;right:46px;display:flex;justify-content:space-between;font:10px var(--sans);letter-spacing:.22em}.hero__period{font-size:.7em;margin-left:.02em}.scroll-indicator{position:absolute;right:52px;bottom:46px;display:flex;flex-direction:column;align-items:center;gap:24px}.scroll-indicator>span:first-child{writing-mode:vertical-rl;font:10px var(--sans);letter-spacing:.2em}.scroll-indicator__line{height:89px;width:1px;position:relative;background:rgba(255,255,255,.3);overflow:hidden}.scroll-indicator__line:after{content:'';position:absolute;inset:-100% 0 100%;background:#fff;animation:scrollLine 2.4s cubic-bezier(.65,0,.35,1) infinite}@keyframes scrollLine{to{transform:translateY(200%)}}.page-nav{display:flex;justify-content:space-between;align-items:center;margin:0 28px;border-bottom:1px solid var(--line);height:96px;padding:0 5.4%;gap:30px}.page-nav__label{font:10px var(--sans);letter-spacing:.17em;color:var(--muted)}.page-nav__label::after{content:"";display:block;width:32px;height:2px;margin:22px auto 0;background:#8a8c54;pointer-events:none}.page-nav>div{display:flex;gap:34px;align-items:center}.page-nav a{font-size:12px;letter-spacing:.04em;padding:12px 0;font-synthesis:none}.page-nav a:is(:hover,:focus-visible){font-weight:700}.section-kicker{display:flex;align-items:center;gap:24px;font:10px var(--sans);letter-spacing:.18em;color:var(--muted)}.index{font-family:var(--en);font-size:18px;letter-spacing:0;display:inline-flex;align-items:center;gap:18px}.index:after{content:'';width:54px;height:1px;background:var(--line)}.overview{padding-top:133px;padding-bottom:144px}.overview__intro{display:grid;grid-template-columns:1fr 1fr;gap:13%;margin:58px 0 110px}.overview__text{padding-top:9px}.area-atlas{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:8%;padding-top:26px}.english-label{font-family:var(--en);font-size:36px;line-height:1.4;letter-spacing:-.02em}.area-atlas__title>p:nth-child(2){margin:30px 0 35px;font-size:17px}.area-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.area-list li{border-bottom:1px solid var(--line)}.area-list a{display:flex;gap:18px;align-items:center;font-size:13px;line-height:1.8;padding:20px 0}.area-list span{font:11px var(--en);color:var(--muted)}.area-list b{font:18px var(--sans);margin-left:auto}.map-button{padding:26px;position:relative;background:#fff;border:1px solid #e4e6dd;width:100%;transition:box-shadow .3s}.map-button:hover{box-shadow:0 8px 30px #334d4112}.map-button img{object-fit:contain;max-height:530px}.map-button>span{display:flex;justify-content:space-between;align-items:center;margin-top:16px;text-align:left;font:10px var(--sans);letter-spacing:.13em;color:var(--muted)}.map-button b{font:22px var(--sans);color:var(--green)}.resort{background:var(--soft);padding-top:105px}.chapter-heading__row{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-top:42px}.chapter-heading__row>p{font-size:15px;letter-spacing:.08em;padding-bottom:12px}.resort-intro{display:flex;justify-content:space-between;gap:70px;align-items:center;margin-top:40px;padding-bottom:93px}.text-link{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-width:210px;border-bottom:1px solid transparent;padding:15px 0;font-size:12px;letter-spacing:.08em;line-height:1.7}.text-link:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:#929b86;transform:scaleX(1);transform-origin:left;transition:transform .35s cubic-bezier(.22,.61,.36,1);pointer-events:none}.text-link:is(:hover,:focus-visible):after{transform:scaleX(0);transform-origin:right}.text-link span{font:21px var(--sans)}.feature-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ccd1c2;padding-top:38px;margin-bottom:30px;gap:30px}.english-title{font-family:var(--en);font-size:68px;line-height:1.15;letter-spacing:-.04em}.feature-heading>span{font:10px var(--sans);letter-spacing:.15em;color:var(--muted)}.wide-photo{width:100%;overflow:hidden}.wide-photo img{aspect-ratio:3.05;object-fit:cover;filter:saturate(.82)}.feature-copy{display:grid;grid-template-columns:.95fr 1.05fr;gap:12%;margin-top:48px}.feature-copy p{font-size:14px}.pill-link{position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--cta-border,#aeb6a4);border-radius:0;display:inline-flex;align-items:center;gap:38px;justify-content:space-between;min-width:230px;padding:18px 26px;font-size:12px;letter-spacing:.08em;line-height:1.5;transition:color .25s}.pill-link:before{content:"";position:absolute;inset:-1px;z-index:-1;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,.61,.36,1);pointer-events:none}.pill-link span{font:18px var(--sans)}.pill-link:is(:hover,:focus-visible){color:var(--white);border-color:transparent}.pill-link:is(:hover,:focus-visible):before{transform:scaleX(1)}.pill-link:is(:hover,:focus-visible) img{filter:brightness(0) invert(1)}.living .pill-link:focus-visible,.yagasaki .pill-link:focus-visible,.closing .pill-link:focus-visible{outline-color:var(--white)}.feature-copy .pill-link{margin-top:27px}.shopping{padding-bottom:116px}.hotels{padding-bottom:105px}.hotels__intro{margin-top:44px;margin-bottom:55px}.hotel-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:50px}.hotel-grid__small{display:grid;grid-template-columns:1fr 1fr;gap:32px 24px}.hotel-card img{width:100%;aspect-ratio:1.35;object-fit:cover;filter:saturate(.75)}.hotel-card--large img{aspect-ratio:.79;object-position:49% 50%}.hotel-card figcaption{position:relative;display:flex;flex-wrap:wrap;column-gap:12px;align-items:baseline;margin-top:17px}.hotel-card figcaption>span:first-child{font:13px var(--en);color:var(--muted)}.hotel-card h4{font-size:13px;line-height:1.9;letter-spacing:.03em;flex:1}.hotel-card--large h4{font-size:18px}.hotel-card__en{font:10px var(--sans);letter-spacing:.14em;display:block;margin:12px 0 0 26px;flex-basis:100%;color:var(--muted)}.renewal{padding:75px 0 70px;background:#e1e5da}.topic-label{display:flex;align-items:center;gap:25px;font:10px var(--sans);letter-spacing:.18em;color:var(--green)}.topic-label>span+span{font-size:10px;letter-spacing:.1em;color:var(--muted)}.renewal__intro{display:grid;grid-template-columns:.95fr 1.05fr;gap:12%;margin:35px 0 45px}.renewal__intro h3{font-size:36px}.renewal__intro p{font-size:14px}.opening-dates{margin:24px 0 0;font-size:14px;line-height:2.1}.opening-dates div{display:flex;gap:25px}.opening-dates dt{width:75px}.opening-dates dd{margin:0}.renewal__main{display:grid;grid-template-columns:1fr 1fr;gap:26px}.renewal img{aspect-ratio:1.8;object-fit:cover}.renewal figcaption{font-size:11px;letter-spacing:.04em;line-height:1.8;margin-top:12px;text-align:right;color:#676e60}.renewal__details{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:30px}.renewal__footer{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:38px}.renewal__footer>p{font-family:var(--sans);font-size:10px;color:var(--muted);margin-left:auto}.renewal__footer .pill-link{min-width:190px}.golf{padding-top:105px;padding-bottom:110px;background:#e1e5da}.golf .feature-heading{border-top:0;padding-top:0}.course-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);margin:48px 0 75px;border-block:1px solid #cbd1c0;gap:28px}.course-list li{font-size:13px;line-height:1.9;letter-spacing:.03em;padding:60px 0}.course-image-placeholder{width:100%;aspect-ratio:337 / 277;background:#707070;margin-bottom:18px}.course-list li>span{display:block;font:12px var(--en);margin-bottom:13px;color:var(--muted)}.golf-topic{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.golf-topic__copy h4{font-size:28px;line-height:1.8;letter-spacing:.1em;margin:26px 0}.golf-topic__copy>p{font-size:13px}.golf-topic__copy .topic-label{font-size:10px}.golf-topic .text-link{margin-top:20px}.golf-topic figure img{aspect-ratio:1.1;object-fit:cover;object-position:48% 50%;filter:saturate(.8)}.ski{padding-bottom:120px}.ski__image img{aspect-ratio:3.15;object-fit:cover;filter:saturate(.72)}.living,.yagasaki{--muted:var(--white);--line:var(--white);color:var(--white)}.destination-title{font-size:46px;line-height:1;letter-spacing:.08em;margin-left:-9.1328125px}.destination-title>span{display:inline-block}.destination-heading{font-size:clamp(32px,3.3vw,50px);line-height:1.75;letter-spacing:.14em}.destination-cta__icon{width:18px;height:18px;flex-shrink:0}.living button:focus-visible,.yagasaki button:focus-visible{outline-color:var(--white)}.living{background:#886f57;padding-top:110px;padding-bottom:105px}.living .destination-title{margin-top:80px}.living .chapter-heading__row{margin-top:85px}.living__photo{margin-top:55px}.living__photo img{width:100%;aspect-ratio:3.3;object-fit:cover;object-position:center bottom}.living__copy{display:grid;grid-template-columns:.95fr 1.05fr;gap:12%;margin-top:65px}.living__copy .english-label{font-size:51px;color:inherit}.living__copy h3{font-size:26px;margin-bottom:28px}.living__copy p{font-size:14px}.living__copy .pill-link{margin-top:30px;--cta-border:currentColor;min-height:65px}.yagasaki{background:#6c7767;padding-top:120px;padding-bottom:100px}.yagasaki .destination-title{margin-top:70px}.yagasaki__layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:12%;margin:85px 0 55px}.yagasaki__layout>div+div{padding-top:12px}.yagasaki__layout>div+div p{font-size:14px}.yagasaki__layout .text-link{margin-top:28px;border-color:currentColor;min-height:63px}.yagasaki__photo img{aspect-ratio:3.2;object-fit:cover;filter:saturate(.77)}.closing{text-align:center;padding:48px 0 100px;border-top:1px solid var(--line)}.closing__en{font-family:var(--en);font-size:clamp(36px,4.5vw,66px);letter-spacing:-.04em;line-height:1.4}.closing>p+p{font-size:15px;letter-spacing:.16em;margin-top:23px}.closing .pill-link{margin-top:38px}.footer{padding:53px 55px 33px;border-top:1px solid var(--line);position:relative}.footer>div{display:flex;align-items:center;gap:40px}.footer img{width:140px}.footer img+img{width:149px}.footer>p{font:10px var(--sans);letter-spacing:.1em;margin-top:35px}.footer small{display:block;font:10px/1.8 var(--sans);color:#898d83;letter-spacing:.02em;margin-top:12px}.back-top{position:absolute;right:58px;top:55px;font-size:22px;border:1px solid var(--line);width:44px;height:44px;display:grid;place-items:center}dialog{border:0;padding:0;color:var(--ink);background:var(--paper);max-height:90svh}dialog::backdrop{background:#142119bd;backdrop-filter:blur(5px)}.lightbox{width:min(1150px,92vw)}.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:19px 25px;border-bottom:1px solid var(--line);font-size:13px}.close-dialog{font:12px var(--sans);display:flex;align-items:center;gap:20px;padding:8px}.close-dialog span{font-size:22px}.lightbox .map-viewport>img{max-height:77svh;object-fit:contain;padding:25px;background:white}.notice{width:min(520px,90vw);padding:48px}.notice>.close-dialog{margin-left:auto;margin-top:-28px;margin-right:-25px}.notice h2{font-size:23px;margin-top:18px;letter-spacing:.05em}.notice>p:not(.topic-label){font-size:14px;margin-top:20px}.notice>.pill-link{margin-top:25px;margin-right:0;padding:15px 22px}
/* Reveals use short-lived Web Animations; the resting document is always visible. */
.parallax-frame{display:block;overflow:hidden}
.parallax-image{transform-origin:center center}

@media(min-width:1900px){.hero{min-height:800px}.hero__image{object-position:center 53%}.section-shell{max-width:1460px}}
@media(max-width:1100px){:root{--gutter:55px}.masthead{padding-inline:28px;gap:30px}.page-nav{padding-inline:25px}.page-nav__label{display:none}.page-nav>div{width:100%;justify-content:space-between;gap:22px}.overview__intro,.feature-copy,.renewal__intro,.living__copy,.yagasaki__layout{gap:8%}.area-atlas{gap:5%;grid-template-columns:.9fr 1.1fr}.hotel-grid{gap:30px;grid-template-columns:.85fr 1.15fr}.hotel-grid__small{gap:26px 18px}.hotel-card--large img{aspect-ratio:.65}.golf-topic{gap:40px}.renewal__footer{flex-wrap:wrap}.renewal__footer>p{order:3;width:100%;margin:0}.chapter-heading__row{align-items:flex-start;flex-direction:column;gap:25px}.chapter-heading__row>p{padding:0}.resort-intro{gap:35px}.hero{min-height:560px}}
@media(max-width:760px){:root{--gutter:26px}html{scroll-padding-top:25px}.masthead{height:82px;padding:17px 22px;grid-template-columns:1fr 1fr;gap:20px}.masthead__caption{display:none}.brand{width:123px}.group-logo{width:119px}.hero{margin:0 12px;height:calc(100svh - 99px);min-height:540px;max-height:900px}.hero__image{object-position:30% 48%;filter:saturate(.74) brightness(.85)}.hero__shade{background:linear-gradient(180deg,#1732200a 30%,#132c1e88 100%)}.hero__top{top:25px;left:22px;right:22px;font-size:10px;letter-spacing:.14em}.scroll-indicator{right:24px;bottom:23px;gap:14px}.scroll-indicator>span:first-child{writing-mode:horizontal-tb;font-size:10px;max-width:8em;text-align:center}.scroll-indicator__line{height:56px}.page-nav{height:auto;margin:0 18px;padding:19px 6px}.page-nav>div{gap:14px;justify-content:flex-start;flex-wrap:wrap}.page-nav a{font-size:10px;padding:3px 0}.page-nav a:first-child{flex-basis:100%}.page-nav a:after{content:'↓';display:inline-block;margin-left:12px;color:var(--muted);font-weight:400;transition:transform .3s cubic-bezier(.22,.61,.36,1)}.overview{padding-top:74px;padding-bottom:74px}.section-kicker{font-size:10px;gap:18px}.index{font-size:16px;gap:13px}.index:after{width:37px}.overview__intro{grid-template-columns:1fr;gap:28px;margin:35px 0 52px}h2{font-size:30px;line-height:1.85;letter-spacing:.09em}h3{font-size:23px;line-height:1.85}p{font-size:14px;line-height:2.2;letter-spacing:.05em}.overview__text{padding:0}.area-atlas{display:flex;flex-direction:column;gap:33px;padding:0;align-items:stretch}.english-label{font-size:30px}.area-atlas__title>p:nth-child(2){font-size:18px;margin:20px 0 26px}.area-list a{font-size:14px;gap:14px;padding:16px 0}.map-button{padding:16px}.resort{padding-top:66px}.chapter-heading__row{margin-top:30px;gap:22px}.chapter-heading__row>p{font-size:14px}.resort-intro{display:block;margin-top:25px;padding-bottom:52px}.resort-intro>p{font-size:14px}.resort-intro .text-link{margin-top:18px;min-width:210px}.desktop-only{display:none}.feature-heading{padding-top:26px;margin-bottom:24px;gap:15px}.english-title{font-size:48px}.feature-heading>span{font-size:10px;letter-spacing:.08em}.wide-photo img{aspect-ratio:1.7;object-position:center}.feature-copy{grid-template-columns:1fr;gap:24px;margin-top:29px}.feature-copy p{font-size:14px}.pill-link{min-width:210px;padding:16px 21px;font-size:14px}.text-link{font-size:14px}.shopping{padding-bottom:65px}.hotels{padding-bottom:65px}.hotels__intro{margin-top:26px;margin-bottom:32px}.hotel-grid{grid-template-columns:1fr;gap:30px}.hotel-card--large img{aspect-ratio:1.3;object-position:center}.hotel-grid__small{gap:30px 17px}.hotel-card img{aspect-ratio:1.16}.hotel-card--large img{aspect-ratio:1.3}.hotel-card figcaption{column-gap:8px;margin-top:12px}.hotel-card h4{font-size:11px;line-height:1.9}.hotel-card--large h4{font-size:16px}.hotel-card__en{font-size:10px;margin:8px 0 0}.renewal{padding:45px 0}.topic-label{font-size:10px;gap:18px}.topic-label>span+span{font-size:10px}.renewal__intro{grid-template-columns:1fr;gap:25px;margin:25px 0 30px}.renewal__intro h3{font-size:28px}.renewal__intro p{font-size:14px}.opening-dates{margin-top:18px}.opening-dates div{gap:12px}.opening-dates dt{width:63px;flex-shrink:0}.opening-dates dd{word-break:keep-all}.renewal__main{grid-template-columns:1fr;gap:26px}.renewal figcaption{font-size:12px;margin-top:9px}.renewal__details{grid-template-columns:1fr;gap:26px;margin-top:26px}.renewal__footer{flex-direction:column;align-items:flex-start;margin-top:25px;gap:20px}.renewal__footer .text-link{min-width:100%}.renewal__footer .pill-link{margin-top:44px;margin-left:0}.renewal__footer>p{font-size:10px}.golf{padding:65px 0}.course-list{grid-template-columns:1fr 1fr;gap:0 24px;margin:30px 0 40px}.course-list li{font-size:13px;padding:30px 0}.course-list li:nth-child(-n+2){border-bottom:1px solid #cbd1c0}.course-list li>span{font-size:12px;margin-bottom:10px}.golf-topic{display:flex;flex-direction:column-reverse;gap:29px}.golf-topic figure{width:100%}.golf-topic figure img{aspect-ratio:1.4}.golf-topic__copy h4{font-size:25px;margin:19px 0}.golf-topic__copy>p{font-size:14px}.golf-topic .text-link{margin-top:17px}.ski{padding-bottom:66px}.ski__image img{aspect-ratio:1.65;object-position:40%}.destination-title{font-size:30px;line-height:1.8;margin-left:0}.living .destination-title,.yagasaki .destination-title{margin-top:35px}.destination-heading{font-size:30px;line-height:1.85;letter-spacing:.09em}.living{padding-top:65px;padding-bottom:66px}.living .chapter-heading__row{margin-top:25px}.living__photo{margin-top:32px}.living__photo img{aspect-ratio:1.8}.living__copy{grid-template-columns:1fr;gap:30px;margin-top:35px}.living__copy .english-label{font-size:37px;line-height:1.35}.living__copy h3{font-size:23px;margin-bottom:22px}.living__copy p{font-size:14px}.yagasaki{padding-top:65px;padding-bottom:60px}.yagasaki__layout{grid-template-columns:1fr;gap:25px;margin:25px 0 32px}.yagasaki__layout>div+div{padding:0}.yagasaki__layout>div+div p{font-size:14px}.yagasaki__layout .text-link{margin-top:17px}.yagasaki__photo img{aspect-ratio:1.65;object-position:60%}.closing{padding:45px 0 58px}.closing__en{font-size:34px;line-height:1.4}.closing>p+p{font-size:14px;letter-spacing:.1em;margin-top:21px}.closing .pill-link{margin-top:28px}.footer{padding:38px 26px 27px}.footer>div{gap:26px}.footer img{width:112px}.footer img+img{width:112px}.footer>p{font-size:10px;margin-top:28px}.footer small{font-size:10px;line-height:1.9;max-width:270px}.back-top{right:24px;top:auto;bottom:26px;width:30px;height:30px;font-size:16px}.dialog-top{padding:12px 15px;font-size:11px;gap:15px}.close-dialog{font-size:10px;gap:10px;flex-shrink:0}.lightbox .map-viewport>img{padding:10px}.notice{padding:32px}.notice h2{font-size:20px}.notice>p:not(.topic-label){font-size:14px}.notice>.close-dialog{margin-top:-19px;margin-right:-20px}.notice>.pill-link{margin-top:20px;margin-right:0}}
/* Shared interaction motion: external arrows move diagonally, back/up follow their direction. */
.motion-arrow{--arrow-x:3px;--arrow-y:-3px;display:inline-block;transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.motion-arrow--up{--arrow-x:0px;--arrow-y:-3px}
.motion-arrow--back{--arrow-x:-3px;--arrow-y:0px}
@media(prefers-reduced-motion:no-preference){
 a:is(:hover,:focus-visible)>.motion-arrow,button:is(:hover,:focus-visible)>.motion-arrow{transform:translate(var(--arrow-x),var(--arrow-y))}
 .page-nav a:is(:hover,:focus-visible):after{transform:translateY(3px)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-indicator__line:after{animation:none;inset:0}.motion-reveal{opacity:1!important;translate:none!important}.parallax-image{transform:none!important;will-change:auto!important}*,*::before,*::after{transition-duration:0s!important}}
/* V1.4: the user's current Figma FV and area introduction. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.hero{container-type:inline-size}
.hero__image{filter:none;object-position:center 30%}
.hero__shape{position:absolute;width:88.592%;pointer-events:none}
.hero__shape img{height:auto}
.hero__shape--left{left:-38.081%;bottom:-9.45946cqw}
.hero__shape--right{left:61.514%;bottom:-15.2027cqw}
.hero__top{justify-content:flex-end}
.page-nav a{color:var(--muted)}
.section-kicker{column-gap:24px}
.section-kicker__compass{width:23px;height:23px;flex-shrink:0;margin-right:-16px}
/* Center the visible glyphs with the compass and rule, including SP. */
.index{min-height:1.6em}
.index__number{display:block;line-height:1;transform:translateY(.15em)}
.section-kicker>span:last-child{line-height:1;transform:translateY(-.05em)}
.overview{color:var(--muted)}
.overview__intro{grid-template-columns:36.8% minmax(0,1fr);gap:7.787%}
.overview__text{max-width:571px}
.overview .area-atlas{align-items:start;padding-top:0}
.area-atlas__title{padding-top:118.859375px}
.overview .map-button{margin-top:26px;padding:26px 26px 30px}
.overview .map-button>img{height:530px;max-height:none;object-fit:contain}
.overview .map-button>.map-button__caption{height:41px;margin-top:4px;padding:0 2px 3px 8px;font:12px/14px var(--sans);letter-spacing:1.17px;align-items:flex-end}
.map-button__caption>img{width:21px;height:21px;flex-shrink:0;position:relative;top:-3px}
.area-list__arrow{width:18px;height:18px;margin-left:auto;flex-shrink:0}
@media(min-width:1900px){.hero__image{object-position:center 30%}}
@media(max-width:1100px) and (min-width:761px){.hero__eyebrow,.hero__tagline{font-size:18px}.overview__intro{grid-template-columns:36.8% minmax(0,1fr);gap:8%}.area-atlas__title{padding-top:75px}.overview .map-button>img{height:auto;max-height:530px}.overview .map-button{padding:20px 20px 24px}.overview .map-button>.map-button__caption{font-size:10px;padding-left:0}}
@media(max-width:760px){.hero__image{object-position:30% center;filter:none}.hero__shape--left{width:180%;left:-82%;bottom:-16cqw}.hero__shape--right{width:140%;left:54%;bottom:-16cqw}.overview__intro{grid-template-columns:1fr;gap:28px}.overview__text{max-width:none}.section-kicker__compass{margin-right:-10px}.area-atlas__title{padding-top:0}.overview .map-button{margin-top:0;padding:16px}.overview .map-button>img{height:auto;max-height:none}.overview .map-button>.map-button__caption{height:30px;margin-top:9px;padding:0 0 2px;font-size:10px;line-height:12px}.map-button__caption>img{top:0}}


.overview .section-kicker{padding-left:3.734375px}
.overview.section-shell{width:calc(100% - clamp(56px,14.6%,280px))}
.overview .area-list a{height:67px;padding:0}
@media(max-width:1100px) and (min-width:761px){.overview.section-shell{width:calc(100% - 110px)}}
@media(max-width:760px){.overview.section-shell{width:calc(100% - 52px)}.overview .area-list a{height:auto;padding:16px 0}}

/* V1.4: chapter markers and overview alignment. */

@media(max-width:760px){.overview .area-atlas{align-items:stretch}.section-kicker{column-gap:18px}}

/* V1.5: an inset Topics feature within Stay; Golf takes its former background. */
.renewal{padding:56px;background:transparent;border:1px solid #b8c1af;margin-bottom:105px}
.renewal__heading{color:var(--green)}
.renewal__label{font:14px/1.5 var(--sans);letter-spacing:.18em}
.renewal__script{font:400 68px/1.1 'Pinyon Script',cursive;letter-spacing:0;margin:10px 0 0}
.renewal__intro{margin-top:34px}
@media(max-width:1100px) and (min-width:761px){.renewal{padding:38px}.renewal__script{font-size:60px}}
@media(max-width:760px){.renewal{padding:28px 24px;margin-bottom:65px}.renewal__label{font-size:12px}.renewal__script{font-size:clamp(37px,10.6vw,54px);line-height:1.2;margin-top:8px;white-space:nowrap}.renewal__intro{margin-top:28px}.renewal__intro h3{font-size:26px}}
@media(max-width:359px){.renewal{padding-inline:18px}.renewal__intro h3{font-size:23px}.renewal__intro p{font-size:14px}.opening-dates div{gap:7px}.opening-dates dt{width:58px}}
@media(max-width:359px){.renewal__script{font-size:35px}}
@media(max-width:1100px) and (min-width:761px){.renewal__intro h3{font-size:30px}}

/* Resort opening: title, copy and map in one responsive layout. */
.resort-heading{display:block;margin-top:85px;color:var(--muted)}
.resort-heading h2{font-size:46px;line-height:1;letter-spacing:.08em;margin-left:-9.1328125px}
.resort-heading h2>span{display:inline-block}
.resort-opening__row{display:grid;grid-template-columns:minmax(0,1fr) 550px;column-gap:80px;align-items:start;margin-top:42px;padding-bottom:43px}
.resort-heading__intro{padding-top:43px;max-width:none}
.resort-heading__lead{font-size:50px;line-height:1.75;letter-spacing:.14em}
.resort-heading__intro>p+p{font-size:15px;line-height:2.25;letter-spacing:.07em;margin-top:22px}
.resort-map{padding:0;margin:0;width:100%;max-width:none;container-type:inline-size}
.resort-map__button{display:block;padding:0;border:0;background:transparent}
.resort-map__button>img{width:100%;height:auto;max-height:none;object-fit:contain}
.resort-map__button>.resort-map__label{position:absolute;top:8.143%;right:5.63636%;display:block;margin:0;font:400 clamp(10px,2.181818cqw,12px)/normal var(--sans);letter-spacing:.0975em;color:var(--muted);pointer-events:none}
.resort-map__button>.resort-map__plus{position:absolute;right:5.72727%;bottom:8.6177%;display:block;width:21px;height:21px;margin:0;pointer-events:none}
.resort-map__plus img{width:21px;height:21px}

@media(max-width:1200px) and (min-width:1001px){
  .resort-opening__row{grid-template-columns:minmax(0,1fr) minmax(0,46%);column-gap:50px}
  .resort-heading__lead{font-size:40px}
  .resort-heading__intro>p+p{font-size:14px}
  .resort-heading__intro .desktop-only{display:none}
}
@media(max-width:1000px) and (min-width:761px){
  .destination-title{font-size:36px;line-height:1.5;margin-left:0}.living .destination-title,.yagasaki .destination-title{margin-top:60px}.resort-heading{margin-top:60px}
  .resort-heading h2{font-size:36px;margin-left:0;line-height:1.5}
  .resort-opening__row{grid-template-columns:1fr;gap:32px;margin-top:40px;padding-bottom:60px}
  .resort-heading__intro{padding-top:0}
  .resort-heading__lead{font-size:40px}
  .resort-map{max-width:550px;justify-self:end}
}
@media(max-width:760px){
  .resort-heading{margin-top:35px}
  .resort-heading h2{font-size:30px;line-height:1.8;letter-spacing:.08em;margin-left:0}
  .resort-opening__row{grid-template-columns:1fr;gap:30px;margin-top:25px;padding-bottom:48px}
  .resort-heading__intro{padding:0}
  .resort-heading__lead{font-size:26px;line-height:1.8;letter-spacing:.1em}
  .resort-heading__intro>p+p{font-size:14px;line-height:2.2;letter-spacing:.05em;margin-top:20px}
  .resort-map{max-width:none}
}

/* V1.12: full-page reconciliation with Figma 26:50, 2026-11-07. */
.page-nav{height:auto;flex-direction:column;justify-content:flex-start;gap:23.5px;padding:42px 24px}
.page-nav__label{display:block;font-size:14px;line-height:1.6;letter-spacing:1.53px;color:var(--green)}
.page-nav>div{justify-content:center;gap:100px}
.page-nav a{font-size:15px;line-height:1.45;padding:0}
.cta-icon{width:18px;height:18px;flex:none}
.pill-link{min-height:65px}
.resort-opening__row{margin-top:62px;padding-bottom:80px}
.resort-heading__intro{padding-top:23px}
.wide-photo img,.hotel-card img,.golf-topic figure img,.ski__image img,.yagasaki__photo img{filter:none}
.hotel-grid{grid-template-columns:minmax(0,599fr) minmax(0,663fr);gap:50px}
.hotel-card--large img{aspect-ratio:599 / 713;object-position:center bottom}
.hotel-grid__small{align-content:start;row-gap:54px}
.hotel-card:not(.hotel-card--large) img{aspect-ratio:319.203 / 236.438;object-position:center bottom}
.hotels{padding-bottom:100px}
.renewal{margin-bottom:120px}
.renewal__heading{height:94.8px;display:flex;align-items:center;gap:17px;padding-top:20px}
.renewal__label{font-size:24px;line-height:1.2;letter-spacing:4.32px}
.renewal__script{font-size:46px;line-height:74.8px;margin:0}
.renewal__intro{margin-top:45px}
.renewal__footer .pill-link{min-width:230px}
.golf-snow{background:#e1e5da}
.golf{padding-bottom:100px}
.golf-topic figure img{object-position:center bottom}
.ski{padding-bottom:150px}
.living{padding-bottom:105px}
.living__heading{position:relative;min-height:250px}
.living__culture{position:absolute;right:-18px;top:6px;font-family:'Garamond Premier Pro','Baskerville URW',var(--en);font-size:68px;line-height:1.2;letter-spacing:0;text-align:right;color:#dad5b9}
.living__photo{margin-top:0}
.living__copy{grid-template-columns:minmax(0,606fr) 23.936% minmax(0,392fr);column-gap:0;row-gap:48px;margin-top:63px;align-items:stretch}
.living__story{grid-column:1;grid-row:1/3;padding-top:19px}
.living__story h3{margin-bottom:30px}
.living__story p{font-size:14px;line-height:2.25;letter-spacing:.98px}
.living__story p+p{margin-top:31.5px}
.living__story .pill-link{display:flex;width:fit-content;margin-top:34px}
.living__copy .destination-heading{grid-column:3;grid-row:1;align-self:start;font-size:clamp(34px,calc(5vw - 22px),50px);line-height:1.75;letter-spacing:.14em;margin:0;white-space:nowrap}
/* V1.64: the photo row uses the inter-column space, with a 96px text clearance. */
.living__aside{display:contents}
.living__gallery{grid-column:2/4;grid-row:2;align-self:end;margin-left:96px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.living__scene{overflow:hidden;min-width:0}
.living__scene img{width:100%;height:auto;aspect-ratio:1476/966;object-fit:cover}
.living__scene--avenue img{object-position:center 60%}
.yagasaki{padding-bottom:120px}
.yagasaki>.section-shell{position:relative}
.yagasaki__layout{margin-bottom:55px}
.yagasaki__layout .pill-link{margin-top:34px;--cta-border:currentColor}
.season-accent{position:absolute;right:0;top:7px;width:67.012px;height:67.012px}
.season-accent i{position:absolute;display:block}
.season-accent i:nth-child(1){background:#9d4332;left:0;top:0;width:67.012px;height:36.791px}
.season-accent i:nth-child(2){background:#fddcde;left:0;top:18.4px;width:44.675px;height:36.791px}
.season-accent i:nth-child(3){background:#a2a4a5;left:22.34px;top:30.25px;width:44.675px;height:36.791px}
.season-accent i:nth-child(4){background:#067569;left:0;top:42.05px;width:44.675px;height:24.965px}
.closing{width:100%;max-width:none;background:#565a52;color:var(--white);border:0;padding:118px 0 120px}
.closing>p+p{margin-top:5.6px}
.closing .pill-link{margin-top:56px;--cta-border:var(--white)}
.season-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:100.86px}
.season-photos figure{position:relative;aspect-ratio:512 / 196;overflow:hidden}
.season-photos img{max-width:none;position:absolute;object-fit:cover}
.season-photos figure:nth-child(1) img{width:100.977%;height:auto;aspect-ratio:517 / 344;left:0;top:-9.184%}
.season-photos figure:nth-child(2) img{width:104.87%;height:auto;aspect-ratio:1.5;left:-3.02%;top:-25.04%}
.season-photos figure:nth-child(3) img{width:101.142%;height:auto;aspect-ratio:517.845 / 286.304;left:0;top:-22.959%}
.footer{height:130px;padding:27px 0 0;background:#fff;text-align:center}
.footer>div{justify-content:center;gap:0}
.footer>div img{width:140px;height:44.766px}
.footer>p{margin-top:20px;font-size:10px;letter-spacing:.8px}
.back-top{right:4.492%;top:42px;width:44px;height:44px}
.back-top img{width:21px;height:21px}
@media(min-width:1101px){.resort-heading__intro>p+p{white-space:nowrap}.resort-heading h2{letter-spacing:.065em}.overview{min-height:1301px}}
@media(max-width:1100px) and (min-width:761px){
 .page-nav>div{width:auto;gap:50px}.page-nav a{font-size:13px}
 .resort-opening__row{margin-top:40px;padding-bottom:65px}.resort-heading__intro{padding-top:0}
 .living__copy{grid-template-columns:minmax(0,1.1fr) 8% minmax(0,.9fr);row-gap:0}.living__gallery{grid-column:1/-1;grid-row:3;margin:40px 0 0}.living__copy .destination-heading{font-size:34px;letter-spacing:.1em}
 .living__culture{right:0;font-size:56px}.hotel-grid{gap:30px}.hotel-grid__small{row-gap:40px}
 .renewal__label{font-size:20px;letter-spacing:.18em}.renewal__script{font-size:42px}
}
@media(max-width:760px){
 .page-nav{height:auto;padding:25px 6px;gap:12px}.page-nav__label{font-size:14px;letter-spacing:.14em}.page-nav>div{flex-direction:column;align-items:stretch;gap:2px;width:100%}.page-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:18px;text-align:center}.page-nav a:first-child{flex-basis:auto}
 .resort-opening__row{margin-top:25px;padding-bottom:48px}.resort-heading__intro{padding-top:0}
 .hotel-grid{grid-template-columns:1fr;gap:30px}.hotel-grid__small{gap:30px 17px}.hotel-card--large img{aspect-ratio:1.3}.hotel-card:not(.hotel-card--large) img{aspect-ratio:1.16}
 .hotels{padding-bottom:65px}.renewal{margin-bottom:65px}.renewal__heading{height:auto;display:flex;flex-wrap:wrap;gap:0 12px;padding:0;align-items:baseline}.renewal__label{font-size:16px;letter-spacing:.18em}.renewal__script{font-size:34px;line-height:1.4}.renewal__intro{margin-top:28px}.renewal__footer .pill-link{min-width:210px}
 .golf{padding-bottom:65px}.ski{padding-bottom:66px}
 .living{padding-bottom:66px}.living__heading{min-height:0;padding-bottom:32px}.living__culture{position:static;margin:24px 0 0;text-align:left;font-size:clamp(26px,8.2vw,40px);line-height:1.2;white-space:nowrap}.living__culture br{display:none}.living__photo{margin-top:0}.living__copy{display:flex;flex-direction:column;gap:30px;margin-top:35px}.living__heading>.destination-heading{font-size:30px;line-height:1.85;letter-spacing:.09em;white-space:normal;margin:24px 0 0}.living__aside{width:100%;display:block}.living__gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.living__scene--avenue{grid-column:1/-1}.living__scene--avenue img{aspect-ratio:2/1}.living__story{padding-top:0}.living__story p{font-size:14px;letter-spacing:.05em}.living__story p+p{margin-top:1.2em}.living__story h3{margin-bottom:22px}
 .yagasaki{padding-bottom:60px}.yagasaki__layout{margin:25px 0 32px}.yagasaki__layout .pill-link{margin-top:25px}.season-accent{transform:scale(.6);transform-origin:right top;top:-4px}
 .closing{padding:58px 0 58px}.closing__en{font-size:34px}.closing>p+p{font-size:14px;letter-spacing:.1em;margin:21px 20px 0}.closing .pill-link{margin-top:28px}.season-photos{margin-top:58px}.season-photos figure{aspect-ratio:1.25}
 .season-photos figure:nth-child(n) img{width:100%;height:100%;inset:0;object-fit:cover;aspect-ratio:auto}
 .footer{height:140px;padding-top:27px}.footer>div img{width:126px;height:auto}.footer>p{font-size:10px;margin-top:20px}.back-top{right:24px;top:48px;bottom:auto;width:30px;height:30px}
}
/* Approved font mapping: 17 Arial English nodes + the existing Medium nav label. */
:root{--futura:'futura-100','Futura 100',Arial,sans-serif;--arimo:'Arimo',Arial,sans-serif}
.hero__top,.scroll-indicator>span:first-child,.section-kicker,.overview .map-button>.map-button__caption,.resort-map__button>.resort-map__label,.feature-heading>span,.hotel-card--large .hotel-card__en,.renewal__label,.golf-topic .topic-label,.footer>p{font-family:var(--futura);font-weight:400;font-synthesis:none}
.page-nav__label{font-family:var(--futura);font-weight:500;font-synthesis:none}
.hotel-grid__small .hotel-card__en{font-family:var(--futura);font-weight:400;font-synthesis:none}
.hero__top,.scroll-indicator>span:first-child,.page-nav__label,.section-kicker,.feature-heading>span,.hotel-card--large .hotel-card__en,.footer>p{line-height:1.6}
.overview .map-button>.map-button__caption,.resort-map__button>.resort-map__label{line-height:1.6}

.golf-topic .topic-label{height:10px;line-height:1.6}
.renewal__label{line-height:1.6}
.living__story>p{max-width:590px}
@media(min-width:761px){.overview{padding-bottom:143px}.shopping{padding-bottom:101px}.hotels{padding-bottom:96px}.ski{padding-bottom:120px;position:relative;left:6.875px}.living{padding-bottom:120px}.living__story h3{line-height:47px}}
@media(max-width:760px){.golf-topic .topic-label{height:auto}.living__story>p{max-width:none}}
@media(min-width:1101px){.living{min-height:1442px}.shopping{padding-bottom:100px}.resort .chapter-heading .section-kicker{height:22px}.overview .section-kicker{height:22px}}

/* Figma 26:349: the date shares the TOPICS style; minimum text size is 10px. */
.golf-topic .topic-label>span+span{font-size:inherit;letter-spacing:.18em;color:inherit}

/* V1.13: licensed Adobe Fonts web project fjn1ppq. */
.living__culture{font-family:'garamond-premier-pro-display','Garamond Premier Pro',serif;font-weight:300;font-style:normal;font-synthesis:none}

:root{--en:'baskerville-urw','Baskerville URW','Libre Baskerville',Georgia,serif}
.english-title,.english-label,.index,.hotel-card__num,.course-list li>span,.closing__en{font-synthesis:none}

/* V1.35: reversible map/plan modal motion; native close follows the fade. */
#image-dialog.has-image-motion[open]{--dialog-entry-scale:.985;opacity:0;transform:translateY(12px) scale(var(--dialog-entry-scale,1))}
#image-dialog.has-image-motion.is-visible[open]{opacity:1;transform:none}
#image-dialog.has-image-motion[open]::backdrop{opacity:0}
#image-dialog.has-image-motion.is-visible[open]::backdrop{opacity:1}
@media(prefers-reduced-motion:no-preference){
 #image-dialog.has-image-motion[open]{transition:opacity 360ms cubic-bezier(.4,0,.6,1),transform 360ms cubic-bezier(.4,0,.6,1)}
 #image-dialog.has-image-motion.is-visible[open]{transition-duration:560ms;transition-timing-function:cubic-bezier(.22,.61,.36,1)}
 #image-dialog.has-image-motion[open]::backdrop{transition:opacity 360ms ease-in-out}
 #image-dialog.has-image-motion.is-visible[open]::backdrop{transition-duration:420ms;transition-timing-function:ease-out}
}
@media(max-width:760px),(hover:none) and (pointer:coarse){#image-dialog.has-image-motion[open]{--dialog-entry-scale:1}}

/* V1.46: desktop map viewport. Touch sizing and gestures below remain separate. */
.lightbox[open]{display:flex;flex-direction:column;height:min(90svh,980px);max-height:calc(100svh - 64px);max-height:calc(100dvh - 64px);overflow:hidden}
.lightbox .dialog-top{flex:none}.lightbox .close-dialog{min-height:44px;min-width:44px}
 .map-viewport{display:block;position:relative;flex:1 1 auto;min-height:0;height:min(70svh,800px);overflow:hidden;background:#fff;touch-action:pinch-zoom;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
 .map-viewport:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
 .lightbox .map-viewport>img{position:absolute;max-width:none;max-height:none;padding:0;transform-origin:center center;object-fit:contain;user-select:none;-webkit-user-drag:none;touch-action:none}
 .map-viewport[aria-busy="true"]>img{visibility:hidden}.map-viewport.is-zoomed{cursor:grab}.map-viewport.is-dragging{cursor:grabbing}
 .map-zoom-controls{display:flex;flex:none;align-items:center;justify-content:center;gap:8px;padding:12px 20px 0;border-top:1px solid var(--line)}
 .map-zoom-controls button{min-width:44px;min-height:44px;border:1px solid #aeb6a4;padding:8px 10px;font:14px/1.4 var(--sans);color:var(--green);touch-action:manipulation}
 .map-zoom-controls button:disabled{opacity:.4;cursor:default}.map-zoom-controls output{min-width:48px;text-align:center;font:12px/1.4 var(--sans);letter-spacing:0}
 .map-zoom-hint{display:block;flex:none;margin:0;padding:8px 20px 14px;font:11px/1.5 var(--sans);letter-spacing:0;text-align:center}
@media(min-width:761px) and (hover:hover){.map-zoom-controls button:not(:disabled):hover{background:#e7eadd}}
/* V1.23 touch behavior and dimensions are retained. */
@media(max-width:760px),(hover:none) and (pointer:coarse){
 .map-page-locked{position:fixed;top:var(--map-scroll-top);left:0;width:100%}
 .lightbox[open]{height:fit-content;display:flex;flex-direction:column;max-height:calc(100svh - 32px);max-height:calc(100dvh - 32px);overflow:hidden}
 .lightbox .dialog-top{flex:none}.lightbox .close-dialog{min-height:44px;min-width:44px}
 .map-viewport{display:block;position:relative;flex:1 1 auto;min-height:0;height:min(60svh,520px);overflow:hidden;background:#fff;touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
 .map-viewport:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
 .lightbox .map-viewport>img{position:absolute;max-width:none;max-height:none;padding:0;transform-origin:center center;object-fit:contain;user-select:none;-webkit-user-drag:none;touch-action:none}
 .map-viewport[aria-busy="true"]>img{visibility:hidden}.map-viewport.is-zoomed{cursor:grab}.map-viewport.is-dragging{cursor:grabbing}
 .map-zoom-controls{display:flex;flex:none;align-items:center;justify-content:center;gap:8px;padding:10px 12px 0;border-top:1px solid var(--line)}
 .map-zoom-controls button{min-width:44px;min-height:44px;border:1px solid #aeb6a4;padding:8px 10px;font:14px/1.4 var(--sans);color:var(--green);touch-action:manipulation}
 .map-zoom-controls button:disabled{opacity:.4;cursor:default}.map-zoom-controls output{min-width:48px;text-align:center;font:12px/1.4 var(--sans);letter-spacing:0}
 .map-zoom-hint{display:block;flex:none;margin:0;padding:8px 12px 12px;font:11px/1.5 var(--sans);letter-spacing:0;text-align:center}
}

/* V1.23: mobile CTA labels retain 14px even on dialog close buttons. */
@media(max-width:760px){.notice>.pill-link{font-size:14px;min-width:0;max-width:100%}.closing .pill-link{max-width:calc(100% - 52px);gap:20px;padding-inline:18px}}

/* V1.24: mobile area names lead the following editorial headings. */
@media(max-width:760px){.resort-heading h2,.destination-title{font-size:34px;line-height:1.6}}
@media(max-width:374px){.resort-heading h2{font-size:31px;letter-spacing:.01em}}

@media(max-width:760px){.scroll-indicator{right:12px}}
@media(prefers-reduced-motion:reduce){.hero__image{translate:none!important;scale:none!important}}

/* Course labels and their names form one compact reading unit. */
.course-list li>span{margin-bottom:6px}
@media(max-width:760px){.course-list li>span{margin-bottom:4px}}
/* A focused control must not internally scroll the clipped FV image. */
.hero{overflow:clip}
/* Match the four smaller Stay cards on mobile only. */
@media(max-width:760px){.course-list{column-gap:17px}.course-image-placeholder{aspect-ratio:1.16}}

/* Keep the existing TOP control available after the FV, above all page sections. */
.back-top--floating{position:fixed;top:auto;right:max(28px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));width:44px;height:44px;z-index:20;background:var(--paper);border-color:var(--ink);touch-action:manipulation}
.back-top--floating[hidden]{display:none}
body.modal-open .back-top--floating{visibility:hidden;pointer-events:none}
@media(max-width:760px){.back-top--floating{right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom))}}

/* Page links use a left-to-right underline instead of an arrow. */
.page-nav a{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:12px;min-height:48px;width:max-content;max-width:100%;padding:7px 0 5px;align-self:center}
.page-nav a:after{content:none}
.page-nav__flow-line{display:block;position:relative;width:100%;height:1px;flex:none;overflow:hidden;background:currentColor;pointer-events:none}
.page-nav.has-flow-motion .page-nav__flow-line{background:var(--line)}
.page-nav.has-flow-motion .page-nav__flow-line:after{content:"";position:absolute;inset:0;background:var(--ink);transform:translateX(-100%);animation:navLineFlow 2.8s cubic-bezier(.65,0,.35,1) infinite;animation-play-state:paused}
.page-nav.is-flow-running .page-nav__flow-line:after{animation-play-state:running}
@keyframes navLineFlow{to{transform:translateX(100%)}}
@media(max-width:760px){.page-nav>div{gap:14px}}
@media(prefers-reduced-motion:reduce){.page-nav.has-flow-motion .page-nav__flow-line{background:currentColor}.page-nav.has-flow-motion .page-nav__flow-line:after{animation:none;transform:none}}
.page-nav{padding-top:60px;padding-bottom:55px}
.page-nav.has-flow-motion a:nth-child(2) .page-nav__flow-line:after{animation-delay:.35s}
.page-nav.has-flow-motion a:nth-child(3) .page-nav__flow-line:after{animation-delay:.7s}

/* Touch must not retain an upward hover offset after activating TOP. */
.back-top>.motion-arrow,.back-top:is(:hover,:focus-visible)>.motion-arrow{display:block;transform:none;margin:0}
@media(min-width:761px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.back-top:is(:hover,:focus-visible)>.motion-arrow{transform:translateY(-2px)}}

/* Enlarge only the two Japanese FV lines on mobile by 5px. */



/* V1.25: separate standard-transform layers for broad Safari compatibility. */
.hero__media{position:absolute;inset:0;width:100%;height:100%}.hero__image{transform-origin:center center}
/* V1.31: compositor-friendly photo zoom, independent of JS animation timelines. */
.hero__image.has-hero-zoom{animation:heroPhotoZoom 24s linear infinite alternate}
@keyframes heroPhotoZoom{from{transform:translateZ(0) scale(1)}to{transform:translateZ(0) scale(1.24)}}
@media(prefers-reduced-motion:reduce){.hero__media{transform:none!important;will-change:auto!important}.hero__image.has-hero-zoom{animation:none!important;transform:none!important;will-change:auto!important}}

/* Keep the place name intact when the larger mobile link wraps. */
.page-nav__name-part{white-space:nowrap}

/* V1.27: Japanese descriptive body copy is 16px on every viewport. */
.overview__text p,
.resort-heading__intro>p:not(.resort-heading__lead),
.feature-copy p,
.renewal__intro p,
.golf-topic__copy>p:not(.topic-label),
.living__story p,
.yagasaki__layout>div+div p,
.notice>p:not(.topic-label){font-size:16px}
/* Larger body copy can wrap naturally beside the resort map. */
.resort-heading__intro>p+p{white-space:normal}


/* V1.29: approved Medium 500 reading copy, CTA labels and image captions on PC/SP.
   Display headings, hero copy, English labels and sans-serif utilities retain their styles. */
.overview__text p,
.resort-heading__intro>p:not(.resort-heading__lead),
.feature-copy p,
.renewal__intro p,
.golf-topic__copy>p:not(.topic-label),
.living__story p,
.yagasaki__layout>div+div p,
.notice>p:not(.topic-label),
.page-nav a,
.area-list a,
.pill-link:not(.close-dialog),
.text-link,
.hotel-card h4,
.renewal figcaption,
.opening-dates,
.course-list li,
#image-caption,
.skip-link{font-weight:500;font-synthesis:none}

/* V1.31: slightly taller mobile frames for the four requested Topics photos. */
@media(max-width:760px){#renewal .renewal__main>figure img,#renewal .renewal__details>figure:nth-child(-n+2) img{aspect-ratio:8/5;object-fit:cover;object-position:center}}

/* V1.47: keep area CTA text and arrows 16px inside both ends, at rest and on hover.
   Preserve full-width rules, hit area, and the V1.46 left-to-right color wipe. */
.area-list a{position:relative;isolation:isolate;overflow:hidden;transition:color .25s}
.overview .area-list a{padding-inline:16px}
.area-list a:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.22,.61,.36,1);pointer-events:none}
.area-list a:focus-visible{color:var(--white)}
.area-list a:focus-visible:before{transform:scaleX(1)}
.area-list a:focus-visible>span,.area-list a:focus-visible>.flow-arrow{color:var(--white)}
@media(hover:hover) and (pointer:fine){
 .area-list a:hover{color:var(--white)}
 .area-list a:hover:before{transform:scaleX(1)}
 .area-list a:hover>span,.area-list a:hover>.flow-arrow{color:var(--white)}
}

/* V1.46: all CTA arrows are still at rest on PC and SP.
   Retain the existing shaft/head motion only during desktop interaction;
   the parent SVG's existing directional hover translation is unchanged. */
.flow-arrow{width:18px;height:18px;flex-shrink:0;overflow:visible;color:#333a32;pointer-events:none}
.flow-arrow--light{color:#fffef9}
.flow-arrow>path{fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:butt;stroke-linejoin:miter;vector-effect:non-scaling-stroke}
.flow-arrow__track{display:none}
.pill-link:is(:hover,:focus-visible)>.flow-arrow{color:#fff}
.flow-arrow__shaft,.flow-arrow__head{transform-box:view-box;transform-origin:3px 15px;stroke-dasharray:none;stroke-dashoffset:0;animation:none;transform:none}
@media(min-width:761px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 @supports (vector-effect:non-scaling-stroke) and (transform-box:view-box){
  :is(a,button):is(:hover,:focus-visible)>.flow-arrow>.flow-arrow__shaft{animation:diagonalShaftGrow 2.4s cubic-bezier(.22,.61,.36,1) infinite}
  :is(a,button):is(:hover,:focus-visible)>.flow-arrow>.flow-arrow__head{animation:diagonalHeadTravel 2.4s cubic-bezier(.22,.61,.36,1) infinite}
 }
}
@keyframes diagonalShaftGrow{
 0%,12%,100%{transform:scale(.65)}
 60%,76%{transform:scale(1)}
}
@keyframes diagonalHeadTravel{
 0%,12%,100%{transform:translate(-4.2px,4.2px)}
 60%,76%{transform:translate(0,0)}
}
@media(prefers-reduced-motion:reduce){.flow-arrow__shaft,.flow-arrow__head{animation:none;transform:none;opacity:1}}

/* V1.38: visibility-gated two-second four-line typography (2000ms, 240ms stagger); default and finished content is unclipped. */
.hero-type-line__inner{display:block}
@media(prefers-reduced-motion:no-preference){
.has-hero-type-intro .hero-type-line{animation:heroTypeMask 2000ms linear var(--hero-type-delay,0ms) backwards}
.has-hero-type-intro .hero-type-line__inner{animation:heroTypeLift 2000ms cubic-bezier(.22,.61,.36,1) var(--hero-type-delay,0ms) backwards}
.has-hero-type-intro.hero-type-waiting .hero-type-line,.has-hero-type-intro.hero-type-waiting .hero-type-line__inner{animation-play-state:paused}
.has-hero-type-intro .hero__eyebrow{--hero-type-delay:100ms}.has-hero-type-intro .hero__explore{--hero-type-delay:340ms}.has-hero-type-intro .hero__wordmark{--hero-type-delay:580ms}.has-hero-type-intro .hero__tagline{--hero-type-delay:820ms}}
@keyframes heroTypeMask{from,to{-webkit-clip-path:inset(-8px -12px -8px -12px);clip-path:inset(-8px -12px -8px -12px)}}
@keyframes heroTypeLift{from{transform:translate3d(0,calc(100% + 10px),0)}to{transform:translate3d(0,0,0)}}
@media(prefers-reduced-motion:reduce){.hero-type-line{animation:none!important;-webkit-clip-path:none!important;clip-path:none!important}.hero-type-line__inner{animation:none!important;transform:none!important}}

/* V1.32: independent photo zoom/parallax planes, preserving original frames. */
.photo-parallax-layer,.photo-zoom-frame{display:block}.photo-zoom-frame{overflow:hidden}
.photo-zoom-image.has-photo-zoom{animation:heroPhotoZoom 24s linear infinite alternate;transform-origin:center center}
@media(prefers-reduced-motion:reduce){.photo-parallax-layer,.photo-zoom-image{animation:none!important;transform:none!important;will-change:auto!important}}
/* Keep this long Shopping name on one line on wide desktop layouts. */
@media(min-width:1101px){.shopping .feature-copy{grid-template-columns:max-content minmax(0,1fr)}.shopping .feature-copy>h3{white-space:nowrap}.shopping .feature-copy>h3>br{display:none}}
/* V1.32: desktop Explore links match the requested 18px; SP stays at 18px. */
@media(min-width:761px){.page-nav a{font-size:18px}}
/* Confine the footer's temporary reveal offset without growing page height. */
.footer{overflow:clip}

/* V1.39: SP hotel photos float directly on a dim backdrop, without a window. */
.mobile-photo-trigger{display:none}
@media(max-width:760px){
 .mobile-photo-frame{position:relative}
 .mobile-photo-trigger{display:block;position:absolute;inset:0;z-index:1;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;touch-action:manipulation}
 .mobile-photo-trigger:focus-visible{outline:2px solid var(--green);outline-offset:3px}
}
.photo-page-locked{position:fixed;top:var(--map-scroll-top);left:0;width:100%}
.photo-viewer{position:fixed;inset:0;margin:0;box-sizing:border-box;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;padding:64px max(16px,env(safe-area-inset-right)) 64px max(16px,env(safe-area-inset-left));border:0;background:transparent;overflow:hidden;overscroll-behavior:contain;touch-action:pinch-zoom;color:#fff}
.photo-viewer[open]{display:grid;place-items:center}
.photo-viewer::backdrop{background:rgba(15,19,16,.88);backdrop-filter:none}
.photo-viewer__image{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 128px);max-height:calc(100dvh - 128px);object-fit:contain;user-select:none;-webkit-user-drag:none}
.photo-viewer__close{position:absolute;z-index:1;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;background:transparent;color:#fff;font:300 34px/1 Arial,sans-serif;cursor:pointer;touch-action:manipulation}
.photo-viewer__close:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.photo-viewer__status{position:absolute;bottom:18px;left:20px;right:20px;text-align:center;font:14px/1.6 var(--sans);color:#fff}
.photo-viewer__status:empty{display:none}
.photo-viewer.has-photo-motion[open],.photo-viewer.has-photo-motion[open]::backdrop{opacity:0}
.photo-viewer.has-photo-motion.is-visible[open],.photo-viewer.has-photo-motion.is-visible[open]::backdrop{opacity:1}
.photo-viewer.has-photo-motion .photo-viewer__image{transform:translateY(8px) scale(.985)}
.photo-viewer.has-photo-motion.is-visible .photo-viewer__image{transform:none}
@media(prefers-reduced-motion:no-preference){
 .photo-viewer.has-photo-motion[open],.photo-viewer.has-photo-motion[open]::backdrop{transition:opacity 320ms ease-in-out}
 .photo-viewer.has-photo-motion.is-visible[open],.photo-viewer.has-photo-motion.is-visible[open]::backdrop{transition-duration:520ms;transition-timing-function:cubic-bezier(.22,.61,.36,1)}
 .photo-viewer.has-photo-motion .photo-viewer__image{transition:transform 320ms ease-in-out}
 .photo-viewer.has-photo-motion.is-visible .photo-viewer__image{transition-duration:520ms;transition-timing-function:cubic-bezier(.22,.61,.36,1)}
 /* Let VILLA plans linger gently on dismissal, with the backdrop fading in sync. */
 .photo-viewer.has-photo-motion.is-villa-photo.is-closing[open],
 .photo-viewer.has-photo-motion.is-villa-photo.is-closing[open]::backdrop{transition-duration:950ms;transition-timing-function:cubic-bezier(.33,0,.2,1)}
 .photo-viewer.has-photo-motion.is-villa-photo.is-closing .photo-viewer__image{transition-duration:950ms;transition-timing-function:cubic-bezier(.33,0,.2,1)}
}

/* V1.48: desktop reading sizes. Mobile typography remains unchanged.
   The area lead is display copy; retain its Regular weight while increasing size. */
@media(min-width:761px){
 .area-atlas__title>p:nth-child(2){font-size:20px}
 .area-list a,
 .hotel-card figcaption>span:first-child,
 .hotel-card:not(.hotel-card--large) h4,
 .course-list li,
 .dialog-top{font-size:14px}
}

/* V1.48: deepen Type Black from #60655C to #4F554B on PC and SP.
   Keep the green-gray hue; all existing --ink/--muted references inherit it.
   White text, photographs, section backgrounds and other palette colors stay unchanged. */


/* V1.49: official villa wordmark sits between the Topics label and editorial copy.
   Keep its original color and aspect ratio independent of photographic crops. */
.renewal__brand{margin-top:40px}
.renewal .renewal__logo{width:320px;max-width:100%;height:auto;aspect-ratio:177.9136 / 43.9853;object-fit:contain}
.renewal__brand+.renewal__intro{margin-top:44px}
@media(max-width:760px){
 .renewal__brand{margin-top:32px}
 .renewal .renewal__logo{width:240px}
 .renewal__brand+.renewal__intro{margin-top:32px}
}


/* V1.50: match the requested CTA, Topics caption and mobile reading sizes.
   Page-navigation links, utility controls, number labels and weights stay unchanged. */
.pill-link,.text-link,.area-list a{font-size:14px}
.renewal figcaption{font-size:12px}
@media(max-width:760px){
 .course-list li{font-size:14px}
 .area-atlas__title>p:nth-child(2){font-size:20px}
}

/* V1.50 follow-up: only the four smaller hotel names change on mobile. */
@media(max-width:760px){.hotel-grid__small .hotel-card h4{font-size:12px}}


/* V1.51: a small filled compass anchors the moving scroll line.
   The complete track keeps its former dimensions and lower edge. The moving
   stroke ends at the star's center; the star stays still, including reduced motion. */
.scroll-indicator__track{position:relative;display:block;width:12px;height:89px;flex:none}
.scroll-indicator__track>.scroll-indicator__line{display:block;height:calc(100% - 6px);margin-inline:auto}
.scroll-indicator__star{position:absolute;left:0;bottom:0;width:12px;height:12px;max-width:none;pointer-events:none}
@media(max-width:760px){.scroll-indicator__track{height:56px}}


/* V1.54: a quieter color wipe for area and boxed CTAs.
   Preserve colors, geometry, arrow motion and the existing reduced-motion override. */
.pill-link,.area-list a{transition:color .4s cubic-bezier(.4,0,.2,1)}
.pill-link:before,.area-list a:before{transition:transform .65s cubic-bezier(.4,0,.2,1)}


/* V1.55: group the Topics title with the reading copy, beside the villa logo. */
.renewal__intro{margin-top:40px;align-items:start}
.renewal__intro>.renewal__brand{margin-top:0}
.renewal__copy{min-width:0}
.renewal__copy>h3{margin-bottom:24px}
@media(max-width:760px){
 .renewal__intro{margin-top:32px;row-gap:32px}
 .renewal__copy>h3{margin-bottom:25px}
}

/* V1.56: center only the Topics illustration note within the content width. */
#renewal .renewal__footer>p{text-align:center;margin-inline:0}
@media(min-width:1101px){
 #renewal .renewal__footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
 #renewal .renewal__footer>.text-link{justify-self:start}
 #renewal .renewal__footer>.pill-link{justify-self:end}
}

/* V1.57: distinguish only the three area/facility names from display headings. */
#resort-title,#sengataki-title,#yagasaki-title{font-weight:500;font-synthesis:none}
@media(min-width:761px){#resort-title,#sengataki-title,#yagasaki-title{font-size:50px}}

/* V1.58: name the two existing AREA MAP open affordances without moving the plus. */
.map-button__open,.resort-map__button>.resort-map__plus{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;width:auto;height:21px;white-space:nowrap;font:400 10px/1.6 var(--futura);font-synthesis:none;letter-spacing:.0975em;color:var(--muted)}
.map-button__open{position:relative;top:-3px}
.map-button__open>img{width:21px;height:21px;flex-shrink:0}
@media(max-width:760px){.map-button__open{top:0}}

/* V1.59: equalize the apparent space above and below the villa logo on mobile. */
@media(max-width:760px){.renewal__intro{margin-top:40px;row-gap:32px}}

/* V1.60: apply the user's updated Figma logo geometry only to the main PC design.
   Keep the undecided comparison layouts and approved mobile spacing unchanged. */
@media(min-width:761px){
 body:not([data-topics-layout]) .renewal__intro>.renewal__brand{padding-top:27.203125px;transform:translateX(-.1328125px)}
 body:not([data-topics-layout]) .renewal .renewal__logo{width:457px}
}

/* V1.42: enable the five VILLA PRINCE plan triggers at every width. */
.plan-photo-frame{position:relative}
.plan-photo-frame>.mobile-photo-trigger{display:block;position:absolute;inset:0;z-index:1;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;touch-action:manipulation}
.plan-photo-frame>.mobile-photo-trigger:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.photo-viewer__image{cursor:zoom-out}

/* Subtle grain is painted only on A color backgrounds, beneath photos and text. */
body,.resort,.golf-snow,.golf,.living,.yagasaki,.closing,.footer{background-image:url('assets/background-grain.png');background-size:128px 128px;background-repeat:repeat}

/* Supplied Karuizawa 72 Golf photo: retain the existing course frame/crop. */
.course-photo{position:relative;overflow:hidden}
.course-photo>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}

/* MV 1112: retouched aerial photo, keep the ridge in the PC crop. */
.hero__media{display:block}
.hero__image{object-position:center top}
@media(max-width:760px){.hero__image{object-position:center center}}
.hero__image{transform-origin:center top}

/* Area map 1112 v2: updated outlined artwork, larger within a transparent frame. */
.overview .map-button{background:transparent;padding:16px 16px 24px}
.overview .map-button>.area-map-vector{display:block;width:100%;height:auto;max-height:none}
@media(max-width:760px){.overview .map-button{padding:10px 10px 18px}}
#image-dialog.is-transparent-map .map-viewport,#image-dialog.is-transparent-map #expanded-image{background:transparent}
