@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600&family=Noto+Serif+JP:wght@300;400;500&display=swap');
:root{--paper:#f7f8f8;--ink:#434343;--muted:#747777;--line:#d9dddd;--gutter:5.2vw;--scene-height:100svh;font-family:Manrope,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;color-scheme:light;scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0}
h1,h2,h3,p{margin:0}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
img{display:block;max-width:100%}
[hidden]{display:none!important}
button:focus-visible,a:focus-visible{outline:2px solid #555;outline-offset:5px}
::selection{background:#d5dbdb}
.skip-link{position:fixed;top:-90px;left:20px;padding:12px;background:white;z-index:150}
.skip-link:focus{top:12px}
.header{position:fixed;inset:0 0 auto;z-index:90;height:84px;display:flex;align-items:center;padding:0 var(--gutter);gap:37px;transition:background .3s}
.header.scrolled{background:#f7f8f8ec;border-bottom:1px solid #d9dddd70;backdrop-filter:blur(14px)}
.brand{flex-shrink:0}
.brand img{width:166px;height:auto}
.desktop-nav{margin-left:auto;display:flex;gap:28px;font-size:11px}
.desktop-nav a{padding:12px 0;}
.header-actions{display:flex;gap:26px;align-items:center;font-size:11px}
.language{display:flex;align-items:center;font-size:9px;gap:2px}
.language button{padding:17px 4px;opacity:.45}
.language button.active{opacity:1}
.language>span{opacity:.3}
.member-link{display:inline-flex;align-items:center;justify-content:center;min-width:80px;min-height:40px;padding:10px 20px;border:1px solid #8b9494;transition:background .2s,border-color .2s}
.cinema{height:640svh;position:relative;isolation:isolate}
.cinema-stage{position:sticky;top:0;height:var(--scene-height);min-height:600px;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#fff 0%,#eff2f2 60%,#e7ebeb 100%)}
.scene{position:absolute;inset:0;z-index:2;pointer-events:none}
.scene canvas{display:block;width:100%;height:100%}
.sculpture-poster{position:absolute;inset:0;z-index:2;background:url('/assets/hippocrates-poster-r21.png') no-repeat center 42%;background-size:auto 83%;mix-blend-mode:multiply;filter:grayscale(1) brightness(1.08)}
/* Swap only after a frame at the current camera position has been drawn.
   Blending two different views of the face creates a ghost sculpture. */
.webgl-ready:not(.motion-paused):not(.no-webgl) .sculpture-poster{visibility:hidden;opacity:0}
.cinema-shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(0deg,#f7f8f8d9 0%,#f7f8f800 31%,#f7f8f800 78%,#f7f8f860 100%)}
.film-panel{position:absolute;inset:0;z-index:4;padding:0 var(--gutter);pointer-events:none;will-change:opacity,transform}
.film-panel:not(.hero-panel){opacity:0}
.hero-panel{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:105px;gap:60px}
.hero-title h1{font-family:'Noto Serif JP',serif;line-height:1.65;font-weight:400;letter-spacing:.015em;text-shadow:0 1px 25px #f7f8f840}
.hero-title h1 span{display:block}
.hero-title h1 span:first-child{font-size:clamp(20px,2vw,30px);margin-bottom:6px}
.hero-title h1 span:last-child{font-size:clamp(40px,4.2vw,64px)}
.hero-description{font-size:11px;line-height:2.3;width:295px;flex-shrink:0;padding-bottom:10px}
.eyebrow{display:block;font-size:10px;letter-spacing:.12em;font-weight:400;margin-bottom:23px}
.mission-title{position:absolute;top:21%;left:var(--gutter)}
.mission-title h2{font-family:'Noto Serif JP',serif;font-weight:400;font-size:clamp(24px,2.5vw,38px);line-height:1.8;letter-spacing:.025em}
.mission-title h2 span{display:block}
.mission-body{position:absolute;right:var(--gutter);bottom:17%;width:300px;font-size:12px;line-height:2.2}
.mission-body p+p{margin-top:20px}
.service-heading{position:absolute;left:var(--gutter);bottom:20%}
.service-heading h2{font-family:'Noto Serif JP',serif;font-weight:400;font-size:clamp(26px,2.35vw,36px);line-height:1.6}
.service-heading p{font-size:12px;line-height:2;margin-top:19px;max-width:34em}
.service-aside{position:absolute;right:var(--gutter);top:21%;font-family:'Noto Serif JP',serif;font-size:23px;line-height:1.9;letter-spacing:.02em}
.service-aside span{display:block}
.service-two .service-heading{left:auto;right:var(--gutter);bottom:20%;text-align:right}
@media(min-width:801px){.service-two .service-heading p{margin-left:auto}}
.service-three .service-heading{bottom:20%}
.film-bottom{position:absolute;bottom:35px;left:var(--gutter);right:var(--gutter);z-index:5;display:flex;justify-content:space-between;align-items:center;font-size:9px}
.scroll-link{display:flex;gap:17px;align-items:center}
.scroll-link>span{height:1px;width:58px;background:#9aa3a3;transform-origin:left}
.editorial-section{position:relative;background:#f7f8f8;z-index:10;display:grid;grid-template-columns:1fr 1.15fr;gap:9vw;padding:135px var(--gutter);scroll-margin-top:65px}
.section-title h2{font-family:'Noto Serif JP',serif;font-size:36px;font-weight:400;line-height:1.7}
.section-title .eyebrow{font-size:11px;margin-bottom:26px;letter-spacing:.05em}
.company{border-top:1px solid var(--line)}
.company-table{margin:0}
.company-table>div{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:25px 0;border-top:1px solid var(--line)}
.company-table dt{font-size:11px;line-height:2;color:#737b7b}
.company-table dd{margin:0;font-size:13px;line-height:2}
.contact{border-top:1px solid var(--line)}
form label{display:flex;flex-direction:column;margin-bottom:28px;gap:7px;font-size:11px}
input,textarea{width:100%;font-size:15px;line-height:1.6;border:0;border-bottom:1px solid #bfc7c7;background:transparent;padding:9px 0;outline:none;resize:vertical;border-radius:0}
input:focus,textarea:focus{border-color:#414a4a}
.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.form-bottom{display:flex;justify-content:flex-end}
.submit-button{border:1px solid #889393;padding:15px 35px;min-width:150px;font-size:12px;transition:background .25s,color .25s}
.form-status{font-size:11px;line-height:1.8;margin-top:20px;min-height:20px}
.footer{position:relative;z-index:10;background:#f7f8f8;border-top:1px solid var(--line);padding:42px var(--gutter);display:flex;align-items:center;gap:55px;font-size:10px}
.footer img{width:145px;height:auto}
.footer-details{color:#7b8181}
.footer-details p{font-size:11px;margin-bottom:10px}
.footer-details span{font-size:9px;color:#7b8181}
.back-to-top{margin-left:auto;border-bottom:1px solid #aab2b2;padding:8px 0}
.loader{position:fixed;inset:0;background:#f4f6f6;z-index:120;display:none;justify-content:center;align-items:center;overflow:hidden;opacity:1;transition:opacity .8s .5s;pointer-events:none}
.js .loader{display:flex}
.loader-center{position:relative;z-index:2;transition:transform .85s cubic-bezier(.2,.7,.1,1),opacity .6s .15s}
.loader-mark{position:relative;width:168px;will-change:transform,opacity}
.loader-mark img{width:100%;height:auto}
.loader-mark i{position:absolute;inset:0;mask:url('/assets/brand/logo-vertical.svg') center/contain no-repeat;-webkit-mask:url('/assets/brand/logo-vertical.svg') center/contain no-repeat;background:none;overflow:hidden;pointer-events:none}
.loader-aura{position:absolute;width:80vmax;height:80vmax;border-radius:50%;background:radial-gradient(circle,#fff 0%,#fff9 10%,#e6edef50 35%,transparent 65%);transform:scale(.55);opacity:.9;animation:aura-arrival 1.9s ease-out;transition:transform 1.05s cubic-bezier(.18,.65,.2,1),opacity 1.1s}
.loader::after{content:'';position:absolute;inset:-50%;background:radial-gradient(ellipse at center,#fff 0%,#fff 10%,#fff0 52%);opacity:0;transform:scale(.1);pointer-events:none}
.loader.exit{opacity:0}
.loader.exit .loader-center{transform:scale(1.38);opacity:0}
.loader.exit .loader-aura{transform:scale(2.3);opacity:1}
.loader.exit::after{animation:reveal-light 1.3s cubic-bezier(.12,.65,.2,1) both}
.loader-bottom{position:absolute;bottom:36px;left:0;right:0;text-align:center;color:#8b9395;font-size:9px;letter-spacing:.15em}
.loader-progress{position:absolute;left:0;bottom:0;width:100%;height:1px;background:#aab5b8;transform:scaleX(var(--loaded,0));transform-origin:left}
.intro-complete .loader{pointer-events:none}
.intro-complete .scene canvas{animation:scene-arrival 1.6s cubic-bezier(.16,1,.3,1) both}
@keyframes logo-shine{from{transform:translateX(-120%)}to{transform:translateX(120%)}}
@keyframes aura-arrival{from{opacity:0}to{opacity:.9}}
@keyframes reveal-light{0%{opacity:0;transform:scale(.1)}35%{opacity:.95}100%{opacity:0;transform:scale(2.2)}}
@keyframes scene-arrival{from{transform:scale(1.035)}to{transform:scale(1)}}
html[lang=en] .hero-title h1,html[lang=en] .mission-title h2,html[lang=en] .service-heading h2,html[lang=en] .section-title h2{font-family:Manrope,sans-serif;letter-spacing:-.05em}
html[lang=en] .hero-title h1{line-height:1.25}
html[lang=en] .hero-title h1 span:first-child{font-size:clamp(27px,3.3vw,50px)}
html[lang=en] .hero-title h1 span:last-child{font-size:clamp(32px,3.3vw,50px)}
html[lang=en] .mission-title h2{line-height:1.35}
html[lang=en] .service-aside{font-family:Manrope,sans-serif;font-size:20px;line-height:1.5;letter-spacing:-.025em}
@media(max-width:1050px) and (min-width:801px){
.brand img{width:145px}
.header{gap:23px}
.desktop-nav{gap:18px}
.header-actions{gap:18px}
.hero-description{width:240px}
.mission-body{width:270px}
.editorial-section{gap:6vw;grid-template-columns:.75fr 1.25fr}
}
@media(max-width:800px){
:root{--gutter:7vw}
.header{height:68px;padding:0 6vw;gap:12px}
.brand img{width:123px}
.desktop-nav{display:none}
.header-actions{margin-left:auto;gap:17px;font-size:11px}
.language{font-size:9px;gap:0}
.language button{padding:17px 3px}
.member-link{min-width:64px;min-height:44px;padding:10px 14px}
.cinema{height:660svh}
.cinema-stage{min-height:650px}
.sculpture-poster{background-position:center 30%;background-size:auto 69%}
.cinema-shade{background:linear-gradient(0deg,#f7f8f8 0%,#f7f8f880 23%,#f7f8f800 43%,#f7f8f800 80%,#f7f8f84d 100%)}
.hero-panel{display:block;padding:0}
.hero-title{position:absolute;left:var(--gutter);right:var(--gutter);bottom:22.5%}
.hero-title h1 span:first-child{font-size:clamp(18px,5.25vw,25px);margin-bottom:7px}
.hero-title h1 span:last-child{font-size:clamp(32px,8.7vw,44px);line-height:1.5}
.hero-description{position:absolute;bottom:11.5%;left:var(--gutter);right:var(--gutter);width:auto;max-width:355px;font-size:10px;line-height:2.1;padding:0}
.film-bottom{bottom:21px;font-size:8px}
.scroll-link{gap:11px}
.scroll-link>span{width:30px}
.eyebrow{font-size:9px;margin-bottom:16px}
.mission-title{top:auto;bottom:31%;left:var(--gutter);right:var(--gutter)}
.mission-title h2{font-size:clamp(21px,5.7vw,28px);line-height:1.7}
.mission-body{left:var(--gutter);right:var(--gutter);width:auto;bottom:9%;font-size:10px;line-height:1.9}
.mission-body p+p{margin-top:12px}
.service-heading,.service-two .service-heading,.service-three .service-heading{left:var(--gutter);right:var(--gutter);bottom:15%;text-align:left}
.service-heading h2{font-size:clamp(24px,6.6vw,34px);line-height:1.7}
.service-heading p{font-size:11px;margin-top:13px;line-height:1.9}
.service-aside{display:none}
.editorial-section{display:block;padding:80px var(--gutter);scroll-margin-top:65px}
.section-title{margin-bottom:36px}
.section-title h2{font-size:29px}
.section-title .eyebrow{font-size:10px;margin-bottom:17px}
.company-table>div{padding:21px 0;grid-template-columns:80px 1fr;gap:15px}
.company-table dt{font-size:10px}
.company-table dd{font-size:12px;line-height:1.9}
form label{font-size:10px;gap:4px;margin-bottom:24px}
input,textarea{font-size:14px}
.form-pair{gap:21px}
.submit-button{font-size:11px;min-width:140px;padding:14px 25px}
.footer{flex-wrap:wrap;gap:26px;padding:35px var(--gutter)}
.footer img{width:125px}
.footer-details{margin-left:auto;text-align:right}
.footer-details p{font-size:9px;max-width:155px;line-height:1.8}
.footer-details span{font-size:8px}
.back-to-top{font-size:9px}
html[lang=en] .hero-title h1 span:first-child,html[lang=en] .hero-title h1 span:last-child{font-size:clamp(26px,7.2vw,37px);line-height:1.2}
html[lang=en] .hero-description{font-size:11px;line-height:1.8}
html[lang=en] .mission-title{bottom:34%}
html[lang=en] .mission-title h2{font-size:clamp(23px,6.25vw,31px);line-height:1.35}
html[lang=en] .mission-body{font-size:11px;line-height:1.7}
html[lang=en] .service-heading h2{font-size:clamp(27px,7.6vw,38px);line-height:1.3}
html[lang=en] .company-table>div{grid-template-columns:100px 1fr}
}
@media(max-width:360px){
.header{padding:0 5vw}
.brand img{width:104px}
.header-actions{gap:12px}
.hero-title{bottom:24%}
.hero-description{font-size:9px;bottom:12%}
.mission-title{bottom:34%}
.mission-body{font-size:9px;bottom:10%}
.service-heading h2{font-size:23px}
.service-heading p{font-size:10px}
.company-table>div{grid-template-columns:68px 1fr;gap:10px}
.company-table dd{font-size:11px}
.footer-details{margin-left:0;text-align:left}
html[lang=en] .mission-title{bottom:38%}
html[lang=en] .mission-body{font-size:10px}
}
/* Static reading layout is also the escape path for failed 3D and reduced motion. */
.motion-paused .cinema,.no-webgl .cinema,html:not(.js) .cinema{height:auto}
.motion-paused .cinema-stage,.no-webgl .cinema-stage,html:not(.js) .cinema-stage{height:auto;position:relative;min-height:0;overflow:visible;background:#f7f8f8}
.motion-paused .scene,.no-webgl .scene,html:not(.js) .scene{display:none}
.motion-paused .sculpture-poster,.no-webgl .sculpture-poster,html:not(.js) .sculpture-poster{display:block;opacity:1;inset:0 0 auto;height:90svh;background-position:center 25%;background-size:auto 83%}
.motion-paused .film-panel,.no-webgl .film-panel,html:not(.js) .film-panel{position:relative;opacity:1!important;transform:none!important;min-height:420px;padding:85px var(--gutter);display:block;background:#f7f8f8}
.motion-paused .hero-panel,.no-webgl .hero-panel,html:not(.js) .hero-panel{padding-top:78svh;padding-bottom:60px;background:transparent;min-height:100svh}
.motion-paused .cinema-shade,.no-webgl .cinema-shade,html:not(.js) .cinema-shade{display:none}
.motion-paused .hero-title,.motion-paused .hero-description,.motion-paused .mission-title,.motion-paused .mission-body,.motion-paused .service-heading,.no-webgl .hero-title,.no-webgl .hero-description,.no-webgl .mission-title,.no-webgl .mission-body,.no-webgl .service-heading,html:not(.js) .hero-title,html:not(.js) .hero-description,html:not(.js) .mission-title,html:not(.js) .mission-body,html:not(.js) .service-heading{position:static;width:auto;max-width:600px;text-align:left}
.motion-paused .hero-description,.no-webgl .hero-description,html:not(.js) .hero-description,.motion-paused .mission-body,.no-webgl .mission-body,html:not(.js) .mission-body{margin-top:28px}
.motion-paused .film-bottom,.no-webgl .film-bottom,html:not(.js) .film-bottom{position:relative;bottom:auto;left:auto;right:auto;padding:0 var(--gutter) 35px}
.motion-paused .service-aside,.no-webgl .service-aside,html:not(.js) .service-aside{display:none}
@media(prefers-reduced-motion:reduce){
:root{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
.loader{display:none!important}
}
.film-panel{scroll-margin-top:80px}
.motion-paused .film-bottom .scroll-link,.no-webgl .film-bottom .scroll-link,html:not(.js) .film-bottom .scroll-link{display:none}
@media(max-width:800px){
.header-actions{gap:22px}
.member-link{min-width:44px;min-height:44px}
.header-actions .member-link{display:flex;align-items:center;justify-content:center}
}
.hero-description{font-size:12px}
.mission-body{font-size:14px}
.service-heading p{font-size:14px}
@media(max-width:800px){
.hero-description{font-size:11px}
.mission-body{font-size:12px;line-height:1.85}
.mission-title{bottom:33%}
.service-heading p{font-size:12px}
}
/* The orbital atmosphere continues through the factual closing sections. */
.afterglow{position:relative;isolation:isolate;overflow:clip}
.afterglow .editorial-section{background:transparent;z-index:2}
.afterglow .company{border-top:0}
.company-table,form{position:relative}
.afterglow .section-title{position:relative}
@media(max-width:800px){
.header-actions>.language{display:flex}
.header-actions{gap:10px;margin-left:auto}
.header-actions .language{font-size:10px;gap:0}
.header-actions .language button{min-width:29px;min-height:44px;padding:12px 3px}
.header-actions .member-link{min-width:59px;min-height:40px;padding:9px 12px}
.back-to-top{display:none}
.loader-mark{width:148px}
}
@media(max-width:360px){
.header-actions{gap:7px}
.header-actions .language button{min-width:25px}
.header-actions .member-link{min-width:55px;padding:9px 10px}
.brand img{width:104px}
}
@media(prefers-reduced-motion:reduce){
.intro-complete .scene canvas{animation:none}
}
/* Uninterrupted soft atmosphere and restrained button feedback. */
.loader-mark i::before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 15%,#ffffffd9 48%,#fff 52%,transparent 85%);animation:logo-shine 1.75s .25s ease-in-out both;will-change:transform}
.loader-aura,.loader-center{will-change:transform,opacity}

.member-link,.submit-button{background-color:transparent;color:var(--ink);transition:background-color .65s ease,border-color .65s ease,color .65s ease}
.member-link:hover,.submit-button:hover{background-color:rgba(91,109,117,.11);border-color:#829398;color:var(--ink)}
.member-link:active,.submit-button:active{background-color:rgba(91,109,117,.17)}
.sculpture-caption{position:absolute;top:22%;left:var(--gutter);display:flex;flex-direction:column;gap:7px;color:#6f7b81;font-size:11px;letter-spacing:.07em}
.sculpture-caption small{font-size:9px;letter-spacing:.06em}
.motion-paused .sculpture-caption,.no-webgl .sculpture-caption,html:not(.js) .sculpture-caption{top:80px}
@media(max-width:800px){
.sculpture-caption{top:11%;font-size:10px;gap:5px}
.sculpture-caption small{font-size:8px}
.afterglow .editorial-section{padding-top:80px;padding-bottom:80px}
}
@media(prefers-reduced-motion:reduce){
.loader{display:none!important}
.member-link,.submit-button{transition:none}
}
@media(max-width:360px) and (max-height:720px){
.mission-title,html[lang=en] .mission-title{bottom:40%}
}
/* One fixed field behind both the cinema and closing content; footer stays white. */
#main{position:relative;isolation:isolate}
#main::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 45% 36%,#f8fafa 0%,#f1f5f680 34%,transparent 67%),linear-gradient(155deg,#edf3f5 0%,#e8eff3 43%,#f4f7f8 75%,#ebf1f4 100%)}
.cinema-stage,.afterglow{background:transparent!important}
.cinema-shade{opacity:var(--film-atmosphere,1)}
.afterglow .company,.afterglow .contact{border-top:0}
.footer{background:#fff;border-top:0}
.motion-paused .film-panel,.no-webgl .film-panel,html:not(.js) .film-panel{background:transparent}
/* Soft cloud detail and a single footer glint per document. */
.scroll-link{opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .16s ease-out,transform .16s ease-out}
.scroll-link.is-visible{opacity:1;pointer-events:auto;transform:none;transition:opacity 1s ease,transform 1s ease}
#main{background:#fff}
#main::before{opacity:1}
#main::after{content:'';position:fixed;inset:-12% -10%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 17% 35%,#d8e3e860,transparent 42%),url('/assets/nebula.svg') center/cover no-repeat;opacity:.40;transform:translate3d(0,var(--cloud-drift,0px),0);will-change:transform,opacity}
.footer-details p,.footer-details span{font-size:10px;line-height:1.8;color:#969d9f}
.footer-logo{position:relative;display:block;flex-shrink:0}
.footer-glint{position:absolute;inset:0;overflow:hidden;pointer-events:none;mask:url('/assets/brand/logo.svg') center/contain no-repeat;-webkit-mask:url('/assets/brand/logo.svg') center/contain no-repeat}
.footer-glint::before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#ffffffbf 44%,#fff 50%,#ffffffbf 56%,transparent 75%);transform:translateX(-120%)}
.footer-logo.has-shone .footer-glint::before{animation:logo-shine 1.45s .12s ease-in-out both}
@media(max-width:800px){
.footer-details p,.footer-details span{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
.scroll-link{transition:none}
#main::after{transform:none}
.footer-logo.has-shone .footer-glint::before{animation:none}
}
/* Both navigation cues share the same restrained motion and typography. */
.header.scrolled{background:var(--header-surface,#f7f8f8ec);border-bottom-color:var(--header-border,#d9dddd70)}
.scroll-link,.back-to-top{display:inline-flex;align-items:center;gap:17px;font-size:9px;line-height:1.5;font-weight:400;letter-spacing:0;border:0;padding:0;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .16s ease-out,transform .16s ease-out}
.scroll-link>span,.back-to-top>span{display:block;height:1px;width:58px;background:#9aa3a3;transform-origin:left}
.scroll-link.is-visible,.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:none;transition:opacity 1s ease,transform 1s ease}
@media(max-width:800px){
.back-to-top{display:none}
.scroll-link{font-size:8px;gap:11px}
.scroll-link>span{width:30px}
}
@media(prefers-reduced-motion:reduce){
.scroll-link,.back-to-top{transition:none}
}
html:not(.js) .back-to-top{opacity:1;pointer-events:auto;transform:none}
/* White belongs to the bottom of the document, rather than washing out the viewport. */
.afterglow .contact{isolation:isolate}
.afterglow .contact::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#fff0 0%,#fff2 25%,#fff9 68%,#fff 100%)}
/* Shared header geometry and gently drawn navigation rules. */
:root{scrollbar-gutter:stable}
.header .brand{display:flex;align-items:center;height:46px}
.desktop-nav a{position:relative;border-bottom:0}
.desktop-nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:#555;opacity:0;transform:scaleX(0);transform-origin:center;transition:transform .55s cubic-bezier(.16,1,.3,1),opacity .35s ease}
.desktop-nav a:hover::after,.desktop-nav a.current::after,.desktop-nav a:focus-visible::after{opacity:1;transform:scaleX(1)}
/* A straight, centred arrival from a pinpoint, without rotation or sideways travel. */
.loader-mark{animation:logo-arrival .95s cubic-bezier(.16,1,.3,1) both;transform-origin:50% 50%}
@keyframes logo-arrival{0%{opacity:0;transform:scale(.025)}18%{opacity:.6}100%{opacity:1;transform:scale(1)}}
.loader-center::before{content:'';position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px;border-radius:50%;background:radial-gradient(circle,#fff 0%,#fff9 30%,#fff0 72%);pointer-events:none;animation:logo-point .95s cubic-bezier(.16,1,.3,1) both}
@keyframes logo-point{0%{opacity:0;transform:scale(.1)}15%{opacity:1}100%{opacity:0;transform:scale(12)}}

/* A failed animation must not turn a wide-screen hero into a mobile column. */
@media(min-width:801px){
.motion-paused .hero-panel,.no-webgl .hero-panel,html:not(.js) .hero-panel{display:flex;align-items:flex-end;justify-content:space-between;gap:60px}
.motion-paused .hero-description,.no-webgl .hero-description,html:not(.js) .hero-description{width:295px;max-width:295px;margin-top:0}
}
@media(min-width:801px) and (max-width:1050px){
.motion-paused .hero-description,.no-webgl .hero-description,html:not(.js) .hero-description{width:240px;max-width:240px}
}

/* Contact verification remains beside the action where space permits. */
.form-bottom{align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.contact-verification{min-height:65px;min-width:150px;max-width:100%}
.form-bottom .submit-button{margin-left:auto}
.submit-button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:600px){
.form-bottom{gap:16px}
.contact-verification{flex-basis:100%;min-height:65px}
}
@media(max-width:349px){.contact-verification{min-height:140px;flex-basis:auto}}
.mobile-copy-break{display:none}
@media(max-width:800px){.mobile-copy-break{display:block}.hero-description{max-width:none}}
@media(max-width:360px){html[lang=ja] .hero-description{font-size:10px}}

/* Elastic browser edges stay white; clip paint without changing sticky layout. */
html,body{background:#fff}
#main{clip-path:inset(0)}
/* Reserve both Japanese hero lines at desktop sizes, including static fallback. */
@media(min-width:801px){
html[lang=ja] .hero-panel .hero-description{width:330px;max-width:330px}
.submit-button{min-width:180px}
}
@media(max-width:800px){
.form-bottom .submit-button{width:100%;flex-basis:100%;margin-left:0}
}
