:root{--black:#0a0a0a;--ink:#121212;--charcoal:#1b1b1b;--white:#f4f1e9;--paper:#e9e6de;--muted:#9b9a95;--line:rgba(255,255,255,.16);--dark-line:rgba(10,10,10,.18);--gold:#e5a812;--gold-light:#ffc62f;--gold-dark:#9c6800;--font-sans:"Arial Narrow","Roboto Condensed","Noto Sans JP","Yu Gothic",YuGothic,sans-serif;--font-ja:"Noto Sans JP","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",sans-serif;--container:1240px;--gutter:clamp(20px,4vw,64px);--section-space:clamp(88px,12vw,168px)}
.js body.is-opening{overflow:hidden}
.opening{position:fixed;z-index:2000;inset:0;overflow:hidden;background:#050505;isolation:isolate;pointer-events:none}
.opening.is-revealing{background:transparent}
.opening__stage{position:absolute;z-index:1;inset:0;display:grid;place-content:center;justify-items:center;padding:24px;animation:openingStageOut .18s ease 2.36s forwards}
.opening.is-revealing .opening__stage{opacity:0}
.opening__logo{width:min(700px,72vw);height:auto;opacity:0;filter:drop-shadow(0 18px 48px rgba(0,0,0,.7));animation:openingLogo 1.35s cubic-bezier(.18,.78,.22,1) .24s forwards}
.opening__eyebrow{margin-bottom:28px;color:var(--gold);font:800 clamp(8px,1vw,11px)/1 var(--font-sans);letter-spacing:.3em;opacity:0;transform:translateY(10px);animation:openingCopy .65s ease .74s forwards}
.opening__line{display:block;width:min(420px,46vw);height:1px;margin-top:30px;background:linear-gradient(90deg,transparent,var(--gold),transparent);transform:scaleX(0);animation:openingLine .75s ease 1.02s forwards}
.opening__curtains{position:absolute;z-index:3;inset:-2px;display:grid;grid-template-columns:repeat(4,1fr);pointer-events:none}
.opening__curtains span{--panel-in:1.56s;--panel-out:2.62s;position:relative;display:block;height:calc(100% + 4px);background:#f2a900;border-right:1px solid rgba(85,31,0,.22);transform:translateY(-102%);animation:openingPanelIn .58s cubic-bezier(.76,0,.24,1) var(--panel-in) forwards,openingPanelOut .58s cubic-bezier(.76,0,.24,1) var(--panel-out) forwards}
.opening__curtains span::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:#9f4300;opacity:.6}
.opening__curtains span:nth-child(2){--panel-in:1.68s;--panel-out:2.74s}
.opening__curtains span:nth-child(3){--panel-in:1.8s;--panel-out:2.86s}
.opening__curtains span:nth-child(4){--panel-in:1.92s;--panel-out:2.98s;border-right:0}
.opening.is-finished{display:none}
@keyframes openingLogo{0%{opacity:0;transform:scale(.88);filter:blur(10px) drop-shadow(0 18px 48px rgba(0,0,0,.7))}65%,100%{opacity:1;transform:scale(1);filter:blur(0) drop-shadow(0 18px 48px rgba(0,0,0,.7))}}
@keyframes openingCopy{to{opacity:1;transform:none}}
@keyframes openingLine{to{transform:scaleX(1)}}
@keyframes openingStageOut{to{opacity:0}}
@keyframes openingPanelIn{to{transform:translateY(0)}}
@keyframes openingPanelOut{from{transform:translateY(0)}to{transform:translateY(102%)}}
.js body.is-opening .site-header,.js body.is-opening main,.js body.is-opening .site-footer{opacity:0}
.site-header,main,.site-footer{transition:opacity .55s ease}
html{background:var(--black);color:var(--white)}body{font-family:var(--font-ja);font-size:16px;line-height:1.8;background:var(--black);overflow-x:hidden}::selection{background:var(--gold);color:var(--black)}:focus-visible{outline:3px solid var(--gold-light);outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:1000;top:12px;left:12px;padding:10px 18px;background:var(--gold);color:var(--black);transform:translateY(-150%);transition:transform .2s}.skip-link:focus{transform:none}.container{width:min(calc(100% - (var(--gutter) * 2)),var(--container));margin-inline:auto}.section{position:relative;padding-block:var(--section-space)}.section--light{background:var(--paper);color:var(--black)}.section--gold{background:var(--gold);color:var(--black)}.page-progress{position:fixed;z-index:110;top:0;left:0;width:100%;height:2px;background:transparent}.page-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--gold-dark),var(--gold-light));transform:scaleX(0);transform-origin:left}.site-header{position:fixed;z-index:100;top:0;left:0;display:grid;grid-template-columns:240px 1fr auto;align-items:center;width:100%;height:106px;padding-inline:var(--gutter);border-bottom:1px solid transparent;transition:height .3s,background .3s,border-color .3s}.site-header.is-scrolled{height:88px;background:rgba(10,10,10,.92);border-color:var(--line);backdrop-filter:blur(16px)}.site-brand{display:block;width:180px;transition:width .3s}.site-header.is-scrolled .site-brand{width:160px}.site-brand img{display:block;width:100%;height:auto}.desktop-nav{display:flex;justify-content:center;gap:clamp(18px,2.2vw,36px);font:700 11px/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase}.desktop-nav a{position:relative;padding-block:10px}.desktop-nav a::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .25s}.desktop-nav a:hover::after{transform:scaleX(1);transform-origin:left}.header-contact{display:flex;align-items:center;gap:24px;min-height:54px;padding:0 22px;background:var(--gold);color:var(--black);font-size:13px;font-weight:800}.menu-button,.mobile-nav{display:none}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-height:56px;padding:0 22px;font-size:14px;font-weight:800;letter-spacing:.04em;transition:transform .2s,background .2s,color .2s}.button:hover{transform:translateY(-3px)}.button--gold{background:var(--gold);color:var(--black)}.button--gold:hover{background:var(--gold-light)}.button--large{min-height:72px;padding-inline:28px;min-width:min(100%,390px);font-size:16px}.text-link{display:inline-flex;align-items:center;gap:20px;padding-block:10px;border-bottom:1px solid currentColor;font-size:13px;font-weight:800;letter-spacing:.05em}.text-link--dark{color:var(--black)}.section-label{display:flex;align-items:center;gap:14px;font:700 11px/1 var(--font-sans);letter-spacing:.14em}.section-label span:first-child{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(255,255,255,.35);border-radius:50%;font-size:9px}.section-label--dark span:first-child{border-color:rgba(0,0,0,.35)}.display-heading{font:800 clamp(3rem,7vw,6.75rem)/.92 var(--font-sans);letter-spacing:-.045em;text-transform:uppercase}.display-heading--dark{color:var(--black)}.gold-text{color:var(--gold)}.section-heading-row{display:grid;grid-template-columns:160px minmax(400px,1fr) minmax(260px,.48fr);align-items:end;gap:40px;margin-bottom:72px}.section-heading-row>p{max-width:440px;color:#4c4c49;font-size:15px}.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}.back-to-top{position:fixed;z-index:80;right:24px;bottom:24px;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);background:rgba(10,10,10,.82);color:var(--gold);opacity:0;pointer-events:none;transform:translateY(12px);transition:.25s}.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:none}.site-footer{padding:72px 0 32px;border-top:1px solid var(--line);background:#070707}.site-footer__top{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:64px}.site-footer__top img{width:min(300px,55%)}.site-footer__top>p{text-align:right;font-weight:700;line-height:1.5}.site-footer__bottom{display:grid;grid-template-columns:1fr auto auto;gap:36px;padding-top:28px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.site-footer__bottom nav{display:flex;gap:22px}.site-footer__bottom a:hover{color:var(--white)}
@media(max-width:960px){.site-header{grid-template-columns:1fr auto;height:88px}.site-header.is-scrolled{height:82px}.site-brand{width:150px}.site-header.is-scrolled .site-brand{width:138px}.desktop-nav,.header-contact{display:none}.menu-button{display:grid;gap:7px;width:48px;height:48px;place-content:center;background:transparent;color:var(--white)}.menu-button>span:not(.sr-only){display:block;width:24px;height:1px;background:currentColor;transition:transform .25s}.menu-button[aria-expanded=true]>span:nth-child(2){transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded=true]>span:nth-child(3){transform:translateY(-4px) rotate(-45deg)}.mobile-nav{position:fixed;inset:88px 0 0;display:flex;flex-direction:column;padding:40px var(--gutter);background:rgba(10,10,10,.98)}.site-header.is-scrolled .mobile-nav{inset-block-start:82px}.mobile-nav[hidden]{display:none}.mobile-nav a{padding:17px 0;border-bottom:1px solid var(--line);font:700 clamp(1.4rem,5vw,2.5rem)/1 var(--font-sans)}.mobile-nav__contact{margin-top:22px;padding:18px!important;background:var(--gold);color:var(--black)}.section-heading-row{grid-template-columns:1fr;align-items:start}.section-heading-row>p{max-width:620px}.site-footer__bottom{grid-template-columns:1fr}.site-footer__bottom nav{flex-wrap:wrap}}
@media(max-width:640px){:root{--section-space:80px;--gutter:20px}.site-brand{width:145px}.section-label{margin-bottom:32px}.display-heading{font-size:clamp(2.75rem,14vw,4.5rem)}.section-heading-row{gap:26px;margin-bottom:48px}.site-footer{padding-top:56px}.site-footer__top{display:block;padding-bottom:40px}.site-footer__top>p{margin-top:28px;text-align:left}.button{width:100%}.back-to-top{right:16px;bottom:16px}}
.site-footer__top img{width:min(460px,62%);height:auto;object-fit:contain;aspect-ratio:auto}
@media(max-width:640px){.opening__logo{width:min(520px,88vw)}.opening__eyebrow{max-width:280px;text-align:center;line-height:1.6}.opening__line{width:58vw}.site-footer__top img{width:min(420px,86%)}}
@media(prefers-reduced-motion:reduce){.opening{background:transparent;pointer-events:none}.opening__stage,.opening__curtains{display:none}.js body.is-opening .site-header,.js body.is-opening main,.js body.is-opening .site-footer{opacity:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
.desktop-nav{gap:clamp(15px,1.8vw,30px);letter-spacing:.11em}
.opening{display:none}.js .opening{display:block}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(22px)}.js .reveal.is-visible{opacity:1;transform:none}
html,body{overflow-x:clip}
section[id]{scroll-margin-top:110px}
