@font-face{font-family:Zen;src:url('assets/ZenKakuGothicAntique-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Zen;src:url('assets/ZenKakuGothicAntique-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--max-pc-scale:1.3;--u:min(calc(100vw / 1536),calc(var(--max-pc-scale) * 1px));--ink:#453d32;--green:#47ab59;--deep:#157b55;--jp:'fot-tsukuaoldmin-pr6n',serif;--serif:'ivypresto-display',Georgia,serif;--en:'Josefin Sans',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--ink);background:#fff;font-family:Zen,sans-serif;font-size:calc(16 * var(--u));font-weight:400}main{overflow:clip}p,h1,h2,h3,figure,ol,dl,dd{margin:0}h1,h2,h3{font-weight:400}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}button:focus-visible,a:focus-visible{outline:2px solid #238650;outline-offset:6px}img{display:block}button img{pointer-events:none}.skip{position:fixed;left:16px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:16px}section,aside,nav{position:relative}button:hover .oval,a:hover .oval{background:#47ab5920}button:hover .open-map{background:#47ab5915}
.hero{height:100svh;width:100%;color:#fff;isolation:isolate;overflow-anchor:none}.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{pointer-events:none;background:linear-gradient(to bottom,rgba(8,29,13,0) 24%,rgba(8,29,13,.08) 40%,rgba(8,29,13,.18) 58%,rgba(8,29,13,.20) 80%,rgba(8,29,13,.24) 100%)}.brand{position:absolute;left:4.0365%;top:4.7917%;width:160px;height:51.095px;z-index:3}.brand-art{position:relative;display:block;width:160px;height:51.095px}.brand-art img{position:absolute}.brand-1{left:0;top:23.19px}.brand-2{left:131.728px;top:23.059px}.brand-3{left:99.744px;top:23.19px}.brand-4{left:66.464px;top:23.693px}.brand-5{left:4.048px;top:0}
.hero-composition{--h:min(calc(100vw / 1536),calc(100svh / 960),calc(var(--max-pc-scale) * 1px));position:absolute;width:calc(1536 * var(--h));height:calc(960 * var(--h));left:50%;top:50%;transform:translate(-50%,-50%)}.hero-type{font-family:var(--serif);font-weight:400}.hero-type>span{position:absolute;white-space:nowrap}.type-three{left:calc(427 * var(--h));top:calc(188 * var(--h));font-size:calc(300 * var(--h));line-height:.72;letter-spacing:-.075em}.type-places{left:calc(568.25 * var(--h));top:calc(330.5 * var(--h));font-size:calc(95 * var(--h));line-height:.85;letter-spacing:-.03em}.type-one{left:calc(588.25 * var(--h));top:calc(366.75 * var(--h));font-size:calc(167.5 * var(--h));line-height:1.34;letter-spacing:-.03em}.type-karuizawa{left:calc(479.5 * var(--h));top:calc(553 * var(--h));font-size:calc(95 * var(--h));line-height:1;letter-spacing:calc(20 * var(--h))}.hero-type>.type-jp{font-family:var(--jp);font-size:calc(64 * var(--h));line-height:1;left:50%;top:calc(685 * var(--h));transform:translateX(-50%);letter-spacing:-.06em}.hero-location{position:absolute;left:calc(957 * var(--h));top:calc(372 * var(--h));font:400 calc(11 * var(--h))/2.15 Montserrat,sans-serif;letter-spacing:.15em}
.ink-motion{background-image:radial-gradient(ellipse at 20% 30%,#c7ff54 0%,transparent 35%),radial-gradient(ellipse at 80% 70%,#02bf7a 0%,transparent 38%),radial-gradient(ellipse at 55% 10%,#78e53e 0%,transparent 32%),linear-gradient(111deg,#fff 20%,#eaffd9 43%,#fff 71%);background-size:130% 160%,150% 140%,170% 130%,100% 100%;color:transparent;background-clip:text;-webkit-background-clip:text;animation:color-drift 14s ease-in-out infinite alternate}.type-places,.type-karuizawa{background-image:radial-gradient(ellipse at 30% 60%,#8ceb53 0%,transparent 26%),radial-gradient(ellipse at 75% 20%,#bef3af 0%,transparent 30%),linear-gradient(#fff,#fff);background-size:150% 150%,170% 160%,100% 100%}.type-karuizawa{animation-delay:-5s}@keyframes color-drift{from{background-position:0% 0%,100% 0%,0% 100%,0 0}to{background-position:100% 100%,0% 100%,100% 0%,0 0}}
.ribbons{display:flex;position:absolute;gap:0;align-items:flex-start;font-family:var(--jp);font-weight:300;font-size:calc(46 * var(--u));line-height:1;z-index:2}.ribbon{display:block;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;padding:calc(20 * var(--u)) calc(19.5 * var(--u));background:var(--green);color:#fff;font-feature-settings:'vert' 1,'vrt2' 1}.ribbon-back{background:var(--deep);margin-top:calc(100 * var(--u))}.hero-ribbons{right:calc(105 * var(--u));top:61.6667%;font-size:calc(46 * var(--u))}.hero-ribbons .ribbon{padding-bottom:calc(20 * var(--u))}.scroll-cue{position:absolute;left:50%;right:auto;top:auto;bottom:32px;transform:translateX(-50%);writing-mode:horizontal-tb;flex-direction:column;font:400 10px/1.6 var(--en);letter-spacing:.1em;display:flex;align-items:center;gap:14px}.scroll-cue i{display:block;width:1px;height:89px;background:#fff;transform-origin:top;animation:scroll-line 2.6s ease-in-out infinite}@keyframes scroll-line{0%,100%{transform:scaleY(.25);opacity:.4}60%{transform:scaleY(1);opacity:1}}
.explore{height:calc(290 * var(--u));padding-top:calc(60 * var(--u));text-align:center}.explore>p{font:700 calc(14 * var(--u))/2.15 var(--en);letter-spacing:.14em}.explore-links{display:flex;align-items:center;justify-content:center;gap:calc(110 * var(--u));margin-top:calc(60 * var(--u))}.explore-links>a,.explore-links>button{display:flex;align-items:center;gap:calc(20 * var(--u));font-family:var(--jp);font-size:calc(20 * var(--u));line-height:1;letter-spacing:-.06em}.explore-link-label{transition:color 650ms ease-in-out}.explore-links>a:is(:hover,:focus-visible)>.explore-link-label{color:#93918d}.oval{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:23.442px;height:18px;border:1px solid currentColor;border-radius:999px;transition:background .2s}.oval.down{transform:rotate(90deg)}.rule{display:block;height:1px;overflow:hidden}.rule img{max-width:none;transform-origin:0 0}.rule-explore{position:absolute;left:11.0026%;top:calc(290 * var(--u));width:77.7344%}
.about{height:calc(609 * var(--u))}.about-ribbons{left:17.4479%;top:calc(85 * var(--u))}.about-ribbons .ribbon-front{background:#389f4b}.about-copy{position:absolute;left:35.2214%;top:calc(149 * var(--u));width:36.5885%;line-height:2.15}.about-copy h2{font:300 calc(42 * var(--u))/1 var(--en);letter-spacing:.14em;margin-bottom:calc(60 * var(--u))}.about-copy p+p{margin-top:calc(30 * var(--u))}
.atlas{height:calc(608 * var(--u));display:grid;grid-template-columns:42.0573% 41.862%;gap:3.8411%}.atlas-panel{height:100%;background:#51493e;color:#fff9ed;padding:calc(93 * var(--u)) calc(80 * var(--u)) calc(60 * var(--u)) calc(124 * var(--u))}.atlas-panel h2{font:400 calc(48 * var(--u))/1.12 var(--serif);white-space:nowrap}.atlas-subtitle{font:400 calc(25 * var(--u))/1.46 var(--jp);margin-top:calc(27 * var(--u))}.atlas-panel ol{list-style:none;padding:0;margin-top:calc(35 * var(--u));display:grid;gap:calc(35 * var(--u))}.atlas-panel li a,.atlas-panel li button{display:flex;align-items:center;gap:calc(30 * var(--u));width:100%;text-align:left;white-space:nowrap;font-size:calc(18 * var(--u));line-height:1}.atlas-panel li a>span:first-child,.atlas-panel li button>span:first-child{font:100 calc(42 * var(--u))/.85 var(--serif);letter-spacing:-.03em}.atlas-link-label{transition:color 650ms ease-in-out}.atlas-panel li a:is(:hover,:focus-visible)>.atlas-link-label{color:#b7ada0}.atlas-panel .oval{margin-left:auto}.area-map{height:100%;position:relative;text-align:center;padding-top:calc(28 * var(--u))}.area-map figcaption{font:500 calc(24 * var(--u))/1 var(--en);letter-spacing:.14em}.area-map .map-image{display:block;margin:calc(25 * var(--u)) auto 0;width:81.369%;}.map-image img{width:100%;height:auto}.open-map{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid var(--ink);border-radius:999px;min-width:114px;height:43px;font:500 13px/1 var(--en);transition:background .2s}.open-map:is(:hover,:focus-visible),.plan-button:is(:hover,:focus-visible){background:#73cb83}.area-map .open-map{margin-top:calc(30 * var(--u))}
.resort{height:calc(1132 * var(--u))}.resort-ribbons{left:73.3073%;top:0}.resort-map{position:absolute;left:23.8932%;top:calc(519 * var(--u));width:46.2215%;text-align:center}.resort-map .map-image{position:relative;width:100%}.resort-map .map-image>span{position:absolute;left:69%;top:6.31%;font:500 calc(24 * var(--u))/1 var(--en);letter-spacing:.14em}.resort-map .open-map{margin-top:calc(31 * var(--u))}
.experience-heading{display:flex;align-items:center;justify-content:space-between;width:78.90625%;margin-left:10.9375%;height:calc(97 * var(--u))}.experience-heading h2{font:100 calc(95 * var(--u))/.85 var(--serif);letter-spacing:-.03em;text-transform:uppercase;padding:calc(8 * var(--u))}.experience-heading>p{font:300 calc(14 * var(--u))/1 var(--en);letter-spacing:.14em}.shopping{height:calc(1276 * var(--u))}.shopping-photo{position:absolute;left:0;top:calc(173 * var(--u));width:75.78125%;height:calc(465.6 * var(--u));object-fit:cover}.shopping-ribbons{left:69.33594%;top:calc(280 * var(--u))}
.stay{height:calc(1356 * var(--u))}.stay-feature{position:absolute;left:38.28125%;top:calc(166 * var(--u));width:61.71875%}.stay-feature>div{height:calc(466 * var(--u));overflow:hidden;position:relative}.stay-feature>div>img{position:absolute;left:0;top:calc(-156 * var(--u));width:calc(1164 * var(--u));height:calc(953 * var(--u));object-fit:cover}.stay-feature figcaption{padding-top:calc(27 * var(--u));width:29.1%;margin-left:35.44%;white-space:nowrap}.stay figcaption span{display:block;font:300 calc(18 * var(--u))/1 var(--jp)}.stay figcaption small{display:block;font:300 calc(12 * var(--u))/1.6 var(--en);letter-spacing:.05em;margin-top:calc(20 * var(--u))}.stay figcaption{text-align:center}.stay-ribbons{left:29.4922%;top:calc(345 * var(--u))}.hotel-grid{position:absolute;left:0;top:calc(857 * var(--u));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:calc(16 * var(--u));width:100%}.hotel-grid figure>div{height:calc(247.576 * var(--u));overflow:hidden;position:relative}.hotel-grid img{position:absolute;width:100%;height:calc(305.877 * var(--u));object-fit:cover;top:calc(-29.13 * var(--u))}.hotel-grid figure:last-child img{width:107.19%;height:calc(327.94 * var(--u));left:-1.38%;top:calc(-80.53 * var(--u))}.hotel-grid figcaption{margin-top:calc(29 * var(--u))}.hotel-grid figcaption small{margin-top:calc(15 * var(--u))}
.renewal{margin:0 7.8125%;height:calc(1409 * var(--u));background:#e9f3eb;padding:calc(91 * var(--u)) calc(103 * var(--u));}.renewal-heading{display:flex;justify-content:space-between;align-items:center;position:relative}.renewal-heading>p{font:300 calc(20 * var(--u))/1 var(--en);letter-spacing:.12em}.renewal-heading strong{font-weight:700}.renewal-heading>span:not(.rule){font:400 calc(24 * var(--u))/1 var(--serif);letter-spacing:.06em}.renewal-heading .rule{position:absolute;left:0;top:calc(60 * var(--u));width:100%}.renewal-intro{position:absolute;left:7.9475%;top:calc(230 * var(--u));display:grid;grid-template-columns:36.02% 52.53%;gap:11.45%;width:82.253%;align-items:center}.villa-logo img{transform-origin:0 50%;max-width:none}.renewal-intro h2{font:300 calc(34 * var(--u))/1 var(--jp);white-space:nowrap;margin-bottom:calc(40 * var(--u))}.renewal-intro p{line-height:2.15}.renewal-intro dl{margin-top:calc(30 * var(--u));display:grid;gap:calc(13 * var(--u));width:68.23%}.renewal-intro dl>div{border:1px solid #93918d;display:flex;align-items:center;gap:calc(25 * var(--u));height:calc(47 * var(--u));padding:0 calc(34 * var(--u));white-space:nowrap}.renewal-intro dt{font-weight:700}.renewal-gallery{position:absolute;left:7.9475%;width:84.105%;display:grid;gap:calc(25 * var(--u))}.gallery-main{grid-template-columns:repeat(2,minmax(0,1fr));top:calc(589 * var(--u))}.gallery-detail{grid-template-columns:repeat(3,minmax(0,1fr));top:calc(943.63 * var(--u))}.renewal-gallery img{width:100%;aspect-ratio:1.8;object-fit:cover}.renewal-gallery figcaption{font-size:calc(14 * var(--u));line-height:2.15;margin-top:calc(8 * var(--u))}.renewal-actions{position:absolute;top:calc(1254 * var(--u));left:0;width:100%;display:flex;align-items:center;justify-content:center;gap:calc(80 * var(--u))}.plan-button{border:1px solid var(--ink);border-radius:999px;padding:11px 30px;display:flex;align-items:center;gap:10px;font-size:14px;line-height:21px}.release-link{display:flex;align-items:center;gap:20px;font-size:14px;line-height:1;white-space:nowrap}.release-link>span{display:flex;align-items:center;justify-content:center;border:1px solid var(--ink);border-radius:999px;width:56px;height:43px;transition:background .2s}.release-link:hover>span{background:#47ab5920}.renewal-note{position:absolute;right:3.7037%;bottom:calc(35 * var(--u));font-size:calc(10 * var(--u));line-height:2.15}
.golf{height:calc(1149 * var(--u));padding-top:calc(168 * var(--u))}.golf-copy{position:absolute;left:11.78385%;top:calc(325 * var(--u));width:20.9635%;line-height:2.15}.golf-grid{position:absolute;left:40.039%;top:calc(331 * var(--u));width:49.8047%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:calc(23 * var(--u));row-gap:calc(60 * var(--u))}.coming-photo{display:grid;place-items:center;background:#838484;color:#fff;height:calc(247 * var(--u));font-size:calc(11 * var(--u));letter-spacing:.1em;line-height:1}.golf-grid figcaption{margin-top:calc(25 * var(--u))}.golf-grid small{display:block;font:400 calc(14 * var(--u))/1 var(--serif);letter-spacing:.08em;color:#93918d;margin-bottom:calc(15 * var(--u))}.golf-grid figcaption>span{font:400 calc(18 * var(--u))/1 var(--jp);white-space:nowrap}.golf-ribbons{left:20.7682%;top:calc(710 * var(--u))}
.golf-renewal{height:calc(1178 * var(--u))}.golf-renewal-panel{position:absolute;left:7.8125%;top:0;width:84.375%;height:calc(1010 * var(--u));border:1px solid #93918d;background:#fafafa}.golf-renewal-label{position:absolute;right:13.02%;top:calc(97 * var(--u));font:400 calc(20 * var(--u))/1 var(--serif);color:#93918d}.golf-renewal-photo{position:absolute;left:0;top:calc(204 * var(--u));width:55.7292%;height:calc(686 * var(--u));overflow:hidden}.golf-renewal-photo img{position:absolute;left:calc(-138 * var(--u));width:calc(1147 * var(--u));height:100%;object-fit:cover}.golf-renewal-copy{position:absolute;left:60.9375%;top:calc(312 * var(--u));width:26.0417%}.golf-renewal-copy h2{font:300 calc(42 * var(--u))/1.7 var(--jp);white-space:nowrap;margin-bottom:calc(40 * var(--u))}.golf-renewal-copy p{line-height:2.15}.golf-renewal-copy .release-link{margin:calc(40 * var(--u)) 0 0 auto}
.snow{height:calc(760 * var(--u))}.snow-copy{position:absolute;left:11.45833%;top:calc(157 * var(--u));width:39.84375%;line-height:2.15}.snow-photo{position:absolute;left:0;top:calc(294 * var(--u));width:75.78125%;height:calc(465.6 * var(--u));object-fit:cover}.snow-ribbons{left:73.1771%;top:calc(127 * var(--u))}
.map-dialog{padding:0;border:0;max-width:94vw;width:1250px;max-height:92svh;background:#fff;color:var(--ink);box-shadow:0 20px 80px #0003}.map-dialog::backdrop{background:#183626a8;backdrop-filter:blur(4px)}.dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;border-bottom:1px solid #dedbd5}.dialog-bar h2{font:400 16px/1.5 var(--en),Zen,sans-serif;letter-spacing:.05em}.dialog-bar>div{display:flex;align-items:center;gap:12px}.dialog-bar button{border:1px solid #93918d;border-radius:50%;width:36px;height:36px;font-size:22px}.zoom-value{font:400 13px/1 var(--en);min-width:42px;text-align:center}.map-scroll{overflow:auto;max-height:78svh;padding:30px;overscroll-behavior:contain}.dialog-map{width:100%;height:auto;max-width:none;margin:auto}body:has(dialog[open]){overflow:hidden}
@media(min-width:768px){.brand-art{transform:scale(min(calc(100vw / 1536px),var(--max-pc-scale)))}.rule-explore img{transform:scaleX(min(calc(100vw / 1536px),var(--max-pc-scale)))}.renewal-heading .rule img{transform:scaleX(min(calc(100vw / 1536px),var(--max-pc-scale)))}.villa-logo img{transform:scale(min(calc(100vw / 1536px),var(--max-pc-scale)))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ink-motion,.scroll-cue i{animation:none}}
@media(max-width:767px){
 :root{--u:1px}body{font-size:14px}.hero{min-height:620px}.brand{left:24px;top:24px;width:140px;height:45px}.brand-art{transform:scale(.875);transform-origin:0 0}.hero-photo{object-position:57% 50%}.hero-composition{--h:calc(100vw / 1050);top:42%;}.hero-type>.type-jp{font-size:calc(70 * var(--h));top:calc(710 * var(--h))}.hero-ribbons{right:35px;top:auto;bottom:-36px;font-size:25px}.ribbon{padding:14px 12px}.ribbon-back{margin-top:55px}.hero-ribbons .ribbon{padding-bottom:14px}.scroll-cue{right:auto;top:auto;bottom:24px;font-size:8px;gap:12px}.scroll-cue i{height:58px}
 .explore{height:auto;padding:110px 24px 52px}.explore>p{font-size:12px}.explore-links{display:grid;gap:25px;margin-top:35px;text-align:left;justify-content:stretch}.explore-links>a,.explore-links>button{font-size:17px;gap:16px;justify-content:space-between}.rule-explore{position:static;margin-top:50px;width:100%}.rule-explore img{transform:scaleX(.35)}
 .ribbons{font-size:29px}.about{height:auto;padding:0 24px 90px}.about-ribbons{position:relative;left:auto;top:auto;width:max-content;margin:0 0 55px 25px}.about-copy{position:static;width:auto;line-height:2.15}.about-copy h2{font-size:25px;letter-spacing:.1em;margin-bottom:30px}.about-copy p+p{margin-top:24px}.atlas{height:auto;display:block}.atlas-panel{padding:48px 25px 52px}.atlas-panel h2{font-size:38px}.atlas-subtitle{font-size:23px;margin-top:24px}.atlas-panel ol{gap:28px;margin-top:34px}.atlas-panel li a,.atlas-panel li button{font-size:14px;gap:20px}.atlas-panel li a>span:first-child,.atlas-panel li button>span:first-child{font-size:34px}.atlas-panel .oval{width:23px}.area-map{padding:40px 20px 60px}.area-map figcaption{font-size:20px}.area-map .map-image{width:100%;max-width:520px;margin-top:30px}.area-map .open-map{margin-top:24px}
 .resort{height:auto;padding:40px 24px 90px}.resort-ribbons{position:relative;left:auto;top:auto;width:max-content;margin:0 5px 50px auto}.resort-map{position:static;width:100%}.resort-map .map-image>span{font-size:12px;left:70%;}.resort-map .open-map{margin-top:25px}.experience-heading{width:auto;margin:0 24px;height:auto;min-height:65px;gap:15px}.experience-heading h2{font-size:51px;padding:0;line-height:1}.experience-heading>p{font-size:9px;letter-spacing:.07em;text-align:right}.shopping{height:auto;padding-bottom:100px}.shopping-photo{position:static;margin-top:35px;width:91%;height:240px;object-position:center}.shopping-ribbons{position:relative;left:auto;top:auto;width:max-content;margin:-70px 25px 0 auto}
 .stay{height:auto;padding-bottom:85px}.stay-feature{position:relative;left:auto;top:auto;width:89%;margin:35px 0 0 auto}.stay-feature>div{height:240px}.stay-feature>div>img{width:100%;height:100%;inset:0;object-fit:cover}.stay-feature figcaption{padding:20px 0 0;width:100%;margin:0;white-space:normal}.stay figcaption span{font-size:18px}.stay figcaption small{font-size:10px;margin-top:12px}.stay-ribbons{position:relative;left:auto;top:auto;width:max-content;margin:35px 0 50px 24px}.hotel-grid{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 14px;padding:0 18px}.hotel-grid figure>div{height:145px}.hotel-grid img{width:100%;height:100%;inset:0;object-fit:cover}.hotel-grid figure:last-child img{width:100%;height:100%;inset:0;object-fit:cover}.hotel-grid figcaption{margin-top:18px}.hotel-grid figcaption span{font-size:18px;line-height:1.6;min-height:42px}.hotel-grid figcaption small{font-size:8px;line-height:1.5;margin-top:8px}
 .renewal{height:auto;margin:0 16px;padding:38px 20px 28px}.renewal-heading{gap:15px;align-items:start;flex-wrap:wrap;padding-bottom:25px;border-bottom:1px solid #93918d}.renewal-heading>p{font-size:12px;letter-spacing:.06em}.renewal-heading>span:not(.rule){font-size:16px}.renewal-heading .rule{display:none}.renewal-intro{position:static;width:auto;display:flex;flex-direction:column;align-items:stretch;gap:36px;margin-top:38px}.villa-logo{height:70px;position:relative;display:flex;justify-content:center}.villa-logo img{transform:scale(.67);transform-origin:50% 0;height:95px;width:384px;position:absolute;top:0}.renewal-intro h2{font-size:23px;line-height:1.5;white-space:normal;margin-bottom:24px}.renewal-intro dl{margin-top:25px;width:100%;gap:12px;font-size:12px}.renewal-intro dl>div{height:auto;min-height:44px;padding:8px 12px;gap:18px;white-space:normal}.renewal-intro dt{flex-shrink:0}.renewal-gallery{position:static;width:auto;gap:25px 15px;margin-top:38px}.gallery-main{grid-template-columns:1fr}.gallery-detail{grid-template-columns:1fr}.renewal-gallery figcaption{font-size:12px;margin-top:8px}.renewal-actions{position:static;width:auto;flex-wrap:wrap;gap:24px;margin-top:38px}.plan-button{font-size:13px;padding:10px 20px}.release-link{font-size:13px;gap:15px}.renewal-note{position:static;font-size:9px;text-align:right;margin-top:28px}
 .golf{height:auto;padding:85px 0 55px}.golf-copy{position:static;width:auto;margin:35px 24px}.golf-grid{position:static;width:auto;margin:0 24px;gap:30px 16px}.coming-photo{height:auto;aspect-ratio:1.5;font-size:8px;letter-spacing:.03em}.golf-grid figcaption{margin-top:16px}.golf-grid small{font-size:12px;margin-bottom:10px}.golf-grid figcaption>span{font-size:14px;line-height:1.6;white-space:normal}.golf-ribbons{position:relative;left:auto;top:auto;width:max-content;margin:45px 0 -100px 35px;z-index:3}
 .golf-renewal{height:auto;padding:110px 24px 55px;margin:0 16px;background:#fafafa;border:1px solid #93918d}.golf-renewal-panel{display:none}.golf-renewal-label{position:static;font-size:15px;text-align:right;line-height:1.5;margin-bottom:35px}.golf-renewal-photo{position:relative;left:-41px;top:auto;width:calc(100% + 41px);height:320px}.golf-renewal-photo img{inset:0;width:100%;height:100%;object-fit:cover}.golf-renewal-copy{position:static;width:auto;padding-top:35px}.golf-renewal-copy h2{font-size:28px;line-height:1.6;margin-bottom:28px}.golf-renewal-copy .release-link{margin-top:30px}
 .snow{height:auto;padding-top:85px;padding-bottom:35px}.snow-copy{position:static;width:auto;margin:35px 24px 40px}.snow-photo{position:static;width:92%;height:240px}.snow-ribbons{position:relative;left:auto;top:auto;width:max-content;margin:-75px 22px 0 auto}
 .map-dialog{max-width:96vw}.dialog-bar{padding:12px;align-items:start;gap:10px}.dialog-bar h2{font-size:12px;max-width:45%;line-height:1.6}.dialog-bar>div{gap:6px}.dialog-bar button{width:30px;height:30px;font-size:19px}.zoom-value{min-width:30px;font-size:11px}.map-scroll{padding:18px;max-height:75svh}
}

/* A案と同じ89pxの流れる線。B案ではコンパススターを付けない。 */
.scroll-cue i{position:relative;overflow:hidden;animation:none;transform:none;background:rgba(255,255,255,.3)}
.scroll-cue i::after{content:'';position:absolute;inset:0;background:#fff;transform:translateY(-100%);animation:indicator-flow 2.4s cubic-bezier(.65,0,.35,1) infinite}
@keyframes indicator-flow{to{transform:translateY(100%)}}
@media(prefers-reduced-motion:reduce){.scroll-cue i::after{animation:none;transform:none}.motion-reveal{opacity:1!important;translate:none!important}}

/* R指定の日本語もユーザー指定どおり筑紫Aオールド明朝 L に統一。 */
.type-jp,.explore-links>a,.explore-links>button,.atlas-subtitle,.golf-grid figcaption>span{font-weight:300;font-synthesis:none}
.hero-ribbons{--u:min(calc(100vw / 1536),calc(100svh / 960),calc(var(--max-pc-scale) * 1px))}
@media(max-width:767px){.hero-ribbons{--u:1px}}

/* 既存B案の forest-light と同じ、14秒のフリーグラデーション。 */
.ink-motion{background-size:230% 230%;-webkit-text-fill-color:transparent;animation:forest-light 14s ease-in-out infinite alternate}
.type-three{background-image:radial-gradient(ellipse at 20% 30%,#c7ff54 0%,transparent 35%),radial-gradient(ellipse at 80% 70%,#02bf7a 0%,transparent 38%),radial-gradient(ellipse at 55% 10%,#78e53e 0%,transparent 32%),linear-gradient(120deg,#fff 15%,#eaffd9 42%,#fff 75%)}
.type-places,.type-one,.type-karuizawa{background-image:radial-gradient(ellipse at 30% 60%,#8ceb53 0%,transparent 26%),radial-gradient(ellipse at 75% 20%,#bef3af 0%,transparent 30%),linear-gradient(115deg,#fff 15%,#fff 80%);animation-delay:-5s}
@keyframes forest-light{0%{background-position:0% 30%}45%{background-position:100% 70%}100%{background-position:25% 100%}}
@media(prefers-reduced-motion:reduce){.ink-motion{animation:none;background-position:40% 50%}}

/* Give the gradient paint box room for IvyPresto's overhanging glyphs.
   Negative margins preserve the approved text positions and line spacing. */
.hero-type .ink-motion{padding:.3em .15em;margin:-.3em -.15em}

/* Figma button geometry at 1536px, scaled with the rest of the PC layout.
   The original SVG viewport dimensions are preserved. */
.oval img,.open-map img,.plan-button img,.release-link>span img{transform:scale(var(--art-scale,1));transform-origin:center}
@media(min-width:768px){
 .oval{width:calc(23.442 * var(--u));height:calc(18 * var(--u));border-width:calc(1 * var(--u))}
 .open-map{min-width:calc(114 * var(--u));height:calc(43 * var(--u));gap:calc(18 * var(--u));font-size:calc(13 * var(--u));border-width:calc(1 * var(--u))}
 .plan-button{height:calc(43 * var(--u));padding:0 calc(30 * var(--u));gap:calc(10 * var(--u));font-size:calc(14 * var(--u));line-height:calc(21 * var(--u));border-width:calc(1 * var(--u))}
 .release-link{gap:calc(20 * var(--u));font-size:calc(14 * var(--u))}
 .release-link>span{width:calc(56 * var(--u));height:calc(43 * var(--u));border-width:calc(1 * var(--u));flex-shrink:0}
 .open-map img,.plan-button img{margin-inline:calc((16.3334 * var(--u) - 16.3334px) / 2)}
}

/* Updated FV: Figma 238:264 group logo and 195:251 bottom-left location. */
.hero-group-logo{position:absolute;right:3.5639974%;top:4.375%;width:calc(152.257 * var(--u));height:calc(41 * var(--u));z-index:3}
.hero-group-logo>img{transform:scale(var(--art-scale,1));transform-origin:top left}
.hero-location{left:2.9947917%;right:auto;top:auto;bottom:3.4375%;font:400 calc(11 * var(--u))/2.15 Montserrat,sans-serif}
@media(max-width:767px){
 .brand{width:120px;height:38.32125px}.brand-art{transform:scale(.75)}
 .hero-group-logo{--art-scale:.75;right:24px;top:28px;width:114.19275px;height:30.75px}
 .hero-location{left:24px;right:auto;top:auto;bottom:24px;font-size:9px}
}

/* Preserve Figma's per-range tracking rather than flattening the title. */
.type-jp-e{letter-spacing:-.19em}.type-jp-ri{letter-spacing:-.21em}

/* Latest FV ribbons: 316px front, 424px back, with rule and full stop. */
.hero-ribbons{--strip-u:calc(1px * var(--ribbon-scale,1))}
.hero-ribbons .ribbon{position:relative;width:calc(85 * var(--strip-u));height:calc(316 * var(--strip-u));font-size:calc(46 * var(--strip-u));padding:calc(20 * var(--strip-u)) calc(19.5 * var(--strip-u))}
.hero-ribbons .ribbon-back{height:calc(424 * var(--strip-u));margin-top:calc(100 * var(--strip-u))}
.hero-ribbon-rule{position:absolute;left:calc(42 * var(--strip-u));top:calc(301.5 * var(--strip-u));transform:scale(var(--ribbon-scale,1));transform-origin:top left}
.hero-ribbon-period{position:absolute;left:calc(19.5 * var(--strip-u));top:calc(387 * var(--strip-u));writing-mode:horizontal-tb;font-feature-settings:'fwid' 1,'vert' 1;line-height:1}
@media(min-width:768px){.hero-ribbons{top:53.020833%}}

/* Figma's fixed ribbon backgrounds and per-glyph horizontal rows. */
.ribbons:not(.hero-ribbons){--ribbon-unit:var(--u)}
.ribbons:not(.hero-ribbons) .ribbon{writing-mode:horizontal-tb;width:calc(85 * var(--ribbon-unit));padding:calc(20 * var(--ribbon-unit)) calc(19.5 * var(--ribbon-unit));white-space:normal}
.ribbon-glyph{display:block;width:calc(46 * var(--ribbon-unit));height:calc(46 * var(--ribbon-unit));font-size:calc(46 * var(--ribbon-unit));line-height:1;font-feature-settings:normal}
.ribbon-glyph-vert{font-feature-settings:'vert' 1}
.about-ribbons,.shopping-ribbons{padding-left:calc(14 * var(--ribbon-unit))}
.about-ribbons .ribbon-back{height:calc(279 * var(--ribbon-unit))}.about-ribbons .ribbon-front{height:calc(325 * var(--ribbon-unit));padding-left:calc(20 * var(--ribbon-unit))}
.resort-ribbons .ribbon-back{height:calc(419 * var(--ribbon-unit))}.resort-ribbons .ribbon-front{height:calc(325 * var(--ribbon-unit));padding-left:calc(20 * var(--ribbon-unit))}
.shopping-ribbons .ribbon-back{height:calc(428 * var(--ribbon-unit))}.shopping-ribbons .ribbon-front{height:calc(239 * var(--ribbon-unit));padding-left:calc(18 * var(--ribbon-unit))}
.stay-ribbons .ribbon-back,.stay-ribbons .ribbon-front{height:calc(382 * var(--ribbon-unit))}
.golf-ribbons .ribbon-back{height:calc(382 * var(--ribbon-unit))}.golf-ribbons .ribbon-front,.snow-ribbons .ribbon-back,.snow-ribbons .ribbon-front{height:calc(336 * var(--ribbon-unit))}
.stay-ribbons .ribbon-front,.golf-ribbons .ribbon-front,.snow-ribbons .ribbon-front{padding-left:calc(19 * var(--ribbon-unit))}

/* Missing copy restored from the visible Figma frames and instances. */
.resort-intro{position:absolute;left:21.940104%;top:calc(133 * var(--u));width:40.104167%}
.chapter-kicker{position:relative;height:calc(81 * var(--u));margin-bottom:calc(64 * var(--u))}
.chapter-kicker>span{font:100 calc(95 * var(--u))/.85 var(--serif);letter-spacing:-.03em}
.chapter-kicker>p{position:absolute;left:calc(116 * var(--u));top:calc(36 * var(--u));font:300 calc(20 * var(--u))/1 var(--en);letter-spacing:.14em;white-space:nowrap}
.resort-intro>h2{font:300 calc(42 * var(--u))/1.7 var(--jp);white-space:nowrap;margin-bottom:calc(32 * var(--u))}
.resort-intro>p,.shopping-copy>p,.stay-intro{font-size:calc(16 * var(--u));line-height:2.15}
.shopping{--shopping-copy-left:24.674479%;--shopping-copy-width:45.5078125%}
.shopping-copy{position:absolute;left:var(--shopping-copy-left);top:calc(719 * var(--u));width:var(--shopping-copy-width)}
.shopping-eyebrow{position:relative;height:calc(81 * var(--u));margin-bottom:calc(20 * var(--u))}
.shopping-eyebrow>p{position:absolute;top:calc(36 * var(--u));font:300 calc(20 * var(--u))/1 var(--en);letter-spacing:.14em;white-space:nowrap}
.shopping-copy>h3{font:300 calc(42 * var(--u))/1.7 var(--jp);white-space:nowrap;margin-bottom:calc(32 * var(--u))}
.shopping-cta{position:absolute;left:auto;right:calc(100% - var(--shopping-copy-left) - var(--shopping-copy-width));top:calc(1065 * var(--u));width:max-content}
.stay-intro{position:absolute;left:11.783854%;top:calc(157 * var(--u));width:20.963542%}
.golf-topics{position:absolute;left:41.2109375%;top:calc(101 * var(--u));font:300 calc(20 * var(--u))/1 var(--en);letter-spacing:.12em;white-space:nowrap}.golf-topics strong{font-weight:700}

/* Text ink is optically centered with the plus, as in the Figma button. */
.open-map__label{display:block;line-height:1;transform:translateY(2px)}
.cta-arrow{max-width:none;flex-shrink:0;pointer-events:none;transform:scale(var(--art-scale,1));transform-origin:center}
.cta-arrow-shaft{stroke-dashoffset:0}
:is(a,button):is(:hover,:focus-visible) .cta-arrow-shaft{stroke-dasharray:1;animation:cta-shaft-flow 2.4s cubic-bezier(.65,0,.35,1) infinite}
@keyframes cta-shaft-flow{0%{stroke-dashoffset:0}35%{stroke-dashoffset:-1}35.001%{stroke-dashoffset:1}75%,100%{stroke-dashoffset:0}}
@media(min-width:768px){.open-map__label{transform:translateY(calc(2 * var(--u)))}}
@media(max-width:767px){
 .ribbons:not(.hero-ribbons){--ribbon-unit:calc(29px / 46)}
 .resort-intro{position:static;width:auto;margin:0 0 50px}
 .chapter-kicker{height:64px;margin-bottom:30px}.chapter-kicker>span{font-size:68px}.chapter-kicker>p{left:84px;top:25px;font-size:13px;letter-spacing:.1em}
 .resort-intro>h2,.shopping-copy>h3{font-size:26px;line-height:1.65;white-space:normal;margin-bottom:24px}
 .resort-intro>p,.shopping-copy>p,.stay-intro{font-size:14px;line-height:2.15}.resort-intro>p br{display:none}
 .shopping-copy{position:static;width:auto;margin:40px 24px 0}.shopping-eyebrow{height:auto;margin-bottom:24px}.shopping-eyebrow>p{position:static;font-size:12px;line-height:1.6;letter-spacing:.1em;white-space:normal}
 .shopping-cta{position:static;width:max-content;margin:30px 24px 0 auto}
 .stay-intro{position:static;width:auto;margin:30px 24px}
 .golf-topics{position:static;font-size:13px;letter-spacing:.1em;margin-bottom:20px}
}
@media(prefers-reduced-motion:reduce){:is(a,button):is(:hover,:focus-visible) .cta-arrow-shaft{animation:none;stroke-dashoffset:0}}

/* Separate the opening mask/lift from the continuing gradient animation.
   Preserve the paint overhangs which keep the 3 and comma intact. */
.hero-type>.type-reveal{padding:0;margin:0;background:none;color:inherit}
.type-lift{display:flow-root}
.hero-type .type-ink{display:block;padding:.3em .15em;margin:-.3em -.15em}
.type-three .type-ink{background-image:radial-gradient(ellipse at 20% 30%,#c7ff54 0%,transparent 35%),radial-gradient(ellipse at 80% 70%,#02bf7a 0%,transparent 38%),radial-gradient(ellipse at 55% 10%,#78e53e 0%,transparent 32%),linear-gradient(120deg,#fff 15%,#eaffd9 42%,#fff 75%)}
.type-places .type-ink,.type-one .type-ink,.type-karuizawa .type-ink{background-image:radial-gradient(ellipse at 30% 60%,#8ceb53 0%,transparent 26%),radial-gradient(ellipse at 75% 20%,#bef3af 0%,transparent 30%),linear-gradient(115deg,#fff 15%,#fff 80%);animation-delay:-5s}
.fv-preparing :is(.hero-photo,.hero-shade,.brand,.hero-group-logo,.hero-location,.hero-ribbons>.ribbon,.scroll-cue,.type-jp){opacity:0}
.fv-preparing .type-lift{opacity:0}
:is(.fv-preparing,.fv-running) .type-reveal{clip-path:inset(-.3em -.15em -.3em -.15em)}
:is(.fv-preparing,.fv-paused) .type-ink{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){
 .fv-preparing :is(.hero-photo,.hero-shade,.brand,.hero-group-logo,.hero-location,.hero-ribbons>.ribbon,.scroll-cue,.type-jp,.type-lift){opacity:1}
 :is(.fv-preparing,.fv-running) .type-reveal{clip-path:none}
}

/* Keep the resort place name together on the second line on SP. */
.resort-title-break{display:none}
@media(max-width:767px){.resort-title-break{display:initial}}

/* SP: place the introductory copy beside the raised green ribbons. */
@media(max-width:767px){
 .resort{display:grid;grid-template-columns:minmax(0,1fr) max-content;column-gap:24px}
 .resort-intro{display:contents}
 .resort-intro>.chapter-kicker,.resort-intro>h2{grid-column:1/-1}
 .resort-intro>p{grid-column:1;grid-row:3;align-self:start;margin:0}
 .resort-ribbons{grid-column:2;grid-row:3;align-self:start;margin:-56px 0 0}
 .resort-map{grid-column:1/-1;margin-top:40px}
}

/* SP Japanese body copy: increase the 16px design base to 18px. */
@media(max-width:767px){
 .about-copy>p,.resort-intro>p,.shopping-copy>p,.stay-intro,
 .renewal-intro p,.golf-copy,.golf-renewal-copy>p,.snow-copy{font-size:18px;font-weight:400}
}

/* SP: retain the rule/period spacing and leave room below the final glyph. */
@media(max-width:767px){
 .hero-ribbons .ribbon-back{height:calc(460 * var(--strip-u))}
 /* Proportional punctuation plus optical bearing correction aligns the visible dot with the rule. */
 .hero-ribbon-period{left:calc(50% + .065em);width:max-content;transform:translateX(-50%);font-feature-settings:'palt' 1}
}

/* Arrow CTA pills share the plus-button hover color. */
:is(a,button):is(:hover,:focus-visible) .oval,
.release-link:is(:hover,:focus-visible)>span{background:#73cb83}
:is(a,button):is(:hover,:focus-visible) .oval .cta-arrow path,
.release-link:is(:hover,:focus-visible)>span .cta-arrow path{stroke:#fff}

/* Let every CTA color ease in and out together. */
.open-map,.plan-button,.release-link>span,.oval{transition:background-color 650ms ease-in-out}
.cta-arrow path{transition:stroke 650ms ease-in-out}

/* Cap the original PC canvas at 130% and center it on ultra-wide screens. */
.page-content{--wide-gutter:max(0px,calc((100vw - 1536 * var(--u)) / 2));max-width:calc(1536px * var(--max-pc-scale));margin-inline:auto}
.hero-photo-frame{position:absolute;inset:0;overflow:hidden}
.shopping-photo,.snow-photo{overflow:hidden}
.shopping-photo>img,.snow-photo>img{display:block;width:100%;height:100%;object-fit:cover;object-position:inherit}
/* A V1.31/1.32: 24 seconds per leg, 100% to 124%, then back. */
.large-photo-image.has-photo-zoom{animation:large-photo-zoom 24s linear infinite alternate;transform-origin:center center}
@keyframes large-photo-zoom{from{transform:translateZ(0) scale(1)}to{transform:translateZ(0) scale(1.24)}}
@media(prefers-reduced-motion:reduce){.large-photo-image{animation:none!important;transform:none!important;will-change:auto!important}}

/* SP: shape vertical punctuation in a vertical run, including WebKit.
   Applying vert alone to a horizontal line does not provide vertical metrics.
   Keep the existing 1em glyph boxes and all ribbon geometry unchanged. */
@media(max-width:767px){
 .ribbon-glyph-vert{writing-mode:vertical-rl;text-orientation:mixed;font-feature-settings:'vert' 1,'vrt2' 1}
}

/* 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: preserve the mountain ridge; SP uses the dedicated portrait crop. */
.hero-photo{object-position:center top}
@media(max-width:767px){.hero-photo{object-position:center center}}
.hero-photo.large-photo-image.has-photo-zoom{transform-origin:center top}

/* Area map 1112: native vector artwork over the page background. */
.area-map .map-image{background:transparent;width:94%}
.area-map-vector{display:block;width:100%;height:auto}
@media(max-width:767px){.area-map .map-image{aspect-ratio:1680.772/1314.337}.area-map-vector{height:100%}}
