@font-face{font-family:"Mizuha Mincho";src:url("assets/mincho.ttf") format("truetype");font-weight:400;font-display:swap}
:root{--u:calc(100vw / 1440);--ivory:#fbf6ec;--ink:#24221f;--navy:#172540;--gold:#b79553;--burgundy:#890c20;--paper:url("assets/washi.webp");color-scheme:light}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:"Mizuha Mincho","Yu Mincho","Hiragino Mincho ProN",serif;font-weight:400;line-height:1.8;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #997633;outline-offset:6px}h1,h2,p{margin:0}h1,h2{font-weight:400;line-height:1.25}img{display:block;max-width:100%}.shape-definitions{position:absolute;pointer-events:none}.paper{background-color:var(--ivory);background-image:var(--paper);background-size:1440px auto}.skip-link{position:fixed;top:12px;left:12px;z-index:150;background:var(--ivory);padding:12px 20px;transform:translateY(-160%)}.skip-link:focus{transform:none}
.hero{position:relative;height:calc(var(--u)*940);min-height:660px;color:#fff;isolation:isolate}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:-1}.hero-content{position:relative;display:flex;align-items:center;flex-direction:column;padding-top:calc(var(--u)*35);text-align:center}.brand{display:flex;flex-direction:column;align-items:center;line-height:1.4}.brand-mark{width:calc(var(--u)*130);height:calc(var(--u)*66);min-width:82px;min-height:42px;stroke:#d8ba73;stroke-width:1.5;stroke-linecap:round}.brand-caption{font-size:clamp(16px,1.55vw,27px);letter-spacing:.26em;margin-top:4px}.brand-name{font-size:clamp(26px,2.65vw,44px);letter-spacing:.29em;margin-left:.29em;margin-top:4px}.hero h1{font-size:clamp(40px,5.04vw,84px);line-height:1.25;letter-spacing:.115em;padding-left:.115em;margin-top:calc(var(--u)*37)}.hero-description{font-size:clamp(17px,1.63vw,28px);letter-spacing:.14em;line-height:1.85;margin-top:calc(var(--u)*31)}.booking-button{display:inline-flex;align-items:center;justify-content:center;gap:30px;padding:18px 54px 20px;border:2px solid #e1c286;border-radius:100px;background:linear-gradient(180deg,#a91b2d 0%,#8c0b20 60%,#710719 100%);color:white;font-size:clamp(20px,2.1vw,34px);letter-spacing:.09em;line-height:1.4;text-decoration:none;box-shadow:0 4px 14px #4c142415;transition:filter .25s,box-shadow .25s,transform .25s;max-width:calc(100% - 32px)}.booking-button:hover{filter:brightness(1.13);box-shadow:0 6px 24px #5b15282b;transform:translateY(-2px)}.booking-button:active{transform:translateY(0)}.hero-booking{margin-top:calc(var(--u)*147);padding:20px 78px 22px}.chevron{width:.39em;height:.39em;display:block;flex:none;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.intro{position:relative;z-index:5;margin-top:calc(var(--u)*-80);height:calc(var(--u)*210);clip-path:url(#ribbon-curve);display:flex;align-items:center;justify-content:center}.intro p{display:flex;align-items:center;justify-content:center;gap:30px;font-size:clamp(20px,2.55vw,39px);letter-spacing:.09em;padding:20px 4% 30px}.gold-rule{display:inline-block;width:110px;flex:none;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.experience{position:relative;isolation:isolate}.experience-photo{position:absolute;inset:0;z-index:-1}.experience-photo img{height:100%;width:100%;object-fit:cover}.experience-copy{position:absolute;z-index:2}.section-number{display:flex;align-items:baseline;gap:15px;color:#a7833c;font-size:clamp(22px,2.1vw,34px);line-height:1.3;font-style:italic;letter-spacing:.08em}.section-number span{font-size:clamp(36px,3.5vw,58px);font-family:Georgia,serif;letter-spacing:0;font-style:italic}.flowing-line{display:block;width:210px;height:24px;margin:-5px 0 14px 28px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='210' height='24' viewBox='0 0 210 24'%3E%3Cpath d='M2 8C62 0 91 29 146 10C167 3 181 1 205 2M47 17C103 19 111 24 147 16C172 10 188 7 208 8' fill='none' stroke='%23c4a15a' stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat}.experience h2{font-size:clamp(31px,3.34vw,56px);letter-spacing:.065em;line-height:1.28}.body-copy{font-size:clamp(16px,1.39vw,23px);letter-spacing:.08em;line-height:1.95;margin-top:26px}.onsen{margin-top:calc(var(--u)*-60);height:calc(var(--u)*620);z-index:2}.onsen-photo{width:70%;mask-image:linear-gradient(to right,#000 0%,#000 68%,transparent 99%)}.onsen-photo img{object-position:35% center}.onsen-copy{left:61.5%;right:3%;top:14%}.dining{margin-top:calc(var(--u)*-100);height:calc(var(--u)*640);z-index:3;clip-path:url(#dining-curve)}.dining-photo{left:29%;mask-image:linear-gradient(to left,#000 0%,#000 72%,transparent 100%)}.dining-photo img{object-position:58% center}.dining-copy{left:6%;top:20%;width:38%}.room{margin-top:calc(var(--u)*-100);height:calc(var(--u)*640);z-index:4;color:white;clip-path:url(#room-curve);background:var(--navy)}.room-photo{width:83%;mask-image:linear-gradient(to right,#000 0%,#000 72%,transparent 100%)}.room-photo img{object-position:43% 59%}.room-copy{left:70%;right:2%;top:22%}.room-copy .section-number{color:#e1c482}.room-copy h2{font-size:clamp(29px,3.15vw,53px)}.room-copy .body-copy{font-size:clamp(16px,1.34vw,23px)}
.gallery{position:relative;z-index:5;margin-top:calc(var(--u)*-80);height:calc(var(--u)*1120);clip-path:url(#gallery-curve);padding-top:calc(var(--u)*85)}.gallery-heading{text-align:center;padding:0 20px}.eyebrow{color:#a68443;display:flex;align-items:center;justify-content:center;gap:32px;font-family:Georgia,serif;font-size:clamp(18px,1.8vw,27px);letter-spacing:.35em;line-height:1.4}.eyebrow .gold-rule{width:90px}.gallery h2{font-size:clamp(29px,3.16vw,53px);letter-spacing:.06em;margin-top:24px}.gallery-heading>p:last-child{font-size:clamp(16px,1.45vw,24px);letter-spacing:.09em;margin-top:20px}.gallery-photos{width:calc(100% - 64px);max-width:1560px;margin:32px auto 0}.gallery-item{position:relative;display:block;overflow:hidden;background:#423824;text-decoration:none}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.65,.3,1)}.gallery-item:hover img{transform:scale(1.025)}.gallery-item:focus-visible{outline-offset:-5px}.gallery-main{height:calc(var(--u)*450)}.gallery-main img{object-position:center 56%}.gallery-caption{position:absolute;left:0;bottom:0;padding:14px 22px;color:white;font-size:clamp(16px,1.34vw,22px);letter-spacing:.06em;background:linear-gradient(90deg,#1c202caa,#1c202c80,transparent);z-index:1}.gallery-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.gallery-row .gallery-item{height:calc(var(--u)*315)}
.closing{position:relative;isolation:isolate;height:calc(var(--u)*470);color:#171c2a;text-align:center}.closing-photo{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:center 62%}.closing-content{padding-top:calc(var(--u)*32);padding-inline:16px}.closing h2{font-size:clamp(35px,3.9vw,62px);letter-spacing:.08em;line-height:1.25}.closing p{font-size:clamp(16px,1.65vw,27px);letter-spacing:.1em;margin:23px 0 36px}.closing .booking-button{padding:20px 66px 22px}.site-footer{position:relative;display:flex;justify-content:space-between;align-items:center;gap:28px;min-height:calc(var(--u)*100);background:var(--navy);color:#f6f0e4;padding:20px 7%;letter-spacing:.1em}.footer-brand{font-size:20px;white-space:nowrap}.footer-brand span{margin-left:18px;font-size:24px}.site-footer nav{display:flex;align-items:center;gap:20px}.site-footer a{font-size:14px;text-decoration:none;padding:8px 0}.site-footer a:hover{text-decoration:underline;text-underline-offset:5px}.footer-separator{color:#bd9a57}.site-footer small{font-family:Georgia,serif;font-size:12px;white-space:nowrap}.back-to-top{position:fixed;right:22px;bottom:22px;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:62px;line-height:1;border:1px solid #d0b879;background:#172540ef;color:#f7e8c4;text-decoration:none;border-radius:3px;transition:background .2s}.back-to-top>span:first-child{font-size:24px}.back-to-top>span:last-child{font-family:Georgia,serif;font-size:12px;letter-spacing:.1em;margin-top:5px}.back-to-top:hover{background:#293c5b}
dialog{border:1px solid #c5a86d;color:var(--ink);background:var(--ivory);padding:0}dialog::backdrop{background:#111b2bce}dialog[open]{animation:dialog-enter .18s ease-out}.notice-dialog{max-width:620px;width:calc(100% - 40px);padding:62px 48px 42px;background-image:var(--paper)}.notice-dialog h2{font-size:30px;margin:20px 0 25px;letter-spacing:.04em}.notice-dialog p:not(.dialog-eyebrow){font-size:16px;line-height:1.9}.dialog-eyebrow{font-family:Georgia,serif;letter-spacing:.25em;color:#876b37;font-size:14px}.dialog-close{position:absolute;right:12px;top:8px;width:44px;height:44px;background:none;border:0;color:var(--navy);font-size:32px;line-height:1}.dialog-return{margin-top:30px;border:1px solid var(--gold);padding:12px 26px;background:var(--navy);color:white;font-size:16px;min-height:44px}.lightbox{width:min(1240px,calc(100% - 32px));max-width:1240px;max-height:94dvh;background:#111c30;color:white;padding:54px 54px 22px;overflow:auto;border-color:#857044}.lightbox-close{position:absolute;right:5px;top:5px;border:0;background:none;color:white;font-size:35px;width:44px;height:44px;line-height:1}.lightbox-stage{position:relative}.lightbox-stage>img{width:100%;height:min(68vh,760px);object-fit:contain}.lightbox-arrow{position:absolute;z-index:1;top:50%;transform:translateY(-50%);width:44px;height:58px;background:#172540de;border:1px solid #b7955370;color:white;font-size:42px;line-height:1}.previous{left:-48px}.next{right:-48px}.lightbox-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.lightbox-caption h2{font-size:22px}.lightbox-caption span{font-family:Georgia,serif;font-size:16px}.reveal-heading.is-ready{transition:opacity .75s ease,transform .75s cubic-bezier(.21,.61,.35,1);opacity:0;transform:translateY(10px)}.reveal-heading.is-ready.is-visible{opacity:1;transform:none}@keyframes dialog-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(min-width:641px) and (max-width:1100px){.hero{min-height:0}.hero h1{font-size:5.04vw}.hero-description{font-size:clamp(16px,1.63vw,24px);letter-spacing:.08em}.hero-booking{padding:14px 44px 16px;margin-top:8vw}.hero-content{padding-top:2vw}.brand-name{font-size:26px}.brand-mark{min-width:60px;min-height:30px}.brand-caption{font-size:14px}.hero h1{margin-top:2vw}.hero-description{margin-top:2vw}.intro p{font-size:2.55vw;gap:18px}.gold-rule{width:65px}.experience h2{font-size:3.34vw}.experience-copy .section-number{font-size:20px;gap:8px}.experience-copy .section-number span{font-size:36px}.flowing-line{width:135px;height:18px;margin-left:20px;margin-bottom:7px}.body-copy{font-size:16px;line-height:1.8;margin-top:18px;letter-spacing:.02em}.desktop-break{display:none}.onsen-copy{top:12%;left:60%;right:3%}.dining-copy{top:19%;width:39%}.room-copy{left:67%;right:3%;top:22%}.room-copy .body-copy{font-size:16px}.gallery{height:auto;min-height:calc(var(--u)*1120);padding-bottom:38px}.gallery h2{font-size:3.16vw;margin-top:16px}.gallery-heading>p:last-child{margin-top:12px}.gallery-photos{width:calc(100% - 40px);margin-top:24px}.gallery-main{height:31.25vw}.gallery-caption{font-size:14px;padding:10px 12px}.closing{min-height:310px;height:32.64vw}.closing h2{font-size:3.9vw}.closing p{margin:16px 0 22px;letter-spacing:.03em}.closing .booking-button{padding:15px 35px 17px;font-size:22px}.site-footer{padding:20px 5%;gap:16px;flex-wrap:wrap}.footer-brand{font-size:16px}.footer-brand span{font-size:20px;margin-left:10px}.site-footer nav{gap:12px}.site-footer small{display:none}.back-to-top{right:12px;bottom:12px}}
@media(max-width:640px){:root{--u:calc(100vw / 390)}html{scrollbar-gutter:auto}.hero{height:810px;min-height:0;max-height:none}.hero-photo{object-position:56% center}.hero-content{padding:30px 12px 0}.brand-mark{width:84px;height:43px;min-width:0;min-height:0}.brand-caption{font-size:16px;letter-spacing:.2em}.brand-name{font-size:29px;margin-top:3px}.hero h1{font-size:clamp(29px,7.65vw,46px);letter-spacing:.065em;margin-top:52px;line-height:1.3;white-space:nowrap}.hero-description{font-size:16px;letter-spacing:.025em;line-height:1.9;margin-top:30px}.hero-booking{margin-top:190px;padding:17px 35px 19px;font-size:23px;gap:22px}.intro{margin-top:-64px;height:170px}.intro p{font-size:19px;letter-spacing:.025em;line-height:1.7;padding:30px 16px;gap:8px;text-align:center}.intro p>span:nth-child(2){max-width:270px}.gold-rule{width:28px}.experience{clip-path:none}.experience-photo{position:relative;width:100%;left:0;right:0;height:370px;z-index:0;mask-image:none}.experience-photo img{object-fit:cover}.experience-copy{position:relative;left:auto;right:auto;top:auto;padding:26px 28px 64px;width:100%;z-index:2}.onsen{height:auto;margin-top:-40px;z-index:2;padding-top:0}.onsen-photo{height:360px;mask-image:linear-gradient(to bottom,#000 0%,#000 79%,transparent 100%)}.onsen-photo img{object-position:36% center}.onsen-copy{margin-top:-22px}.section-number{font-size:23px;gap:12px}.section-number span{font-size:42px}.flowing-line{width:170px;margin:-2px 0 14px 24px;height:20px}.experience h2{font-size:31px;letter-spacing:.045em;line-height:1.28}.body-copy{font-size:16px;line-height:1.95;letter-spacing:.025em;margin-top:24px}.desktop-break{display:none}.dining{height:auto;margin-top:-20px;display:flex;flex-direction:column}.dining-photo{height:355px;mask-image:linear-gradient(to bottom,#000 0%,#000 80%,transparent 100%)}.dining-photo img{object-position:65% center}.dining-copy{margin-top:-5px}.room{height:auto;margin-top:0;background:var(--navy)}.room-photo{width:100%;height:370px;mask-image:linear-gradient(to bottom,#000 0%,#000 80%,transparent 100%)}.room-photo img{object-position:38% center}.room-copy{margin-top:-4px;padding-top:20px;padding-bottom:85px}.room-copy h2{font-size:32px}.room-copy .body-copy{font-size:16px}.gallery{height:auto;margin-top:-35px;padding-top:65px;padding-bottom:42px;clip-path:url(#gallery-curve)}.eyebrow{font-size:17px;gap:18px;letter-spacing:.27em}.eyebrow .gold-rule{width:42px}.gallery h2{font-size:27px;line-height:1.4;letter-spacing:.03em;margin-top:18px;text-wrap:balance}.gallery-heading>p:last-child{font-size:16px;line-height:1.8;letter-spacing:.02em;margin-top:20px;padding-inline:5px}.gallery-photos{width:calc(100% - 32px);margin-top:30px}.gallery-main{height:260px}.gallery-main img{object-position:53% center}.gallery-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.gallery-row .gallery-item{height:175px}.gallery-row .gallery-item:last-child{grid-column:1/-1;height:230px}.gallery-caption{padding:10px 12px;font-size:14px;letter-spacing:.02em}.closing{height:440px}.closing-photo{object-position:43% center}.closing-content{padding:46px 16px 0}.closing h2{font-size:32px;line-height:1.3;letter-spacing:.05em}.closing p{font-size:16px;letter-spacing:.01em;line-height:1.9;margin:22px auto 48px;max-width:310px}.closing .booking-button{font-size:20px;padding:17px 23px 19px;gap:16px;max-width:100%}.site-footer{min-height:160px;flex-direction:column;justify-content:center;gap:14px;text-align:center;padding:24px 20px 34px}.footer-brand{font-size:17px}.footer-brand span{font-size:22px}.site-footer nav{gap:12px}.site-footer a{font-size:14px}.site-footer small{font-size:12px}.back-to-top{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:46px;height:52px}.back-to-top>span:first-child{font-size:21px}.back-to-top>span:last-child{font-size:12px}.notice-dialog{padding:58px 25px 30px}.notice-dialog h2{font-size:25px}.notice-dialog p:not(.dialog-eyebrow){font-size:16px}.lightbox{padding:55px 12px 20px;width:calc(100% - 20px)}.lightbox-stage>img{height:54vh}.lightbox-arrow{top:auto;bottom:-58px;transform:none;width:44px;height:44px;font-size:34px}.previous{left:0}.next{right:0}.lightbox-caption{padding:0 48px;min-height:50px;text-align:center;margin-top:14px;flex-direction:column;gap:4px;justify-content:center}.lightbox-caption h2{font-size:18px}.lightbox-caption span{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-heading.is-ready{opacity:1;transform:none}.gallery-item:hover img,.booking-button:hover{transform:none}}

@media(min-width:1101px){.gallery{margin-top:calc(var(--u)*-105);height:calc(var(--u)*1145);padding-top:calc(var(--u)*110)}.closing-photo{object-position:center calc(62% - 1px)}}

.intro p{transform:translateY(22px)}
@media(min-width:1101px){.intro p{font-size:clamp(20px,3vw,46px);font-weight:600;gap:24px}}
@media(max-width:640px){.intro p{transform:translateY(22px)}.dining-copy .desktop-break{display:initial}}

@media(min-width:1101px){.gallery{padding-top:calc(var(--u)*60)}.eyebrow{font-size:clamp(22px,2.4vw,38px)}.gallery h2{font-size:clamp(32px,4.5vw,72px);font-weight:600;margin-top:13px}.gallery-heading>p:last-child{font-size:clamp(18px,1.7vw,27px)}.gallery-photos{margin-top:24px}.gallery-row .gallery-item{height:calc(var(--u)*360)}}

@media(min-width:1101px){.hero-booking{font-size:34px;padding:21px 132px 23px;margin-top:calc(var(--u)*196);background:linear-gradient(180deg,#951d2c 0%,#7d1120 35%,#570511 100%)}.closing-content{padding-top:calc(var(--u)*50)}.closing h2{font-size:64px}.closing p{font-size:26px}.closing .booking-button{font-size:34px;padding:21px 94px 23px;background:linear-gradient(180deg,#9d1c2c 0%,#831120 35%,#5c0611 100%)}}

.footer-brand{display:flex;align-items:center;gap:18px}.footer-brand>span{margin-left:0}.footer-brand::before{content:"";display:block;flex:none;width:90px;height:42px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 62'%3E%3Cpath d='M39 21C55 4 80 4 98 18M9 39C32 26 49 30 69 37S112 43 132 29M18 46C38 39 54 45 72 48S107 48 118 43M39 54C59 51 74 59 95 54' fill='none' stroke='%23d8ba73' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}@media(min-width:1101px){.site-footer{padding-inline:5%}}@media(max-width:640px){.footer-brand{gap:12px}.footer-brand::before{width:60px;height:32px}}
.intro p.reveal-heading.is-ready{transform:translateY(22px)}

@media(min-width:1101px){.site-footer{background:#13213f}.site-footer nav{position:absolute;left:41.5%}.site-footer small{display:none}}

:root{--paper:url("assets/washi-fine.webp")}body{background-image:var(--paper);background-size:1440px auto}@media(min-width:1101px){.closing{clip-path:url(#closing-top-curve)}}
