/* Progressive motion: no hidden initial content or layout shifts. */
.eoto-presentation a:focus-visible,.eoto-presentation button:focus-visible,.eoto-presentation summary:focus-visible{outline:2px solid currentColor;outline-offset:5px}
@media (prefers-reduced-motion:no-preference){
 .eoto-presentation a,.eoto-presentation summary,.eoto-presentation button:not(:disabled){transition:color 140ms ease,background-color 140ms ease,border-color 140ms ease}
}
@media (hover:hover){.eoto-presentation a:hover{text-underline-offset:5px}}
@media (prefers-reduced-motion:reduce){
 .eoto-presentation,.eoto-presentation *,.eoto-presentation *::before,.eoto-presentation *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Standalone unknown-URL page; theme selectors do not define its layout. */
.eoto-error-page{margin:0;background:#fafafa;color:#111;font-family:Arial,"Noto Sans JP",sans-serif;min-height:100vh;display:flex;flex-direction:column}
.eoto-error-page *{box-sizing:border-box}
.eoto-error-header,.eoto-error-footer{padding:28px clamp(20px,5vw,80px);display:flex;gap:24px;align-items:center;flex-wrap:wrap;border-bottom:1px solid #d8d8d8;letter-spacing:.06em}
.eoto-error-brand{font-size:32px;font-weight:900;letter-spacing:-.04em}.eoto-error-header>span:last-child{font-size:11px}
.eoto-error-main{width:min(100%,1120px);margin:auto;padding:72px clamp(20px,5vw,80px);flex:1}
.eoto-error-code{font-size:clamp(80px,16vw,180px);line-height:1;margin:0 0 32px;font-weight:900;letter-spacing:-.07em}
.eoto-error-main h1{font-size:clamp(24px,4vw,42px);line-height:1.5;margin:0 0 24px;overflow-wrap:anywhere}.eoto-error-main p:not(.eoto-error-code){line-height:1.9}
.eoto-error-links{list-style:none;padding:0;margin:40px 0 0;display:flex;gap:16px 28px;flex-wrap:wrap}.eoto-error-links a{display:inline-block;padding:12px 0;color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.eoto-error-footer{border-top:1px solid #d8d8d8;border-bottom:0;font-size:11px}.eoto-error-skip{display:block;padding:8px 20px;color:inherit;font-size:12px}


/* Hover details share the reveal rhythm; touch devices retain their normal state. */
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .eoto-presentation .eoto-person-photo,.eoto-presentation .eoto-news-thumb{overflow:hidden}
 .eoto-presentation .eoto-person-photo img,.eoto-presentation .eoto-news-thumb img{transition:transform 650ms cubic-bezier(.16,1,.3,1)}
 .eoto-presentation .eoto-person-card a:hover .eoto-person-photo img,.eoto-presentation .eoto-news-card a:hover .eoto-news-thumb img{transform:scale(1.075)}
 .eoto-presentation .eoto-link .elementor-button-text,.eoto-presentation .eoto-news-read,.eoto-presentation .eoto-catalog-link{display:inline-block;transition:transform 350ms cubic-bezier(.16,1,.3,1)}
 .eoto-presentation .eoto-link a:hover .elementor-button-text,.eoto-presentation .eoto-news-card a:hover .eoto-news-read,.eoto-presentation .eoto-catalog-link:hover{transform:translateX(10px)}
 .eoto-presentation .eoto-shell-link a{background-image:linear-gradient(currentColor,currentColor);background-position:left bottom;background-size:0 1px;background-repeat:no-repeat;transition:background-size 300ms cubic-bezier(.16,1,.3,1),color 140ms ease}
 .eoto-presentation .eoto-shell-link a:hover{background-size:100% 1px}
 .eoto-presentation .eoto-home .elementor-post{transition:background-color 250ms ease}
 .eoto-presentation .eoto-home .elementor-post:hover{background-color:rgba(20,20,20,.035)}
}


/* A cinematic opening using the existing artwork, without a loading screen. */
@media (prefers-reduced-motion:no-preference){
 .eoto-presentation .eoto-home .eoto-hero::before{content:"";position:absolute;inset:0;background-image:inherit;background-size:cover;background-position:center;pointer-events:none;transform-origin:72% 50%;animation:eoto-art-arrive 2400ms cubic-bezier(.16,1,.3,1) both}
 .eoto-presentation .eoto-home .eoto-hero::after{content:"";position:absolute;top:-25%;bottom:-25%;left:0;width:16%;background:rgba(255,255,255,.48);pointer-events:none;transform:translateX(800%) skewX(-24deg);animation:eoto-light-pass 1500ms cubic-bezier(.22,.7,.2,1) both}
 .eoto-presentation .eoto-home .eoto-hero-copy{z-index:2}
 @keyframes eoto-art-arrive{from{transform:scale(1.18) translateX(-2%)}to{transform:scale(1) translateX(0)}}
 @keyframes eoto-light-pass{from{transform:translateX(-250%) skewX(-24deg)}to{transform:translateX(800%) skewX(-24deg)}}
}
@media (max-width:767px) and (prefers-reduced-motion:no-preference){
 .eoto-presentation .eoto-home .eoto-hero::before{animation-duration:1700ms}
 .eoto-presentation .eoto-home .eoto-hero::after{animation-duration:1100ms}
}


/* Header: actual logo pixels and navigation share a center line. */
.eoto-presentation .eoto-preview-shell .eoto-shell-header{align-items:center;column-gap:32px}
.eoto-presentation .eoto-preview-shell .eoto-shell-header .eoto-shell-logo{line-height:0;align-self:center}
.eoto-presentation .eoto-preview-shell .eoto-shell-header .eoto-shell-logo a,
.eoto-presentation .eoto-preview-shell .eoto-shell-header .eoto-shell-logo .elementor-widget-container{display:flex;align-items:center;line-height:0}
.eoto-presentation .eoto-preview-shell .eoto-shell-header .eoto-shell-nav{margin-left:auto!important;margin-right:0;justify-content:flex-end;align-items:center;flex:0 1 auto;flex-wrap:wrap;column-gap:32px;row-gap:0}
.eoto-presentation .eoto-preview-shell .eoto-shell-header .eoto-shell-language{margin-left:0!important;align-self:center}
@media(max-width:767px){
 .eoto-presentation .eoto-preview-shell .eoto-shell-header{flex-wrap:nowrap;min-height:82px;height:auto;padding:16px 22px;column-gap:16px}
 .eoto-presentation .eoto-preview-shell .eoto-shell-header .eoto-shell-logo{order:1}
 .eoto-presentation .eoto-preview-shell .eoto-shell-header .eoto-shell-nav{order:2;width:auto;flex:1 1 auto;column-gap:16px}
 .eoto-presentation .eoto-preview-shell .eoto-shell-header .eoto-shell-language{order:3}
}

/* Footer legal links use the same neutral palette as the site. */
.eoto-presentation .eoto-preview-shell .eoto-shell-legal a,
.eoto-presentation .eoto-preview-shell .eoto-shell-legal a:visited{color:#62625e;text-decoration:none}
.eoto-presentation .eoto-preview-shell .eoto-shell-legal a:hover,
.eoto-presentation .eoto-preview-shell .eoto-shell-legal a:focus-visible{color:#171717;text-decoration:underline;text-underline-offset:4px}

/* Explicit, URL-based language selection; no external translation service. */
.eoto-presentation .eoto-language-switch{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px;letter-spacing:.08em;line-height:1.4}
.eoto-presentation .eoto-language-switch a{color:#777773;text-decoration:none;padding:8px 2px}
.eoto-presentation .eoto-language-switch a[aria-current="true"]{color:#171717;font-weight:700}
.eoto-presentation .eoto-language-switch a:hover,.eoto-presentation .eoto-language-switch a:focus-visible{text-decoration:underline;text-underline-offset:4px}
.eoto-news-language-note{font-size:12px;color:#62625e;margin:0 0 24px}
html[lang="en"] .eoto-presentation .elementor-form .elementor-field-label{line-height:1.5}

/* TEAM artwork only: crop the approved mockup's left copy via background
   positioning. Existing live headings, label, link and rail remain untouched. */
.eoto-presentation .eoto-home .eoto-team{background-color:#fafaf9}
.eoto-presentation .eoto-home .eoto-team::before{
 inset:0 0 0 auto;width:min(calc(100% - max(390px,32%)),674.689px);height:auto;aspect-ratio:6513 / 2896;margin-block:auto;background-image:url("team-letterpress.png");
 background-size:133.333333% auto;background-position:right center;
 background-repeat:no-repeat;filter:none;opacity:1;
}
.eoto-presentation .eoto-home .eoto-team::after{display:none}
@media(max-width:767px){
 .eoto-presentation .eoto-home .eoto-team{padding-bottom:calc(44.45vw + 28px)}
 .eoto-presentation .eoto-home .eoto-team::before{inset:auto 0 0 0;width:100%;height:auto}
}


/* First HOME visit in this tab: a brief brand curtain. The page itself stays usable. */
@media (prefers-reduced-motion:no-preference){
 html.eoto-opening body::before,html.eoto-opening body::after{content:"";position:fixed;inset:0;pointer-events:none}
 html.eoto-opening body::before{z-index:99998;background:#fafaf9;animation:eoto-opening-curtain 1650ms cubic-bezier(.76,0,.24,1) both}
 html.eoto-opening body::after{z-index:99999;background:url("opening-logo.png") center / min(30vw,220px) auto no-repeat;animation:eoto-opening-mark 1650ms ease both}
 @keyframes eoto-opening-curtain{0%,42%{clip-path:inset(0)}100%{clip-path:inset(0 0 0 100%)}}
 @keyframes eoto-opening-mark{0%{opacity:0;transform:translateY(36px) scale(2.8);filter:blur(7px);animation-timing-function:cubic-bezier(.16,1,.3,1)}34%,55%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}78%,100%{opacity:0;transform:translateY(0) scale(1);filter:blur(0)}}
}
@media (max-width:767px) and (prefers-reduced-motion:no-preference){html.eoto-opening body::after{background-size:min(50vw,170px) auto}}
@media (prefers-reduced-motion:reduce){html.eoto-opening body::before,html.eoto-opening body::after{display:none!important}}

/* Blank profiles: prevent Elementor flex intrinsic height truncation. */
.eoto-preview-shell main.eoto-team-page:has(.eoto-person-shortcode){display:block}.eoto-person-hero-photo{position:relative;flex-shrink:0}.eoto-person-hero-photo>.eoto-person-image-missing{position:absolute;inset:0;height:auto}

.eoto-preview-shell main.eoto-team-page:has(.eoto-person-shortcode){display:block}.eoto-person-hero-photo{position:relative;flex-shrink:0}.eoto-person-hero-photo>.eoto-person-image-missing{position:absolute;inset:0;height:auto}
