:root{--navy:#082c3a;--deep:#06232e;--teal:#145461;--cream:#f3efe5;--muted:#a4bdc0;--gold:#c4aa78;--line:#e1ebe72b;--serif:Georgia,'Times New Roman','Yu Mincho',serif;--sans:Arial,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px;background:var(--navy)}body{margin:0;background:var(--navy);color:var(--cream);font:14px/1.85 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}figure,p{margin:0}h1,h2,h3{margin:0;font-family:var(--serif);font-weight:400;line-height:1.05;letter-spacing:-.045em}h1{font-size:clamp(70px,8vw,126px)}h2{font-size:clamp(43px,5.2vw,78px)}h3{font-size:32px}em{font-weight:400;color:#b8d8d7}a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.skip-link{position:fixed;top:-100px;left:20px;z-index:80;background:var(--cream);color:var(--navy);padding:12px}.skip-link:focus{top:10px}.header{position:absolute;top:0;width:100%;height:103px;z-index:30;display:flex;align-items:center;padding:0 5.5%;gap:35px;border-bottom:1px solid var(--line)}.brand{margin-right:auto;display:flex;flex-direction:column;line-height:1.2}.brand-word{font-family:var(--serif);font-size:35px;letter-spacing:.03em;display:flex;align-items:center;gap:16px}.brand-jp{font-size:16px;border-left:1px solid #c4aa7866;padding-left:16px;letter-spacing:.1em}.brand-place{font-size:8px;letter-spacing:.19em;margin-top:6px;color:var(--muted)}.header nav{display:flex;gap:33px;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.header nav a{padding-block:14px}.header-end{display:flex;align-items:center;gap:30px}.languages{display:flex;gap:10px;font-size:10px;align-items:center}.languages a{padding:9px 0}.languages a[aria-current=page]{border-bottom:1px solid var(--gold)}.languages span{opacity:.35}.header-cta{border:1px solid #c4aa7880;padding:11px 18px;color:var(--gold);font-size:10px;letter-spacing:.1em;text-transform:uppercase;display:flex;gap:22px}.header-cta:hover{background:#c4aa7815}.section-wrap{width:min(1220px,87%);margin-inline:auto}.eyebrow{font-size:9px;font-weight:600;letter-spacing:.19em;color:var(--gold);line-height:1.5;margin-bottom:27px;text-transform:uppercase}.eyebrow>span{display:inline-block;vertical-align:middle;width:24px;height:1px;background:var(--gold);margin-right:12px}.story{position:relative}.story-stage{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 75% 45%,#17606b66,transparent 58%),var(--navy)}.story-panel{min-height:820px;position:relative;display:flex;align-items:center;padding:150px 7% 100px}.story-text{position:relative;z-index:5;max-width:560px}.description{color:#c1d1d0;font-size:13px;line-height:1.95;margin-top:29px}.actions{display:flex;align-items:center;gap:27px;margin-top:36px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid var(--gold);background:var(--gold);color:var(--deep);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:17px 23px;min-height:52px;transition:background .25s}.button:hover{background:#e1c797}.text-link{display:inline-flex;gap:25px;align-items:center;font-size:10px;letter-spacing:.08em;border-bottom:1px solid #bcd5d15c;padding:9px 0;text-transform:uppercase}.text-link:hover{color:var(--gold)}.hero-meta{display:flex;gap:17px;align-items:center;margin-top:53px}.hero-meta>span{border:1px solid #c4aa7870;border-radius:50%;width:42px;height:42px;font-family:var(--serif);font-size:10px;display:grid;place-items:center;color:var(--gold)}.hero-meta p{font-size:8px;letter-spacing:.15em;line-height:1.8;color:var(--muted)}.dish-jp{font-family:var(--serif);font-size:16px;margin-top:25px}.dish-jp span{display:block;font:9px var(--sans);letter-spacing:.12em;color:var(--muted);margin-top:8px}.small-facts{display:flex;gap:25px;margin-top:29px;font-size:10px;color:var(--muted)}.small-facts span{padding-top:14px;border-top:1px solid var(--line);min-width:100px}.panel-aji .text-link,.panel-ramen .text-link{margin-top:28px}.panel-aji{justify-content:flex-end}.panel-aji .story-text{width:43%}.dish-art{position:absolute;z-index:3;pointer-events:none;filter:drop-shadow(0 35px 28px #0006);width:45%;right:4%;top:130px}.dish-art img{width:100%;height:100%;object-fit:contain}.art-aji{height:650px;transform:rotate(8deg)}.art-ramen{top:1750px;height:620px}.latitude{position:absolute;left:2%;top:46%;writing-mode:vertical-rl;font-size:8px;letter-spacing:.23em;color:#8ab3b477;z-index:4}.story-bottom{position:absolute;bottom:28px;left:7%;right:7%;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.16em;color:var(--muted);z-index:8}.story-bottom p span{margin-left:20px;font-size:17px}.story-dots{display:flex;gap:8px}.story-dots i{width:5px;height:5px;border-radius:50%;background:#ffffff35;transition:background .3s}.story-dots .active{background:var(--gold)}.story-watermark{position:absolute;bottom:-60px;left:4%;font:clamp(180px,24vw,370px)/1 var(--serif);letter-spacing:-.03em;color:#ffffff03;z-index:0;pointer-events:none}.sea-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 67% 25%,#52848512,transparent 70%);pointer-events:none}.info-ribbon{display:grid;grid-template-columns:repeat(4,1fr);align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 6.5%;font-size:9px;letter-spacing:.13em;gap:20px;background:var(--deep)}.info-ribbon>*+*{border-left:1px solid var(--line);padding-left:30px}.info-ribbon a{color:var(--gold)}.food{padding-block:110px 85px}.section-title{display:flex;justify-content:space-between;gap:50px;align-items:flex-end;margin-bottom:55px}.section-title>p{max-width:365px;font-size:12px;color:var(--muted);padding-bottom:8px;line-height:1.9}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px}.menu-item{min-width:0;scroll-margin-top:35px}.menu-image{position:relative;display:block;aspect-ratio:1.18;overflow:hidden;background:#123f4b}.menu-image>img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.menu-image:hover>img{transform:scale(1.035)}.menu-image>span{position:absolute;bottom:0;left:0;right:0;padding:45px 22px 16px;background:linear-gradient(transparent,#05232cb3);font-size:8px;letter-spacing:.15em}.menu-image>b{position:absolute;right:18px;top:18px;font-size:20px;font-weight:400}.ramen-menu-image{background:radial-gradient(ellipse at 50% 50%,#4c7e8266,#10404c)}.ramen-menu-image>img{object-fit:contain;padding:24px}.menu-item-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:26px 0 15px}.menu-item-heading>span{font:12px var(--serif);color:var(--muted)}.menu-item>p{font-size:12px;color:var(--muted);max-width:480px}.menu-foot{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin-top:22px;padding-top:15px;font-size:9px;color:var(--muted)}.menu-foot span:first-child{letter-spacing:.1em;color:var(--gold)}.menu-note{margin-top:65px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:35px;align-items:center}.menu-note p{font:italic 25px var(--serif)}.menu-note>span{font-size:11px;color:var(--muted)}.place{padding-block:100px 120px;background:#0b3845;overflow:hidden}.place-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:40px 8%;position:relative;align-items:start}.place-copy{grid-row:1/3;padding-top:40px}.place-copy>p:not(.eyebrow){font-size:13px;color:#bfcecc;line-height:2.1;margin-block:28px}.place-copy .text-link{margin-top:7px}.place-jp{display:block;font:19px var(--serif);letter-spacing:.24em;margin-top:90px;color:#a6c3bf}.exterior{margin-left:0;position:relative}.exterior>img{aspect-ratio:4/3;object-fit:cover;width:100%}.place figcaption{font-size:8px;letter-spacing:.15em;color:#a9c5c4;margin-top:13px}.interior{width:43%;justify-self:end;margin-top:-95px;margin-right:-35px;z-index:2;background:#0b3845;padding:10px 0 0 10px}.interior>img{width:100%;aspect-ratio:3/4;object-fit:cover}.guest{padding-block:105px;display:grid;grid-template-columns:1fr 1.1fr;gap:10%}.guest h2{font-size:clamp(43px,4.8vw,70px)}.guest-questions{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:25px;padding:23px 0;font-size:14px}summary::-webkit-details-marker{display:none}summary>span{color:var(--gold);font-size:20px;font-weight:300;transition:transform .25s}details[open] summary>span{transform:rotate(45deg)}details>p{font-size:12px;color:var(--muted);padding-bottom:25px;line-height:1.95}.order-names{display:flex;gap:30px;padding-bottom:25px;font-size:14px;font-family:var(--serif)}.order-names small{display:block;font:10px var(--sans);color:var(--muted);margin-top:7px}.visit{position:relative;padding:90px 0 110px;background:#164b59;overflow:hidden}.visit-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:12%}.visit h2{font-size:clamp(65px,7.5vw,112px)}.visit .button{margin-top:40px}.map-caption{font-size:8px;letter-spacing:.16em;color:var(--muted);margin-top:15px}.visit-info dl{margin:0}.visit-info dl>div{padding:22px 0;border-bottom:1px solid #e1ebe736;display:grid;grid-template-columns:120px 1fr;gap:20px}.visit-info dt{font-size:8px;letter-spacing:.1em;color:#b5cbca}.visit-info dd{font-size:15px;margin:0;line-height:1.8}.visit-info small{display:block;font-size:10px;color:#b5cbca;margin-top:10px}.visit-info .travel-note{font-size:12px}.visit-info a{font-family:var(--serif);font-size:22px}.visit-horizon{position:absolute;left:-10%;right:-10%;bottom:-120px;height:250px;border-top:1px solid #d9ecea13;border-radius:50%;box-shadow:0 -22px 0 0 #d9ecea05,0 -47px 0 0 #d9ecea04,0 -75px 0 0 #d9ecea03;transform:rotate(-4deg)}footer{background:var(--deep);padding:55px 6.5% 25px}.footer-top{display:flex;align-items:center;gap:55px;padding-bottom:43px}.footer-logo{font-family:var(--serif);font-size:82px;letter-spacing:-.04em;line-height:1}.footer-logo>span{font-size:23px;display:inline-block;vertical-align:middle;margin-left:25px;letter-spacing:.1em}.footer-top>p{font-size:10px;line-height:2;letter-spacing:.1em;color:var(--muted)}.back-top{margin-left:auto;width:45px;height:45px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:21px}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:.12em;color:var(--muted)}.footer-bottom small{font-size:9px}.mobile-bar{display:none}
html[lang=ja] h1{font-size:clamp(54px,6vw,88px);line-height:1.35;letter-spacing:.01em}html[lang=ja] h2{font-size:clamp(39px,4.5vw,66px);line-height:1.35;letter-spacing:.01em}html[lang=ja] em{font-style:normal}html[lang=ja] h3{font-size:28px;letter-spacing:0}
@media(min-width:1600px){.story-panel{padding-left:max(7%,calc((100vw - 1400px)/2));padding-right:max(7%,calc((100vw - 1400px)/2))}.motion .dish-art{width:45%;right:6%}.motion .panel-aji .story-text{width:40%}}
@media(max-width:1050px){.header{padding-inline:5%;gap:24px}.header nav{gap:20px}.header-end{gap:22px}.brand-word{font-size:30px}.brand-jp{font-size:13px}.story-text{max-width:47%}h1{font-size:85px}h2{font-size:54px}.description br{display:none}.description{font-size:12px}.actions{gap:20px}.hero-meta{margin-top:35px}.motion .dish-art{right:1%;width:49%}.story-panel{padding-inline:6%}.menu-grid{gap:35px}.section-title>p{max-width:270px}.interior{margin-right:-15px}.place-copy h2{font-size:48px}.visit-grid{gap:7%}.visit-info dl>div{grid-template-columns:95px 1fr;gap:15px}}
@media(max-width:760px){html{scroll-padding-top:25px}.header{height:85px;padding:0 6%;gap:20px}.brand-word{font-size:29px}.brand-jp{font-size:14px;padding-left:12px}.brand-place{font-size:7px}.header nav{display:none}.header-end{gap:18px}.header-cta{padding:9px 12px;font-size:8px;gap:15px}.languages{font-size:9px;gap:7px}.section-wrap{width:86%}.story-panel{min-height:850px;display:block;padding:125px 7% 440px}.story-text{max-width:none;width:100%}.eyebrow{font-size:8px;margin-bottom:20px;letter-spacing:.15em}h1{font-size:clamp(67px,18vw,88px)}h2{font-size:44px}.description{font-size:12px;line-height:1.8;margin-top:21px;max-width:340px}.actions{margin-top:25px;gap:22px}.button{font-size:9px;padding:14px 19px;min-height:46px;gap:25px}.text-link{font-size:9px;gap:20px}.hero-meta{display:none}.dish-art{width:88%;right:0;height:420px;top:430px}.art-ramen{top:2100px}.panel-aji{justify-content:initial}.panel-aji .story-text{width:100%}.latitude{display:none}.story-bottom{left:7%;right:7%;bottom:18px;font-size:7px}.story-bottom>span{display:none}.story-watermark{font-size:190px;bottom:-30px}.dish-jp{font-size:13px;margin-top:16px}.dish-jp span{font-size:8px}.small-facts{margin-top:18px;gap:20px;font-size:9px}.small-facts span{padding-top:10px}.panel-aji .text-link,.panel-ramen .text-link{margin-top:15px}.motion .story{height:275svh;min-height:0}.motion .story-stage{height:100svh;min-height:700px}.motion .story-panel{padding:120px 7% 0;display:block}.motion .panel-aji .story-text,.motion .panel-ramen .story-text{width:100%;max-width:100%}.motion .panel-aji,.motion .panel-ramen{padding-top:75px}.motion .dish-art{width:86%;height:48%;top:auto;bottom:20px;right:-3%}.motion .art-ramen{width:92%;height:46%;top:auto;bottom:27px;right:-2%}.motion .panel-hero .story-text{max-width:100%}.info-ribbon{grid-template-columns:1fr 1fr;padding:22px 7%;gap:18px;font-size:8px;letter-spacing:.08em}.info-ribbon>*+*{padding-left:18px}.info-ribbon>:nth-child(3){padding-left:0;border-left:0}.food{padding:65px 0 55px}.section-title{display:block;margin-bottom:35px}.section-title>p{max-width:100%;margin-top:25px;font-size:12px}.menu-grid{grid-template-columns:1fr;gap:44px}.menu-image{aspect-ratio:1.12}.menu-item-heading{margin-top:21px;gap:15px}.menu-item-heading h3{font-size:31px}.menu-item-heading>span{font-size:11px}.menu-item>p{font-size:12px}.menu-foot{font-size:8px}.menu-note{margin-top:40px;display:block;padding-block:22px}.menu-note p{font-size:24px;margin-bottom:12px}.menu-note>span{display:block;font-size:11px}.place{padding:60px 0 65px}.place-grid{grid-template-columns:1fr;gap:35px}.place-copy{grid-row:auto;padding-top:0}.place-copy h2{font-size:45px}.place-copy>p:not(.eyebrow){font-size:12px;margin-block:23px}.place-jp{display:none}.exterior{grid-row:2}.interior{grid-row:3;width:47%;margin-top:-95px;margin-right:-12px;padding:8px 0 0 8px}.place figcaption{font-size:7px}.guest{grid-template-columns:1fr;gap:35px;padding-block:65px}.guest h2{font-size:45px}summary{font-size:13px;padding-block:20px}details>p{font-size:12px}.visit{padding:65px 0 70px}.visit-grid{grid-template-columns:1fr;gap:35px}.visit h2{font-size:73px}.visit .button{margin-top:30px}.visit-info dl>div{grid-template-columns:100px 1fr;gap:15px}.visit-info dd{font-size:14px}.visit-info a{font-size:20px}footer{padding:40px 7% 90px}.footer-top{gap:25px;flex-wrap:wrap;padding-bottom:25px}.footer-logo{font-size:62px}.footer-logo>span{font-size:18px;margin-left:18px}.footer-top>p{order:3;width:100%;font-size:9px}.back-top{width:38px;height:38px}.footer-bottom{flex-wrap:wrap;gap:15px}.footer-bottom>span{display:none}.mobile-bar{position:fixed;z-index:40;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;background:#06232ef5;backdrop-filter:blur(8px);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line)}.mobile-bar a{text-align:center;font-size:10px;letter-spacing:.12em;padding:16px 10px}.mobile-bar a+a{border-left:1px solid var(--line);color:var(--gold)}html[lang=ja] h1{font-size:51px;line-height:1.3}html[lang=ja] h2{font-size:38px}html[lang=ja] .description{font-size:12px}html[lang=ja] .menu-item-heading>span{display:none}}
@media(max-height:740px) and (min-width:761px){.motion .story-stage{min-height:620px}.motion .story-panel{padding-top:100px;padding-bottom:65px}h1{font-size:86px}.hero-meta{margin-top:25px}.description{margin-top:20px}.actions{margin-top:25px}}
@media(max-width:370px){.header-cta{display:none}.header-end{gap:12px}h1{font-size:66px}.motion .story-panel{padding-top:110px}.motion .panel-aji,.motion .panel-ramen{padding-top:65px}.motion .dish-art{height:44%;bottom:32px}h2{font-size:39px}.actions{gap:17px}.description{font-size:11px}html[lang=ja] h1{font-size:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.story-panel{min-height:650px}.dish-art{display:none}.story-panel .story-text{width:100%;max-width:650px}.story-panel{padding-block:140px 70px}.story-bottom{display:none}}
.photo-credit{display:block;font-size:7px;letter-spacing:.02em;opacity:.8;margin-top:4px}
/* Click-to-serve dining experience */
[hidden]{display:none!important}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.serving-hero{position:relative;isolation:isolate;overflow:hidden;min-height:850px;min-height:max(850px,100svh);display:grid;grid-template-columns:44% 56%;align-items:center;padding:145px 6.5% 100px;background:#052b39}.underwater{position:absolute;inset:0;overflow:hidden;z-index:-1;background:radial-gradient(ellipse at 80% 0%,#2e888c80,transparent 60%),linear-gradient(160deg,#104c59,#062b3c 65%,#031b29)}.water-surface{position:absolute;top:-20%;left:15%;width:100%;height:45%;background:radial-gradient(ellipse,#70c3bd38,transparent 65%);filter:blur(25px);animation:water-drift 17s ease-in-out infinite alternate}.light-shaft{position:absolute;top:-22%;height:145%;width:34%;transform-origin:top;background:linear-gradient(180deg,#bcf1df17,transparent 82%);mask-image:radial-gradient(ellipse at 50% 4%,#000 0 28%,#000b 48%,transparent 78%);transform:rotate(24deg);animation:ray-drift 19s ease-in-out infinite alternate}.shaft-one{left:61%}.shaft-two,.shaft-three{display:none}.water-caustics{position:absolute;inset:35% -30% -40% 20%;opacity:.12;background:repeating-radial-gradient(ellipse at 70% 30%,transparent 0 75px,#81c6c3 79px,transparent 83px 135px);filter:blur(9px);transform:rotate(-17deg) scaleY(.5);animation:water-drift 23s ease-in-out infinite alternate}.serving-copy{position:relative;z-index:3;max-width:560px}.serving-copy h1{font-size:clamp(65px,7.8vw,115px)}.serving-copy .description{max-width:350px}.dish-picker{margin-top:35px}.dish-picker>p{font-size:8px;letter-spacing:.19em;color:var(--muted);margin-bottom:12px}.dish-buttons{display:flex;gap:10px}.dish-buttons button{display:flex;align-items:center;gap:15px;min-height:53px;padding:12px 18px;border:1px solid #b2d5cb40;background:#062c3870;border-radius:2px;font-family:var(--serif);font-size:19px;transition:background .25s,border-color .25s}.dish-buttons button span{font:9px var(--sans);color:var(--gold)}.dish-buttons button i{font:17px var(--sans);margin-left:10px}.dish-buttons button[aria-pressed=true]{border-color:var(--gold);background:#c4aa781c}.dish-buttons button:hover{background:#c4aa7830}.picker-note{display:block;font-size:10px;color:var(--muted);margin-top:10px}.serving-display{position:relative;aspect-ratio:1;width:120%;margin-left:-7%;align-self:center;min-width:0}.plate-halo{position:absolute;inset:16%;border-radius:50%;background:#68a8a519;filter:blur(50px)}.served-dish{position:absolute;inset:0;will-change:transform,opacity}.served-dish>img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 25px 22px #00172360);mask-image:linear-gradient(#000 93%,transparent)}.serving-label{position:absolute;bottom:-12px;left:12%;right:10%;text-align:center}.serving-label span{display:block;font-size:8px;letter-spacing:.19em;color:var(--gold)}.serving-label strong{display:block;font:italic 28px/1.4 var(--serif);margin:6px 0}.serving-label small{font-size:10px;color:var(--muted);letter-spacing:.12em}.steam{pointer-events:none;position:absolute;width:24%;height:40%;top:7%;left:38%;opacity:.6;filter:blur(4px)}.steam svg{height:100%;width:100%;overflow:visible}.wisp{fill:none;stroke:#fff7e5;stroke-width:3;stroke-linecap:round;opacity:0;animation:steam-rise 6s ease-in-out infinite;transform-origin:center}.wisp-two{animation-delay:-3s;stroke-width:4}.wisp-three{animation-delay:-1.5s;stroke-width:2}.steam-gentle{opacity:.28;height:29%;top:17%;width:20%;left:40%}.steam-ramen{opacity:.55;top:5%}.serving-bottom{position:absolute;bottom:28px;left:6.5%;right:6.5%;display:flex;align-items:center;gap:25px;font-size:8px;letter-spacing:.14em;color:var(--muted)}.serving-bottom>a{margin-left:auto}.motion-toggle{border:0;border-bottom:1px solid #a4bdc050;background:transparent;padding:8px 0;font-size:9px}.motion-paused .underwater *,.motion-paused .wisp,.hero-offscreen .underwater *,.hero-offscreen .wisp{animation-play-state:paused}.menu-entry{display:grid;grid-template-columns:55px 1fr 200px;gap:30px;padding:35px 0;border-top:1px solid var(--line);align-items:center}.menu-entry:last-child{border-bottom:1px solid var(--line)}.menu-index{align-self:start;font:15px var(--serif);color:var(--gold)}.menu-entry .eyebrow{margin-bottom:12px}.menu-entry-copy>p:not(.eyebrow){color:var(--muted);font-size:12px;max-width:560px}.menu-entry-copy .menu-japanese{margin:12px 0}.menu-entry-action{display:flex;flex-direction:column;align-items:flex-start;gap:18px}.menu-entry-action button{background:transparent;border:1px solid var(--gold);padding:14px 18px;font-size:11px;color:var(--gold);min-height:48px}.menu-entry-action a{font-size:10px;border-bottom:1px solid var(--line)}
@keyframes steam-rise{0%{opacity:0;transform:translate(0,20px) scale(.85)}35%{opacity:.45}70%{opacity:.2}100%{opacity:0;transform:translate(9px,-40px) scale(1.15)}}@keyframes ray-drift{from{transform:rotate(21deg);opacity:.4}to{transform:rotate(29deg);opacity:.85}}@keyframes water-drift{from{translate:-2% 0}to{translate:3% 3%}}
@media(min-width:1700px){.serving-hero{padding-inline:max(6.5%,calc((100vw - 1500px)/2))}.serving-display{width:110%}}
@media(max-width:1050px){.serving-copy h1{font-size:75px}.dish-buttons button{padding:10px 12px;gap:8px;font-size:17px}.serving-display{width:130%;margin-left:-15%}.menu-entry{grid-template-columns:30px 1fr 170px;gap:20px}}
@media(max-width:760px){.serving-hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:125px 7% 85px}.serving-copy{max-width:none}.serving-copy h1{font-size:clamp(62px,16vw,88px)}.serving-copy .eyebrow{margin-bottom:16px}.serving-copy .description{margin-top:18px}.dish-picker{margin-top:22px}.dish-buttons button{min-height:49px;flex:1;justify-content:space-between;padding:10px 15px;font-size:20px}.serving-copy .actions{margin-top:20px}.serving-display{width:116%;margin:0 -8% 30px;aspect-ratio:1;align-self:auto}.serving-label{bottom:-20px}.serving-label strong{font-size:26px}.serving-bottom{bottom:20px;left:7%;right:7%;gap:16px;font-size:7px}.serving-bottom>span{display:none}.serving-bottom>a{margin-left:0;margin-right:auto}.menu-entry{grid-template-columns:25px 1fr;gap:15px;padding:28px 0}.menu-entry-action{grid-column:2;flex-direction:row;align-items:center;flex-wrap:wrap;gap:20px}.menu-entry h3{font-size:31px}html[lang=ja] .serving-copy h1{font-size:48px}.steam{filter:blur(3px)}}
@media(prefers-reduced-motion:reduce){.steam{display:none}.served-dish{will-change:auto}}
/* Immersive ocean, shared behind the page; food stays warm in the foreground. */
body{position:relative;background:#041d2b}.ocean-scene{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:#041d2b}.ocean-photo{position:absolute;inset:-3% -3% -360px;background:linear-gradient(90deg,#021c2b45,transparent 70%),url('assets/ocean-depth.webp') center top/cover no-repeat;animation:ocean-breathe 22s ease-in-out infinite alternate}.ocean-scene .underwater{z-index:1;background:transparent;opacity:.65}.ocean-scene .water-surface{opacity:.35}.ocean-fish{position:absolute;z-index:2;top:50%;left:50%;width:clamp(160px,14vw,195px);transform:translate(-50%,-50%) rotate(53deg);opacity:.92;filter:brightness(0);will-change:transform}.fish-swim{position:relative;animation:fish-swim 4.8s ease-in-out infinite}.fish-body{width:100%;clip-path:inset(0 0 0 23%)}.fish-tail{position:absolute;inset:0;width:100%;clip-path:inset(0 76% 0 0);transform-origin:24% 48%;animation:tail-beat 1.9s ease-in-out infinite}.ocean-bubbles{position:absolute;inset:0;z-index:3}.ocean-bubbles i{position:absolute;left:5%;bottom:-25px;width:9px;height:9px;border-radius:50%;border:1px solid #c4f3f65c;background:radial-gradient(circle at 30% 25%,#dcffff8c,transparent 42%);box-shadow:inset -1px -1px 3px #0d586d;opacity:0;animation:bubble-rise 15s linear infinite}.ocean-bubbles i:nth-child(2){left:9%;width:15px;height:15px;animation-duration:19s;animation-delay:-8s}.ocean-bubbles i:nth-child(3){left:3%;width:5px;height:5px;animation-duration:13s;animation-delay:-5s}.ocean-bubbles i:nth-child(4){left:92%;width:13px;height:13px;animation-duration:18s;animation-delay:-11s}.ocean-bubbles i:nth-child(5){left:96%;width:7px;height:7px;animation-duration:14s;animation-delay:-3s}.ocean-bubbles i:nth-child(6){left:88%;width:6px;height:6px;animation-duration:21s;animation-delay:-16s}.ocean-bubbles i:nth-child(7){left:43%;width:5px;height:5px;animation-duration:20s;animation-delay:-9s;--bubble-opacity:.25}.ocean-bubbles i:nth-child(8){left:57%;width:8px;height:8px;animation-duration:24s;animation-delay:-18s;--bubble-opacity:.2}main,footer{position:relative;z-index:1}.serving-hero{background:transparent;isolation:auto}.serving-copy{z-index:3}.serving-display{z-index:2;width:112%;margin-left:0}.served-dish>img{mask-image:none;object-fit:contain;padding:3% 4% 5%;filter:drop-shadow(0 24px 22px #00172360)}.serving-label{bottom:-30px}.steam-gentle{top:10%;left:39%;height:32%}.steam-ramen{top:4%;height:39%}.food,.guest{background:transparent}.place{background:#082c3ab8}.interior{background:#082c3a}.visit{background:#0c3948cf}.info-ribbon{background:#06232ee6}footer{background:#041b27ed}.motion-paused .ocean-scene *,.motion-paused .wisp,.page-hidden .ocean-scene *,.page-hidden .wisp{animation-play-state:paused!important}
@keyframes ocean-breathe{from{transform:translateY(0) scale(1)}to{transform:translateY(-1.5%) scale(1.025)}}@keyframes fish-swim{0%,100%{transform:translate(-3px,0) rotate(-1deg)}50%{transform:translate(4px,-5px) rotate(1deg)}}@keyframes tail-beat{0%,100%{transform:scaleY(.94) rotate(-2deg)}50%{transform:scaleY(1.03) rotate(2deg)}}@keyframes bubble-rise{0%{transform:translate(0,0);opacity:0}8%,88%{opacity:var(--bubble-opacity,.5)}100%{transform:translate(22px,-110vh);opacity:0}}
.fish-raf-controlled .fish-swim,.fish-raf-controlled .fish-tail{animation:none!important}
@media(max-width:760px){.ocean-photo{background-position:60% top}.ocean-fish{top:50%;left:50%;width:145px;opacity:.92}.serving-display{width:116%;margin:12px -8% 40px}.serving-label{bottom:-20px}.serving-hero{padding-bottom:85px}.ocean-bubbles i:nth-child(7),.ocean-bubbles i:nth-child(8){display:none}.served-dish>img{padding:0 5% 4%}.steam-gentle{top:5%}}
@media(prefers-reduced-motion:reduce){.ocean-bubbles{display:none}.ocean-scene *{animation:none!important}.ocean-fish{will-change:auto}}

/* Scroll-linked depth: fixed fish, independently drifting water layers. */
.ocean-photo{translate:0 var(--ocean-depth,0px)}.ocean-scene .underwater{inset:-3% -3% -360px;translate:0 var(--light-depth,0px)}.ocean-bubbles{translate:0 var(--bubble-depth,0px)}.ocean-bubbles i:nth-child(7){left:14%}.ocean-bubbles i:nth-child(8){left:84%}
@media(prefers-reduced-motion:reduce){.ocean-photo,.ocean-scene .underwater,.ocean-bubbles{translate:none}}

/* Readable black silhouette, illuminated water behind it. */
.fish-backlight{position:absolute;z-index:1;left:50%;top:50%;width:clamp(300px,32vw,460px);aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#4396a17a 0%,#2f7a8b40 35%,transparent 70%);pointer-events:none}.ocean-bubbles i:nth-child(9){left:7%;width:6px;height:6px;animation-duration:17s;animation-delay:-12s}.ocean-bubbles i:nth-child(10){left:94%;width:10px;height:10px;animation-duration:20s;animation-delay:-6s}.ocean-bubbles i:nth-child(11){left:18%;width:4px;height:4px;animation-duration:15s;animation-delay:-10s}.ocean-bubbles i:nth-child(12){left:81%;width:7px;height:7px;animation-duration:22s;animation-delay:-14s}.ocean-bubbles i:nth-child(13){left:11%;width:8px;height:8px;animation-duration:16s;animation-delay:-4s}.ocean-bubbles i:nth-child(14){left:90%;width:5px;height:5px;animation-duration:18s;animation-delay:-15s}.ocean-bubbles i:nth-child(15){left:22%;width:5px;height:5px;animation-duration:24s;animation-delay:-17s}.ocean-bubbles i:nth-child(16){left:77%;width:11px;height:11px;animation-duration:23s;animation-delay:-9s}.ocean-bubbles i:nth-child(17){left:2%;width:12px;height:12px;animation-duration:21s;animation-delay:-18s}.ocean-bubbles i:nth-child(18){left:98%;width:4px;height:4px;animation-duration:14s;animation-delay:-7s}
@media(max-width:760px){.ocean-bubbles i:nth-child(7),.ocean-bubbles i:nth-child(8){display:block}.ocean-bubbles i:nth-child(n+13){display:none}.fish-backlight{width:320px}}
/* Depth follows the entire page, with progressively quieter surface light. */
.ocean-depth-shade{position:absolute;inset:0;z-index:1;background:#000f22;opacity:var(--sea-darkness,0);pointer-events:none}.ocean-scene .underwater{opacity:calc(.65 * var(--sea-light,1))}.fish-backlight{opacity:calc(.65 + .35 * var(--sea-light,1))}.place{background:linear-gradient(#082c3a99,#062a38b8)}.visit{background:linear-gradient(#082b3bc7,#041c2bdf)}
.serving-display{width:108%;margin-left:0}.served-dish>img{padding:5% 5% 7%}.steam-gentle{top:10%;left:37%;height:28%;width:24%;opacity:.2}.steam-ramen{top:4%;left:36%;height:37%;width:28%;opacity:.42}.dish-error{position:absolute;bottom:0;left:5%;right:5%;font-size:12px;text-align:center;color:var(--cream);background:var(--deep);padding:10px;z-index:5}.dish-buttons button{min-height:48px}.languages a{min-width:32px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.motion-toggle{min-height:44px}.serving-copy,.menu-entry-copy{min-width:0}
.served-dish[data-dish="ramen"]>img{transform:scale(.94)}

/* Keep the soft underwater look without large continuously composited blur layers. */
.water-surface,.light-shaft{filter:none}.plate-halo{filter:none;background:radial-gradient(circle,#68a8a529,transparent 68%)}.served-dish,.ocean-fish{will-change:auto}
@media(max-width:760px){.serving-display{width:112%;margin:15px -6% 40px}.serving-bottom{flex-wrap:wrap}.serving-copy .description{max-width:100%}.dish-buttons button{font-size:18px;gap:7px;padding:10px 12px}.dish-buttons button i{margin-left:0}.languages{gap:3px}.header-end{gap:12px}.served-dish>img{padding:3% 3% 6%}.steam-gentle{top:7%}.steam-ramen{top:3%}}
@media(max-width:760px){.mobile-bar{backdrop-filter:none;background:#06232efa}}
@media(max-width:390px){.header-cta{display:none}.dish-buttons button{font-size:16px}.serving-copy h1{font-size:60px}}

/* Mobile reference composition: preserve the complete information stack and plate. */
.description-short{display:none}
@media(max-width:760px){
  .header{height:72px;padding:0 7%;gap:12px}
  .brand-word{font-size:25px;gap:11px}.brand-jp{font-size:12px;padding-left:11px}.brand-place{display:block;font-size:6px;margin-top:3px}
  .header-cta{display:none}.header-end{gap:6px}.languages a{min-height:40px;min-width:30px}
  .serving-hero{height:auto;min-height:100svh;overflow:visible;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;align-items:start;padding:84px 7% calc(55px + env(safe-area-inset-bottom))}
  .serving-copy{max-width:none}.serving-copy .eyebrow{display:block;margin-bottom:7px;font-size:7px;line-height:1.4}.serving-copy .eyebrow>span{width:22px;margin-right:9px}
  .serving-copy h1{font-size:clamp(49px,13.3vw,53px);line-height:1.02}
  .serving-copy .description{display:block;margin-top:8px;font-size:13px;line-height:1.5;max-width:340px}.description-long{display:inline}.description-short{display:none}
  .dish-picker{margin-top:10px}.dish-picker>p{display:block;margin-bottom:7px;font-size:7px}.dish-buttons{gap:8px}
  .dish-buttons button{height:50px;min-height:50px;padding:7px 10px;gap:6px;font-size:clamp(14px,4vw,17px);line-height:1.12;white-space:normal;justify-content:space-between}
  .dish-buttons button span{font-size:8px}.dish-buttons button i{font-size:14px;margin-left:0}
  .picker-note{display:block;margin-top:4px;font-size:9px;line-height:1.4}
  .serving-copy .actions{display:flex;margin-top:8px;gap:18px;flex-wrap:nowrap}.serving-copy .text-link{font-size:8px;gap:12px;padding:6px 0;white-space:nowrap}
  .serving-display{width:99.5%;height:auto;min-height:0;aspect-ratio:1;margin:3px .25% 0;align-self:start}
  .served-dish>img{width:100%;height:100%;padding:0;object-fit:contain}
  .served-dish[data-dish="aji"]>img{transform:scale(1.07)}
  .served-dish[data-dish="ramen"]>img{transform:scale(.95)}
  .steam-gentle{top:4%;left:38%;height:27%}.steam-ramen{top:0;left:36%;height:34%}
  .serving-bottom,.serving-label{display:none}
  .mobile-bar a{padding:14px 10px;min-height:50px}
  html[lang=ja] .serving-copy h1{font-size:clamp(45px,12.3vw,49px);line-height:1.08}
}
@media(max-width:760px) and (max-height:720px){
  .header{height:66px}.serving-hero{min-height:790px;padding-top:76px;padding-bottom:calc(54px + env(safe-area-inset-bottom))}
  .serving-copy h1{font-size:49px}.serving-copy .description{margin-top:6px}.dish-picker{margin-top:8px}
  .dish-buttons button{height:48px;min-height:48px}
  .mobile-bar a{padding:12px 9px;min-height:48px}
}
@media(max-width:370px){.serving-copy h1{font-size:47px}.dish-buttons button{font-size:14px;padding-inline:8px}.serving-copy .actions{gap:12px}.serving-copy .text-link{font-size:7px}}

/* Place section reveal. Content stays visible without JS and with reduced motion. */
@media(prefers-reduced-motion:no-preference){
  .js .place .exterior,.js .place .place-copy{transition:opacity .7s cubic-bezier(.22,.75,.28,1),transform .7s cubic-bezier(.22,.75,.28,1)}
  .js .place .place-copy{transition-delay:.15s}
  .js .place:not(.place-revealed) .exterior,.js .place:not(.place-revealed) .place-copy{opacity:0;transform:translateY(10px)}
  .motion-paused .place .exterior,.motion-paused .place .place-copy{transition:none}
}

/* First-tab hero introduction. These rules are inert until app.js opts in. */
@media(prefers-reduced-motion:no-preference){
  .intro-prep .ocean-scene::after,.intro-active .ocean-scene::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 72% 0%,#4d9c9924 0%,#0a34424d 48%,#03192399 100%);opacity:1;transition:opacity .6s ease-out}
  .intro-active.intro-running .ocean-scene::after{opacity:0}
  .intro-prep .serving-copy h1,.intro-active .serving-copy h1{opacity:1;translate:0 6px;transition:translate .5s cubic-bezier(.22,.75,.28,1) .1s}
  .intro-active.intro-running .serving-copy h1{translate:0 0}
  .intro-prep .serving-display,.intro-active .serving-display{opacity:0;translate:0 8px;transition:opacity .68s ease-out,translate .68s cubic-bezier(.16,1,.3,1)}
  .intro-active.intro-dish-ready .serving-display{opacity:1;translate:0 0}
  .intro-active:not(.intro-steam-ready) .served-dish:not([hidden]) .steam{visibility:hidden}
}
.intro-complete .serving-display,.motion-paused .serving-display{transition:none!important;opacity:1!important;translate:0 0!important}
.intro-complete .serving-copy h1,.motion-paused .serving-copy h1{transition:none!important;opacity:1!important;translate:0 0!important}
.motion-paused .ocean-scene::after{display:none}
.ocean-bubbles i:first-child{animation-delay:-2s}
.no-js .dish-picker{display:none}

/* TOP depth: a restrained serving motion, synced contact shadow and desktop-only parallax. */
.plate-halo{inset:auto;z-index:0;left:20%;right:20%;bottom:10%;height:15%;border-radius:50%;background:radial-gradient(ellipse,#00151f52 0%,#00151f26 45%,transparent 72%);filter:none;transform-origin:center;pointer-events:none}
.served-dish{z-index:1}
.ocean-photo{translate:var(--hero-parallax-x,0px) calc(var(--ocean-depth,0px) + var(--hero-parallax-y,0px));transition:translate .4s ease-out}
.ocean-scene .underwater{translate:calc(var(--hero-parallax-x,0px) * .55) calc(var(--light-depth,0px) + var(--hero-parallax-y,0px) * .55);transition:translate .4s ease-out}
@media(prefers-reduced-motion:no-preference){
  .intro-prep .serving-display,.intro-active .serving-display{opacity:1;translate:0 0;transition:none}
  .intro-prep .served-dish:not([hidden]),.intro-active .served-dish:not([hidden]){opacity:1;transform:translateY(8px) scale(.94);transform-origin:center 58%;transition:transform .72s cubic-bezier(.16,1,.3,1)}
  .intro-prep .plate-halo,.intro-active .plate-halo{opacity:.35;transform:scale(.86);transition:opacity .68s ease-out,transform .72s cubic-bezier(.16,1,.3,1)}
  .intro-active.intro-dish-ready .served-dish:not([hidden]){opacity:1;transform:translateY(0) scale(1)}
  .intro-active.intro-dish-ready .plate-halo{opacity:1;transform:scale(1)}
}
.intro-complete .served-dish:not([hidden]),.motion-paused .served-dish:not([hidden]){transition:none!important;opacity:1!important;transform:none!important}
.intro-complete .plate-halo,.motion-paused .plate-halo{transition:none!important;opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.ocean-photo,.ocean-scene .underwater{--hero-parallax-x:0px;--hero-parallax-y:0px}.plate-halo{opacity:1;transform:none}}

/* Keep the deep water steady; only the bright surface at the top drifts. */
.ocean-photo{animation:none}
.surface-wave{position:absolute;z-index:2;top:0;left:0;right:0;height:325px;overflow:hidden;pointer-events:none;translate:0 var(--ocean-depth,0px);mask-image:linear-gradient(to bottom,#000 0 115px,#000e 175px,#0007 245px,transparent 325px);contain:paint}
.surface-wave i{--surface-x:50%;position:absolute;inset:-3px -7px 0;background:url('assets/ocean-depth.webp') center calc(-3vh)/auto calc(103vh + 360px) no-repeat;opacity:calc(.145 * var(--sea-light,1));transform-origin:var(--surface-x) 0;mask-image:linear-gradient(to right,transparent calc(var(--surface-x) - 18%),#0003 calc(var(--surface-x) - 13%),#000 var(--surface-x),#0003 calc(var(--surface-x) + 13%),transparent calc(var(--surface-x) + 18%));will-change:transform,opacity;animation:surface-ripple-a 8.4s cubic-bezier(.35,.25,.65,.75) infinite alternate}
.surface-wave i:nth-child(1){--surface-x:4%;animation-duration:7.6s;animation-delay:-1.7s}
.surface-wave i:nth-child(2){--surface-x:18%;animation-name:surface-ripple-b;animation-duration:9.1s;animation-delay:-5.4s}
.surface-wave i:nth-child(3){--surface-x:32%;animation-duration:10.8s;animation-delay:-3.2s}
.surface-wave i:nth-child(4){--surface-x:46%;animation-name:surface-ripple-c;animation-duration:8.7s;animation-delay:-6.8s}
.surface-wave i:nth-child(5){--surface-x:60%;animation-name:surface-ripple-b;animation-duration:11.6s;animation-delay:-2.6s}
.surface-wave i:nth-child(6){--surface-x:74%;animation-duration:9.8s;animation-delay:-7.3s}
.surface-wave i:nth-child(7){--surface-x:88%;animation-name:surface-ripple-c;animation-duration:10.5s;animation-delay:-4.1s}
.surface-wave i:nth-child(8){--surface-x:98%;animation-name:surface-ripple-b;animation-duration:8.1s;animation-delay:-6.1s}
@keyframes surface-ripple-a{0%,7%{transform:translate3d(-3px,0,0) skewX(-.13deg) scaleX(1.004)}46%{transform:translate3d(2px,3px,0) skewX(.11deg) scaleX(.997)}100%{transform:translate3d(5px,-2px,0) skewX(-.05deg) scaleX(1.007)}}
@keyframes surface-ripple-b{0%,9%{transform:translate3d(3px,1px,0) skewX(.12deg) scaleX(.997)}53%{transform:translate3d(-4px,-2px,0) skewX(-.13deg) scaleX(1.006)}100%{transform:translate3d(1px,3px,0) skewX(.05deg) scaleX(.999)}}
@keyframes surface-ripple-c{0%,11%{transform:translate3d(-4px,2px,0) skewX(-.1deg) scaleX(1.005);opacity:calc(.125 * var(--sea-light,1))}57%{transform:translate3d(3px,-2px,0) skewX(.14deg) scaleX(.997);opacity:calc(.175 * var(--sea-light,1))}100%{transform:translate3d(1px,3px,0) skewX(-.04deg) scaleX(1.003);opacity:calc(.145 * var(--sea-light,1))}}
.motion-paused .surface-wave i,.page-hidden .surface-wave i{animation-play-state:paused!important}
@media(max-width:760px){.surface-wave{height:238px;mask-image:linear-gradient(to bottom,#000 0 72px,#000d 122px,#0006 178px,transparent 238px)}.surface-wave i{opacity:calc(.13 * var(--sea-light,1))}.surface-wave i:nth-child(odd){animation-name:surface-ripple-mobile-a}.surface-wave i:nth-child(even){animation-name:surface-ripple-mobile-b}.surface-wave i:nth-child(7),.surface-wave i:nth-child(8){display:none}}
@keyframes surface-ripple-mobile-a{0%,8%{transform:translate3d(-2px,0,0) skewX(-.08deg) scaleX(1.003)}49%{transform:translate3d(2px,2px,0) skewX(.07deg) scaleX(.998)}100%{transform:translate3d(3px,-1px,0) skewX(-.04deg) scaleX(1.005)}}
@keyframes surface-ripple-mobile-b{0%,10%{transform:translate3d(2px,1px,0) skewX(.08deg) scaleX(.998)}54%{transform:translate3d(-3px,-1px,0) skewX(-.08deg) scaleX(1.004)}100%{transform:translate3d(1px,2px,0) skewX(.03deg) scaleX(.999)}}
@media(prefers-reduced-motion:reduce){.surface-wave i{animation:none!important;transform:none;opacity:calc(.18 * var(--sea-light,1))}}

/* First-tab water rise: the existing ocean is revealed, never duplicated. */
.startup-intro{--startup-brand-y:clamp(220px,37vh,340px);position:fixed;inset:0;z-index:90;overflow:hidden;pointer-events:auto;color:var(--cream)}
.startup-intro[hidden]{display:none}
.startup-curtain{position:absolute;z-index:1;inset:-4vh 0 -5vh;background:#041d2b;will-change:transform}
.startup-curtain::before,.startup-curtain::after{content:"";position:absolute;left:-6%;right:-6%;bottom:-43px;height:76px;background-position:center;background-size:100% 100%;background-repeat:no-repeat;pointer-events:none}
.startup-curtain::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 76' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop stop-color='%237bc7c1' stop-opacity='.3'/%3E%3Cstop offset='.48' stop-color='%233f9998' stop-opacity='.14'/%3E%3Cstop offset='1' stop-color='%23145c66' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M0 28C88 36 174 38 274 27S468 14 586 26 766 40 894 25 1094 17 1200 29L1200 55C1088 45 1000 43 894 51S690 62 584 51 380 39 274 51 85 61 0 52Z'/%3E%3C/svg%3E")}
.startup-curtain::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 76' preserveAspectRatio='none'%3E%3Cpath fill='%23041d2b' d='M0 0H1200V29C1094 17 1000 15 894 25S704 40 586 26 374 16 274 27 88 36 0 28Z'/%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath stroke='%23a8e6dd' stroke-opacity='.28' stroke-width='1.35' d='M0 28C88 36 174 38 274 27S468 14 586 26 766 40 894 25 1094 17 1200 29'/%3E%3Cpath stroke='%23d6fff4' stroke-opacity='.44' stroke-width='1.7' d='M650 31C730 39 810 36 894 25S1032 17 1128 25'/%3E%3Cpath stroke='%238bd0ca' stroke-opacity='.16' stroke-width='1' d='M720 38C790 43 846 39 918 32S1034 27 1098 31'/%3E%3C/g%3E%3C/svg%3E")}
.startup-rise-bubbles{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}.startup-rise-bubbles i{position:absolute;bottom:-18px;width:5px;height:5px;border:1px solid #d8fff071;border-radius:50%;opacity:0;animation:startup-bubble-rise 1.65s ease-out .72s both}.startup-rise-bubbles i:nth-child(1){left:19%;width:4px;height:4px;animation-delay:.78s}.startup-rise-bubbles i:nth-child(2){left:38%;width:7px;height:7px;animation-delay:.92s;animation-duration:1.5s}.startup-rise-bubbles i:nth-child(3){left:67%;width:5px;height:5px;animation-delay:.7s;animation-duration:1.72s}.startup-rise-bubbles i:nth-child(4){left:84%;width:3px;height:3px;animation-delay:1.02s;animation-duration:1.38s}
.startup-mark{position:absolute;z-index:6;left:50%;top:var(--startup-brand-y);translate:-50% -50%;display:grid;justify-items:center;gap:13px;text-align:center;opacity:0}
.startup-mark img{width:clamp(92px,8vw,118px);height:auto;aspect-ratio:1;object-fit:contain;filter:brightness(0) invert(94%) sepia(8%) saturate(255%)}
.startup-mark span{font-family:var(--serif);font-size:clamp(25px,2.1vw,30px);letter-spacing:.16em;padding-left:.16em}
.startup-skip{position:absolute;z-index:3;top:max(20px,env(safe-area-inset-top));right:max(22px,5vw);border:0;border-bottom:1px solid #c4aa7880;background:transparent;color:var(--cream);font:10px/1.2 var(--sans);letter-spacing:.15em;text-transform:uppercase;padding:10px 2px;cursor:pointer}
.startup-skip:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.language-choice{position:absolute;z-index:5;inset:0;overflow:auto;overscroll-behavior:contain;padding:calc(var(--startup-brand-y) + 98px) max(22px,6vw) max(28px,env(safe-area-inset-bottom));display:block;text-align:center;opacity:0;visibility:hidden;pointer-events:none}
.language-choice[hidden]{display:none}.language-choice h1{margin:0 auto 17px;font:10px/1.4 var(--sans);font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:#d7e6e3}
.language-choice nav{display:grid;width:min(430px,100%);margin-inline:auto;gap:8px}.language-choice a{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #d7e6e347;color:var(--cream);text-decoration:none;padding:9px 3px;font:13px/1.3 var(--sans);letter-spacing:.08em}.language-choice a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.language-choice .language-primary{min-height:52px;font:clamp(18px,2vw,22px)/1.25 var(--serif);letter-spacing:.03em;border-color:#c4aa78b8}.language-choice .language-japanese{font-size:15px}.language-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.language-secondary a{font-size:12px;letter-spacing:.04em}
.startup-prep .header,.startup-prep main,.startup-prep footer,.startup-prep .mobile-bar{visibility:hidden;pointer-events:none}
.startup-prep .fish-3d,.startup-prep .fish-fallback,.startup-prep .ocean-bubbles{opacity:0!important}
.startup-running .startup-mark{animation:startup-mark-in .38s ease-out both}
.startup-running .startup-curtain{animation:startup-curtain-rise 1.7s cubic-bezier(.45,.02,.28,1) .62s forwards}
.startup-running .startup-curtain::before,.startup-running .startup-curtain::after{animation:startup-wave-shift .9s ease-in-out .62s 2 alternate}
.startup-hidden .startup-intro *{animation-play-state:paused!important}
.startup-complete .startup-intro{display:none}
.startup-complete .serving-copy{animation:startup-content-in .36s ease-out both}
.startup-complete .served-dish:not([hidden]){animation:startup-dish-in .58s cubic-bezier(.16,1,.3,1) both}
.startup-complete .served-dish:not([hidden]) .steam{animation-delay:.24s}
.startup-water-done .startup-curtain,.startup-water-done .startup-rise-bubbles,.startup-water-done .startup-skip{display:none}.startup-water-done .startup-mark{opacity:1}.startup-water-done .language-choice{visibility:visible;opacity:1;pointer-events:auto;animation:language-choice-in .26s ease-out both}.startup-water-done .ocean-bubbles{opacity:.28!important}.startup-choice-leaving .startup-mark,.startup-choice-leaving .language-choice{animation:language-choice-out .25s ease-in both}
@keyframes startup-mark-in{from{opacity:0;translate:-50% calc(-50% + 5px)}to{opacity:1;translate:-50% -50%}}
@keyframes startup-mark-out{to{opacity:0;translate:-50% calc(-50% - 3px)}}
@keyframes startup-curtain-rise{0%{transform:translateY(0)}100%{transform:translateY(-110%)}}
@keyframes startup-wave-shift{from{translate:-1.2% 0}to{translate:1.2% 2px}}
@keyframes startup-bubble-rise{0%{transform:translate3d(0,0,0);opacity:0}18%{opacity:.38}82%{opacity:.24}100%{transform:translate3d(8px,-46vh,0);opacity:0}}
@keyframes startup-content-in{from{translate:0 5px}to{translate:0 0}}
@keyframes startup-dish-in{from{transform:translateY(8px) scale(.94)}to{transform:none}}
@keyframes language-choice-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes language-choice-out{to{opacity:0;transform:translateY(-3px)}}
@media(max-width:760px){.startup-intro{--startup-brand-y:clamp(175px,32.5vh,274px)}.startup-mark{gap:11px}.startup-mark img{width:100px}.startup-mark span{font-size:27px}.language-choice{padding-top:calc(var(--startup-brand-y) + 91px)}.language-secondary{grid-template-columns:1fr}.language-choice nav{gap:4px}.language-choice a{padding:7px 3px}.language-secondary a{min-height:44px}}
@media(max-height:650px){.startup-intro{--startup-brand-y:150px}.startup-mark img{width:82px}.language-choice{padding-top:242px}.language-choice h1{margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){.startup-running .startup-curtain,.startup-running .startup-mark{animation:none!important}.startup-water-done .language-choice,.startup-choice-leaving .language-choice{animation:none!important}.startup-complete .serving-copy,.startup-complete .served-dish:not([hidden]){animation:none!important}}

/* Language choice continuation: the approved background fish follows one
   curved entry path, then returns to the exact normal transform and swim. */
.language-intro-prep{overflow:hidden}
.language-intro-prep .header,.language-intro-prep main,.language-intro-prep footer,.language-intro-prep .mobile-bar{visibility:hidden;pointer-events:none}
.language-intro-prep .ocean-fish{visibility:hidden;opacity:.92}
.language-intro-prep.language-intro-fish-ready .ocean-fish{visibility:visible}
.language-intro-skip{position:fixed;z-index:95;top:max(20px,env(safe-area-inset-top));right:max(22px,5vw);border:0;border-bottom:1px solid #c4aa7880;background:transparent;color:var(--cream);font:10px/1.2 var(--sans);letter-spacing:.15em;text-transform:uppercase;padding:10px 2px;cursor:pointer}
.language-intro-skip:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.language-intro-reveal .header,.language-intro-reveal main,.language-intro-reveal footer,.language-intro-reveal .mobile-bar{visibility:visible;pointer-events:auto}
.language-intro-reveal .header{animation:language-hero-content-in .34s ease-out both}
.language-intro-reveal .serving-copy{animation:language-hero-content-in .42s ease-out both}
.language-intro-prep .serving-display{opacity:0}
.language-intro-dish-ready .serving-display{visibility:visible;opacity:1;animation:language-hero-dish-in .58s cubic-bezier(.16,1,.3,1) both}
.language-intro-prep:not(.language-intro-dish-ready) .served-dish:not([hidden]) .steam{visibility:hidden}
.language-intro-complete .header,.language-intro-complete main,.language-intro-complete footer,.language-intro-complete .mobile-bar{visibility:visible!important;pointer-events:auto!important}
.language-intro-complete .serving-display{opacity:1!important;transform:none!important}
@keyframes language-hero-content-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@keyframes language-hero-dish-in{from{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.language-intro-prep .header,.language-intro-prep main,.language-intro-prep footer,.language-intro-prep .mobile-bar{visibility:visible;pointer-events:auto}.language-intro-prep .serving-display{opacity:1}.language-intro-skip{display:none}}

/* Menu photo viewer: images remain request-on-open, while the fixed stage
   prevents layout movement during loading, failure and rapid selections. */
.menu-photo-open{overflow:hidden}.menu-photo-dialog{width:min(1080px,calc(100vw - 48px));max-width:none;max-height:calc(100svh - 48px);padding:0;border:1px solid #c4aa785c;background:#052633;color:var(--cream);box-shadow:0 28px 80px #001018cc;overflow:auto}.menu-photo-dialog::backdrop{background:#001018d9}.menu-photo-shell{position:relative;display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,2fr);gap:clamp(24px,3.2vw,48px);padding:clamp(22px,3vw,38px)}.menu-photo-close{position:absolute;z-index:4;right:16px;top:16px;width:46px;height:46px;border:1px solid var(--gold);background:#052633e8;color:var(--cream);font-size:28px;line-height:1;cursor:pointer}.menu-photo-media{min-width:0}.menu-photo-stage{position:relative;display:grid;place-items:center;aspect-ratio:4/3;min-height:360px;background:radial-gradient(circle at 52% 38%,#1a5b6654,#031923 74%);overflow:auto}.menu-photo-stage img{display:block;width:100%;height:100%;object-fit:contain;padding:clamp(8px,1.7vw,20px);filter:drop-shadow(0 16px 18px #00151f52);transition:transform .22s ease}.menu-photo-stage.is-photo img,.menu-photo-stage.is-poster img{filter:none;padding:12px}.menu-photo-stage.is-zoomed{place-items:start center}.menu-photo-stage.is-zoomed img{width:auto;height:auto;max-width:none;max-height:none;min-width:150%;object-fit:initial;padding:10px;cursor:zoom-out}.menu-photo-stage p{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;font-size:12px;letter-spacing:.06em;color:var(--muted)}.menu-photo-zoom{min-height:44px;margin-top:10px;border:0;border-bottom:1px solid var(--gold);background:transparent;color:var(--gold);padding:6px 2px;cursor:pointer}.menu-photo-info{align-self:center;padding:54px 8px 18px 0}.menu-photo-info h2{font-size:clamp(32px,3.2vw,40px);line-height:1.16;margin:10px 0 24px}.menu-photo-headline{font:clamp(18px,2vw,24px)/1.55 var(--serif);color:var(--cream);margin:0 0 12px}.menu-photo-description{font-size:13px;line-height:1.9;color:var(--muted);margin:0}.menu-photo-switches{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.menu-photo-switches button,.menu-photo-info>[data-menu-photo-retry]{min-height:44px;border:1px solid var(--line);background:transparent;color:var(--cream);padding:10px 16px;cursor:pointer}.menu-photo-switches button[aria-pressed=true]{border-color:var(--gold);color:var(--gold);background:#c4aa780d}.menu-photo-info>[data-menu-photo-retry]{margin-top:22px;border-color:var(--gold);color:var(--gold)}.menu-entry-action a[data-menu-photo]{min-height:44px;display:inline-flex;align-items:center}.menu-photo-close:focus-visible,.menu-photo-zoom:focus-visible,.menu-photo-switches button:focus-visible,.menu-photo-info>[data-menu-photo-retry]:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:760px){.menu-photo-dialog{width:calc(100vw - 24px);max-height:calc(100svh - 24px)}.menu-photo-shell{grid-template-columns:1fr;gap:18px;padding:58px 16px 22px}.menu-photo-close{position:fixed;right:20px;top:max(20px,env(safe-area-inset-top));width:44px;height:44px}.menu-photo-stage{aspect-ratio:4/3;min-height:0;max-height:42svh}.menu-photo-stage img{padding:6px}.menu-photo-stage.is-photo img,.menu-photo-stage.is-poster img{padding:7px}.menu-photo-info{padding:0}.menu-photo-info .eyebrow{display:none}.menu-photo-info h2{font-size:clamp(24px,7vw,28px);margin:0 0 13px}.menu-photo-headline{font-size:18px;line-height:1.55}.menu-photo-description{font-size:12px;line-height:1.75}.menu-photo-switches{margin-top:18px}.menu-entry-action{gap:8px 14px;flex-wrap:wrap}.menu-entry-copy>p:not(.eyebrow){max-width:100%}.menu-foot{gap:7px 14px;flex-wrap:wrap}}
@media(max-height:680px) and (max-width:760px){.menu-photo-shell{padding-top:54px}.menu-photo-stage{max-height:34svh}.menu-photo-info h2{font-size:24px}.menu-photo-headline{font-size:16px}.menu-photo-switches{margin-top:12px}}

/* Copy-fit adjustment: preserve the adopted phrase breaks without changing
   the hero composition or reducing body/button text. */
html[lang=ja] .ja-balanced-heading>span,
html[lang=ja] .ja-balanced-heading>em{display:block;width:max-content;max-width:100%;white-space:nowrap;letter-spacing:0}
html[lang=ja] .serving-copy .ja-balanced-heading{font-size:clamp(48px,4.15vw,60px);line-height:1.18}
html[lang=ja] .place-copy .ja-balanced-heading{font-size:clamp(42px,3.45vw,50px);line-height:1.3}
@media(min-width:761px) and (max-width:1050px){html[lang=ja] .serving-copy .ja-balanced-heading{font-size:clamp(32px,4vw,42px)}}
@media(max-width:760px){
  html[lang=ja] .serving-copy .ja-balanced-heading{font-size:clamp(34px,9.1vw,39px);line-height:1.14}
  html[lang=ja] .place-copy .ja-balanced-heading{font-size:clamp(32px,8.45vw,36px);line-height:1.35}
  html[lang=zh-CN] .serving-copy h1,html[lang=zh-TW] .serving-copy h1{font-size:clamp(43px,11.2vw,48px);line-height:1.08}
  html[lang=en] .serving-copy h1,html[lang=ko] .serving-copy h1{font-size:clamp(43px,11.2vw,48px);line-height:1.06}
}
@media(max-width:330px){html[lang=ja] .ja-balanced-heading>span,html[lang=ja] .ja-balanced-heading>em{width:auto;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}}

/* Optional 3D lab layers. Each can be disabled independently. */
.ocean-caustics{position:absolute;z-index:1;inset:-5%;mix-blend-mode:screen;opacity:0;pointer-events:none}.enhance-caustics .ocean-caustics{background:radial-gradient(ellipse at 82% 3%,#a8e7dc17 0%,#5cadab0d 36%,transparent 68%);opacity:calc(.7 * var(--sea-light,1));animation:caustics-drift 18s ease-in-out infinite alternate}
@keyframes caustics-drift{from{transform:translate3d(-1.5%,0,0);background-position:center 4%}to{transform:translate3d(1.5%,1%,0);background-position:48% 7%}}
.no-caustics .ocean-caustics{display:none}.fish-3d{display:none;position:absolute;z-index:2;left:50%;top:50%;width:clamp(260px,28vw,430px);height:clamp(190px,24vw,340px);transform:translate(-50%,-50%);pointer-events:none}.webgl-fish .fish-3d{display:block}.webgl-fish .fish-fallback{visibility:hidden}
.detail-3d-open .fish-3d{visibility:hidden}.place-enter{border:0;background:transparent;color:inherit;margin:7px 22px 0 0;cursor:pointer}
.three-dialog{width:min(920px,92vw);max-width:none;padding:0;border:1px solid #c4aa7860;background:#052633;color:var(--cream);box-shadow:0 35px 90px #001018cc}.three-dialog::backdrop{background:#001018c9}.three-shell{padding:25px}.three-head,.three-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.three-head h2{font-size:clamp(35px,5vw,62px)}.three-head>button{border:1px solid var(--line);background:transparent;font-size:30px;line-height:1;width:48px;height:48px}.three-stage{position:relative;height:min(58vh,560px);margin:20px 0;background:radial-gradient(circle at 50% 30%,#1f647061,#031923 70%);overflow:hidden;touch-action:pan-y}.three-stage canvas{width:100%;height:100%;display:block;touch-action:none}.three-stage>p{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;letter-spacing:.08em}.three-foot p{max-width:620px;color:var(--muted);font-size:11px}.three-foot button{border:1px solid var(--gold);background:transparent;color:var(--gold);padding:11px 16px;white-space:nowrap}
.entry-experience{position:fixed;z-index:100;inset:0;background:#031923;color:var(--cream);overflow:hidden}.entry-camera{position:absolute;inset:0;perspective:900px;overflow:hidden}.entry-outside,.entry-inside{position:absolute;inset:-4%;background:center/cover no-repeat;transform-origin:center}.entry-outside{background-image:linear-gradient(#00101918,#00101918),var(--entry-outside);z-index:2}.entry-inside{background-image:linear-gradient(#00101938,#00101938),var(--entry-inside);z-index:1;opacity:0;transform:scale(1.12)}.entry-curtain{position:absolute;z-index:3;left:29%;right:38%;top:47%;height:27%;display:flex;transform-origin:50% 0}.entry-curtain i{flex:1;background:#082a67c9;border-right:1px solid #c9d9e51f;transform-origin:50% 0}.entry-experience>p{position:absolute;z-index:5;left:6%;bottom:5%;max-width:520px;font-size:11px;color:#d7e1de}.entry-experience>button{position:absolute;z-index:6;right:5%;top:5%;border:1px solid #fff8;background:#00192380;color:#fff;padding:13px 18px}.entry-experience.playing .entry-outside{animation:enter-outside 4s cubic-bezier(.45,0,.2,1) forwards}.entry-experience.playing .entry-inside{animation:enter-inside 4s cubic-bezier(.45,0,.2,1) forwards}.entry-experience.playing .entry-curtain{animation:enter-curtain 4s ease-in-out forwards}.entry-experience.playing .entry-curtain i:nth-child(2){animation-delay:.08s}.entry-experience.playing .entry-curtain i:nth-child(3){animation-delay:.15s}.entry-experience.playing .entry-curtain i:nth-child(4){animation-delay:.09s}.entry-experience.playing .entry-curtain i{animation:curtain-pass 4s ease-in-out forwards}
@keyframes enter-outside{0%,10%{transform:scale(1);opacity:1}70%{transform:scale(1.5);opacity:1}100%{transform:scale(1.72);opacity:0}}
@keyframes enter-inside{0%,58%{opacity:0;transform:scale(1.12)}78%{opacity:1}100%{opacity:1;transform:scale(1)}}
@keyframes enter-curtain{0%,45%{transform:scale(1)}72%,100%{transform:scale(2.1);opacity:0}}
@keyframes curtain-pass{0%,36%{transform:rotateX(0)}56%{transform:rotateX(-5deg) translateY(2px)}72%,100%{transform:rotateX(0)}}
.motion-paused .ocean-caustics,.page-hidden .ocean-caustics{animation-play-state:paused!important}
@media(max-width:760px){.fish-3d{width:260px;height:210px}.ocean-caustics{background-size:760px auto;opacity:calc(.075 * var(--sea-light,1))}.three-shell{padding:17px}.three-stage{height:48vh}.three-foot{display:block}.three-foot button{margin-top:15px}.entry-curtain{left:22%;right:26%;top:45%;height:24%}}
@media(prefers-reduced-motion:reduce){.ocean-caustics{animation:none}.entry-experience.playing .entry-outside,.entry-experience.playing .entry-inside,.entry-experience.playing .entry-curtain,.entry-experience.playing .entry-curtain i{animation:none}.entry-experience .entry-outside{opacity:0}.entry-experience .entry-inside{opacity:1;transform:none}.entry-experience .entry-curtain{display:none}}

/* Refined entrance: aim at the real left-side doorway, then use one opaque
   curtain wipe so the photographed noren is never doubled by a blue overlay. */
.entry-outside{background-position:38% center;transform-origin:38% 58%}
.entry-inside{transform:scale(1.06)}
.entry-curtain{inset:0;left:0;right:0;top:0;height:auto;opacity:0;pointer-events:none;transform:none}
.entry-curtain i{background:#092b62;border-right:1px solid #d8e4f01f}
.entry-experience.playing .entry-outside{animation:entry-door-approach 4s cubic-bezier(.45,0,.2,1) forwards}
.entry-experience.playing .entry-inside{animation:entry-room-reveal 4s cubic-bezier(.45,0,.2,1) forwards}
.entry-experience.playing .entry-curtain{animation:entry-opaque-wipe 4s ease-in-out forwards}
.entry-experience.playing .entry-curtain i{animation:entry-cloth-lift 4s ease-in-out forwards}
@keyframes entry-door-approach{0%,10%{transform:scale(1);opacity:1}58%{transform:scale(1.62);opacity:1}67%,100%{transform:scale(1.68);opacity:0}}
@keyframes entry-room-reveal{0%,64%{opacity:0;transform:scale(1.06)}78%{opacity:1}100%{opacity:1;transform:scale(1)}}
@keyframes entry-opaque-wipe{0%,52%{opacity:0}56%,69%{opacity:1}76%,100%{opacity:0}}
@keyframes entry-cloth-lift{0%,55%{transform:rotateX(0)}63%{transform:rotateX(-2.5deg) translateY(3px)}73%,100%{transform:rotateX(0)}}
@media(max-width:760px){.entry-outside{background-position:35% center;transform-origin:35% 58%}.entry-curtain{inset:0;left:0;right:0;top:0;height:auto}}
@media(prefers-reduced-motion:reduce){.entry-experience.playing .entry-outside,.entry-experience.playing .entry-inside,.entry-experience.playing .entry-curtain,.entry-experience.playing .entry-curtain i{animation:none}.entry-experience .entry-curtain{display:none}}

/* A brief, legible noren pass: folds and uneven hems remain visible, while the
   fully covered interval is about .2s of the four-second sequence. */
.entry-curtain{left:29%;right:38%;top:47%;bottom:auto;height:21%;gap:1px;background:transparent;transform-origin:50% 0}
.entry-curtain i{background:linear-gradient(90deg,#061d4b 0%,#0b3472 20%,#09295f 55%,#0d3975 82%,#061d4b 100%);clip-path:polygon(0 0,100% 0,100% 96%,72% 98%,43% 96%,0 97%);box-shadow:inset 6px 0 10px #03163855,inset -4px 0 8px #1c579233}
.entry-experience.playing .entry-curtain{animation:entry-noren-pass 4s steps(1,end) forwards}
.entry-experience.playing .entry-curtain i{animation:entry-noren-cloth 4s ease-in-out forwards}
@keyframes entry-noren-pass{0%,60%{opacity:0;transform:scale(5.15) translateY(4%)}62%,67%{opacity:1;transform:scale(5.3) translateY(-2%)}69%,100%{opacity:0;transform:scale(5.45) translateY(-16%)}}
@keyframes entry-noren-cloth{0%,60%{transform:rotateX(0)}64%{transform:rotateX(-4deg) translateY(2%)}69%,100%{transform:rotateX(-7deg) translateY(-5%)}}
@media(max-width:760px){.entry-curtain{left:21%;right:25%;top:46%;height:19%}}
@media(prefers-reduced-motion:reduce){.entry-experience.playing .entry-curtain,.entry-experience.playing .entry-curtain i{animation:none}.entry-experience .entry-curtain{display:none}}

/* v3 entry connection: the close photographed noren hands off at the top edge.
   The room opens from below while the short cloth is pushed above the lens. */
.entry-outside{background-position:36% 60%;transform-origin:36% 61%}
.entry-inside{opacity:0;transform:scale(1.035);clip-path:inset(100% 0 0 0)}
.entry-curtain{left:-4%;right:-4%;top:-3%;height:43%;bottom:auto;gap:2px;opacity:0;transform-origin:50% 0;perspective:700px}
.entry-curtain i{background:linear-gradient(90deg,#061e50 0%,#0a3270 23%,#08275c 55%,#0b3571 84%,#061d4d 100%);clip-path:polygon(0 0,100% 0,100% 96.5%,75% 98%,48% 97%,22% 98%,0 96.5%);box-shadow:inset 7px 0 12px #02143555,inset -5px 0 9px #24588a2b}
.entry-experience.playing .entry-outside{animation:entry-v3-approach 4s cubic-bezier(.42,0,.22,1) forwards}
.entry-experience.playing .entry-inside{animation:entry-v3-room 4s cubic-bezier(.4,0,.2,1) forwards}
.entry-experience.playing .entry-curtain{animation:entry-v3-noren 4s cubic-bezier(.4,0,.18,1) forwards}
.entry-experience.playing .entry-curtain i{animation:entry-v3-cloth 4s ease-in-out forwards}
@keyframes entry-v3-approach{0%,8%{transform:scale(1);opacity:1}54%{transform:scale(1.66);opacity:1}59%{transform:scale(1.73);opacity:.68}63%,100%{transform:scale(1.78);opacity:0}}
@keyframes entry-v3-room{0%,55%{opacity:0;transform:scale(1.035);clip-path:inset(100% 0 0 0)}58%{opacity:.72;clip-path:inset(72% 0 0 0)}64%{opacity:1;clip-path:inset(34% 0 0 0)}72%,100%{opacity:1;transform:scale(1);clip-path:inset(0 0 0 0)}}
@keyframes entry-v3-noren{0%,54%{opacity:0;transform:translateY(16%) scale(1.08)}57%{opacity:1;transform:translateY(7%) scale(1.12)}63%{opacity:1;transform:translateY(-18%) scale(1.14)}69%{opacity:0;transform:translateY(-105%) scale(1.15)}100%{opacity:0;transform:translateY(-105%) scale(1.15)}}
@keyframes entry-v3-cloth{0%,54%{transform:rotateX(0)}59%{transform:rotateX(-4deg) translateY(1%)}65%{transform:rotateX(-11deg) translateY(-3%)}70%,100%{transform:rotateX(-15deg) translateY(-5%)}}
@media(max-width:760px){.entry-outside{background-position:33% 60%;transform-origin:33% 61%}.entry-curtain{left:-7%;right:-7%;top:-2%;height:40%}}
@media(prefers-reduced-motion:reduce){.entry-experience.playing .entry-outside,.entry-experience.playing .entry-inside,.entry-experience.playing .entry-curtain,.entry-experience.playing .entry-curtain i{animation:none}.entry-experience .entry-outside{opacity:0}.entry-experience .entry-inside{opacity:1;transform:none;clip-path:none}.entry-experience .entry-curtain{display:none}}

/* Final handoff uses the photographed noren itself. The close exterior frame
   moves above the lens while the room is uncovered from the bottom; no second
   blue cloth can overlap the real curtain. */
.entry-curtain{display:none!important}
.entry-outside{clip-path:inset(0 0 0 0)}
.entry-experience.playing .entry-outside{animation:entry-v3-photo-pass 4s cubic-bezier(.42,0,.2,1) forwards}
.entry-experience.playing .entry-inside{animation:entry-v3-room-final 4s cubic-bezier(.42,0,.2,1) forwards}
@keyframes entry-v3-photo-pass{0%,8%{transform:scale(1) translateY(0);clip-path:none;opacity:1}54%{transform:scale(1.66) translateY(0);opacity:1}60%{transform:scale(1.70) translateY(-7%);opacity:.88}67%{transform:scale(1.75) translateY(-28%);opacity:.16}70%,100%{transform:scale(1.76) translateY(-34%);clip-path:none;opacity:0}}
@keyframes entry-v3-room-final{0%,54%{opacity:0;transform:scale(1.035);clip-path:none}60%{opacity:.25;transform:scale(1.025)}67%{opacity:.88;transform:scale(1.008)}70%,100%{opacity:1;transform:scale(1);clip-path:none}}

/* Percentage heights on replaced images resolve against their intrinsic ratio
   unless the viewer image is positioned. Pin the normal view to the reserved
   stage so object-fit can always show the complete dish and bowl. */
.menu-photo-stage:not(.is-zoomed) img{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.menu-photo-stage.is-zoomed img{position:static;inset:auto}
.menu-photo-stage{aspect-ratio:1/1}.menu-photo-info h2{word-break:keep-all;overflow-wrap:normal}html[lang=ja] .menu-photo-info h2{font-size:clamp(30px,2.7vw,36px);line-height:1.22;letter-spacing:0}
@media(max-width:760px){html[lang=ja] .menu-photo-info h2{font-size:clamp(24px,7vw,28px)}}
.brand-mark{width:46px;height:46px;object-fit:contain;flex:0 0 auto;filter:brightness(0) invert(94%) sepia(8%) saturate(255%)}
@media(max-width:760px){.brand-word{gap:8px}.brand-mark{width:32px;height:32px}.brand-jp{padding-left:9px}}
@media(max-width:760px){.menu-photo-stage{aspect-ratio:1/1}}

/* Access layout: source order follows the mobile reading order; desktop uses
   one grid to pair the store facts with the single embedded map. */
.visit .section-wrap{width:min(1220px,calc(100% - 80px))}
.visit-shell{position:relative;z-index:2}
.visit-kicker{margin-bottom:35px}
.visit-layout{position:relative;min-height:560px}
.visit-heading{width:36.2%;padding-bottom:28px}
.visit .visit-heading h2{font-size:clamp(44px,4vw,56px);line-height:1.38;letter-spacing:-.035em}
.visit-map-column{position:absolute;top:0;right:0;width:59.1%;min-width:0}
.visit-map{position:relative;width:100%;height:400px;border:1px solid #c4aa7870;background:#0b3341;overflow:hidden}
.visit-map iframe{display:block;width:100%;height:100%;border:0}
.visit-map-actions{grid-area:actions;padding-top:22px;text-align:center}
.visit-map-actions .button{width:100%;min-height:60px;margin:0;text-transform:none;font-size:14px;letter-spacing:.04em}
.visit-map-actions>p{margin-top:12px;font-size:13px;line-height:1.6;color:#b5cbca}
.visit-info{width:36.2%}
.visit-info dl{border-top:1px solid #e1ebe736}
.visit-info dl>div{grid-template-columns:100px minmax(0,1fr);padding:20px 0}
.visit-info dt{font-size:10px;line-height:1.6}
.visit-info dd{font-size:16px;line-height:1.75}
.visit-info small{font-size:13px;line-height:1.65}
.visit-info .travel-note{font-size:13px;line-height:1.75}
@media(max-width:900px){.visit .section-wrap{width:calc(100% - 44px)}.visit-kicker{margin-bottom:22px}.visit-layout{min-height:0}.visit-heading{width:100%;padding-bottom:25px}.visit .visit-heading h2{font-size:clamp(32px,8vw,40px);line-height:1.35}.visit-map-column{position:static;width:100%}.visit-map{height:280px}.visit-map-actions{padding-top:20px}.visit-map-actions .button{min-height:58px}.visit-map-actions>p{margin-top:10px}.visit-info{width:100%;margin-top:30px}.visit-info dl>div{grid-template-columns:95px minmax(0,1fr);padding:18px 0}.visit-info dd{font-size:15px}.visit-info small,.visit-info .travel-note{font-size:13px}}
@media(max-width:390px){.visit .section-wrap{width:calc(100% - 40px)}.visit-map{height:260px}.visit-info dl>div{grid-template-columns:85px minmax(0,1fr);gap:12px}}

/* Hero copy balance: increase only the left-hand type system. The serving
   display keeps its original grid cell, size and coordinates. */
@media(min-width:1051px){
  .serving-copy{width:min(42.5vw,612px);max-width:none;align-self:center;margin-block-start:-45px}
  html[lang=ja] .serving-copy .ja-balanced-heading{font-size:clamp(60px,4.65vw,67px);line-height:1.16}
  html[lang=en] .serving-copy h1{font-size:clamp(58px,4.45vw,64px);line-height:1.12}
  html[lang=zh-CN] .serving-copy h1,html[lang=zh-TW] .serving-copy h1{font-size:clamp(62px,5vw,72px);line-height:1.14}
  html[lang=ko] .serving-copy h1{font-size:clamp(40px,3vw,44px);line-height:1.2;letter-spacing:-.02em}
  .serving-copy .description{max-width:470px;font-size:16px;line-height:1.75;color:#d5e1df}
  .serving-copy .dish-picker{margin-top:30px}
  .serving-copy .dish-picker>p{font-size:13px;line-height:1.5;letter-spacing:.12em;color:#c3d5d3}
  .serving-copy .picker-note{font-size:13px;line-height:1.55;color:#bfd0cf;margin-top:11px}
  .serving-copy .actions{margin-top:27px;gap:30px}
  .serving-copy .text-link{font-size:14px;line-height:1.5;letter-spacing:.06em;gap:18px;padding:9px 0}
}
@media(min-width:761px) and (max-width:1050px){
  .serving-copy .description{font-size:14px;line-height:1.75;color:#cedddb}
  .serving-copy .dish-picker>p{font-size:10px;color:#bed0cf}
  .serving-copy .picker-note{font-size:11px;color:#b7cac9}
  .serving-copy .text-link{font-size:11px}
}
@media(max-width:760px){
  html[lang=ja] .serving-copy .description{font-size:13px;line-height:1.65;color:#d0dedc}
  .serving-copy .dish-picker>p{font-size:9px;color:#bfd0cf}
  .serving-copy .picker-note{font-size:10px;color:#b9cccb}
  .serving-copy .text-link{font-size:9px}
  .serving-display{margin-top:-10.85px}
}

/* Follow-up hero balance: enlarge the adopted Japanese headline and body copy
   on desktop, while keeping controls, supporting copy and the dish untouched. */
@media(min-width:1051px){
  .serving-copy{width:min(46vw,665px);margin-block-start:-110px}
  html[lang=ja] .serving-copy .ja-balanced-heading{font-size:clamp(64.8px,5.02vw,72.5px)}
  .serving-copy .description{font-size:17px}
}

/* Keep the desktop map group intact while aligning its lower edge with the
   adjacent store-information column. The mobile flow remains unchanged. */
@media(min-width:901px){
  .visit-layout{min-height:640px}
  .visit-map-column{top:80px}
}

/* Store introduction: keep both real photographs in normal flow. */
@media(min-width:901px){
  .place-grid{
    grid-template-columns:minmax(0,2fr) minmax(0,1.95fr) minmax(0,1.05fr);
    gap:24px;
  }
  .place-copy{grid-row:auto;padding-top:40px}
  .exterior,.interior{min-width:0;margin:0;padding:0;align-self:start}
  .interior{width:auto;justify-self:stretch;z-index:auto;background:transparent}
  .exterior>img,.interior>img{
    width:100%;
    height:clamp(340px,27vw,390px);
    aspect-ratio:auto;
    object-fit:cover;
  }
  .exterior>img{object-position:center center}
  .interior>img{object-position:center center}
}
@media(max-width:900px){
  .place-grid{
    grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);
    column-gap:12px;
    row-gap:32px;
  }
  .place-copy{grid-column:1/-1;grid-row:auto;padding-top:0}
  .exterior{grid-column:1;grid-row:2;margin:0;min-width:0}
  .interior{
    grid-column:2;
    grid-row:2;
    width:auto;
    min-width:0;
    justify-self:stretch;
    margin:0;
    padding:0;
    background:transparent;
  }
  .exterior>img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
  .interior>img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
}

/* Readable visitor-information band: quiet labels over prominent facts. */
.info-ribbon{
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:0;
  min-height:104px;
  padding:0 max(6.5%,calc((100% - 1160px)/2));
  font-size:inherit;
  letter-spacing:normal;
}
.info-ribbon__item{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:7px;
  padding:20px clamp(24px,2.25vw,34px);
}
.info-ribbon__item:first-child{padding-left:0}
.info-ribbon__item:last-child{padding-right:0}
.info-ribbon__item+.info-ribbon__item{
  border-left:1px solid var(--line);
}
.info-ribbon__label{
  display:block;
  color:#a9c3c4;
  font-size:12px;
  font-weight:400;
  line-height:1.35;
  letter-spacing:.045em;
}
.info-ribbon__value{
  display:block;
  color:#f1f3ed;
  font-size:clamp(18px,1.35vw,20px);
  font-weight:500;
  line-height:1.4;
  letter-spacing:.015em;
}
.info-ribbon__link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  color:var(--gold);
  font-size:clamp(16px,1.2vw,18px);
  font-weight:500;
  line-height:1.4;
  letter-spacing:.02em;
}
.info-ribbon__link:hover{color:#e1c797}

@media(max-width:900px){
  .info-ribbon{
    grid-template-columns:repeat(2,minmax(0,1fr));
    min-height:0;
    padding:0 22px;
  }
  .info-ribbon__item{
    min-height:88px;
    gap:7px;
    padding:20px 14px 20px 0;
  }
  .info-ribbon__item:nth-child(even){
    padding-right:0;
    padding-left:18px;
    border-left:1px solid var(--line);
  }
  .info-ribbon__item:nth-child(odd){border-left:0}
  .info-ribbon__item:nth-child(n+3){border-top:1px solid var(--line)}
  .info-ribbon__label{font-size:12px}
  .info-ribbon__value{font-size:clamp(16px,4.35vw,18px)}
  .info-ribbon__link{font-size:16px}
}

@media(max-width:360px){
  .info-ribbon{grid-template-columns:1fr;padding-inline:20px}
  .info-ribbon__item,
  .info-ribbon__item:nth-child(even){
    min-height:0;
    padding:18px 0;
    border-left:0;
  }
  .info-ribbon__item:nth-child(n+2){border-top:1px solid var(--line)}
}

/* Instagram placements share one verified URL from build.py. Until that URL
   is supplied, the visible preview stays intentionally non-interactive. */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.instagram-link{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  min-height:44px;
  white-space:nowrap;
  transition:color .2s ease,border-color .2s ease,opacity .2s ease;
}
.instagram-icon{
  width:20px;
  height:20px;
  flex:0 0 20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
}
.instagram-icon-dot{fill:currentColor;stroke:none}
.instagram-arrow{margin-left:2px}
a.instagram-link:hover,
a.instagram-link:focus-visible{color:var(--gold)}
.instagram-link.is-disabled{
  color:#d4dfdd;
  opacity:.58;
  cursor:not-allowed;
}
.actions-break{display:none}
.serving-copy .instagram-link--hero{gap:9px}
.visit-info .instagram-link--visit{
  font-family:var(--sans);
  font-size:clamp(16px,1.2vw,18px);
  line-height:1.5;
  color:var(--cream);
}
.visit-info .instagram-link--visit .instagram-arrow{color:var(--gold)}

@media(max-width:760px){
  .serving-copy .actions{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    width:100%;
  }
  .serving-copy .actions .text-link{
    width:100%;
    min-width:0;
    min-height:44px;
    align-items:center;
    gap:5px;
    font-size:clamp(8px,2.5vw,10px);
  }
  .serving-copy .instagram-link--hero{
    gap:5px;
    font-size:clamp(8px,2.5vw,10px);
  }
  .serving-copy .instagram-link--hero .instagram-icon{
    width:16px;
    height:16px;
    flex-basis:16px;
  }
}
