[hidden]{display:none!important}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:#1c211f;color:#eeeade;font-family:Arial,'Hiragino Kaku Gothic ProN',sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;color:inherit;border:0}img{display:block;width:100%;height:100%;object-fit:cover}::selection{background:#b7bc9b;color:#17221d}:focus-visible{outline:2px solid #c9b998;outline-offset:6px}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:#eeeade;color:#1c211f;padding:15px}.skip:focus{top:10px}header{position:fixed;z-index:30;top:0;width:100%;display:flex;align-items:center;gap:35px;padding:26px 3vw;transition:background .4s;background:linear-gradient(#151c1a66,transparent);color:#fff}body.scrolled header{background:#1c211fee}header .brand{font:22px Georgia,serif;letter-spacing:.2em}header nav{display:flex;gap:32px;margin-left:auto;font-size:11px}header nav a{position:relative}header nav a:after{content:'';position:absolute;bottom:-5px;left:0;width:0;height:1px;background:#eeeade;transition:width .3s}header nav a:hover:after{width:100%}.inquire{font-size:11px;letter-spacing:.04em;border:1px solid #eeeade88;padding:13px 18px;background:transparent;display:flex;gap:30px}.menu-button{display:none;background:transparent}#mobile-menu{position:fixed;inset:0;background:#1c211f;z-index:29;padding:150px 9vw 60px}#mobile-menu:not([hidden]){display:flex;flex-direction:column;gap:30px;font:42px Georgia,serif}#mobile-menu>button{background:transparent;text-align:left;font-size:18px;margin-top:30px}.arrival{height:160svh;min-height:950px}.arrival-sticky{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden}.arrival-picture{position:absolute;inset:0;clip-path:inset(var(--inset,0%));will-change:clip-path}.arrival-picture:after{content:'';position:absolute;inset:0;background:linear-gradient(#0e14172e,transparent 35%,#101b1b70)}.arrival-picture img{transform:scale(var(--zoom,1.08));will-change:transform}.coordinates{position:absolute;top:145px;left:3vw;right:3vw;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.15em}.arrival-title{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none;padding-top:20px;opacity:var(--title-opacity,1)}.arrival-title>span{font-size:9px;letter-spacing:.28em}.arrival-title h1{font:clamp(55px,8.2vw,135px)/1 Georgia,serif;font-weight:400;letter-spacing:.12em;margin:28px -0.12em 27px 0;text-shadow:0 2px 30px #0005}.arrival-title p{font-family:'Hiragino Mincho ProN','Yu Mincho',serif;font-size:18px;letter-spacing:.3em;margin:0}.arrival-bottom{position:absolute;bottom:40px;left:3vw;right:3vw;display:flex;justify-content:space-between;align-items:end;opacity:var(--title-opacity,1)}.arrival-bottom a{font-size:9px;letter-spacing:.12em;display:flex;align-items:center;gap:55px}.arrival-bottom a span{font-size:27px}.arrival-bottom p{font-size:12px;line-height:2.2;letter-spacing:.1em}.arrival-frame{position:absolute;left:30px;right:30px;top:110px;bottom:24px;border:1px solid #eeeade20;pointer-events:none}.introduction{padding:110px 8vw 140px}.section-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em;line-height:1.6}.introduction h2{font-family:'Hiragino Mincho ProN','Yu Mincho',serif;font-size:clamp(60px,8vw,115px);line-height:1.45;font-weight:400;letter-spacing:.06em;margin:80px 0 50px}.introduction h2 span{margin-left:22%}.intro-body{display:grid;grid-template-columns:1.3fr 1fr .2fr;gap:40px;align-items:end}.intro-body p{font-size:12px;line-height:2.6;letter-spacing:.07em;margin:0 0 30px}.intro-body .lead{font-family:'Hiragino Mincho ProN','Yu Mincho',serif;font-size:25px;line-height:1.8;margin-bottom:35px}.diagram{width:210px;height:210px;border:1px solid #eeeade55;position:relative;transform:rotate(-30deg);margin-left:10%;align-self:center}.diagram:after{content:'';position:absolute;inset:30px;border:1px solid #eeeade55}.diagram i{position:absolute;width:100%;height:1px;background:#eeeade55;top:50%;left:0}.diagram i:last-child{transform:rotate(90deg)}.vertical-note{writing-mode:vertical-rl;font-size:9px;letter-spacing:.16em;justify-self:end}.spaces{background:#e9e7df;color:#27332e;padding:55px 3vw 70px}.spaces>.section-label{margin:0 1vw 35px}.gallery{position:relative;height:83svh;min-height:500px;overflow:hidden;background:#89918b}.gallery>img{transition:opacity .45s,transform 1.3s;transform:scale(var(--photo-scale,1));object-position:var(--photo-pos,50%)}.gallery-shade{position:absolute;inset:0;background:linear-gradient(transparent 50%,#0006)}.gallery-title{position:absolute;bottom:50px;left:4vw;color:#fff}.gallery-title small{font-size:9px;letter-spacing:.1em}.gallery-title h2{font:36px 'Hiragino Mincho ProN','Yu Mincho',serif;letter-spacing:.07em}.gallery-controls{position:absolute;right:4vw;bottom:55px;display:flex;align-items:center;gap:20px;color:#fff}.gallery-controls span{font-size:10px;letter-spacing:.1em;margin-right:20px}.gallery-controls button,.expand{border:1px solid #fff8;background:#15211c22;backdrop-filter:blur(8px);height:52px;width:52px;color:#fff;font-size:22px;transition:background .3s}.gallery-controls button:hover,.expand:hover{background:#eeeade;color:#1c211f}.expand{position:absolute;right:30px;top:30px}.gallery-caption{display:flex;justify-content:space-between;gap:40px;padding:35px 1vw 0}.gallery-caption p{font-size:12px;line-height:2.3;max-width:550px;margin:0}.gallery-caption span{font-size:9px;letter-spacing:.1em;align-self:end}.material{background:#e9e7df;color:#27332e;display:grid;grid-template-columns:1.1fr 1fr;padding:80px 0 120px;gap:8vw}.material-image{height:710px;overflow:hidden}.material-image img{object-position:80%;transform:scale(1.12)}.material-text{padding:70px 6vw 0 0}.material-text h2{font:50px/1.6 'Hiragino Mincho ProN','Yu Mincho',serif;letter-spacing:.1em;margin:55px 0 40px}.material-text p{font-size:12px;line-height:2.6;margin-bottom:30px}.material-caption{display:block;margin-top:55px;font-size:9px;letter-spacing:.1em}.stay{padding:90px 8vw 110px}.stay-heading{display:flex;align-items:end;justify-content:space-between;margin:70px 0}.stay-heading h2{font:clamp(42px,5.3vw,84px)/1.05 Georgia,serif;font-weight:400;letter-spacing:-.03em;margin:0}.stay-heading p{font-size:11px;letter-spacing:.07em}.day-list details{border-top:1px solid #eeeade40}.day-list details:last-child{border-bottom:1px solid #eeeade40}.day-list summary{display:flex;align-items:center;gap:50px;list-style:none;cursor:pointer;padding:27px 0}.day-list summary::-webkit-details-marker{display:none}.day-list summary>span{font-size:12px}.day-list summary h3{font:24px/1.5 'Hiragino Mincho ProN','Yu Mincho',serif;margin:0;letter-spacing:.05em;font-weight:400}.day-list summary b{margin-left:auto;font-size:25px;font-weight:400;transition:transform .3s}.day-list details[open] summary b{transform:rotate(45deg)}.day-list details>p{font-size:12px;line-height:2.4;margin:0 10% 35px 90px;max-width:610px}.invitation{height:85svh;min-height:600px;position:relative}.invitation>img{filter:brightness(.64);object-position:center}.invitation>div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.invitation span{font-size:9px;letter-spacing:.15em}.invitation h2{font:42px/1.7 'Hiragino Mincho ProN','Yu Mincho',serif;letter-spacing:.15em;margin:45px 0}.invitation button{border:1px solid #eeeade88;background:#1c211f44;padding:20px 30px;min-width:260px;font-size:12px;display:flex;justify-content:space-between;gap:40px;transition:background .3s}.invitation button:hover{background:#eeeade;color:#1c211f}footer{padding:70px 4vw 30px}.footer-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eeeade40;padding-bottom:45px}.footer-top>a:first-child{font:clamp(40px,8vw,130px) Georgia,serif;letter-spacing:.12em}.top-link{font-size:9px;letter-spacing:.08em}.footer-bottom{display:flex;gap:30px;align-items:end;padding-top:25px;font-size:8px;line-height:2}.footer-bottom p{margin:0;flex:1}.footer-bottom button{background:transparent;font-size:9px;text-decoration:underline;text-underline-offset:5px}dialog{border:0;background:#e9e7df;color:#27332e;padding:65px;width:min(600px,90vw);max-height:90svh;overflow:auto}dialog::backdrop{background:#09100de6;backdrop-filter:blur(7px)}.close{position:absolute;right:16px;top:16px;background:transparent;font-size:30px;width:40px;height:40px}dialog>small{font-size:9px;letter-spacing:.1em}dialog h2{font:33px/1.7 'Hiragino Mincho ProN','Yu Mincho',serif;font-weight:400;letter-spacing:.1em;margin:30px 0}fieldset{border:0;margin:0;padding:0}legend{font-size:11px;margin:0 0 15px}fieldset label{display:block;padding:13px 0;border-top:1px solid #27332e40;font-size:13px}input{accent-color:#465d50;margin-right:15px}.stay-result{padding:20px;background:#dddcd0;margin-top:25px}.stay-result h3{font-size:15px;font-weight:400}.stay-result p{font-size:12px;line-height:2}.concept{font-size:10px;line-height:2;margin-top:25px}.text-close{background:transparent;padding:15px 0;border-bottom:1px solid #27332e;font-size:11px}#lightbox{width:94vw;padding:20px;background:#1c211f;color:#eeeade}#lightbox>img{height:75svh;object-fit:contain}#lightbox>p{text-align:center;font-size:12px;margin:20px 0 0}#lightbox .close{background:#1c211f}.motion-off *{scroll-behavior:auto!important;transition:none!important}.motion-off .arrival-picture{clip-path:none!important}.motion-off .arrival-picture img{transform:none!important}.motion-off .arrival-title,.motion-off .arrival-bottom{opacity:1!important}@media(prefers-reduced-motion:reduce){html:not(.motion-on) *{scroll-behavior:auto!important;transition:none!important}}@media(max-width:650px){header{padding:23px 22px}.brand{font-size:18px!important}header nav,.inquire{display:none}.menu-button{display:block;margin-left:auto;font-size:22px}.arrival{height:125svh;min-height:800px}.arrival-sticky{min-height:640px}.arrival-picture img{object-position:60%}.coordinates{top:105px;left:24px;font-size:8px}.coordinates span:last-child{display:none}.arrival-title h1{font-size:15vw}.arrival-title>span{font-size:7px}.arrival-title p{font-size:14px}.arrival-bottom{left:24px;right:24px;bottom:40px}.arrival-bottom a{font-size:8px;gap:20px}.arrival-bottom p{font-size:9px;line-height:2.3;max-width:150px}.arrival-frame{left:12px;right:12px;top:83px;bottom:15px}.introduction{padding:65px 25px 85px}.section-label{font-size:8px}.section-label span:last-child{display:none}.introduction h2{font-size:61px;margin:45px 0}.intro-body{grid-template-columns:60px 1fr;gap:30px}.diagram{width:60px;height:60px;margin:20px 0 0;align-self:start}.diagram:after{inset:10px}.intro-body .lead{font-size:21px}.intro-body p{font-size:11px}.vertical-note{display:none}.spaces{padding:35px 12px 50px}.spaces>.section-label{margin:0 12px 25px}.gallery{height:70svh;min-height:480px}.gallery>img{object-position:44%}.gallery-title{bottom:105px;left:20px}.gallery-title h2{font-size:25px}.gallery-controls{left:20px;right:20px;bottom:25px;gap:10px}.gallery-controls span{margin-right:auto}.gallery-controls button{width:44px;height:44px}.expand{top:15px;right:15px;width:40px;height:40px}.gallery-caption{padding:24px 12px 0}.gallery-caption p{font-size:11px}.gallery-caption>span{display:none}.material{display:flex;flex-direction:column;gap:0;padding:10px 0 65px}.material-image{height:420px;width:86%}.material-text{padding:40px 28px 0 60px}.material-text h2{font-size:37px;margin:35px 0}.material-text p{font-size:11px}.material-caption{margin-top:35px}.stay{padding:60px 25px 80px}.stay-heading{display:block;margin:45px 0}.stay-heading h2{font-size:40px}.stay-heading p{margin-top:25px}.day-list summary{gap:20px;padding:25px 0}.day-list summary>span{font-size:10px}.day-list summary h3{font-size:17px}.day-list details>p{margin:0 0 25px 52px;font-size:11px}.invitation{height:75svh;min-height:550px}.invitation h2{font-size:31px;letter-spacing:.08em}.invitation>img{object-position:36%}footer{padding:45px 25px 25px}.footer-top{display:block;padding-bottom:30px}.footer-top>a:first-child{font-size:54px;display:block;margin-bottom:25px}.footer-bottom{flex-wrap:wrap;gap:20px}.footer-bottom p{flex-basis:100%;font-size:7px}.footer-bottom>span{margin-left:auto}dialog{padding:55px 25px 30px}dialog h2{font-size:27px}#lightbox{padding:10px}#lightbox>img{height:65svh}}

html.motion-off{scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){html:not(.motion-on){scroll-behavior:auto!important}}

/* Independent photo and typography layers; CSS transforms remain available for art direction. */
[data-depth]{translate:var(--layer-x,0px) var(--layer-y,0px);will-change:translate}
html.motion-off [data-depth]{translate:none!important;will-change:auto}
@media(prefers-reduced-motion:reduce){html:not(.motion-on) [data-depth]{translate:none!important;will-change:auto}}
 .arrival-picture{overflow:hidden}
.arrival-picture img{position:absolute;left:-40px;top:-70px;width:calc(100% + 80px);height:calc(100% + 140px);max-width:none}
.invitation{overflow:hidden}
.invitation>img{position:absolute;left:-40px;top:-75px;width:calc(100% + 80px);height:calc(100% + 150px);max-width:none}

/* A horizon opens into the landscape. It never traps focus or blocks scrolling. */
.arrival-opening{position:absolute;inset:0;z-index:5;pointer-events:none;animation:opening-dismiss .12s linear 2.2s forwards}
.arrival-opening:before,.arrival-opening:after{content:'';position:absolute;left:0;width:100%;height:50.2%;background:#1c211f}
.arrival-opening:before{top:0;animation:horizon-up 1.6s cubic-bezier(.76,0,.24,1) .55s both}
.arrival-opening:after{bottom:0;animation:horizon-down 1.6s cubic-bezier(.76,0,.24,1) .55s both}
.opening-line{position:absolute;z-index:1;left:28%;right:28%;top:50%;height:1px;background:#eeeade88;animation:horizon-line 1.1s ease both}
.opening-label{position:absolute;z-index:1;top:calc(50% + 20px);left:0;right:0;text-align:center;letter-spacing:.22em;font-size:9px;animation:horizon-label 1.2s ease both}
.arrival-title>span{animation:title-arrive 1.5s cubic-bezier(.16,1,.3,1) 1.15s both}
.arrival-title>h1{animation:title-arrive 1.8s cubic-bezier(.16,1,.3,1) 1.3s both}
.arrival-title>p{animation:title-arrive 1.7s cubic-bezier(.16,1,.3,1) 1.55s both}
html.motion-off .arrival-opening{display:none}
@keyframes horizon-up{to{transform:translateY(-101%)}}
@keyframes horizon-down{to{transform:translateY(101%)}}
@keyframes horizon-line{0%{transform:scaleX(0);opacity:0}50%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1.1);opacity:0}}
@keyframes horizon-label{0%{opacity:0;transform:translateY(7px)}40%{opacity:1}100%{opacity:0;transform:translateY(0)}}
@keyframes title-arrive{from{opacity:0;transform:translateY(52px)}to{opacity:1;transform:translateY(0)}}
@keyframes opening-dismiss{to{opacity:0}}
@media(prefers-reduced-motion:reduce){html:not(.motion-on) .arrival-opening{display:none}}
