:root{--paper:#f8f6ef;--ink:#203d40;--bronze:#76593e;--line:#b9a997;--serif:'Hiragino Mincho ProN','Yu Mincho',YuMincho,serif;--sans:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;color-scheme:light;font-size:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#253e40;font-family:var(--sans);line-height:1.8;-webkit-text-size-adjust:100%}a{color:inherit}button,select{font:inherit}button,a,select,summary{-webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}button{color:inherit}p,h1,h2,h3{margin:0}h1,h2,h3,.serif{font-family:var(--serif);font-weight:400}h2{font-size:1.65rem;line-height:1.65;letter-spacing:.015em}a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #bd813f;outline-offset:5px}h2:focus{outline:none}[hidden]{display:none!important}.page{width:100%;max-width:430px;margin:0 auto;position:relative;background:var(--paper);container-type:inline-size;box-shadow:0 0 80px #10232655}.desktop-sea{display:none}.skip{position:fixed;top:-100px;left:16px;z-index:9;padding:12px;background:var(--paper)}.skip:focus{top:16px}.pad{padding-left:26px;padding-right:26px}.photo{display:block;width:100%;height:auto;overflow:hidden}.header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;padding:8px 22px 4px;min-height:90px;height:auto}.brand{display:inline-flex;flex-direction:column;text-align:center;text-decoration:none;font-family:var(--serif);line-height:1}.brand>span{font-size:2.4rem;letter-spacing:.12em}.brand small{font-size:.8125rem;letter-spacing:.3em;margin-top:4px}.brand b{font-weight:400;font-family:'Times New Roman',serif;font-size:.8125rem;letter-spacing:.24em;color:var(--bronze);margin-top:7px}.plan-link{font-family:var(--serif);font-size:.9375rem;text-underline-offset:6px;letter-spacing:.08em;margin-top:17px;color:var(--bronze)}.plan-link span{font-size:1.5rem;padding-left:3px}.fictional{font-family:Georgia,var(--serif);font-size:.8125rem;letter-spacing:.1em;text-align:center;padding:1px 8px 6px;line-height:1.2;color:var(--bronze)}.hero{position:relative}.hero h1{position:absolute;top:8.6%;right:4.95%;width:max(23.2%,5.4rem);min-height:42.5%;padding:4% 1%;display:flex;flex-direction:row-reverse;justify-content:center;align-items:flex-start;background:var(--paper);font-size:clamp(1.35rem,7.2cqw,1.875rem);line-height:1.45}.hero h1 span{writing-mode:vertical-rl;white-space:nowrap;letter-spacing:.05em}.hero-copy{padding:22px 26px 23px;text-align:center}.location{font-size:.875rem;letter-spacing:.055em}.tagline{line-height:1.5;font-size:clamp(1.2rem,6.7cqw,1.65rem);white-space:normal;margin-top:21px;margin-left:-8px;margin-right:-8px}.season{margin-top:20px;font-size:1.0625rem}.hero-price{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:10px;margin-top:14px;white-space:normal;font-size:1.0625rem}.hero-price strong{font-family:'Times New Roman',serif;font-weight:400;font-size:2.95rem;color:var(--bronze);line-height:1.3}.tax{font-size:.875rem;margin:8px 0 22px}.button{min-height:56px;width:100%;border:1px solid var(--ink);border-radius:6px;background:var(--ink);color:var(--paper);text-decoration:none;display:flex;gap:8px;justify-content:center;align-items:center;position:relative;padding:12px 34px 12px 16px;font-family:var(--serif);font-size:1.125rem;letter-spacing:.025em;line-height:1.6;transition:background .18s}.button>span{position:absolute;right:16px;font-family:Arial,sans-serif;font-size:1.8rem;line-height:1;font-weight:200}.button:hover{background:#315559}.invitation{margin:0 20px;border-top:1px solid var(--line);padding:31px 0 42px;text-align:center}.invitation h2{font-size:clamp(1.3rem,6.9cqw,1.8rem);white-space:normal}.invitation p{font-size:1rem;line-height:1.9;margin-top:29px}.experience{padding:49px 19px 20px}.eyebrow{font-family:var(--serif);font-size:.875rem;color:var(--bronze);letter-spacing:.08em;margin-bottom:14px}.experience h2{margin-bottom:14px;font-size:clamp(1.38rem,7.1cqw,1.85rem);white-space:normal}.body-copy{font-size:1rem;line-height:1.85;margin:20px 0 18px;color:#252d2e}.included{font-family:var(--serif);font-size:.875rem;color:var(--bronze);border-top:1px solid var(--line);padding-top:11px;margin-top:16px;line-height:1.75}.bath{margin-top:30px}.dining{padding-top:27px}.dining h2{font-size:2.2rem;line-height:1.4;margin:14px 0 26px}.dining .body-copy{margin-top:22px;margin-bottom:17px}.note{font-size:.8125rem;color:#515656;line-height:1.8}.food-note{margin-top:7px;margin-bottom:22px}.morning{background:#f2efe6;padding-top:28px;padding-bottom:28px}.morning h2{font-size:clamp(1.4rem,7cqw,1.85rem);white-space:normal}.morning-scene{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;margin-top:15px}.checkout strong{font-family:'Times New Roman',serif;font-size:3.6rem;font-weight:400;line-height:1.1;color:var(--bronze);display:block}.checkout span{font-size:1rem;white-space:normal}.morning .body-copy{margin-bottom:0}.plan{background:#213f42;color:var(--paper);padding-top:32px;padding-bottom:27px;text-align:center}.english{font-family:'Times New Roman',serif;font-size:.8125rem;letter-spacing:.24em;color:var(--bronze)}.plan .english{color:#eee8dc}.plan h2{font-size:3rem;line-height:1.2;margin:21px 0 18px;letter-spacing:.01em}.plan-season{font-size:1.25rem;white-space:normal}.plan-price{border-top:1px solid #bdc5be;border-bottom:1px solid #bdc5be;margin-top:18px;padding:14px 0 17px}.plan-price>p:first-child{font-size:1.625rem;white-space:normal}.plan-price strong{font-family:'Times New Roman',serif;font-weight:400;font-size:3.625rem;line-height:1.05}.plan-price>p:first-child>span{font-size:1.375rem}.total{line-height:1.4;font-size:1.45rem;margin-top:3px}.conditions{font-size:1rem;line-height:1.7;margin-top:12px}.plan h3{font-size:1.4375rem;padding:16px 0 11px}.benefits{padding:0;list-style:none;margin:0 4px;counter-reset:benefit;text-align:left}.benefits li{display:flex;align-items:center;gap:26px;border-top:1px solid #b7c0b9;padding:9px 20px;font-family:var(--serif);font-size:1.0625rem;white-space:normal}.benefits li:last-child{border-bottom:1px solid #b7c0b9}.benefits li:before{counter-increment:benefit;content:'0' counter(benefit);font-family:'Times New Roman',serif;font-style:italic;font-size:1.75rem;color:#bd9270;line-height:1.2}.transport{font-size:.9375rem;margin:21px 0}.plan .plan-end{font-size:.8125rem;color:#c8a17c;letter-spacing:.2em}.reservation{padding-top:18px;scroll-margin-top:20px}.reservation h2{font-size:clamp(1.38rem,7.1cqw,1.85rem);white-space:normal;line-height:1.4;margin:6px 0 8px}.booking-intro{font-size:1rem;line-height:1.6}.demo-info{border:1px solid var(--line);border-radius:3px;padding:9px 14px;margin:9px 0 12px;line-height:1.6;font-size:.875rem;color:#414a4c}form label{display:block;margin:7px 0 3px;font-size:1rem;line-height:1.4}.select-wrap{position:relative}.select-wrap:after{content:'';position:absolute;right:19px;top:20px;width:10px;height:10px;border-bottom:2px solid var(--ink);border-right:2px solid var(--ink);transform:rotate(45deg);pointer-events:none}select{appearance:none;-webkit-appearance:none;display:block;min-height:52px;width:100%;padding:10px 42px 10px 16px;border:1px solid #7b8589;border-radius:5px;background:transparent;color:var(--ink);font-family:var(--serif);font-size:1.0625rem}#date-note{margin-top:5px}.error{font-size:.875rem;color:#963b25;margin-top:8px}.booking-total{margin:18px 0 16px}.booking-total>p:first-child{font-family:var(--serif);font-size:1rem}.booking-total>p:last-child{font-size:1.8rem;line-height:1.4;margin-top:7px}.booking-total strong{font-family:'Times New Roman',serif;font-weight:400;font-size:2.7rem;color:var(--bronze)}.privacy{text-align:center;margin:12px 2px 0}.faq{margin:18px 19px 0;padding:16px 4px 16px;border-top:1px solid var(--line)}.faq h2{font-size:1.75rem;margin-bottom:12px}.faq details{border:1px solid var(--line);border-radius:4px;margin:8px 0 0}.faq summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:52px;padding:11px 14px;font-size:1rem;font-family:var(--serif)}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';font-family:Arial,sans-serif;font-size:1.75rem;font-weight:200;line-height:1}.faq details[open] summary:after{content:'−'}.faq details[open] summary{border-bottom:1px solid #d2c9bd}.faq details p{padding:15px;font-size:1rem;color:#303c3e}.montage{margin-top:0}footer{text-align:center;padding:15px 18px 24px}footer .brand>span{font-size:2.75rem}footer .brand b{font-size:.8125rem;margin-top:6px}footer>p.serif{margin:8px 0 15px;font-size:1.0625rem}footer .note{font-size:.8125rem}dialog{border:0;border-radius:6px;background:var(--paper);color:var(--ink);padding:25px 22px 17px;width:min(354px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 20px 80px #10252855}dialog::backdrop{background:#102d38b8}body:has(dialog[open]){overflow:hidden}.close-dialog{position:absolute;right:8px;top:8px;border:0;background:transparent;width:44px;height:44px;font-size:1.8rem;font-weight:300;color:var(--bronze)}.demo-label{font-family:var(--serif);font-size:.875rem;color:var(--bronze);display:inline-block;border-bottom:1px solid var(--bronze);padding-bottom:4px}.dialog-plan{font-size:1.0625rem;color:var(--bronze);text-align:center;margin:3px 0 16px}dialog h2{font-size:1.625rem;text-align:center;margin-top:17px}dialog dl{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin:0;font-size:.875rem}dialog dl>div{display:grid;grid-template-columns:105px 1fr;gap:6px;margin:5px 0}dialog dt,dialog dd{margin:0}dialog dd{overflow-wrap:anywhere}.confirm-total{display:flex;justify-content:space-between;align-items:center;margin:15px 0}.confirm-total strong{font-family:'Times New Roman',serif;font-size:2.25rem;font-weight:400;color:var(--bronze)}.confirm-total p{font-size:1.25rem;text-align:right}.confirm-total small{font-family:var(--sans);font-size:.8125rem;display:block}.text-button{display:block;margin:12px auto 0;padding:8px;border:0;background:transparent;text-decoration:underline;text-underline-offset:5px;font-size:.9375rem}dialog .button{font-size:.9375rem;min-height:52px}#completion{text-align:center;padding:15px 0 4px}.checkmark{display:grid;place-items:center;width:55px;height:55px;border:2px solid var(--bronze);border-radius:50%;color:var(--bronze);font-size:2rem;margin:5px auto 24px}#completion h2{font-size:1.8rem;line-height:1.5}#completion>p{font-size:1rem;text-align:left;margin:22px 0}#completion .button{margin-top:23px}
@media(min-width:768px){.page{width:390px;max-width:390px}.desktop-sea{display:block;position:fixed;inset:0;background:linear-gradient(#122f38aa,#182d2a99),url('assets/ryokan-atlas.png');background-size:auto,max(200vw,200vh) max(200vw,200vh);background-position:center,0 0;filter:saturate(.65)}.page{box-shadow:0 0 90px #091b2677}}
@container(max-width:350px){.pad{padding-left:20px;padding-right:20px}.header{padding-left:18px;padding-right:18px}.fictional{letter-spacing:.03em;font-size:.8125rem}.hero-copy{padding-left:20px;padding-right:20px}.location{font-size:.8125rem;letter-spacing:0}.hero-price{gap:6px;font-size:.9375rem}.hero-price strong{font-size:2.25rem}.invitation{margin-left:16px;margin-right:16px}.invitation p{font-size:1rem}.experience{padding-left:16px;padding-right:16px}.body-copy br{display:none}.benefits li{gap:16px;padding-left:10px;padding-right:6px;font-size:1rem}.plan-season{font-size:1.0625rem}.plan-price strong{font-size:3.1rem}.plan h2{font-size:2.75rem}.checkout strong{font-size:3rem}.checkout span{font-size:.875rem}.morning-scene{gap:12px}.booking-total strong{font-size:2.4rem}.faq{margin-left:16px;margin-right:16px}.faq summary{font-size:.9375rem;padding-left:10px;padding-right:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;padding:0;overflow:hidden}.benefits li:before{flex:none}.hero-price>span{white-space:nowrap}.morning-scene{grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr))}
