/* Dress aging — shared typography / motion, v6 */
:root{
 --editorial-latin: "Bodoni Moda", Didot, "Bodoni MT", "Times New Roman", serif;
 --sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans CJK JP", sans-serif;
}
body,button,input,textarea,select{font-family:var(--sans);}
/* Japanese mincho is reserved for large editorial headings. */
.hero h1,.hero-slide h1,.section-title,.legal-page h1,.news-head h1,.article h1{
 font-family:var(--serif) !important;
}
/* All secondary headings, numbers, captions and components use Noto Sans JP. */
:is(h3,.hero-note p,.service-strip p,.service-facts strong,.concern .label span,
 .concern h3,.step-no,.example p,.deliverable h3,.book-copy h3,
 .plan h3,.plan-price,.other-plan h3,.flow-step h3,.mission h3,
 .chie-row h3,.about-brand strong,.company dd .company-name,.contact-box h3,
 .member h3,.da-mobile-brand,.da-mobile-links a,.line-contact-title,
 .legal-page h2,.message-sign,.article-body h2,.news-title,
 .news-cat,.news-date,.footer-brand span,.chie-image-placeholder){
 font-family:var(--sans) !important;
}
/* English editorial typography: Didot-like high contrast. */
.eyebrow,.page-eyebrow,.news-head .en{
 font-family:var(--editorial-latin) !important;
 font-weight:500;
 letter-spacing:.11em;
 font-size:clamp(16px,1.7vw,23px);
 line-height:1.25;
 text-transform:uppercase;
}
.eyebrow{margin-bottom:24px;}
.hero .eyebrow{font-size:clamp(15px,1.6vw,21px);letter-spacing:.10em;}
.eyebrow:before{width:31px;flex:0 0 31px;}
.page-eyebrow,.news-head .en{color:var(--matsu);}
.news-cat,.news-date{font-size:12px;letter-spacing:.02em;}
/* Oversized background letters: non-interactive and visually subordinate. */
section[data-wordmark]{position:relative;isolation:isolate;}
section[data-wordmark]::before{
 content:attr(data-wordmark);
 position:absolute;inset:18px 0 auto 0;
 display:block;overflow:hidden;white-space:nowrap;text-overflow:clip;
 font-family:var(--editorial-latin);
 font-size:clamp(64px,9vw,148px);
 line-height:1.05;letter-spacing:-.06em;font-weight:400;
 color:var(--deep);opacity:.072;
 pointer-events:none;user-select:none;z-index:0;
 padding-left:max(32px,calc((100vw - var(--page))/2));
}
section[data-wordmark] > .wrap{position:relative;z-index:1;}
section[data-wordmark].contact::before{color:var(--deep);opacity:.065;}
section[data-wordmark].news::before{color:var(--deep);opacity:.06;}
/* A clean editorial transition: enabled only after JS registers observers. */
@media (prefers-reduced-motion:no-preference){
 html.has-scroll-motion [data-motion="fade"]{
  opacity:0;transform:translate3d(0,28px,0);
  transition:opacity .88s cubic-bezier(.22,1,.36,1), transform .95s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--motion-delay,0ms);
 }
 html.has-scroll-motion [data-motion="title"]{
  opacity:0;transform:translate3d(0,16px,0);
  filter:blur(10px);
  transition:opacity 1.08s cubic-bezier(.22,1,.36,1),
             transform 1.15s cubic-bezier(.22,1,.36,1),
             filter 1.20s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--motion-delay,0ms);
 }
 html.has-scroll-motion [data-motion].is-motion-visible{
  opacity:1;transform:translate3d(0,0,0);filter:blur(0);
 }
 .hero-slide.is-active .hero-inner>.eyebrow{animation:heroSoftReveal .9s .05s both;}
 .hero-slide.is-active .hero-inner>h1{animation:heroFocusReveal 1.25s .13s both;}
 .hero-slide.is-active .hero-inner>.hero-description{animation:heroSoftReveal 1s .27s both;}
 .hero-slide.is-active .hero-actions{animation:heroSoftReveal .95s .42s both;}
 @keyframes heroSoftReveal {from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
 @keyframes heroFocusReveal {from{opacity:0;filter:blur(10px);transform:translateY(14px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
}
@media(max-width:760px){
 .eyebrow,.page-eyebrow,.news-head .en{font-size:16px !important;letter-spacing:.105em;}
 .hero .eyebrow,.hero-slide .eyebrow{font-size:15px !important;}
 section[data-wordmark]::before{font-size:clamp(43px,12vw,74px);inset:22px 0 auto 0;padding-left:24px;opacity:.050;}
 .eyebrow:before{width:22px;flex-basis:22px;}
}
@media(prefers-reduced-motion:reduce){
 [data-motion]{opacity:1!important;filter:none!important;transform:none!important;animation:none!important;transition:none!important;}
 .hero-slide.is-active .hero-inner>*{animation:none!important;}
}
/* The ABOUT block is dark green; its background Latin lettering uses a faint light tint. */
section.about[data-wordmark]::before{color:#fff;opacity:.105;}
