:root{--paper:#f6f5f1;--white:#fff;--ink:#20211f;--muted:#61615a;--gold:#9a763f;--gold-light:#d5bc8b;--dark:#171a19;--line:#d6d4cc;--serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP',serif;--sans:'Hiragino Kaku Gothic ProN','Yu Gothic','Noto Sans CJK JP',Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}body.lock{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b98b43;outline-offset:5px}img{display:block;max-width:100%;height:auto}figure{margin:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.6}h1{font-size:clamp(34px,4vw,58px);letter-spacing:.1em}h2{font-size:clamp(29px,3vw,42px);letter-spacing:.075em;margin-bottom:25px}h3{font-size:24px}p{margin-bottom:22px}.wrap{width:min(1180px,88%);margin:auto}.narrow{width:min(850px,88%);margin:auto}.section{padding:104px 0}.eyebrow{font-family:Georgia,serif;letter-spacing:.23em;font-size:14px;color:var(--gold);margin-bottom:18px}.muted,.note{color:var(--muted)}.note{font-size:14px;line-height:1.9}.marble{background-color:var(--paper);background-image:none}.skip{position:fixed;top:-100px;left:20px;z-index:1000;background:white;color:black;padding:10px 20px}.skip:focus{top:10px}
.header{height:105px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;border-bottom:1px solid #ffffff22;position:relative;z-index:50}.brand{line-height:1.3;display:block;flex-shrink:0}.brand span{font-family:var(--serif);font-size:28px;letter-spacing:.15em}.brand small{display:block;font:12px Georgia,serif;letter-spacing:.28em;color:var(--gold-light);margin-top:9px}.nav{display:flex;align-items:center;gap:28px}.nav>a{font-size:14px;line-height:1.5;padding:12px 0;position:relative}.nav>a[aria-current=page]:not(.availability):after{content:'';position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--gold-light)}.nav .availability{border:1px solid #b79a67;padding:13px 22px;color:#eddfc4}.menu-toggle{display:none}.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;border:1px solid var(--gold);padding:12px 27px;font-size:15px;letter-spacing:.06em;background:transparent;transition:background .2s,color .2s}.button.gold{background:var(--gold-light);border-color:var(--gold-light);color:#20211f}.button:hover{background:var(--ink);color:white}.button.gold:hover{background:#e6d3af;color:#171a19}.text-link{display:inline-block;border-bottom:1px solid var(--gold);padding:6px 0;font-size:15px}.text-link:hover{color:var(--gold)}.actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.dark{background:var(--dark);color:#f7f5ef}.dark .eyebrow{color:var(--gold-light)}.dark .muted,.dark .note{color:#c0c3bc}.dark .text-link{border-color:var(--gold-light)}
.hero{height:min(720px,78svh);min-height:540px;position:relative;overflow:hidden;background:#182b3b;color:white}.hero-media{position:absolute;inset:0;transform-origin:center center;animation:slow-zoom 12s cubic-bezier(.4,0,.6,1) infinite alternate;will-change:transform}.hero-media picture,.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 48%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,14,20,.64),rgba(7,14,20,.17) 70%),linear-gradient(0deg,rgba(7,14,20,.55),transparent 70%)}.hero-copy{position:absolute;z-index:2;left:8%;bottom:13%;right:6%}.hero-copy h1{font-size:clamp(39px,4.6vw,66px);line-height:1.65;margin:20px 0 22px;text-shadow:0 2px 20px #0004}.hero-copy p{line-height:2;letter-spacing:.1em}.hero-copy .eyebrow{color:#e8d6b1}.hero-bottom{position:absolute;bottom:22px;left:8%;right:5%;z-index:3;display:flex;justify-content:space-between;align-items:center}.hero-bottom small{font-size:12px;letter-spacing:.13em}@keyframes slow-zoom{from{transform:translate3d(.4%,.2%,0) scale(1.025)}to{transform:translate3d(-1%,-.5%,0) scale(1.14)}}.facts{display:grid;grid-template-columns:repeat(3,1fr);padding:28px 0;border-bottom:1px solid #ffffff25}.fact{text-align:center;padding:8px 20px;border-right:1px solid #ffffff25;font-size:14px;color:#d7d9d3}.fact:last-child{border:0}.fact strong{color:white;font-weight:400;font-size:20px;margin-left:12px}.fact em{font-style:normal;font:32px Georgia,serif;color:var(--gold-light);margin:0 5px}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;margin-bottom:44px}.section-head p{max-width:430px}.intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:12%;padding-bottom:54px}.intro p{color:var(--muted);max-width:550px}.room-grid{display:grid;grid-template-columns:1.13fr 1fr;gap:55px}.room-grid .room-card:nth-child(2){margin-top:92px}.room-image{display:block;overflow:hidden;position:relative;background:#dbd8d0}.room-image img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s}.room-image:hover img{transform:scale(1.025)}.room-caption{padding:23px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.room-number{font:36px Georgia,serif;letter-spacing:.06em}.room-number small{font-size:12px;letter-spacing:.18em;margin-right:14px;color:var(--gold)}.room-caption p{margin:0;font-size:14px}.room-description{margin-top:17px;color:var(--muted);font-size:15px}.rate-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:9%}.rate-summary{width:100%;border-collapse:collapse}.rate-summary th,.rate-summary td{border-bottom:1px solid #ffffff30;text-align:left;padding:24px 0}.rate-summary th{font-weight:400}.rate-summary th small{display:block;color:#c0c3bc;font-size:13px}.rate-summary td{text-align:right;white-space:nowrap}.rate-summary strong{font:35px Georgia,serif;font-weight:400;color:#e3cba1}.rate-summary td small{font-size:14px;margin-left:4px}.rate-intro .button{margin-top:25px}.rate-note{margin-top:25px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:46px}.service-item{padding-top:24px;border-top:1px solid var(--gold)}.service-item .index{font:14px Georgia,serif;color:var(--gold);letter-spacing:.1em}.service-item h3{font-size:24px;margin:17px 0}.service-item p{color:var(--muted);font-size:15px}.access-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:10%;align-items:center}.address-box{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:32px 0}.address-box h3{font-size:25px;margin-bottom:16px}.address-box p{margin-bottom:14px}.access-points{display:flex;gap:45px;margin:25px 0}.access-points span{font-size:14px}.access-points strong{display:block;font-family:var(--serif);font-size:25px;font-weight:400}.closing{text-align:center;padding:65px 6%;background:#eae8e1}.closing h2{font-size:30px;margin:0 0 15px}.closing p{font-size:15px;color:var(--muted)}.closing .button{min-width:270px}.footer{padding:64px 0 28px;background:#111413;color:#e8e9e2}.footer-top{display:flex;justify-content:space-between;gap:50px}.footer-links{display:flex;flex-wrap:wrap;gap:12px 27px;max-width:510px;align-content:flex-start;font-size:14px}.footer-address{margin:22px 0;color:#bcc0b8;font-size:14px}.footer-bottom{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #ffffff25;padding-top:24px;margin-top:24px;font-size:12px;color:#afb4ab}.mobile-bar{display:none}
.breadcrumb{font-size:12px;color:var(--muted);padding:25px 0}.breadcrumb a{text-decoration:underline;text-underline-offset:4px}.breadcrumb span{margin:0 10px}.page-title{padding:24px 0 66px;border-bottom:1px solid var(--line)}.page-title h1{margin:10px 0 20px}.page-title p:last-child{margin-bottom:0;max-width:750px;color:var(--muted)}.room-detail{display:grid;grid-template-columns:1.25fr .75fr;gap:6%;align-items:center;padding:70px 0;border-bottom:1px solid var(--line)}.room-detail:nth-child(even){grid-template-columns:.75fr 1.25fr}.room-detail:nth-child(even) .room-detail-photo{order:2}.room-detail h2{font-size:29px;margin-top:25px}.room-detail .room-number{font-size:50px}.room-detail-photo .note{margin-top:10px}.tags{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none;margin:25px 0}.tags li{font-size:13px;border:1px solid var(--line);padding:4px 10px}.gallery-dialog{max-width:1200px;width:94vw;border:0;padding:54px 20px 18px;background:#171a19;color:white}.gallery-dialog::backdrop{background:#000d}.gallery-dialog img{margin:auto;max-height:77svh;object-fit:contain}.gallery-dialog button{position:absolute;top:10px;right:20px;padding:6px 16px;border:1px solid #ffffff77;background:transparent;color:white;font-size:14px}.gallery-dialog p{text-align:center;margin:12px 0 0}.room-footnote{padding-top:30px}
.rate-section{margin-bottom:65px}.rate-section h2{font-size:28px;margin-bottom:12px}.table-scroll{overflow-x:auto;margin-top:25px}.price-table{border-collapse:collapse;width:100%;min-width:610px}.price-table caption{text-align:left;color:var(--muted);font-size:14px;margin-bottom:14px}.price-table th,.price-table td{padding:22px 23px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.price-table thead th{background:#e8e6de;font-size:14px;font-weight:500}.price-table tbody th{font-weight:500;font-size:16px;width:25%}.price-table td{font-size:16px}.price-table td strong{font:27px Georgia,serif;display:block;line-height:1.5}.price-table td small{display:block;color:var(--muted);font-size:13px}.price-table tbody tr:nth-child(even){background:#ffffff60}.rate-callout{border-left:2px solid var(--gold);padding:8px 0 8px 25px;margin:35px 0}.rate-callout p{margin:0}.rate-notes{padding-left:20px;font-size:14px;color:var(--muted)}.faq{margin-top:70px}.faq details{border-bottom:1px solid var(--line);padding:21px 0}.faq summary{font-size:16px;cursor:pointer;padding-right:20px}.faq details p{color:var(--muted);margin:18px 0 2px}.equipment{display:grid;grid-template-columns:repeat(2,1fr);gap:50px 70px}.equipment article{border-top:1px solid var(--gold);padding-top:25px}.equipment ul{padding-left:20px;color:var(--muted)}.equipment h2{font-size:27px}.service-note{margin-top:40px}.access-detail{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:start}.info-list{margin:0}.info-list>div{display:grid;grid-template-columns:110px 1fr;border-bottom:1px solid var(--line);padding:18px 0;gap:18px}.info-list dt{font-size:14px;color:var(--muted)}.info-list dd{margin:0}.access-photo img{width:100%}.access-photo figcaption{font-size:14px;margin-top:12px;color:var(--muted)}.routes{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:65px}.routes article{border-top:1px solid var(--gold);padding-top:25px}.routes h2{font-size:28px}.legal h2{font-size:25px;margin-top:40px}.legal a{text-decoration:underline}.error-page{text-align:center;min-height:50vh}
@media(min-width:1600px){.hero{height:760px}.hero-media img{object-position:center 53%}}
@media(max-width:1000px){.nav{gap:17px}.header{padding:0 4%;height:90px}.brand span{font-size:24px}.nav .availability{padding:12px}.section{padding:80px 0}.room-grid{gap:30px}.intro{gap:6%}.rate-intro{gap:5%}.service-grid{gap:24px}.access-grid{gap:5%}.room-detail h2{font-size:24px}}
@media(max-width:760px){body{padding-bottom:74px}.wrap,.narrow{width:88%}.header{height:83px;padding:0 6%}.brand span{font-size:24px}.brand small{font-size:10px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:51px;min-height:51px;background:transparent;color:white;border:0;align-items:center;font-size:10px;letter-spacing:.06em}.menu-toggle i{width:23px;height:1px;background:#e3d4b5;display:block}.nav{display:none;position:absolute;top:83px;left:0;right:0;background:var(--dark);padding:23px 6% 32px;max-height:calc(100svh - 150px);overflow:auto;box-shadow:0 12px 20px #0003}.nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}.nav>a{font-size:16px;padding:16px 0;border-bottom:1px solid #ffffff25}.nav>a[aria-current=page]:not(.availability):after{display:none}.nav .availability{margin-top:20px;text-align:center;padding:17px}.hero{height:650px;height:calc(88svh - 83px);min-height:510px;max-height:720px}.hero-media img{object-position:59% center}.hero:after{background:linear-gradient(0deg,#071017c9,transparent 100%),linear-gradient(90deg,#07101740,transparent)}.hero-copy{left:7%;bottom:16%;right:5%}.hero-copy h1{font-size:clamp(30px,7.5vw,48px);letter-spacing:.05em;line-height:1.8;margin-bottom:18px}.hero-copy p{font-size:14px;letter-spacing:.035em}.hero-copy .eyebrow{font-size:12px;letter-spacing:.15em}.hero-bottom{left:7%;bottom:17px}.hero-bottom small{font-size:10px}.facts{padding:18px 0}.fact{padding:8px 6px;font-size:12px;line-height:1.7}.fact strong{display:block;font-size:15px;margin:3px 0 0}.fact em{font-size:23px}.section{padding:64px 0}h2{font-size:29px;line-height:1.7}.intro,.section-head{display:block}.intro{padding-bottom:25px}.intro p{margin-top:23px}.section-head{margin-bottom:30px}.section-head p{max-width:none}.room-grid{display:block}.room-grid .room-card:nth-child(2){margin-top:44px}.room-caption{padding:18px 0}.room-number{font-size:32px}.room-caption p{font-size:13px}.rate-intro{display:block}.rate-summary{margin-top:23px}.rate-summary th,.rate-summary td{padding:20px 0}.rate-summary strong{font-size:31px}.service-grid{display:block;margin-top:30px}.service-item{margin-bottom:29px;padding-top:18px}.service-item h3{margin:10px 0}.access-grid{display:block}.address-box{margin-top:35px}.access-points{gap:35px}.closing{padding:49px 6%}.closing h2{font-size:25px}.footer{padding-top:46px}.footer-top,.footer-bottom{display:block}.footer-links{margin:30px 0}.footer-bottom p{margin-top:16px}.mobile-bar{display:grid;grid-template-columns:1fr 1.8fr;position:fixed;bottom:0;left:0;right:0;padding-bottom:env(safe-area-inset-bottom,0px);min-height:68px;background:var(--dark);z-index:60;border-top:1px solid #ffffff30}.mobile-bar a{display:flex;align-items:center;justify-content:center;padding:15px 12px;color:white;font-size:14px}.mobile-bar .availability{background:var(--gold-light);color:#20211f;gap:9px}.mobile-bar small{font-size:10px}.page-title{padding:14px 0 42px}.page-title h1{font-size:33px}.page-title p{font-size:15px}.breadcrumb{padding:18px 0}.room-detail,.room-detail:nth-child(even){display:flex;flex-direction:column;gap:26px;padding:40px 0;align-items:stretch}.room-detail:nth-child(even) .room-detail-photo{order:0}.room-detail h2{font-size:27px;margin:15px 0}.room-detail .room-number{font-size:40px}.room-detail p{font-size:15px}.room-detail-photo .note{font-size:12px}.table-scroll{margin-top:17px}.price-table{min-width:0;table-layout:fixed}.price-table th,.price-table td{padding:18px 10px}.price-table tbody th{width:24%;font-size:13px}.price-table thead th{font-size:12px;line-height:1.7}.price-table td{font-size:13px}.price-table td strong{font-size:23px}.price-table td small{font-size:12px}.rate-section{margin-bottom:45px}.rate-section h2{font-size:25px}.rate-callout{padding-left:18px}.equipment{display:block}.equipment article{margin-bottom:32px}.access-detail,.routes{display:block}.access-photo{margin-top:30px}.routes article{margin-top:30px}.info-list>div{grid-template-columns:85px 1fr;gap:12px}.gallery-dialog{padding:52px 12px 15px}.eyebrow{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media{animation:none}.room-image img,.button{transition:none}.room-image:hover img{transform:none}}
@media print{.header,.footer,.mobile-bar,.closing{display:none}body{padding:0;background:white;color:black}.section{padding:20px 0}.hero{height:400px;min-height:0}.hero-media{animation:none}.dark{background:white;color:black}.dark .note,.dark .muted{color:#333}.table-scroll{overflow:visible}a{text-decoration:underline}}

/* Room catalogue: preserve portrait photographs without cropping. */
.more-rooms{text-align:center;margin-top:44px}.more-rooms .button{min-width:280px}
.catalogue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:52px 30px}.catalogue-photo{display:block;position:relative;overflow:hidden;background:#e5e2da;aspect-ratio:4/3}.catalogue-photo picture{display:block;width:100%;height:100%}.catalogue-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .8s}.catalogue-photo:hover img{transform:scale(1.025)}.photo-expand{position:absolute;right:12px;bottom:12px;padding:5px 12px;font-size:12px;letter-spacing:.04em;background:#151713c9;color:#fff;border:1px solid #ffffff60}.catalogue-caption{padding:22px 0 16px;border-bottom:1px solid var(--line)}.catalogue-caption h2{font:34px Georgia,serif;letter-spacing:.05em;margin:0 0 12px}.catalogue-caption h2 small{font-size:12px;letter-spacing:.16em;color:var(--gold);margin-right:14px}.catalogue-caption p{font-size:14px;line-height:1.85;color:var(--muted);margin:0}.catalogue-featured{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:65px}
@media(max-width:1000px){.catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.catalogue-grid,.catalogue-featured{grid-template-columns:minmax(0,1fr);gap:36px}.catalogue-featured{margin-top:36px}.catalogue-caption{padding-top:18px}.room-catalogue{padding-top:36px}.more-rooms{margin-top:30px}.more-rooms .button{min-width:0;width:100%;max-width:360px}}
@media(prefers-reduced-motion:reduce){.catalogue-photo img{transition:none}.catalogue-photo:hover img{transform:none}}

/* Continuation: clear paths, generous tap targets and a restrained classical ornament. */
.nav{gap:18px}.nav>a{font-size:13px}.header{padding-left:3%;padding-right:3%}.brand span{font-size:26px}.brand small{font-size:10px}
.quick-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 35px;padding:35px 0}.quick-links a{display:flex;align-items:center;justify-content:space-between;min-height:58px;border-bottom:1px solid var(--line);font-size:14px}.quick-links span{color:var(--gold)}
.vacancy{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:26px 30px;border:1px solid #c6b58f;margin-top:10px;margin-bottom:15px;background:#fff9}.vacancy h2{font-size:23px;margin-bottom:7px}.vacancy p{margin:0;font-size:14px}.vacancy .eyebrow{font-size:11px;margin-bottom:8px}.vacancy .button{flex-shrink:0}
.catalogue-caption .text-link{margin-top:16px;min-height:44px}.single-room{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:7%;align-items:start}.single-photo{display:block;position:relative;background:#e5e2da}.single-photo img{width:100%;height:auto}.single-info h2{font-size:30px}.single-info h3{font-size:21px;margin-top:30px;margin-bottom:12px}.single-info .tags{margin:10px 0}.single-info .actions .button{width:100%}.room-rate{border-top:1px solid var(--line);margin-top:30px;padding:25px 0}.room-rate p{margin-bottom:8px}.room-rate strong{font:29px Georgia,serif}.room-pagination{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.ornament{display:flex;align-items:center;gap:8px;max-width:290px;margin:0 0 30px;color:#a68a53}.ornament span{flex:1;height:4px;border-top:1px solid #bba270;border-bottom:1px solid #bba27088}.ornament svg{flex-shrink:0}.faq-page details{padding:25px 0;border-bottom:1px solid var(--line)}.faq-page summary,.calculation-notes summary,.simulator-result summary{cursor:pointer;min-height:44px;padding:8px 0}.faq-page details p{margin-top:18px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.simulator-form{border-top:1px solid var(--line);padding-top:30px}.form-grid label{font-size:15px;display:block;min-width:0}.form-grid input,.form-grid select{display:block;margin-top:9px;font:inherit;color:var(--ink);background:white;border:1px solid #aaa494;border-radius:0;min-height:52px;padding:12px;width:100%;min-width:0;max-width:100%;appearance:auto}.form-grid input:focus-visible,.form-grid select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.simulator-form>.button{margin:30px 0 15px;min-width:240px}.simulator-result{border:1px solid #bca77b;padding:32px;margin:25px 0;background:#fffaf0}.simulator-result h2{font-size:26px;margin-bottom:12px}.simulator-result p:last-child{margin-bottom:0}.result-price{font:46px Georgia,serif;margin-bottom:20px}.simulation-disclaimer{font-size:14px}.calculation-notes{margin-bottom:25px;border-bottom:1px solid var(--line)}.calculation-notes p{font-size:14px;color:var(--muted)}.job+.job{margin-top:60px}
@media(min-width:761px) and (max-width:1190px){.header{height:auto;min-height:105px;flex-wrap:wrap;gap:20px;padding-top:20px;padding-bottom:20px}.nav{flex-wrap:wrap;gap:18px}.nav>a{font-size:13px}}
@media(max-width:760px){.header{padding-left:6%;padding-right:6%}.nav{gap:0}.nav>a{font-size:16px}.quick-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;padding:20px 0}.quick-links a{font-size:13px;gap:10px;min-height:60px}.vacancy{display:block;padding:24px}.vacancy .button{margin-top:20px;width:100%;font-size:14px;padding:12px}.single-room{display:block}.single-info{margin-top:32px}.form-grid{grid-template-columns:1fr;gap:20px}.form-grid input,.form-grid select{font-size:16px}.simulator-form>.button{width:100%;min-width:0}.simulator-result{padding:23px}.single-info h2{font-size:26px}.room-pagination{gap:16px}.room-pagination a{font-size:13px}.ornament{max-width:220px;margin-bottom:24px}}

/* Real photographed black marble; original source and license in docs/assets.md. */
.dark,.footer{background-image:linear-gradient(#0e1110cc,#0e1110cc),url("images/black-marble.webp");background-size:auto,cover;background-position:center}.header{background-image:linear-gradient(#0e1110e6,#0e1110e6),url("images/black-marble.webp");background-size:auto,cover;background-position:center 35%}
@media print{.dark,.header,.footer{background-image:none}}

.simulator-form fieldset{border:0;padding:0;margin:0;min-width:0}.simulator-form fieldset>.button{margin:30px 0 15px;min-width:240px}.simulator-boot{border:1px solid #bda97e;background:#f1e7d1;color:#443821;padding:18px;font-size:14px}.simulator-boot[hidden]{display:none}.simulator-form fieldset:disabled{opacity:.55}.simulator-form button:disabled{cursor:not-allowed}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.simulator-form fieldset>.button{min-width:0;width:100%}}

/* Classical lines derived from the reference's general style, drawn as original SVG. */
.ornament{max-width:400px;gap:0;align-items:flex-end;margin-bottom:27px}.ornament span{margin-bottom:3px;height:4px}.ornament svg{height:30px;width:100px}.page-title>.ornament{max-width:420px}.intro .ornament{max-width:330px}.room-number-nav{padding-top:35px}.room-number-nav>p{font-size:14px;color:var(--muted);margin-bottom:12px}.room-number-nav>div{display:flex;flex-wrap:wrap;gap:10px}.room-number-nav a{display:flex;align-items:center;justify-content:center;min-width:64px;min-height:46px;border:1px solid #c4b494;font:19px Georgia,serif;background:#fff8}.room-number-nav a:hover{background:#e9dfcd}.room-pagination a{min-height:44px}.plan-comparison{width:100%;border-collapse:collapse;font-size:14px;margin-top:28px;table-layout:fixed}.plan-comparison caption{text-align:left;font-family:var(--serif);font-size:19px;margin-bottom:14px}.plan-comparison th,.plan-comparison td{text-align:left;padding:14px 10px;border-bottom:1px solid #d6c9b0;overflow-wrap:anywhere}.plan-comparison thead th{font-weight:500;font-size:12px}.plan-comparison th:first-child{width:45%}.plan-comparison tbody th{font-weight:400}.plan-comparison .recommended{background:#ecdfc2}.plan-comparison .recommended th{font-weight:600}.stay-schedule{font-size:14px;border-top:1px solid #d6c9b0;padding-top:20px}.plan-comparison+.note{margin-top:16px}
@media(max-width:760px){.ornament{max-width:310px}.page-title>.ornament{max-width:280px}.room-number-nav{padding-top:25px}.room-number-nav a{min-width:54px}.room-pagination{flex-wrap:wrap;gap:12px;justify-content:space-between}.room-pagination a{font-size:12px}.plan-comparison th,.plan-comparison td{padding:12px 6px;font-size:12px}.plan-comparison th:first-child{width:42%}.plan-comparison thead th{font-size:11px}.stay-schedule{line-height:1.9}}
/* Editorial photography: consistent proportions, quiet captions, generous whitespace. */
.food-section{background:#eeece5;padding-bottom:72px}.food-intro{color:var(--muted);margin:0;line-height:2}.food-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.food-card{min-width:0}.food-card img{width:100%;aspect-ratio:836/623;object-fit:cover}.food-card figcaption{display:flex;gap:18px;align-items:baseline;border-bottom:1px solid var(--line);padding:23px 0 15px}.food-card .eyebrow{margin:0;font-size:13px}.food-card h3{margin:0;font-size:24px}.food-footer{display:flex;justify-content:space-between;gap:26px;align-items:baseline;margin-top:26px}.food-footer .note{max-width:660px;margin:0}.food-footer a{flex-shrink:0}.dining-teaser{background:#ece9e0}.dining-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:center}.dining-layout img{width:100%}.arrival-guide{border-top:1px solid var(--line);padding-top:68px}.arrival-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px}.arrival-grid article{min-width:0}.arrival-grid h3{font-size:23px}.arrival-grid .button{font-size:14px;padding:12px 18px;min-height:48px}.arrival-grid [data-copy-status]{margin-top:15px}.food-section+.section{padding-top:76px}.form-grid input[aria-invalid=true]{border:2px solid #9b3327}.form-grid input:focus-visible,.form-grid select:focus-visible{outline:3px solid #9a763f;outline-offset:3px}button[hidden]{display:none}
@media(max-width:760px){.food-grid{grid-template-columns:1fr;gap:32px}.food-section{padding-bottom:48px}.food-card figcaption{padding-top:16px}.food-card h3{font-size:23px}.food-footer{display:block}.food-footer a{display:inline-block;margin-top:20px}.food-intro{margin-top:16px}.dining-layout{grid-template-columns:1fr;gap:32px}.dining-layout h2{font-size:29px}.arrival-grid{grid-template-columns:1fr;gap:32px}.arrival-grid article+article{border-top:1px solid var(--line);padding-top:28px}.arrival-guide{padding-top:48px}.arrival-grid .button{width:100%}.mobile-bar{padding-bottom:env(safe-area-inset-bottom,0px)}body{padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}.form-grid input,.form-grid select{min-height:48px;min-width:0;max-width:100%}.form-grid label{min-width:0}.room-pagination a{min-height:44px;display:flex;align-items:center}}

/* Catalogue thumbnails share a 4:3 viewport. Originals remain unchanged in the gallery. */
/* Dining menu: faithful PDF artwork, editable text and prominent ordering conditions. */
.menu-guide{padding-top:28px;padding-bottom:48px}.menu-overview{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:38px;background:#eeece5}.menu-overview h2{font-size:26px;margin-bottom:22px}.menu-hours{display:grid;gap:14px}.menu-hours>div{display:flex;align-items:baseline;gap:24px}.menu-hours strong{font:25px Georgia,serif;white-space:nowrap}.menu-prices{display:flex;gap:34px}.menu-prices p{margin-bottom:16px;font-size:14px}.menu-prices strong{display:block;font:36px Georgia,serif;margin:6px 0}.menu-prices small{color:var(--muted)}.menu-overview .note{margin:0}.menu-restriction{border-left:3px solid var(--gold);padding:18px 22px;background:#fff;margin:24px 0 18px}.menu-restriction strong{display:block;font-weight:600;margin-bottom:6px}.menu-order{margin:0;color:var(--muted)}.menu-category{padding:32px 0 48px}.menu-category+.menu-category{border-top:1px solid var(--line);padding-top:56px}.dish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 30px}.dish-card{min-width:0}.dish-card img{width:100%;aspect-ratio:1179/884;object-fit:contain}.dish-caption{border-bottom:1px solid var(--line);padding:22px 0 18px}.dish-caption h3{font-size:23px;margin:0}.dish-caption .note{margin:12px 0 0;font-size:13px}.dish-variants{list-style:none;padding:0;margin:12px 0 0;font-size:14px;color:var(--muted)}.dish-placeholder{aspect-ratio:1179/884;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#eeece5;outline:1px solid #d6c8b2;outline-offset:-16px;color:var(--muted);gap:12px}.dish-placeholder .eyebrow{margin:0;font-size:12px}.season-label{font-size:13px;color:#745525;margin:0 0 8px}.menu-bottom{padding-top:0}.extra-rice{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin-bottom:26px}.extra-rice h2{font-size:24px;margin:0}.extra-rice p{margin:0}.extra-rice strong{font:32px Georgia,serif}.food-card img{aspect-ratio:1179/884;object-fit:contain}.food-card h3{font-size:21px}.food-card figcaption{gap:12px}
@media(max-width:1000px){.dish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-overview{gap:30px;padding:28px}}
@media(max-width:760px){.menu-overview{grid-template-columns:1fr;gap:28px;padding:24px}.menu-overview>div+div{padding-top:24px;border-top:1px solid var(--line)}.menu-hours>div{gap:18px;justify-content:space-between}.menu-hours strong{font-size:23px}.menu-prices{gap:40px}.menu-restriction{padding:16px 18px;font-size:15px}.menu-order{font-size:15px}.dish-grid{grid-template-columns:1fr;gap:28px}.dish-caption{padding-top:16px}.dish-caption h3{font-size:24px}.menu-category{padding-top:12px}.menu-category+.menu-category{padding-top:38px}.menu-overview h2{font-size:25px}.menu-guide{padding-bottom:36px}}
/* Complimentary hospitality: restrained editorial rhythm and explicit service scope. */
.free-opening{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:center;padding-top:56px;padding-bottom:72px}.free-lead-photo img{width:100%}.free-lead-copy h2{font-size:clamp(28px,3vw,40px)}.free-lead-copy .note{max-width:410px}.free-category{border-top:1px solid var(--line);padding-top:64px;padding-bottom:64px}.free-heading{align-items:center}.free-heading h2{font-size:32px;margin:0}.free-scope{font-size:13px;white-space:nowrap;margin:0;color:var(--muted)}.free-scope strong{display:block;color:var(--gold);font-family:var(--serif);font-weight:500;font-size:27px;margin-top:4px}.free-schedule{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;background:#eae7df;padding:30px 36px;margin-bottom:36px}.free-schedule h3{font-family:var(--sans);font-size:15px;margin-bottom:14px}.free-schedule .eyebrow{font-size:12px;margin-bottom:10px}.free-time{font:34px Georgia,serif;margin:0}.free-schedule dl{margin:0 0 14px}.free-schedule dl>div{display:grid;grid-template-columns:130px 1fr;gap:12px;margin-bottom:7px;font-size:15px}.free-schedule dd{margin:0;white-space:nowrap}.free-schedule .note{font-size:13px;margin:0}.free-category .dish-caption h3{font-size:21px}.morning-drinks{border-bottom:1px solid var(--line);padding:28px 0}.morning-drinks h3{font-size:20px;margin-bottom:10px}.morning-drinks p{margin:0 0 5px}.free-terms{border-left:2px solid var(--gold);padding:4px 0 4px 22px;margin-top:30px}.free-terms h3{font-family:var(--sans);font-size:14px;font-weight:600;margin-bottom:8px}.free-terms p{font-size:13px;color:var(--muted);margin:4px 0}.free-night{background:#eae7df}.free-night .free-category{border:0}.free-four{grid-template-columns:repeat(4,minmax(0,1fr));gap:26px}.free-four .dish-caption h3{font-size:20px}.night-order{display:flex;align-items:baseline;gap:28px;margin-bottom:34px}.night-order span{font-size:14px}.night-order strong{font:28px Georgia,serif}.free-quantity{margin-top:-15px;margin-bottom:35px}.free-quantity strong{font-weight:500;color:#775729}.free-products .dish-caption .note{margin-top:6px}.free-ice-section{background:#eeece5}.free-ice-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.free-ice-layout h2{font-size:32px}.free-ice-layout h3{font-size:23px;margin:25px 0 12px}.free-ice-layout h3 small{font-size:16px}.free-end{padding-top:38px;padding-bottom:64px}.free-teaser-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.free-teaser-layout img{width:100%}.free-teaser-layout h2{margin-bottom:25px}.free-benefits{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}.free-benefits li{border-bottom:1px solid #ffffff35;padding-bottom:12px}.free-benefits span{display:block;font-family:var(--serif);font-size:21px}.free-benefits small{color:#d3c7af;font-size:12px}.free-teaser-layout .note{font-size:13px}.dining-crosslink{display:flex;gap:32px;align-items:center;justify-content:space-between;padding:30px 0;border-bottom:1px solid var(--line);margin-bottom:12px}.dining-crosslink p{margin:0}.dining-crosslink .eyebrow{font-size:12px;margin-bottom:5px}.dining-crosslink a{flex-shrink:0}
@media(max-width:1000px){.free-four{grid-template-columns:repeat(2,minmax(0,1fr))}.free-schedule{gap:24px;padding:26px}.free-heading{gap:28px}.free-heading h2{font-size:28px}.free-schedule dl>div{grid-template-columns:105px 1fr;font-size:14px}}
@media(max-width:760px){.free-opening,.free-teaser-layout,.free-ice-layout{grid-template-columns:1fr;gap:32px}.free-opening{padding-top:24px;padding-bottom:44px}.free-lead-copy h2{font-size:30px}.free-category{padding-top:40px;padding-bottom:44px}.free-heading{display:flex;align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:28px}.free-heading h2{font-size:26px}.free-heading .eyebrow{margin-bottom:8px}.free-scope{display:flex;align-items:baseline;gap:18px;white-space:normal}.free-scope strong{font-size:23px;margin:0}.free-schedule{grid-template-columns:1fr;gap:25px;padding:24px}.free-schedule>div+div{border-top:1px solid var(--line);padding-top:22px}.free-schedule dl>div{grid-template-columns:105px 1fr;gap:8px}.free-time{font-size:32px}.free-category .dish-caption h3{font-size:22px}.free-four{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.free-four .dish-caption{padding-top:14px}.free-four .dish-caption h3{font-family:var(--sans);font-size:15px;line-height:1.8;overflow-wrap:anywhere}.free-four .dish-caption .note{font-size:12px}.morning-drinks p{font-size:14px}.free-terms{padding-left:16px}.free-terms p{font-size:13px}.night-order{gap:16px;flex-wrap:wrap}.night-order strong{font-size:26px}.free-quantity{font-size:15px;margin-top:0}.free-ice-layout h2{font-size:28px}.free-teaser-layout h2{font-size:30px}.free-benefits{gap:16px}.free-benefits span{font-size:20px}.free-teaser-layout .button{width:100%;padding:12px 15px;font-size:14px}.dining-crosslink{display:block}.dining-crosslink a{margin-top:16px}.free-end .button{width:100%}}

/* Additions scoped to navigation, the retained photo presentation and article pages. */
#main{overflow-x:clip}.site-menu{display:none}.menu-toggle{list-style:none;cursor:pointer}.menu-toggle::-webkit-details-marker{display:none}.menu-toggle:focus-visible{outline:2px solid var(--gold-light);outline-offset:4px}
.header .nav{gap:18px}.header .nav>a{font-size:13px}.header .brand span{font-size:25px}
@media(max-width:1100px){
 .header{height:auto;min-height:83px;flex-wrap:wrap;padding:16px 6%;gap:0}.header>.brand{min-height:51px;display:flex;flex-direction:column;justify-content:center}
 .header>.desktop-nav{display:none}.site-menu{display:block;margin-left:auto}.site-menu[open]{flex-basis:100%;margin-left:0}
 .menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:51px;min-height:51px;background:none;color:white;border:0;font-size:10px;letter-spacing:.06em}
 .menu-toggle i{width:23px;height:1px;background:#e3d4b5;display:block}.site-menu[open] .menu-toggle{position:absolute;right:6%;top:16px}
 .site-menu .nav{position:static;display:none;padding:16px 0 12px;max-height:calc(100svh - 180px);overflow-y:auto;box-shadow:none;pointer-events:auto}
 .site-menu[open] .nav{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-menu .nav>a{padding:15px 0;font-size:16px;border-bottom:1px solid #ffffff25}.site-menu .nav .availability{margin-top:16px;text-align:center;padding:16px}
 .site-menu[open] .menu-toggle i:first-child{transform:translateY(3px) rotate(45deg)}.site-menu[open] .menu-toggle i:nth-child(2){transform:translateY(-3px) rotate(-45deg)}
}
.photo-cycle{position:relative;aspect-ratio:4/3;background:#f6f5f1;overflow:hidden}.photo-cycle-frame{position:absolute;inset:0;opacity:0;z-index:0}.photo-cycle-frame:first-child{opacity:1}.photo-cycle img{width:100%;height:100%;object-fit:contain}.photo-cycle picture{display:block;height:100%}
@media(prefers-reduced-motion:no-preference){
 .photo-cycle-three .photo-cycle-frame{animation:gokko-three 15s linear infinite}.photo-cycle-three .photo-cycle-frame:nth-child(2){animation-delay:-10s}.photo-cycle-three .photo-cycle-frame:nth-child(3){animation-delay:-5s}
 .photo-cycle-four .photo-cycle-frame{animation:gokko-four 20s linear infinite}.photo-cycle-four .photo-cycle-frame:nth-child(2){animation-delay:-15s}.photo-cycle-four .photo-cycle-frame:nth-child(3){animation-delay:-10s}.photo-cycle-four .photo-cycle-frame:nth-child(4){animation-delay:-5s}
}
@keyframes gokko-three{0%,33.332%{opacity:1;z-index:1}33.333%,86.666%{opacity:0;z-index:0}86.667%{opacity:0;z-index:2}100%{opacity:1;z-index:2}}
@keyframes gokko-four{0%,24.999%{opacity:1;z-index:1}25%,89.999%{opacity:0;z-index:0}90%{opacity:0;z-index:2}100%{opacity:1;z-index:2}}
.photo-cycle[data-loading] .photo-cycle-frame{animation:none!important;opacity:0}.photo-cycle[data-loading] .photo-cycle-frame:first-child{opacity:1}
.food-photo-frame{position:relative;padding:24px;border:1px solid #a28048;background:#faf8f2;box-shadow:inset 0 0 0 5px #faf8f2,inset 0 0 0 6px #d6c6a7}.food-photo-frame:before,.food-photo-frame:after{content:'❧';position:absolute;color:#987338;font-size:25px;line-height:1;z-index:3;background:#faf8f2}.food-photo-frame:before{left:4px;top:1px}.food-photo-frame:after{right:4px;bottom:1px;transform:rotate(180deg)}
.article-grid,.guide-areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.guide-areas article{border-top:1px solid var(--gold);padding:24px 0}.guide-areas h3{margin-bottom:12px}.guide-topics{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.guide-topics a{border:1px solid #c8b68f;padding:8px 16px;font-size:14px}.article-card{border-bottom:1px solid #d6c6a7;padding-bottom:24px}.article-card img{width:100%;aspect-ratio:3/2;object-fit:cover}.article-card h3{font:24px var(--serif);line-height:1.65;margin:12px 0}.article-meta{color:var(--muted);font-size:13px;display:flex;gap:16px;flex-wrap:wrap}.article-body{max-width:820px;margin:auto;line-height:2}.article-body h2{font-size:28px;margin:52px 0 24px}.article-body h3{font-size:21px;margin:30px 0 12px}.article-body p{margin:16px 0}.article-body .info-list{margin:30px 0}.article-hero img{display:block;width:100%;height:auto}.article-hero figcaption{font-size:12px;color:var(--muted);margin-top:8px}.article-related-rooms{display:grid;grid-template-columns:1fr 1fr;gap:24px}.article-related-rooms img{width:100%;aspect-ratio:4/3;object-fit:cover}.article-cta{background:#f0ede5;border-left:2px solid var(--gold);padding:26px;margin:40px 0}.draft-notice{background:#f3e5c5;color:#453720;padding:14px 6%;font-size:14px}.article-topic{scroll-margin-top:30px}.guide-topic-list{display:grid;gap:28px}.guide-topic-list>section{border-top:1px solid #d8d1c4;padding-top:24px}.guide-topic-list h2{font-size:25px}.guide-intro{max-width:750px}.article-card .text-link{margin-top:8px}.article-card:focus-within{outline:2px solid var(--gold)}
@media(max-width:760px){.article-grid,.guide-areas{grid-template-columns:1fr;gap:24px}.article-body h2{font-size:25px}.article-body{font-size:15px}.article-related-rooms{gap:16px}.article-cta{padding:20px}.article-meta{gap:8px 16px}.food-photo-frame{padding:20px}}
.photo-cycle .photo-cycle-frame{animation-play-state:var(--slide-state,running)}
.photo-cycle[data-static] .photo-cycle-frame{animation:none!important;opacity:0}.photo-cycle[data-static] .photo-cycle-frame:first-child{opacity:1}

/* Local recommendations: restrained editorial dates and recent-article labels. */
.latest-articles{margin:28px 0 56px}.latest-articles>h2{font:28px var(--serif);margin:8px 0 12px}.latest-articles>.note{margin-bottom:24px}.article-freshness{color:#70501d;border:1px solid #b39763;padding:1px 8px;font-size:11px;letter-spacing:.06em;line-height:1.8}.article-freshness[hidden]{display:none}.article-empty{border-top:1px solid #d6c6a7;padding-top:22px;color:var(--muted)}
@media(max-width:760px){.latest-articles{margin-bottom:40px}.latest-articles>h2{font-size:25px}}

/* Hero film is independent of the exterior photo's existing zoom. */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:0;z-index:1;pointer-events:none;transition:opacity 1s ease}
.hero-with-video:after{z-index:2;pointer-events:none}.hero-with-video .hero-copy{z-index:3}.hero-with-video .hero-bottom{z-index:3}
.hero-video-playing .hero-video{opacity:1}.hero-video-playing .hero-media{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.hero-video{display:none;transition:none}}
@media print{.hero-video{display:none}}

/* Dining artwork includes its own gold frame. Keep the complete 4:3 artwork visible. */
.dining-layout .food-photo-frame{padding:0;border:0;box-shadow:none;background:#f5eedf}
.dining-layout .food-photo-frame:before,.dining-layout .food-photo-frame:after{display:none}
.dining-layout .photo-cycle{background:#f5eedf}

/* Framed breakfast artwork displays without duplicate exterior decoration. */
.free-teaser-layout .food-photo-frame{padding:0;border:0;box-shadow:none;background:#f5eedf}
.free-teaser-layout .food-photo-frame:before,.free-teaser-layout .food-photo-frame:after{display:none}
.free-teaser-layout .photo-cycle{background:#f5eedf}

/* Scoped to the supplied 2 x 2 alcohol artwork; no changes to grid geometry. */
.alcohol-artwork{position:relative;overflow:hidden;aspect-ratio:4/3;width:100%}
.alcohol-artwork picture{display:block}
.dish-card .alcohol-artwork img{position:absolute;width:200%;max-width:none;height:200%;aspect-ratio:auto;object-fit:fill;left:0;top:0}
.dish-card .alcohol-artwork.top-right img{left:-100%}
.dish-card .alcohol-artwork.bottom-left img{top:-100%}
.dish-card .alcohol-artwork.bottom-right img{left:-100%;top:-100%}

/* Room detail only: no duplicate lead paragraph or its reserved spacing. */
.room-page-intro .page-title{padding-bottom:32px}
.room-page-intro .page-title h1{margin-bottom:0}
.room-page-intro + .section{padding-top:48px}
@media(max-width:760px){
 .room-page-intro .page-title{padding-bottom:24px}
 .room-page-intro + .section{padding-top:32px}
}

/* 005: Slower, floating directional CSS-only scroll reveals.
   Maintains the working view-timeline approach of version 002.
   No JS, no content hiding in unsupported/reduced-motion browsers. */
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    /* Shared effect timing: each element animates as it enters the viewport. */
    .intro > div:first-child,
    .intro > div:last-child > p,
    .room-card .room-image,
    .section-head h2,
    .food-photo-frame,
    .free-teaser-layout > div > h2,
    .free-teaser-layout > div > .free-benefits,
    .dining-layout > div > h2,
    .dining-layout > div > p,
    .access-grid > div > h2,
    .access-grid > div > p,
    .catalogue-photo,
    .catalogue-caption > p,
    .single-info > h2,
    .single-info > p,
    .access-photo,
    .routes article > h2,
    .routes article > p,
    .service-item > h3,
    .service-item > p {
      animation-duration: 1s; /* Scroll-driven: duration does not set actual elapsed seconds. */
      animation-timing-function: cubic-bezier(.42, 0, .58, 1);
      animation-fill-mode: both;
      animation-timeline: view(block);
      animation-range: entry 0% cover 38%;
      animation-name: gokko-enter-up;
    }

    /* Editorial rhythm: alternate photo directions, not every text item. */
    .intro > div:first-child,
    .room-card:nth-child(odd) .room-image,
    .food-photo-frame,
    .catalogue-photo:nth-of-type(odd),
    .access-photo {
      animation-name: gokko-enter-left;
    }

    .room-card:nth-child(even) .room-image,
    .catalogue-photo:nth-of-type(even) {
      animation-name: gokko-enter-right;
    }

    /* Large sections can alternate directional treatment. */
    .free-teaser-layout > div > h2,
    .dining-layout > div > h2,
    .access-grid > div > h2 {
      animation-name: gokko-enter-right;
    }

    /* Keep text subtle and readable, distinct from photo movement. */
    .section-head h2,
    .single-info > h2,
    .routes article > h2,
    .service-item > h3 {
      animation-name: gokko-enter-up;
    }

    @keyframes gokko-enter-up {
      from { opacity: .05; transform: translate3d(0, 38px, 0); filter: blur(2.5px); }
      to   { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
    }
    @keyframes gokko-enter-left {
      from { opacity: .05; transform: translate3d(-68px, 14px, 0); filter: blur(3px); }
      to   { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
    }
    @keyframes gokko-enter-right {
      from { opacity: .05; transform: translate3d(68px, 14px, 0); filter: blur(3px); }
      to   { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
    }
  }
}
