/* Local font subsets; body, prices and contact controls remain plain. */
@font-face{font-family:Mikiri Display;src:url('/fonts/dela-display.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--display:'Mikiri Display','Hiragino Kaku Gothic ProN',sans-serif}
.hero h1 .hero-name,.opening h2,.space h2,.offer h2,.instagram h2,.access h2,.footer-mark{font-family:var(--display);font-weight:400;letter-spacing:-.075em}
.hero h1>span:first-child{font-size:.87em;letter-spacing:-.065em}
.hero h1 .hero-name{font-size:clamp(50px,15.2vw,80px);line-height:1.4;text-shadow:3px 4px 0 #241c1966,0 2px 20px #241c19aa}
.hero-note,.photo-word,.freedom h2,.faq h2,.train-hello{font-family:inherit;font-weight:800;letter-spacing:-.045em}
.hero-note strong,.photo-word>span,.freedom h2 em,.faq h2 em{font-family:var(--display);font-weight:400;letter-spacing:-.065em}
.hero-note{font-size:20px;line-height:1.7;transform:rotate(-2deg);transform-origin:left center}
.hero-note strong{font-size:clamp(24px,6.9vw,34px);display:inline-block;white-space:nowrap}
.photo-word{font-size:clamp(24px,7vw,34px);line-height:1.6;text-shadow:0 3px 15px #241c19}
.photo-word>span{display:inline-block;font-size:clamp(36px,10.6vw,54px);transform:skewX(-5deg);text-shadow:2px 3px 0 #241c1980;line-height:1.5}
.opening h2{font-size:clamp(25px,7.3vw,39px)}
.space h2{font-size:clamp(31px,8.8vw,45px)}
.freedom h2{font-size:clamp(26px,7.4vw,40px);line-height:1.7}
.freedom h2 em{font-size:clamp(29px,8.1vw,44px)}
.offer h2{font-size:clamp(26px,7.6vw,42px)}
.instagram h2{font-size:clamp(29px,8.4vw,45px)}
.faq h2{font-size:clamp(28px,8vw,40px);line-height:1.6}
.faq h2 em{font-size:clamp(29px,8.3vw,42px)}
.access h2{font-size:clamp(35px,10.4vw,56px)}
.train-hello{font-size:14px;top:145px;right:4px;padding:3px 9px;border-radius:20px;background:var(--paper);border:1px solid #241c1930}
.train-hello:empty{display:none}
.hero h1>span:first-child{animation:headline-arrive .8s cubic-bezier(.2,.7,.25,1) both}
.hero h1 .hero-name{animation:headline-arrive 1s .1s cubic-bezier(.2,.7,.25,1) both}
.hero-picture img{animation:room-drift 16s ease-in-out infinite alternate}
.train-button{animation:train-cruise 2.8s ease-in-out infinite;transform-origin:50% 65%}
.train-button.play{animation:train-wiggle .8s ease both}
.train-wrap:after{content:'';position:absolute;left:34px;right:22px;top:145px;height:8px;border-radius:50%;background:#241c1917;filter:blur(2px);animation:train-shadow 2.8s ease-in-out infinite;z-index:-1}
.night-ribbon{overflow:hidden;background:var(--paper);color:var(--green);padding:2px 0 26px}
.ribbon-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;touch-action:auto;overscroll-behavior-x:contain;cursor:grab;user-select:none;scroll-behavior:auto}
.ribbon-scroll::-webkit-scrollbar{display:none}
.ribbon-scroll:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
.ribbon-scroll.is-dragging{cursor:grabbing}
.ribbon-track{display:flex;width:max-content}
.ribbon-track>span{flex-shrink:0;font-family:var(--display);font-size:27px;line-height:2;letter-spacing:-.055em;padding-right:24px;white-space:nowrap}
.ribbon-track b{font-weight:400;color:var(--red)}
.ribbon-track i{font-style:normal;margin-left:24px}
.scene-photo{overflow:hidden}
.scene-photo>img{animation:scene-open .7s ease-out both,room-drift 14s .7s ease-in-out infinite alternate}
.scene-panel:not([hidden]) .photo-word{animation:word-swing .7s .08s cubic-bezier(.2,.8,.2,1) both}
.scene-panel:not([hidden]) .scene-copy{animation:copy-arrive .45s ease-out both}
.dish-window{animation:plate-float 3.7s ease-in-out infinite}
.freedom-sign{animation:sign-sway 6s ease-in-out infinite;font-family:var(--display);font-weight:400;font-size:clamp(42px,12vw,62px);line-height:1.45;letter-spacing:-.06em}
.freedom-sign>span{color:transparent;-webkit-text-stroke:1.5px var(--paper);text-shadow:none}
.instagram-art{translate:0 var(--art-shift,0px)}
.type-ready.in-view{animation:type-arrive .7s cubic-bezier(.2,.8,.3,1) both}
.type-ready em{display:inline-block;position:relative;isolation:isolate}
.type-ready em:after{content:'';position:absolute;z-index:-1;left:0;right:0;bottom:0;height:3px;background:currentColor;opacity:.5;transform:scaleX(0) rotate(-2deg);transform-origin:left}
.type-ready.in-view em:after{animation:ink-stroke .7s .22s ease-out both}
.hero-content{padding-bottom:72px}
.hero-brand-art{position:absolute;inset:0 0 auto;height:225px;z-index:-1;overflow:hidden;pointer-events:none;mask-image:linear-gradient(#000 76%,transparent)}
.hero-brand-art img{width:100%;height:100%;object-fit:cover;object-position:50% 43%;filter:brightness(.6);transform:scale(1.04)}
.hero-picture{top:175px}
.hero:after{background:linear-gradient(180deg,#17120c16 0%,transparent 49%,#17120cdc 100%)}
.hero-note{padding-top:155px}
.hero-price{cursor:default}
.scene-switch{position:relative;--scene:0}
.scene-switch:before{content:'';position:absolute;left:var(--gutter);top:5px;width:calc((100% - var(--gutter)*2 - 16px)/3);height:48px;border-radius:30px;background:var(--paper);translate:calc(var(--scene)*(100% + 8px)) 0;transition:translate .36s cubic-bezier(.2,.8,.2,1)}
.scene-switch button{position:relative;z-index:1;height:48px;min-height:48px;transition:color .2s,border-color .2s}
.scene-switch button[aria-selected=true]{background:transparent}
.offer-tagline{max-width:320px;margin-inline:auto;text-wrap:balance}
.quick-actions a:active,.button:active{transform:scale(.97)}
.hero-motion{position:absolute;left:var(--gutter);right:auto;top:auto;bottom:13px;margin:0;padding:7px 10px;min-height:44px;border:1px solid #ffffff66;border-radius:30px;background:#241c1977;color:var(--paper);font-size:12px;line-height:1.6}
.motion-toggle:disabled{cursor:default}
.motion-offstage *,.motion-offstage:after,.page-inactive *,.page-inactive *:after{animation-play-state:paused!important}
@keyframes headline-arrive{from{transform:translateY(18px) rotate(3deg);opacity:.6}to{transform:none;opacity:1}}
@keyframes train-cruise{0%,100%{transform:translate(-4px,4px) rotate(3deg)}50%{transform:translate(3px,-10px) rotate(11deg)}}
@keyframes train-shadow{0%,100%{transform:scaleX(1);opacity:.8}50%{transform:scaleX(.75);opacity:.4}}
@keyframes room-drift{from{transform:scale(1.01) translateX(-.3%)}to{transform:scale(1.065) translateX(.5%)}}
@keyframes scene-open{from{opacity:.65}to{opacity:1}}
@keyframes word-swing{from{transform:translateY(23px) rotate(3deg);opacity:.4}to{transform:translateY(0) rotate(-4deg);opacity:1}}
@keyframes copy-arrive{from{transform:translateY(8px)}to{transform:none}}
@keyframes plate-float{0%,100%{transform:translate(0,0) rotate(8deg)}50%{transform:translate(-7px,-12px) rotate(20deg)}}
@keyframes sign-sway{0%,100%{transform:rotate(-9deg) translateY(0)}50%{transform:rotate(-6deg) translateY(-7px)}}
@keyframes type-arrive{from{transform:translateY(14px) rotate(1.3deg)}to{transform:none}}
@keyframes ink-stroke{to{transform:scaleX(1) rotate(-2deg)}}
@media(max-width:360px){.hero h1 .hero-name{font-size:46px}.hero-note{font-size:18px;padding-top:145px}.hero-note strong{font-size:23px}.opening h2{font-size:24px}.offer h2{font-size:25px}.ribbon-track span{font-size:23px}}
@media(min-width:761px){.hero h1 .hero-name{font-size:112px}.hero-note{font-size:27px}.hero-note strong{font-size:38px}.hero-brand-art{width:65%;height:360px;mask-image:linear-gradient(90deg,#000 65%,transparent)}.hero-picture{top:0}.hero-brand-art img{object-position:50% 44%}.scene-switch:before{width:150px;translate:calc(var(--scene)*162px) 0}.opening h2{font-size:38px}.space h2{font-size:50px}.offer h2{font-size:46px}.instagram h2{font-size:40px}.photo-word{font-size:36px}.photo-word>span{font-size:62px}.freedom h2{font-size:40px}.freedom h2 em{font-size:45px}.faq h2{font-size:34px}.faq h2 em{font-size:39px}.access h2{font-size:56px}.ribbon-track span{font-size:36px}.hero-motion{bottom:13px}.dish-window{scale:1.35}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.instagram-art{translate:none}*,*:before,*:after{animation:none!important;transition:none!important}.type-ready em:after{transform:scaleX(1) rotate(-2deg)}}
html.motion-paused .instagram-art{translate:none}
html.motion-paused *,html.motion-paused *:before,html.motion-paused *:after{animation:none!important;transition:none!important}
html.motion-paused .type-ready em:after{transform:scaleX(1) rotate(-2deg)}
