.container{width:min(calc(100% - var(--gutter)*2),var(--container));margin-inline:auto}
.container--wide{max-width:var(--container-wide)}
.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}
.section-label{font-size:var(--caption);letter-spacing:.08em;text-transform:uppercase}
.display-xl,.display,.h1,.h2,.heading-ja{font-weight:500;letter-spacing:-.055em;line-height:.92}
.display-xl{font-size:var(--display-xl)}
.display{font-size:var(--display)}
.h1{font-size:var(--h1)}
.h2{font-size:var(--h2);line-height:1.02}
.heading-ja{font-size:clamp(38px,4.5vw,68px);line-height:1.22;letter-spacing:-.045em}
.lead{font-size:var(--lead);line-height:1.6}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--s3);padding-block:8px;border-bottom:1px solid currentColor;font-size:var(--small)}
.button{min-height:var(--button);min-width:260px;padding-inline:24px;display:inline-flex;align-items:center;justify-content:space-between;border:1px solid var(--border);transition:background var(--normal) var(--ease),color var(--normal) var(--ease),transform var(--normal) var(--ease)}
.button:hover{background:var(--text);color:var(--bg);transform:translateY(-2px)}
.brand-mark{display:inline-flex;align-items:center;gap:.08em;font-weight:600;letter-spacing:-.08em;font-size:24px;line-height:1}
.skip-link{position:fixed;left:16px;top:16px;z-index:9999;padding:12px 16px;background:var(--text);color:var(--bg);transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.reveal{opacity:0;transform:translateY(32px);transition:opacity var(--slow) var(--ease),transform var(--slow) var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
@media (max-width:1199px){.grid-12{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media (max-width:767px){.grid-12{grid-template-columns:repeat(4,minmax(0,1fr))}.button{min-width:100%}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
